From 89d9c98af1ac352ba4d49d660e61b0853d6e1a86 Mon Sep 17 00:00:00 2001 From: Peter Drahoš Date: Fri, 1 Oct 2010 03:22:32 +0200 Subject: Import to git --- Makefile | 229 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4c0ff4b --- /dev/null +++ b/Makefile @@ -0,0 +1,229 @@ +# +# Lanes/Makefile +# +# make +# make test +# make basic|fifo|keeper|... +# +# make perftest[-odd|-even|-plain] +# make launchtest +# +# make install DESTDIR=path +# make tar|tgz VERSION=x.x +# make clean +# + +MODULE = lanes + +N=1000 + +_SO=.so +_TARGET_SO=src/lua51-lanes.so +TIME=time + +ifeq "$(findstring MINGW32,$(shell uname -s))" "MINGW32" + # MinGW MSYS on XP + # + LUA=lua + LUAC=luac + _SO=.dll + _TARGET_SO=./lua51-lanes.dll + TIME=timeit.exe +else + # Autodetect LUA & LUAC + # + LUA=$(word 1,$(shell which lua5.1) $(shell which lua51) lua) + LUAC=$(word 1,$(shell which luac5.1) $(shell which luac51) luac) +endif + +_PREFIX=LUA_CPATH=./src/?$(_SO) LUA_PATH="src/?.lua;./tests/?.lua" + +#--- +all: $(_TARGET_SO) + +$(_TARGET_SO): src/*.lua src/*.c src/*.h + cd src && $(MAKE) LUA=$(LUA) LUAC=$(LUAC) + +clean: + cd src && $(MAKE) clean + +debug: + $(MAKE) clean + cd src && $(MAKE) LUA=$(LUA) LUAC=$(LUAC) OPT_FLAGS="-O0 -g" + @echo "" + @echo "** Now, try 'make repetitive' or something and if it crashes, 'gdb $(LUA) ...core file...'" + @echo " Then 'bt' for a backtrace." + @echo "" + @echo " You have enabled core, no? 'ulimit -c unlimited'" + @echo " On OS X, core files are under '/cores/'" + @echo "" + +gdb: + @echo "echo *** To start debugging: 'run tests/basic.lua' ***\n\n" > .gdb.cmd + $(_PREFIX) gdb -x .gdb.cmd $(LUA) + +#--- LuaRocks automated build --- +# +rock: + cd src && $(MAKE) LUAROCKS=1 CFLAGS="$(CFLAGS)" LIBFLAG="$(LIBFLAG)" LUA=$(LUA) LUAC=$(LUAC) + + +#--- Testing --- +# +test: + $(MAKE) irayo_recursive +# $(MAKE) irayo_closure + $(MAKE) basic + $(MAKE) fifo + $(MAKE) keeper + $(MAKE) timer + $(MAKE) atomic + $(MAKE) cyclic + $(MAKE) objects + $(MAKE) fibonacci + $(MAKE) recursive + +basic: tests/basic.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +# +# This tries to show out a bug which happens in lane cleanup (multicore CPU's only) +# +REP_ARGS=-llanes -e "print'say aaa'; for i=1,10 do print(i) end" +repetitive: $(_TARGET_SO) + 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; \ + do $(_PREFIX) $(LUA) $(REP_ARGS); \ + done + +repetitive1: $(_TARGET_SO) + $(_PREFIX) $(LUA) $(REP_ARGS) + +fifo: tests/fifo.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +keeper: tests/keeper.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +fibonacci: tests/fibonacci.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +timer: tests/timer.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +atomic: tests/atomic.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +cyclic: tests/cyclic.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +recursive: tests/recursive.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +hangtest: tests/hangtest.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +ehynes: tests/ehynes.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +#require: tests/require.lua $(_TARGET_SO) +# $(_PREFIX) $(LUA) $< + +objects: tests/objects.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +irayo_recursive: tests/irayo_recursive.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +irayo_closure: tests/irayo_closure.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +finalizer: tests/finalizer.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +error-test: tests/error.lua $(_TARGET_SO) + $(_PREFIX) $(LUA) $< + +#--- +perftest-plain: tests/perftest.lua $(_TARGET_SO) + $(MAKE) _perftest ARGS="$< $(N) -plain" + +perftest: tests/perftest.lua $(_TARGET_SO) + $(MAKE) _perftest ARGS="$< $(N)" + +perftest-odd: tests/perftest.lua $(_TARGET_SO) + $(MAKE) _perftest ARGS="$< $(N) -prio=+2" + +perftest-even: tests/perftest.lua $(_TARGET_SO) + $(MAKE) _perftest ARGS="$< $(N) -prio=-2" + +#--- +launchtest: tests/launchtest.lua $(_TARGET_SO) + $(MAKE) _perftest ARGS="$< $(N)" + +_perftest: + $(_PREFIX) $(TIME) $(LUA) $(ARGS) + + +#--- Installing --- +# +# This is for LuaRocks automatic install, mainly +# +# LUA_LIBDIR and LUA_SHAREDIR are used by the .rockspec (don't change the names!) +# +DESTDIR=/usr/local +LUA_LIBDIR=$(DESTDIR)/lib/lua/5.1 +LUA_SHAREDIR=$(DESTDIR)/share/lua/5.1 + +# +# AKa 17-Oct: changed to use 'install -m 644' and 'cp -p' +# +install: $(_TARGET_SO) src/lanes.lua + mkdir -p $(LUA_LIBDIR) $(LUA_SHAREDIR) + install -m 644 $(_TARGET_SO) $(LUA_LIBDIR) + cp -p src/lanes.lua $(LUA_SHAREDIR) + + +#--- Packaging --- +# +# Make a folder of the same name as tgz, good manners (for the manual +# expander) +# +# "make tgz VERSION=yyyymmdd" +# +VERSION= + +tar tgz: +ifeq "$(VERSION)" "" + echo "Usage: make tar VERSION=x.x"; false +else + $(MAKE) clean + -rm -rf $(MODULE)-$(VERSION) + mkdir $(MODULE)-$(VERSION) + tar c * --exclude=.svn --exclude=.DS_Store --exclude="_*" \ + --exclude="*.tgz" --exclude="*.rockspec" \ + --exclude=lanes.dev --exclude="$(MODULE)-*" --exclude=xcode \ + --exclude="*.obj" --exclude="*.dll" --exclude=timeit.dat \ + | (cd $(MODULE)-$(VERSION) && tar x) + tar czvf $(MODULE)-$(VERSION).tgz $(MODULE)-$(VERSION) + rm -rf $(MODULE)-$(VERSION) + md5sum $(MODULE)-$(VERSION).tgz +endif + + +#--- Undocumented --- +# + +# 2.0.1: Running this (instant exit of the main Lua state) occasionally +# segfaults (1:15 or so on OS X PowerPC G4). +# +require: $(_TARGET_SO) + $(_PREFIX) $(LUA) -e "require '$(MODULE)'" + +run: $(_TARGET_SO) + $(_PREFIX) $(LUA) -e "require '$(MODULE)'" -i + +echo: + @echo $(PROGRAMFILES:C=X) + +.PROXY: all clean test require debug _nodemo _notest + -- cgit v1.2.3-55-g6feb