rdex-client: untested pthread fifo for consumer callbacks
[rdex:client.git] / src / Makefile
1 #=======================================================================
2 # rdex -- reaction-diffusion explorer
3 # Copyright (C) 2008,2009  Claude Heiland-Allen <claudiusmaximus@goto10.org>
4 #-----------------------------------------------------------------------
5 # Makefile
6 #=======================================================================
7
8 CC = gcc
9 CFLAGS = -std=c99 -Wall -pedantic -O3 -pthread `curl-config --cflags`
10 LIBS = -lGL -lGLU -lglut -lGLEW `curl-config --libs` 
11 OBJS = main.o rdex.o shader.o arithmeticmean.o borderwindow.o copysquare.o difference.o falsecolour.o histogram.o image.o library.o list.o numericerror.o pfifo.o reactiondiffusion.o screenshot.o segment.o tamura.o upload.o util.o
12 GENC = arithmeticmean.frag.c borderwindow.frag.c copysquare.frag.c difference.frag.c falsecolour.frag.c numericerror.frag.c reactiondiffusion.frag.c
13
14 # optional feature: window icon
15 CFLAGS += -DRDEX_ICON
16 LIBS += -lXpm
17 # optional feature: debuggability
18 #CFLAGS += -ggdb
19
20
21 all: rdex
22
23 clean:
24         -rm -f $(OBJS) $(GENC)
25
26 # no suffix rules, they cause weird issues with the .frag.c files
27 .SUFFIXES:
28 .PHONY: all clean
29
30 # link program
31 rdex: $(OBJS)
32         $(CC) $(CFLAGS) -s -o rdex $(OBJS) $(LIBS)
33
34 # C source to object file
35 %.o: %.c
36         $(CC) $(CFLAGS) -o $@ -c $<
37
38 # shader source to C source
39 %.frag.c: %.frag s2c.sh
40         ./s2c.sh $*_frag < $< > $@
41
42 # dependencies
43 arithmeticmean.o: arithmeticmean.c arithmeticmean.frag.c arithmeticmean.h shader.h util.h
44 borderwindow.o: borderwindow.c borderwindow.frag.c borderwindow.h shader.h
45 copysquare.o: copysquare.c copysquare.frag.c copysquare.h shader.h util.h
46 difference.o: difference.c difference.frag.c difference.h shader.h arithmeticmean.h util.h
47 falsecolour.o: falsecolour.c falsecolour.frag.c falsecolour.h shader.h util.h
48 histogram.o: histogram.c histogram.h image.h
49 image.o: image.c image.h
50 library.o: library.c library.h borderwindow.h image.h shader.h tamura.h upload.h
51 list.o: list.c list.h
52 main.o: main.c rdex.h
53 numericerror.o: numericerror.c numericerror.frag.c numericerror.h shader.h arithmeticmean.h util.h
54 pfifo.o: pfifo.c pfifo.h list.h
55 rdex.o: rdex.c rdex.h arithmeticmean.h copysquare.h difference.h falsecolour.h library.h numericerror.h reactiondiffusion.h screenshot.h
56 reactiondiffusion.o: reactiondiffusion.c reactiondiffusion.frag.c reactiondiffusion.h shader.h util.h
57 screenshot.o: screenshot.c screenshot.h
58 segment.o: segment.c segment.h image.h util.h
59 shader.o: shader.c shader.h
60 tamura.o: tamura.c tamura.h image.h
61 upload.o: upload.c upload.h
62 util.o: util.c util.h
63
64 # EOF