diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 157 |
1 files changed, 89 insertions, 68 deletions
@@ -15,56 +15,77 @@ | |||
15 | 15 | ||
16 | MODULE = lanes | 16 | MODULE = lanes |
17 | 17 | ||
18 | N=1000 | 18 | N = 1000 |
19 | 19 | ||
20 | _TARGET_DIR=src/lanes | 20 | TIME = time |
21 | TIME=time | ||
22 | 21 | ||
23 | ifeq "$(findstring MINGW,$(shell uname -s))" "MINGW" | 22 | ifeq "$(findstring MINGW,$(shell uname -s))" "MINGW" |
24 | # MinGW MSYS on Windows | 23 | # MinGW MSYS on Windows |
25 | # | 24 | # |
26 | _SO=dll | 25 | _SO := dll |
27 | _LUAEXT=.exe | 26 | _LUAEXT := .exe |
28 | TIME=timeit.exe | 27 | TIME := timeit.exe |
29 | else | 28 | else |
30 | _SO=so | 29 | _SO := so |
31 | _LUAEXT= | 30 | _LUAEXT := |
32 | endif | 31 | endif |
33 | 32 | ||
34 | # Autodetect LUA | 33 | # Autodetect LUA |
35 | # | 34 | # |
36 | LUA:=$(word 1,$(shell which lua5.1$(_LUAEXT) 2>/dev/null) $(shell which lua51$(_LUAEXT) 2>/dev/null) $(shell which lua$(_LUAEXT) 2>/dev/null) $(shell which luajit$(_LUAEXT) 2>/dev/null)) | 35 | LUA := $(word 1,$(shell which lua5.1$(_LUAEXT) 2>/dev/null) $(shell which lua51$(_LUAEXT) 2>/dev/null) $(shell which lua$(_LUAEXT) 2>/dev/null) $(shell which luajit$(_LUAEXT) 2>/dev/null)) |
37 | LUA_VERSION:=$(shell $(LUA) -e "print(string.sub(_VERSION,5,7))") | 36 | LUA_VERSION := $(shell $(LUA) -e "print(string.sub(_VERSION,5,7))") |
38 | 37 | ||
39 | $(info LUA is $(LUA)) | 38 | $(info LUA: $(LUA)) |
40 | $(info LUA_VERSION is $(LUA_VERSION)) | 39 | $(info LUA_VERSION: $(LUA_VERSION)) |
41 | 40 | ||
42 | _TARGET_SO:=$(_TARGET_DIR)/core.$(_SO) | 41 | _LANES_TARGET := src/lanes/core.$(_SO) |
42 | $(info _LANES_TARGET: $(_LANES_TARGET)) | ||
43 | 43 | ||
44 | _UNITTEST_TARGET:=$(_TARGET_DIR)/UnitTests$(_LUAEXT) | 44 | _UNITTEST_TARGET := unit_tests/UnitTests$(_LUAEXT) |
45 | $(info _UNITTEST_TARGET: $(_UNITTEST_TARGET)) | ||
45 | 46 | ||
46 | _PREFIX:=LUA_CPATH="./src/?.$(_SO)" LUA_PATH="./src/?.lua;./tests/?.lua" | 47 | _DUE_TARGET := deep_userdata_example/deep_userdata_example.$(_SO) |
48 | $(info _DUE_TARGET: $(_DUE_TARGET)) | ||
49 | |||
50 | _PREFIX := LUA_CPATH="./src/?.$(_SO)" LUA_PATH="./src/?.lua;./tests/?.lua" | ||
51 | |||
52 | .PHONY: all unit_tests | ||
53 | |||
54 | # only build lanes itself by default | ||
55 | all: $(_LANES_TARGET) | ||
56 | |||
57 | # build the unit_tests and the side deep_userdata_example module | ||
58 | unit_tests: $(_UNITTEST_TARGET) $(_DUE_TARGET) | ||
59 | cd deep_userdata_example && $(MAKE) -f DUE.makefile LUA_LIBDIR=$(LUA_LIBDIR) install | ||
47 | 60 | ||
48 | #--- | 61 | #--- |
49 | all: $(_TARGET_SO) $(_UNITTEST_TARGET) | ||
50 | 62 | ||
51 | $(_TARGET_SO): src/*.lua src/*.cpp src/*.h src/*.hpp | 63 | $(_LANES_TARGET): src/*.lua src/*.cpp src/*.h src/*.hpp |
52 | @echo ========================================================================================= | 64 | @echo ========================================================================================= |
53 | cd src && $(MAKE) LUA=$(LUA) | 65 | cd src && $(MAKE) -f Lanes.makefile LUA=$(LUA) |
54 | @echo ========== $(_TARGET_SO): DONE! | 66 | @echo ==================== $(_LANES_TARGET): DONE! |
67 | @echo | ||
55 | 68 | ||
56 | $(_UNITTEST_TARGET): $(_TARGET_SO) | 69 | $(_UNITTEST_TARGET): $(_LANES_TARGET) |
57 | @echo ========================================================================================= | 70 | @echo ========================================================================================= |
58 | cd unit_tests && $(MAKE) | 71 | cd unit_tests && $(MAKE) -f UnitTests.makefile |
59 | @echo ========== $(_UNITTEST_TARGET): DONE! | 72 | @echo ==================== $(_UNITTEST_TARGET): DONE! |
73 | @echo | ||
74 | |||
75 | $(_DUE_TARGET): | ||
76 | @echo ========================================================================================= | ||
77 | cd deep_userdata_example && $(MAKE) -f DUE.makefile | ||
78 | @echo ==================== $(_DUE_TARGET): DONE! | ||
79 | @echo | ||
60 | 80 | ||
61 | clean: | 81 | clean: |
62 | cd src && $(MAKE) clean | 82 | cd src && $(MAKE) -f Lanes.makefile clean |
63 | cd unit_tests && $(MAKE) clean | 83 | cd unit_tests && $(MAKE) -f UnitTests.makefile clean |
84 | cd deep_userdata_example && $(MAKE) -f DUE.makefile clean | ||
64 | 85 | ||
65 | debug: | 86 | debug: |
66 | $(MAKE) clean | 87 | $(MAKE) clean |
67 | cd src && $(MAKE) LUA=$(LUA) OPT_FLAGS="-O0 -g" | 88 | cd src && $(MAKE) -f Lanes.makefile LUA=$(LUA) OPT_FLAGS="-O0 -g" |
68 | @echo "" | 89 | @echo "" |
69 | @echo "** Now, try 'make repetitive' or something and if it crashes, 'gdb $(LUA) ...core file...'" | 90 | @echo "** Now, try 'make repetitive' or something and if it crashes, 'gdb $(LUA) ...core file...'" |
70 | @echo " Then 'bt' for a backtrace." | 91 | @echo " Then 'bt' for a backtrace." |
@@ -80,7 +101,7 @@ gdb: | |||
80 | #--- LuaRocks automated build --- | 101 | #--- LuaRocks automated build --- |
81 | # | 102 | # |
82 | rock: | 103 | rock: |
83 | cd src && $(MAKE) LUAROCKS=1 CFLAGS="$(CFLAGS)" LIBFLAG="$(LIBFLAG)" LUA=$(LUA) | 104 | cd src && $(MAKE) -f Lanes.makefile LUAROCKS=1 CFLAGS="$(CFLAGS)" LIBFLAG="$(LIBFLAG)" LUA=$(LUA) |
84 | 105 | ||
85 | 106 | ||
86 | #--- Testing --- | 107 | #--- Testing --- |
@@ -114,117 +135,117 @@ test: | |||
114 | $(MAKE) timer | 135 | $(MAKE) timer |
115 | $(MAKE) track_lanes | 136 | $(MAKE) track_lanes |
116 | 137 | ||
117 | appendud: tests/appendud.lua $(_TARGET_SO) | 138 | appendud: tests/appendud.lua $(_LANES_TARGET) |
118 | $(_PREFIX) $(LUA) $< | 139 | $(_PREFIX) $(LUA) $< |
119 | 140 | ||
120 | atexit: tests/atexit.lua $(_TARGET_SO) | 141 | atexit: tests/atexit.lua $(_LANES_TARGET) |
121 | $(_PREFIX) $(LUA) $< | 142 | $(_PREFIX) $(LUA) $< |
122 | 143 | ||
123 | atomic: tests/atomic.lua $(_TARGET_SO) | 144 | atomic: tests/atomic.lua $(_LANES_TARGET) |
124 | $(_PREFIX) $(LUA) $< | 145 | $(_PREFIX) $(LUA) $< |
125 | 146 | ||
126 | basic: tests/basic.lua $(_TARGET_SO) | 147 | basic: tests/basic.lua $(_LANES_TARGET) |
127 | $(_PREFIX) $(LUA) $< | 148 | $(_PREFIX) $(LUA) $< |
128 | 149 | ||
129 | cancel: tests/cancel.lua $(_TARGET_SO) | 150 | cancel: tests/cancel.lua $(_LANES_TARGET) |
130 | $(_PREFIX) $(LUA) $< | 151 | $(_PREFIX) $(LUA) $< |
131 | 152 | ||
132 | cyclic: tests/cyclic.lua $(_TARGET_SO) | 153 | cyclic: tests/cyclic.lua $(_LANES_TARGET) |
133 | $(_PREFIX) $(LUA) $< | 154 | $(_PREFIX) $(LUA) $< |
134 | 155 | ||
135 | deadlock: tests/deadlock.lua $(_TARGET_SO) | 156 | deadlock: tests/deadlock.lua $(_LANES_TARGET) |
136 | $(_PREFIX) $(LUA) $< | 157 | $(_PREFIX) $(LUA) $< |
137 | 158 | ||
138 | ehynes: tests/ehynes.lua $(_TARGET_SO) | 159 | ehynes: tests/ehynes.lua $(_LANES_TARGET) |
139 | $(_PREFIX) $(LUA) $< | 160 | $(_PREFIX) $(LUA) $< |
140 | 161 | ||
141 | errhangtest: tests/errhangtest.lua $(_TARGET_SO) | 162 | errhangtest: tests/errhangtest.lua $(_LANES_TARGET) |
142 | $(_PREFIX) $(LUA) $< | 163 | $(_PREFIX) $(LUA) $< |
143 | 164 | ||
144 | error: tests/error.lua $(_TARGET_SO) | 165 | error: tests/error.lua $(_LANES_TARGET) |
145 | $(_PREFIX) $(LUA) $< | 166 | $(_PREFIX) $(LUA) $< |
146 | 167 | ||
147 | fibonacci: tests/fibonacci.lua $(_TARGET_SO) | 168 | fibonacci: tests/fibonacci.lua $(_LANES_TARGET) |
148 | $(_PREFIX) $(LUA) $< | 169 | $(_PREFIX) $(LUA) $< |
149 | 170 | ||
150 | fifo: tests/fifo.lua $(_TARGET_SO) | 171 | fifo: tests/fifo.lua $(_LANES_TARGET) |
151 | $(_PREFIX) $(LUA) $< | 172 | $(_PREFIX) $(LUA) $< |
152 | 173 | ||
153 | finalizer: tests/finalizer.lua $(_TARGET_SO) | 174 | finalizer: tests/finalizer.lua $(_LANES_TARGET) |
154 | $(_PREFIX) $(LUA) $< | 175 | $(_PREFIX) $(LUA) $< |
155 | 176 | ||
156 | func_is_string: tests/func_is_string.lua $(_TARGET_SO) | 177 | func_is_string: tests/func_is_string.lua $(_LANES_TARGET) |
157 | $(_PREFIX) $(LUA) $< | 178 | $(_PREFIX) $(LUA) $< |
158 | 179 | ||
159 | hangtest: tests/hangtest.lua $(_TARGET_SO) | 180 | hangtest: tests/hangtest.lua $(_LANES_TARGET) |
160 | $(_PREFIX) $(LUA) $< | 181 | $(_PREFIX) $(LUA) $< |
161 | 182 | ||
162 | irayo_closure: tests/irayo_closure.lua $(_TARGET_SO) | 183 | irayo_closure: tests/irayo_closure.lua $(_LANES_TARGET) |
163 | $(_PREFIX) $(LUA) $< | 184 | $(_PREFIX) $(LUA) $< |
164 | 185 | ||
165 | irayo_recursive: tests/irayo_recursive.lua $(_TARGET_SO) | 186 | irayo_recursive: tests/irayo_recursive.lua $(_LANES_TARGET) |
166 | $(_PREFIX) $(LUA) $< | 187 | $(_PREFIX) $(LUA) $< |
167 | 188 | ||
168 | keeper: tests/keeper.lua $(_TARGET_SO) | 189 | keeper: tests/keeper.lua $(_LANES_TARGET) |
169 | $(_PREFIX) $(LUA) $< | 190 | $(_PREFIX) $(LUA) $< |
170 | 191 | ||
171 | launchtest: tests/launchtest.lua $(_TARGET_SO) | 192 | launchtest: tests/launchtest.lua $(_LANES_TARGET) |
172 | $(MAKE) _perftest ARGS="$< $(N)" | 193 | $(MAKE) _perftest ARGS="$< $(N)" |
173 | 194 | ||
174 | linda_perf: tests/linda_perf.lua $(_TARGET_SO) | 195 | linda_perf: tests/linda_perf.lua $(_LANES_TARGET) |
175 | $(_PREFIX) $(LUA) $< | 196 | $(_PREFIX) $(LUA) $< |
176 | 197 | ||
177 | manual_register: tests/manual_register.lua $(_TARGET_SO) | 198 | manual_register: tests/manual_register.lua $(_LANES_TARGET) |
178 | $(_PREFIX) $(LUA) $< | 199 | $(_PREFIX) $(LUA) $< |
179 | 200 | ||
180 | nameof: tests/nameof.lua $(_TARGET_SO) | 201 | nameof: tests/nameof.lua $(_LANES_TARGET) |
181 | $(_PREFIX) $(LUA) $< | 202 | $(_PREFIX) $(LUA) $< |
182 | 203 | ||
183 | objects: tests/objects.lua $(_TARGET_SO) | 204 | objects: tests/objects.lua $(_LANES_TARGET) |
184 | $(_PREFIX) $(LUA) $< | 205 | $(_PREFIX) $(LUA) $< |
185 | 206 | ||
186 | package: tests/package.lua $(_TARGET_SO) | 207 | package: tests/package.lua $(_LANES_TARGET) |
187 | $(_PREFIX) $(LUA) $< | 208 | $(_PREFIX) $(LUA) $< |
188 | 209 | ||
189 | perftest: tests/perftest.lua $(_TARGET_SO) | 210 | perftest: tests/perftest.lua $(_LANES_TARGET) |
190 | $(MAKE) _perftest ARGS="$< $(N)" | 211 | $(MAKE) _perftest ARGS="$< $(N)" |
191 | 212 | ||
192 | perftest-even: tests/perftest.lua $(_TARGET_SO) | 213 | perftest-even: tests/perftest.lua $(_LANES_TARGET) |
193 | $(MAKE) _perftest ARGS="$< $(N) -prio=-2" | 214 | $(MAKE) _perftest ARGS="$< $(N) -prio=-2" |
194 | 215 | ||
195 | perftest-odd: tests/perftest.lua $(_TARGET_SO) | 216 | perftest-odd: tests/perftest.lua $(_LANES_TARGET) |
196 | $(MAKE) _perftest ARGS="$< $(N) -prio=+2" | 217 | $(MAKE) _perftest ARGS="$< $(N) -prio=+2" |
197 | 218 | ||
198 | perftest-plain: tests/perftest.lua $(_TARGET_SO) | 219 | perftest-plain: tests/perftest.lua $(_LANES_TARGET) |
199 | $(MAKE) _perftest ARGS="$< $(N) -plain" | 220 | $(MAKE) _perftest ARGS="$< $(N) -plain" |
200 | 221 | ||
201 | pingpong: tests/pingpong.lua $(_TARGET_SO) | 222 | pingpong: tests/pingpong.lua $(_LANES_TARGET) |
202 | $(_PREFIX) $(LUA) $< | 223 | $(_PREFIX) $(LUA) $< |
203 | 224 | ||
204 | recursive: tests/recursive.lua $(_TARGET_SO) | 225 | recursive: tests/recursive.lua $(_LANES_TARGET) |
205 | $(_PREFIX) $(LUA) $< | 226 | $(_PREFIX) $(LUA) $< |
206 | 227 | ||
207 | require: tests/require.lua $(_TARGET_SO) | 228 | require: tests/require.lua $(_LANES_TARGET) |
208 | $(_PREFIX) $(LUA) $< | 229 | $(_PREFIX) $(LUA) $< |
209 | 230 | ||
210 | rupval: tests/rupval.lua $(_TARGET_SO) | 231 | rupval: tests/rupval.lua $(_LANES_TARGET) |
211 | $(_PREFIX) $(LUA) $< | 232 | $(_PREFIX) $(LUA) $< |
212 | 233 | ||
213 | timer: tests/timer.lua $(_TARGET_SO) | 234 | timer: tests/timer.lua $(_LANES_TARGET) |
214 | $(_PREFIX) $(LUA) $< | 235 | $(_PREFIX) $(LUA) $< |
215 | 236 | ||
216 | track_lanes: tests/track_lanes.lua $(_TARGET_SO) | 237 | track_lanes: tests/track_lanes.lua $(_LANES_TARGET) |
217 | $(_PREFIX) $(LUA) $< | 238 | $(_PREFIX) $(LUA) $< |
218 | # | 239 | # |
219 | # This tries to show out a bug which happens in lane cleanup (multicore CPU's only) | 240 | # This tries to show out a bug which happens in lane cleanup (multicore CPU's only) |
220 | # | 241 | # |
221 | REP_ARGS=-llanes -e "print'say aaa'; for i=1,10 do print(i) end" | 242 | REP_ARGS=-llanes -e "print'say aaa'; for i=1,10 do print(i) end" |
222 | repetitive: $(_TARGET_SO) | 243 | repetitive: $(_LANES_TARGET) |
223 | for i in 1 2 3 4 5 6 7 8 9 10 a b c d e f g h i j k l m n o p q r s t u v w x y z; \ | 244 | for i in 1 2 3 4 5 6 7 8 9 10 a b c d e f g h i j k l m n o p q r s t u v w x y z; \ |
224 | do $(_PREFIX) $(LUA) $(REP_ARGS); \ | 245 | do $(_PREFIX) $(LUA) $(REP_ARGS); \ |
225 | done | 246 | done |
226 | 247 | ||
227 | repetitive1: $(_TARGET_SO) | 248 | repetitive1: $(_LANES_TARGET) |
228 | $(_PREFIX) $(LUA) $(REP_ARGS) | 249 | $(_PREFIX) $(LUA) $(REP_ARGS) |
229 | 250 | ||
230 | #--- | 251 | #--- |
@@ -246,15 +267,15 @@ LUA_SHAREDIR:=$(DESTDIR)/share/lua/$(LUA_VERSION) | |||
246 | # | 267 | # |
247 | # AKa 17-Oct: changed to use 'install -m 644' and 'cp -p' | 268 | # AKa 17-Oct: changed to use 'install -m 644' and 'cp -p' |
248 | # | 269 | # |
249 | install: $(_TARGET_SO) src/lanes.lua | 270 | install: $(_LANES_TARGET) src/lanes.lua |
250 | mkdir -p $(LUA_LIBDIR) $(LUA_LIBDIR)/lanes $(LUA_SHAREDIR) | 271 | mkdir -p $(LUA_LIBDIR) $(LUA_LIBDIR)/lanes $(LUA_SHAREDIR) |
251 | install -m 644 $(_TARGET_SO) $(LUA_LIBDIR)/lanes | 272 | install -m 644 $(_LANES_TARGET) $(LUA_LIBDIR)/lanes |
252 | cp -p src/lanes.lua $(LUA_SHAREDIR) | 273 | cp -p src/lanes.lua $(LUA_SHAREDIR) |
253 | 274 | ||
254 | uninstall: | 275 | uninstall: |
255 | rm $(LUA_LIBDIR)/lanes/core.$(_SO) | 276 | rm $(LUA_LIBDIR)/lanes/core.$(_SO) |
256 | rm $(LUA_SHAREDIR)/lanes.lua | 277 | rm $(LUA_SHAREDIR)/lanes.lua |
257 | 278 | rm $(LUA_LIBDIR)/deep_userdata_example.$(_SO) | |
258 | 279 | ||
259 | #--- Packaging --- | 280 | #--- Packaging --- |
260 | # | 281 | # |
@@ -289,14 +310,14 @@ endif | |||
289 | # 2.0.1: Running this (instant exit of the main Lua state) occasionally | 310 | # 2.0.1: Running this (instant exit of the main Lua state) occasionally |
290 | # segfaults (1:15 or so on OS X PowerPC G4). | 311 | # segfaults (1:15 or so on OS X PowerPC G4). |
291 | # | 312 | # |
292 | require_module: $(_TARGET_SO) | 313 | require_module: $(_LANES_TARGET) |
293 | $(_PREFIX) $(LUA) -e "require '$(MODULE)'" | 314 | $(_PREFIX) $(LUA) -e "require '$(MODULE)'" |
294 | 315 | ||
295 | run: $(_TARGET_SO) | 316 | run: $(_LANES_TARGET) |
296 | $(_PREFIX) $(LUA) -e "require '$(MODULE)'" -i | 317 | $(_PREFIX) $(LUA) -e "require '$(MODULE)'" -i |
297 | 318 | ||
298 | echo: | 319 | echo: |
299 | @echo $(PROGRAMFILES:C=X) | 320 | @echo $(PROGRAMFILES:C=X) |
300 | 321 | ||
301 | .PHONY: all clean debug gdb rock test require install uninstall _nodemo _notest | 322 | .PHONY: clean debug gdb rock test require install uninstall _nodemo _notest |
302 | 323 | ||