Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
# By Charles Childers and Marc Simpson # Changed by Edrx # (find-node "(make)Conditional Example") # (find-node "(make)Conditional Syntax") # (find-node "(make)Echoing") # (find-node "(make)Flavors") # (find-anggfile "RETRO/libretro.c" "NOMAIN") # (find-gccnode "Link Options" "`-shared'") # (find-angg ".zshrc" "lua") # «.help» (to "help") # «.tarball» (to "tarball") # «.lua» (to "lua") # «.luarocks» (to "luarocks") # «.shared» (to "shared") # «.libretro.so» (to "libretro.so") # «.runluatest» (to "runluatest") # «.retro.so» (to "retro.so") # «.clean» (to "clean") # «help» (to ".help") # (find-dn4 "Makefile" "help") # (find-sh "cd ~/RETRO/ && make") default help: @echo "Usage:" @echo " make runluatest downloads & builds lua, runs the lua-ish test" # «tarball» (to ".tarball") # (find-dn4 "Makefile" "tarball") FILES = README VERSION Makefile \ libretro.c retroImage \ luaretro.c test.lua \ retro-0.0.1-0.rockspec tgz: (TZ=GMT date; date) | tee VERSION tar -cvzf luaretro.tgz $(FILES) # «lua» (to ".lua") # Download and build lua5.1. # From: (find-dn4 "Makefile" "lua") wget = wget S = $(PWD)/snarf USRC = $(PWD)/usrc LUAURL = http://www.lua.org/ftp/lua-5.1.4.tar.gz LUATGZ = $(S)/http/www.lua.org/ftp/lua-5.1.4.tar.gz LUATGZDIR = $(S)/http/www.lua.org/ftp/ LUASRC = $(USRC)/lua-5.1.4 LUA51_ = $(LUASRC)/bin/lua LUA51 = $(PWD)/lua51 LUAOS = linux luadownload: $(LUATGZ) $(LUATGZ): mkdir -p $(LUATGZDIR) cd $(LUATGZDIR) && \ $(wget) $(LUAURL) cleanluabuild: rm -Rfv $(LUASRC)/ luabuild: $(LUA51_) $(LUA51_): $(LUATGZ) rm -Rfv $(LUASRC)/ mkdir -p $(USRC)/ tar -C $(USRC)/ -xvzf $(LUATGZ) cd $(LUASRC) && make $(LUAOS) local test lua51 $(LUA51): $(LUA51_) cp -v $(LUA51_) $(LUA51) # «luarocks» (to ".luarocks") # (find-es "lua5" "luarocks") # http://luarocks.org/releases/ # http://luarocks.org/releases/luarocks-2.0.4.1.tar.gz LUAROCKSURL = http://luarocks.org/releases/luarocks-2.0.4.1.tar.gz LUAROCKSTGZ = $(S)/http/luarocks.org/releases/luarocks-2.0.4.1.tar.gz LUAROCKSTGZDIR = $(S)/http/luarocks.org/releases/ LUAROCKSSRC = $(USRC)/luarocks-2.0.4.1 LUAROCKSDIR = $(USRC)/luarocks LUAROCKSBIN_ = $(LUAROCKSDIR)/bin/luarocks LUAROCKSBIN = $(PWD)/luarocks luarocksdownload: $(LUAROCKSTGZ) $(LUAROCKSTGZ): mkdir -p $(LUAROCKSTGZDIR) cd $(LUAROCKSTGZDIR) && \ $(wget) $(LUAROCKSURL) cleanluarocksbuild: rm -Rfv $(LUAROCKSSRC)/ rm -Rfv $(LUAROCKSDIR)/ luarocksbuild: $(LUAROCKSBIN_) $(LUAROCKSBIN_): lua51 $(LUAROCKSTGZ) rm -Rfv $(LUAROCKSSRC)/ mkdir -p $(USRC)/ tar -C $(USRC)/ -xvzf $(LUAROCKSTGZ) cd $(LUAROCKSSRC) && ./configure --help cd $(LUAROCKSSRC) && ./configure --with-lua=$(LUASRC) --prefix=$(LUAROCKSDIR) cd $(LUAROCKSSRC) && make install luarocks $(LUAROCKSBIN): $(LUAROCKSBIN_) cp -v $(LUAROCKSBIN_) $(LUAROCKSBIN) rockmake: luarocks $(LUAROCKSBIN) make retro-0.0.1-0.rockspec rockpack: luarocks $(LUAROCKSBIN) pack retro-0.0.1-0.rockspec # (find-angg "peek/peek-0.0.1-0.rockspec") # «shared» (to ".shared") # Marc's trick to make the option "LUAOS=macosx" also adjust how # shared libraries are built ifeq ($(LUAOS),macosx) SHARED = -dynamiclib -Wl,-undefined,dynamic_lookup else SHARED = -shared endif # «libretro.so» (to ".libretro.so") # The original test by Charles and Marc, slightly changed. # Here we build a .so ("libretro.so") and an executable ("test") # thats loads the .so dynamically. # (find-RETRO "libretro.c") # (find-RETRO "test.c") libretro.so: libretro.c gcc -g -O0 -Wall -fPIC -DNOMAIN $(SHARED) libretro.c -o libretro.so test: test.c gcc -g -O0 -Wall -ldl test.c -o test # «runluatest» (to ".runluatest") # «retro.so» (to ".retro.so") # Here we build a lua library ("retro.so") from libretro.c and # luaretro.c, and we load it from lua. # Note that the dependency "lua51" downloads and builds lua in the # current directory. # (find-RETRO "luaretro.c") # (find-RETRO "test.lua") libretro.o: libretro.c gcc -g -O0 -Wall -fPIC -DNOMAIN -c libretro.c -o libretro.o luaretro.o: lua51 luaretro.c gcc -g -O0 -Wall -fPIC -I$(LUASRC)/include -c luaretro.c -o luaretro.o retro.so: lua51 libretro.o luaretro.o gcc $(SHARED) -o retro.so -L$(LUASRC)/lib -llua libretro.o luaretro.o runluatest: lua51 retro.so $(LUA51) test.lua # «clean» (to ".clean") clean: rm -fv libretro.so rm -fv libretro.o luaretro.o retro.so # The "cleanlocal" targets don't delete anything outside the local dirs cleanlocallua: rm -Rfv usr/lua-5.1.4/ lua51 cleanlocaldownloads: # ? veryclean: clean cleanlocallua # Local Variables: # coding: raw-text-unix # ee-anchor-format: "«%s»" # End: