100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # OPTIONS.
 | |
| DEBUG = 1
 | |
| 
 | |
| OS := LINUX
 | |
| #OS := WIN32
 | |
| 
 | |
| # VERSION.
 | |
| VMAJOR  = 0
 | |
| VMINOR  = 0
 | |
| VREV    = 1
 | |
| VERSION = -DVMAJOR=$(VMAJOR) -DVMINOR=$(VMINOR) -DVREV=$(VREV)
 | |
| VERSIONFILE = VERSION
 | |
| 
 | |
| # OBJECTS.
 | |
| APPNAME = Lephisto
 | |
| OBJS := $(shell find ../src/ -name '*.c' -print)
 | |
| OBJS := $(OBJS:%.c=%.o)
 | |
| 
 | |
| # CFLAGS
 | |
| CLUA = -I../lib/lua
 | |
| CSDL = $(shell sdl-config --cflags)
 | |
| CXML = $(shell xml2-config --cflags)
 | |
| CTTF = $(shell freetype-config --cflags)
 | |
| CAL  = -lopenal $(shell freealut-config --cflags)
 | |
| CVORBIS =
 | |
| CGL  =
 | |
| CFLAGS = $(CLUA) $(CPLUTO) $(CSDL) $(CXML) $(CTTF) $(CGL) $(CAL) $(CVORBIS) $(VERSION) -D$(OS)
 | |
| ifeq ($(OS),LINUX)
 | |
| 	CFLAGS += -D_POSIX_SOURCE
 | |
| endif
 | |
| ifdef DEBUG
 | |
| CFLAGS += -W -Wall -Wextra -Wshadow -Wpointer-arith -Wmissing-prototypes -Winline -Wcast-align \
 | |
| 					-Wmissing-declarations -fno-inline -g3 -DDEBUG -DLUA_USE_APICHECK -std=c99
 | |
| else
 | |
| CFLAGS += -O2 -funroll-loops -pipe -std=c99
 | |
| endif
 | |
| 
 | |
| # LDFLAGS.
 | |
| LDLUA = ../lib/lua/liblua.a
 | |
| LDSDL = $(shell sdl-config --libs) -lSDL_image
 | |
| LDXML = $(shell xml2-config --libs)
 | |
| LDTTF = $(shell freetype-config --libs)
 | |
| LDGL	= -lGL
 | |
| LDAL  = -lopenal $(shell freealut-config --libs)
 | |
| LDVORBIS = -lvorbisfile
 | |
| LDPNG   = -lpng
 | |
| LDFLAGS = -lm $(LDLUA) $(LDPLUTO) $(LDSDL) $(LDXML) $(LDTTF) $(LDGL) $(LDPNG) $(LDAL) $(LDVORBIS)
 | |
| 
 | |
| # This is just for gstat to run some analysis on performance.
 | |
| ifdef DEBUG
 | |
| LDFLAGS += -pg
 | |
| endif
 | |
| 
 | |
| # DATA.
 | |
| DATA_AI   = $(shell find ../scripts/ai/ -name '*.lua')
 | |
| DATA_GFX  = $(shell find ../gfx/ -name '*.png')
 | |
| DATA_XML  = $(shell find ../dat/ -name '*.xml' -o -name '*.ttf')
 | |
| DATA_SND  = $(shell find ../snd/ -name '*.ogg' -o -name '*.wav') ../snd/music.lua
 | |
| DATA_MISN	= $(shell find ../dat/missions/ -name '*.lua')
 | |
| DATA = data
 | |
| DATAFILES = $(VERSIONFILE) $(DATA_AI) $(DATA_GFX) $(DATA_XML) $(DATA_SND) $(DATA_MISN)
 | |
| 
 | |
| # TARGETS.
 | |
| %.o: %.c %.h
 | |
| 	@$(CC) -c $(CFLAGS) -o $@ $<
 | |
| 	@echo -e "\tCC $@"
 | |
| 
 | |
| all: utils data lua $(OBJS)
 | |
| 	@$(CC) $(LDFLAGS) -o $(APPNAME) $(OBJS) ../lib/lua/liblua.a
 | |
| 	@echo "\tLD $(APPNAME)"
 | |
| 
 | |
| lua:
 | |
| 	@if [ ! -e ../lib/lua/liblua.a ]; then (cd ../lib/lua; $(MAKE) a); fi
 | |
| 
 | |
| pack: ../src/pack.c ../utils/pack/main.c
 | |
| 	@(cd ../utils/pack; $(MAKE))
 | |
| 
 | |
| mksprite: ../utils/mkspr/main.c
 | |
| 	@(cd ../utils/mkspr; $(MAKE))
 | |
| 
 | |
| $(VERSIONFILE):
 | |
| 	@echo -n "$(VMAJOR).$(VMINOR).$(VREV)" > $(VERSIONFILE)
 | |
| 
 | |
| data: pack $(DATAFILES) ../src/pack.c ../utils/pack/main.c
 | |
| 	@echo -n "$(VMAJOR).$(VMINOR).$(VREV)" > $(VERSIONFILE)
 | |
| 	@echo -e "\tCreating data..\n"
 | |
| 	@./pack $(DATA) $(DATAFILES)
 | |
| 
 | |
| utils: mksprite
 | |
| 
 | |
| clean:
 | |
| 	@echo -e "\tRemoving data.."
 | |
| 	rm -rf $(OBJS) $(APPNAME) $(DATA) pack core mksprite *.out a.txt
 | |
| 	@echo -e "\tCleaning utils."
 | |
| 	@(cd ../utils/pack; $(MAKE) clean)
 | |
| 	@(cd ../utils/mkspr; $(MAKE) clean)
 | |
| 	@echo -e "\tCleaning Lua"
 | |
| 	@(cd ../lib/lua; $(MAKE) clean)
 | |
| 
 | 
