diff options
Diffstat (limited to 'src/makefile')
-rw-r--r-- | src/makefile | 139 |
1 files changed, 92 insertions, 47 deletions
diff --git a/src/makefile b/src/makefile index faf50fa..c44f4ef 100644 --- a/src/makefile +++ b/src/makefile | |||
@@ -12,7 +12,7 @@ | |||
12 | # | 12 | # |
13 | # make PLAT=linux DEBUG=DEBUG LUAV=5.2 prefix=/sw | 13 | # make PLAT=linux DEBUG=DEBUG LUAV=5.2 prefix=/sw |
14 | 14 | ||
15 | # PLAT: linux macosx win32 | 15 | # PLAT: linux macosx win32 mingw |
16 | # platform to build for | 16 | # platform to build for |
17 | PLAT?=linux | 17 | PLAT?=linux |
18 | 18 | ||
@@ -33,6 +33,9 @@ LUAINC_macosx?=$(LUAINC_macosx_base)/lua/$(LUAV) | |||
33 | # FIXME default should this default to fink or to macports? | 33 | # FIXME default should this default to fink or to macports? |
34 | # What happens when more than one Lua version is installed? | 34 | # What happens when more than one Lua version is installed? |
35 | LUAPREFIX_macosx?=/opt/local | 35 | LUAPREFIX_macosx?=/opt/local |
36 | CDIR_macosx?=lib/lua/$(LUAV) | ||
37 | LDIR_macosx?=share/lua/$(LUAV) | ||
38 | |||
36 | 39 | ||
37 | # LUAINC_linux: | 40 | # LUAINC_linux: |
38 | # /usr/include/lua$(LUAV) | 41 | # /usr/include/lua$(LUAV) |
@@ -40,21 +43,41 @@ LUAPREFIX_macosx?=/opt/local | |||
40 | # /usr/local/include/lua$(LUAV) | 43 | # /usr/local/include/lua$(LUAV) |
41 | # where lua headers are found for linux builds | 44 | # where lua headers are found for linux builds |
42 | LUAINC_linux_base?=/usr/include | 45 | LUAINC_linux_base?=/usr/include |
43 | LUAINC_linux?=$(LUAINC_linux_base)/lua$(LUAV) | 46 | LUAINC_linux?=$(LUAINC_linux_base)/lua/$(LUAV) |
44 | LUAPREFIX_linux?=/usr/local | 47 | LUAPREFIX_linux?=/usr/local |
48 | CDIR_linux?=lib/lua/$(LUAV) | ||
49 | LDIR_linux?=share/lua/$(LUAV) | ||
50 | |||
51 | # where lua headers are found for mingw builds | ||
52 | # LUAINC_mingw: | ||
53 | # /opt/local/include | ||
54 | LUAINC_mingw_base?=/usr/include | ||
55 | LUAINC_mingw?=$(LUAINC_mingw_base)/lua/$(LUAV) | ||
56 | LUALIB_mingw_base?=/usr/bin | ||
57 | LUALIB_mingw?=$(LUALIB_mingw_base)/lua/$(LUAV)/lua$(subst .,,$(LUAV)).dll | ||
58 | LUAPREFIX_mingw?=/usr | ||
59 | CDIR_mingw?=lua/$(LUAV) | ||
60 | LDIR_mingw?=lua/$(LUAV)/lua | ||
61 | |||
45 | 62 | ||
46 | # LUAINC_win32: | 63 | # LUAINC_win32: |
47 | # LUALIB_win32: | 64 | # LUALIB_win32: |
48 | # where lua headers and libraries are found for win32 builds | 65 | # where lua headers and libraries are found for win32 builds |
49 | LUAINC_win32?="../../lua-5.1.3/src" | 66 | LUAINC_win32_base?= |
50 | LUALIB_win32?="../../lua-5.1.3" | 67 | LUAINC_win32?=$(LUAINC_win32_base)/lua/$(LUAV) |
68 | PLATFORM_win32?=Release | ||
51 | LUAPREFIX_win32?= | 69 | LUAPREFIX_win32?= |
52 | # FIXME default should be where lua-for-windows puts lua | 70 | CDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32) |
71 | LDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32)/lua | ||
72 | LUALIB_win32?=$(LUAPREFIX_win32)/lua/$(LUAV)/$(PLATFORM_win32) | ||
53 | 73 | ||
54 | # prefix: /usr/local /usr /opt/local /sw | 74 | # prefix: /usr/local /usr /opt/local /sw |
55 | # the top of the default install tree | 75 | # the top of the default install tree |
56 | prefix?=$(LUAPREFIX_$(PLAT)) | 76 | prefix?=$(LUAPREFIX_$(PLAT)) |
57 | 77 | ||
78 | CDIR?=$(CDIR_$(PLAT)) | ||
79 | LDIR?=$(LDIR_$(PLAT)) | ||
80 | |||
58 | # DESTDIR: (no default) | 81 | # DESTDIR: (no default) |
59 | # used by package managers to install into a temporary destination | 82 | # used by package managers to install into a temporary destination |
60 | DESTDIR= | 83 | DESTDIR= |
@@ -63,13 +86,6 @@ DESTDIR= | |||
63 | # Definitions below can be overridden on the make command line, but | 86 | # Definitions below can be overridden on the make command line, but |
64 | # shouldn't have to be. | 87 | # shouldn't have to be. |
65 | 88 | ||
66 | print: | ||
67 | @echo PLAT=$(PLAT) | ||
68 | @echo LUAV=$(LUAV) | ||
69 | @echo DEBUG=$(DEBUG) | ||
70 | @echo prefix=$(prefix) | ||
71 | @echo LUAINC_$(PLAT)=$(LUAINC_$(PLAT)) | ||
72 | @echo LUALIB_$(PLAT)=$(LUALIB_$(PLAT)) | ||
73 | 89 | ||
74 | #------ | 90 | #------ |
75 | # Install directories | 91 | # Install directories |
@@ -80,18 +96,28 @@ INSTALL_DATA=install -m644 | |||
80 | INSTALL_EXEC=install | 96 | INSTALL_EXEC=install |
81 | INSTALL_TOP=$(DESTDIR)$(prefix) | 97 | INSTALL_TOP=$(DESTDIR)$(prefix) |
82 | 98 | ||
83 | INSTALL_TOP_SHARE=$(INSTALL_TOP)/share/lua/$(LUAV) | 99 | INSTALL_TOP_LDIR=$(INSTALL_TOP)/$(LDIR) |
84 | INSTALL_TOP_LIB=$(INSTALL_TOP)/lib/lua/$(LUAV) | 100 | INSTALL_TOP_CDIR=$(INSTALL_TOP)/$(CDIR) |
85 | 101 | ||
86 | INSTALL_SOCKET_SHARE=$(INSTALL_TOP_SHARE)/socket | 102 | INSTALL_SOCKET_LDIR=$(INSTALL_TOP_LDIR)/socket |
87 | INSTALL_SOCKET_LIB=$(INSTALL_TOP_LIB)/socket | 103 | INSTALL_SOCKET_CDIR=$(INSTALL_TOP_CDIR)/socket |
88 | INSTALL_MIME_SHARE=$(INSTALL_TOP_SHARE)/mime | 104 | INSTALL_MIME_LDIR=$(INSTALL_TOP_LDIR)/mime |
89 | INSTALL_MIME_LIB=$(INSTALL_TOP_LIB)/mime | 105 | INSTALL_MIME_CDIR=$(INSTALL_TOP_CDIR)/mime |
106 | |||
107 | print: | ||
108 | @echo PLAT=$(PLAT) | ||
109 | @echo LUAV=$(LUAV) | ||
110 | @echo DEBUG=$(DEBUG) | ||
111 | @echo prefix=$(prefix) | ||
112 | @echo LUAINC_$(PLAT)=$(LUAINC_$(PLAT)) | ||
113 | @echo LUALIB_$(PLAT)=$(LUALIB_$(PLAT)) | ||
114 | @echo INSTALL_TOP_CDIR=$(INSTALL_TOP_CDIR) | ||
115 | @echo INSTALL_TOP_LDIR=$(INSTALL_TOP_LDIR) | ||
90 | 116 | ||
91 | #------ | 117 | #------ |
92 | # Supported platforms | 118 | # Supported platforms |
93 | # | 119 | # |
94 | PLATS= macosx linux win32 | 120 | PLATS= macosx linux win32 mingw |
95 | 121 | ||
96 | #------ | 122 | #------ |
97 | # Compiler and linker settings | 123 | # Compiler and linker settings |
@@ -117,37 +143,53 @@ CC_linux=gcc | |||
117 | DEF_linux=-DLUASOCKET_$(DEBUG) -DLUA_COMPAT_MODULE \ | 143 | DEF_linux=-DLUASOCKET_$(DEBUG) -DLUA_COMPAT_MODULE \ |
118 | -DLUASOCKET_API='__attribute__((visibility("default")))' \ | 144 | -DLUASOCKET_API='__attribute__((visibility("default")))' \ |
119 | -DMIME_API='__attribute__((visibility("default")))' | 145 | -DMIME_API='__attribute__((visibility("default")))' |
120 | CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra -Wimplicit -O2 -ggdb3 -fpic \ | 146 | CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra \ |
121 | -fvisibility=hidden | 147 | -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden |
122 | LDFLAGS_linux=-O -shared -fpic -o | 148 | LDFLAGS_linux=-O -shared -fpic -o |
123 | LD_linux=gcc | 149 | LD_linux=gcc |
124 | SOCKET_linux=usocket.o | 150 | SOCKET_linux=usocket.o |
125 | 151 | ||
126 | #------ | 152 | #------ |
127 | # Compiler and linker settings | 153 | # Compiler and linker settings |
154 | # for MingW | ||
155 | SO_mingw=dll | ||
156 | O_mingw=o | ||
157 | CC_mingw=gcc | ||
158 | DEF_mingw= -DLUASOCKET_INET_PTON -DLUASOCKET_$(DEBUG) -DLUA_COMPAT_MODULE \ | ||
159 | -DWINVER=0x0501 -DLUASOCKET_API='__declspec(dllexport)' \ | ||
160 | -DMIME_API='__declspec(dllexport)' | ||
161 | CFLAGS_mingw= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fno-common \ | ||
162 | -fvisibility=hidden | ||
163 | LDFLAGS_mingw= $(LUALIB) -shared -Wl,-s -lwsock32 -lws2_32 -o | ||
164 | LD_mingw=gcc | ||
165 | SOCKET_mingw=wsocket.o | ||
166 | |||
167 | |||
168 | #------ | ||
169 | # Compiler and linker settings | ||
128 | # for Win32 | 170 | # for Win32 |
129 | SO_win32=dll | 171 | SO_win32=dll |
130 | O_win32=obj | 172 | O_win32=obj |
131 | CC_win32=cl | 173 | CC_win32=cl |
132 | DEF_win32= /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" \ | 174 | DEF_win32= //D "WIN32" //D "NDEBUG" //D "_WINDOWS" //D "_USRDLL" \ |
133 | /D "LUASOCKET_API=__declspec(dllexport)" /D "_CRT_SECURE_NO_WARNINGS" \ | 175 | //D "LUASOCKET_API=__declspec(dllexport)" //D "_CRT_SECURE_NO_WARNINGS" \ |
134 | /D "_WINDLL" /D "LUA_COMPAT_MODULE" /D "MIME_API=__declspec(dllexport)" \ | 176 | //D "_WINDLL" //D "LUA_COMPAT_MODULE" \ |
135 | /D "LUASOCKET_$(DEBUG)" | 177 | //D "MIME_API=__declspec(dllexport)" \ |
136 | CFLAGS_win32=/I "$(LUAINC)" $(DEF) /O2 /Ot /MD /W3 /nologo | 178 | //D "LUASOCKET_$(DEBUG)" |
137 | LDFLAGS_win32= /nologo /link /NOLOGO /DLL /INCREMENTAL:NO \ | 179 | CFLAGS_win32=//I "$(LUAINC)" $(DEF) //O2 //Ot //MD //W3 //nologo |
138 | /LIBPATH:"$(LUALIB)" \ | 180 | LDFLAGS_win32= //nologo //link //NOLOGO //DLL //INCREMENTAL:NO \ |
139 | /MANIFEST \ | 181 | //MANIFEST //MANIFESTFILE:"intermediate.manifest" \ |
140 | /MANIFESTFILE:"intermediate.manifest" \ | 182 | //MANIFESTUAC:"level='asInvoker' uiAccess='false'" \ |
141 | /MANIFESTUAC:"level='asInvoker' uiAccess='false'" \ | 183 | //SUBSYSTEM:WINDOWS //OPT:REF //OPT:ICF //DYNAMICBASE:NO \ |
142 | /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /DYNAMICBASE:NO \ | 184 | //MACHINE:X86 /LIBPATH:"$(shell cmd //c echo $(LUALIB))" lua$(subst .,,$(LUAV)).lib \ |
143 | /MACHINE:X86 ws2_32.lib lua$(LUAV).lib /OUT: | 185 | wsock32.lib ws2_32.lib //OUT: |
144 | LD_win32=cl | 186 | LD_win32=cl |
145 | SOCKET_win32=wsocket.obj | 187 | SOCKET_win32=wsocket.obj |
146 | 188 | ||
147 | .SUFFIXES: .obj | 189 | .SUFFIXES: .obj |
148 | 190 | ||
149 | .c.obj: | 191 | .c.obj: |
150 | $(CC) $(CFLAGS) /Fo"$@" /c $< | 192 | $(CC) $(CFLAGS) //Fo"$@" //c $< |
151 | 193 | ||
152 | #------ | 194 | #------ |
153 | # Output file names | 195 | # Output file names |
@@ -223,7 +265,7 @@ SERIAL_OBJS:=\ | |||
223 | #------ | 265 | #------ |
224 | # Files to install | 266 | # Files to install |
225 | # | 267 | # |
226 | TO_SOCKET_SHARE= \ | 268 | TO_SOCKET_LDIR= \ |
227 | http.lua \ | 269 | http.lua \ |
228 | url.lua \ | 270 | url.lua \ |
229 | tp.lua \ | 271 | tp.lua \ |
@@ -231,7 +273,7 @@ TO_SOCKET_SHARE= \ | |||
231 | headers.lua \ | 273 | headers.lua \ |
232 | smtp.lua | 274 | smtp.lua |
233 | 275 | ||
234 | TO_TOP_SHARE= \ | 276 | TO_TOP_LDIR= \ |
235 | ltn12.lua \ | 277 | ltn12.lua \ |
236 | socket.lua \ | 278 | socket.lua \ |
237 | mime.lua | 279 | mime.lua |
@@ -250,6 +292,9 @@ win32: | |||
250 | linux: | 292 | linux: |
251 | $(MAKE) all-unix PLAT=linux | 293 | $(MAKE) all-unix PLAT=linux |
252 | 294 | ||
295 | mingw: | ||
296 | $(MAKE) all PLAT=mingw | ||
297 | |||
253 | none: | 298 | none: |
254 | @echo "Please run" | 299 | @echo "Please run" |
255 | @echo " make PLATFORM" | 300 | @echo " make PLATFORM" |
@@ -273,21 +318,21 @@ $(SERIAL_SO): $(SERIAL_OBJS) | |||
273 | $(LD) $(SERIAL_OBJS) $(LDFLAGS)$@ | 318 | $(LD) $(SERIAL_OBJS) $(LDFLAGS)$@ |
274 | 319 | ||
275 | install: | 320 | install: |
276 | $(INSTALL_DIR) $(INSTALL_TOP_SHARE) | 321 | $(INSTALL_DIR) $(INSTALL_TOP_LDIR) |
277 | $(INSTALL_DATA) $(TO_TOP_SHARE) $(INSTALL_TOP_SHARE) | 322 | $(INSTALL_DATA) $(TO_TOP_LDIR) $(INSTALL_TOP_LDIR) |
278 | $(INSTALL_DIR) $(INSTALL_SOCKET_SHARE) | 323 | $(INSTALL_DIR) $(INSTALL_SOCKET_LDIR) |
279 | $(INSTALL_DATA) $(TO_SOCKET_SHARE) $(INSTALL_SOCKET_SHARE) | 324 | $(INSTALL_DATA) $(TO_SOCKET_LDIR) $(INSTALL_SOCKET_LDIR) |
280 | $(INSTALL_DIR) $(INSTALL_SOCKET_LIB) | 325 | $(INSTALL_DIR) $(INSTALL_SOCKET_CDIR) |
281 | $(INSTALL_EXEC) $(SOCKET_SO) $(INSTALL_SOCKET_LIB)/core.$(SO) | 326 | $(INSTALL_EXEC) $(SOCKET_SO) $(INSTALL_SOCKET_CDIR)/core.$(SO) |
282 | $(INSTALL_DIR) $(INSTALL_MIME_LIB) | 327 | $(INSTALL_DIR) $(INSTALL_MIME_CDIR) |
283 | $(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_LIB)/core.$(SO) | 328 | $(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_CDIR)/core.$(SO) |
284 | 329 | ||
285 | install-unix: install | 330 | install-unix: install |
286 | $(INSTALL_EXEC) $(UNIX_SO) $(INSTALL_SOCKET_LIB)/$(UNIX_SO) | 331 | $(INSTALL_EXEC) $(UNIX_SO) $(INSTALL_SOCKET_CDIR)/$(UNIX_SO) |
287 | $(INSTALL_EXEC) $(SERIAL_SO) $(INSTALL_SOCKET_LIB)/$(SERIAL_SO) | 332 | $(INSTALL_EXEC) $(SERIAL_SO) $(INSTALL_SOCKET_CDIR)/$(SERIAL_SO) |
288 | 333 | ||
289 | local: | 334 | local: |
290 | $(MAKE) install INSTALL_TOP_LIB=.. INSTALL_TOP_SHARE=.. | 335 | $(MAKE) install INSTALL_TOP_CDIR=.. INSTALL_TOP_LDIR=.. |
291 | 336 | ||
292 | clean: | 337 | clean: |
293 | rm -f $(SOCKET_SO) $(SOCKET_OBJS) $(SERIAL_OBJS) | 338 | rm -f $(SOCKET_SO) $(SOCKET_OBJS) $(SERIAL_OBJS) |