blob: efa2e5116a22fc0f0808539df622d700eb905e4e (
plain) (
tree)
|
|
#################################################
# @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../game/plugins -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
FPC_PLATFORM = @FPC_PLATFORM@
PFLAGS_SDL :=
ifeq ($(FPC_PLATFORM), darwin)
PFLAGS_SDL += -k"-U _SDL_main"
endif
##
# 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.*
|