[Tarantool-patches] [PATCH luajit 1/5] build: preserve the original build system
Igor Munkin
imun at tarantool.org
Tue Feb 2 23:57:41 MSK 2021
Since the build machinery is going to be ported to CMake there would be
Makefile names clashing. This change renames the original build system
(and a couple of auxiliary files requiring configuring) to keep all this
machinery working.
As a result of these changes one need to explicitly specify the Makefile
in the build command:
| make -f Makefile.original <options>
Needed for tarantool/tarantool#4862
Signed-off-by: Igor Munkin <imun at tarantool.org>
---
Makefile => Makefile.original | 44 +++++++++++++--------
etc/{luajit.pc => luajit.pc.in} | 4 +-
src/{Makefile.dep => Makefile.dep.original} | 0
src/{Makefile => Makefile.original} | 4 +-
tools/luajit-parse-memprof | 9 -----
tools/luajit-parse-memprof.in | 6 +++
6 files changed, 38 insertions(+), 29 deletions(-)
rename Makefile => Makefile.original (85%)
rename etc/{luajit.pc => luajit.pc.in} (91%)
rename src/{Makefile.dep => Makefile.dep.original} (100%)
rename src/{Makefile => Makefile.original} (99%)
delete mode 100755 tools/luajit-parse-memprof
create mode 100644 tools/luajit-parse-memprof.in
diff --git a/Makefile b/Makefile.original
similarity index 85%
rename from Makefile
rename to Makefile.original
index 61967df..b85d4bf 100644
--- a/Makefile
+++ b/Makefile.original
@@ -85,10 +85,10 @@ INSTALL_X= install -m 0755
INSTALL_F= install -m 0644
UNINSTALL= $(RM)
LDCONFIG= ldconfig -n
-SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \
- -e "s|^multilib=.*|multilib=$(MULTILIB)|"
-SED_TMEMPROF= sed -e "s|^TOOL_DIR=.*|TOOL_DIR=$(INSTALL_TOOLSLIB)|" \
- -e "s|^LUAJIT_BIN=.*|LUAJIT_BIN=$(INSTALL_T)|"
+SED_PC= sed -e "s|@LUAJIT_PC_PREFIX@|$(PREFIX)|" \
+ -e "s|@LUAJIT_PC_MULTILIB@|$(MULTILIB)|"
+SED_TMEMPROF= sed -e "s|@LUAJIT_TOOLS_DIR@|$(INSTALL_TOOLSLIB)|" \
+ -e "s|@LUAJIT_TOOLS_BIN@|$(INSTALL_T)|"
FILE_T= luajit
FILE_A= libluajit.a
@@ -123,9 +123,9 @@ endif
INSTALL_DEP= src/luajit
-default all $(INSTALL_DEP):
+default all $(INSTALL_DEP): tools
@echo "==== Building LuaJIT $(VERSION) ===="
- $(MAKE) -C src
+ $(MAKE) -C src -f Makefile.original
@echo "==== Successfully built LuaJIT $(VERSION) ===="
install: $(INSTALL_DEP)
@@ -140,17 +140,17 @@ install: $(INSTALL_DEP)
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN)
- cd etc && $(SED_PC) $(FILE_PC) > $(FILE_PC).tmp && \
- $(INSTALL_F) $(FILE_PC).tmp $(INSTALL_PC) && \
- $(RM) $(FILE_PC).tmp
+ cd etc && $(SED_PC) $(FILE_PC).in > $(FILE_PC) && \
+ $(INSTALL_F) $(FILE_PC) $(INSTALL_PC) && \
+ $(RM) $(FILE_PC)
cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
cd src/jit && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
cd tools/utils && $(INSTALL_F) $(FILES_UTILSLIB) $(INSTALL_UTILSLIB)
cd tools/memprof && $(INSTALL_F) $(FILES_MEMPROFLIB) $(INSTALL_MEMPROFLIB)
cd tools && $(INSTALL_F) $(FILES_TOOLSLIB) $(INSTALL_TOOLSLIB)
- cd tools && $(SED_TMEMPROF) $(FILE_TMEMPROF) > $(FILE_TMEMPROF).tmp && \
- $(INSTALL_X) $(FILE_TMEMPROF).tmp $(INSTALL_TMEMPROF) && \
- $(RM) $(FILE_TMEMPROF).tmp
+ cd tools && $(SED_TMEMPROF) $(FILE_TMEMPROF).in > $(FILE_TMEMPROF) && \
+ $(INSTALL_X) $(FILE_TMEMPROF) $(INSTALL_TMEMPROF) && \
+ $(RM) $(FILE_TMEMPROF)
@echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ===="
@echo ""
@echo "Note: the development releases deliberately do NOT install a symlink for luajit"
@@ -185,13 +185,25 @@ uninstall:
##############################################################################
-amalg:
+amalg: tools
@echo "Building LuaJIT $(VERSION)"
- $(MAKE) -C src amalg
+ $(MAKE) -C src -f Makefile.original amalg
clean:
- $(MAKE) -C src clean
+ $(RM) tools/$(FILE_TMEMPROF)
+ $(MAKE) -C src -f Makefile.original clean
-.PHONY: all install amalg clean
+tools: tools/$(FILE_TMEMPROF)
+
+# FIXME: This is an ugly hack to manually configure an auxiliary
+# tools/luajit-parse-memprof. I hope this file will have gone away
+# in scope of https://github.com/tarantool/tarantool/issues/5688.
+tools/$(FILE_TMEMPROF):
+ @sed -e "s|@LUAJIT_TOOLS_DIR@|$(realpath tools)|" \
+ -e "s|@LUAJIT_TOOLS_BIN@|$(realpath src/luajit)|" \
+ $@.in > $@
+ @chmod +x $@
+
+.PHONY: all install amalg clean tools
##############################################################################
diff --git a/etc/luajit.pc b/etc/luajit.pc.in
similarity index 91%
rename from etc/luajit.pc
rename to etc/luajit.pc.in
index a78f174..f32385d 100644
--- a/etc/luajit.pc
+++ b/etc/luajit.pc.in
@@ -5,8 +5,8 @@ relver=0
version=${majver}.${minver}.${relver}-beta3
abiver=5.1
-prefix=/usr/local
-multilib=lib
+prefix=@LUAJIT_PC_PREFIX@
+multilib=@LUAJIT_PC_MULTILIB@
exec_prefix=${prefix}
libdir=${exec_prefix}/${multilib}
libname=luajit-${abiver}
diff --git a/src/Makefile.dep b/src/Makefile.dep.original
similarity index 100%
rename from src/Makefile.dep
rename to src/Makefile.dep.original
diff --git a/src/Makefile b/src/Makefile.original
similarity index 99%
rename from src/Makefile
rename to src/Makefile.original
index 825b01c..502504c 100644
--- a/src/Makefile
+++ b/src/Makefile.original
@@ -624,7 +624,7 @@ depend:
-e "s|^\([^l ]\)|host/\1|" \
-e "s| lj_target_\S*\.h| lj_target_*.h|g" \
-e "s| lj_emit_\S*\.h| lj_emit_*.h|g" \
- -e "s| lj_asm_\S*\.h| lj_asm_*.h|g" >Makefile.dep
+ -e "s| lj_asm_\S*\.h| lj_asm_*.h|g" >Makefile.dep.original
@for file in $(ALL_HDRGEN); do \
test -s $$file || $(HOST_RM) $$file; \
done
@@ -699,7 +699,7 @@ $(HOST_O): %.o: %.c
$(E) "HOSTCC $@"
$(Q)$(HOST_CC) $(HOST_ACFLAGS) -c -o $@ $<
-include Makefile.dep
+include Makefile.dep.original
##############################################################################
# Target file rules.
diff --git a/tools/luajit-parse-memprof b/tools/luajit-parse-memprof
deleted file mode 100755
index c814301..0000000
--- a/tools/luajit-parse-memprof
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-#
-# Launcher for memprof parser.
-
-# This two variables are replaced on installing.
-TOOL_DIR=$(dirname `readlink -f $0`)
-LUAJIT_BIN=$TOOL_DIR/../src/luajit
-
-LUA_PATH="$TOOL_DIR/?.lua;;" $LUAJIT_BIN $TOOL_DIR/memprof.lua $@
diff --git a/tools/luajit-parse-memprof.in b/tools/luajit-parse-memprof.in
new file mode 100644
index 0000000..8867202
--- /dev/null
+++ b/tools/luajit-parse-memprof.in
@@ -0,0 +1,6 @@
+#!/bin/bash
+#
+# Launcher for memprof parser.
+
+LUA_PATH="@LUAJIT_TOOLS_DIR@/?.lua;;" \
+ @LUAJIT_TOOLS_BIN@ @LUAJIT_TOOLS_DIR@/memprof.lua $@
--
2.25.0
More information about the Tarantool-patches
mailing list