ljx

FORK: LuaJIT with native 5.2 and 5.3 support
git clone https://git.neptards.moe/neptards/ljx.git
Log | Files | Refs | README

Makefile (6332B)


      1 ##############################################################################
      2 # LuaJIT top level Makefile for installation. Requires GNU Make.
      3 #
      4 # Please read doc/install.html before changing any variables!
      5 #
      6 # Suitable for POSIX platforms (Linux, *BSD, OSX etc.).
      7 # Note: src/Makefile has many more configurable options.
      8 #
      9 # ##### This Makefile is NOT useful for Windows! #####
     10 # For MSVC, please follow the instructions given in src/msvcbuild.bat.
     11 # For MinGW and Cygwin, cd to src and run make with the Makefile there.
     12 #
     13 # Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
     14 ##############################################################################
     15 
     16 ABIVER=5.3
     17 APIVER=5.3
     18 NODOTABIVER:=$(subst .,,$(ABIVER))
     19 VERSION= $(shell git describe 2> /dev/null || cat .version)
     20 
     21 ##############################################################################
     22 #
     23 # Change the installation path as needed. This automatically adjusts
     24 # the paths in src/luaconf.h, too. Note: PREFIX must be an absolute path!
     25 #
     26 export PREFIX= /usr/local
     27 export MULTILIB= lib
     28 ##############################################################################
     29 
     30 DPREFIX= $(DESTDIR)$(PREFIX)
     31 INSTALL_BIN=   $(DPREFIX)/bin
     32 INSTALL_LIB=   $(DPREFIX)/$(MULTILIB)
     33 INSTALL_SHARE= $(DPREFIX)/share
     34 INSTALL_INC=   $(DPREFIX)/include/ljx-$(ABIVER)
     35 
     36 INSTALL_LJLIBD= $(INSTALL_SHARE)/luajit-$(VERSION)
     37 INSTALL_JITLIB= $(INSTALL_LJLIBD)/jit
     38 INSTALL_LMODD= $(INSTALL_SHARE)/lua
     39 INSTALL_LMOD= $(INSTALL_LMODD)/$(APIVER)
     40 INSTALL_CMODD= $(INSTALL_LIB)/lua
     41 INSTALL_CMOD= $(INSTALL_CMODD)/$(ABIVER)
     42 INSTALL_MAN_DIR= $(INSTALL_SHARE)/man/man1
     43 INSTALL_MAN= $(INSTALL_MAN_DIR)/luajit-ljx.1
     44 INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
     45 
     46 INSTALL_TNAME= ljx
     47 INSTALL_TSYMNAME= luajit
     48 INSTALL_ANAME= libluajit-ljx-$(ABIVER).a
     49 INSTALL_SONAME= libluajit-ljx-$(ABIVER).so.$(VERSION)
     50 INSTALL_SOSHORT1= libluajit-ljx-$(ABIVER).so
     51 INSTALL_SOSHORT2= libluajit-ljx-$(ABIVER).so.$(VERSION)
     52 INSTALL_DYLIBNAME= libluajit-ljx-$(ABIVER).$(VERSION).dylib
     53 INSTALL_DYLIBSHORT1= libluajit-ljx-$(ABIVER).dylib
     54 INSTALL_DYLIBSHORT2= libluajit-ljx-$(ABIVER).LJX.dylib
     55 INSTALL_PCNAME= luajit-ljx.pc
     56 
     57 INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
     58 INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
     59 INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT1)
     60 INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT2)
     61 INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
     62 INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
     63 INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
     64 
     65 INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN_DIR) \
     66   $(INSTALL_PKGCONFIG) $(INSTALL_JITLIB) $(INSTALL_LMOD) $(INSTALL_CMOD)
     67 UNINSTALL_DIRS= $(INSTALL_JITLIB) $(INSTALL_LJLIBD) $(INSTALL_INC) \
     68   $(INSTALL_LMOD) $(INSTALL_LMODD) $(INSTALL_CMOD) $(INSTALL_CMODD)
     69 
     70 RM= rm -f
     71 MKDIR= mkdir -p
     72 RMDIR= rmdir 2>/dev/null
     73 SYMLINK= ln -sf
     74 INSTALL_X= install -m 0755
     75 INSTALL_F= install -m 0644
     76 UNINSTALL= $(RM)
     77 LDCONFIG= ldconfig -n
     78 SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \
     79             -e "s|^multilib=.*|multilib=$(MULTILIB)|" \
     80             -e "s|^abiver=.*|abiver=$(ABIVER)|" \
     81             -e "s|^version=.*|version=$(VERSION)|"
     82 
     83 FILE_T= luajit-ljx
     84 FILE_A= libluajit-ljx.a
     85 FILE_SO= libluajit-ljx.so
     86 FILE_MAN= luajit.1
     87 FILE_PC= luajit.pc
     88 FILES_INC= lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h
     89 ARCH_INC= lj_arch.h
     90 FILES_JITLIB= bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua \
     91 	      dis_x86.lua dis_x64.lua dis_arm.lua dis_ppc.lua \
     92 	      dis_mips.lua dis_mipsel.lua vmdef.lua
     93 
     94 ifeq (Darwin,$(shell uname -s))
     95   INSTALL_SONAME= $(INSTALL_DYLIBNAME)
     96   INSTALL_SOSHORT1= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT1)
     97   INSTALL_SOSHORT2= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT2)
     98   LDCONFIG= :
     99 endif
    100 ifneq (,$(findstring MSYS,$(shell uname -s)))
    101   FILE_SO=lua$(NODOTABIVER).dll
    102   INSTALL_SONAME=$(FILE_SO) 
    103   INSTALL_TNAME= ljx.exe
    104   INSTALL_TSYMNAME= luajit.exe
    105   INSTALL_SOSHORT1= libluajit-ljx-$(ABIVER).dll
    106   INSTALL_SOSHORT2= libluajit-ljx-$(ABIVER).$(VERSION).dll
    107   FILE_T=luajit.exe
    108   LDCONFIG= :
    109 endif
    110 
    111 ##############################################################################
    112 
    113 INSTALL_DEP= src/luajit
    114 
    115 default all $(INSTALL_DEP):
    116 	@echo "==== Building LuaJIT/$(VERSION) ===="
    117 	$(MAKE) -C src ABIVER=$(ABIVER) APIVER=$(APIVER)
    118 	@echo "==== Successfully built LuaJIT/$(VERSION), ABI: $(ABIVER), API: $(APIVER) ===="
    119 
    120 install: $(INSTALL_DEP)
    121 	@echo "==== Installing LuaJIT/$(VERSION) to $(PREFIX) ===="
    122 	$(MKDIR) $(INSTALL_DIRS)
    123 	cd src && $(INSTALL_X) $(FILE_T) $(INSTALL_T)
    124 	cd src && test -f $(FILE_A) && $(INSTALL_F) $(FILE_A) $(INSTALL_STATIC) || :
    125 	$(RM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2)
    126 	cd src && test -f $(FILE_SO) && \
    127 	  $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
    128 	  $(LDCONFIG) $(INSTALL_LIB) && \
    129 	  $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
    130 	  $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
    131 	cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN)
    132 	cd etc && $(SED_PC) $(FILE_PC) > $(FILE_PC).tmp && \
    133 	  $(INSTALL_F) $(FILE_PC).tmp $(INSTALL_PC) && \
    134 	  $(RM) $(FILE_PC).tmp
    135 	cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
    136 	cd src && $(INSTALL_F) $(ARCH_INC).dist $(INSTALL_INC)/$(ARCH_INC)
    137 	cd src/jit && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
    138 	@echo "==== Successfully installed LuaJIT/$(VERSION) to $(PREFIX) ===="
    139 	@echo ""
    140 	@echo "Note: the development releases deliberately do NOT install a symlink for luajit"
    141 	@echo "You can do this now by running this command (with sudo):"
    142 	@echo ""
    143 	@echo "  $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)"
    144 	@echo ""
    145 
    146 
    147 uninstall:
    148 	@echo "==== Uninstalling LuaJIT/$(VERSION) from $(PREFIX) ===="
    149 	$(UNINSTALL) $(INSTALL_T) $(INSTALL_STATIC) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) $(INSTALL_MAN)/$(FILE_MAN) $(INSTALL_PC)
    150 	for file in $(FILES_JITLIB); do \
    151 	  $(UNINSTALL) $(INSTALL_JITLIB)/$$file; \
    152 	  done
    153 	for file in $(FILES_INC); do \
    154 	  $(UNINSTALL) $(INSTALL_INC)/$$file; \
    155 	  done
    156 	$(LDCONFIG) $(INSTALL_LIB)
    157 	$(RMDIR) $(UNINSTALL_DIRS) || :
    158 	@echo "==== Successfully uninstalled LuaJIT/$(VERSION) from $(PREFIX) ===="
    159 
    160 ##############################################################################
    161 
    162 amalg:
    163 	@echo "Building LuaJIT/$(VERSION)"
    164 	$(MAKE) -C src amalg
    165 
    166 clean:
    167 	$(MAKE) -C src clean
    168 
    169 .PHONY: all install amalg clean
    170 
    171 ##############################################################################