Author: cfinck
Date: Tue Jan 26 00:26:50 2010
New Revision: 45256
URL: http://svn.reactos.org/svn/reactos?rev=45256&view=rev
Log:
Add another parameter to the Buildtoolchain script to automatically create the "mingw_runtime_dev" package from the "mingw_runtime" and "w32api" packages.
This one is needed for RosBE-Unix, because this platform has no Win32 host compiler, so all Win32 libs need to be precompiled. We don't want to use the MinGW-provided dev package, since we add our "ofmt_stub.a" to this package.
Modified:
trunk/tools/RosBE/RosBE-Windows/Buildtoolchain/rosbe_1.5/buildtoolchain.sh
Modified: trunk/tools/RosBE/RosBE-Windows/Buildtoolchain/rosbe_1.5/buildtoolchain.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Buildtoo…
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Buildtoolchain/rosbe_1.5/buildtoolchain.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Windows/Buildtoolchain/rosbe_1.5/buildtoolchain.sh [iso-8859-1] Tue Jan 26 00:26:50 2010
@@ -61,7 +61,7 @@
# We don't want too less parameters
if [ "$2" == "" ]; then
- echo -n "Syntax: ./buildtoolchain.sh <sources> <workdir>"
+ echo -n "Syntax: ./buildtoolchain.sh <sources> <workdir> [make_dev]"
for module in $MODULES; do
echo -n " [$module]"
@@ -72,6 +72,9 @@
echo " sources - Path to the directory containing RosBE-Unix toolchain packages (.tar.bz2 files)"
echo " workdir - Path to the directory used for building. Will contain the final executables and"
echo " temporary files."
+ echo " make_dev - Pass 1 here if you want to build the \"mingw_runtime_dev\" package required for"
+ echo " RosBE-Unix. All following options will be ignored in this case."
+ echo " Otherwise pass 0, which is the default option."
echo
echo "The rest of the arguments are optional. You specify them if you want to prevent a component"
echo "from being (re)built. Do this by passing 0 as the argument of the appropriate component."
@@ -107,16 +110,41 @@
rs_prefixdir="$rs_workdir/mingw"
rs_supportprefixdir="$rs_workdir/support"
-# Set the rs_process_* variables based on the parameters
-for module in $MODULES; do
- if [ "$1" = "0" ]; then
+# Find out if we just want to build the "mingw_runtime_dev" package
+if [ "$1" = "1" ]; then
+ make_dev_package=true
+else
+ make_dev_package=false
+fi
+
+shift
+
+if $make_dev_package; then
+ # Disable processing all modules
+ for module in $MODULES; do
eval "rs_process_$module=false"
- else
- eval "rs_process_$module=true"
- fi
-
- shift
-done
+ done
+
+ # Only process w32api and mingw_runtime
+ rs_process_w32api=true
+ rs_process_mingw_runtime=true
+
+ # Set a prefix different to the one used for w32api, so that we can later package the built files
+ mingw_runtime_prefix="$rs_prefixdir/mingw_runtime_dev"
+else
+ # Set the rs_process_* variables based on the parameters
+ for module in $MODULES; do
+ if [ "$1" = "0" ]; then
+ eval "rs_process_$module=false"
+ else
+ eval "rs_process_$module=true"
+ fi
+
+ shift
+ done
+
+ mingw_runtime_prefix="$rs_prefixdir/$rs_target"
+fi
rs_mkdir_empty "$SYSHEADERDIR"
@@ -126,6 +154,7 @@
rs_mkdir_if_not_exists "$rs_prefixdir/$rs_target"
rs_mkdir_if_not_exists "$rs_supportprefixdir"
+rs_mkdir_if_not_exists "$mingw_runtime_prefix"
rs_extract_module "w32api" "$rs_prefixdir/$rs_target"
@@ -136,7 +165,7 @@
export CFLAGS="$rs_target_cflags"
export C_INCLUDE_PATH="$rs_prefixdir/$rs_target/include"
- rs_do_command ../mingw_runtime/configure --prefix="$rs_prefixdir/$rs_target" --host="$rs_target" --build="$rs_target" --disable-werror
+ rs_do_command ../mingw_runtime/configure --prefix="$mingw_runtime_prefix" --host="$rs_target" --build="$rs_target" --disable-werror
rs_do_command $rs_makecmd -j $rs_cpucount
rs_do_command $rs_makecmd install
@@ -145,12 +174,10 @@
# As we use MinGW's libmingwex.a, but our own libmsvcrt.a, linking to MinGW's libmingwex.a will fail by default. Therefore we have to create an archive for the compiled
# _get_output_format stub, copy it to our "lib" directory and include it when linking to libmingwex.a.
ar r ofmt_stub.a ofmt_stub.o >& /dev/null
- cp ofmt_stub.a "$rs_prefixdir/$rs_target/lib"
+ cp ofmt_stub.a "$mingw_runtime_prefix/lib"
rs_clean_module "mingw_runtime"
- # The "mingw_runtime_dev" package needed for RosBE-Unix is manually created from the result of this build.
-
unset CFLAGS
unset C_INCLUDE_PATH
fi
@@ -223,5 +250,11 @@
find -name "*.o" -type f -exec strip -d {} ";"
##### END almost shared buildtoolchain/RosBE-Unix building part ###############
+# Create the package out of the built files if we want to build the "mingw_runtime_dev" package
+if $make_dev_package; then
+ echo "Creating the \"mingw_runtime_dev.tar.bz2\" archive..."
+ cd "$mingw_runtime_prefix"
+ tar -cjf "mingw_runtime_dev.tar.bz2" include lib
+fi
echo "Finished!"