1# Makefile
2# author: iOS-Software
3# July 2004
4
5ENABLE_AUDIO=true
6ENABLE_OPENGL=true
7
8
9DATADIR=\"data\"
10
11SDL_CONFIG=sdl-config
12CC=g++
13CXX=g++
14
15CFLAGS=`$(SDL_CONFIG) --cflags` -g -I/sw/include -DDATADIR=${DATADIR}
16
17HFILES= HiScores.h IosException.h IosImgProcess.h IosVector.h PuyoCommander.h\
18        PuyoGame.h PuyoAnimations.h AnimatedPuyo.h PuyoIA.h PuyoPlayer.h     \
19        PuyoStory.h PuyoView.h SDL_prim.h audio.h menu.h menuitems.h         \
20        preferences.h scrollingtext.h sofont.h SDL_Painter.h PuyoVersion.h   \
21        InputManager.h GameControls.h HiScores.h IosImgProcess.h PuyoStarter.h
22
23
24OBJFILES= SDL_prim.o HiScores.o scenar.y.o scenar.l.o PuyoCommander.o        \
25          IosException.o IosVector.o main.o PuyoGame.o PuyoVersion.o         \
26          PuyoView.o PuyoAnimations.o AnimatedPuyo.o PuyoIA.o sofont.o       \
27          menu.o menuitems.o audio.o scrollingtext.o preferences.o           \
28          PuyoStory.o SDL_Painter.o InputManager.o GameControls.o            \
29          PuyoDoomMelt.o IosImgProcess.o corona32.o corona.o corona_palette.o PuyoStarter.o
30
31PLATFORM=$(shell uname -s)
32ifeq ($(PLATFORM), Darwin)
33CFLAGS:=$(CFLAGS) -DMACOSX -UDATADIR
34endif
35
36ifeq ($(ENABLE_AUDIO), true)
37CFLAGS:=$(CFLAGS) -DUSE_AUDIO=1
38OBJFILES:=$(OBJFILES)
39endif
40
41ifeq ($(ENABLE_OPENGL), true)
42CFLAGS:=$(CFLAGS) -DHAVE_OPENGL=1
43OBJFILES:=$(OBJFILES) glSDL.o
44ifeq ($(PLATFORM), Linux)
45LDFLAGS:=$(LDFLAGS) -lGL
46endif
47endif
48
49CXXFLAGS=${CFLAGS}
50
51all: prelude flobopuyo
52
53flobopuyo: ${OBJFILES}
54	@echo "[flobopuyo]" && g++ $(CFLAGS) $(LDFLAGS) -o flobopuyo `$(SDL_CONFIG) --cflags --libs` -lSDL_mixer -lSDL_image ${OBJFILES}
55	@echo "--------------------------------------"
56	@echo " Compilation finished"
57	@[ "x`cat WARNINGS | wc -l`" != "x0" ] && echo -e "--------------------------------------\n There have been some warnings:\n" && cat WARNINGS && rm -f WARNINGS && echo "--------------------------------------" || true
58	@echo
59	@echo " Type ./flobopuyo to play."
60	@echo "--------------------------------------"
61
62prelude:
63	@rm -f WARNINGS
64	@touch WARNINGS
65	@echo "Compiling with CFLAGS=$(CFLAGS)"
66
67%.o:%.c
68	@echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> WARNINGS || (cat WARNINGS && false)
69
70%.o:%.cpp
71	@echo "[$@]" && $(CXX) $(CFLAGS) -c $< 2>> WARNINGS || (cat WARNINGS && false)
72
73PuyoDoomMelt.o:PuyoDoomMelt.c ${HFILES}
74HiScores.o:HiScores.cpp HiScores.h preferences.h
75PuyoCommander.o:PuyoCommander.cpp ${HFILES}
76PuyoGame.o:PuyoGame.cpp ${HFILES}
77PuyoIA.o:PuyoIA.cpp ${HFILES}
78PuyoStory.o:PuyoStory.cpp ${HFILES}
79PuyoView.o:PuyoView.cpp ${HFILES}
80AnimatedPuyo.o: AnimatedPuyo.cpp ${HFILES}
81PuyoAnimations.o: PuyoAnimations.cpp ${HFILES}
82main.o:main.cpp ${HFILES}
83preferences.o:preferences.c preferences.h
84scenar.l.o:scenar.l.c ${HFILES}
85scenar.y.o:scenar.y.c ${HFILES}
86InputManager.o:InputManager.cpp ${HFILES}
87GameControls.o:GameControls.cpp ${HFILES}
88IosImgProcess.o:IosImgProcess.cpp ${HFILES}
89SDL_Painter.o:SDL_Painter.cpp SDL_Painter.h
90audio.o:audio.c audio.h
91menu.o:menu.c menu.h menuitems.h
92menuitems.o:menuitems.c menu.h menuitems.h
93scrollingtext.o:scrollingtext.c
94sofont.o:sofont.c
95IosException.o:IosException.cpp
96IosVector.o:IosVector.cpp
97glSDL.o:glSDL.c
98	@echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> EXT_WARNINGS
99	@rm -f EXT_WARNINGS
100SDL_prim.o:SDL_prim.c
101	@echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> EXT_WARNINGS
102	@rm -f EXT_WARNINGS
103corona.o:corona.cpp
104corona32.o:corona32.cpp
105corona_palette.o:corona_palette.cpp
106
107scenar.l.c:scenar.l ${HFILES}
108	@echo "[$@]" && flex -oscenar.l.c scenar.l
109scenar.y.c:scenar.y ${HFILES}
110	@echo "[$@]" && bison -y -d -o scenar.y.c scenar.y
111
112clean:
113	rm -f *~ scenar.y.c scenar.y.h scenar.l.c *.o flobopuyo* WARNINGS
114	rm -rf .xvpics data/.xvpics    data/*/.xvpics
115	rm -rf FloboPuyo.app
116	rm -f  .DS_Store data/.DS_Store data/*/.DS_Store .gdb_history
117
118bundle_name = FloboPuyo.app
119
120flobopuyo-static: prelude  ${OBJFILES}
121	@echo "[flobopuyo-static]" && g++ $(CFLAGS) -o flobopuyo-static ${OBJFILES}\
122        /sw/lib/libSDL_mixer.a /sw/lib/libvorbisfile.a /sw/lib/libvorbis.a /sw/lib/libogg.a /sw/lib/libsmpeg.a /sw/lib/libSDL_image.a /sw/lib/libjpeg.a /sw/lib/libpng.a -lz `$(SDL_CONFIG) --static-libs`
123	@echo "--------------------------------------"
124	@echo " Compilation finished"
125
126flobopuyo-staticz:SDL_prim.o
127	bison -y -d -o scenar.y.c scenar.y
128	flex -oscenar.l.c scenar.l
129	g++ -DMACOSX $(CFLAGS) -o flobopuyo-static  IosImgProcess.cpp HiScores.cpp SDL_prim.o PuyoCommander.cpp InputManager.cpp GameControls.cpp IosException.cpp IosVector.cpp main.cpp PuyoGame.cpp PuyoView.cpp PuyoIA.cpp PuyoVersion.c sofont.c menu.c menuitems.c audio.c scrollingtext.c preferences.c SDL_Painter.cpp PuyoStory.cpp scenar.y.c scenar.l.c /sw/lib/libSDL_mixer.a /sw/lib/libvorbisfile.a /sw/lib/libvorbis.a /sw/lib/libogg.a /sw/lib/libsmpeg.a /sw/lib/libSDL_image.a /sw/lib/libjpeg.a /sw/lib/libpng.a -lz `$(SDL_CONFIG) --cflags --static-libs`
130
131# /sw/lib/libvorbis.a
132
133bundle: flobopuyo-static
134	mkdir -p $(bundle_name)/Contents/MacOS
135	mkdir -p $(bundle_name)/Contents/Resources
136	echo "APPL????" > $(bundle_name)/Contents/PkgInfo
137	cp mac/Info.plist $(bundle_name)/Contents/
138	cp mac/icon.icns $(bundle_name)/Contents/Resources/
139	cp flobopuyo-static $(bundle_name)/Contents/MacOS/flobopuyo
140	cp -r data $(bundle_name)/Contents/Resources
141	rm -rf $(bundle_name)/Contents/Resources/data/CVS $(bundle_name)/Contents/Resources/data/*/CVS
142	rm -rf $(bundle_name)/Contents/Resources/data/.xvpics $(bundle_name)/Contents/Resources/data/*/.xvpics
143	rm -f $(bundle_name)/Contents/Resources/data/.DS_Store $(bundle_name)/Contents/Resources/data/*/.DS_Store
144	strip $(bundle_name)/Contents/MacOS/flobopuyo
145
146package_name = "FloBoPuyo\ 0.20"
147mac-package: bundle
148	mkdir "$(package_name)"
149	mv $(bundle_name) "$(package_name)"
150	cp COPYING "$(package_name)"
151	hdiutil create -srcfolder "$(package_name)" "$(package_name).dmg"
152