# HG changeset patch # User Matti Hamalainen # Date 1375700863 -10800 # Node ID 08e2ed7d5879c7ebb25444e472f52901622ab736 # Parent de12519301a275c602fc25fdb347dae893670a61 Improve build process. diff -r de12519301a2 -r 08e2ed7d5879 Makefile --- a/Makefile Mon Aug 05 14:06:11 2013 +0300 +++ b/Makefile Mon Aug 05 14:07:43 2013 +0300 @@ -1,3 +1,19 @@ +CXX=g++ +CFLAGS = -g -O3 -W -Wall +LDFLAGS = -s +AR=ar +RANLIB=ranlib + +DEMO_CFLAGS = -fpermissive + +OBJPATH=obj/ + +### +### Depency definitions +### +BOOST_CFLAGS=-I/usr/include/ +BOOST_LDFLAGS=/usr/lib/libboost_thread.a /usr/lib/libboost_system.a + BASS_CFLAGS=-Ilibbass/ BASS_LDFLAGS=-L./ -lbass @@ -7,8 +23,10 @@ FREETYPE_CFLAGS=`pkg-config freetype2 --cflags` FREETYPE_LDFLAGS=`pkg-config freetype2 --libs` -LIBOGGPLAYER_CFLAGS=-Iliboggplayer-linux32/include/ -LIBOGGPLAYER_LDFLAGS=-L./ -loggplayer +LIBOGGPLAYER=liboggplayer-src/ +LIBOGGPLAYER_CFLAGS=-I$(LIBOGGPLAYER)include/ +LIBOGGPLAYER_LDFLAGS=`pkg-config --libs ogg vorbis theoradec` +LIBOGGPLAYER_A=$(LIBOGGPLAYER)lib/liboggplayer.a GLEW_CFLAGS=`pkg-config glew --cflags` GLEW_LDFLAGS=`pkg-config glew --libs` @@ -16,33 +34,73 @@ GLUT_CFLAGS=-I/usr/include/GL/ GLUT_LDFLAGS=/usr/lib/i386-linux-gnu/libglut.a + +DEMO_CFLAGS += $(BASS_CFLAGS) $(ASSIMP_CFLAGS) \ + $(LIBOGGPLAYER_CFLAGS) $(FREETYPE_CFLAGS) \ + $(GLEW_CFLAGS) $(GLUT_CFLAGS) \ + $(FREETYPE_CFLAGS) + +DEMO_LDFLAGS = $(BASS_LDFLAGS) $(ASSIMP_LDFLAGS) \ + $(LIBOGGPLAYER_A) $(FREETYPE_LDFLAGS) \ + $(GLEW_LDFLAGS) $(GLUT_LDFLAGS) \ + $(FREETYPE_LDFLAGS) $(BOOST_LDFLAGS) \ + $(LIBOGGPLAYER_LDFLAGS) + + +### +### Source files etc +### TARGETS=demo.bin -CXX=g++ -CFLAGS = -g -O3 -W -Wall -fpermissive -LDFLAGS = -s +DEMO_OBJS=vertex-attribute.o vertex-buffer.o \ + texture-atlas.o texture-font.o mat4.o \ + shader.o vector.o midifile.o \ + midiutil.o main.o + +LIBOGGPLAYER_OBJS= \ + oggplayer.o open_close.o play.o \ + SDL_audiocvt.o util.o + ### ### Main targets ### all: $(TARGETS) -demo.bin: src/vertex-attribute.c src/vertex-buffer.c \ - src/texture-atlas.c src/texture-font.c src/mat4.c \ - src/shader.c src/vector.c src/midifile.c \ - src/midiutil.c src/main.c - $(CXX) $(CFLAGS) -o $@ $+ $(BASS_CFLAGS) $(BASS_LDFLAGS) \ - $(ASSIMP_CFLAGS) $(ASSIMP_LDFLAGS) \ - $(LIBOGGPLAYER_CFLAGS) $(LIBOGGPLAYER_LDFLAGS) \ - $(FREETYPE_CFLAGS) $(FREETYPE_LDFLAGS) \ - $(GLEW_CFLAGS) $(GLEW_LDFLAGS) \ - $(GLUT_CFLAGS) $(GLUT_LDFLAGS) +$(OBJPATH)%.o: $(LIBOGGPLAYER)src/%.cpp $(LIBOGGPLAYER)src/%.hpp + @echo " CXX $+" + $(CXX) $(CFLAGS) -c -o $@ $< $(LIBOGGPLAYER_CFLAGS) $(BOOST_CFLAGS) + +$(OBJPATH)%.o: $(LIBOGGPLAYER)src/%.cpp + @echo " CXX $+" + $(CXX) $(CFLAGS) -c -o $@ $< $(LIBOGGPLAYER_CFLAGS) $(BOOST_CFLAGS) + + +$(OBJPATH)%.o: src/%.c src/%.h + @echo " CXX $+" + $(CXX) $(CFLAGS) -c -o $@ $< $(DEMO_CFLAGS) + +$(OBJPATH)%.o: src/%.c + @echo " CXX $+" + $(CXX) $(CFLAGS) -c -o $@ $< $(DEMO_CFLAGS) + + +$(LIBOGGPLAYER_A): $(addprefix $(OBJPATH),$(LIBOGGPLAYER_OBJS)) + @echo " AR $@ $+" + @$(AR) cru $@ $+ + @echo " RANLIB $@" + @$(RANLIB) $@ + + +demo.bin: $(addprefix $(OBJPATH),$(DEMO_OBJS)) $(LIBOGGPLAYER_A) + @echo " LINK $@ $+" + @$(CXX) $(CFLAGS) $(DEMO_CFLAGS) -o $@ $+ $(DEMO_LDFLAGS) ### ### Special targets ### clean: - $(RM) $(TARGETS) *.o + $(RM) $(TARGETS) $(OBJPATH)*.o