comparison Makefile @ 5:08e2ed7d5879

Improve build process.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 05 Aug 2013 14:07:43 +0300
parents 785057719d9b
children 470774c3b381
comparison
equal deleted inserted replaced
4:de12519301a2 5:08e2ed7d5879
1 CXX=g++
2 CFLAGS = -g -O3 -W -Wall
3 LDFLAGS = -s
4 AR=ar
5 RANLIB=ranlib
6
7 DEMO_CFLAGS = -fpermissive
8
9 OBJPATH=obj/
10
11 ###
12 ### Depency definitions
13 ###
14 BOOST_CFLAGS=-I/usr/include/
15 BOOST_LDFLAGS=/usr/lib/libboost_thread.a /usr/lib/libboost_system.a
16
1 BASS_CFLAGS=-Ilibbass/ 17 BASS_CFLAGS=-Ilibbass/
2 BASS_LDFLAGS=-L./ -lbass 18 BASS_LDFLAGS=-L./ -lbass
3 19
4 ASSIMP_CFLAGS=-Iassimp--3.0.1270-source-only/include/ 20 ASSIMP_CFLAGS=-Iassimp--3.0.1270-source-only/include/
5 ASSIMP_LDFLAGS=-L./ -lassimp 21 ASSIMP_LDFLAGS=-L./ -lassimp
6 22
7 FREETYPE_CFLAGS=`pkg-config freetype2 --cflags` 23 FREETYPE_CFLAGS=`pkg-config freetype2 --cflags`
8 FREETYPE_LDFLAGS=`pkg-config freetype2 --libs` 24 FREETYPE_LDFLAGS=`pkg-config freetype2 --libs`
9 25
10 LIBOGGPLAYER_CFLAGS=-Iliboggplayer-linux32/include/ 26 LIBOGGPLAYER=liboggplayer-src/
11 LIBOGGPLAYER_LDFLAGS=-L./ -loggplayer 27 LIBOGGPLAYER_CFLAGS=-I$(LIBOGGPLAYER)include/
28 LIBOGGPLAYER_LDFLAGS=`pkg-config --libs ogg vorbis theoradec`
29 LIBOGGPLAYER_A=$(LIBOGGPLAYER)lib/liboggplayer.a
12 30
13 GLEW_CFLAGS=`pkg-config glew --cflags` 31 GLEW_CFLAGS=`pkg-config glew --cflags`
14 GLEW_LDFLAGS=`pkg-config glew --libs` 32 GLEW_LDFLAGS=`pkg-config glew --libs`
15 33
16 GLUT_CFLAGS=-I/usr/include/GL/ 34 GLUT_CFLAGS=-I/usr/include/GL/
17 GLUT_LDFLAGS=/usr/lib/i386-linux-gnu/libglut.a 35 GLUT_LDFLAGS=/usr/lib/i386-linux-gnu/libglut.a
18 36
37
38 DEMO_CFLAGS += $(BASS_CFLAGS) $(ASSIMP_CFLAGS) \
39 $(LIBOGGPLAYER_CFLAGS) $(FREETYPE_CFLAGS) \
40 $(GLEW_CFLAGS) $(GLUT_CFLAGS) \
41 $(FREETYPE_CFLAGS)
42
43 DEMO_LDFLAGS = $(BASS_LDFLAGS) $(ASSIMP_LDFLAGS) \
44 $(LIBOGGPLAYER_A) $(FREETYPE_LDFLAGS) \
45 $(GLEW_LDFLAGS) $(GLUT_LDFLAGS) \
46 $(FREETYPE_LDFLAGS) $(BOOST_LDFLAGS) \
47 $(LIBOGGPLAYER_LDFLAGS)
48
49
50 ###
51 ### Source files etc
52 ###
19 TARGETS=demo.bin 53 TARGETS=demo.bin
20 54
21 CXX=g++
22 CFLAGS = -g -O3 -W -Wall -fpermissive
23 LDFLAGS = -s
24 55
56 DEMO_OBJS=vertex-attribute.o vertex-buffer.o \
57 texture-atlas.o texture-font.o mat4.o \
58 shader.o vector.o midifile.o \
59 midiutil.o main.o
60
61 LIBOGGPLAYER_OBJS= \
62 oggplayer.o open_close.o play.o \
63 SDL_audiocvt.o util.o
64
25 65
26 ### 66 ###
27 ### Main targets 67 ### Main targets
28 ### 68 ###
29 all: $(TARGETS) 69 all: $(TARGETS)
30 70
31 demo.bin: src/vertex-attribute.c src/vertex-buffer.c \ 71 $(OBJPATH)%.o: $(LIBOGGPLAYER)src/%.cpp $(LIBOGGPLAYER)src/%.hpp
32 src/texture-atlas.c src/texture-font.c src/mat4.c \ 72 @echo " CXX $+"
33 src/shader.c src/vector.c src/midifile.c \ 73 $(CXX) $(CFLAGS) -c -o $@ $< $(LIBOGGPLAYER_CFLAGS) $(BOOST_CFLAGS)
34 src/midiutil.c src/main.c 74
35 $(CXX) $(CFLAGS) -o $@ $+ $(BASS_CFLAGS) $(BASS_LDFLAGS) \ 75 $(OBJPATH)%.o: $(LIBOGGPLAYER)src/%.cpp
36 $(ASSIMP_CFLAGS) $(ASSIMP_LDFLAGS) \ 76 @echo " CXX $+"
37 $(LIBOGGPLAYER_CFLAGS) $(LIBOGGPLAYER_LDFLAGS) \ 77 $(CXX) $(CFLAGS) -c -o $@ $< $(LIBOGGPLAYER_CFLAGS) $(BOOST_CFLAGS)
38 $(FREETYPE_CFLAGS) $(FREETYPE_LDFLAGS) \ 78
39 $(GLEW_CFLAGS) $(GLEW_LDFLAGS) \ 79
40 $(GLUT_CFLAGS) $(GLUT_LDFLAGS) 80 $(OBJPATH)%.o: src/%.c src/%.h
81 @echo " CXX $+"
82 $(CXX) $(CFLAGS) -c -o $@ $< $(DEMO_CFLAGS)
83
84 $(OBJPATH)%.o: src/%.c
85 @echo " CXX $+"
86 $(CXX) $(CFLAGS) -c -o $@ $< $(DEMO_CFLAGS)
87
88
89 $(LIBOGGPLAYER_A): $(addprefix $(OBJPATH),$(LIBOGGPLAYER_OBJS))
90 @echo " AR $@ $+"
91 @$(AR) cru $@ $+
92 @echo " RANLIB $@"
93 @$(RANLIB) $@
94
95
96 demo.bin: $(addprefix $(OBJPATH),$(DEMO_OBJS)) $(LIBOGGPLAYER_A)
97 @echo " LINK $@ $+"
98 @$(CXX) $(CFLAGS) $(DEMO_CFLAGS) -o $@ $+ $(DEMO_LDFLAGS)
41 99
42 100
43 ### 101 ###
44 ### Special targets 102 ### Special targets
45 ### 103 ###
46 clean: 104 clean:
47 $(RM) $(TARGETS) *.o 105 $(RM) $(TARGETS) $(OBJPATH)*.o
48 106