Improve bytecode optimization of and/or operators.
[luajit-2.0.git] / Makefile
blobd74c581a243b9e4ba194554a44ceba3ace467c6d
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-2011 Mike Pall. See Copyright Notice in luajit.h
14 ##############################################################################
16 MAJVER= 2
17 MINVER= 0
18 RELVER= 0
19 PREREL= -beta6
20 VERSION= $(MAJVER).$(MINVER).$(RELVER)$(PREREL)
21 ABIVER= 5.1
22 NODOTABIVER= 51
24 ##############################################################################
26 # Change the installation path as needed. This automatically adjusts
27 # the paths in src/luaconf.h, too. Note: PREFIX must be an absolute path!
29 export PREFIX= /usr/local
30 ##############################################################################
32 DPREFIX= $(DESTDIR)$(PREFIX)
33 INSTALL_BIN= $(DPREFIX)/bin
34 INSTALL_LIB= $(DPREFIX)/lib
35 INSTALL_SHARE= $(DPREFIX)/share
36 INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER)
38 INSTALL_JITLIB= $(INSTALL_SHARE)/luajit-$(VERSION)/jit
39 INSTALL_LMOD= $(INSTALL_SHARE)/lua/$(ABIVER)
40 INSTALL_CMOD= $(INSTALL_LIB)/lua/$(ABIVER)
41 INSTALL_MAN= $(INSTALL_SHARE)/man/man1
42 INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
44 INSTALL_TNAME= luajit-$(VERSION)
45 INSTALL_TSYMNAME= luajit
46 INSTALL_ANAME= libluajit-$(ABIVER).a
47 INSTALL_SONAME= libluajit-$(ABIVER).so.$(MAJVER).$(MINVER).$(RELVER)
48 INSTALL_SOSHORT= libluajit-$(ABIVER).so
49 INSTALL_DYLIBNAME= libluajit-$(NODOTABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib
50 INSTALL_DYLIBSHORT1= libluajit-$(NODOTABIVER).dylib
51 INSTALL_DYLIBSHORT2= libluajit-$(NODOTABIVER).$(MAJVER).dylib
52 INSTALL_PCNAME= luajit.pc
54 INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
55 INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
56 INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
57 INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
58 INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
59 INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
60 INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
62 INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
63 $(INSTALL_PKGCONFIG) $(INSTALL_JITLIB) $(INSTALL_LMOD) $(INSTALL_CMOD)
65 RM= rm -f
66 MKDIR= mkdir -p
67 SYMLINK= ln -sf
68 INSTALL_X= install -m 0755
69 INSTALL_F= install -m 0644
70 LDCONFIG= ldconfig -n
71 SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|"
73 FILE_T= luajit
74 FILE_A= libluajit.a
75 FILE_SO= libluajit.so
76 FILE_MAN= luajit.1
77 FILE_PC= luajit.pc
78 FILES_INC= lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h
79 FILES_JITLIB= bc.lua v.lua dump.lua dis_x86.lua dis_x64.lua vmdef.lua
81 ifeq (,$(findstring Windows,$(OS)))
82 ifeq (Darwin,$(shell uname -s))
83 INSTALL_SONAME= $(INSTALL_DYLIBNAME)
84 INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT1)
85 INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT2)
86 LDCONFIG= :
87 endif
88 endif
90 ##############################################################################
92 INSTALL_DEP= src/luajit
94 default all $(INSTALL_DEP):
95 @echo "==== Building LuaJIT $(VERSION) ===="
96 $(MAKE) -C src
97 @echo "==== Successfully built LuaJIT $(VERSION) ===="
99 install: $(INSTALL_DEP)
100 @echo "==== Installing LuaJIT $(VERSION) to $(PREFIX) ===="
101 $(MKDIR) $(INSTALL_DIRS)
102 cd src && $(INSTALL_X) $(FILE_T) $(INSTALL_T)
103 cd src && test -f $(FILE_A) && $(INSTALL_F) $(FILE_A) $(INSTALL_STATIC) || :
104 $(RM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2)
105 cd src && test -f $(FILE_SO) && \
106 $(INSTALL_F) $(FILE_SO) $(INSTALL_DYN) && \
107 $(LDCONFIG) $(INSTALL_LIB) && \
108 $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
109 $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
110 cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN)
111 cd etc && $(SED_PC) $(FILE_PC) > $(FILE_PC).tmp && \
112 $(INSTALL_F) $(FILE_PC).tmp $(INSTALL_PC) && \
113 $(RM) $(FILE_PC).tmp
114 cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
115 cd lib && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
116 @echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ===="
117 @echo ""
118 @echo "Note: the beta releases deliberately do NOT install a symlink for luajit"
119 @echo "You can do this now by running this command (with sudo):"
120 @echo ""
121 @echo " $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)"
122 @echo ""
124 ##############################################################################
126 amalg:
127 @echo "Building LuaJIT $(VERSION)"
128 $(MAKE) -C src amalg
130 clean:
131 $(MAKE) -C src clean
133 cleaner:
134 $(MAKE) -C src cleaner
136 distclean:
137 $(MAKE) -C src distclean
139 .PHONY: all install amalg clean cleaner distclean
141 ##############################################################################