rubidium@5643: # Auto-generated file -- DO NOT EDIT rubidium@5643: rubidium@5643: # Check if we want to show what we are doing rubidium@5643: ifdef VERBOSE rubidium@5643: Q = rubidium@5643: else rubidium@5643: Q = @ rubidium@5643: endif rubidium@5643: rubidium@5643: include Makefile.am rubidium@5643: rubidium@5643: SOURCE_LIST = !!SOURCE_LIST!! rubidium@5643: CONFIG_CACHE_SOURCE_LIST = !!CONFIG_CACHE_SOURCE_LIST!! rubidium@5643: CONFIGURE_FILES = !!CONFIGURE_FILES!! rubidium@5643: LIPO = !!LIPO!! rubidium@5643: BIN_DIR = !!BIN_DIR!! rubidium@5643: SRC_DIR = !!SRC_DIR!! rubidium@5643: ROOT_DIR = !!ROOT_DIR!! rubidium@5643: BUNDLE_DIR = "$(ROOT_DIR)/bundle" rubidium@5643: BUNDLES_DIR = "$(ROOT_DIR)/bundles" rubidium@5643: INSTALL_DIR = !!INSTALL_DIR!! rubidium@5643: INSTALL_BINARY_DIR = "$(INSTALL_DIR)/"!!BINARY_DIR!! rubidium@5643: INSTALL_ICON_DIR = "$(INSTALL_DIR)/"!!ICON_DIR!! rubidium@5643: INSTALL_DATA_DIR = "$(INSTALL_DIR)/"!!DATA_DIR!! rubidium@5643: INSTALL_PERSONAL_DIR = !!PERSONAL_DIR!! rubidium@5643: # TODO: ENABLE_INSTALL should be removed when the search path patch has been applied rubidium@5643: ENABLE_INSTALL = !!ENABLE_INSTALL!! rubidium@5643: TTD = !!TTD!! rubidium@5643: TTDS = $(SRC_DIRS:%=%/$(TTD)) rubidium@5643: OS = !!OS!! rubidium@5643: OSXAPP = !!OSXAPP!! celestar@5648: REVISION = !!REVISION!! rubidium@5643: rubidium@5643: RES := $(shell if ! [ -f $(CONFIG_CACHE_SOURCE_LIST) ] || [ -n "`cmp $(CONFIG_CACHE_SOURCE_LIST) $(SOURCE_LIST)`" ]; then cp $(SOURCE_LIST) $(CONFIG_CACHE_SOURCE_LIST); fi ) rubidium@5643: rubidium@5643: all: config.cache rubidium@5643: @for dir in $(DIRS); do \ rubidium@5643: $(MAKE) -C $$dir all; \ rubidium@5643: done rubidium@5643: ifdef LIPO rubidium@5643: # Lipo is an OSX thing. If it is defined, it means we are building for universal, rubidium@5643: # and so we have have to combine the binaries into one big binary rubidium@5643: rubidium@5643: # Remove the last binary made by the last compiled target rubidium@5645: $(Q)rm -f $(BIN_DIR)/$(TTD) rubidium@5643: # Make all the binaries into one rubidium@5645: $(Q)$(LIPO) -create -output $(BIN_DIR)/$(TTD) $(TTDS) rubidium@5643: endif rubidium@5643: rubidium@5643: config.cache: $(CONFIG_CACHE_SOURCE_LIST) $(CONFIGURE_FILES) rubidium@5643: ifeq ($(shell if test -f config.cache; then echo 1; fi), 1) rubidium@5643: @echo "----------------" rubidium@5643: @echo "The system detected that source.list or any configure file is altered." rubidium@5643: @echo " Going to reconfigure with last known settings..." rubidium@5643: @echo "----------------" rubidium@5643: # Make sure we don't lock config.cache rubidium@5643: @$(shell cat config.cache) || exit 1 rubidium@5643: @echo "----------------" rubidium@5643: @echo "Reconfig done. Now compiling..." rubidium@5643: @echo "----------------" rubidium@5643: else rubidium@5643: @echo "----------------" rubidium@5643: @echo "Have not found a configuration, please run configure first." rubidium@5643: @echo "----------------" rubidium@5643: @exit 1 rubidium@5643: endif rubidium@5643: rubidium@5643: clean: rubidium@5643: @for dir in $(DIRS); do \ rubidium@5643: $(MAKE) -C $$dir clean; \ rubidium@5643: done rubidium@5643: $(Q)rm -rf $(BUNDLE_TARGET) rubidium@5643: rubidium@5643: lang: rubidium@5643: @for dir in $(LANG_DIRS); do \ rubidium@5643: $(MAKE) -C $$dir all; \ rubidium@5643: done rubidium@5643: rubidium@5643: mrproper: rubidium@5643: @for dir in $(DIRS); do \ rubidium@5643: $(MAKE) -C $$dir mrproper; \ rubidium@5643: rm -f $$dir/Makefile; \ rubidium@5643: done rubidium@5643: $(Q)rm -rf objs rubidium@5643: $(Q)rm -f Makefile Makefile.am rubidium@5643: $(Q)rm -f $(CONFIG_CACHE_SOURCE_LIST) config.cache config.log rubidium@5643: $(Q)rm -rf $(BUNDLE_DIR) rubidium@5643: $(Q)rm -rf $(BUNDLES_DIR) rubidium@5643: rubidium@5643: depend: rubidium@5643: @for dir in $(SRC_DIRS); do \ rubidium@5643: $(MAKE) -C $$dir depend; \ rubidium@5643: done rubidium@5643: rubidium@5643: run: all rubidium@5643: $(Q)cd !!BIN_DIR!! && ./!!TTD!! rubidium@5643: rubidium@5643: %.o: rubidium@5643: @for dir in $(SRC_DIRS); do \ celestar@5648: $(MAKE) -C $$dir $(@:src/%=%); \ rubidium@5643: done rubidium@5643: rubidium@5643: %.lng: rubidium@5643: @for dir in $(LANG_DIRS); do \ rubidium@5643: $(MAKE) -C $$dir $@; \ rubidium@5643: done rubidium@5643: rubidium@5643: # rubidium@5643: # Creation of bundles rubidium@5643: # rubidium@5643: rubidium@5643: # The revision is needed for the bundle name and creating an OSX application bundle. rubidium@5643: ifdef REVISION rubidium@5643: REV := $(REVISION) rubidium@5643: else rubidium@5643: # Are we a SVN dir? rubidium@5643: ifeq ($(shell if test -d $(SRC_DIR)/.svn; then echo 1; fi), 1) rubidium@5643: # Find if the local source if modified rubidium@5643: REV_MODIFIED := $(shell svnversion $(SRC_DIR) | sed -n 's/.*\(M\).*/\1/p' ) rubidium@5643: # Find the revision like: rXXXX-branch rubidium@5643: REV := $(shell LC_ALL=C svn info $(SRC_DIR) | awk '/^URL:.*branches/ { split($$2, a, "/"); BRANCH="-"a[5] } /^Last Changed Rev:/ { REV="r"$$4"$(REV_MODIFIED)" } END { print REV BRANCH }') rubidium@5643: endif rubidium@5643: endif rubidium@5643: # Make sure we have something in REV rubidium@5643: ifeq ($(REV),) rubidium@5643: REV := norev000 rubidium@5643: endif rubidium@5643: rubidium@5643: ifndef BUNDLE_NAME rubidium@5643: BUNDLE_NAME = OTTD-$(OS)-custom-$(REV) rubidium@5643: endif rubidium@5643: rubidium@5643: # An OSX application bundle needs the data files, lang files and openttd executable in a different location. rubidium@5643: ifdef OSXAPP rubidium@5643: DATA_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Data rubidium@5643: LANG_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Lang rubidium@5643: TTD_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/MacOS rubidium@5643: else rubidium@5643: DATA_DIR = $(BUNDLE_DIR)/data rubidium@5643: LANG_DIR = $(BUNDLE_DIR)/lang rubidium@5643: TTD_DIR = $(BUNDLE_DIR) rubidium@5643: endif rubidium@5643: rubidium@5643: bundle: all rubidium@5643: @echo '[BUNDLE] Constructing bundle' rubidium@5643: $(Q)rm -rf "${BUNDLE_DIR}" rubidium@5643: $(Q)mkdir -p "${BUNDLE_DIR}" rubidium@5643: $(Q)mkdir -p "$(BUNDLE_DIR)/docs" rubidium@5643: $(Q)mkdir -p "$(BUNDLE_DIR)/scenario" rubidium@5643: $(Q)mkdir -p "$(BUNDLE_DIR)/scenario/heightmap" rubidium@5643: $(Q)mkdir -p "$(BUNDLE_DIR)/media" rubidium@5643: $(Q)mkdir -p "$(TTD_DIR)" rubidium@5643: $(Q)mkdir -p "$(DATA_DIR)" rubidium@5643: $(Q)mkdir -p "$(LANG_DIR)" rubidium@5643: ifdef OSXAPP rubidium@5643: $(Q)mkdir -p "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources" rubidium@5643: $(Q)echo "APPL????" > "$(BUNDLE_DIR)/$(OSXAPP)/Contents/PkgInfo" rubidium@5643: $(Q)cp "$(ROOT_DIR)/os/macosx/openttd.icns" "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/openttd.icns" rubidium@5643: $(Q)$(ROOT_DIR)/os/macosx/plistgen.sh "${BUNDLE_DIR}/$(OSXAPP)" "$(REV)" rubidium@5643: $(Q)cp "$(ROOT_DIR)/docs/OSX_install_instructions.txt" "$(BUNDLE_DIR)/docs/" rubidium@5643: $(Q)cp "$(ROOT_DIR)/os/macosx/splash.png" "$(DATA_DIR)" rubidium@5643: endif rubidium@5643: $(Q)cp "$(BIN_DIR)/$(TTD)" "$(TTD_DIR)/" rubidium@5643: $(Q)cp "$(BIN_DIR)/data/"*.grf "$(DATA_DIR)/" rubidium@5643: $(Q)cp "$(BIN_DIR)/data/opntitle.dat" "$(DATA_DIR)/" rubidium@5643: $(Q)cp "$(BIN_DIR)/lang/"*.lng "$(LANG_DIR)/" rubidium@5643: $(Q)cp "$(ROOT_DIR)/readme.txt" "$(BUNDLE_DIR)/" rubidium@5643: $(Q)cp "$(ROOT_DIR)/COPYING" "$(BUNDLE_DIR)/" rubidium@5643: $(Q)cp "$(ROOT_DIR)/known-bugs.txt" "$(BUNDLE_DIR)/docs/" rubidium@5643: $(Q)cp "$(ROOT_DIR)/docs/multiplayer.txt" "$(BUNDLE_DIR)/docs/" rubidium@5643: $(Q)cp "$(ROOT_DIR)/changelog.txt" "$(BUNDLE_DIR)/docs/" rubidium@5643: $(Q)cp "$(ROOT_DIR)/media/openttd.64.png" "$(BUNDLE_DIR)/media/" rubidium@5643: $(Q)cp "$(ROOT_DIR)/media/openttd.32.xpm" "$(BUNDLE_DIR)/media/" rubidium@5643: $(Q)cp "$(ROOT_DIR)/media/openttd.32.bmp" "$(BUNDLE_DIR)/media/" rubidium@5645: ifeq ($(shell if test -n "`ls -l \"$(BIN_DIR)/scenario/\"*.scn 2> /dev/null`"; then echo 1; fi), 1) rubidium@5643: $(Q)cp "$(BIN_DIR)/scenario/"*.scn "$(BUNDLE_DIR)/scenario/" rubidium@5643: endif rubidium@5645: ifeq ($(shell if test -n "`ls -l \"$(BIN_DIR)/scenario/heightmaps/\"* 2>/dev/null`"; then echo 1; fi), 1) rubidium@5643: $(Q)cp "$(BIN_DIR)/scenario/heightmaps/"* "$(BUNDLE_DIR)/scenario/heightmap/" rubidium@5643: endif rubidium@5643: rubidium@5643: ### Packing the current bundle into several compressed file formats ### rubidium@5643: # rubidium@5643: # Zips & dmgs do not contain a root folder, i.e. they have files in the root of the zip/dmg. rubidium@5643: # gzip, bzip2 and lha archives have a root folder, with the same name as the bundle. rubidium@5643: # rubidium@5643: # One can supply a custom name by adding BUNDLE_NAME:= to the make command. rubidium@5643: # rubidium@5643: bundle_zip: bundle rubidium@5643: @echo '[BUNDLE] Creating $(BUNDLE_NAME).zip' rubidium@5643: $(Q)mkdir -p "$(BUNDLES_DIR)" rubidium@5643: $(Q)cd "$(BUNDLE_DIR)" && zip -r $(shell if test -z "$(VERBOSE)"; then echo '-q'; fi) "$(BUNDLES_DIR)/$(BUNDLE_NAME).zip" . rubidium@5643: rubidium@5643: bundle_gzip: bundle rubidium@5643: @echo '[BUNDLE] Creating $(BUNDLE_NAME).tar.gz' rubidium@5643: $(Q)mkdir -p "$(BUNDLES_DIR)/.gzip/$(BUNDLE_NAME)" rubidium@5643: $(Q)cp -R "$(BUNDLE_DIR)/"* "$(BUNDLES_DIR)/.gzip/$(BUNDLE_NAME)/" rubidium@5643: $(Q)cd "$(BUNDLES_DIR)/.gzip" && tar -zc$(shell if test -n "$(VERBOSE)"; then echo 'v'; fi)f "$(BUNDLES_DIR)/$(BUNDLE_NAME).tar.gz" "$(BUNDLE_NAME)" rubidium@5643: $(Q)rm -rf "$(BUNDLES_DIR)/.gzip" rubidium@5643: rubidium@5643: bundle_bzip2: bundle rubidium@5643: @echo '[BUNDLE] Creating $(BUNDLE_NAME).tar.bz2' rubidium@5643: $(Q)mkdir -p "$(BUNDLES_DIR)/.bzip2/$(BUNDLE_NAME)" rubidium@5643: $(Q)cp -R "$(BUNDLE_DIR)/"* "$(BUNDLES_DIR)/.bzip2/$(BUNDLE_NAME)/" rubidium@5643: $(Q)cd "$(BUNDLES_DIR)/.bzip2" && tar -jc$(shell if test -n "$(VERBOSE)"; then echo 'v'; fi)f "$(BUNDLES_DIR)/$(BUNDLE_NAME).tar.bz2" "$(BUNDLE_NAME)" rubidium@5643: $(Q)rm -rf "$(BUNDLES_DIR)/.bzip2" rubidium@5643: rubidium@5643: bundle_lha: bundle rubidium@5643: @echo '[BUNDLE] Creating $(BUNDLE_NAME).lha' rubidium@5643: $(Q)mkdir -p "$(BUNDLES_DIR)/.lha/$(BUNDLE_NAME)" rubidium@5643: $(Q)cp -R "$(BUNDLE_DIR)/"* "$(BUNDLES_DIR)/.lha/$(BUNDLE_NAME)/" rubidium@5643: $(Q)cd "$(BUNDLES_DIR)/.lha" && lha ao6 "$(BUNDLES_DIR)/$(BUNDLE_NAME).lha" "$(BUNDLE_NAME)" rubidium@5643: $(Q)rm -rf "$(BUNDLES_DIR)/.lha" rubidium@5643: rubidium@5643: bundle_dmg: bundle rubidium@5643: @echo '[BUNDLE] Creating $(BUNDLE_NAME).dmg' rubidium@5643: $(Q)mkdir -p "$(BUNDLES_DIR)" rubidium@5643: $(Q)hdiutil create -ov -format UDZO -srcfolder "$(BUNDLE_DIR)" "$(BUNDLES_DIR)/$(BUNDLE_NAME).dmg" rubidium@5643: rubidium@5643: # TODO: ENABLE_INSTALL should be removed when the search path patch has been applied rubidium@5643: ifeq ($(ENABLE_INSTALL), 0) rubidium@5643: install: rubidium@5643: @echo '[INSTALL] Cannot install. Not compiled with installation paths' rubidium@5643: else rubidium@5643: ifdef OSXAPP rubidium@5643: install: rubidium@5643: @echo '[INSTALL] Cannot install the OSX Application Bundle' rubidium@5643: else rubidium@5643: install: bundle rubidium@5643: @echo '[INSTALL] Installing OpenTTD' rubidium@5643: $(Q)install -d "$(INSTALL_BINARY_DIR)" rubidium@5643: $(Q)install -d "$(INSTALL_ICON_DIR)" rubidium@5643: $(Q)install -d "$(INSTALL_DATA_DIR)/gm" rubidium@5643: $(Q)install -d "$(INSTALL_DATA_DIR)/data" rubidium@5643: $(Q)install -d "$(INSTALL_DATA_DIR)/lang" rubidium@5643: $(Q)install -d "$(INSTALL_DATA_DIR)/docs" rubidium@5643: $(Q)install -m 755 "$(BUNDLE_DIR)/$(TTD)" "$(INSTALL_BINARY_DIR)" rubidium@5643: $(Q)install -m 644 "$(BUNDLE_DIR)/lang/"* "$(INSTALL_DATA_DIR)/lang" rubidium@5643: $(Q)install -m 644 "$(BUNDLE_DIR)/data/"* "$(INSTALL_DATA_DIR)/data" rubidium@5643: $(Q)install -m 644 "$(BUNDLE_DIR)/docs/"* "$(INSTALL_DATA_DIR)/docs" rubidium@5643: $(Q)install -m 644 "$(BUNDLE_DIR)/media/"* "$(INSTALL_ICON_DIR)" rubidium@5643: ifdef INSTALL_PERSONAL_DIR rubidium@5643: $(Q)mkdir -p ~/"$(INSTALL_PERSONAL_DIR)" rubidium@5643: $(Q)cp -R "$(BUNDLE_DIR)/scenario" ~/"$(INSTALL_PERSONAL_DIR)" rubidium@5643: else rubidium@5643: $(Q)cp -R "$(BUNDLE_DIR)/scenario" "$(INSTALL_DATA_DIR)" rubidium@5643: endif # INSTALL_PERSONAL_DIR rubidium@5643: endif # OSXAPP rubidium@5643: endif # ENABLE_INSTALL