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