| | 1 | # Makefile |
| | 2 | # authors: iOS-Software/Michael Vinícius de Oliveira |
| | 3 | # December 2010 |
| | 4 | |
| | 5 | ############### |
| | 6 | # Settings |
| | 7 | |
| | 8 | ENABLE_AUDIO=true |
| | 9 | ENABLE_OPENGL=true |
| | 10 | ENABLE_DGA=true |
| | 11 | |
| | 12 | DEBUG_MODE=false |
| | 13 | |
| | 14 | # Unix/Linux settings |
| | 15 | PREFIX=/boot/apps/flobopuyo |
| | 16 | DATADIR=$(PREFIX)/share/games/flobopuyo |
| | 17 | INSTALL_BINDIR=$(DESTDIR)/$(PREFIX) |
| | 18 | INSTALL_DATADIR=$(DESTDIR)/$(DATADIR) |
| | 19 | |
| | 20 | # Mac settings |
| | 21 | macimage_name=FloBoPuyo\ $(VERSION) |
| | 22 | bundle_name=FloboPuyo.app |
| | 23 | |
| | 24 | # Win32 settings |
| | 25 | CYGWIN_VERSION=CYGWIN_NT-5.1 |
| | 26 | WINZIP_NAME=flobopuyowin32 |
| | 27 | WINSDLINCLUDE=/home/$(USER)/SDL-1.2.7/include |
| | 28 | WINSDLDEVLIBS=/home/$(USER)/SDL-1.2.7/lib |
| | 29 | WINSDLRUNTIME=/home/$(USER)/SDL-1.2.7/lib |
| | 30 | # |
| | 31 | ########## |
| | 32 | |
| | 33 | |
| | 34 | ############## |
| | 35 | # Autodetection |
| | 36 | |
| | 37 | PLATFORM=$(shell uname -s) |
| | 38 | |
| | 39 | VERSION=$(shell grep "\#define FLOBOPUYOVERSION" PuyoVersion.c | cut -d "\"" -f 2) |
| | 40 | # |
| | 41 | ############## |
| | 42 | |
| | 43 | SDL_CONFIG=sdl-config |
| | 44 | CC=g++ |
| | 45 | CXX=g++ |
| | 46 | |
| | 47 | CFLAGS= -DDATADIR=\"${DATADIR}\" |
| | 48 | LDFLAGS= |
| | 49 | |
| | 50 | ifneq ($(PLATFORM), $(CYGWIN_VERSION)) |
| | 51 | CFLAGS:=$(CFLAGS) `$(SDL_CONFIG) --cflags` -I/sw/include |
| | 52 | LDFLAGS:=$(LDFLAGS) `$(SDL_CONFIG) --cflags --libs` |
| | 53 | endif |
| | 54 | |
| | 55 | HFILES= HiScores.h IosException.h IosImgProcess.h IosVector.h PuyoCommander.h\ |
| | 56 | PuyoGame.h PuyoAnimations.h AnimatedPuyo.h PuyoIA.h PuyoPlayer.h \ |
| | 57 | PuyoStory.h PuyoView.h SDL_prim.h audio.h menu.h menuitems.h \ |
| | 58 | preferences.h scrollingtext.h sofont.h SDL_Painter.h PuyoVersion.h \ |
| | 59 | InputManager.h GameControls.h HiScores.h IosImgProcess.h PuyoStarter.h |
| | 60 | |
| | 61 | |
| | 62 | OBJFILES= SDL_prim.o HiScores.o scenar.y.o scenar.l.o PuyoCommander.o \ |
| | 63 | IosException.o IosVector.o main.o PuyoGame.o PuyoVersion.o \ |
| | 64 | PuyoView.o PuyoAnimations.o AnimatedPuyo.o PuyoIA.o sofont.o \ |
| | 65 | menu.o menuitems.o audio.o scrollingtext.o preferences.o \ |
| | 66 | PuyoStory.o SDL_Painter.o InputManager.o GameControls.o \ |
| | 67 | PuyoDoomMelt.o IosImgProcess.o corona32.o corona.o corona_palette.o\ |
| | 68 | PuyoStarter.o |
| | 69 | |
| | 70 | |
| | 71 | ################ |
| | 72 | # Mac OS X |
| | 73 | ifeq ($(PLATFORM), Darwin) |
| | 74 | CFLAGS:=$(CFLAGS) -DMACOSX -UDATADIR |
| | 75 | endif |
| | 76 | |
| | 77 | ################ |
| | 78 | # Win32 |
| | 79 | ifeq ($(PLATFORM), $(CYGWIN_VERSION)) |
| | 80 | CFLAGS:=$(CFLAGS) -mno-cygwin -mwindows -DWIN32 -DYY_NEVER_INTERACTIVE=1 -I$(WINSDLINCLUDE) |
| | 81 | LDFLAGS:=$(LDFLAGS) -L$(WINSDLDEVLIBS) -lmingw32 -ljpeg -lzlib -lpng1 -lSDL_image -lSDL_mixer -lSDL -lSDLmain |
| | 82 | endif |
| | 83 | |
| | 84 | ifeq ($(ENABLE_AUDIO), true) |
| | 85 | CFLAGS:=$(CFLAGS) -DUSE_AUDIO=1 |
| | 86 | OBJFILES:=$(OBJFILES) |
| | 87 | endif |
| | 88 | |
| | 89 | ifeq ($(ENABLE_OPENGL), true) |
| | 90 | CFLAGS:=$(CFLAGS) -DHAVE_OPENGL=1 |
| | 91 | OBJFILES:=$(OBJFILES) glSDL.o |
| | 92 | ifeq ($(PLATFORM), Linux) |
| | 93 | LDFLAGS:=$(LDFLAGS) -lGL |
| | 94 | endif |
| | 95 | endif |
| | 96 | |
| | 97 | ifeq ($(ENABLE_DGA), true) |
| | 98 | ifeq ($(PLATFORM), Linux) |
| | 99 | CFLAGS:=$(CFLAGS) -DUSE_DGA=1 |
| | 100 | endif |
| | 101 | endif |
| | 102 | |
| | 103 | ifeq ($(DEBUG), true) |
| | 104 | CFLAGS:=$(CFLAGS) -DDEBUG=1 -g |
| | 105 | LDFLAGS:=$(LDFLAGS) -g |
| | 106 | endif |
| | 107 | |
| | 108 | CXXFLAGS=${CFLAGS} |
| | 109 | |
| | 110 | all: prelude flobopuyo |
| | 111 | |
| | 112 | flobopuyo: ${OBJFILES} |
| | 113 | @echo "[flobopuyo]" && g++ $(CFLAGS) $(LDFLAGS) -o flobopuyo -lSDL_mixer -lSDL_image -lGL ${OBJFILES} |
| | 114 | @echo "--------------------------------------" |
| | 115 | @echo " Compilation finished" |
| | 116 | @[ "x`cat WARNINGS | wc -l`" != "x0" ] && echo -e "--------------------------------------\n There have been some warnings:\n" && cat WARNINGS && rm -f WARNINGS && echo "--------------------------------------" || true |
| | 117 | @echo |
| | 118 | @echo " Type ./flobopuyo to play." |
| | 119 | @echo "--------------------------------------" |
| | 120 | |
| | 121 | prelude: |
| | 122 | @rm -f WARNINGS |
| | 123 | @touch WARNINGS |
| | 124 | @echo "Compiling with CFLAGS=$(CFLAGS)" |
| | 125 | @echo "Compiling with LDFLAGS=$(LDFLAGS)" |
| | 126 | |
| | 127 | %.o:%.c |
| | 128 | @echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> WARNINGS || (cat WARNINGS && false) |
| | 129 | |
| | 130 | %.o:%.cpp |
| | 131 | @echo "[$@]" && $(CXX) $(CFLAGS) -c $< 2>> WARNINGS || (cat WARNINGS && false) |
| | 132 | |
| | 133 | PuyoDoomMelt.o:PuyoDoomMelt.c ${HFILES} |
| | 134 | HiScores.o:HiScores.cpp HiScores.h preferences.h |
| | 135 | PuyoCommander.o:PuyoCommander.cpp ${HFILES} |
| | 136 | PuyoGame.o:PuyoGame.cpp ${HFILES} |
| | 137 | PuyoIA.o:PuyoIA.cpp ${HFILES} |
| | 138 | PuyoStory.o:PuyoStory.cpp ${HFILES} |
| | 139 | PuyoView.o:PuyoView.cpp ${HFILES} |
| | 140 | AnimatedPuyo.o: AnimatedPuyo.cpp ${HFILES} |
| | 141 | PuyoAnimations.o: PuyoAnimations.cpp ${HFILES} |
| | 142 | main.o:main.cpp ${HFILES} |
| | 143 | preferences.o:preferences.c preferences.h |
| | 144 | scenar.l.o:scenar.l.c ${HFILES} |
| | 145 | scenar.y.o:scenar.y.c ${HFILES} |
| | 146 | InputManager.o:InputManager.cpp ${HFILES} |
| | 147 | GameControls.o:GameControls.cpp ${HFILES} |
| | 148 | IosImgProcess.o:IosImgProcess.cpp ${HFILES} |
| | 149 | SDL_Painter.o:SDL_Painter.cpp SDL_Painter.h |
| | 150 | audio.o:audio.c audio.h |
| | 151 | menu.o:menu.c menu.h menuitems.h |
| | 152 | menuitems.o:menuitems.c menu.h menuitems.h |
| | 153 | scrollingtext.o:scrollingtext.c |
| | 154 | sofont.o:sofont.c |
| | 155 | IosException.o:IosException.cpp |
| | 156 | IosVector.o:IosVector.cpp |
| | 157 | glSDL.o:glSDL.c |
| | 158 | @echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> EXT_WARNINGS |
| | 159 | @rm -f EXT_WARNINGS |
| | 160 | SDL_prim.o:SDL_prim.c |
| | 161 | @echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> EXT_WARNINGS |
| | 162 | @rm -f EXT_WARNINGS |
| | 163 | corona.o:corona.cpp |
| | 164 | corona32.o:corona32.cpp |
| | 165 | corona_palette.o:corona_palette.cpp |
| | 166 | |
| | 167 | scenar.l.c:scenar.l ${HFILES} |
| | 168 | @echo "[$@]" && flex -oscenar.l.c scenar.l |
| | 169 | scenar.y.c:scenar.y ${HFILES} |
| | 170 | @echo "[$@]" && bison -y -d -o scenar.y.c scenar.y |
| | 171 | |
| | 172 | clean: |
| | 173 | rm -f *~ scenar.y.c scenar.y.h scenar.l.c *.o flobopuyo* WARNINGS |
| | 174 | rm -rf .xvpics data/.xvpics data/*/.xvpics |
| | 175 | rm -rf $(bundle_name) |
| | 176 | rm -rf $(macimage_name) |
| | 177 | rm -f $(macimage_name).dmg |
| | 178 | rm -f .DS_Store */.DS_Store */*/.DS_Store .gdb_history |
| | 179 | |
| | 180 | install: flobopuyo |
| | 181 | strip flobopuyo |
| | 182 | mkdir -p ${INSTALL_BINDIR} |
| | 183 | mkdir -p ${INSTALL_DATADIR} |
| | 184 | cp -r data/* ${INSTALL_DATADIR} |
| | 185 | chmod a+rx ${INSTALL_DATADIR} |
| | 186 | chmod a+rx ${INSTALL_DATADIR}/sfx |
| | 187 | chmod a+rx ${INSTALL_DATADIR}/gfx |
| | 188 | chmod a+rx ${INSTALL_DATADIR}/story |
| | 189 | chmod -R a+r ${INSTALL_DATADIR} |
| | 190 | cp ./flobopuyo ${INSTALL_BINDIR}/flobopuyo |
| | 191 | chmod a+rx ${INSTALL_BINDIR}/flobopuyo |
| | 192 | |
| | 193 | flobopuyo-static: prelude ${OBJFILES} |
| | 194 | @echo "[flobopuyo-static]" && g++ $(CFLAGS) -o flobopuyo-static ${OBJFILES}\ |
| | 195 | /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` |
| | 196 | @echo "--------------------------------------" |
| | 197 | @echo " Compilation finished" |
| | 198 | |
| | 199 | bundle: flobopuyo-static |
| | 200 | mkdir -p $(bundle_name)/Contents/MacOS |
| | 201 | mkdir -p $(bundle_name)/Contents/Resources |
| | 202 | echo "APPL????" > $(bundle_name)/Contents/PkgInfo |
| | 203 | sed "s/@@VERSION@@/$(VERSION)/" mac/Info.plist > $(bundle_name)/Contents/Info.plist |
| | 204 | cp mac/icon.icns $(bundle_name)/Contents/Resources/ |
| | 205 | cp flobopuyo-static $(bundle_name)/Contents/MacOS/flobopuyo |
| | 206 | cp -r data $(bundle_name)/Contents/Resources |
| | 207 | rm -rf $(bundle_name)/Contents/Resources/data/CVS $(bundle_name)/Contents/Resources/data/*/CVS |
| | 208 | rm -rf $(bundle_name)/Contents/Resources/data/.xvpics $(bundle_name)/Contents/Resources/data/*/.xvpics |
| | 209 | rm -f $(bundle_name)/Contents/Resources/data/.DS_Store $(bundle_name)/Contents/Resources/data/*/.DS_Store |
| | 210 | strip $(bundle_name)/Contents/MacOS/flobopuyo |
| | 211 | |
| | 212 | mac-package: bundle |
| | 213 | mkdir -p $(macimage_name) |
| | 214 | cp -r $(bundle_name) $(macimage_name) |
| | 215 | cp COPYING $(macimage_name) |
| | 216 | hdiutil create -srcfolder $(macimage_name) $(macimage_name).dmg |
| | 217 | hdiutil internet-enable $(macimage_name).dmg |
| | 218 | |
| | 219 | win-package: flobopuyo |
| | 220 | mkdir -p $(WINZIP_NAME) |
| | 221 | cp -r data $(WINZIP_NAME) |
| | 222 | cp flobopuyo.exe $(WINZIP_NAME) |
| | 223 | cp COPYING $(WINZIP_NAME) |
| | 224 | cp $(WINSDLRUNTIME)/*.dll $(WINZIP_NAME) |
| | 225 | zip -r $(WINZIP_NAME) $(WINZIP_NAME) |