SDL_CONFIG = $(shell sdl-config --cflags) SDL_LIBS = $(shell sdl-config --libs) CFLAGS = $(SDL_CONFIG) -Wall -O2 -g -fopenmp LDFLAGS = -fopenmp LIBS = $(SDL_LIBS) -lm -lrt CC = gcc MANDELBROT_OBJS = mandelbrot.o MANDELBROT_DEBUG_OBJS = $(patsubst %.o,%-debug.o,$(MANDELBROT_OBJS)) ALL_OBJS = $(MANDELBROT_OBJS) $(MANDELBROT_DEBUG_OBJS) ALL_DEBS = $(patsubst %.o,.%.o.d,$(ALL_OBJS)) ifeq ($(V),1) Q = QUIET_CC = QUIET_LINK = else Q = @ QUIET_CC = @echo " CC " $@; QUIET_LINK = @echo " LINK " $@; endif mandelbrot: $(MANDELBROT_OBJS) $(QUIET_LINK)$(CC) $(LIBS) $(LDFLAGS) -o $@ $(MANDELBROT_OBJS) debug-mandelbrot: $(MANDELBROT_DEBUG_OBJS) $(QUIET_LINK)$(CC) $(LIBS) $(LDFLAGS) -o $@ $(MANDELBROT_DEBUG_OBJS) \ -DDEBUG .c.o: $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -c $< -o $@ $(Q)cp .$@.d .$@.P; \ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ -e '/^$$/ d' -e 's/$$/ :/' < .$@.d >> .$@.P; \ mv .$@.P .$@.d ifeq ($(C),1) sparse $(CFLAGS) $< endif ifeq ($(C),2) $(CHECKPATCH) -f $< endif %-debug.o: %.c $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -DDEBUG -O0 -c $< -o $@ $(Q)cp .$@.d .$@.P; \ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ -e '/^$$/ d' -e 's/$$/ :/' < .$@.d >> .$@.P; \ mv .$@.P .$@.d TAGS: @echo " TAGS" $(Q)etags *.[ch] clean: rm -rfv $(ALL_OBJS) *~ mandelbrot TAGS $(ALL_DEBS) \ debug-mandelbrot .PHONY: all clean TAGS -include $(ALL_DEBS)