aboutsummaryrefslogtreecommitdiff
path: root/src/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/makefile')
-rw-r--r--src/makefile139
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
17PLAT?=linux 17PLAT?=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?
35LUAPREFIX_macosx?=/opt/local 35LUAPREFIX_macosx?=/opt/local
36CDIR_macosx?=lib/lua/$(LUAV)
37LDIR_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
42LUAINC_linux_base?=/usr/include 45LUAINC_linux_base?=/usr/include
43LUAINC_linux?=$(LUAINC_linux_base)/lua$(LUAV) 46LUAINC_linux?=$(LUAINC_linux_base)/lua/$(LUAV)
44LUAPREFIX_linux?=/usr/local 47LUAPREFIX_linux?=/usr/local
48CDIR_linux?=lib/lua/$(LUAV)
49LDIR_linux?=share/lua/$(LUAV)
50
51# where lua headers are found for mingw builds
52# LUAINC_mingw:
53# /opt/local/include
54LUAINC_mingw_base?=/usr/include
55LUAINC_mingw?=$(LUAINC_mingw_base)/lua/$(LUAV)
56LUALIB_mingw_base?=/usr/bin
57LUALIB_mingw?=$(LUALIB_mingw_base)/lua/$(LUAV)/lua$(subst .,,$(LUAV)).dll
58LUAPREFIX_mingw?=/usr
59CDIR_mingw?=lua/$(LUAV)
60LDIR_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
49LUAINC_win32?="../../lua-5.1.3/src" 66LUAINC_win32_base?=
50LUALIB_win32?="../../lua-5.1.3" 67LUAINC_win32?=$(LUAINC_win32_base)/lua/$(LUAV)
68PLATFORM_win32?=Release
51LUAPREFIX_win32?= 69LUAPREFIX_win32?=
52# FIXME default should be where lua-for-windows puts lua 70CDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32)
71LDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32)/lua
72LUALIB_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
56prefix?=$(LUAPREFIX_$(PLAT)) 76prefix?=$(LUAPREFIX_$(PLAT))
57 77
78CDIR?=$(CDIR_$(PLAT))
79LDIR?=$(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
60DESTDIR= 83DESTDIR=
@@ -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
66print:
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
80INSTALL_EXEC=install 96INSTALL_EXEC=install
81INSTALL_TOP=$(DESTDIR)$(prefix) 97INSTALL_TOP=$(DESTDIR)$(prefix)
82 98
83INSTALL_TOP_SHARE=$(INSTALL_TOP)/share/lua/$(LUAV) 99INSTALL_TOP_LDIR=$(INSTALL_TOP)/$(LDIR)
84INSTALL_TOP_LIB=$(INSTALL_TOP)/lib/lua/$(LUAV) 100INSTALL_TOP_CDIR=$(INSTALL_TOP)/$(CDIR)
85 101
86INSTALL_SOCKET_SHARE=$(INSTALL_TOP_SHARE)/socket 102INSTALL_SOCKET_LDIR=$(INSTALL_TOP_LDIR)/socket
87INSTALL_SOCKET_LIB=$(INSTALL_TOP_LIB)/socket 103INSTALL_SOCKET_CDIR=$(INSTALL_TOP_CDIR)/socket
88INSTALL_MIME_SHARE=$(INSTALL_TOP_SHARE)/mime 104INSTALL_MIME_LDIR=$(INSTALL_TOP_LDIR)/mime
89INSTALL_MIME_LIB=$(INSTALL_TOP_LIB)/mime 105INSTALL_MIME_CDIR=$(INSTALL_TOP_CDIR)/mime
106
107print:
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#
94PLATS= macosx linux win32 120PLATS= 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
117DEF_linux=-DLUASOCKET_$(DEBUG) -DLUA_COMPAT_MODULE \ 143DEF_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")))'
120CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra -Wimplicit -O2 -ggdb3 -fpic \ 146CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra \
121 -fvisibility=hidden 147 -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden
122LDFLAGS_linux=-O -shared -fpic -o 148LDFLAGS_linux=-O -shared -fpic -o
123LD_linux=gcc 149LD_linux=gcc
124SOCKET_linux=usocket.o 150SOCKET_linux=usocket.o
125 151
126#------ 152#------
127# Compiler and linker settings 153# Compiler and linker settings
154# for MingW
155SO_mingw=dll
156O_mingw=o
157CC_mingw=gcc
158DEF_mingw= -DLUASOCKET_INET_PTON -DLUASOCKET_$(DEBUG) -DLUA_COMPAT_MODULE \
159 -DWINVER=0x0501 -DLUASOCKET_API='__declspec(dllexport)' \
160 -DMIME_API='__declspec(dllexport)'
161CFLAGS_mingw= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fno-common \
162 -fvisibility=hidden
163LDFLAGS_mingw= $(LUALIB) -shared -Wl,-s -lwsock32 -lws2_32 -o
164LD_mingw=gcc
165SOCKET_mingw=wsocket.o
166
167
168#------
169# Compiler and linker settings
128# for Win32 170# for Win32
129SO_win32=dll 171SO_win32=dll
130O_win32=obj 172O_win32=obj
131CC_win32=cl 173CC_win32=cl
132DEF_win32= /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" \ 174DEF_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)" \
136CFLAGS_win32=/I "$(LUAINC)" $(DEF) /O2 /Ot /MD /W3 /nologo 178 //D "LUASOCKET_$(DEBUG)"
137LDFLAGS_win32= /nologo /link /NOLOGO /DLL /INCREMENTAL:NO \ 179CFLAGS_win32=//I "$(LUAINC)" $(DEF) //O2 //Ot //MD //W3 //nologo
138 /LIBPATH:"$(LUALIB)" \ 180LDFLAGS_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:
144LD_win32=cl 186LD_win32=cl
145SOCKET_win32=wsocket.obj 187SOCKET_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#
226TO_SOCKET_SHARE= \ 268TO_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
234TO_TOP_SHARE= \ 276TO_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:
250linux: 292linux:
251 $(MAKE) all-unix PLAT=linux 293 $(MAKE) all-unix PLAT=linux
252 294
295mingw:
296 $(MAKE) all PLAT=mingw
297
253none: 298none:
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
275install: 320install:
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
285install-unix: install 330install-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
289local: 334local:
290 $(MAKE) install INSTALL_TOP_LIB=.. INSTALL_TOP_SHARE=.. 335 $(MAKE) install INSTALL_TOP_CDIR=.. INSTALL_TOP_LDIR=..
291 336
292clean: 337clean:
293 rm -f $(SOCKET_SO) $(SOCKET_OBJS) $(SERIAL_OBJS) 338 rm -f $(SOCKET_SO) $(SOCKET_OBJS) $(SERIAL_OBJS)