aboutsummaryrefslogtreecommitdiff
path: root/src/makefile
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2011-05-25 20:57:22 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2011-05-25 20:57:22 +0000
commit3a8ba90dfb0c2eb224f317dd692ede426691e72a (patch)
treefe1cc5379a2e0e031663fe9c15d908653844bc73 /src/makefile
parentbce60be30fe8e9c1b0eb33128c23c93d7bca5303 (diff)
downloadluasocket-3a8ba90dfb0c2eb224f317dd692ede426691e72a.tar.gz
luasocket-3a8ba90dfb0c2eb224f317dd692ede426691e72a.tar.bz2
luasocket-3a8ba90dfb0c2eb224f317dd692ede426691e72a.zip
Saving before big changes to support IPv6.
Diffstat (limited to 'src/makefile')
-rw-r--r--src/makefile173
1 files changed, 112 insertions, 61 deletions
diff --git a/src/makefile b/src/makefile
index 3351997..701feb3 100644
--- a/src/makefile
+++ b/src/makefile
@@ -1,8 +1,13 @@
1PLAT = none 1PLAT?=macosx
2
2INSTALL_DATA=cp 3INSTALL_DATA=cp
3INSTALL_EXEC=cp 4INSTALL_EXEC=cp
4INSTALL_TOP= /opt/local 5INSTALL_TOP=/opt/local
5LUAINC= $(LUAINC_$(PLAT)) 6
7LUAINC_macosx=/opt/local/include
8LUAINC_linux=/usr/include/lua5.1
9LUAINC_win32="../../lua-5.1.3/src"
10LUALIB_win32="../../lua-5.1.3"
6 11
7#------ 12#------
8# Install directories 13# Install directories
@@ -15,40 +20,76 @@ INSTALL_MIME_SHARE=$(INSTALL_TOP_SHARE)/mime
15INSTALL_MIME_LIB=$(INSTALL_TOP_LIB)/mime 20INSTALL_MIME_LIB=$(INSTALL_TOP_LIB)/mime
16 21
17#------ 22#------
18# Output file names 23# Supported platforms
19# 24#
20EXT=so 25PLATS= macosx linux win32
21SOCKET_V=2.0.3
22MIME_V=1.0.3
23SOCKET_SO=socket.$(EXT).$(SOCKET_V)
24MIME_SO=mime.$(EXT).$(MIME_V)
25UNIX_SO=unix.$(EXT)
26 26
27#------ 27#------
28# Compiler and linker settings 28# Compiler and linker settings
29# for Mac OS X 29# for Mac OS X
30LUAINC_macosx= -I/opt/local/include 30SO_macosx=so
31O_macosx=o
31CC_macosx=gcc 32CC_macosx=gcc
32DEF_macosx= -DLUASOCKET_DEBUG -DUNIX_HAS_SUN_LEN \ 33DEF_macosx= -DLUASOCKET_DEBUG -DUNIX_HAS_SUN_LEN \
33 -DLUASOCKET_API='__attribute__((visibility("default")))' \ 34 -DLUASOCKET_API='__attribute__((visibility("default")))' \
34 -DMIME_API='__attribute__((visibility("default")))' 35 -DMIME_API='__attribute__((visibility("default")))'
35CFLAGS_macosx= $(LUAINC) $(COMPAT) $(DEF) -pedantic -Wall -O2 -fno-common \ 36CFLAGS_macosx= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fno-common \
36 -fvisibility=hidden 37 -fvisibility=hidden
37LDFLAGS_macosx= -bundle -undefined dynamic_lookup 38LDFLAGS_macosx= -bundle -undefined dynamic_lookup -o
38LD_macosx= export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc 39LD_macosx= export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc
40SOCKET_macosx=usocket.o
39 41
40#------ 42#------
41# Compiler and linker settings 43# Compiler and linker settings
42# for Linux 44# for Linux
43LUAINC_linux= -I/usr/local/include/lua5.1 45SO_linux=so
46O_linux=o
44CC_linux=gcc 47CC_linux=gcc
45DEF_linux=-DLUASOCKET_DEBUG \ 48DEF_linux=-DLUASOCKET_DEBUG \
46 -DLUASOCKET_API='__attribute__((visibility("default")))' \ 49 -DLUASOCKET_API='__attribute__((visibility("default")))' \
47 -DMIME_API='__attribute__((visibility("default")))' 50 -DMIME_API='__attribute__((visibility("default")))'
48CFLAGS_linux= $(LUAINC) $(DEF) -pedantic -Wall -O2 -fpic \ 51CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fpic \
49 -fvisibility=hidden 52 -fvisibility=hidden
50LDFLAGS_linux=-O -shared -fpic 53LDFLAGS_linux=-O -shared -fpic -o
51LD_linux= gcc 54LD_linux=gcc
55SOCKET_linux=usocket.o
56
57#------
58# Compiler and linker settings
59# for Win32
60SO_win32=dll
61O_win32=obj
62CC_win32=cl
63DEF_win32= /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" \
64 /D "LUASOCKET_API=__declspec(dllexport)" /D "LUASOCKET_DEBUG" \
65 /D "_CRT_SECURE_NO_WARNINGS" /D "_WINDLL"
66CFLAGS_win32=/I$(LUAINC) $(DEF) /O2 /Ot /MD /W3 /nologo
67LDFLAGS_win32= /nologo /link /NOLOGO /DLL /INCREMENTAL:NO \
68 /LIBPATH:$(LUALIB) \
69 /MANIFEST \
70 /MANIFESTFILE:"intermediate.manifest" \
71 /MANIFESTUAC:"level='asInvoker' uiAccess='false'" \
72 /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /DYNAMICBASE:NO \
73 /MACHINE:X86 ws2_32.lib lua5.1.lib /OUT:
74LD_win32=cl
75SOCKET_win32=wsocket.obj
76
77.SUFFIXES: .obj
78
79.c.obj:
80 $(CC) $(CFLAGS) /Fo"$@" /c $<
81
82#------
83# Output file names
84#
85SO=$(SO_$(PLAT))
86O=$(O_$(PLAT))
87SOCKET_V=2.0.3
88MIME_V=1.0.3
89SOCKET_SO=socket.$(SO).$(SOCKET_V)
90MIME_SO=mime.$(SO).$(MIME_V)
91UNIX_SO=unix.$(SO)
92SOCKET=$(SOCKET_$(PLAT))
52 93
53#------ 94#------
54# Settings selected for platform 95# Settings selected for platform
@@ -58,46 +99,48 @@ DEF=$(DEF_$(PLAT))
58CFLAGS=$(CFLAGS_$(PLAT)) 99CFLAGS=$(CFLAGS_$(PLAT))
59LDFLAGS=$(LDFLAGS_$(PLAT)) 100LDFLAGS=$(LDFLAGS_$(PLAT))
60LD=$(LD_$(PLAT)) 101LD=$(LD_$(PLAT))
102LUAINC= $(LUAINC_$(PLAT))
103LUALIB= $(LUALIB_$(PLAT))
61 104
62#------ 105#------
63# Modules belonging to socket-core 106# Modules belonging to socket-core
64# 107#
65SOCKET_OBJS= \ 108SOCKET_OBJS= \
66 luasocket.o \ 109 luasocket.$(O) \
67 timeout.o \ 110 timeout.$(O) \
68 buffer.o \ 111 buffer.$(O) \
69 io.o \ 112 io.$(O) \
70 auxiliar.o \ 113 auxiliar.$(O) \
71 options.o \ 114 options.$(O) \
72 inet.o \ 115 inet.$(O) \
73 usocket.o \ 116 $(SOCKET) \
74 except.o \ 117 except.$(O) \
75 select.o \ 118 select.$(O) \
76 tcp.o \ 119 tcp.$(O) \
77 udp.o 120 udp.$(O)
78 121
79#------ 122#------
80# Modules belonging mime-core 123# Modules belonging mime-core
81# 124#
82MIME_OBJS= \ 125MIME_OBJS= \
83 mime.o 126 mime.$(O)
84 127
85#------ 128#------
86# Modules belonging unix (local domain sockets) 129# Modules belonging unix (local domain sockets)
87# 130#
88UNIX_OBJS:=\ 131UNIX_OBJS=\
89 buffer.o \ 132 buffer.$(O) \
90 auxiliar.o \ 133 auxiliar.$(O) \
91 options.o \ 134 options.$(O) \
92 timeout.o \ 135 timeout.$(O) \
93 io.o \ 136 io.$(O) \
94 usocket.o \ 137 usocket.$(O) \
95 unix.o 138 unix.$(O)
96 139
97#------ 140#------
98# Files to install 141# Files to install
99# 142#
100TO_SOCKET_SHARE:= \ 143TO_SOCKET_SHARE= \
101 http.lua \ 144 http.lua \
102 url.lua \ 145 url.lua \
103 tp.lua \ 146 tp.lua \
@@ -105,33 +148,41 @@ TO_SOCKET_SHARE:= \
105 headers.lua \ 148 headers.lua \
106 smtp.lua 149 smtp.lua
107 150
108TO_TOP_SHARE:= \ 151TO_TOP_SHARE= \
109 ltn12.lua \ 152 ltn12.lua \
110 socket.lua \ 153 socket.lua \
111 mime.lua 154 mime.lua
112 155
156#------
157# Targets
158#
113default: $(PLAT) 159default: $(PLAT)
114 160
115macosx: 161macosx:
116 $(MAKE) all PLAT=macosx 162 $(MAKE) all PLAT=macosx
117 163
164win32:
165 $(MAKE) all PLAT=win32
166
118linux: 167linux:
119 $(MAKE) all PLAT=linux 168 $(MAKE) all PLAT=linux
120 169
121none: 170none:
122 @echo "Please choose a platform:" 171 @echo "Please run"
172 @echo " make PLATFORM"
173 @echo "where PLATFORM is one of these:"
123 @echo " $(PLATS)" 174 @echo " $(PLATS)"
124 175
125all: $(SOCKET_SO) $(MIME_SO) 176all: $(SOCKET_SO) $(MIME_SO)
126 177
127$(SOCKET_SO): $(SOCKET_OBJS) 178$(SOCKET_SO): $(SOCKET_OBJS)
128 $(LD) $(LDFLAGS) -o $@ $(SOCKET_OBJS) 179 $(LD) $(SOCKET_OBJS) $(LDFLAGS)$@
129 180
130$(MIME_SO): $(MIME_OBJS) 181$(MIME_SO): $(MIME_OBJS)
131 $(LD) $(LDFLAGS) -o $@ $(MIME_OBJS) 182 $(LD) $(MIME_OBJS) $(LDFLAGS)$@
132 183
133$(UNIX_SO): $(UNIX_OBJS) 184$(UNIX_SO): $(UNIX_OBJS)
134 $(LD) $(LDFLAGS) -o $@ $(UNIX_OBJS) 185 $(LD) $(UNIX_OBJS) $(LDFLAGS)$@
135 186
136install: 187install:
137 mkdir -p $(INSTALL_TOP_SHARE) 188 mkdir -p $(INSTALL_TOP_SHARE)
@@ -139,9 +190,9 @@ install:
139 mkdir -p $(INSTALL_SOCKET_SHARE) 190 mkdir -p $(INSTALL_SOCKET_SHARE)
140 $(INSTALL_DATA) $(TO_SOCKET_SHARE) $(INSTALL_SOCKET_SHARE) 191 $(INSTALL_DATA) $(TO_SOCKET_SHARE) $(INSTALL_SOCKET_SHARE)
141 mkdir -p $(INSTALL_SOCKET_LIB) 192 mkdir -p $(INSTALL_SOCKET_LIB)
142 $(INSTALL_EXEC) $(SOCKET_SO) $(INSTALL_SOCKET_LIB)/core.$(EXT) 193 $(INSTALL_EXEC) $(SOCKET_SO) $(INSTALL_SOCKET_LIB)/core.$(SO)
143 mkdir -p $(INSTALL_MIME_LIB) 194 mkdir -p $(INSTALL_MIME_LIB)
144 $(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_LIB)/core.$(EXT) 195 $(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_LIB)/core.$(SO)
145 196
146local: 197local:
147 $(MAKE) install INSTALL_TOP_LIB=.. INSTALL_TOP_SHARE=.. 198 $(MAKE) install INSTALL_TOP_LIB=.. INSTALL_TOP_SHARE=..
@@ -155,24 +206,24 @@ clean:
155#------ 206#------
156# List of dependencies 207# List of dependencies
157# 208#
158auxiliar.o: auxiliar.c auxiliar.h 209auxiliar.$(O): auxiliar.c auxiliar.h
159buffer.o: buffer.c buffer.h io.h timeout.h 210buffer.$(O): buffer.c buffer.h io.h timeout.h
160except.o: except.c except.h 211except.$(O): except.c except.h
161inet.o: inet.c inet.h socket.h io.h timeout.h usocket.h 212inet.$(O): inet.c inet.h socket.h io.h timeout.h usocket.h
162io.o: io.c io.h timeout.h 213io.$(O): io.c io.h timeout.h
163luasocket.o: luasocket.c luasocket.h auxiliar.h except.h \ 214luasocket.$(O): luasocket.c luasocket.h auxiliar.h except.h \
164 timeout.h buffer.h io.h inet.h socket.h usocket.h tcp.h \ 215 timeout.h buffer.h io.h inet.h socket.h usocket.h tcp.h \
165 udp.h select.h 216 udp.h select.h
166mime.o: mime.c mime.h 217mime.$(O): mime.c mime.h
167options.o: options.c auxiliar.h options.h socket.h io.h \ 218options.$(O): options.c auxiliar.h options.h socket.h io.h \
168 timeout.h usocket.h inet.h 219 timeout.h usocket.h inet.h
169select.o: select.c socket.h io.h timeout.h usocket.h select.h 220select.$(O): select.c socket.h io.h timeout.h usocket.h select.h
170tcp.o: tcp.c auxiliar.h socket.h io.h timeout.h usocket.h \ 221tcp.$(O): tcp.c auxiliar.h socket.h io.h timeout.h usocket.h \
171 inet.h options.h tcp.h buffer.h 222 inet.h options.h tcp.h buffer.h
172timeout.o: timeout.c auxiliar.h timeout.h 223timeout.$(O): timeout.c auxiliar.h timeout.h
173udp.o: udp.c auxiliar.h socket.h io.h timeout.h usocket.h \ 224udp.$(O): udp.c auxiliar.h socket.h io.h timeout.h usocket.h \
174 inet.h options.h udp.h 225 inet.h options.h udp.h
175unix.o: unix.c auxiliar.h socket.h io.h timeout.h usocket.h \ 226unix.$(O): unix.c auxiliar.h socket.h io.h timeout.h usocket.h \
176 options.h unix.h buffer.h 227 options.h unix.h buffer.h
177usocket.o: usocket.c socket.h io.h timeout.h usocket.h 228usocket.$(O): usocket.c socket.h io.h timeout.h usocket.h
178wsocket.o: wsocket.c socket.h io.h timeout.h usocket.h 229wsocket.$(O): wsocket.c socket.h io.h timeout.h usocket.h