From a66c32dde54a61f6b5a3be37728cda8e36341ea8 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 20 May 2007 17:50:11 +0000 Subject: [PATCH] Introduced new configure option --distro-compatibility to specify the compatibility relation to the official Haiku distribution. "official" is for the official Haiku distribution itself, "compatible" for Haiku Compatible (tm) distros, and "default" for all others (the default value for the option). The build system variable HAIKU_DISTRO_COMPATIBILITY is defined accordingly, and one of the HAIKU_DISTRO_COMPATIBILITY_{OFFICIAL,COMPATIBLE,DEFAULT} macros is defined for source code and rdefs. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21177 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/BuildSetup | 10 ++++++ configure | 77 ++++++++++++++++++++++++++++---------------- 2 files changed, 59 insertions(+), 28 deletions(-) diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup index 568fbc94a5..6c797b74c5 100644 --- a/build/jam/BuildSetup +++ b/build/jam/BuildSetup @@ -102,6 +102,16 @@ HAIKU_KERNEL_CCFLAGS = $(HAIKU_GCC_BASE_FLAGS) ; HAIKU_KERNEL_C++FLAGS = $(HAIKU_GCC_BASE_FLAGS) ; HAIKU_DEFINES = __HAIKU__ ; +# distro compatibility level defines +HAIKU_DISTRO_COMPATIBILITY ?= "default" ; +switch $(HAIKU_DISTRO_COMPATIBILITY) { + case official : HAIKU_DEFINES += HAIKU_DISTRO_COMPATIBILITY_OFFICIAL ; + case compatible : HAIKU_DEFINES += HAIKU_DISTRO_COMPATIBILITY_COMPATIBLE ; + case "default" : HAIKU_DEFINES += HAIKU_DISTRO_COMPATIBILITY_DEFAULT ; + case * : Exit "Invalid value for HAIKU_DISTRO_COMPATIBILITY:" + $(HAIKU_DISTRO_COMPATIBILITY) ; +} + # analyze the gcc machine spec to determine HAIKU_CPU switch $(HAIKU_GCC_MACHINE) { case i386-* : HAIKU_CPU = x86 ; diff --git a/configure b/configure index 5256f2fb95..cc2a3e658e 100755 --- a/configure +++ b/configure @@ -33,6 +33,14 @@ options: compilation tools are located, plus the platform prefix, e.g. "/path/to/tools/i586-pc-beos-". This overrides the HAIKU_* tool variables. + --distro-compatibility + The distribution's level of compatibility with + the official Haiku distribution. The generated + files will contain the respective trademarks + accordingly. + official -- the official Haiku distribution. + compatible -- a Haiku Compatible (tm) distro. + default -- any other distro (default value). --help Prints out this help. --include-gpl-addons Include GPL licensed add-ons. --target=TARGET Select build target platform. [default=${target}] @@ -209,6 +217,7 @@ haikuCxxHeadersDir= hostGCCVersion=`gcc -dumpversion` bochs_debug=0 include_gpl_addons=0 +distroCompatibility=default target=haiku use_gcc_pipe=0 use_xattr=0 @@ -251,6 +260,17 @@ while [ $# -gt 0 ] ; do --cross-tools-prefix) assertparam "$1" $#; crossToolsPrefix=$2; shift 2;; --help | -h) usage; exit 0;; --include-gpl-addons) include_gpl_addons=1; shift 1;; + --distro-compatibility) + assertparam "$1" $#; distroCompatibility=$2; + case "$distroCompatibility" in + official) ;; + compatible) ;; + default) ;; + *) echo "Invalid distro compatibility" \ + "level: $distroCompatibility" + exit 1;; + esac + shift 2;; --target=*) target=`echo $1 | cut -d'=' -f2-`; shift 1;; --use-gcc-pipe) use_gcc_pipe=1; shift 1;; --use-xattr) use_xattr=1; shift 1;; @@ -322,41 +342,42 @@ cat << EOF > "$buildOutputDir/BuildConfig" # BuildConfig # Note: This file has been automatically generated by configure. -TARGET_PLATFORM ?= "${target}" ; -HOST_PLATFORM ?= "${buildPlatform}" ; +TARGET_PLATFORM ?= "${target}" ; +HOST_PLATFORM ?= "${buildPlatform}" ; -BOCHS_DEBUG_HACK ?= "${bochs_debug}" ; -INCLUDE_GPL_ADDONS ?= "${include_gpl_addons}" ; -HAIKU_USE_GCC_PIPE ?= "${use_gcc_pipe}" ; -HAIKU_HOST_USE_XATTR ?= "${use_xattr}" ; +BOCHS_DEBUG_HACK ?= "${bochs_debug}" ; +INCLUDE_GPL_ADDONS ?= "${include_gpl_addons}" ; +HAIKU_DISTRO_COMPATIBILITY ?= "${distroCompatibility}" ; +HAIKU_USE_GCC_PIPE ?= "${use_gcc_pipe}" ; +HAIKU_HOST_USE_XATTR ?= "${use_xattr}" ; -HAIKU_GCC_RAW_VERSION ?= ${haikuGCCVersion} ; -HAIKU_GCC_MACHINE ?= ${haikuGCCMachine} ; -HAIKU_GCC_LIB_DIR ?= ${HAIKU_GCC_LIB_DIR} ; -HAIKU_GCC_HEADERS_DIR ?= ${HAIKU_GCC_HEADERS_DIR} ; -HAIKU_GCC_LIBGCC ?= ${HAIKU_GCC_LIBGCC} ; +HAIKU_GCC_RAW_VERSION ?= ${haikuGCCVersion} ; +HAIKU_GCC_MACHINE ?= ${haikuGCCMachine} ; +HAIKU_GCC_LIB_DIR ?= ${HAIKU_GCC_LIB_DIR} ; +HAIKU_GCC_HEADERS_DIR ?= ${HAIKU_GCC_HEADERS_DIR} ; +HAIKU_GCC_LIBGCC ?= ${HAIKU_GCC_LIBGCC} ; -HAIKU_STATIC_LIBSTDC++ ?= ${haikuStaticLibStdCxx} ; -HAIKU_SHARED_LIBSTDC++ ?= ${haikuSharedLibStdCxx} ; -HAIKU_STATIC_LIBSUPC++ ?= ${haikuStaticLibSupCxx} ; -HAIKU_SHARED_LIBSUPC++ ?= ${haikuSharedLibSupCxx} ; -HAIKU_C++_HEADERS_DIR ?= ${haikuCxxHeadersDir} ; +HAIKU_STATIC_LIBSTDC++ ?= ${haikuStaticLibStdCxx} ; +HAIKU_SHARED_LIBSTDC++ ?= ${haikuSharedLibStdCxx} ; +HAIKU_STATIC_LIBSUPC++ ?= ${haikuStaticLibSupCxx} ; +HAIKU_SHARED_LIBSUPC++ ?= ${haikuSharedLibSupCxx} ; +HAIKU_C++_HEADERS_DIR ?= ${haikuCxxHeadersDir} ; HAIKU_BUILD_ATTRIBUTES_DIR ?= ${buildAttributesDir} ; -HAIKU_AR ?= ${HAIKU_AR} ; -HAIKU_CC ?= ${HAIKU_CC} ; -HAIKU_LD ?= ${HAIKU_LD} ; -HAIKU_OBJCOPY ?= ${HAIKU_OBJCOPY} ; -HAIKU_RANLIB ?= ${HAIKU_RANLIB} ; -HAIKU_CPPFLAGS ?= ${HAIKU_CPPFLAGS} ; -HAIKU_CCFLAGS ?= ${HAIKU_CCFLAGS} ; -HAIKU_CXXFLAGS ?= ${HAIKU_CXXFLAGS} ; -HAIKU_LDFLAGS ?= ${HAIKU_LDFLAGS} ; -HAIKU_ARFLAGS ?= ${HAIKU_ARFLAGS} ; -HAIKU_UNARFLAGS ?= ${HAIKU_UNARFLAGS} ; +HAIKU_AR ?= ${HAIKU_AR} ; +HAIKU_CC ?= ${HAIKU_CC} ; +HAIKU_LD ?= ${HAIKU_LD} ; +HAIKU_OBJCOPY ?= ${HAIKU_OBJCOPY} ; +HAIKU_RANLIB ?= ${HAIKU_RANLIB} ; +HAIKU_CPPFLAGS ?= ${HAIKU_CPPFLAGS} ; +HAIKU_CCFLAGS ?= ${HAIKU_CCFLAGS} ; +HAIKU_CXXFLAGS ?= ${HAIKU_CXXFLAGS} ; +HAIKU_LDFLAGS ?= ${HAIKU_LDFLAGS} ; +HAIKU_ARFLAGS ?= ${HAIKU_ARFLAGS} ; +HAIKU_UNARFLAGS ?= ${HAIKU_UNARFLAGS} ; -HOST_GCC_RAW_VERSION ?= ${hostGCCVersion} ; +HOST_GCC_RAW_VERSION ?= ${hostGCCVersion} ; EOF