SHELL := /bin/bash CFLAGS:= # warnings: all CFLAGS:=$(CFLAGS) -Wall # optimisation CFLAGS:=$(CFLAGS) -O3 # symbols #CFLAGS:=$(CFLAGS) -g # profiler #CFLAGS:=$(CFLAGS) -pg ##################################### DEBUG flags: CFLAGS:=$(CFLAGS) -DDEBUG # general (signal handler, etc...) CFLAGS:=$(CFLAGS) -DDEBUG_MAIN # general information in main #CFLAGS:=$(CFLAGS) -DDEBUG_MAINSLEEP # sleep 1 sec within main loop (SIGINTR test) #CFLAGS:=$(CFLAGS) -DDEBUG_MAINLOOP # main loop (do not use this!) #CFLAGS:=$(CFLAGS) -DDEBUG_TIMER # timer #CFLAGS:=$(CFLAGS) -DDEBUG_SIGNAL # signal #CFLAGS:=$(CFLAGS) -DDEBUG_BEST # best control #CFLAGS:=$(CFLAGS) -DDEBUG_TREE # tree #CFLAGS:=$(CFLAGS) -DDEBUG_OPER # oper #CFLAGS:=$(CFLAGS) -DDEBUG_STACK # stack #CFLAGS:=$(CFLAGS) -DDEBUG_STACK2 # stack - more details #CFLAGS:=$(CFLAGS) -DDEBUG_EVAL # eval #CFLAGS:=$(CFLAGS) -DDEBUG_EVAL2 # eval 2 #CFLAGS:=$(CFLAGS) -DDEBUG_EVAL3 # eval 3 CFLAGS:=$(CFLAGS) -DDEBUG_MEM # malloc TIME := \time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n" export PATH := .:$(PATH) TARGETS=lceb tree oper timer OBJS=lceb.o tree.o oper.o stack.o eval.o best.o timer.o stack.o INCLUDES=lceb.h DEPS=$(INCLUDES) Makefile .PHONY: all clean all: $(TARGETS) lceb: $(OBJS) $(CC) $(CFLAGS) -o $@ $^ #tree oper timer: lceb.h tree: tree.c $(DEPS) $(CC) $(CFLAGS) -DSTANDALONE -o $@ $< oper: oper.c $(DEPS) $(CC) $(CFLAGS) -DSTANDALONE -o $@ $< timer: timer.c $(DEPS) $(CC) $(CFLAGS) -DSTANDALONE -o $@ $< lceb.o tree.o oper.o eval.o stack.o best.o timer.o: $(DEPS) clean: rm -f $(TARGETS) $(OBJS) core