bjarni@2688: # $Id: Makefile 3214 2005-11-17 19:43:37Z bjarni $ bjarni@2688: # This makefile is not a standalone makefile, but is called from the general one bjarni@2688: # it contains targets specific to MacOS X bjarni@2688: truelight@3901: ifdef MACOSX_BUILD bjarni@3211: bjarni@3354: DEPS_MAGIC := $(shell mkdir -p $(sort $(dir $(OBJS:%.o=.OSX/%)))) bjarni@3211: bjarni@3354: ifdef OTTD_PPC bjarni@3354: OTTD_PPC :=.OSX/openttd.ppc bjarni@3354: OBJS_ppc := $(OBJS:%.o=.OSX/%.o.ppc) truelight@3901: ifndef CC_PPC truelight@3901: CC_PPC := $(CC) -arch ppc truelight@3901: endif truelight@3901: ifndef CXX_PPC truelight@3901: CXX_PPC := $(CXX) -arch ppc truelight@3901: endif bjarni@3354: endif bjarni@3354: bjarni@3354: ifdef OTTD_i386 bjarni@3354: OTTD_i386 :=.OSX/openttd.i386 bjarni@3354: OBJS_i386 := $(OBJS:%.o=.OSX/%.o.i386) truelight@3901: ifndef CC_I386 truelight@3901: CC_I386 := $(CC) -arch i386 truelight@3901: endif truelight@3901: ifndef CXX_I386 truelight@3901: CXX_I386 := $(CXX) -arch i386 truelight@3901: endif bjarni@3354: endif bjarni@3354: bjarni@3354: ifdef OTTD_PPC970 bjarni@3354: OTTD_PPC970 :=.OSX/openttd.ppc970 bjarni@3354: OBJS_ppc970 := $(OBJS:%.o=.OSX/%.o.ppc970) truelight@3901: ifndef CC_PPC970 truelight@3901: CC_PPC970 := $(CC) -arch ppc970 truelight@3901: endif truelight@3901: ifndef CXX_PPC970 truelight@3901: CXX_PPC970 := $(CXX) -arch ppc970 truelight@3901: endif truelight@3901: endif truelight@3901: truelight@3901: ifndef LIPO truelight@3901: LIPO := lipo bjarni@3354: endif bjarni@3907: ifndef STRIP bjarni@3907: STRIP := strip bjarni@3907: endif bjarni@3354: bjarni@3354: # targets to link OpenTTD bjarni@3354: $(TTD): $(OTTD_PPC) $(OTTD_i386) $(OTTD_PPC970) bjarni@3354: @echo '===> Linking $@ into a single file' truelight@3901: $(Q)$(LIPO) -create -output $@ $(OTTD_PPC) $(OTTD_i386) $(OTTD_PPC970) bjarni@3354: bjarni@3354: $(OTTD_PPC): $(MAKE_CONFIG) $(OBJS_ppc) bjarni@3354: @echo '[PowerPC] Linking $(TTD)' truelight@3902: $(Q)$(CXX_PPC) $(LDFLAGS) $(TTDLDFLAGS) $(OBJS_ppc) $(LIBS) $(LDFLAGS_PPC) -o $@ bjarni@3354: bjarni@3354: $(OTTD_i386): $(MAKE_CONFIG) $(OBJS_i386) bjarni@3354: @echo '[i386] Linking $(TTD)' truelight@3902: $(Q)$(CXX_I386) $(LDFLAGS) $(TTDLDFLAGS) $(OBJS_i386) $(LIBS) $(LDFLAGS_i386) -o $@ bjarni@3354: bjarni@3354: $(OTTD_PPC970): $(MAKE_CONFIG) $(OBJS_ppc970) bjarni@3354: @echo '[PowerPC G5] Linking $(TTD)' truelight@3902: $(Q)$(CXX_PPC970) $(LDFLAGS) $(TTDLDFLAGS) $(OBJS_ppc970) $(LIBS) $(LDFLAGS_PPC) $(G5_FLAGS) -o $@ bjarni@3354: bjarni@3354: # targets to compile each c, m and cpp file bjarni@3354: .OSX/%.o.ppc: %.c .deps/%.d bjarni@3354: @echo '[PowerPC] Compiling $<' bjarni@4582: $(Q)$(CC_PPC) $(CC_CFLAGS) $(CFLAGS) $(CFLAGS_PPC) $(CDEFS) -c -o $@ $< bjarni@3354: bjarni@3354: .OSX/%.o.ppc: %.cpp .deps/%.d bjarni@3354: @echo '[PowerPC] Compiling $<' truelight@3901: $(Q)$(CXX_PPC) $(CFLAGS) $(CFLAGS_PPC) $(CDEFS) -c -o $@ $< bjarni@3354: bjarni@3354: .OSX/%.o.ppc: %.m .deps/%.d bjarni@3354: @echo '[PowerPC] Compiling $<' bjarni@4582: $(Q)$(CC_PPC) $(CC_CFLAGS) $(CFLAGS) $(CFLAGS_PPC) $(CDEFS) -c -o $@ $< bjarni@3354: bjarni@3354: .OSX/%.o.i386: %.c .deps/%.d bjarni@3354: @echo '[i386] Compiling $<' bjarni@4582: $(Q)$(CC_I386) $(CC_CFLAGS) $(CFLAGS) $(CFLAGS_i386) $(CDEFS) -c -o $@ $< bjarni@3354: bjarni@3354: .OSX/%.o.i386: %.cpp .deps/%.d bjarni@3354: @echo '[i386] Compiling $<' truelight@3901: $(Q)$(CXX_I386) $(CFLAGS) $(CFLAGS_i386) $(CDEFS) -c -o $@ $< bjarni@3354: bjarni@3354: .OSX/%.o.i386: %.m .deps/%.d bjarni@3354: @echo '[i386] Compiling $<' bjarni@4582: $(Q)$(CC_I386) $(CC_CFLAGS) $(CFLAGS) $(CFLAGS_i386) $(CDEFS) -c -o $@ $< bjarni@3354: bjarni@3354: .OSX/%.o.ppc970: %.c .deps/%.d bjarni@3354: @echo '[PowerPC G5] Compiling $<' bjarni@4582: $(Q)$(CC_PPC970) $(CC_CFLAGS) $(CFLAGS) $(CFLAGS_PPC) $(G5_FLAGS) $(CDEFS) -c -o $@ $< bjarni@3354: bjarni@3354: .OSX/%.o.ppc970: %.cpp .deps/%.d bjarni@3354: @echo '[PowerPC G5] Compiling $<' truelight@3901: $(Q)$(CXX_PPC970) $(CFLAGS) $(CFLAGS_PPC) $(G5_FLAGS) $(CDEFS) -c -o $@ $< bjarni@3354: bjarni@3354: .OSX/%.o.ppc970: %.m .deps/%.d bjarni@3354: @echo '[PowerPC G5] Compiling $<' bjarni@4582: $(Q)$(CC_PPC970) $(CC_CFLAGS) $(CFLAGS) $(CFLAGS_PPC) $(G5_FLAGS) $(CDEFS) -c -o $@ $< bjarni@3354: bjarni@2713: endif bjarni@2713: bjarni@3907: # manual strip, as the -s option fails bjarni@3907: $(OSX_STRIP): $(TTD) bjarni@3907: $(Q)$(STRIP) openttd bjarni@3907: bjarni@3303: ifdef JAGUAR bjarni@3303: JAGUAR_POSTFIX := -jaguar bjarni@3303: endif bjarni@3303: bjarni@2688: # build the bundle. OSX wants to keep apps in bundles, so we will give it one bjarni@2688: # the good thing about bundles is that you can keep extra files in them, so we keep lng files and a data dir in it bjarni@2713: bjarni@3907: BUILD_OSX_BUNDLE: $(TTD) $(OSX_STRIP) bjarni@2722: @echo '===> Building application bundle' bjarni@2688: $(Q)rm -fr "$(OSXAPP)" bjarni@2688: $(Q)mkdir -p "$(OSXAPP)"/Contents/MacOS bjarni@2688: $(Q)mkdir -p "$(OSXAPP)"/Contents/Resources bjarni@2688: $(Q)mkdir -p "$(OSXAPP)"/Contents/Data bjarni@2688: $(Q)mkdir -p "$(OSXAPP)"/Contents/Lang bjarni@2688: $(Q)echo "APPL????" > "$(OSXAPP)"/Contents/PkgInfo bjarni@2688: $(Q)cp os/macosx/openttd.icns "$(OSXAPP)"/Contents/Resources/openttd.icns bjarni@2688: $(Q)os/macosx/plistgen.sh "$(OSXAPP)" "$(REV)" bjarni@4215: $(Q)cp -R data/* "$(OSXAPP)"/Contents/Data/ bjarni@2736: $(Q)cp os/macosx/splash.png "$(OSXAPP)"/Contents/Data/ bjarni@2688: $(Q)cp lang/*.lng "$(OSXAPP)"/Contents/Lang/ bjarni@2688: $(Q)cp $(TTD) "$(OSXAPP)"/Contents/MacOS/$(TTD) bjarni@2688: bjarni@2688: # make the release disk image. Should only be used with releases and is a good and fast way to make sure to remember all the needed files bjarni@2688: release: all bjarni@3303: @echo '===> Building release disk image' bjarni@3303: $(Q)mkdir -p "OpenTTD $(REV)" bjarni@3303: $(Q)mkdir -p "OpenTTD $(REV)/docs" bjarni@3303: $(Q)mkdir -p "OpenTTD $(REV)/scenario" bjarni@3303: $(Q)cp -R $(OSXAPP) "OpenTTD $(REV)/" bjarni@3303: $(Q)cp docs/OSX_install_instructions.txt "OpenTTD $(REV)/How to install (please read).txt" bjarni@3318: $(Q)cp docs/OSX_why_multiple_applications.txt "OpenTTD $(REV)/why a special Jaguar download.txt" bjarni@3303: $(Q)cp readme.txt "OpenTTD $(REV)/docs/" bjarni@3303: $(Q)cp docs/console.txt "OpenTTD $(REV)/docs/" bjarni@3303: $(Q)cp COPYING "OpenTTD $(REV)/docs/" bjarni@3303: $(Q)cp changelog.txt "OpenTTD $(REV)/docs/" bjarni@3303: $(Q)cp os/macosx/*.webloc "OpenTTD $(REV)" bjarni@3303: $(Q)cp known-bugs.txt "OpenTTD $(REV)/known-bugs.txt" bjarni@4215: $(Q)cp -R scenario/* "OpenTTD $(REV)/scenario/" bjarni@3304: $(Q)hdiutil create -ov -format UDZO -srcfolder "OpenTTD $(REV)" openttd-"$(REV)"-osx"$(JAGUAR_POSTFIX)".dmg bjarni@3303: $(Q)rm -fr "OpenTTD $(REV)" bjarni@2688: bjarni@3907: $(OSX): $(TTD) $(OSX_STRIP) BUILD_OSX_BUNDLE bjarni@2688: bjarni@4104: .PHONY: release BUILD_OSX_BUNDLE