Add C++ support to the build system, from Scott A. Colcord.

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3747 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
Meep-Eep
2012-01-15 20:01:20 +00:00
parent e8cfeed54b
commit fc18eebd15
10 changed files with 149 additions and 43 deletions
+14
View File
@@ -42,6 +42,13 @@ $(OBJDIR)%.c.d: $(BUILD_ROOT)%.c
fi fi
$(call act,act_mkdep_c,MKDEP ,$@) $(call act,act_mkdep_c,MKDEP ,$@)
$(OBJDIR)%.cpp.d: $(BUILD_ROOT)%.cpp
@DIR=$(dir $@); \
if [ ! -d $$DIR ]; then \
mkdir -p "$$DIR"; \
fi
$(call act,act_mkdep_cxx,MKDEP ,$@)
$(OBJDIR)%.m.d: $(BUILD_ROOT)%.m $(OBJDIR)%.m.d: $(BUILD_ROOT)%.m
@DIR=$(dir $@); \ @DIR=$(dir $@); \
if [ ! -d $$DIR ]; then \ if [ ! -d $$DIR ]; then \
@@ -63,6 +70,13 @@ $(OBJDIR)%.m.d: $(BUILD_ROOT)%.m
fi fi
$(call act,act_cc,CC ,$@) $(call act,act_cc,CC ,$@)
%.cpp.o:
@DIR=$(dir $@); \
if [ ! -d $$DIR ]; then \
mkdir -p "$$DIR"; \
fi
$(call act,act_cxx,CXX ,$@)
%.m.o: %.m.o:
@DIR=$(dir $@); \ @DIR=$(dir $@); \
if [ ! -d $$DIR ]; then \ if [ ! -d $$DIR ]; then \
+2
View File
@@ -17,8 +17,10 @@ case "$HOST_SYSTEM" in
;; ;;
esac esac
uqm_CFLAGS="$uqm_CFLAGS -Isrc" uqm_CFLAGS="$uqm_CFLAGS -Isrc"
uqm_CXXFLAGS="$uqm_CXXFLAGS -Isrc"
if [ "$uqm_HAVE_REGEX" = 0 ]; then if [ "$uqm_HAVE_REGEX" = 0 ]; then
uqm_CFLAGS="$uqm_CFLAGS -Isrc/regex" uqm_CFLAGS="$uqm_CFLAGS -Isrc/regex"
uqm_CXXFLAGS="$uqm_CXXFLAGS -Isrc/regex"
fi fi
# Stuff to install under the directory for libraries, as specified during # Stuff to install under the directory for libraries, as specified during
+4
View File
@@ -20,6 +20,9 @@ HOST_SYSTEM='@HOST_SYSTEM@'
PREPROC_C='@PREPROC_C@' PREPROC_C='@PREPROC_C@'
MKDEP_C='@MKDEP_C@' MKDEP_C='@MKDEP_C@'
COMPILE_C='@COMPILE_C@' COMPILE_C='@COMPILE_C@'
PREPROC_CXX='@PREPROC_CXX@'
MKDEP_CXX='@MKDEP_CXX@'
COMPILE_CXX='@COMPILE_CXX@'
PREPROC_OBJC='@PREPROC_OBJC@' PREPROC_OBJC='@PREPROC_OBJC@'
MKDEP_OBJC='@MKDEP_OBJC@' MKDEP_OBJC='@MKDEP_OBJC@'
COMPILE_OBJC='@COMPILE_OBJC@' COMPILE_OBJC='@COMPILE_OBJC@'
@@ -30,6 +33,7 @@ SED='@SED@'
REZ='@REZ@' REZ='@REZ@'
WINDRES='@WINDRES@' WINDRES='@WINDRES@'
uqm_CFLAGS='@CFLAGS@' uqm_CFLAGS='@CFLAGS@'
uqm_CXXFLAGS='@CXXFLAGS@'
uqm_LDFLAGS='@LDFLAGS@' uqm_LDFLAGS='@LDFLAGS@'
uqm_INSTALL_BINDIR='@INSTALL_BINDIR@' uqm_INSTALL_BINDIR='@INSTALL_BINDIR@'
uqm_INSTALL_LIBDIR='@INSTALL_LIBDIR@' uqm_INSTALL_LIBDIR='@INSTALL_LIBDIR@'
+52 -38
View File
@@ -10,6 +10,7 @@ uqm_requirements()
{ {
# Some requirements: # Some requirements:
have_build_tools_language C || exit 1 have_build_tools_language C || exit 1
have_build_tools_language CXX || exit 1
have_build_tool LINK || exit 1 have_build_tool LINK || exit 1
case "$HOST_SYSTEM" in case "$HOST_SYSTEM" in
MINGW32*|cegcc) MINGW32*|cegcc)
@@ -108,16 +109,16 @@ uqm_prepare_config()
nodebug_action() { nodebug_action() {
case "$HOST_SYSTEM" in case "$HOST_SYSTEM" in
WINSCW) WINSCW)
CFLAGS="$CFLAGS -O2 -d NDEBUG" CCOMMONFLAGS="$CCOMMONFLAGS -O2 -d NDEBUG"
;; ;;
ARMV5) ARMV5)
CFLAGS="$CFLAGS -O3 -Otime -DNDEBUG" CCOMMONFLAGS="$CCOMMONFLAGS -O3 -Otime -DNDEBUG"
;; ;;
GCCE) GCCE)
CFLAGS="$CFLAGS -O3 -DNDEBUG" CCOMMONFLAGS="$CCOMMONFLAGS -O3 -DNDEBUG"
;; ;;
*) *)
CFLAGS="$CFLAGS -O3 -DNDEBUG" CCOMMONFLAGS="$CCOMMONFLAGS -O3 -DNDEBUG"
;; ;;
esac esac
DEBUG=0 DEBUG=0
@@ -127,13 +128,13 @@ uqm_prepare_config()
debug_action() { debug_action() {
case "$HOST_SYSTEM" in case "$HOST_SYSTEM" in
WINSCW) WINSCW)
CFLAGS="$CFLAGS -g -O0 -W all -d DEBUG -d _DEBUG" CCOMMONFLAGS="$CCOMMONFLAGS -g -O0 -W all -d DEBUG -d _DEBUG"
;; ;;
ARMV5|GCCE) ARMV5|GCCE)
CFLAGS="$CFLAGS -g -O0 -DDEBUG -D_DEBUG" CCOMMONFLAGS="$CCOMMONFLAGS -g -O0 -DDEBUG -D_DEBUG"
;; ;;
*) *)
CFLAGS="$CFLAGS -g -O0 -W -Wall -DDEBUG" CCOMMONFLAGS="$CCOMMONFLAGS -g -O0 -W -Wall -DDEBUG"
LDFLAGS="$LDFLAGS -O0" LDFLAGS="$LDFLAGS -O0"
;; ;;
esac esac
@@ -144,43 +145,46 @@ uqm_prepare_config()
strictdebug_action() { strictdebug_action() {
case "$HOST_SYSTEM" in case "$HOST_SYSTEM" in
WINSCW) WINSCW)
CFLAGS="$CFLAGS -g -O0 -W all -d DEBUG -d _DEBUG" CCOMMONFLAGS="$CCOMMONFLAGS -g -O0 -W all -d DEBUG -d _DEBUG"
;; ;;
ARMV5|GCCE) ARMV5|GCCE)
CFLAGS="$CFLAGS -g -O0 -DDEBUG -D_DEBUG" CCOMMONFLAGS="$CCOMMONFLAGS -g -O0 -DDEBUG -D_DEBUG"
;; ;;
*) *)
CFLAGS="$CFLAGS -g -O0 -DDEBUG -W -Wall" CCOMMONFLAGS="$CCOMMONFLAGS -g -O0 -DDEBUG -W -Wall"
# CFLAGS="$CFLAGS -O1" # CCOMMONFLAGS="$CCOMMONFLAGS -O1"
# This is needed for -Wunitialized with gcc 3.4 # This is needed for -Wunitialized with gcc 3.4
CFLAGS="$CFLAGS -Wbad-function-cast -Wcast-qual -Wmissing-prototypes \ CCOMMONFLAGS="$CCOMMONFLAGS -Wcast-qual -Wmissing-declarations \
-Wstrict-prototypes -Wmissing-declarations \
-Wwrite-strings -Wimplicit -Wreturn-type -Wformat \ -Wwrite-strings -Wimplicit -Wreturn-type -Wformat \
-Wswitch -Wcomment -Wchar-subscripts \ -Wswitch -Wcomment -Wchar-subscripts \
-Wparentheses -Wcast-align \ -Wparentheses -Wcast-align -Wuninitialized"
-Wuninitialized" CFLAGS="$CFLAGS -Wbad-function-cast -Wmissing-prototypes \
-Wstrict-prototypes"
# CFLAGS is for flags not valid in C++.
CFLAGS="$CFLAGS -Wdeclaration-after-statement" CFLAGS="$CFLAGS -Wdeclaration-after-statement"
# Until we abandon MSVC 6 # Until we abandon MSVC 6
# CFLAGS="$CFLAGS -Waggregate-return" # CCOMMONFLAGS="$CCOMMONFLAGS -Waggregate-return"
# It's not unreasonable to return structs at times. # It's not unreasonable to return structs at times.
# CFLAGS="$CFLAGS "-Wpointer-arith" # CCOMMONFLAGS="$CCOMMONFLAGS "-Wpointer-arith"
# Some standard header won't even compile with this on # Some standard header won't even compile with this on
# CFLAGS="$CFLAGS -Wshadow" # CCOMMONFLAGS="$CCOMMONFLAGS -Wshadow"
# This gives absurd conflicts with standard files, # This gives absurd conflicts with standard files,
# like from 'y0 and y1' # like from 'y0 and y1'
# CFLAGS="$CFLAGS -Werror" # CCOMMONFLAGS="$CCOMMONFLAGS -Werror"
# We shouldn't do this until we actually nail them # We shouldn't do this until we actually nail them
# all in the original code. Then we can enforce them # all in the original code. Then we can enforce them
# on ourselves. # on ourselves.
# CFLAGS="$CFLAGS -pedantic-errors -ansi -trigraphs" # ANSI # CCOMMONFLAGS="$CCOMMONFLAGS -pedantic-errors -ansi -trigraphs" # ANSI
# CFLAGS="$CFLAGS -Wnested-externs" # CCOMMONFLAGS="$CCOMMONFLAGS -Wnested-externs"
# We know they're in the code, and though we'd like to # We know they're in the code, and though we'd like to
# get rid of them, they're not bugs. # get rid of them, they're not bugs.
# CFLAGS="$CFLAGS -Winline" # CCOMMONFLAGS="$CCOMMONFLAGS -Winline"
# This gives too many warnings which we can do nothing # This gives too many warnings which we can do nothing
# about, obscuring legitimate warnings. # about, obscuring legitimate warnings.
CFLAGS=`echo $CFLAGS` CFLAGS=`echo $CFLAGS`
# Remove all the unnecessary spaces from $CFLAGS, CXXFLAGS=`echo $CXXFLAGS`
CCOMMONFLAGS=`echo $CCOMMONFLAGS`
# Remove all the unnecessary spaces from the flags vars
# for more readable messages. # for more readable messages.
LDFLAGS="$LDFLAGS -O0" LDFLAGS="$LDFLAGS -O0"
;; ;;
@@ -202,7 +206,7 @@ uqm_prepare_config()
CHOICE_graphics_OPTION_pure_TITLE="Don't include OpenGL graphics support" CHOICE_graphics_OPTION_pure_TITLE="Don't include OpenGL graphics support"
CHOICE_graphics_OPTION_pure_ACTION='graphics_pure_action' CHOICE_graphics_OPTION_pure_ACTION='graphics_pure_action'
graphics_pure_action() { graphics_pure_action() {
CFLAGS="$CFLAGS -DGFXMODULE_SDL" CCOMMONFLAGS="$CCOMMONFLAGS -DGFXMODULE_SDL"
GFXMODULE=sdl GFXMODULE=sdl
HAVE_OPENGL=0 HAVE_OPENGL=0
} }
@@ -210,7 +214,7 @@ uqm_prepare_config()
CHOICE_graphics_OPTION_opengl_ACTION='graphics_opengl_action' CHOICE_graphics_OPTION_opengl_ACTION='graphics_opengl_action'
CHOICE_graphics_OPTION_opengl_PRECOND="have_library opengl" CHOICE_graphics_OPTION_opengl_PRECOND="have_library opengl"
graphics_opengl_action() { graphics_opengl_action() {
CFLAGS="$CFLAGS -DGFXMODULE_SDL -DHAVE_OPENGL" CCOMMONFLAGS="$CCOMMONFLAGS -DGFXMODULE_SDL -DHAVE_OPENGL"
GFXMODULE=sdl GFXMODULE=sdl
HAVE_OPENGL=1 HAVE_OPENGL=1
use_library opengl use_library opengl
@@ -228,7 +232,7 @@ uqm_prepare_config()
CHOICE_sound_OPTION_openal_PRECOND="have_library openal" CHOICE_sound_OPTION_openal_PRECOND="have_library openal"
CHOICE_sound_OPTION_openal_ACTION=sound_openal_action CHOICE_sound_OPTION_openal_ACTION=sound_openal_action
sound_openal_action() { sound_openal_action() {
CFLAGS="$CFLAGS -DHAVE_OPENAL" CCOMMONFLAGS="$CCOMMONFLAGS -DHAVE_OPENAL"
SOUNDMODULE=openal SOUNDMODULE=openal
use_library openal use_library openal
} }
@@ -249,14 +253,14 @@ uqm_prepare_config()
CHOICE_ovcodec_OPTION_tremor_PRECOND="have_library tremor" CHOICE_ovcodec_OPTION_tremor_PRECOND="have_library tremor"
CHOICE_ovcodec_OPTION_tremor_ACTION=ovcodec_tremor_action CHOICE_ovcodec_OPTION_tremor_ACTION=ovcodec_tremor_action
ovcodec_tremor_action() { ovcodec_tremor_action() {
CFLAGS="$CFLAGS -DOVCODEC_TREMOR" CCOMMONFLAGS="$CCOMMONFLAGS -DOVCODEC_TREMOR"
OGGVORBIS=tremor OGGVORBIS=tremor
use_library tremor use_library tremor
} }
CHOICE_ovcodec_OPTION_none_TITLE="No Ogg Vorbis support" CHOICE_ovcodec_OPTION_none_TITLE="No Ogg Vorbis support"
CHOICE_ovcodec_OPTION_none_ACTION=ovcodec_none_action CHOICE_ovcodec_OPTION_none_ACTION=ovcodec_none_action
ovcodec_none_action() { ovcodec_none_action() {
CFLAGS="$CFLAGS -DOVCODEC_NONE" CCOMMONFLAGS="$CCOMMONFLAGS -DOVCODEC_NONE"
OGGVORBIS=none OGGVORBIS=none
} }
CHOICE_ovcodec_DEFAULT=standard CHOICE_ovcodec_DEFAULT=standard
@@ -266,7 +270,7 @@ uqm_prepare_config()
CHOICE_mikmod_OPTION_internal_TITLE="Included libmikmod" CHOICE_mikmod_OPTION_internal_TITLE="Included libmikmod"
CHOICE_mikmod_OPTION_internal_ACTION=mikmod_internal_action CHOICE_mikmod_OPTION_internal_ACTION=mikmod_internal_action
mikmod_internal_action() { mikmod_internal_action() {
CFLAGS="$CFLAGS -DUSE_INTERNAL_MIKMOD" CCOMMONFLAGS="$CCOMMONFLAGS -DUSE_INTERNAL_MIKMOD"
USE_INTERNAL_MIKMOD=1 USE_INTERNAL_MIKMOD=1
} }
CHOICE_mikmod_OPTION_external_TITLE="System libmikmod" CHOICE_mikmod_OPTION_external_TITLE="System libmikmod"
@@ -285,7 +289,7 @@ uqm_prepare_config()
# TODO: Check whether SDL has joystick support. # TODO: Check whether SDL has joystick support.
CHOICE_joystick_OPTION_enabled_ACTION=joystick_enabled_action CHOICE_joystick_OPTION_enabled_ACTION=joystick_enabled_action
joystick_enabled_action() { joystick_enabled_action() {
CFLAGS="$CFLAGS -DHAVE_JOYSTICK" CCOMMONFLAGS="$CCOMMONFLAGS -DHAVE_JOYSTICK"
} }
CHOICE_joystick_OPTION_disabled_TITLE="disabled" CHOICE_joystick_OPTION_disabled_TITLE="disabled"
case "$HOST_SYSTEM" in case "$HOST_SYSTEM" in
@@ -309,7 +313,7 @@ uqm_prepare_config()
CHOICE_netplay_OPTION_full_PRECOND="have_library netlibs" CHOICE_netplay_OPTION_full_PRECOND="have_library netlibs"
CHOICE_netplay_OPTION_full_ACTION=netplay_full_action CHOICE_netplay_OPTION_full_ACTION=netplay_full_action
netplay_full_action() { netplay_full_action() {
CFLAGS="$CFLAGS -DNETPLAY=NETPLAY_FULL" CCOMMONFLAGS="$CCOMMONFLAGS -DNETPLAY=NETPLAY_FULL"
if [ -n "$MACRO_WIN32" ]; then if [ -n "$MACRO_WIN32" ]; then
LDFLAGS="$LDFLAGS -lws2_32" LDFLAGS="$LDFLAGS -lws2_32"
fi fi
@@ -320,7 +324,7 @@ uqm_prepare_config()
CHOICE_netplay_OPTION_ipv4_PRECOND="have_library netlibs" CHOICE_netplay_OPTION_ipv4_PRECOND="have_library netlibs"
CHOICE_netplay_OPTION_ipv4_ACTION=netplay_ipv4_action CHOICE_netplay_OPTION_ipv4_ACTION=netplay_ipv4_action
netplay_ipv4_action() { netplay_ipv4_action() {
CFLAGS="$CFLAGS -DNETPLAY=NETPLAY_IPV4" CCOMMONFLAGS="$CCOMMONFLAGS -DNETPLAY=NETPLAY_IPV4"
NETPLAY="IPV4" NETPLAY="IPV4"
use_library netlibs use_library netlibs
} }
@@ -333,7 +337,7 @@ uqm_prepare_config()
CHOICE_ioformat_OPTION_stdio_zip_PRECOND="have_library zlib" CHOICE_ioformat_OPTION_stdio_zip_PRECOND="have_library zlib"
CHOICE_ioformat_OPTION_stdio_zip_ACTION="ioformat_stdio_zip_action" CHOICE_ioformat_OPTION_stdio_zip_ACTION="ioformat_stdio_zip_action"
ioformat_stdio_zip_action() { ioformat_stdio_zip_action() {
CFLAGS="$CFLAGS -DHAVE_ZIP=1" CCOMMONFLAGS="$CCOMMONFLAGS -DHAVE_ZIP=1"
USE_ZIP_IO=1 USE_ZIP_IO=1
use_library zlib use_library zlib
} }
@@ -344,7 +348,7 @@ uqm_prepare_config()
CHOICE_accel_OPTION_asm_TITLE="Platform acceleration (asm, etc.)" CHOICE_accel_OPTION_asm_TITLE="Platform acceleration (asm, etc.)"
CHOICE_accel_OPTION_asm_ACTION="accel_asm_action" CHOICE_accel_OPTION_asm_ACTION="accel_asm_action"
accel_asm_action() { accel_asm_action() {
CFLAGS="$CFLAGS -DUSE_PLATFORM_ACCEL" CCOMMONFLAGS="$CCOMMONFLAGS -DUSE_PLATFORM_ACCEL"
USE_PLATFORM_ACCEL=1 USE_PLATFORM_ACCEL=1
} }
CHOICE_accel_OPTION_plainc_TITLE="Only plain C code" CHOICE_accel_OPTION_plainc_TITLE="Only plain C code"
@@ -359,14 +363,14 @@ uqm_prepare_config()
CHOICE_threadlib_OPTION_sdl_TITLE="SDL-controlled thread library" CHOICE_threadlib_OPTION_sdl_TITLE="SDL-controlled thread library"
CHOICE_threadlib_OPTION_sdl_ACTION="threadlib_sdl_action" CHOICE_threadlib_OPTION_sdl_ACTION="threadlib_sdl_action"
threadlib_sdl_action() { threadlib_sdl_action() {
CFLAGS="$CFLAGS -DTHREADLIB_SDL" CCOMMONFLAGS="$CCOMMONFLAGS -DTHREADLIB_SDL"
THREADLIB="SDL" THREADLIB="SDL"
} }
CHOICE_threadlib_OPTION_pthread_TITLE="Pthread thread library" CHOICE_threadlib_OPTION_pthread_TITLE="Pthread thread library"
CHOICE_threadlib_OPTION_pthread_PRECOND="have_library pthread" CHOICE_threadlib_OPTION_pthread_PRECOND="have_library pthread"
CHOICE_threadlib_OPTION_pthread_ACTION="threadlib_pthread_action" CHOICE_threadlib_OPTION_pthread_ACTION="threadlib_pthread_action"
threadlib_pthread_action() { threadlib_pthread_action() {
CFLAGS="$CFLAGS -DTHREADLIB_PTHREAD" CCOMMONFLAGS="$CCOMMONFLAGS -DTHREADLIB_PTHREAD"
THREADLIB="PTHREAD" THREADLIB="PTHREAD"
use_library pthread use_library pthread
} }
@@ -419,7 +423,16 @@ uqm_process_config() {
# Set the content dir # Set the content dir
CONTENTDIR="${INSTALL_SHAREDIR}uqm/content" CONTENTDIR="${INSTALL_SHAREDIR}uqm/content"
CFLAGS="$CFLAGS -I\"$BUILD_WORK\"" CCOMMONFLAGS="$CCOMMONFLAGS -I\"$BUILD_WORK\""
# Set C++ only flags
# These allow use of C++ without the standard library
CXXFLAGS="$CXXFLAGS -fno-rtti -fno-exceptions -nostdinc++"
# At this point, all the compiler flags must be set.
CFLAGS="$CFLAGS $CCOMMONFLAGS"
CXXFLAGS="$CXXFLAGS $CCOMMONFLAGS"
CCOMMONFLAGS=""
# Export the HAVE_ symbols to config_unix.h, using config_unix.h.in # Export the HAVE_ symbols to config_unix.h, using config_unix.h.in
# as template (or config_win.h/config_win.h.in). # as template (or config_win.h/config_win.h.in).
@@ -435,8 +448,9 @@ uqm_process_config() {
substitute_vars SUBSTITUTE_VARS SUBSTITUTE_FILES src "$BUILD_WORK" substitute_vars SUBSTITUTE_VARS SUBSTITUTE_FILES src "$BUILD_WORK"
# Make build.vars from build.vars.in, substituting variables. # Make build.vars from build.vars.in, substituting variables.
SUBSTITUTE_VARS="BUILD_SYSTEM HOST_SYSTEM CFLAGS LDFLAGS LINK \ SUBSTITUTE_VARS="BUILD_SYSTEM HOST_SYSTEM CFLAGS CXXFLAGS LDFLAGS LINK \
PREPROC_C MKDEP_C COMPILE_C \ PREPROC_C MKDEP_C COMPILE_C \
PREPROC_CXX MKDEP_CXX COMPILE_CXX \
PREPROC_OBJC MKDEP_OBJC COMPILE_OBJC \ PREPROC_OBJC MKDEP_OBJC COMPILE_OBJC \
MAKE ECHON SED DEBUG JOYSTICK NETPLAY \ MAKE ECHON SED DEBUG JOYSTICK NETPLAY \
OGGVORBIS SOUNDMODULE USE_INTERNAL_MIKMOD \ OGGVORBIS SOUNDMODULE USE_INTERNAL_MIKMOD \
+2 -2
View File
@@ -83,8 +83,8 @@ if [ -z "$TARGET" ]; then
fi fi
BUILD_PROJECT="$TARGET" BUILD_PROJECT="$TARGET"
export TARGET BUILD_PROJECT ECHON export TARGET BUILD_PROJECT ECHON
export PREPROC_C MKDEP_C COMPILE_C PREPROC_OBJC MKDEP_OBJC COMPILE_OBJC LINK export PREPROC_C MKDEP_C COMPILE_C PREPROC_CXX MKDEP_CXX COMPILE_CXX PREPROC_OBJC MKDEP_OBJC COMPILE_OBJC LINK
export "${BUILD_PROJECT}_CFLAGS" "${BUILD_PROJECT}_LDFLAGS" export "${BUILD_PROJECT}_CFLAGS" "${BUILD_PROJECT}_CXXFLAGS" "${BUILD_PROJECT}_LDFLAGS"
# Add trailing / from objs dir # Add trailing / from objs dir
eval ${BUILD_PROJECT}_OBJS=\${${BUILD_PROJECT}_OBJS%/}/ eval ${BUILD_PROJECT}_OBJS=\${${BUILD_PROJECT}_OBJS%/}/
+3 -2
View File
@@ -104,9 +104,10 @@ build_depend() {
# Compile the lot. # Compile the lot.
# With the depend info set up, we can leave everything to make. # With the depend info set up, we can leave everything to make.
build_compile() { build_compile() {
local CFLAGS LDFLAGS TARGET_FILE DEPEND_FILE OBJDIR local CFLAGS CXXFLAGS LDFLAGS TARGET_FILE DEPEND_FILE OBJDIR
eval CFLAGS="\${${BUILD_PROJECT}_CFLAGS}" eval CFLAGS="\${${BUILD_PROJECT}_CFLAGS}"
eval CXXFLAGS="\${${BUILD_PROJECT}_CXXFLAGS}"
eval LDFLAGS="\${${BUILD_PROJECT}_LDFLAGS}" eval LDFLAGS="\${${BUILD_PROJECT}_LDFLAGS}"
eval OBJDIR=\""\$BUILD_WORK/\${${BUILD_PROJECT}_OBJS}"\" eval OBJDIR=\""\$BUILD_WORK/\${${BUILD_PROJECT}_OBJS}"\"
eval TARGET_FILE=\""\$BUILD_WORK/\${${BUILD_PROJECT}_NAME}"\" eval TARGET_FILE=\""\$BUILD_WORK/\${${BUILD_PROJECT}_NAME}"\"
@@ -114,7 +115,7 @@ build_compile() {
eval "${TARGET}_pre_build" eval "${TARGET}_pre_build"
CFLAGS=$CFLAGS LDFLAGS=$LDFLAGS \ CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS LDFLAGS=$LDFLAGS \
OBJDIR=$OBJDIR \ OBJDIR=$OBJDIR \
BUILD_ROOT= \ BUILD_ROOT= \
TARGET_FILE=$TARGET_FILE DEPEND_FILE=$DEPEND_FILE \ TARGET_FILE=$TARGET_FILE DEPEND_FILE=$DEPEND_FILE \
+53 -1
View File
@@ -26,6 +26,9 @@
# CFLAGS # CFLAGS
SYSTEM_BUILD_CFLAGS="" SYSTEM_BUILD_CFLAGS=""
# CXXFLAGS
SYSTEM_BUILD_CXXFLAGS=""
# LDFLAGS # LDFLAGS
SYSTEM_BUILD_LDFLAGS="" SYSTEM_BUILD_LDFLAGS=""
@@ -33,6 +36,9 @@ SYSTEM_BUILD_LDFLAGS=""
BUILDTOOL_PREPROC_C_NAME="C preprocessor" BUILDTOOL_PREPROC_C_NAME="C preprocessor"
BUILDTOOL_MKDEP_C_NAME="C dependency generator" BUILDTOOL_MKDEP_C_NAME="C dependency generator"
BUILDTOOL_COMPILE_C_NAME="C compiler" BUILDTOOL_COMPILE_C_NAME="C compiler"
BUILDTOOL_PREPROC_CXX_NAME="C++ preprocessor"
BUILDTOOL_MKDEP_CXX_NAME="C++ dependency generator"
BUILDTOOL_COMPILE_CXX_NAME="C++ compiler"
BUILDTOOL_PREPROC_OBJC_NAME="Objective-C preprocessor" BUILDTOOL_PREPROC_OBJC_NAME="Objective-C preprocessor"
BUILDTOOL_MKDEP_OBJC_NAME="Objective-C dependency generator" BUILDTOOL_MKDEP_OBJC_NAME="Objective-C dependency generator"
BUILDTOOL_COMPILE_OBJC_NAME="Objective-C compiler" BUILDTOOL_COMPILE_OBJC_NAME="Objective-C compiler"
@@ -48,6 +54,15 @@ useGccBuildTools() {
BUILDTOOL_COMPILE_C_COMMAND="\$PROG_gcc_FILE -c $EXTRA_PLATFORM_GCC_FLAGS_COMPILE_C" BUILDTOOL_COMPILE_C_COMMAND="\$PROG_gcc_FILE -c $EXTRA_PLATFORM_GCC_FLAGS_COMPILE_C"
BUILDTOOL_COMPILE_C_DEPEND='gcc' BUILDTOOL_COMPILE_C_DEPEND='gcc'
BUILDTOOL_PREPROC_CXX_COMMAND="\$PROG_gcc_FILE -E $EXTRA_PLATFORM_GCC_FLAGS_PREPROC_CXX"
BUILDTOOL_PREPROC_CXX_DEPEND='gcc'
BUILDTOOL_MKDEP_CXX_COMMAND="\$PROG_gcc_FILE -MM $EXTRA_PLATFORM_GCC_FLAGS_MKDEP_CXX"
BUILDTOOL_MKDEP_CXX_DEPEND='gcc'
BUILDTOOL_COMPILE_CXX_COMMAND="\$PROG_gcc_FILE -c $EXTRA_PLATFORM_GCC_FLAGS_COMPILE_CXX"
BUILDTOOL_COMPILE_CXX_DEPEND='gcc'
BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_gcc_FILE -E $EXTRA_PLATFORM_GCC_FLAGS_PREPROC_OBJC" BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_gcc_FILE -E $EXTRA_PLATFORM_GCC_FLAGS_PREPROC_OBJC"
BUILDTOOL_PREPROC_OBJC_DEPEND='gcc' BUILDTOOL_PREPROC_OBJC_DEPEND='gcc'
@@ -63,6 +78,7 @@ useGccBuildTools() {
case "$HOST_SYSTEM" in case "$HOST_SYSTEM" in
Darwin) Darwin)
EXTRA_PLATFORM_GCC_FLAGS_COMPILE_C='-mmacosx-version-min=10.4 -arch i386' EXTRA_PLATFORM_GCC_FLAGS_COMPILE_C='-mmacosx-version-min=10.4 -arch i386'
EXTRA_PLATFORM_GCC_FLAGS_COMPILE_CXX='-mmacosx-version-min=10.4 -arch i386'
EXTRA_PLATFORM_GCC_FLAGS_COMPILE_OBJC='-mmacosx-version-min=10.4 -arch i386' EXTRA_PLATFORM_GCC_FLAGS_COMPILE_OBJC='-mmacosx-version-min=10.4 -arch i386'
EXTRA_PLATFORM_GCC_FLAGS_LINK='-mmacosx-version-min=10.4 -arch i386' EXTRA_PLATFORM_GCC_FLAGS_LINK='-mmacosx-version-min=10.4 -arch i386'
useGccBuildTools useGccBuildTools
@@ -80,6 +96,15 @@ case "$HOST_SYSTEM" in
BUILDTOOL_COMPILE_C_COMMAND="\$PROG_mwccsym2_FILE -c $EXTRA_WINSCW_FLAGS_COMPILE" BUILDTOOL_COMPILE_C_COMMAND="\$PROG_mwccsym2_FILE -c $EXTRA_WINSCW_FLAGS_COMPILE"
BUILDTOOL_COMPILE_C_DEPEND='mwccsym2' BUILDTOOL_COMPILE_C_DEPEND='mwccsym2'
BUILDTOOL_PREPROC_CXX_COMMAND="\$PROG_mwccsym2_FILE -E $EXTRA_WINSCW_FLAGS_COMPILE"
BUILDTOOL_PREPROC_CXX_DEPEND='mwccsym2'
BUILDTOOL_MKDEP_CXX_COMMAND="\$PROG_mwccsym2_FILE -MM -ext .o -gccdep $EXTRA_WINSCW_FLAGS_COMPILE"
BUILDTOOL_MKDEP_CXX_DEPEND='mwccsym2'
BUILDTOOL_COMPILE_CXX_COMMAND="\$PROG_mwccsym2_FILE -c $EXTRA_WINSCW_FLAGS_COMPILE"
BUILDTOOL_COMPILE_CXX_DEPEND='mwccsym2'
BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_mwccsym2_FILE -E" BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_mwccsym2_FILE -E"
BUILDTOOL_PREPROC_OBJC_DEPEND='mwccsym2' BUILDTOOL_PREPROC_OBJC_DEPEND='mwccsym2'
@@ -99,12 +124,21 @@ case "$HOST_SYSTEM" in
BUILDTOOL_PREPROC_C_COMMAND="\$PROG_armcc_FILE -E $EXTRA_ARMV5_FLAGS_COMPILE" BUILDTOOL_PREPROC_C_COMMAND="\$PROG_armcc_FILE -E $EXTRA_ARMV5_FLAGS_COMPILE"
BUILDTOOL_PREPROC_C_DEPEND='armcc' BUILDTOOL_PREPROC_C_DEPEND='armcc'
BUILDTOOL_MKDEP_C_COMMAND="\$PROG_armcc_FILE -MM --unix_depend_format $EXTRA_ARMV5_FLAGS_COMPILE" BUILDTOOL_MKDEP_C_COMMAND="\$PROG_armcc_FILE -MM $EXTRA_ARMV5_FLAGS_COMPILE"
BUILDTOOL_MKDEP_C_DEPEND='armcc' BUILDTOOL_MKDEP_C_DEPEND='armcc'
BUILDTOOL_COMPILE_C_COMMAND="\$PROG_armcc_FILE -c $EXTRA_ARMV5_FLAGS_COMPILE" BUILDTOOL_COMPILE_C_COMMAND="\$PROG_armcc_FILE -c $EXTRA_ARMV5_FLAGS_COMPILE"
BUILDTOOL_COMPILE_C_DEPEND='armcc' BUILDTOOL_COMPILE_C_DEPEND='armcc'
BUILDTOOL_PREPROC_CXX_COMMAND="\$PROG_armcc_FILE -E $EXTRA_ARMV5_FLAGS_COMPILE"
BUILDTOOL_PREPROC_CXX_DEPEND='armcc'
BUILDTOOL_MKDEP_CXX_COMMAND="\$PROG_armcc_FILE -MM $EXTRA_ARMV5_FLAGS_COMPILE"
BUILDTOOL_MKDEP_CXX_DEPEND='armcc'
BUILDTOOL_COMPILE_CXX_COMMAND="\$PROG_armcc_FILE -c $EXTRA_ARMV5_FLAGS_COMPILE"
BUILDTOOL_COMPILE_CXX_DEPEND='armcc'
BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_armcc_FILE -E" BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_armcc_FILE -E"
BUILDTOOL_PREPROC_OBJC_DEPEND='armcc' BUILDTOOL_PREPROC_OBJC_DEPEND='armcc'
@@ -130,6 +164,15 @@ case "$HOST_SYSTEM" in
BUILDTOOL_COMPILE_C_COMMAND="\$PROG_gcce_FILE -c $EXTRA_GCCE_FLAGS_COMPILE" BUILDTOOL_COMPILE_C_COMMAND="\$PROG_gcce_FILE -c $EXTRA_GCCE_FLAGS_COMPILE"
BUILDTOOL_COMPILE_C_DEPEND='gcce' BUILDTOOL_COMPILE_C_DEPEND='gcce'
BUILDTOOL_PREPROC_CXX_COMMAND="\$PROG_gcce_FILE -E $EXTRA_GCCE_FLAGS_COMPILE"
BUILDTOOL_PREPROC_CXX_DEPEND='gcce'
BUILDTOOL_MKDEP_CXX_COMMAND="\$PROG_gcce_FILE -MM $EXTRA_GCCE_FLAGS_COMPILE"
BUILDTOOL_MKDEP_CXX_DEPEND='gcce'
BUILDTOOL_COMPILE_CXX_COMMAND="\$PROG_gcce_FILE -c $EXTRA_GCCE_FLAGS_COMPILE"
BUILDTOOL_COMPILE_CXX_DEPEND='gcce'
BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_gcce_FILE -E" BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_gcce_FILE -E"
BUILDTOOL_PREPROC_OBJC_DEPEND='gcce' BUILDTOOL_PREPROC_OBJC_DEPEND='gcce'
@@ -155,6 +198,15 @@ case "$HOST_SYSTEM" in
BUILDTOOL_COMPILE_C_COMMAND="\$PROG_mingw_gcc_FILE -c $EXTRA_CYGWIN_FLAGS_COMPILE" BUILDTOOL_COMPILE_C_COMMAND="\$PROG_mingw_gcc_FILE -c $EXTRA_CYGWIN_FLAGS_COMPILE"
BUILDTOOL_COMPILE_C_DEPEND='mingw_gcc' BUILDTOOL_COMPILE_C_DEPEND='mingw_gcc'
BUILDTOOL_PREPROC_CXX_COMMAND="\$PROG_mingw_gcc_FILE -E $EXTRA_CYGWIN_FLAGS_COMPILE"
BUILDTOOL_PREPROC_CXX_DEPEND='mingw_gcc'
BUILDTOOL_MKDEP_CXX_COMMAND="\$PROG_mingw_gcc_FILE -MM $EXTRA_CYGWIN_FLAGS_COMPILE"
BUILDTOOL_MKDEP_CXX_DEPEND='mingw_gcc'
BUILDTOOL_COMPILE_CXX_COMMAND="\$PROG_mingw_gcc_FILE -c $EXTRA_CYGWIN_FLAGS_COMPILE"
BUILDTOOL_COMPILE_CXX_DEPEND='mingw_gcc'
BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_mingw_gcc_FILE -E" BUILDTOOL_PREPROC_OBJC_COMMAND="\$PROG_mingw_gcc_FILE -E"
BUILDTOOL_PREPROC_OBJC_DEPEND='mingw_gcc' BUILDTOOL_PREPROC_OBJC_DEPEND='mingw_gcc'
+4
View File
@@ -7,6 +7,10 @@ define act_mkdep_c
$(MKDEP_C) $(CFLAGS) -o "$(@D)/$(<F).o" "$<" --depend "$@" $(MKDEP_C) $(CFLAGS) -o "$(@D)/$(<F).o" "$<" --depend "$@"
endef endef
define act_mkdep_cxx
$(MKDEP_CXX) $(CXXFLAGS) -o "$(@D)/$(<F).o" "$<" --depend "$@"
endef
define act_link define act_link
$(LINK) --create "$@" $^ $(LDFLAGS) $(LINK) --create "$@" $^ $(LDFLAGS)
endef endef
+8
View File
@@ -6,6 +6,10 @@ define act_mkdep_c
$(MKDEP_C) $(CFLAGS) "$<" -MT "$(@D)/$(<F).o" -MF "$@" $(MKDEP_C) $(CFLAGS) "$<" -MT "$(@D)/$(<F).o" -MF "$@"
endef endef
define act_mkdep_cxx
$(MKDEP_CXX) $(CXXFLAGS) "$<" -MT "$(@D)/$(<F).o" -MF "$@"
endef
define act_mkdep_m define act_mkdep_m
$(MKDEP_OBJC) $(CFLAGS) "$<" -MT "$(@D)/$(<F).o" -MF "$@" $(MKDEP_OBJC) $(CFLAGS) "$<" -MT "$(@D)/$(<F).o" -MF "$@"
endef endef
@@ -18,6 +22,10 @@ define act_cc
$(COMPILE_C) -o "$@" $(CFLAGS) "$<" $(COMPILE_C) -o "$@" $(CFLAGS) "$<"
endef endef
define act_cxx
$(COMPILE_CXX) -o "$@" $(CXXFLAGS) "$<"
endef
define act_objcc define act_objcc
$(COMPILE_OBJC) -o "$@" $(CFLAGS) "$<" $(COMPILE_OBJC) -o "$@" $(CFLAGS) "$<"
endef endef
+7
View File
@@ -10,3 +10,10 @@ define act_mkdep_c
@rm -f "$@.tmp" @rm -f "$@.tmp"
endef endef
define act_mkdep_cxx
$(MKDEP_C) $(CXXFLAGS) "$<" -o "$@.tmp"
@echo -n "$(@D)/" > $@
@cat "$@.tmp" >> $@
@rm -f "$@.tmp"
endef