diff --git a/Jamrules b/Jamrules index b3af949e10..474180e835 100644 --- a/Jamrules +++ b/Jamrules @@ -34,16 +34,28 @@ HCACHEFILE = header_cache ; JCACHEFILE = jamfile_cache ; LOCATE on $(HCACHEFILE) $(JCACHEFILE) = $(OBOS_BUILD_DIR) ; -# Include BuildConfig +# Include BuildConfig/Timezones/libgccObjects { local buildConfig = [ GLOB $(OBOS_BUILD_DIR) : BuildConfig ] ; - if ! $(buildConfig) - { - ECHO "No BuildConfig found in $(OBOS_BUILD_DIR)!" ; + local timezones = [ GLOB $(OBOS_BUILD_DIR) : Timezones ] ; + local libgccObjects = [ GLOB $(OBOS_BUILD_DIR) : libgccObjects ] ; + + if ! $(buildConfig) { + ECHO "No `BuildConfig' found in $(OBOS_BUILD_DIR)!" ; EXIT "Run ./configure in the source tree's root directory first!" ; } + if ! ( $(timezones) && $(libgccObjects) ) { + ECHO "No `Timezones' or `libgccObjects' found in $(OBOS_BUILD_DIR)!" ; + EXIT "Please run ./configure in the source tree's root directory again!" ; + } + LOCATE on BuildConfig = $(OBOS_BUILD_DIR) ; + LOCATE on Timezones = $(OBOS_BUILD_DIR) ; + LOCATE on libgccObjects = $(OBOS_BUILD_DIR) ; + include BuildConfig ; + include Timezones ; + include libgccObjects ; } # analyze GCC version diff --git a/configure b/configure index 8e961a9fd5..4cdd6ae638 100755 --- a/configure +++ b/configure @@ -123,21 +123,35 @@ PLATFORM_LINKLIBS ?= ${PLATFORM_LINKLIBS} ; PLATFORM_HEADERS ?= ${PLATFORM_HEADERS} ; GCC_RAW_VERSION ?= ${gcc_version} ; LIBGCC_DIR ?= ${LIBGCC_DIR} ; -LIBGCC_OBJECTS ?= ${LIBGCC_OBJECTS} ; BOCHS_DEBUG_HACK ?= ${bochs_debug} ; INCLUDE_GPL_ADDONS ?= ${include_gpl_addons} ; TARGET_PLATFORM ?= ${target} ; EOF +# Libgcc.a objects + +cat << EOF > build/libgccObjects +# libgcc.a objects to be linked against libroot.so +# Note: This file has been automatically generated by configure. + +LIBGCC_OBJECTS ?= ${LIBGCC_OBJECTS} ; +EOF + # Generate Timezones binaries bindings +cat << EOF > build/Timezones +# Timezones used for the build +# Note: This file has been automatically generated by configure. + +EOF + timezones=`echo src/data/etc/timezones/* | sed -e s@src/data/etc/timezones/CVS@@` for f in ${timezones}; do TZOBJECTS=`gawk '/^Zone/ { print $2 } /^Link/ { print $3 } ' $f ` -cat << EOF >> build/BuildConfig +cat << EOF >> build/Timezones TZ_OBJECTS on ${f##src/data/etc/timezones/} ?= $TZOBJECTS ; EOF done