aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-09-01 17:23:55 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-09-01 17:23:55 +0000
commit90256c7f975df47db109b583c7ae23b7e1e1c1d2 (patch)
treeed7a86672ba843a41be4de515f89b554a4de3669 /src
parent2ab22bdad1415813a3e1df329640332702272fc0 (diff)
downloadusdx-90256c7f975df47db109b583c7ae23b7e1e1c1d2.tar.gz
usdx-90256c7f975df47db109b583c7ae23b7e1e1c1d2.tar.xz
usdx-90256c7f975df47db109b583c7ae23b7e1e1c1d2.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@1335 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r--src/Makefile.in206
1 files changed, 206 insertions, 0 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 00000000..bcb07a91
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,206 @@
+#################################################
+# @PACKAGE_STRING@
+# @configure_input@
+#################################################
+
+@SET_MAKE@
+
+#################################################
+# Standard definitions
+#################################################
+
+# 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
+
+#################################################
+# USDX Paths
+#################################################
+
+USDX_SRC_DIR := $(top_srcdir)/src
+USDX_GAME_DIR := $(top_srcdir)/game
+USDX_TOOLS_DIR := $(top_srcdir)/tools
+USDX_BUILD_DIR := $(top_srcdir)/build
+USDX_LIB_DIR := $(USDX_SRC_DIR)/lib
+
+#################################################
+# RC -> resource.inc
+#################################################
+
+# RC resource extraction config
+RESEXTRACTOR_DIR := $(USDX_TOOLS_DIR)/ResourceExtractor
+RESEXTRACTOR_BIN := $(RESEXTRACTOR_DIR)/ResourceExtractor$(EXEEXT)
+RESOURCE_DIR := $(USDX_GAME_DIR)/resources
+RESOURCE_FILE := $(srcdir)/resource.inc
+RC_FILE := $(srcdir)/ultrastardx.rc
+
+#################################################
+# FPC config
+#################################################
+
+# Free Pascal compiler binary
+PPC := @PPC@
+# FPC target platform and processor
+PPLATFORM := @FPC_PLATFORM@
+PPROCESSOR := @FPC_PROCESSOR@
+
+# Directories added to the unit path
+PUNIT_FLAGS := -Fu.
+
+# Directory where compiled units (.ppu and .o files) are stored
+PCUNIT_DIR := $(USDX_BUILD_DIR)/fpc-$(PPROCESSOR)-$(PPLATFORM)
+PCUNIT_FLAGS := -FU$(PCUNIT_DIR)
+
+# Directories added to the includes path
+PINC_FLAGS := -Fi$(USDX_LIB_DIR)/JEDI-SDL/SDL/Pas
+
+PFLAGS_BASE ?= -S2gi -vB
+PFLAGS_EXTRA ?= @PFLAGS_EXTRA@
+PFLAGS_DEBUG ?= @PFLAGS_DEBUG@
+PFLAGS_RELEASE ?= @PFLAGS_RELEASE@
+# user-flags (specified with configure) must be last in
+# list to overwrite defaults (e.g. the "-"-option: -Xs-).
+PFLAGS ?= $(PFLAGS_BASE) @PFLAGS_MAKE@ $(PFLAGS_EXTRA)
+
+LIBS ?= @LIBS@
+LDFLAGS ?= @LDFLAGS@
+linkflags := $(strip $(LDFLAGS) $(LIBS))
+ifneq ($(linkflags),)
+PLINKFLAGS := -k"$(linkflags)"
+endif
+
+#################################################
+# USDX project config
+#################################################
+
+# dpr project file used as input
+USDX_PROJ := ultrastardx.dpr
+# name of executable
+USDX_BIN_NAME ?= ultrastardx$(EXEEXT)
+USDX_BIN := $(USDX_GAME_DIR)/$(USDX_BIN_NAME)
+
+#################################################
+# ProjectM
+#################################################
+
+PROJECTM_CWRAPPER_DIR := $(USDX_LIB_DIR)/projectM/cwrapper
+PROJECTM_CWRAPPER_LIB := $(PROJECTM_CWRAPPER_DIR)/libprojectM-cwrapper.a
+USE_PROJECTM_CWRAPPER = @USE_PROJECTM_CWRAPPER@
+
+#################################################
+# Static libs
+#################################################
+
+STATIC_LIBS :=
+ifeq ($(USE_PROJECTM_CWRAPPER), yes)
+STATIC_LIBS += $(PROJECTM_CWRAPPER_LIB)
+endif
+
+#################################################
+# general targets
+#################################################
+
+INC_FILES = $(shell find -name "*.inc")
+PAS_FILES = $(shell find -name "*.pas" -o -name "*.pp")
+BIN_DEPS =
+
+.PHONY: all
+all: rebuild
+
+# one shot debug build
+.PHONY: debug
+debug: PFLAGS := $(PFLAGS_BASE) $(PFLAGS_DEBUG) $(PFLAGS_EXTRA)
+debug: rebuild
+
+# one shot release build
+.PHONY: release
+release: PFLAGS := $(PFLAGS_BASE) $(PFLAGS_RELEASE) $(PFLAGS_EXTRA)
+release: rebuild
+
+# build, but always clean old data before compiling.
+# FPC does not reliably recognize changes in .inc-files, static libs
+# (and maybe even conditional .pas) dependencies. This might result
+# in corrupted builds and renders debugging difficult.
+# Clean if any (%) file changed.
+.PHONY: rebuild
+rebuild: CLEANON_PATTERN := %
+rebuild: $(USDX_BIN)
+
+# Use FPC to determine if the sources have to be rebuild.
+# This does not work if an .inc or a static lib (e.g. .a) changed so we will
+# manually clean in these cases. FPC might even miss some changes in
+# .pas files so we prefer the rebuild target.
+# Clean if an inc-file (%.inc) or static lib (%.a) changed.
+.PHONY: build
+build: CLEANON_PATTERN := %.inc %.a
+build: $(USDX_BIN)
+
+#################################################
+# build
+#################################################
+
+# After expansion of the expression, check_clean will
+# contain the first changed prerequisite ($?) that matches
+# CLEANON_PATTERN. It is used to check if any prerequisite of CLEANON_PATTERN
+# type changed (we just return the first word to avoid spaces in
+# the result that might crash "test x$(check_clean)").
+check_clean = $(firstword $(filter $(CLEANON_PATTERN), $?))
+
+$(USDX_BIN): $(RESOURCE_FILE) $(USDX_PROJ) $(STATIC_LIBS) $(INC_FILES) $(PAS_FILES)
+ @echo "==================================="
+ @echo "Changed files:"
+ @echo "$?"
+ @echo "==================================="
+
+# Checks if a rebuild is required.
+# This is the case if any file matching $CLEANON_PATTERN changed.
+ @if test x$(check_clean) != x; then \
+ echo "-----------------------------------"; \
+ echo "Clean objects..."; \
+ $(MAKE) clean_obj; \
+ echo "-----------------------------------"; \
+ fi
+
+ $(MKDIR) "$(PCUNIT_DIR)"
+ $(PPC) $(strip $(PFLAGS) $(PDEFINES) $(PLINKFLAGS) $(PINC_FLAGS) $(PUNIT_FLAGS) $(PCUNIT_FLAGS)) -o$@ $(USDX_PROJ)
+
+#################################################
+# Resource-file
+#################################################
+
+$(RESOURCE_FILE): $(RC_FILE)
+ $(RESEXTRACTOR_BIN) $(RC_FILE) $(RESOURCE_DIR) $(RESOURCE_FILE)
+
+
+#################################################
+# clean-up
+#################################################
+
+.PHONY: clean
+clean: clean_obj clean_res
+
+.PHONY: clean_res
+clean_res:
+ $(RM) "$(RESOURCE_FILE)"
+
+.PHONY: clean_obj
+clean_obj: clean_bin
+ $(RM_REC) "$(PCUNIT_DIR)"
+ -rmdir "$(USDX_BUILD_DIR)"
+
+.PHONY: clean_bin
+clean_bin:
+ $(RM) "$(USDX_BIN)"