#Zlog makefile

#File definitions
SRCS = zlog.c action.c getconf.c levels.c colldet.c log_fac.c schedule.c console.c lpform.c cyclediv.c display.c cmdline.c game.c zignals.c savegame.c enemies.c anim.c
HDRS = $(SRCS:.c=.h) objects.h all_inc.h
OBJS = $(SRCS:.c=.o)

#Some useful definitions
CC = gcc
CFLAGS = -W -Wall -O3 -pedantic -std=c99 -DBUILD_MZLOG
MZLOG = mzlog




#Default prsentation of the makefile
default : 
	@echo Please, choose either a lin_xxx or  win_xxx target.
	@echo Eligible targets are : 
	@echo linux and win make the game
	@echo lin_prof and win_prof make the profiled game
	@echo lin_dbg and win_dbg make the debug game
	@echo dmalloc builds with dmalloc
	@echo clean to the source tree
	


#Main targets : linux and win

linux : $(OBJS) $(HDRS) csl_autocode.zc csl_autocode.zh sav_autocode.zc sav_autocode.zh
	$(CC) $(CFLAGS) $(OBJS) -o $(MZLOG) `allegro-config --libs`
	
win : windows

windows : $(OBJS) 
	$(CC) $(CFLAGS) $^ -o $(MZLOG).exe -lalleg
	
dmalloc : $(SRCS) $(HDRS) csl_autocode.zc csl_autocode.zh sav_autocode.zc sav_autocode.zh
	$(CC) $(CFLAGS) $(SRCS) -g3 -DDMALLOC -o $(MZLOG) `allegro-config --libs debug` -ldmalloc

%.o: %.c
	$(CC) -o $@ -c $< $(CFLAGS)

csl_autocode.zc: csl_autocode.sh
	./csl_autocode.sh

sav_autocode.zc: sav_autocode.sh
	./sav_autocode.sh


.PHONY: clean

clean:
	rm *.o
	
lin_dbg :
	$(CC) -W -Wall -g3 -pedantic -std=c99 -DBUILD_MZLOG $(SRCS) -o $(MZLOG) `allegro-config --libs debug`
	

lin_prof :
	$(CC) -W -Wall -O3 -pedantic -std=c99 -pg -DBUILD_MZLOG $(SRCS) -o $(MZLOG) `allegro-config --libs profile`


      
