aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile.in
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-09-01 17:01:58 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-09-01 17:01:58 +0000
commit2ab22bdad1415813a3e1df329640332702272fc0 (patch)
tree380c56fb3840936848b1c2a44ef8509b1f23b33c /Makefile.in
parent2cfc26881d21532cb9cb456800d0b1738e183fe0 (diff)
downloadusdx-2ab22bdad1415813a3e1df329640332702272fc0.tar.gz
usdx-2ab22bdad1415813a3e1df329640332702272fc0.tar.xz
usdx-2ab22bdad1415813a3e1df329640332702272fc0.zip
- new configure/make layout:
- configure/main-makefile moved to root-dir - configure-script checked in (no need to call autogen.sh on first run) - autogen.sh, m4, install.sh etc. moved to dists/autogen/ - config.guess/sub for canonical builds - unit-tests moved to test - removed delphi subdir in portaudio/-mixer - COPYING.txt/AUTHORS.txt/... added - dists/delphi7/2005 added git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1334 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r--Makefile.in (renamed from src/Makefile.in)399
1 files changed, 188 insertions, 211 deletions
diff --git a/src/Makefile.in b/Makefile.in
index 2aea0943..487f01a5 100644
--- a/src/Makefile.in
+++ b/Makefile.in
@@ -1,184 +1,196 @@
#################################################
-# Makefile for @PACKAGE_STRING@
+# @PACKAGE_STRING@
# @configure_input@
#################################################
-# general definitions
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-infodir = @infodir@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-datarootdir = @datarootdir@
-VPATH = @srcdir@
-usdxrootdir = @usdxrootdir@
+@SET_MAKE@
-INSTALL_PATH_SUFFIX = @suffix@
-INSTALL_datadir = $(datarootdir)/$(INSTALL_PATH_SUFFIX)
+#################################################
+# Standard definitions
+#################################################
-@SET_MAKE@
+prefix ?= @prefix@
+exec_prefix ?= @exec_prefix@
+bindir ?= @bindir@
+datarootdir ?= @datarootdir@
+# project root-dir (directory of configure script)
+top_srcdir ?= @top_srcdir@
+# project src-dir (directory of the current Makefile)
+srcdir ?= @srcdir@
+
+# file-type suffix of executables (e.g. ".exe" in windows)
+EXEEXT ?= @EXEEXT@
+
+#################################################
+# Tools
+#################################################
+
+# recursive dir creation tool (mkdir -p)
+MKDIR ?= @MKDIR_P@
+RM ?= rm -f
+RM_REC ?= $(RM) -r
-# recursive dir creation tool
-MKDIR_P = @MKDIR_P@
# install tool
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-# calls "ln -s"
-LN_S = @LN_S@
-
-# Package configuration
-USDX_PACKAGE_NAME = @PACKAGE_NAME@
-# should be $(USDX_PACKAGE_NAME) instead
-USDX_PREFIX = ultrastardx
-USDX_VERSION = @PACKAGE_VERSION@
-USDX_TARNAME = @PACKAGE_TARNAME@
-
-USDX_GAME_DIR = $(usdxrootdir)/game
-USDX_TOOLS_DIR = $(usdxrootdir)/tools
-USDX_LIB_DIR = ./lib
-USDX_BUILD_DIR = ./build
+INSTALL ?= @INSTALL@
+INSTALL_DATA ?= @INSTALL_DATA@
-# file-type suffix of executables (e.g. ".exe" in windows)
-EXE_SUFFIX = @EXEEXT@
-
-# Free Pascal compiler
-PPC = @PPC@
-# FPC target platform and processor
-PPLATFORM = @FPC_PLATFORM@
-PPROCESSOR = @FPC_PROCESSOR@
-
-EXTRA_SRCDIRS =
-
-# RC resource extraction config
-RESEXTRACTOR_NAME = ResourceExtractor
-RESEXTRACTOR_DIR = $(USDX_TOOLS_DIR)/$(RESEXTRACTOR_NAME)
-RESEXTRACTOR_BIN = $(RESEXTRACTOR_DIR)/$(RESEXTRACTOR_NAME)$(EXE_SUFFIX)
-RESOURCE_DIR = $(USDX_GAME_DIR)/resources
-RESOURCE_FILE = resource.inc
-RC_FILE = ultrastardx.rc
-EXTRA_SRCDIRS += $(RESEXTRACTOR_DIR)
-
-# cwrapper settings
-PROJECTM_CWRAPPER_DIR = $(USDX_LIB_DIR)/projectM/cwrapper
-@COMMENT_PROJECTM_CWRAPPER@EXTRA_SRCDIRS += $(PROJECTM_CWRAPPER_DIR)
-
-# Directories added to the unit path
-PUNIT_TOKEN = -Fu
-PUNIT_FLAGS = $(PUNIT_TOKEN).
-
-# Directory where compiled units (.ppu and .o files) are stored
-PCUNIT_TOKEN = -FU
-PCUNIT_DIR = $(USDX_BUILD_DIR)/$(PPLATFORM)/fpc
-PCUNIT_FLAGS = $(PCUNIT_TOKEN)$(PCUNIT_DIR)
-
-# Directories added to the includes path
-PINC_TOKEN = -Fi
-PINC_FLAGS = $(PINC_TOKEN)$(USDX_LIB_DIR)/JEDI-SDL/SDL/Pas
-
-# FPC flags
-
-# The user can overwrite the default flags with
-# make PFLAGS_BASE="myflags"
-PFLAGS_BASE = -S2gi -vB
-# The user can specify additional flags with
-# make PFLAGS_EXTRA="myflags"
-PFLAGS_EXTRA = @PFLAGS_EXTRA@
-PFLAGS_DEBUG = @PFLAGS_DEBUG@
-PFLAGS_RELEASE = @PFLAGS_RELEASE@
-# the user's flags (specified with configure) must be the last in
-# the list to overwrite the defaults (e.g.with the - option: -Xs-).
-PFLAGS = $(PFLAGS_BASE) @PFLAGS_MAKE@ $(PFLAGS_EXTRA)
-
-LIBS = @LIBS@
-LDFLAGS = @LDFLAGS@
-linkflags = $(strip $(LDFLAGS) $(LIBS))
-ifneq ($(linkflags),)
-PLINKFLAGS = -k"$(linkflags)"
-endif
+#################################################
+# General package configuration
+#################################################
+
+USDX_PACKAGE_NAME := @PACKAGE_NAME@
+USDX_VERSION := @PACKAGE_VERSION@
+USDX_TARNAME := @PACKAGE_TARNAME@
+
+#################################################
+# USDX Paths
+#################################################
+
+USDX_SRC_DIR := $(top_srcdir)/src
+USDX_GAME_DIR := $(top_srcdir)/game
+USDX_TOOLS_DIR := $(top_srcdir)/tools
+USDX_LIB_DIR := $(USDX_SRC_DIR)/lib
+USDX_BUILD_DIR := $(USDX_SRC_DIR)/build
+
+AUTOGEN_DIR := $(top_srcdir)/dists/autogen
+
+# installation path
+INSTALL_datadir ?= $(datarootdir)/$(USDX_PACKAGE_NAME)
+
+#################################################
+# Binary name
+#################################################
-# dpr project file used as input
-USDX_SRC = ultrastardx.dpr
# name of executable
-USDX_BIN_NAME = $(USDX_PREFIX)$(EXE_SUFFIX)
-USDX_BIN = $(USDX_GAME_DIR)/$(USDX_BIN_NAME)
+USDX_BIN_NAME ?= ultrastardx$(EXEEXT)
+USDX_BIN := $(USDX_GAME_DIR)/$(USDX_BIN_NAME)
-# name of the modification timestamp filename
-modfile = lastmod
+#################################################
+# ProjectM
+#################################################
-# otool: Mac OS X object file displaying tool
-OTOOL = /usr/bin/otool
-# install_name_tool: Mac OS X tool to change dynamic shared library install names
-INSTALL_NAME_TOOL = /usr/bin/install_name_tool
-# hdiutil: Mac OS X disk image tool
-HDIUTIL = /usr/bin/hdiutil
+PROJECTM_CWRAPPER_DIR := $(USDX_LIB_DIR)/projectM/cwrapper
+USE_PROJECTM_CWRAPPER = @USE_PROJECTM_CWRAPPER@
#################################################
-# general targets
+# Dependencies
#################################################
-.PHONY: debug release recursive all recursive-all dependencies install install-local install-global install-data install-data-recursive install-exec uninstall uninstall-local uninstall-global uninstall-data uninstall-exec clean recursive-clean distclean recursive-distclean clean_obj clean_res dist debian-package update-modfile $(EXTRA_SRCDIRS)
+DEPS := $(USDX_TOOLS_DIR)/ResourceExtractor
+ifeq ($(USE_PROJECTM_CWRAPPER), yes)
+DEPS += $(PROJECTM_CWRAPPER_DIR)
+endif
-debug: PFLAGS = $(PFLAGS_BASE) $(PFLAGS_DEBUG) $(PFLAGS_EXTRA)
-debug: all
+#################################################
+# general targets
+#################################################
-release: PFLAGS = $(PFLAGS_BASE) $(PFLAGS_RELEASE) $(PFLAGS_EXTRA)
-release: all
+BUILD_TARGETS = all debug release rebuild build
+.PHONY: $(BUILD_TARGETS)
+$(BUILD_TARGETS): all-deps
+ $(MAKE) -C src $@
-all: recursive-all update-modfile dependencies $(USDX_BIN)
+.PHONY: all-deps
+all-deps:
+ @for dir in $(DEPS); do \
+ $(MAKE) -C "$$dir" all; \
+ done
+
+.PHONY: clean
+clean: clean-src clean-deps
-recursive-all: recursive-target = all
-recursive-all: recursive
+.PHONY: clean-src
+clean-src:
+ $(MAKE) -C src clean
-dependencies: $(RESOURCE_FILE)
+.PHONY: clean-deps
+clean-deps:
+ @for dir in $(DEPS); do \
+ $(MAKE) -C "$$dir" clean; \
+ done
-# call Makefiles in other source-dirs
-recursive: $(EXTRA_SRCDIRS)
-$(EXTRA_SRCDIRS):
- $(MAKE) -C $@ $(recursive-target)
+.PHONY: mostlyclean
+mostlyclean: clean-src
+
+.PHONY: distclean
+distclean: clean
+ $(RM_REC) config.log config.status aclocal.m4 autom4te.cache
+ $(RM) Makefile $(USDX_SRC_DIR)/Makefile $(PROJECTM_CWRAPPER_DIR)/Makefile
+ $(RM) $(USDX_SRC_DIR)/config.inc
+
+# remove temporary and backup files
+.PHONY: tidy
+tidy:
+# FPC stuff
+ find . -name "*.compiled" | xargs $(RM)
+# Delphi stuff
+ find . -name "__history" | xargs $(RM_REC)
+ find . -name "*.identcache" -o -name "*.dcu" | xargs $(RM)
+# Backup files
+ find . -name "*~" -o -name "*.bak" -o -name "*.orig" | xargs $(RM)
#################################################
-# build
+# auto-update
#################################################
-# clean old data before compiling, otherwise FPC might miss some changes.
-$(USDX_BIN): lastmod
- $(MAKE) clean_obj
- mkdir -p "$(PCUNIT_DIR)"
- $(PPC) $(strip $(PFLAGS) $(PDEFINES) $(PLINKFLAGS) $(PINC_FLAGS) $(PUNIT_FLAGS) $(PCUNIT_FLAGS)) -o$@ $(USDX_SRC)
+Makefile: Makefile.in $(USDX_SRC_DIR)/Makefile.in $(USDX_SRC_DIR)/config.inc.in $(PROJECTM_CWRAPPER_DIR)/Makefile.in config.status
+ @echo "-----------------------------------"
+ @echo "Performing reconfiguration..."
+ ./config.status
+ @echo "-----------------------------------"
+
+config.status: configure
+ ./config.status --recheck
+
+.PHONE: reconf
+reconf:
+ $(AUTOGEN_DIR)/autogen.sh
#################################################
# install/uninstall
#################################################
-install: all install-@install_type@
+.PHONY: install
+install: all
+ $(MAKE) install-@install_type@
+.PHONY: uninstall
uninstall: uninstall-@install_type@
# local build
+.PHONY: install-local
install-local:
+ @echo "Local build does not need to be installed."
+ @echo "Start with: $(USDX_BIN)"
+.PHONY: uninstall-local
uninstall-local:
- rm -f "$(USDX_BIN)"
+ $(RM) "$(USDX_BIN)"
# global build
+.PHONY: install-global
install-global: install-data install-exec
+ @echo "--------------------------------"
+ @echo "$(USDX_PACKAGE_NAME) installed."
+ @echo "Start with: $(bindir)/$(USDX_BIN_NAME)"
+ @echo "--------------------------------"
+.PHONY: install-data
install-data:
- $(MAKE) RECURSIVE_SRC_DIR="$(usdxrootdir)/artwork" RECURSIVE_DST_DIR="$(INSTALL_datadir)/artwork" install-data-recursive
+ $(MAKE) RECURSIVE_SRC_DIR="artwork" RECURSIVE_DST_DIR="$(INSTALL_datadir)/artwork" install-data-recursive
$(MAKE) RECURSIVE_SRC_DIR="$(USDX_GAME_DIR)/languages" RECURSIVE_DST_DIR="$(INSTALL_datadir)/languages" install-data-recursive
$(MAKE) RECURSIVE_SRC_DIR="$(USDX_GAME_DIR)/sounds" RECURSIVE_DST_DIR="$(INSTALL_datadir)/sounds" install-data-recursive
$(MAKE) RECURSIVE_SRC_DIR="$(USDX_GAME_DIR)/themes" RECURSIVE_DST_DIR="$(INSTALL_datadir)/themes" install-data-recursive
$(MAKE) RECURSIVE_SRC_DIR="$(USDX_GAME_DIR)/resources" RECURSIVE_DST_DIR="$(INSTALL_datadir)/resources" install-data-recursive
- $(INSTALL_DATA) "$(usdxrootdir)/License.txt" "$(INSTALL_datadir)"
+ $(INSTALL_DATA) "COPYING.txt" "$(INSTALL_datadir)"
+.PHONY: install-data-recursive
install-data-recursive:
- $(MKDIR_P) "$(RECURSIVE_DST_DIR)"
+ $(MKDIR) "$(RECURSIVE_DST_DIR)"
@for file in "$(RECURSIVE_SRC_DIR)"/*; do \
if test -f "$$file"; then \
echo $(INSTALL_DATA) "$$file" "$(RECURSIVE_DST_DIR)"; \
@@ -191,51 +203,57 @@ install-data-recursive:
fi; \
done
+.PHONY: install-exec
install-exec:
- $(MKDIR_P) "$(bindir)"
+ $(MKDIR) "$(bindir)"
$(INSTALL) "$(USDX_BIN)" "$(bindir)"
+.PHONY: uninstall-global
uninstall-global: uninstall-data uninstall-exec
+.PHONY: uninstall-data
uninstall-data:
- rm -rf "$(INSTALL_datadir)/artwork"
- rm -rf "$(INSTALL_datadir)/languages"
- rm -rf "$(INSTALL_datadir)/sounds"
- rm -rf "$(INSTALL_datadir)/themes"
- rm -rf "$(INSTALL_datadir)/resources"
- rm -f "$(INSTALL_datadir)/License.txt"
+ $(RM_REC) "$(INSTALL_datadir)/artwork"
+ $(RM_REC) "$(INSTALL_datadir)/languages"
+ $(RM_REC) "$(INSTALL_datadir)/sounds"
+ $(RM_REC) "$(INSTALL_datadir)/themes"
+ $(RM_REC) "$(INSTALL_datadir)/resources"
+ $(RM) "$(INSTALL_datadir)/COPYING.txt"
-rmdir "$(INSTALL_datadir)"
+.PHONY: uninstall-exec
uninstall-exec:
- rm -f "$(bindir)/$(USDX_BIN_NAME)"
+ $(RM) "$(bindir)/$(USDX_BIN_NAME)"
#################################################
# Distributable source-package (TODO)
#################################################
-disttmpdir = ./distdir
+disttmpdir ?= disttmp
+.PHONY: dist
dist:
-# $(MKDIR_P) $(disttmpdir)
-# acm $(usdxrootdir) $(disttmpdir)
+# $(MKDIR) $(disttmpdir)
+# cp -R . $(disttmpdir)
# $(MAKE) -C $(disttmpdir)/src distclean
-# tar cvzf $(USDX_TARNAME)-$(USDX_VERSION).tar.gz $(usdxrootdir)
- @echo "Comming soon"
+# tar cvzf $(USDX_TARNAME)-$(USDX_VERSION).tar.gz $(disttmpdir)
+# $(RM_REC) $(disttmpdir)
#################################################
# Debian package
#################################################
-debpkgdir = $(usdxrootdir)/dists/debian
-debpkgtmpdir = $(debpkgdir)/deb-package
-debpkgprefix = $(USDX_PACKAGE_NAME)
-debpkgname = $(debpkgprefix)_$(USDX_VERSION)_$(PPROCESSOR).deb
+debpkgdir ?= dists/debian
+debpkgtmpdir := $(debpkgdir)/deb-package
+debpkgprefix := $(USDX_PACKAGE_NAME)
+debpkgname := $(debpkgprefix)_$(USDX_VERSION)_$(PPROCESSOR).deb
+.PHONY: debian-pkg
debian-pkg: all
- rm -rf $(debpkgtmpdir)
+ $(RM_REC) $(debpkgtmpdir)
- $(MKDIR_P) $(debpkgdir)
- $(MKDIR_P) $(debpkgtmpdir)/DEBIAN
+ $(MKDIR) $(debpkgdir)
+ $(MKDIR) $(debpkgtmpdir)/DEBIAN
$(MAKE) prefix=$(debpkgtmpdir)/$(prefix) install
@@ -244,20 +262,34 @@ debian-pkg: all
dpkg-deb --build $(debpkgtmpdir)
mv $(debpkgtmpdir)/../deb-package.deb $(debpkgdir)/$(debpkgname)
- rm -rf $(debpkgtmpdir)
+ $(RM_REC) $(debpkgtmpdir)
#################################################
# RPM (TODO)
#################################################
+.PHONY: rpm
rpm: all
@echo "Coming soon"
+
+#################################################
+# Mac OS X defines
+#################################################
+
+# otool: Mac OS X object file displaying tool
+OTOOL := /usr/bin/otool
+# install_name_tool: Mac OS X tool to change dynamic shared library install names
+INSTALL_NAME_TOOL := /usr/bin/install_name_tool
+# hdiutil: Mac OS X disk image tool
+HDIUTIL := /usr/bin/hdiutil
+
#################################################
# Mac OS X app-bundle
#################################################
-macosx_bundle_path = $(usdxrootdir)/UltraStarDeluxe.app/Contents
+macosx_bundle_path := UltraStarDeluxe.app/Contents
+.PHONY: macosx-app
macosx-app: all
# Create double clickable Mac OS X application.
@@ -265,14 +297,14 @@ macosx-app: all
@echo "Creating the Mac OS X application"
@echo ""
- $(MKDIR_P) $(macosx_bundle_path)/Resources
+ $(MKDIR) $(macosx_bundle_path)/Resources
# Put the icon file into its particular place.
# Must be done BEFORE info.plist is created.
- $(INSTALL_DATA) $(usdxrootdir)/icons/ultrastardx.icns $(macosx_bundle_path)/Resources/
+ $(INSTALL_DATA) icons/ultrastardx.icns $(macosx_bundle_path)/Resources/
# the info.plist file
- $(INSTALL_DATA) macosx/Info.plist $(macosx_bundle_path)/
+ $(INSTALL_DATA) $(USDX_SRC_DIR)/macosx/Info.plist $(macosx_bundle_path)/
# Copy the resources.
$(MAKE) install-global INSTALL_datadir=$(macosx_bundle_path)/Resources bindir=$(macosx_bundle_path)/MacOS
@@ -284,6 +316,7 @@ macosx-app: all
@echo "Have fun."
@echo ""
+.PHONY: macosx-standalone-app
macosx-standalone-app: macosx-app
# Create double clickable standalone (does not need fink) Mac OS X
# application. Not fully test, but should work on 10.5.
@@ -324,69 +357,13 @@ endef
@echo "Standalone Mac OS X application created."
@echo ""
+.PHONY: macosx-disk-image
macosx-disk-image: macosx-standalone-app
- /bin/rm -f ultrastardx.dmg
+ $(RM) ultrastardx.dmg
$(HDIUTIL) create -type SPARSE -size 30m -fs HFS+ -volname UltraStarDeluxe -ov -attach UltraStarDeluxe.sparseimage
/bin/cp -R ../UltraStarDeluxe.app /Volumes/UltraStarDeluxe
# /bin/cp ultrastardx/icons/UltraStarDeluxeVolumeIcon.icns /Volumes/UltraStarDeluxe/.VolumeIcon.icns
# /Developer/Tools/SetFile -a C /Volumes/UltraStarDeluxe/.VolumeIcon.icns /Volumes/UltraStarDeluxe
$(HDIUTIL) detach /Volumes/UltraStarDeluxe
$(HDIUTIL) convert UltraStarDeluxe.sparseimage -format UDBZ -o ultrastardx.dmg
- /bin/rm -f UltraStarDeluxe.sparseimage
-#################################################
-# clean-up
-#################################################
-
-clean: recursive-clean clean_obj
-
-recursive-clean: recursive-target = clean
-recursive-clean: recursive
-
-distclean: recursive-distclean clean clean_res
- find . -name "*.o" -o -name "*.ppu" -o -name "*.rst" -o -name "*.compiled" | xargs rm -f
- find . -name "*~" -name "*.bak" -o -name "*.orig" -o -name "*.dcu" | xargs rm -f
- find . -name "__history" | xargs rm -r -f
- rm -f "$(USDX_PREFIX).res" "$(USDX_PREFIX).identcache"
- rm -f config.inc Makefile config.log config.status configure aclocal.m4
- rm -rf autom4te.cache
-
-recursive-distclean: recursive-target = distclean
-recursive-distclean: recursive
-
-clean_obj:
- find "$(PCUNIT_DIR)" -name "*.o" -o -name "*.ppu" -o -name "*.rst" -o -name "*.compiled" | xargs rm -f
- rm -f "$(USDX_BIN)"
-
-#################################################
-# Resource-file
-#################################################
-
-$(RESOURCE_FILE): $(RC_FILE)
- $(RESEXTRACTOR_BIN) $(RC_FILE) $(RESOURCE_DIR) $(RESOURCE_FILE)
-
-clean_res:
- rm -f "$(RESOURCE_FILE)"
-
-#################################################
-# auto-update
-#################################################
-
-# FPC does not recognize changes correctly. E.g. sometimes changes in .inc-files or
-# conditional .pas dependencies are ignored which results in corrupted builds.
-# So check for changes with a modification timestamp.
-update-modfile:
- test -e $(modfile) || touch $(modfile)
- find . \( -name "*.pas" -o -name "*.pp" -o -name "*.inc" -o -name "*.dpr" \) -newer $(modfile) -exec touch $(modfile) \;
- find $(USDX_LIB_DIR) -name "*.a" -newer $(modfile) -exec touch $(modfile) \;
-
-Makefile: Makefile.in config.status
- ./config.status
-
-config.status: configure
- ./config.status --recheck
-
-configure: configure.ac config.inc.in aclocal.m4
- autoconf
-
-aclocal.m4: m4/*
- aclocal -I m4
+ $(RM) UltraStarDeluxe.sparseimage