]> git.itanic.dy.fi Git - mandelbrot/blob - Makefile
Take drawing area as an parameter
[mandelbrot] / Makefile
1 SDL_CONFIG = $(shell sdl-config --cflags)
2 SDL_LIBS = $(shell sdl-config --libs)
3 CFLAGS = $(SDL_CONFIG) -Wall -O2 -g
4
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) -o $@ $(MANDELBROT_OBJS)
26
27 debug-mandelbrot: $(MANDELBROT_DEBUG_OBJS)
28         $(QUIET_LINK)$(CC) $(LIBS) -o $@ $(MANDELBROT_DEBUG_OBJS) -DDEBUG
29
30 .c.o:
31         $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -c $< -o $@
32         $(Q)cp .$@.d .$@.P; \
33             sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
34                 -e '/^$$/ d' -e 's/$$/ :/' < .$@.d >> .$@.P; \
35             mv .$@.P .$@.d
36
37 ifeq ($(C),1)
38         sparse $(CFLAGS) $<
39 endif
40 ifeq ($(C),2)
41         $(CHECKPATCH) -f $<
42 endif
43
44 %-debug.o: %.c
45         $(QUIET_CC)$(CC) -MMD -MF .$@.d $(CFLAGS) -DDEBUG -O0 -c $< -o $@
46         $(Q)cp .$@.d .$@.P; \
47             sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
48                 -e '/^$$/ d' -e 's/$$/ :/' < .$@.d >> .$@.P; \
49             mv .$@.P .$@.d
50
51 TAGS:
52         @echo "     TAGS"
53         $(Q)etags *.[ch]
54
55 clean:
56         rm -rfv $(ALL_OBJS) *~ mandelbrot TAGS $(ALL_DEBS) \
57                 debug-mandelbrot
58
59 .PHONY: all clean TAGS
60
61 -include $(ALL_DEBS)