blob: defada7a06a310a6b118cdc7c47e7440b88be501 (
plain) (
tree)
|
|
##
# Makefile for @PACKAGE_NAME@ @PACKAGE_VERSION@
# @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 = ../..
# install tool
INSTALL = @INSTALL@
# calls "ln -s"
LN_S = @LN_S@
USDX_PREFIX = UltraStar
USDX_TOOLS_DIR = $(usdxrootdir)/Tools
EXE_SUFFIX = @EXEEXT@
# Free Pascal compiler
PPC = @PPC@
PLIBS = @PLIBS@
# FPC target platform and processor
PPLATFORM = @FPC_PLATFORM@
PPROCESSOR = @FPC_PROCESSOR@
# lazarus defines
LAZARUS_DIR = @LAZARUS_DIR@
LCL_WIDGET_TYPE = @LCL_WIDGET_TYPE@
PROJ_SUFFIX = .lpr
# RC to LRS resource compiler
RESCOMPILER_NAME = USDXResCompiler
RESCOMPILER_BIN = $(USDX_TOOLS_DIR)/$(RESCOMPILER_NAME)$(EXE_SUFFIX)
RESCOMPILER_SRC = $(USDX_TOOLS_DIR)/$(RESCOMPILER_NAME)$(PROJ_SUFFIX)
RESCOMPILER_PFLAGS = -dRELEASE
# Directories added to the unit path
PUNIT_TOKEN = -Fu
PUNIT_FLAGS = \
$(PUNIT_TOKEN)$(LAZARUS_DIR)/lcl/units/$(PPROCESSOR)-$(PPLATFORM) \
$(PUNIT_TOKEN)$(LAZARUS_DIR)/components/images/lib/$(PPROCESSOR)-$(PPLATFORM) \
$(PUNIT_TOKEN)$(LAZARUS_DIR)/components/jpeg \
$(PUNIT_TOKEN).
# $(PUNIT_TOKEN)$(LAZARUS_DIR)/lcl/units/$(PPROCESSOR)-$(PPLATFORM)/$(LCL_WIDGET_TYPE)
# Directory where compiled units (.ppu and .o files) are stored
PCUNIT_TOKEN = -FU
PCUNIT_DIR = ./build/$(PPLATFORM)/lazarus
PCUNIT_FLAGS = $(PCUNIT_TOKEN)$(PCUNIT_DIR)
# Directories added to the includes path
PINC_TOKEN = -Fi
PINC_FLAGS = $(PINC_TOKEN)lib/JEDI-SDL/SDL/Pas
# Defines
PDEFINES = -dLCL
# this is necessary to use lazjpeg instead of Ulazjpeg
# but requires configure to detect if gtk/gkt2 or qt is used
#-dLCL$(LCL_WIDGET_TYPE)
# FPC flags
# The user can overwrite the default flags with
# make PFLAGS="myflags"
PFLAGS = -S2dgi
# 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@
PFLAGS_DEBUG = @PFLAGS_DEBUG@
PFLAGS_RELEASE = @PFLAGS_RELEASE@
# The user can specify additional flags with
# make PFLAGS_EXTRA="myflags"
PFLAGS_EXTRA =
PFLAGS += $(PFLAGS_EXTRA)
# lpr project file used as input
USDX_SRC = $(USDX_PREFIX)$(PROJ_SUFFIX)
# name of executable
USDX_BIN = $(usdxrootdir)/$(USDX_PREFIX)$(EXE_SUFFIX)
.PHONY: all resources ultrastardx-app install install-dev install-release uninstall uninstall-dev uninstall-release clean distclean clean_obj clean_res fetch-sounds
all: resources ultrastardx-app
resources: $(USDX_PREFIX).lrs
ultrastardx-app: $(USDX_BIN)
# Clean and rebuild everything because FPC caches some old files
# (it uses an .inc-files cache for example).
# As a result FPC misses some changes if it is called without cleaning
# up first (very annoying while debugging).
$(USDX_BIN): clean_obj
# $(MAKE) clean_obj
mkdir -p $(PCUNIT_DIR)
$(PPC) $(PFLAGS) $(PDEFINES) $(PLIBS) $(PINC_FLAGS) $(PUNIT_FLAGS) $(PCUNIT_FLAGS) -o$@ $(USDX_SRC)
install: install-@install_type@
# all
uninstall: uninstall-@install_type@
# local development build
install-dev:
@if [ ! -d "$(usdxrootdir)/Visuals" ]; then \
echo "Copying visualizer data to $(usdxrootdir)/Visuals ..."; \
cp -r "$(usdxrootdir)/InstallerDependencies/Visuals" "$(usdxrootdir)"; \
fi
@if [ ! -f "$(usdxrootdir)/Sounds/Common start.mp3" ]; then \
echo ""; \
echo "# The sound-files from Sound-directory of the 1.0.1-branch are required."; \
echo "# Copy them yourself to \"$(usdxrootdir)/Sounds\""; \
echo "# or if you are connected to the web try:"; \
echo "# make fetch-sounds"; \
fi
fetch-sounds:
svn co https://ultrastardx.svn.sourceforge.net/svnroot/ultrastardx/branches/1.0.1/Sounds tmp-sounds
mv tmp-sounds/*.mp3 $(usdxrootdir)/Sounds
rm -rf tmp-sounds
uninstall-dev:
rm -f $(USDX_BIN)
# global release build
install-release:
# TODO: copy files to the appropriate places
# $()/mkinstalldirs $(bindir)
# $()/mkinstalldirs $(libdir)
# $()/mkinstalldirs $(infodir)
# $(INSTALL) $(USDX_BIN) $(bindir)/$(USDX_BIN)
@echo '"install-release" does not exist yet. Install USDX yourself or use "./configure --enable-dev-build" for a local installation.'
uninstall-release:
# TODO: remove installed files
# rm -f xyz
@echo '"install-release" does not exist yet.'
clean: clean_obj
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 config.log config.status configure
rm -f Makefile
rm -f aclocal.m4
rm -rf autom4te.cache
clean_obj:
find "$(PCUNIT_DIR)" -name "*.o" -o -name "*.ppu" -o -name "*.rst" -o -name "*.compiled" | xargs rm -f
rm -f $(USDX_BIN)
clean_res:
rm -f $(USDX_PREFIX).lrs
$(USDX_PREFIX).lrs: $(RESCOMPILER_BIN) $(USDX_PREFIX).rc
$(RESCOMPILER_BIN) $(USDX_PREFIX).rc
$(RESCOMPILER_BIN): $(RESCOMPILER_SRC)
mkdir -p $(PCUNIT_DIR)
$(PPC) $(RESCOMPILER_PFLAGS) $(PUNIT_FLAGS) $(PCUNIT_FLAGS) -o$@ $(RESCOMPILER_SRC)
configure: configure.ac config.inc.in aclocal.m4
autoconf
aclocal.m4: m4/*
aclocal -I m4
Makefile: Makefile.in config.status
./config.status
config.status: configure
./config.status --recheck
|