diff options
author | Mike Pall <mike> | 2013-07-09 17:25:05 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2013-07-09 17:30:02 +0200 |
commit | 519ef0cba7ebceb99e727da9655692d137854188 (patch) | |
tree | 5f765b2adb14d39162ff8e52b300974524b796b1 | |
parent | b2a13ddd74384ab6b73c12a953e22c1c3f1726da (diff) | |
download | luajit-519ef0cba7ebceb99e727da9655692d137854188.tar.gz luajit-519ef0cba7ebceb99e727da9655692d137854188.tar.bz2 luajit-519ef0cba7ebceb99e727da9655692d137854188.zip |
Add support for multilib distro builds.
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | doc/install.html | 4 | ||||
-rw-r--r-- | etc/luajit.pc | 5 | ||||
-rw-r--r-- | src/Makefile | 13 | ||||
-rw-r--r-- | src/luaconf.h | 46 |
5 files changed, 50 insertions, 24 deletions
@@ -25,11 +25,12 @@ ABIVER= 5.1 | |||
25 | # the paths in src/luaconf.h, too. Note: PREFIX must be an absolute path! | 25 | # the paths in src/luaconf.h, too. Note: PREFIX must be an absolute path! |
26 | # | 26 | # |
27 | export PREFIX= /usr/local | 27 | export PREFIX= /usr/local |
28 | export MULTILIB= lib | ||
28 | ############################################################################## | 29 | ############################################################################## |
29 | 30 | ||
30 | DPREFIX= $(DESTDIR)$(PREFIX) | 31 | DPREFIX= $(DESTDIR)$(PREFIX) |
31 | INSTALL_BIN= $(DPREFIX)/bin | 32 | INSTALL_BIN= $(DPREFIX)/bin |
32 | INSTALL_LIB= $(DPREFIX)/lib | 33 | INSTALL_LIB= $(DPREFIX)/$(MULTILIB) |
33 | INSTALL_SHARE= $(DPREFIX)/share | 34 | INSTALL_SHARE= $(DPREFIX)/share |
34 | INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER) | 35 | INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER) |
35 | 36 | ||
@@ -73,7 +74,8 @@ INSTALL_X= install -m 0755 | |||
73 | INSTALL_F= install -m 0644 | 74 | INSTALL_F= install -m 0644 |
74 | UNINSTALL= $(RM) | 75 | UNINSTALL= $(RM) |
75 | LDCONFIG= ldconfig -n | 76 | LDCONFIG= ldconfig -n |
76 | SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" | 77 | SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \ |
78 | -e "s|^multilib=.*|multilib=$(MULTILIB)|" | ||
77 | 79 | ||
78 | FILE_T= luajit | 80 | FILE_T= luajit |
79 | FILE_A= libluajit.a | 81 | FILE_A= libluajit.a |
diff --git a/doc/install.html b/doc/install.html index faf19c43..b7bf75ce 100644 --- a/doc/install.html +++ b/doc/install.html | |||
@@ -565,9 +565,11 @@ for a regular distribution build: | |||
565 | <ul> | 565 | <ul> |
566 | <li><tt>PREFIX</tt> overrides the installation path and should usually | 566 | <li><tt>PREFIX</tt> overrides the installation path and should usually |
567 | be set to <tt>/usr</tt>. Setting this also changes the module paths and | 567 | be set to <tt>/usr</tt>. Setting this also changes the module paths and |
568 | the <tt>-rpath</tt> of the shared library.</li> | 568 | the paths needed to locate the shared library.</li> |
569 | <li><tt>DESTDIR</tt> is an absolute path which allows you to install | 569 | <li><tt>DESTDIR</tt> is an absolute path which allows you to install |
570 | to a shadow tree instead of the root tree of the build system.</li> | 570 | to a shadow tree instead of the root tree of the build system.</li> |
571 | <li><tt>MULTILIB</tt> sets the architecture-specific library path component | ||
572 | for multilib systems. The default is <tt>lib</tt>.</li> | ||
571 | <li>Have a look at the top-level <tt>Makefile</tt> and <tt>src/Makefile</tt> | 573 | <li>Have a look at the top-level <tt>Makefile</tt> and <tt>src/Makefile</tt> |
572 | for additional variables to tweak. The following variables <em>may</em> be | 574 | for additional variables to tweak. The following variables <em>may</em> be |
573 | overridden, but it's <em>not</em> recommended, except for special needs | 575 | overridden, but it's <em>not</em> recommended, except for special needs |
diff --git a/etc/luajit.pc b/etc/luajit.pc index 5a982a62..48233965 100644 --- a/etc/luajit.pc +++ b/etc/luajit.pc | |||
@@ -6,13 +6,14 @@ version=${majver}.${minver}.${relver} | |||
6 | abiver=5.1 | 6 | abiver=5.1 |
7 | 7 | ||
8 | prefix=/usr/local | 8 | prefix=/usr/local |
9 | multilib=lib | ||
9 | exec_prefix=${prefix} | 10 | exec_prefix=${prefix} |
10 | libdir=${exec_prefix}/lib | 11 | libdir=${exec_prefix}/${multilib} |
11 | libname=luajit-${abiver} | 12 | libname=luajit-${abiver} |
12 | includedir=${prefix}/include/luajit-${majver}.${minver} | 13 | includedir=${prefix}/include/luajit-${majver}.${minver} |
13 | 14 | ||
14 | INSTALL_LMOD=${prefix}/share/lua/${abiver} | 15 | INSTALL_LMOD=${prefix}/share/lua/${abiver} |
15 | INSTALL_CMOD=${prefix}/lib/lua/${abiver} | 16 | INSTALL_CMOD=${prefix}/${multilib}/lua/${abiver} |
16 | 17 | ||
17 | Name: LuaJIT | 18 | Name: LuaJIT |
18 | Description: Just-in-time compiler for Lua | 19 | Description: Just-in-time compiler for Lua |
diff --git a/src/Makefile b/src/Makefile index 999e2808..04699343 100644 --- a/src/Makefile +++ b/src/Makefile | |||
@@ -188,9 +188,10 @@ TARGET_LD= $(CROSS)$(CC) | |||
188 | TARGET_AR= $(CROSS)ar rcus | 188 | TARGET_AR= $(CROSS)ar rcus |
189 | TARGET_STRIP= $(CROSS)strip | 189 | TARGET_STRIP= $(CROSS)strip |
190 | 190 | ||
191 | TARGET_LIBPATH= $(or $(PREFIX),/usr/local)/$(or $(MULTILIB),lib) | ||
191 | TARGET_SONAME= libluajit-$(ABIVER).so.$(MAJVER) | 192 | TARGET_SONAME= libluajit-$(ABIVER).so.$(MAJVER) |
192 | TARGET_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).dylib | 193 | TARGET_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).dylib |
193 | TARGET_DYLIBPATH= $(or $(PREFIX),/usr/local)/lib/$(TARGET_DYLIBNAME) | 194 | TARGET_DYLIBPATH= $(TARGET_LIBPATH)/$(TARGET_DYLIBNAME) |
194 | TARGET_DLLNAME= lua$(NODOTABIVER).dll | 195 | TARGET_DLLNAME= lua$(NODOTABIVER).dll |
195 | TARGET_XSHLDFLAGS= -shared -fPIC -Wl,-soname,$(TARGET_SONAME) | 196 | TARGET_XSHLDFLAGS= -shared -fPIC -Wl,-soname,$(TARGET_SONAME) |
196 | TARGET_DYNXLDOPTS= | 197 | TARGET_DYNXLDOPTS= |
@@ -249,12 +250,18 @@ TARGET_ARCH+= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET_LJARCH)) | |||
249 | 250 | ||
250 | ifneq (,$(PREFIX)) | 251 | ifneq (,$(PREFIX)) |
251 | ifneq (/usr/local,$(PREFIX)) | 252 | ifneq (/usr/local,$(PREFIX)) |
252 | TARGET_XCFLAGS+= -DLUA_XROOT=\"$(PREFIX)/\" | 253 | TARGET_XCFLAGS+= -DLUA_ROOT=\"$(PREFIX)\" |
253 | ifneq (/usr,$(PREFIX)) | 254 | ifneq (/usr,$(PREFIX)) |
254 | TARGET_DYNXLDOPTS= -Wl,-rpath,$(PREFIX)/lib | 255 | TARGET_DYNXLDOPTS= -Wl,-rpath,$(TARGET_LIBPATH) |
255 | endif | 256 | endif |
256 | endif | 257 | endif |
257 | endif | 258 | endif |
259 | ifneq (,$(MULTILIB)) | ||
260 | TARGET_XCFLAGS+= -DLUA_MULTILIB=\"$(MULTILIB)\" | ||
261 | endif | ||
262 | ifneq (,$(LMULTILIB)) | ||
263 | TARGET_XCFLAGS+= -DLUA_LMULTILIB=\"$(LMULTILIB)\" | ||
264 | endif | ||
258 | 265 | ||
259 | ############################################################################## | 266 | ############################################################################## |
260 | # System detection. | 267 | # System detection. |
diff --git a/src/luaconf.h b/src/luaconf.h index d55caab1..224bfada 100644 --- a/src/luaconf.h +++ b/src/luaconf.h | |||
@@ -23,26 +23,40 @@ | |||
23 | ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" | 23 | ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" |
24 | #else | 24 | #else |
25 | /* | 25 | /* |
26 | ** Note to distribution maintainers: do NOT patch the following line! | 26 | ** Note to distribution maintainers: do NOT patch the following lines! |
27 | ** Please read ../doc/install.html#distro and pass PREFIX=/usr instead. | 27 | ** Please read ../doc/install.html#distro and pass PREFIX=/usr instead. |
28 | */ | 28 | */ |
29 | #define LUA_ROOT "/usr/local/" | 29 | #ifndef LUA_MULTILIB |
30 | #define LUA_LDIR LUA_ROOT "share/lua/5.1/" | 30 | #define LUA_MULTILIB "lib" |
31 | #define LUA_CDIR LUA_ROOT "lib/lua/5.1/" | 31 | #endif |
32 | #ifdef LUA_XROOT | 32 | #ifndef LUA_LMULTILIB |
33 | #define LUA_JDIR LUA_XROOT "share/luajit-2.0.2/" | 33 | #define LUA_LMULTILIB "lib" |
34 | #define LUA_XPATH \ | 34 | #endif |
35 | ";" LUA_XROOT "share/lua/5.1/?.lua;" LUA_XROOT "share/lua/5.1/?/init.lua" | 35 | #define LUA_LROOT "/usr/local" |
36 | #define LUA_XCPATH LUA_XROOT "lib/lua/5.1/?.so;" | 36 | #define LUA_LUADIR "/lua/5.1/" |
37 | #define LUA_LJDIR "/luajit-2.0.2/" | ||
38 | |||
39 | #ifdef LUA_ROOT | ||
40 | #define LUA_JROOT LUA_ROOT | ||
41 | #define LUA_RLDIR LUA_ROOT "/share" LUA_LUADIR | ||
42 | #define LUA_RCDIR LUA_ROOT "/" LUA_MULTILIB LUA_LUADIR | ||
43 | #define LUA_RLPATH ";" LUA_RLDIR "?.lua;" LUA_RLDIR "?/init.lua" | ||
44 | #define LUA_RCPATH ";" LUA_RCDIR "?.so" | ||
37 | #else | 45 | #else |
38 | #define LUA_JDIR LUA_ROOT "share/luajit-2.0.2/" | 46 | #define LUA_JROOT LUA_LROOT |
39 | #define LUA_XPATH | 47 | #define LUA_RLPATH |
40 | #define LUA_XCPATH | 48 | #define LUA_RCPATH |
41 | #endif | 49 | #endif |
42 | #define LUA_PATH_DEFAULT \ | 50 | |
43 | "./?.lua;" LUA_JDIR"?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua" LUA_XPATH | 51 | #define LUA_JPATH ";" LUA_JROOT "/share" LUA_LJDIR "?.lua" |
44 | #define LUA_CPATH_DEFAULT \ | 52 | #define LUA_LLDIR LUA_LROOT "/share" LUA_LUADIR |
45 | "./?.so;" LUA_CDIR"?.so;" LUA_XCPATH LUA_CDIR"loadall.so" | 53 | #define LUA_LCDIR LUA_LROOT "/" LUA_LMULTILIB LUA_LUADIR |
54 | #define LUA_LLPATH ";" LUA_LLDIR "?.lua;" LUA_LLDIR "?/init.lua" | ||
55 | #define LUA_LCPATH1 ";" LUA_LCDIR "?.so" | ||
56 | #define LUA_LCPATH2 ";" LUA_LCDIR "loadall.so" | ||
57 | |||
58 | #define LUA_PATH_DEFAULT "./?.lua" LUA_JPATH LUA_LLPATH LUA_RLPATH | ||
59 | #define LUA_CPATH_DEFAULT "./?.so" LUA_LCPATH1 LUA_RCPATH LUA_LCPATH2 | ||
46 | #endif | 60 | #endif |
47 | 61 | ||
48 | /* Environment variable names for path overrides and initialization code. */ | 62 | /* Environment variable names for path overrides and initialization code. */ |