RELEASE LuaJIT-2.0.0-beta11
[luajit-2.0.git] / Makefile
blob840ee454d4cbec8c75caa8925d83a4ced829d453
1 ##############################################################################
2 # LuaJIT top level Makefile for installation. Requires GNU Make.
4 # Please read doc/install.html before changing any variables!
6 # Suitable for POSIX platforms (Linux, *BSD, OSX etc.).
7 # Note: src/Makefile has many more configurable options.
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.
13 # Copyright (C) 2005-2012 Mike Pall. See Copyright Notice in luajit.h
14 ##############################################################################
16 MAJVER= 2
17 MINVER= 0
18 RELVER= 0
19 PREREL= -beta11
20 VERSION= $(MAJVER).$(MINVER).$(RELVER)$(PREREL)
21 ABIVER= 5.1
23 ##############################################################################
25 # Change the installation path as needed. This automatically adjusts
26 # the paths in src/luaconf.h, too. Note: PREFIX must be an absolute path!
28 export PREFIX= /usr/local
29 ##############################################################################
31 DPREFIX= $(DESTDIR)$(PREFIX)
32 INSTALL_BIN= $(DPREFIX)/bin
33 INSTALL_LIB= $(DPREFIX)/lib
34 INSTALL_SHARE= $(DPREFIX)/share
35 INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER)
37 INSTALL_LJLIBD= $(INSTALL_SHARE)/luajit-$(VERSION)
38 INSTALL_JITLIB= $(INSTALL_LJLIBD)/jit
39 INSTALL_LMODD= $(INSTALL_SHARE)/lua
40 INSTALL_LMOD= $(INSTALL_LMODD)/$(ABIVER)
41 INSTALL_CMODD= $(INSTALL_LIB)/lua
42 INSTALL_CMOD= $(INSTALL_CMODD)/$(ABIVER)
43 INSTALL_MAN= $(INSTALL_SHARE)/man/man1
44 INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
46 INSTALL_TNAME= luajit-$(VERSION)
47 INSTALL_TSYMNAME= luajit
48 INSTALL_ANAME= libluajit-$(ABIVER).a
49 INSTALL_SONAME= libluajit-$(ABIVER).so.$(MAJVER).$(MINVER).$(RELVER)
50 INSTALL_SOSHORT= libluajit-$(ABIVER).so
51 INSTALL_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib
52 INSTALL_DYLIBSHORT1= libluajit-$(ABIVER).dylib
53 INSTALL_DYLIBSHORT2= libluajit-$(ABIVER).$(MAJVER).dylib
54 INSTALL_PCNAME= luajit.pc
56 INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
57 INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
58 INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
59 INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
60 INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
61 INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
62 INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
64 INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
65 $(INSTALL_PKGCONFIG) $(INSTALL_JITLIB) $(INSTALL_LMOD) $(INSTALL_CMOD)
66 UNINSTALL_DIRS= $(INSTALL_JITLIB) $(INSTALL_LJLIBD) $(INSTALL_INC) \
67 $(INSTALL_LMOD) $(INSTALL_LMODD) $(INSTALL_CMOD) $(INSTALL_CMODD)
69 RM= rm -f
70 MKDIR= mkdir -p
71 RMDIR= rmdir 2>/dev/null
72 SYMLINK= ln -sf
73 INSTALL_X= install -m 0755
74 INSTALL_F= install -m 0644
75 UNINSTALL= $(RM)
76 LDCONFIG= ldconfig -n
77 SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|"
79 FILE_T= luajit
80 FILE_A= libluajit.a
81 FILE_SO= libluajit.so
82 FILE_MAN= luajit.1
83 FILE_PC= luajit.pc
84 FILES_INC= lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h
85 FILES_JITLIB= bc.lua v.lua dump.lua dis_x86.lua dis_x64.lua dis_arm.lua \
86 dis_ppc.lua dis_mips.lua dis_mipsel.lua bcsave.lua vmdef.lua
88 ifeq (,$(findstring Windows,$(OS)))
89 ifeq (Darwin,$(shell uname -s))
90 INSTALL_SONAME= $(INSTALL_DYLIBNAME)
91 INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT1)
92 INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT2)
93 LDCONFIG= :
94 endif
95 endif
97 ##############################################################################
99 INSTALL_DEP= src/luajit
101 default all $(INSTALL_DEP):
102 @echo "==== Building LuaJIT $(VERSION) ===="
103 $(MAKE) -C src
104 @echo "==== Successfully built LuaJIT $(VERSION) ===="
106 install: $(INSTALL_DEP)
107 @echo "==== Installing LuaJIT $(VERSION) to $(PREFIX) ===="
108 $(MKDIR) $(INSTALL_DIRS)
109 cd src && $(INSTALL_X) $(FILE_T) $(INSTALL_T)
110 cd src && test -f $(FILE_A) && $(INSTALL_F) $(FILE_A) $(INSTALL_STATIC) || :
111 $(RM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2)
112 cd src && test -f $(FILE_SO) && \
113 $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
114 $(LDCONFIG) $(INSTALL_LIB) && \
115 $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
116 $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
117 cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN)
118 cd etc && $(SED_PC) $(FILE_PC) > $(FILE_PC).tmp && \
119 $(INSTALL_F) $(FILE_PC).tmp $(INSTALL_PC) && \
120 $(RM) $(FILE_PC).tmp
121 cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
122 cd src/jit && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
123 @echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ===="
124 @echo ""
125 @echo "Note: the beta releases deliberately do NOT install a symlink for luajit"
126 @echo "You can do this now by running this command (with sudo):"
127 @echo ""
128 @echo " $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)"
129 @echo ""
131 uninstall:
132 @echo "==== Uninstalling LuaJIT $(VERSION) from $(PREFIX) ===="
133 $(UNINSTALL) $(INSTALL_T) $(INSTALL_STATIC) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) $(INSTALL_MAN)/$(FILE_MAN) $(INSTALL_PC)
134 for file in $(FILES_JITLIB); do \
135 $(UNINSTALL) $(INSTALL_JITLIB)/$$file; \
136 done
137 for file in $(FILES_INC); do \
138 $(UNINSTALL) $(INSTALL_INC)/$$file; \
139 done
140 $(LDCONFIG) $(INSTALL_LIB)
141 test -f $(INSTALL_TSYM) || $(UNINSTALL) $(INSTALL_TSYM)
142 $(RMDIR) $(UNINSTALL_DIRS) || :
143 @echo "==== Successfully uninstalled LuaJIT $(VERSION) from $(PREFIX) ===="
145 ##############################################################################
147 amalg:
148 @echo "Building LuaJIT $(VERSION)"
149 $(MAKE) -C src amalg
151 clean:
152 $(MAKE) -C src clean
154 .PHONY: all install amalg clean
156 ##############################################################################