# Makefile # author: iOS-Software # July 2004 ############### # Settings ENABLE_AUDIO=true ENABLE_OPENGL=false ENABLE_DGA=false DEBUG_MODE=false # Unix/Linux settings PREFIX=/usr/local DATADIR=/usr/local/share/flobopuyo INSTALL_BINDIR=$(DESTDIR)/$(PREFIX)/games INSTALL_DATADIR=/usr/local/share/flobopuyo # Mac settings macimage_name=FloBoPuyo\ $(VERSION) bundle_name=FloboPuyo.app # Win32 settings CYGWIN_VERSION=CYGWIN_NT-5.1 WINZIP_NAME=flobopuyowin32 WINSDLINCLUDE=/home/$(USER)/SDL-1.2.7/include WINSDLDEVLIBS=/home/$(USER)/SDL-1.2.7/lib WINSDLRUNTIME=/home/$(USER)/SDL-1.2.7/lib # ########## ############## # Autodetection PLATFORM=$(shell uname -s) VERSION=$(shell grep "\#define FLOBOPUYOVERSION" PuyoVersion.c | cut -d "\"" -f 2) # ############## SDL_CONFIG=/usr/local/bin/sdl-config CC=c++ CXX=c++ CFLAGS+= -DDATADIR=\"${DATADIR}\" LDFLAGS= ifneq ($(PLATFORM), $(CYGWIN_VERSION)) CFLAGS:=$(CFLAGS) `$(SDL_CONFIG) --cflags` -I/sw/include LDFLAGS:=$(LDFLAGS) `$(SDL_CONFIG) --cflags --libs` endif HFILES= HiScores.h IosException.h IosImgProcess.h IosVector.h PuyoCommander.h\ PuyoGame.h PuyoAnimations.h AnimatedPuyo.h PuyoIA.h PuyoPlayer.h \ PuyoStory.h PuyoView.h SDL_prim.h audio.h menu.h menuitems.h \ preferences.h scrollingtext.h sofont.h SDL_Painter.h PuyoVersion.h \ InputManager.h GameControls.h HiScores.h IosImgProcess.h PuyoStarter.h OBJFILES= SDL_prim.o HiScores.o scenar.y.o scenar.l.o PuyoCommander.o \ IosException.o IosVector.o main.o PuyoGame.o PuyoVersion.o \ PuyoView.o PuyoAnimations.o AnimatedPuyo.o PuyoIA.o sofont.o \ menu.o menuitems.o audio.o scrollingtext.o preferences.o \ PuyoStory.o SDL_Painter.o InputManager.o GameControls.o \ PuyoDoomMelt.o IosImgProcess.o corona32.o corona.o corona_palette.o\ PuyoStarter.o ################ # Mac OS X ifeq ($(PLATFORM), Darwin) CFLAGS:=$(CFLAGS) -DMACOSX -UDATADIR endif ################ # Win32 ifeq ($(PLATFORM), $(CYGWIN_VERSION)) CFLAGS:=$(CFLAGS) -mno-cygwin -mwindows -DWIN32 -DYY_NEVER_INTERACTIVE=1 -I$(WINSDLINCLUDE) LDFLAGS:=$(LDFLAGS) -L$(WINSDLDEVLIBS) -lmingw32 -ljpeg -lzlib -lpng1 -lSDL_image -lSDL_mixer -lSDL -lSDLmain endif ifeq ($(ENABLE_AUDIO), true) CFLAGS:=$(CFLAGS) -DUSE_AUDIO=1 OBJFILES:=$(OBJFILES) endif ifeq ($(ENABLE_OPENGL), true) CFLAGS:=$(CFLAGS) -DHAVE_OPENGL=1 OBJFILES:=$(OBJFILES) glSDL.o ifeq ($(PLATFORM), Linux) LDFLAGS:=$(LDFLAGS) -lGL endif endif ifeq ($(ENABLE_DGA), true) ifeq ($(PLATFORM), Linux) CFLAGS:=$(CFLAGS) -DUSE_DGA=1 endif endif ifeq ($(DEBUG), true) CFLAGS:=$(CFLAGS) -DDEBUG=1 -g LDFLAGS:=$(LDFLAGS) -g endif CXXFLAGS=${CFLAGS} all: prelude flobopuyo flobopuyo: ${OBJFILES} @echo "[flobopuyo]" && c++ $(CFLAGS) $(LDFLAGS) -o flobopuyo -lSDL_mixer -lSDL_image ${OBJFILES} @echo "--------------------------------------" @echo " Compilation finished" @[ "x`cat WARNINGS | wc -l`" != "x0" ] && echo -e "--------------------------------------\n There have been some warnings:\n" && cat WARNINGS && rm -f WARNINGS && echo "--------------------------------------" || true @echo @echo " Type ./flobopuyo to play." @echo "--------------------------------------" prelude: @rm -f WARNINGS @touch WARNINGS @echo "Compiling with CFLAGS=$(CFLAGS)" @echo "Compiling with LDFLAGS=$(LDFLAGS)" %.o:%.c @echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> WARNINGS || (cat WARNINGS && false) %.o:%.cpp @echo "[$@]" && $(CXX) $(CFLAGS) -c $< 2>> WARNINGS || (cat WARNINGS && false) PuyoDoomMelt.o:PuyoDoomMelt.c ${HFILES} HiScores.o:HiScores.cpp HiScores.h preferences.h PuyoCommander.o:PuyoCommander.cpp ${HFILES} PuyoGame.o:PuyoGame.cpp ${HFILES} PuyoIA.o:PuyoIA.cpp ${HFILES} PuyoStory.o:PuyoStory.cpp ${HFILES} PuyoView.o:PuyoView.cpp ${HFILES} AnimatedPuyo.o: AnimatedPuyo.cpp ${HFILES} PuyoAnimations.o: PuyoAnimations.cpp ${HFILES} main.o:main.cpp ${HFILES} preferences.o:preferences.c preferences.h scenar.l.o:scenar.l.c ${HFILES} scenar.y.o:scenar.y.c ${HFILES} InputManager.o:InputManager.cpp ${HFILES} GameControls.o:GameControls.cpp ${HFILES} IosImgProcess.o:IosImgProcess.cpp ${HFILES} SDL_Painter.o:SDL_Painter.cpp SDL_Painter.h audio.o:audio.c audio.h menu.o:menu.c menu.h menuitems.h menuitems.o:menuitems.c menu.h menuitems.h scrollingtext.o:scrollingtext.c sofont.o:sofont.c IosException.o:IosException.cpp IosVector.o:IosVector.cpp glSDL.o:glSDL.c @echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> EXT_WARNINGS @rm -f EXT_WARNINGS SDL_prim.o:SDL_prim.c @echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> EXT_WARNINGS @rm -f EXT_WARNINGS corona.o:corona.cpp corona32.o:corona32.cpp corona_palette.o:corona_palette.cpp scenar.l.c:scenar.l ${HFILES} @echo "[$@]" && flex -oscenar.l.c scenar.l scenar.y.c:scenar.y ${HFILES} @echo "[$@]" && bison -y -d -o scenar.y.c scenar.y clean: rm -f *~ scenar.y.c scenar.y.h scenar.l.c *.o flobopuyo* WARNINGS rm -rf .xvpics data/.xvpics data/*/.xvpics rm -rf $(bundle_name) rm -rf $(macimage_name) rm -f $(macimage_name).dmg rm -f .DS_Store */.DS_Store */*/.DS_Store .gdb_history install: flobopuyo strip flobopuyo mkdir -p ${INSTALL_BINDIR} mkdir -p ${INSTALL_DATADIR} cp -r data/* ${INSTALL_DATADIR} chmod a+rx ${INSTALL_DATADIR} chmod a+rx ${INSTALL_DATADIR}/sfx chmod a+rx ${INSTALL_DATADIR}/gfx chmod a+rx ${INSTALL_DATADIR}/story chmod -R a+r ${INSTALL_DATADIR} cp ./flobopuyo ${INSTALL_BINDIR}/flobopuyo chmod a+rx ${INSTALL_BINDIR}/flobopuyo flobopuyo-static: prelude ${OBJFILES} @echo "[flobopuyo-static]" && c++ $(CFLAGS) -o flobopuyo-static ${OBJFILES}\ /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` @echo "--------------------------------------" @echo " Compilation finished" bundle: flobopuyo-static mkdir -p $(bundle_name)/Contents/MacOS mkdir -p $(bundle_name)/Contents/Resources echo "APPL????" > $(bundle_name)/Contents/PkgInfo sed "s/@@VERSION@@/$(VERSION)/" mac/Info.plist > $(bundle_name)/Contents/Info.plist cp mac/icon.icns $(bundle_name)/Contents/Resources/ cp flobopuyo-static $(bundle_name)/Contents/MacOS/flobopuyo cp -r data $(bundle_name)/Contents/Resources rm -rf $(bundle_name)/Contents/Resources/data/CVS $(bundle_name)/Contents/Resources/data/*/CVS rm -rf $(bundle_name)/Contents/Resources/data/.xvpics $(bundle_name)/Contents/Resources/data/*/.xvpics rm -f $(bundle_name)/Contents/Resources/data/.DS_Store $(bundle_name)/Contents/Resources/data/*/.DS_Store strip $(bundle_name)/Contents/MacOS/flobopuyo mac-package: bundle mkdir -p $(macimage_name) cp -r $(bundle_name) $(macimage_name) cp COPYING $(macimage_name) hdiutil create -srcfolder $(macimage_name) $(macimage_name).dmg hdiutil internet-enable $(macimage_name).dmg win-package: flobopuyo mkdir -p $(WINZIP_NAME) cp -r data $(WINZIP_NAME) cp flobopuyo.exe $(WINZIP_NAME) cp COPYING $(WINZIP_NAME) cp $(WINSDLRUNTIME)/*.dll $(WINZIP_NAME) zip -r $(WINZIP_NAME) $(WINZIP_NAME)