# # MacOS X make file # GAME_NAME?=Warp Rogue GAME_VERSION?=0.7.7b SRC_SDLMAIN?=./platform/mac/SDLMain.m APP_TEMPLATE?=./platform/mac/Template.app EXEC_NAME?=$(GAME_NAME) # 4 letter signature. Probably some OS9 legacy... GAME_SIG?=wrog # Java package-style identifier GAME_IDENT?=net.sourceforge.todoom.wrogue ICON_NAME?=icon.icns DATA_DIR?=../data # Path to the SDL frameworks SDL_FRAMEWORK_PATH?=/Library/Frameworks INFO_PLIST_PATTERN=s/$$(APP_NAME)/$(GAME_NAME)/;s/$$(EXEC_NAME)/$(EXEC_NAME)/;s/$$(VERSION)/$(GAME_VERSION)/;s/$$(ICON_NAME)/$(ICON_NAME)/;s/$$(SIGNATURE)/$(GAME_SIG)/;s/$$(IDENT)/$(GAME_IDENT)/ DMG=wrogue-$(GAME_VERSION).dmg DMG_TMP=$(DMG:.dmg=.tmp.dmg) SRC_LIB=\ lib/box.c \ lib/cellcave.c \ lib/cellpnt.c \ lib/llist.c \ lib/path.c \ lib/rdb.c \ lib/rng.c \ lib/shake.c \ lib/wicca.c SRC_PLATFORM=\ platform/sdl/pl_sdl.c \ platform/mac/pl_mac.c SRC_UI=\ ui/ui.c \ ui/ui_input.c \ ui/ui_cmd.c \ ui/ui_c_bar.c \ ui/ui_game.c \ ui/ui_g_adv.c \ ui/ui_info.c \ ui/ui_misc.c \ ui/ui_msg.c \ ui/ui_sym.c \ ui/ui_visio.c \ ui/ui_menu.c \ ui/ui_color.c \ ui/ui_keys.c SRC_GENERATE=\ generate/cave.c \ generate/dungeon.c \ generate/generate.c SRC_MAIN=\ actions.c \ ai.c \ area.c \ areatran.c \ career.c \ charact.c \ charadv.c \ chargen.c \ charstat.c \ cmd.c \ combat.c \ combat_c.c \ combat_r.c \ datafile.c \ death.c \ debug.c \ drugs.c \ dyn_msg.c \ economy.c \ effect.c \ equip.c \ event.c \ faction.c \ game.c \ grammar.c \ help.c \ honour.c \ inv.c \ log.c \ loadsave.c \ macro.c \ movement.c \ npc.c \ object.c \ options.c \ party.c \ pathfind.c \ percept.c \ perks.c \ prgman.c \ psychic.c \ psypower.c \ quest.c \ race.c \ round.c \ random.c \ scenario.c \ script.c \ sector.c \ talk.c \ target.c \ terrain.c \ util.c \ world.c SRC=\ $(SRC_LIB) \ $(SRC_PLATFORM) \ $(SRC_UI) \ $(SRC_GENERATE) \ $(SRC_MAIN) OBJ=$(SRC:.c=.o) $(SRC_SDLMAIN:.m=.o) EXE=./wrogue CC=gcc CFLAGS?=-std=c99 -Wall -Os -fomit-frame-pointer MFLAGS?=-Wall -Os -fomit-frame-pointer CFLAGS+=-std=c99 -F"$(SDL_FRAMEWORK_PATH)" -I"$(SDL_FRAMEWORK_PATH)/SDL.framework/Headers" -I. -I./lib -I./ui -I./generate -isysroot/Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc -Os MFLAGS+=-I"$(SDL_FRAMEWORK_PATH)/SDL.framework/Headers" -isysroot/Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc -Os LDFLAGS+=-F"$(SDL_FRAMEWORK_PATH)" -framework SDL -framework Cocoa -lm -arch i386 -arch ppc -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk RM=rm -rf %.o: %.c $(CC) $(CFLAGS) -o $@ -c $< %.o: %.m $(CC) $(MFLAGS) -o $@ -c $< $(EXE): $(OBJ) $(RES) $(CC) $(OBJ) $(RES) $(LDFLAGS) -o $@ .PHONY : all all: $(EXE) strip $(EXE) .PHONY : dist dist: $(DMG) $(DMG): app -$(RM) "$(DMG)" hdiutil create -srcfolder "app" -fs HFS+ -volname "$(GAME_NAME)" $(DMG_TMP) hdiutil convert -format UDZO -imagekey zlib-level=9 $(DMG_TMP) -o $(DMG) hdiutil internet-enable -yes $(DMG) -$(RM) $(DMG_TMP) .PHONY : app app: $(EXE) -$(RM) "app" mkdir app cp -R "$(APP_TEMPLATE)" "app/$(GAME_NAME).app" sed '$(INFO_PLIST_PATTERN)' "$(APP_TEMPLATE)/Contents/Info.plist" > "app/$(GAME_NAME).app/Contents/Info.plist" cp $(EXE) "app/$(GAME_NAME).app/Contents/MacOS/$(EXEC_NAME)" ln -s "Contents/MacOS/$(EXEC_NAME)" "app/$(GAME_NAME).app/$(EXEC_NAME)" cp -R "$(SDL_FRAMEWORK_PATH)/SDL.framework" "app/$(GAME_NAME).app/Contents/Frameworks" rm -r "app/$(GAME_NAME).app/Contents/Frameworks/SDL.framework/Versions/A/Headers" rm "app/$(GAME_NAME).app/Contents/Frameworks/SDL.framework/Headers" cp -R "$(DATA_DIR)/"* "app/$(GAME_NAME).app/Contents/Resources" cp "./platform/mac/$(ICON_NAME)" "app/$(GAME_NAME).app/Contents/Resources/" .PHONY : release release: app rm -rf "../$(GAME_NAME).app" mv -f "./app/$(GAME_NAME).app" .. .PHONY : clean clean: -$(RM) $(OBJ) -$(RM) $(EXE) $(DMG) "$(GAME_NAME).app"