################################################# # @PACKAGE_STRING@ # @configure_input@ ################################################# @SET_MAKE@ SHELL = /bin/sh ################################################# # Standard definitions ################################################# top_srcdir ?= @top_srcdir@ srcdir ?= @srcdir@ ################################################# # Tools ################################################# RM ?= rm -f ################################################# # USDX Paths ################################################# USDX_SRC_DIR := $(top_srcdir)/src USDX_BUILD_DIR := $(top_srcdir)/build USDX_LIB_DIR := $(USDX_SRC_DIR)/lib ################################################# # 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 := -FE../build/fpc-$(PPROCESSOR)-$(PPLATFORM) -Fu../build/fpc-$(PPROCESSOR)-$(PPLATFORM) # Directory where compiled units (.ppu, .o and library 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 # Flags for the treatment of a linker issue with SDL. # Symbol _SDK_main is undefined PFLAGS_SDL := -k-U -k_SDL_main ## # PFLAGS ## # Defined on debug mode ENABLE_DEBUG := @ENABLE_DEBUG@ # Note: # - PFLAGS/PFLAGS_* defaults to $(PFLAGS_XYZ_DEFAULT) if not set by the user # - if PFLAGS is defined, PFLAGS_* will be ignored on "make all" PFLAGS ?= @PFLAGS@ PFLAGS_BASE ?= @PFLAGS_BASE@ PFLAGS_DEBUG ?= @PFLAGS_DEBUG@ PFLAGS_RELEASE ?= @PFLAGS_RELEASE@ # Do not overwrite, just add extra flags PFLAGS_EXTRA += @PFLAGS_EXTRA@ # Default PFLAGS, used if PFLAGS/PFLAGS_* was not set by the user # - Do not use -dDEBUG because it will enable unwanted features # - Do not strip executable (-Xs, set by fpc.cfg) to be GNU make conformant # - Use DEBUG_MODE instead of DEBUG to avoid enabling the fpc.cfg DEBUG preset # - The flag -vB appends the full path to filenames # - Note that fpc.cfg already defines -vinw, so add -v0 first # - The stack check (-Ct) might not work with enabled threading # - Do we need -Coi? PFLAGS_BASE_DEFAULT := -Si -Sg- -Sc- -v0Binwe PFLAGS_DEBUG_DEFAULT := -Xs- -g -gl -dDEBUG_MODE PFLAGS_RELEASE_DEFAULT := -Xs- -O2 PFLAGS_EXTRA_DEFAULT := # Debug/Release mode flags # Note that flags will overwrite previously specified flags, # e.g. "-vinwe -vi-" is the same as "-vnwe" PFLAGS_DEBUG_ALL := $(PFLAGS_BASE) $(PFLAGS_DEBUG) $(PFLAGS_EXTRA) PFLAGS_RELEASE_ALL := $(PFLAGS_BASE) $(PFLAGS_RELEASE) $(PFLAGS_EXTRA) # Choose default PFLAGS, depending on debug mode. # Only used if PFLAGS was not set by the user. ifdef ENABLE_DEBUG PFLAGS_DEFAULT := $(PFLAGS_DEBUG_ALL) else PFLAGS_DEFAULT := $(PFLAGS_RELEASE_ALL) endif PFLAGS_ALL = $(PFLAGS) $(PDEFINES) $(PINC_FLAGS) $(PUNIT_FLAGS) $(PCUNIT_FLAGS) .PHONY: all all: SDK 5000Points Blind Dont_Get_Worse Duell Team_Duell .PHONY: SDK SDK: clean-SDK $(PPC) $(strip $(PFLAGS_ALL)) SDK/ModiSDK.pas $(PPC) $(strip $(PFLAGS_ALL)) SDK/USDXStrUtils.pas .PHONY: 5000Points 5000Points: SDK clean-5000Points $(PPC) $(strip $(PFLAGS_ALL)) 5000Points/Until5000.dpr .PHONY: Blind Blind: SDK clean-Blind $(PPC) $(strip $(PFLAGS_ALL)) Blind/Blind.dpr .PHONY: Duell Duell: SDK clean-Duell $(PPC) $(strip $(PFLAGS_ALL)) Duell/Duell.dpr .PHONY: Team_Duell Team_Duell: SDK clean-Team_Duell $(PPC) $(PFLAGS_SDL) $(strip $(PFLAGS_ALL)) Team_Duell/TeamDuell.dpr .PHONY: Dont_Get_Worse Dont_Get_Worse: SDK clean-Dont_Get_Worse $(PPC) $(PFLAGS_SDL) $(strip $(PFLAGS_ALL)) Don\'t_Get_Worse/Hold_The_Line.dpr .PHONY: clean-plugins clean-plugins: clean-SDK clean-5000Points clean-Blind clean-Dont_Get_Worse clean-Duell clean-Team_Duell .PHONY: clean-SDK clean-SDK: $(RM) $(PCUNIT_DIR)/ModiSDK.o $(PCUNIT_DIR)/ModiSDK.ppu $(RM) $(PCUNIT_DIR)/USDXStrUtils.o $(PCUNIT_DIR)/USDXStrUtils.ppu .PHONY: clean-5000Points clean-5000Points: $(RM) $(PCUNIT_DIR)/Until5000.o $(PCUNIT_DIR)/libUntil5000.* .PHONY: clean-Blind clean-Blind: $(RM) $(PCUNIT_DIR)/Blind.o $(PCUNIT_DIR)/libBlind.* .PHONY: clean-Duell clean-Duell: $(RM) $(PCUNIT_DIR)/Duell.o $(PCUNIT_DIR)/libDuell.* .PHONY: clean-Team_Duell clean-Team_Duell: $(RM) $(PCUNIT_DIR)/TeamDuell.o $(PCUNIT_DIR)/libTeamDuell.* .PHONY: clean-Dont_Get_Worse clean-Dont_Get_Worse: $(RM) $(PCUNIT_DIR)/Hold_The_Line.o $(PCUNIT_DIR)/libHold_The_Line.*