123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- ##############################################################################
- # LuaJIT top level Makefile for installation. Requires GNU Make.
- #
- # Please read doc/install.html before changing any variables!
- #
- # Suitable for POSIX platforms (Linux, *BSD, OSX etc.).
- # Note: src/Makefile has many more configurable options.
- #
- # ##### This Makefile is NOT useful for Windows! #####
- # For MSVC, please follow the instructions given in src/msvcbuild.bat.
- # For MinGW and Cygwin, cd to src and run make with the Makefile there.
- #
- # Copyright (C) 2005-2025 Mike Pall. See Copyright Notice in luajit.h
- ##############################################################################
- MAJVER= 2
- MINVER= 1
- ABIVER= 5.1
- # LuaJIT uses rolling releases. The release version is based on the time of
- # the latest git commit. The 'git' command must be available during the build.
- RELVER= $(shell cat src/luajit_relver.txt 2>/dev/null || : )
- # Note: setting it with := doesn't work, since it will change during the build.
- MMVERSION= $(MAJVER).$(MINVER)
- VERSION= $(MMVERSION).$(RELVER)
- ##############################################################################
- #
- # Change the installation path as needed. This automatically adjusts
- # the paths in src/luaconf.h, too. Note: PREFIX must be an absolute path!
- #
- export PREFIX= /usr/local
- export MULTILIB= lib
- ##############################################################################
- DPREFIX= $(DESTDIR)$(PREFIX)
- INSTALL_BIN= $(DPREFIX)/bin
- INSTALL_LIB= $(DPREFIX)/$(MULTILIB)
- INSTALL_SHARE_= $(PREFIX)/share
- INSTALL_SHARE= $(DESTDIR)$(INSTALL_SHARE_)
- INSTALL_DEFINC= $(DPREFIX)/include/luajit-$(MMVERSION)
- INSTALL_INC= $(INSTALL_DEFINC)
- export INSTALL_LJLIBD= $(INSTALL_SHARE_)/luajit-$(MMVERSION)
- INSTALL_JITLIB= $(DESTDIR)$(INSTALL_LJLIBD)/jit
- INSTALL_LMODD= $(INSTALL_SHARE)/lua
- INSTALL_LMOD= $(INSTALL_LMODD)/$(ABIVER)
- INSTALL_CMODD= $(INSTALL_LIB)/lua
- INSTALL_CMOD= $(INSTALL_CMODD)/$(ABIVER)
- INSTALL_MAN= $(INSTALL_SHARE)/man/man1
- INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
- INSTALL_TNAME= luajit-$(VERSION)
- INSTALL_TSYMNAME= luajit
- INSTALL_ANAME= libluajit-$(ABIVER).a
- INSTALL_SOSHORT1= libluajit-$(ABIVER).so
- INSTALL_SOSHORT2= libluajit-$(ABIVER).so.$(MAJVER)
- INSTALL_SONAME= libluajit-$(ABIVER).so.$(VERSION)
- INSTALL_DYLIBSHORT1= libluajit-$(ABIVER).dylib
- INSTALL_DYLIBSHORT2= libluajit-$(ABIVER).$(MAJVER).dylib
- INSTALL_DYLIBNAME= libluajit-$(ABIVER).$(VERSION).dylib
- INSTALL_PCNAME= luajit.pc
- INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
- INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
- INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT1)
- INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT2)
- INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
- INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
- INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
- INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
- $(INSTALL_PKGCONFIG) $(INSTALL_JITLIB) $(INSTALL_LMOD) $(INSTALL_CMOD)
- UNINSTALL_DIRS= $(INSTALL_JITLIB) $(DESTDIR)$(INSTALL_LJLIBD) $(INSTALL_INC) \
- $(INSTALL_LMOD) $(INSTALL_LMODD) $(INSTALL_CMOD) $(INSTALL_CMODD)
- RM= rm -f
- MKDIR= mkdir -p
- RMDIR= rmdir 2>/dev/null
- SYMLINK= ln -sf
- INSTALL_X= install -m 0755
- INSTALL_F= install -m 0644
- UNINSTALL= $(RM)
- LDCONFIG= ldconfig -n 2>/dev/null
- SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \
- -e "s|^multilib=.*|multilib=$(MULTILIB)|" \
- -e "s|^relver=.*|relver=$(RELVER)|"
- ifneq ($(INSTALL_DEFINC),$(INSTALL_INC))
- SED_PC+= -e "s|^includedir=.*|includedir=$(INSTALL_INC)|"
- endif
- FILE_T= luajit
- FILE_A= libluajit.a
- FILE_SO= libluajit.so
- FILE_MAN= luajit.1
- FILE_PC= luajit.pc
- FILES_INC= lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h
- FILES_JITLIB= bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua \
- dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua \
- dis_arm64be.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua \
- dis_mips64.lua dis_mips64el.lua \
- dis_mips64r6.lua dis_mips64r6el.lua \
- vmdef.lua
- ifeq (,$(findstring Windows,$(OS)))
- HOST_SYS:= $(shell uname -s)
- else
- HOST_SYS= Windows
- endif
- TARGET_SYS?= $(HOST_SYS)
- ifneq (,$(filter $(TARGET_SYS),Darwin iOS))
- INSTALL_SONAME= $(INSTALL_DYLIBNAME)
- INSTALL_SOSHORT1= $(INSTALL_DYLIBSHORT1)
- INSTALL_SOSHORT2= $(INSTALL_DYLIBSHORT2)
- LDCONFIG= :
- SED_PC+= -e "s| -Wl,-E||"
- endif
- ##############################################################################
- INSTALL_DEP= src/luajit
- default all $(INSTALL_DEP):
- @echo "==== Building LuaJIT $(MMVERSION) ===="
- $(MAKE) -C src
- @echo "==== Successfully built LuaJIT $(MMVERSION) ===="
- install: $(INSTALL_DEP)
- @echo "==== Installing LuaJIT $(VERSION) to $(PREFIX) ===="
- $(MKDIR) $(INSTALL_DIRS)
- cd src && $(INSTALL_X) $(FILE_T) $(INSTALL_T)
- cd src && test -f $(FILE_A) && $(INSTALL_F) $(FILE_A) $(INSTALL_STATIC) || :
- $(RM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2)
- cd src && test -f $(FILE_SO) && \
- $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
- ( $(LDCONFIG) $(INSTALL_LIB) || : ) && \
- $(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 src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
- cd src/jit && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
- $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)
- @echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ===="
- uninstall:
- @echo "==== Uninstalling LuaJIT $(VERSION) from $(PREFIX) ===="
- $(UNINSTALL) $(INSTALL_TSYM) $(INSTALL_T) $(INSTALL_STATIC) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) $(INSTALL_MAN)/$(FILE_MAN) $(INSTALL_PC)
- for file in $(FILES_JITLIB); do \
- $(UNINSTALL) $(INSTALL_JITLIB)/$$file; \
- done
- for file in $(FILES_INC); do \
- $(UNINSTALL) $(INSTALL_INC)/$$file; \
- done
- $(LDCONFIG) $(INSTALL_LIB)
- $(RMDIR) $(UNINSTALL_DIRS) || :
- @echo "==== Successfully uninstalled LuaJIT $(VERSION) from $(PREFIX) ===="
- ##############################################################################
- amalg:
- @echo "==== Building LuaJIT $(MMVERSION) (amalgamation) ===="
- $(MAKE) -C src amalg
- @echo "==== Successfully built LuaJIT $(MMVERSION) (amalgamation) ===="
- clean:
- $(MAKE) -C src clean
- .PHONY: all install amalg clean
- ##############################################################################
|