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