]> git.itanic.dy.fi Git - mandelbrot/blob - Makefile
Fix broken aspect ratio calculation
[mandelbrot] / Makefile
1 SDL_CONFIG = $(shell sdl-config --cflags)
2 SDL_LIBS = $(shell sdl-config --libs)
3 CFLAGS = $(SDL_CONFIG) -Wall -O2 -g -fopenmp
4 LDFLAGS = -fopenmp
5 LIBS = $(SDL_LIBS) -lm -lrt
6
7 CC = gcc
8
9 MANDELBROT_OBJS = mandelbrot.o
10 MANDELBROT_DEBUG_OBJS = $(patsubst %.o,%-debug.o,$(MANDELBROT_OBJS))
11 ALL_OBJS = $(MANDELBROT_OBJS) $(MANDELBROT_DEBUG_OBJS)
12 ALL_DEBS = $(patsubst %.o,.%.o.d,$(ALL_OBJS))
13
14 ifeq ($(V),1)
15         Q               =
16         QUIET_CC        =
17         QUIET_LINK      =
18 else
19         Q               = @
20         QUIET_CC        = @echo "       CC " $@;
21         QUIET_LINK      = @echo "     LINK " $@;
22 endif
23
24 mandelbrot: $(MANDELBROT_OBJS)
25         $(QUIET_LINK)$(CC) $(LIBS) $(LDFLAGS) -o $@ $(MANDELBROT_OBJS)
26
27 debug-mandelbrot: $(MANDELBROT_DEBUG_OBJS)
28         $(QUIET_LINK)$(CC) $(LIBS) $(LDFLAGS) -o $@ $(MANDELBROT_DEBUG_OBJS) \
29                 -DDEBUG
30
31 .c.o:
32         $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -c $< -o $@
33         $(Q)cp .$@.d .$@.P; \
34             sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
35                 -e '/^$$/ d' -e 's/$$/ :/' < .$@.d >> .$@.P; \
36             mv .$@.P .$@.d
37
38 ifeq ($(C),1)
39         sparse $(CFLAGS) $<
40 endif
41 ifeq ($(C),2)
42         $(CHECKPATCH) -f $<
43 endif
44
45 %-debug.o: %.c
46         $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -DDEBUG -O0 -c $< -o $@
47         $(Q)cp .$@.d .$@.P; \
48             sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
49                 -e '/^$$/ d' -e 's/$$/ :/' < .$@.d >> .$@.P; \
50             mv .$@.P .$@.d
51
52 TAGS:
53         @echo "     TAGS"
54         $(Q)etags *.[ch]
55
56 clean:
57         rm -rfv $(ALL_OBJS) *~ mandelbrot TAGS $(ALL_DEBS) \
58                 debug-mandelbrot
59
60 .PHONY: all clean TAGS
61
62 -include $(ALL_DEBS)