diff options
Diffstat (limited to 'Game/Code')
-rw-r--r-- | Game/Code/Makefile.in | 82 | ||||
-rw-r--r-- | Game/Code/configure.ac | 82 |
2 files changed, 112 insertions, 52 deletions
diff --git a/Game/Code/Makefile.in b/Game/Code/Makefile.in index 5df6c737..b4eff25d 100644 --- a/Game/Code/Makefile.in +++ b/Game/Code/Makefile.in @@ -1,7 +1,6 @@ ##
# Makefile for @PACKAGE_NAME@ @PACKAGE_VERSION@
-# @AUTOCONF_INFO@
-# @PACKAGE_BUGREPORT@
+# @configure_input@
##
# general definitions
@@ -23,19 +22,19 @@ LN_S = @LN_S@ USDX_PREFIX = UltraStar
USDX_TOOLS_DIR = ../../Tools
-
-
EXE_SUFFIX = @EXEEXT@
# Free Pascal compiler
PPC = @PPC@
PFLAGS = @PFLAGS@
+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
@@ -44,14 +43,14 @@ RESCOMPILER_BIN = $(USDX_TOOLS_DIR)/$(RESCOMPILER_NAME)$(EXE_SUFFIX) RESCOMPILER_SRC = $(USDX_TOOLS_DIR)/$(RESCOMPILER_NAME)$(PROJ_SUFFIX)
RESCOMPILER_PFLAGS = -dRELEASE
-RES_SUFFIX = .lrs
-
# 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_FLAGS = \
+ $(PUNIT_TOKEN)$(LAZARUS_DIR)/lcl/units/$(PPROCESSOR)-$(PPLATFORM) \
+ $(PUNIT_TOKEN)$(LAZARUS_DIR)/lcl/units/$(PPROCESSOR)-$(PPLATFORM)/$(LCL_WIDGET_TYPE) \
+ $(PUNIT_TOKEN)$(LAZARUS_DIR)/components/images/lib/$(PPROCESSOR)-$(PPLATFORM) \
+ $(PUNIT_TOKEN)$(LAZARUS_DIR)/components/jpeg \
+ $(PUNIT_TOKEN).
# Directory where compiled units (.ppu and .o files) are stored
PCUNIT_TOKEN = -FU
@@ -60,10 +59,10 @@ PCUNIT_FLAGS = $(PCUNIT_TOKEN)$(PCUNIT_DIR) # Directories added to the includes path
PINC_TOKEN = -Fi
-PINC_FLAGS = $(PINC_TOKEN)lib/JEDI-SDLv1.0/SDL/Pas
+PINC_FLAGS = $(PINC_TOKEN)lib/JEDI-SDL/SDL/Pas
# Defines
-PDEFINES = -dLCL
+PDEFINES = -dLCL -dLCL$(LCL_WIDGET_TYPE)
# Misc fpc options
PCOMPAT_FLAGS = -S2dgi
@@ -84,14 +83,12 @@ PFLAGS += $(PCOMPAT_FLAGS) \ USDX_SRC = $(USDX_PREFIX)$(PROJ_SUFFIX)
# name of executable
USDX_BIN = $(USDX_PREFIX)$(EXE_SUFFIX)
-# name of resource
-USDX_RES = $(USDX_PREFIX)$(RES_SUFFIX)
-.PHONY: all resources ultrastardx-app install uninstall clean distclean clean_obj clean_res
+.PHONY: all resources ultrastardx-app install install-dev install-release uninstall uninstall-dev uninstall-release clean distclean clean_obj clean_res
all: resources ultrastardx-app
-resources: $(USDX_RES)
+resources: $(USDX_PREFIX).lrs
ultrastardx-app: $(USDX_BIN)
@@ -99,44 +96,65 @@ ultrastardx-app: $(USDX_BIN) # (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):
- $(MAKE) clean_obj
+$(USDX_BIN): clean_obj
+# $(MAKE) clean_obj
mkdir -p $(PCUNIT_DIR)
- $(PPC) $(PFLAGS) $(PINC_FLAGS) $(PUNIT_FLAGS) $(PCUNIT_FLAGS) -o$(USDX_BIN) $(USDX_SRC)
+ $(PPC) $(PFLAGS) $(PLIBS) $(PINC_FLAGS) $(PUNIT_FLAGS) $(PCUNIT_FLAGS) -o$@ $(USDX_SRC)
+
+install: install-@install_type@
+# all
+
+uninstall: uninstall-@install_type@
+
+
+# local development build
-install: all
+install-dev:
+ mv $(USDX_BIN) ../..
+
+uninstall-dev:
+ rm -f ../../$(USDX_BIN)
+
+# global release build
+
+install-release:
# TODO: copy files to the appropriate places
# $()/mkinstalldirs $(bindir)
# $()/mkinstalldirs $(libdir)
# $()/mkinstalldirs $(infodir)
- mv $(USDX_BIN) ../..
# $(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:
+uninstall-release:
# TODO: remove installed files
-# rm -f ...
- echo "Comming soon!"
+# rm -f xyz
+ @echo '"install-release" does not exist yet.'
+
-clean: clean_obj clean_res
+clean: clean_obj
-distclean: clean
- find . -name "*.o" -o -name "*.ppu" -o -name "*.rst" | xargs rm -f
- find . -name "*.bak" -o -name "*.orig" -o -name "*.dcu" | xargs rm -f
+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 $(OUTPUT).cfg $(OUTPUT).res $(OUTPUT).identcache
+ 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 $(OUTPUT)
+ rm -f $(USDX_BIN)
clean_res:
- rm -f $(USDX_RES) link.res
+ rm -f $(USDX_PREFIX).lrs
-$(USDX_RES): $(RESCOMPILER_BIN) $(USDX_PREFIX).rc
+$(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
diff --git a/Game/Code/configure.ac b/Game/Code/configure.ac index 40e8a6d2..f0af3447 100644 --- a/Game/Code/configure.ac +++ b/Game/Code/configure.ac @@ -29,6 +29,18 @@ AC_CONFIG_MACRO_DIR(m4) # show features and packages in one list AC_PRESERVE_HELP_ORDER +#echo $LIBS + +#define([maco], []) +#echo maco +#m4_foreach_w([arg], [-L/usr/local -l/bin/bash -L/usr/local], +# [m4_append_uniq([maco], "arg", [ ]) +#]) +#echo maco + +#echo m4_split([hallo o]) +#AC_MSG_ERROR(oi) + # ----------------------------------------- # define switches # ----------------------------------------- @@ -46,6 +58,15 @@ if [[ x$with_lazarus = xno ]] ; then AC_MSG_ERROR([Lazarus is required. It is impossible to build without it.]); fi +# add lazarus widget-type option +AC_ARG_WITH([lcl_widget_type], + [AS_HELP_STRING([--with-lcl-widget-type=TYPE], + [Lazarus LCL Widget Type @<:@default=gtk2@:>@])], + [with_lcl_widget_type=$withval], [with_lcl_widget_type="gtk2"]) +if [[ x$with_lcl_widget_type = xno -o x$with_lcl_widget_type = xyes ]] ; then + AC_MSG_ERROR([Invalid LCL Widget Type (try one of gtk2/gtk/qt)]); +fi + # add portaudio option AC_ARG_WITH([portaudio], [AS_HELP_STRING([--with-portaudio=DIR], @@ -88,12 +109,26 @@ AC_ARG_WITH([cfg-dummy3], [ Development options:]) # add dev_layout option -# Note: now handled by the Makefile -AC_ARG_ENABLE(dev_install, - [AS_HELP_STRING([--enable-dev-install], - [local installation for testing])], - [enable_dev_install="yes"], [enable_dev_install="no"]) +AC_ARG_ENABLE(dev_build, + [AS_HELP_STRING([--enable-dev-build], + [local development build])], + [enable_dev_build="yes"], [enable_dev_build="no"]) + +# ----------------------------------------- +# tools +# ----------------------------------------- +# options for make command +AC_PROG_MAKE_SET +# find tool for ln -s +AC_LN_S +# find the best install tool +AC_PROG_INSTALL +# some other useful tools +#AC_PROG_AWK +AC_PROG_SED +AC_PROG_GREP +#AC_PROG_EGREP # ----------------------------------------- # macro declarations @@ -117,7 +152,7 @@ AC_DEFUN([AC_SPLIT_VERSION], # Note: We use a here-document (<<< here-strings not POSIX compatible) # Do NOT indent the eof-delimiter read major minor release ignore <<eof - `echo [$2] | tr '.-' ' ' | sed s/[^0-9\ ].*//` + `echo [$2] | tr '.-' ' ' | $SED 's/[[^0-9\ ]].*//'` eof # strip preceding 0s and set unset version-parts to 0 @@ -210,18 +245,6 @@ AC_LANG([C]) AC_PROG_CXX AC_LANG([C++]) -# options for make command -AC_PROG_MAKE_SET -# find tool for ln -s -AC_LN_S -# find the best install tool -AC_PROG_INSTALL -# some other useful tools -#AC_PROG_AWK -#AC_PROG_SED -#AC_PROG_GREP -#AC_PROG_EGREP - # find pkg-config PKG_PROG_PKG_CONFIG() if [[ x$PKG_CONFIG = x ]]; then @@ -254,7 +277,7 @@ AC_PATH_PROG(LAZARUS, lazarus, no, [$LAZARUS_CHECK_DIRS]) if [[ $LAZARUS = "no" ]] ; then AC_MSG_ERROR([Could not find lazarus. Please install lazarus and try again.]); fi -LAZARUS_DIR=`dirname "$LAZARUS"` +LAZARUS_DIR=`AS_DIRNAME(["$LAZARUS"])` # get lazarus version AC_MSG_CHECKING(for version of lazarus) @@ -264,6 +287,18 @@ LAZARUS_VERSION=`(cd "$LAZARUS_DIR/tools/install"; ./get_lazarus_version.sh)` AC_SPLIT_VERSION([LAZARUS], [$LAZARUS_VERSION]) AC_MSG_RESULT(@<:@$LAZARUS_VERSION@:>@) +# check if LCL Widget type is valid +LCL_WIDGET_TYPE=$with_lcl_widget_type +LCL_UNIT_DIR="$LAZARUS_DIR/lcl/units/$FPC_PROCESSOR-$FPC_PLATFORM" +LCL_WIDGET_DIR="$LCL_UNIT_DIR/$LCL_WIDGET_TYPE" +AC_MSG_CHECKING([whether LCL Widget Type "$LCL_WIDGET_TYPE" is valid]) +if [[ -d "$LCL_WIDGET_DIR" ]]; then + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) + AC_MSG_ERROR(LCL Widget Type not available: directory "$LCL_WIDGET_DIR" not found.) +fi + # find sdl AC_PKG_CHECK_VERSION(SDL, [sdl], yes) @@ -328,12 +363,19 @@ AC_SUBST(PORTMIXER_LIB) AC_SUBST_DEFINE(HAVE_PORTMIXER, $PORTMIXER_HAVE) AC_SUBST(LAZARUS_DIR) +AC_SUBST(LCL_WIDGET_TYPE) -AC_SUBST_DEFINE(USE_LOCAL_DIRS, $enable_dev_install) +AC_SUBST_DEFINE(USE_LOCAL_DIRS, $enable_dev_build) +if [[ x$enable_dev_build = xyes ]]; then + AC_SUBST(install_type, ["dev"]) +else + AC_SUBST(install_type, ["release"]) +fi AC_SUBST(suffix) AC_SUBST(logrootdir, [$with_logrootdir]) AC_DEFINE_DIR(sharerootdir, datarootdir) +AC_SUBST(PLIBS) AC_SUBST(PACKAGE_WEBSITE) # ----------------------------------------- |