Author: cfinck
Date: Wed Feb 11 08:57:00 2009
New Revision: 39551
URL: http://svn.reactos.org/svn/reactos?rev=39551&view=rev
Log:
- Move all current RosBE-Unix stuff into a "Base-i386/Root" directory for making other packages possible for real
- Name the Builder script accordingly
- Fix double line breaks at the end of scripts
- Fix buildtime.c coding style
Added:
trunk/tools/RosBE/RosBE-Unix/Base-i386/ (with props)
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/ (with props)
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/README (props changed)
- copied unchanged from r39550, trunk/tools/RosBE/RosBE-Unix/README
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/README.odt (props changed)
- copied unchanged from r39550, trunk/tools/RosBE/RosBE-Unix/README.odt
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/RosBE-Builder.sh (contents, props changed)
- copied, changed from r39550, trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/ (props changed)
- copied from r39550, trunk/tools/RosBE/RosBE-Unix/scripts/
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/sources/ (props changed)
- copied from r39550, trunk/tools/RosBE/RosBE-Unix/sources/
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/tools/ (props changed)
- copied from r39550, trunk/tools/RosBE/RosBE-Unix/tools/
Removed:
trunk/tools/RosBE/RosBE-Unix/README
trunk/tools/RosBE/RosBE-Unix/README.odt
trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh
trunk/tools/RosBE/RosBE-Unix/scripts/
trunk/tools/RosBE/RosBE-Unix/sources/
trunk/tools/RosBE/RosBE-Unix/tools/
Modified:
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/RosBE-rc
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/RosBE.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/basedir.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build-multi.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build-shared.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/charch.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/chdefdir.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/clean.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/createshortcut.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/help.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/i386/clean.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/i386/version.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/rosbelibrary.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/scut.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/version.sh
trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/tools/buildtime.c
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Wed Feb 11 08:57:00 2009
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/
------------------------------------------------------------------------------
bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Wed Feb 11 08:57:00 2009
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/
------------------------------------------------------------------------------
bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/
------------------------------------------------------------------------------
bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/README
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/README
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/README.odt
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/README.odt
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Copied: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/RosBE-Builder.sh (from r39550, trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh)
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/RosBE-Builder.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# ReactOS Build Environment for Unix-based Operating Systems - Basic Builder Tool
+# ReactOS Build Environment for Unix-based Operating Systems - Builder Tool for the Base package
# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
# partially based on the BuildMingwCross script (http://www.mingw.org/MinGWiki/index.php/BuildMingwCross)
#
@@ -23,7 +23,7 @@
echo "*******************************************************************************"
echo "* ReactOS Build Environment for Unix-based Operating Systems *"
-echo "* Basic Builder Tool *"
+echo "* Builder Tool for the Base package *"
echo "* by Colin Finck <mail(a)colinfinck.de> *"
echo "* *"
echo "* Version $ROSBE_VERSION *"
@@ -446,4 +446,3 @@
echo
return 0
-
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/RosBE-Builder.sh
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/RosBE-Builder.sh
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/
------------------------------------------------------------------------------
svn:mergeinfo =
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/RosBE-rc
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/RosBE-rc [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/RosBE-rc [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -15,4 +15,3 @@
# Change the current directory to the ReactOS source directory
basedir
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/RosBE.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/RosBE.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/RosBE.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -61,4 +61,3 @@
echo
bash --rcfile "$_ROSBE_ROSSCRIPTDIR/RosBE-rc"
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/basedir.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/basedir.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/basedir.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -8,4 +8,3 @@
# An alias just to "cd $_ROSBE_ROSSOURCEDIR" won't work as bash only expands when executing the shell and then never again
cd "$_ROSBE_ROSSOURCEDIR"
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build-multi.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build-multi.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build-multi.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -10,4 +10,3 @@
CPUCOUNT=`cpucount -x1`
buildtime make -j $CPUCOUNT $*
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build-shared.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build-shared.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build-shared.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -16,4 +16,3 @@
exit 1
fi
fi
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/build.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -9,4 +9,3 @@
source "$_ROSBE_ROSSCRIPTDIR/build-shared.sh"
buildtime make $*
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/charch.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/charch.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/charch.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -22,4 +22,3 @@
# Display tool versions
source "$_ROSBE_ROSSCRIPTDIR/$_ROSBE_ARCH/version.sh"
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/chdefdir.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/chdefdir.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/chdefdir.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -15,4 +15,3 @@
export _ROSBE_ROSSOURCEDIR="$1"
basedir
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/clean.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/clean.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/clean.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -9,4 +9,3 @@
pushd "$_ROSBE_ROSSOURCEDIR" >& /dev/null
source "$_ROSBE_ROSSCRIPTDIR/$_ROSBE_ARCH/clean.sh"
popd >& /dev/null
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/createshortcut.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/createshortcut.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/createshortcut.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -77,4 +77,3 @@
echo "Terminal=true" >> "$shortcut"
greenmsg "OK"
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/help.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/help.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/help.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -26,4 +26,3 @@
echo " version - Show information about the tool versions."
echo
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/i386/clean.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/i386/clean.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/i386/clean.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -16,4 +16,3 @@
else
echo "ERROR: There is no i386 compiler output to clean."
fi
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/i386/version.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/i386/version.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/i386/version.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -7,4 +7,3 @@
mingw32-gcc -v 2>&1 | grep "gcc version"
nasm -v
mingw32-ld -v
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/rosbelibrary.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/rosbelibrary.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/rosbelibrary.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -185,4 +185,3 @@
fi
fi
}
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/scut.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/scut.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/scut.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -23,4 +23,3 @@
;;
esac
-
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/version.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/version.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/scripts/version.sh [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -13,4 +13,3 @@
# Display tool versions
source "$_ROSBE_ROSSCRIPTDIR/$_ROSBE_ARCH/version.sh"
-
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/sources/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Feb 11 08:57:00 2009
@@ -1,0 +1,1 @@
+*.tar.bz2
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/sources/
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/tools/
------------------------------------------------------------------------------
svn:mergeinfo =
Modified: trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/tools/buildtime.c
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/Base-i386/R…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/tools/buildtime.c [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/Base-i386/Root/tools/buildtime.c [iso-8859-1] Wed Feb 11 08:57:00 2009
@@ -11,8 +11,7 @@
#include <time.h>
int
-main(int argc,
- char* argv[])
+main(int argc, char* argv[])
{
char* CommandLine;
double TotalTime;
@@ -25,55 +24,57 @@
time_t StartTime;
time_t FinishTime;
- // Do we have command line arguments?
- if( argc <= 1 )
+ /* Do we have command line arguments? */
+ if(argc <= 1)
{
- fprintf( stderr, "buildtime: No command line arguments!\n" );
+ fprintf(stderr, "buildtime: No command line arguments!\n");
return 1;
}
- // First compute the memory size to allocate
- for( i = 1; i < argc; i++ )
- // Every argument is enclosed between quotes and followed by a space.
- // The last argument is followed by a terminating null character instead of a space.
- CommandLineLength += 3 + strlen( argv[i] );
+ /* First compute the memory size to allocate */
+ for(i = 1; i < argc; i++)
+ {
+ /* Every argument is enclosed between quotes and followed by a space.
+ The last argument is followed by a terminating null character instead of a space. */
+ CommandLineLength += 3 + strlen(argv[i]);
+ }
- // Now allocate the needed memory
- CommandLine = malloc( CommandLineLength + 1 );
- if( !CommandLine )
+ /* Now allocate the needed memory */
+ CommandLine = malloc(CommandLineLength + 1);
+ if(!CommandLine)
{
- fprintf( stderr, "buildtime: Unable to allocate memory!\n" );
+ fprintf(stderr, "buildtime: Unable to allocate memory!\n");
return 1;
}
- memset( CommandLine, 0, CommandLineLength + 1 );
+ memset(CommandLine, 0, CommandLineLength + 1);
- // Put the command line into the variable
- for( i = 1; i < argc; i++ )
+ /* Put the command line into the variable */
+ for(i = 1; i < argc; i++)
{
- strcat( CommandLine, "\"" );
- strcat( CommandLine, argv[i] );
- strcat( CommandLine, "\" " );
+ strcat(CommandLine, "\"");
+ strcat(CommandLine, argv[i]);
+ strcat(CommandLine, "\" ");
}
CommandLine[CommandLineLength] = 0;
- // Get the timestamps and execute the command line
- time( &StartTime );
- Ret = system( CommandLine );
- time( &FinishTime );
+ /* Get the timestamps and execute the command line */
+ time(&StartTime);
+ Ret = system(CommandLine);
+ time(&FinishTime);
- // Compute the needed time and print it
- TotalTime = difftime( FinishTime, StartTime );
+ /* Compute the needed time and print it */
+ TotalTime = difftime(FinishTime, StartTime);
Second = (int)TotalTime % 60;
TotalTime = TotalTime / 60;
Minute = (int)TotalTime % 60;
Hour = TotalTime / 60;
- printf( "\nTotal Build Time: %02d:%02d:%02d\n", Hour, Minute, Second );
+ printf("\nTotal Build Time: %02d:%02d:%02d\n", Hour, Minute, Second);
- // Final actions
- free( CommandLine );
+ /* Final actions */
+ free(CommandLine);
return Ret;
}
Removed: trunk/tools/RosBE/RosBE-Unix/README
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/README?rev=…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/README [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/README (removed)
@@ -1,170 +1,0 @@
- ReactOS Build Environment
- Version 1.4 for Unix-based operating systems
- Base package and i386 build tools
- by Colin Finck (mail(a)colinfinck.de)
-
-Introduction
--------------
- The ReactOS Build Environment ("RosBE") is a Build Environment for building
-ReactOS. This version is targeted at Unix-based operating systems such as
-Linux or FreeBSD.
- The Installation process of the Build Environment is divided into two parts.
- First a script builds the needed compiler tools for your operating system
-and installs them. Therefore the "gcc" compiler for your system and some
-other build tools have to be installed.
- Then another script creates a shortcut for you. This shortcut opens a
-Terminal window and prepares all environment settings for building ReactOS.
-
-
-Needed Applications
---------------------
- Make sure that the following applications are installed on your system.
-They are needed to build the compiler tools. The "RosBE-Builder.sh" script
-automatically checks for them:
-
- * GNU Bash
- The executable file and the package name are often called "bash".
- All scripts are designed to work only under the Bash shell. Please also
- make sure that the file "/bin/bash" exists. For example FreeBSD usually
- installs Bash into another directory, so you have to create a symbolic
- link "/bin/bash" to the executable file.
-
- * GNU Bison
- The executable file and the package name are often called "bison".
-
- * Flex
- The executable file and the package name are often called "flex".
-
- * GNU GCC
- You need the GCC compiler, which is suitable for your system. The
- executable file and the package name are often called "gcc".
- Your GCC compiler needs to be able to compile both C and C++ sources.
- Therefore the "g++" module also has to be installed.
-
- * Grep
- The executable file and the package name are often called "grep".
-
- * GNU Make
- Make sure that you have the GNU version of "make" installed. For example
- FreeBSD uses another version. The executable file and the package name
- are often called "make" or "gmake".
-
- * GNU Makeinfo
- The executable file is often called "makeinfo". Usually this file is in a
- package called "texinfo".
-
-
-Preparing the installation
----------------------------
- Under some operating systems, you need to perform additional steps before
-you can install the Build Environment. This section lists them.
-
- * FreeBSD
- - You have to create a symbolic link "/bin/bash", because FreeBSD
- installs Bash to "/usr/local/bin/bash". Simply execute the following
- command for doing this:
-
- ln -s /usr/local/bin/bash /bin/bash
-
-
-Installation
--------------
- The Installation of RosBE is very simple, since there are scripts, which do
-most of the work for you. Follow these steps to compile and install RosBE for
-your used operating system:
-
- 1. Open a Terminal window and type "su" to become "root" user.
- NOTE: Becoming a root user is only required for installing RosBE into the
- default directory ("/usr/local/RosBE"). If you want to install it into a
- personal directory, you don't need superuser privileges.
- 2. Call the "RosBE-Builder.sh" script in the directory of the unpacked
- RosBE files.
- 3. Follow the directions on the screen until the script ends with "Finished
- successfully!"
- 4. Type "exit" to switch back to your normal user account. Then call the
- "createshortcut.sh" script in the installation directory (usually this
- is "/usr/local/RosBE").
- 5. Follow the directions on the screen to create a shortcut for the Build
- Environment.
-
- After that you can easily open a Build Environment for ReactOS by opening
-the shortcut.
-
-
-Version Information
---------------------
- This version of RosBE for Unix-based operating systems uses the following
-components:
-
- * GNU Binutils v2.19.51-20090127 (snapshot)
- compiled for i386-pc-mingw32
- patched with:
- - binutils-2.18.50.10-15-2007-snapshot-hpoussin.patch
- (http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Patches/binutils-2.18.…)
-
- * GCC, The GNU Compiler Collection v4.1.3-20071015 (snapshot)
- compiled for i386-pc-mingw32
- patched with:
- - GCC-v4.1-r129382-prerelease-w3seek.patch
- (http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Patches/GCC-v4.1-r1293…)
- - GCC-v4.1-r129382-virtual-stdcall-bug27067.patch
- (http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Patches/GCC-v4.1-r1293…)
- - GCC-v4.1-r129490-CreateFileMapping-Vista-bug30335.patch
- (http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Patches/GCC-v4.1-r1294…)
-
- NOTE: This GCC version only supports C and C++
-
- * Make 20071219 (CVS version)
- * MinGW-Runtime 3.15.2
- * NASM, The Netwide assembler v2.05.01
- * W32api 3.10
-
-
-Tested Operating Systems
--------------------------
- The Build Environment was designed to work on all Unix-based operating
-systems. Nevertheless, it is impossible to test it on all possible systems out
-there.
- The current primary development and test system is Ubuntu 8.10. But users
-also reported that it works well under other Linux systems such as Fedora or
-openSUSE and Unix derivates like FreeBSD or Mac OS X.
- You should be able to compile the build tools on both i386 (32-bit) and
-x86_64 (64-bit) systems.
-
-
-Websites
----------
-MinGW - Minimalist GNU for Windows
-http://www.mingw.org
-
-Binutils, the Binary Tools Collection
-http://www.gnu.org/software/binutils
-
-GCC, the GNU Compiler Collection
-http://www.gcc.org
-
-Make, the Makefile processor
-http://www.gnu.org/software/make
-
-NASM, the Netwide Assembler
-http://nasm.sourceforge.net
-
-
-Credits
---------
-Colin Finck (mail(a)colinfinck.de)
-
-Thanks go also to the members of the RosBE-Windows team, namely:
-Daniel Reimer (reimer.daniel(a)freenet.de)
-Peter Ward (dralnix(a)gmail.com)
-Pierre Schweitzer (heis_spiter(a)hotmail.com)
-
- Special thanks to ROSFan, who created the nice ReactOS Build Environment
-Logo.
- Special thanks also goes out to all those who provide so much help by
-testing out new versions, you know who you are. Without them the RosBE
-would not be what it is.
- Credits go to Gregor Anich who created the original ReactOS Build
-Environment v0.2-3.4.4.
-
-Inspired by Dazzle from TinyKRNL (http://tinykrnl.org/).
Removed: trunk/tools/RosBE/RosBE-Unix/README.odt
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/README.odt?…
==============================================================================
Binary file - no diff available.
Removed: trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/RosBE-Build…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh (removed)
@@ -1,449 +1,0 @@
-#!/bin/bash
-#
-# ReactOS Build Environment for Unix-based Operating Systems - Basic Builder Tool
-# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
-# partially based on the BuildMingwCross script (http://www.mingw.org/MinGWiki/index.php/BuildMingwCross)
-#
-# Released under GNU GPL v2 or any later version.
-
-# Constants
-ROSBE_VERSION="1.4"
-TARGET_ARCH="i386"
-KNOWN_ROSBE_VERSIONS="0.3.6 1.1 1.4"
-DEFAULT_INSTALL_DIR="/usr/local/RosBE"
-NEEDED_TOOLS="bison flex gcc g++ grep makeinfo" # GNU Make has a special check
-
-# Get the absolute path to the script directory
-cd `dirname $0`
-SCRIPTDIR="$PWD"
-SOURCEDIR="$SCRIPTDIR/sources"
-
-source "$SCRIPTDIR/scripts/rosbelibrary.sh"
-
-
-echo "*******************************************************************************"
-echo "* ReactOS Build Environment for Unix-based Operating Systems *"
-echo "* Basic Builder Tool *"
-echo "* by Colin Finck <mail(a)colinfinck.de> *"
-echo "* *"
-echo "* Version $ROSBE_VERSION *"
-echo "*******************************************************************************"
-
-echo
-echo "This script compiles and installs a complete Build Environment for building ReactOS."
-echo
-
-setup_check_requirements
-
-# Select the installation directory
-boldmsg "Installation Directory"
-
-echo "In which directory do you want to install it?"
-echo "Enter the path to the directory here or simply press ENTER to install it into the default directory."
-
-# RosBE-Unix 1.4 switched from /usr/RosBE to /usr/local/RosBE, show a message for the people who might want to update
-if [ -f "/usr/RosBE/RosBE-Version" ]; then
- echo
- redmsg "Warning: " "-n"
- echo "The default installation path /usr/RosBE was changed to /usr/local/RosBE starting with version 1.4."
- echo "If you want to update a previous installation, enter /usr/RosBE here."
-fi
-
-createdir=false
-installdir=""
-update=false
-
-while [ "$installdir" = "" ]; do
- read -p "[$DEFAULT_INSTALL_DIR] " installdir
- echo
-
- if [ "$installdir" = "" ]; then
- installdir=$DEFAULT_INSTALL_DIR
- fi
-
- # Make sure we have the absolute path to the installation directory
- installdir=`eval echo $installdir`
-
- # Check if the installation directory already exists
- if [ -f "$installdir" ]; then
- echo "The directory \"$installdir\" is a file! Please enter another directory!"
- echo
- installdir=""
-
- elif [ -d "$installdir" ]; then
- # Check if the directory is empty
- if [ ! "`ls $installdir`" = "" ]; then
- if [ -f "$installdir/RosBE-Version" ]; then
- # Allow the user to update an already installed RosBE version
- choice=""
- installed_version=`cat "$installdir/RosBE-Version"`
-
- for known_version in $KNOWN_ROSBE_VERSIONS; do
- if [ "$known_version" = "$installed_version" ]; then
- if [ "$installed_version" = "$ROSBE_VERSION" ]; then
- echo "The current version of the Build Environment is already installed in this directory."
- echo "Please choose one of the following options:"
- echo
- echo " (R)einstall all components of the Build Environment"
- echo " (C)hoose a different installation directory"
- echo
-
- showchoice "R" "r R c C"
- else
- echo "An older version of the Build Environment has been found in this directory."
- echo "Please choose one of the following options:"
- echo
- echo " (U)pdate the existing Build Environment"
- echo " (R)einstall all new components of the Build Environment"
- echo " (C)hoose a different installation directory"
- echo
-
- showchoice "U" "u U r R c C"
- fi
-
- echo
- break
- fi
- done
-
- if [ "$choice" = "U" ] || [ "$choice" = "u" ]; then
- update=true
- elif [ "$choice" = "C" ] || [ "$choice" = "c" ]; then
- echo "Please enter another directory!"
- installdir=""
- fi
- else
- echo "The directory \"$installdir\" is not empty. Do you really want to continue? (yes/no)"
- read -p "[no] " answer
- echo
-
- if [ "$answer" != "yes" ]; then
- echo "Please enter another directory!"
- installdir=""
- fi
- fi
- fi
-
- else
- createdir=true
- echo "The directory \"$installdir\" does not exist. The installation script will create it for you."
- echo
- fi
-done
-
-# Ready to start
-boldmsg "Ready to start"
-
-echo "Ready to build and install the ReactOS Build Environment."
-echo "Press any key to continue or Ctrl+C to exit."
-read
-
-if $update; then
- setvalues=false
-
- process_cpucount=false
- process_mingwruntime=false
- process_w32api=false
- process_binutils=false
- process_gcc=false
- process_make=false
- process_nasm=false
- process_buildtime=false
- process_scut=false
-
- # Logic behind this update part:
- # - KNOWN_ROSBE_VERSIONS contains all versions from the oldest to the newest one (in this order!)
- # - setvalues will be set to true, when the iterator reaches the installed version
- # - Then the processing settings of the installed and the later versions will be applied.
- # (i.e. if gcc changed from 0.3.7 to 0.3.8, but not from 0.3.6 to 0.3.7, the gcc build will correctly be reprocessed
- # if the user has an installed RosBE 0.3.6 and wants to update to 0.3.8)
- for known_version in $KNOWN_ROSBE_VERSIONS; do
- if [ "$known_version" = "$installed_version" ]; then
- setvalues=true
- fi
-
- if $setvalues; then
- case "$known_version" in
- "0.3.6")
- # Updated components from 0.3.6 to 1.1
- process_cpucount=true
- process_mingwruntime=true
- process_w32api=true
- process_binutils=true
- process_gcc=true
- process_make=true
- process_nasm=true
- process_scut=true
- ;;
-
- "1.1")
- # Updated components from 1.1 to 1.4
- process_binutils=true
- process_mingwruntime=true
- process_nasm=true
-
- # Reorganize the existing files
- mkdir -p "$installdir/$TARGET_ARCH/bin"
- mv "$installdir/bin/mingw32-"* "$installdir/$TARGET_ARCH/bin"
- mv "$installdir/$TARGET_ARCH/bin/mingw32-make" "$installdir/bin/make"
- mv "$installdir/bin/nasm" "$installdir/$TARGET_ARCH/bin/nasm"
- mv "$installdir/bin/ndisasm" "$installdir/$TARGET_ARCH/bin/ndisasm"
- mv "$installdir/include" "$installdir/$TARGET_ARCH/include"
- mv "$installdir/lib" "$installdir/$TARGET_ARCH/lib"
- mv "$installdir/libexec" "$installdir/$TARGET_ARCH/libexec"
- mv "$installdir/mingw32" "$installdir/$TARGET_ARCH/mingw32"
- ;;
- esac
- fi
- done
-else
- process_cpucount=true
- process_mingwruntime=true
- process_w32api=true
- process_binutils=true
- process_gcc=true
- process_make=true
- process_nasm=true
- process_buildtime=true
- process_scut=true
-
- # Create the directory if necessary
- if $createdir; then
- if ! mkdir -p "$installdir"; then
- redmsg "Could not create \"$installdir\", aborted!"
- return 1
- fi
- fi
-fi
-
-# Test if the installation directory is writeable
-if [ ! -w "$installdir" ]; then
- redmsg "Installation directory \"$installdir\" is not writeable, aborted!"
- return 1
-fi
-
-#
-# Build the tools
-#
-boldmsg "Building..."
-mkdir "$installdir/bin" >& /dev/null
-mkdir -p "$installdir/$TARGET_ARCH/mingw32" >& /dev/null
-
-# cpucount
-if $process_cpucount; then
- echo -n "Compiling cpucount... "
- gcc -s -o "$installdir/bin/cpucount" "$SCRIPTDIR/tools/cpucount.c"
- setup_check_run
-fi
-
-CPUCOUNT=`$installdir/bin/cpucount -x1`
-cd "$installdir/$TARGET_ARCH/mingw32"
-
-# mingw-runtime
-if $process_mingwruntime; then
- echo -n "Extracting mingw-runtime... "
- tar -xjf "$SOURCEDIR/mingw-runtime.tar.bz2" >& "$SCRIPTDIR/tar.log"
- setup_check_run "tar"
-fi
-
-# w32api
-if $process_w32api; then
- echo -n "Extracting w32api... "
- tar -xjf "$SOURCEDIR/w32api.tar.bz2" >& "$SCRIPTDIR/tar.log"
- setup_check_run "tar"
-fi
-
-cd "$SOURCEDIR"
-
-# binutils
-if $process_binutils; then
- rm -rf "binutils"
- rm -rf "binutils-build"
-
- echo -n "Extracting binutils... "
- tar -xjf "binutils.tar.bz2" >& "$SCRIPTDIR/tar.log"
- setup_check_run "tar"
-
- echo -n "Configuring binutils... "
- mkdir "binutils-build"
- cd "binutils-build"
- ../binutils/configure --prefix="$installdir/$TARGET_ARCH" --target=mingw32 --disable-nls --with-gcc \
- --with-gnu-as --with-gnu-ld --disable-shared >& "$SCRIPTDIR/configure.log"
- setup_check_run "configure"
-
- echo -n "Building binutils... "
- $makecmd -j $CPUCOUNT CFLAGS="-O2 -fno-exceptions" LDFLAGS="-s" >& "$SCRIPTDIR/make.log"
- setup_check_run "make"
-
- echo -n "Installing binutils... "
- $makecmd install >& "$SCRIPTDIR/make.log"
- setup_check_run "make"
-
- echo -n "Cleaning up binutils... "
- cd "$SOURCEDIR"
- rm -rf "binutils-build"
- rm -rf "binutils"
- setup_check_run
-fi
-
-# gcc
-if $process_gcc; then
- rm -rf "gcc"
- rm -rf "gcc-build"
-
- echo -n "Extracting gcc... "
- tar -xjf "gcc.tar.bz2" >& "$SCRIPTDIR/tar.log"
- setup_check_run "tar"
-
- echo -n "Configuring gcc... "
- mkdir "gcc-build"
- cd "gcc-build"
- ../gcc/configure --prefix="$installdir/$TARGET_ARCH" --target=mingw32 \
- --with-headers="$installdir/$TARGET_ARCH/mingw32/include"--with-gcc --with-gnu-ld \
- --with-gnu-as --enable-languages=c,c++ --enable-checking=release \
- --enable-threads=win32 --disable-win32-registry --disable-nls \
- --disable-shared >& "$SCRIPTDIR/configure.log"
- setup_check_run "configure"
-
- echo -n "Building gcc... "
- $makecmd -j $CPUCOUNT CFLAGS="-O2" CXXFLAGS="-O2" LDFLAGS="-s" >& "$SCRIPTDIR/make.log"
- setup_check_run "make"
-
- echo -n "Installing gcc... "
- $makecmd install >& "$SCRIPTDIR/make.log"
- setup_check_run "make"
-
- echo -n "Cleaning up gcc... "
- cd "$SOURCEDIR"
- rm -rf "gcc-build"
- rm -rf "gcc"
- setup_check_run
-fi
-
-# make
-if $process_make; then
- rm -rf "make"
- rm -rf "make-build"
-
- echo -n "Extracting make... "
- tar -xjf "make.tar.bz2" >& "$SCRIPTDIR/tar.log"
- setup_check_run "tar"
-
- echo -n "Configuring make... "
- mkdir "make-build"
- cd "make-build"
- ../make/configure --prefix="$installdir" --disable-dependency-tracking \
- --disable-nls --enable-case-insensitive-file-system
- --disable-job-server --disable-rpath >& "$SCRIPTDIR/configure.log"
- setup_check_run "configure"
-
- echo -n "Building make... "
- $makecmd -j $CPUCOUNT CFLAGS="-s -O2 -mms-bitfields" >& "$SCRIPTDIR/make.log"
- setup_check_run "make"
-
- echo -n "Installing make... "
- $makecmd install >& "$SCRIPTDIR/make.log"
- setup_check_run "make"
-
- echo -n "Cleaning up make... "
- cd "$SOURCEDIR"
- rm -rf "make-build"
- rm -rf "make"
- setup_check_run
-fi
-
-# nasm
-if $process_nasm; then
- rm -rf "nasm"
-
- echo -n "Extracting nasm... "
- tar -xjf "nasm.tar.bz2" >& "$SCRIPTDIR/tar.log"
- setup_check_run "tar"
-
- echo -n "Configuring nasm... "
- cd "nasm"
- ./configure --prefix="$installdir/$TARGET_ARCH" >& "$SCRIPTDIR/configure.log"
- setup_check_run "configure"
-
- echo -n "Building nasm... "
- $makecmd -j $CPUCOUNT >& "$SCRIPTDIR/make.log"
- setup_check_run "make"
-
- echo -n "Installing nasm... "
- $makecmd install >& "$SCRIPTDIR/make.log"
- setup_check_run "make"
-
- echo -n "Cleaning up nasm... "
- cd "$SOURCEDIR"
- rm -rf "nasm"
- setup_check_run
-fi
-
-# Final actions
-echo
-boldmsg "Final actions"
-
-if [ "$installdir" = "/usr/RosBE" ] && $update; then
- # Changed default installation directory starting with RosBE-Unix 1.4
- echo "Do you want to move /usr/RosBE to /usr/local/RosBE? (yes/no)"
- read -p "[yes] " answer
-
- if [ "$answer" = "" ] || [ "$answer" = "yes" ]; then
- mv "/usr/RosBE" "/usr/local/RosBE"
- installdir="/usr/local/RosBE"
- fi
-fi
-
-if $process_buildtime; then
- echo -n "Compiling buildtime... "
- gcc -s -o "$installdir/bin/buildtime" "$SCRIPTDIR/tools/buildtime.c"
- setup_check_run
-fi
-
-if $process_scut; then
- echo -n "Compiling scut..."
- gcc -s -o "$installdir/bin/scut" "$SCRIPTDIR/tools/scut.c"
- setup_check_run
-fi
-
-echo -n "Removing unneeded files... "
-rm -rf "$installdir/$TARGET_ARCH/mingw32/sys-include"
-rm -rf "$installdir/$TARGET_ARCH/info"
-rm -rf "$installdir/$TARGET_ARCH/man"
-rm -rf "$installdir/$TARGET_ARCH/share"
-setup_check_run
-
-echo -n "Removing debugging symbols... "
-ls "$installdir/$TARGET_ARCH/bin/"* "$installdir/$TARGET_ARCH/mingw32/bin/"* | grep -v "gccbug" |
-while read file; do
- strip "$file"
-done
-setup_check_run
-
-echo -n "Copying scripts... "
-cp -R "$SCRIPTDIR/scripts/"* "$installdir"
-setup_check_run
-
-echo -n "Writing version... "
-echo "$ROSBE_VERSION" > "$installdir/RosBE-Version"
-setup_check_run
-echo
-
-# Finish
-boldmsg "Finished successfully!"
-echo "To create a shortcut to the Build Environment on the Desktop, please switch back to your"
-echo "normal User Account (I assume you ran this script as \"root\")."
-echo "Then execute the following command:"
-echo
-echo " $installdir/createshortcut.sh"
-echo
-echo "If you just want to start the Build Environment without using a shortcut, execute the"
-echo "following command:"
-echo
-echo " $installdir/RosBE.sh [source directory] [color code] [architecture]"
-echo
-echo "All parameters for that script are optional."
-echo
-
-return 0
-
Author: cfinck
Date: Wed Feb 11 08:37:48 2009
New Revision: 39550
URL: http://svn.reactos.org/svn/reactos?rev=39550&view=rev
Log:
- Update the tools to the versions of RosBE-Windows 1.4
- Add general multi-architecture support to RosBE-Unix
This includes moving all architecture-dependent stuff into an "i386" directory.
Additional target architectures can now be easily added with extra RosBE-Unix packages.
- Make most of the environment variable names compatible to RosBE-Windows
- Add "rosbelibrary.sh" for avoiding duplicated code in several scripts
- Implemented the "charch" and "chdefdir" commands from RosBE-Windows
- Change the default installation path to /usr/local/RosBE, provide an update option for the old path
- Compile and name "make" without the mingw32 target, that tool isn't target-dependent
- Strip debugging symbols from the bundled tools in .c files right away
Added:
trunk/tools/RosBE/RosBE-Unix/scripts/charch.sh (with props)
trunk/tools/RosBE/RosBE-Unix/scripts/chdefdir.sh (with props)
trunk/tools/RosBE/RosBE-Unix/scripts/i386/
trunk/tools/RosBE/RosBE-Unix/scripts/i386/clean.sh (with props)
trunk/tools/RosBE/RosBE-Unix/scripts/i386/version.sh (with props)
trunk/tools/RosBE/RosBE-Unix/scripts/rosbelibrary.sh (with props)
Modified:
trunk/tools/RosBE/RosBE-Unix/README
trunk/tools/RosBE/RosBE-Unix/README.odt
trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh
trunk/tools/RosBE/RosBE-Unix/scripts/RosBE-rc
trunk/tools/RosBE/RosBE-Unix/scripts/RosBE.sh
trunk/tools/RosBE/RosBE-Unix/scripts/basedir.sh
trunk/tools/RosBE/RosBE-Unix/scripts/build-multi.sh
trunk/tools/RosBE/RosBE-Unix/scripts/build-shared.sh
trunk/tools/RosBE/RosBE-Unix/scripts/build.sh
trunk/tools/RosBE/RosBE-Unix/scripts/clean.sh
trunk/tools/RosBE/RosBE-Unix/scripts/createshortcut.sh
trunk/tools/RosBE/RosBE-Unix/scripts/help.sh
trunk/tools/RosBE/RosBE-Unix/scripts/scut.sh
trunk/tools/RosBE/RosBE-Unix/scripts/version.sh
Modified: trunk/tools/RosBE/RosBE-Unix/README
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/README?rev=…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/README [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/README [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,5 +1,6 @@
ReactOS Build Environment
- Version 1.1 for Unix-based operating systems
+ Version 1.4 for Unix-based operating systems
+ Base package and i386 build tools
by Colin Finck (mail(a)colinfinck.de)
Introduction
@@ -73,13 +74,16 @@
your used operating system:
1. Open a Terminal window and type "su" to become "root" user.
+ NOTE: Becoming a root user is only required for installing RosBE into the
+ default directory ("/usr/local/RosBE"). If you want to install it into a
+ personal directory, you don't need superuser privileges.
2. Call the "RosBE-Builder.sh" script in the directory of the unpacked
RosBE files.
3. Follow the directions on the screen until the script ends with "Finished
successfully!"
4. Type "exit" to switch back to your normal user account. Then call the
"createshortcut.sh" script in the installation directory (usually this
- is "/usr/RosBE").
+ is "/usr/local/RosBE").
5. Follow the directions on the screen to create a shortcut for the Build
Environment.
@@ -92,12 +96,14 @@
This version of RosBE for Unix-based operating systems uses the following
components:
- * GNU Binutils v2.18.50-20071015 (snapshot)
+ * GNU Binutils v2.19.51-20090127 (snapshot)
+ compiled for i386-pc-mingw32
patched with:
- binutils-2.18.50.10-15-2007-snapshot-hpoussin.patch
(http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Patches/binutils-2.18.…)
* GCC, The GNU Compiler Collection v4.1.3-20071015 (snapshot)
+ compiled for i386-pc-mingw32
patched with:
- GCC-v4.1-r129382-prerelease-w3seek.patch
(http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Patches/GCC-v4.1-r1293…)
@@ -109,24 +115,20 @@
NOTE: This GCC version only supports C and C++
* Make 20071219 (CVS version)
- * MinGW-Runtime 3.13
- * NASM, The Netwide assembler v2.00
+ * MinGW-Runtime 3.15.2
+ * NASM, The Netwide assembler v2.05.01
* W32api 3.10
Tested Operating Systems
-------------------------
- Although the Build Environment is designed to work on all Unix-based
-operating systems, it was only tested under the following systems:
-
- * Debian GNU/Linux 4.0
- * Fedora 8
- * FreeBSD 6.2
- * Mac OS X 10.5
- * openSUSE 10.2
- * Ubuntu 7.04 and 7.10
-
-You should be able to compile the build tools on both i386 (32-bit) and
+ The Build Environment was designed to work on all Unix-based operating
+systems. Nevertheless, it is impossible to test it on all possible systems out
+there.
+ The current primary development and test system is Ubuntu 8.10. But users
+also reported that it works well under other Linux systems such as Fedora or
+openSUSE and Unix derivates like FreeBSD or Mac OS X.
+ You should be able to compile the build tools on both i386 (32-bit) and
x86_64 (64-bit) systems.
Modified: trunk/tools/RosBE/RosBE-Unix/README.odt
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/README.odt?…
==============================================================================
Binary files - no diff available.
Modified: trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/RosBE-Build…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/RosBE-Builder.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,15 +1,16 @@
#!/bin/bash
#
-# RosBE-Builder
-# Copyright 2007-2008 Colin Finck <mail(a)colinfinck.de>
+# ReactOS Build Environment for Unix-based Operating Systems - Basic Builder Tool
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
# partially based on the BuildMingwCross script (http://www.mingw.org/MinGWiki/index.php/BuildMingwCross)
#
# Released under GNU GPL v2 or any later version.
# Constants
-ROSBE_VERSION="1.1"
-KNOWN_ROSBE_VERSIONS="0.3.6 1.1"
-DEFAULT_INSTALL_DIR="/usr/RosBE"
+ROSBE_VERSION="1.4"
+TARGET_ARCH="i386"
+KNOWN_ROSBE_VERSIONS="0.3.6 1.1 1.4"
+DEFAULT_INSTALL_DIR="/usr/local/RosBE"
NEEDED_TOOLS="bison flex gcc g++ grep makeinfo" # GNU Make has a special check
# Get the absolute path to the script directory
@@ -17,78 +18,12 @@
SCRIPTDIR="$PWD"
SOURCEDIR="$SCRIPTDIR/sources"
-# Functions
-boldmsg()
-{
- echo -e "\e[1m$1\e[0m"
-}
-
-greenmsg()
-{
- echo -e "\e[32m$1\e[0m"
-}
-
-redmsg()
-{
- echo -e "\e[31m$1\e[0m"
-}
-
-checkrun()
-{
- if [ $? -ne 0 ]; then
- redmsg "FAILED"
-
- if [ "$1" = "" ]; then
- echo "If you did not do something wrong, please contact the ReactOS Team."
- else
- echo "Please take a look at the log file \"$SCRIPTDIR/$1.log\""
- echo "If you did not do something wrong, please save the log file and contact the ReactOS Team."
- fi
-
- echo "Aborted!"
- exit 1
- else
- greenmsg "OK"
-
- if [ "$1" != "" ]; then
- rm "$SCRIPTDIR/$1.log"
- fi
- fi
-}
-
-showchoice()
-{
- default_value="$1"
- valid_choices="$2"
-
- breakloop=false
- choice=""
-
- while true; do
- read -p "Your choice [$default_value]: " choice
-
- if [ "$choice" = "" ]; then
- choice="$default_value"
- break
- fi
-
- for valid_choice in $valid_choices; do
- if [ "$choice" = "$valid_choice" ]; then
- breakloop=true
- break
- fi
- done
-
- if $breakloop; then
- break
- fi
- done
-}
+source "$SCRIPTDIR/scripts/rosbelibrary.sh"
echo "*******************************************************************************"
echo "* ReactOS Build Environment for Unix-based Operating Systems *"
-echo "* Builder Tool *"
+echo "* Basic Builder Tool *"
echo "* by Colin Finck <mail(a)colinfinck.de> *"
echo "* *"
echo "* Version $ROSBE_VERSION *"
@@ -98,82 +33,21 @@
echo "This script compiles and installs a complete Build Environment for building ReactOS."
echo
-# Check if we're running as root
-if [ ! "`whoami`" = "root" ]; then
- boldmsg "User is not \"root\""
-
- echo "The default installation path for the Build Environment is \"$DEFAULT_INSTALL_DIR\"."
- echo "Therefore it is recommended to run this script as the \"root\" user. Otherwise you probably cannot create the necessary directories."
- echo "An alternative is to specify another installation directory at the installation process."
- echo "Do you really want to continue? (yes/no)"
- read -p "[no] " answer
-
- if [ "$answer" = "yes" ]; then
- echo
- else
- exit 1
- fi
-fi
-
-# Test if the script directory is writeable
-if [ ! -w "$SCRIPTDIR" ]; then
- redmsg "The script directory \"$SCRIPTDIR\" is not writeable, aborted!"
- exit 1
-fi
-
-# Test if the script directory contains spaces
-case "$SCRIPTDIR" in
-*" "*)
- redmsg "The script directory \"$SCRIPTDIR\" contains spaces!"
- redmsg "Therefore some build tools cannot be compiled properly."
- echo
- redmsg "Please move \"$SCRIPTDIR\" to a directory, which does not contain spaces."
-
- exit 1;;
-esac
-
-# Check if all necessary tools exist
-boldmsg "Checking for the needed tools..."
-
-toolmissing=false
-for tool in $NEEDED_TOOLS; do
- echo -n "Checking for $tool... "
-
- if which "$tool" >& /dev/null; then
- greenmsg "OK"
- else
- redmsg "MISSING"
- toolmissing=true
- fi
-done
-
-# Special check for GNU Make
-# For example FreeBSD's "make" is not GNU Make, so we have to define a variable
-echo -n "Checking for GNU Make... "
-
-if make -v 2>&1 | grep "GNU Make" >& /dev/null; then
- makecmd="make"
- greenmsg "OK"
-elif gmake -v 2>&1 | grep "GNU Make" >& /dev/null; then
- makecmd="gmake"
- greenmsg "OK"
-else
- redmsg "MISSING"
- toolmissing=true
-fi
-
-if $toolmissing; then
- echo "At least one needed tool is missing, aborted!"
- exit 1
-fi
-
-echo
+setup_check_requirements
# Select the installation directory
boldmsg "Installation Directory"
echo "In which directory do you want to install it?"
echo "Enter the path to the directory here or simply press ENTER to install it into the default directory."
+
+# RosBE-Unix 1.4 switched from /usr/RosBE to /usr/local/RosBE, show a message for the people who might want to update
+if [ -f "/usr/RosBE/RosBE-Version" ]; then
+ echo
+ redmsg "Warning: " "-n"
+ echo "The default installation path /usr/RosBE was changed to /usr/local/RosBE starting with version 1.4."
+ echo "If you want to update a previous installation, enter /usr/RosBE here."
+fi
createdir=false
installdir=""
@@ -300,6 +174,24 @@
process_make=true
process_nasm=true
process_scut=true
+ ;;
+
+ "1.1")
+ # Updated components from 1.1 to 1.4
+ process_binutils=true
+ process_mingwruntime=true
+ process_nasm=true
+
+ # Reorganize the existing files
+ mkdir -p "$installdir/$TARGET_ARCH/bin"
+ mv "$installdir/bin/mingw32-"* "$installdir/$TARGET_ARCH/bin"
+ mv "$installdir/$TARGET_ARCH/bin/mingw32-make" "$installdir/bin/make"
+ mv "$installdir/bin/nasm" "$installdir/$TARGET_ARCH/bin/nasm"
+ mv "$installdir/bin/ndisasm" "$installdir/$TARGET_ARCH/bin/ndisasm"
+ mv "$installdir/include" "$installdir/$TARGET_ARCH/include"
+ mv "$installdir/lib" "$installdir/$TARGET_ARCH/lib"
+ mv "$installdir/libexec" "$installdir/$TARGET_ARCH/libexec"
+ mv "$installdir/mingw32" "$installdir/$TARGET_ARCH/mingw32"
;;
esac
fi
@@ -319,7 +211,7 @@
if $createdir; then
if ! mkdir -p "$installdir"; then
redmsg "Could not create \"$installdir\", aborted!"
- exit 1
+ return 1
fi
fi
fi
@@ -327,39 +219,38 @@
# Test if the installation directory is writeable
if [ ! -w "$installdir" ]; then
redmsg "Installation directory \"$installdir\" is not writeable, aborted!"
- exit 1
+ return 1
fi
#
# Build the tools
#
boldmsg "Building..."
-PATH="$installdir/bin:$PATH"
-mkdir -p "$installdir/bin" >& /dev/null
-mkdir -p "$installdir/mingw32" >& /dev/null
+mkdir "$installdir/bin" >& /dev/null
+mkdir -p "$installdir/$TARGET_ARCH/mingw32" >& /dev/null
# cpucount
if $process_cpucount; then
echo -n "Compiling cpucount... "
- gcc -o "$installdir/bin/cpucount" "$SCRIPTDIR/tools/cpucount.c"
- checkrun
+ gcc -s -o "$installdir/bin/cpucount" "$SCRIPTDIR/tools/cpucount.c"
+ setup_check_run
fi
CPUCOUNT=`$installdir/bin/cpucount -x1`
-cd "$installdir/mingw32"
+cd "$installdir/$TARGET_ARCH/mingw32"
# mingw-runtime
if $process_mingwruntime; then
echo -n "Extracting mingw-runtime... "
tar -xjf "$SOURCEDIR/mingw-runtime.tar.bz2" >& "$SCRIPTDIR/tar.log"
- checkrun "tar"
+ setup_check_run "tar"
fi
# w32api
if $process_w32api; then
echo -n "Extracting w32api... "
tar -xjf "$SOURCEDIR/w32api.tar.bz2" >& "$SCRIPTDIR/tar.log"
- checkrun "tar"
+ setup_check_run "tar"
fi
cd "$SOURCEDIR"
@@ -371,28 +262,28 @@
echo -n "Extracting binutils... "
tar -xjf "binutils.tar.bz2" >& "$SCRIPTDIR/tar.log"
- checkrun "tar"
+ setup_check_run "tar"
echo -n "Configuring binutils... "
mkdir "binutils-build"
cd "binutils-build"
- ../binutils/configure --prefix="$installdir" --target=mingw32 --disable-nls --with-gcc \
+ ../binutils/configure --prefix="$installdir/$TARGET_ARCH" --target=mingw32 --disable-nls --with-gcc \
--with-gnu-as --with-gnu-ld --disable-shared >& "$SCRIPTDIR/configure.log"
- checkrun "configure"
+ setup_check_run "configure"
echo -n "Building binutils... "
$makecmd -j $CPUCOUNT CFLAGS="-O2 -fno-exceptions" LDFLAGS="-s" >& "$SCRIPTDIR/make.log"
- checkrun "make"
+ setup_check_run "make"
echo -n "Installing binutils... "
$makecmd install >& "$SCRIPTDIR/make.log"
- checkrun "make"
+ setup_check_run "make"
echo -n "Cleaning up binutils... "
cd "$SOURCEDIR"
rm -rf "binutils-build"
rm -rf "binutils"
- checkrun
+ setup_check_run
fi
# gcc
@@ -402,31 +293,31 @@
echo -n "Extracting gcc... "
tar -xjf "gcc.tar.bz2" >& "$SCRIPTDIR/tar.log"
- checkrun "tar"
+ setup_check_run "tar"
echo -n "Configuring gcc... "
mkdir "gcc-build"
cd "gcc-build"
- ../gcc/configure --prefix="$installdir" --target=mingw32 \
- --with-headers="$installdir/mingw32/include"--with-gcc --with-gnu-ld \
+ ../gcc/configure --prefix="$installdir/$TARGET_ARCH" --target=mingw32 \
+ --with-headers="$installdir/$TARGET_ARCH/mingw32/include"--with-gcc --with-gnu-ld \
--with-gnu-as --enable-languages=c,c++ --enable-checking=release \
--enable-threads=win32 --disable-win32-registry --disable-nls \
--disable-shared >& "$SCRIPTDIR/configure.log"
- checkrun "configure"
+ setup_check_run "configure"
echo -n "Building gcc... "
$makecmd -j $CPUCOUNT CFLAGS="-O2" CXXFLAGS="-O2" LDFLAGS="-s" >& "$SCRIPTDIR/make.log"
- checkrun "make"
+ setup_check_run "make"
echo -n "Installing gcc... "
$makecmd install >& "$SCRIPTDIR/make.log"
- checkrun "make"
+ setup_check_run "make"
echo -n "Cleaning up gcc... "
cd "$SOURCEDIR"
rm -rf "gcc-build"
rm -rf "gcc"
- checkrun
+ setup_check_run
fi
# make
@@ -436,30 +327,29 @@
echo -n "Extracting make... "
tar -xjf "make.tar.bz2" >& "$SCRIPTDIR/tar.log"
- checkrun "tar"
+ setup_check_run "tar"
echo -n "Configuring make... "
mkdir "make-build"
cd "make-build"
- ../make/configure --prefix="$installdir" --target=mingw32 \
- --disable-dependency-tracking --disable-nls \
- --enable-case-insensitive-file-system --disable-job-server --disable-rpath \
- --program-prefix=mingw32- >& "$SCRIPTDIR/configure.log"
- checkrun "configure"
+ ../make/configure --prefix="$installdir" --disable-dependency-tracking \
+ --disable-nls --enable-case-insensitive-file-system
+ --disable-job-server --disable-rpath >& "$SCRIPTDIR/configure.log"
+ setup_check_run "configure"
echo -n "Building make... "
$makecmd -j $CPUCOUNT CFLAGS="-s -O2 -mms-bitfields" >& "$SCRIPTDIR/make.log"
- checkrun "make"
+ setup_check_run "make"
echo -n "Installing make... "
$makecmd install >& "$SCRIPTDIR/make.log"
- checkrun "make"
+ setup_check_run "make"
echo -n "Cleaning up make... "
cd "$SOURCEDIR"
rm -rf "make-build"
rm -rf "make"
- checkrun
+ setup_check_run
fi
# nasm
@@ -468,64 +358,75 @@
echo -n "Extracting nasm... "
tar -xjf "nasm.tar.bz2" >& "$SCRIPTDIR/tar.log"
- checkrun "tar"
+ setup_check_run "tar"
echo -n "Configuring nasm... "
cd "nasm"
- ./configure --prefix="$installdir" --target=mingw32 >& "$SCRIPTDIR/configure.log"
- checkrun "configure"
+ ./configure --prefix="$installdir/$TARGET_ARCH" >& "$SCRIPTDIR/configure.log"
+ setup_check_run "configure"
echo -n "Building nasm... "
$makecmd -j $CPUCOUNT >& "$SCRIPTDIR/make.log"
- checkrun "make"
+ setup_check_run "make"
echo -n "Installing nasm... "
$makecmd install >& "$SCRIPTDIR/make.log"
- checkrun "make"
+ setup_check_run "make"
echo -n "Cleaning up nasm... "
cd "$SOURCEDIR"
rm -rf "nasm"
- checkrun
+ setup_check_run
fi
# Final actions
echo
boldmsg "Final actions"
+
+if [ "$installdir" = "/usr/RosBE" ] && $update; then
+ # Changed default installation directory starting with RosBE-Unix 1.4
+ echo "Do you want to move /usr/RosBE to /usr/local/RosBE? (yes/no)"
+ read -p "[yes] " answer
+
+ if [ "$answer" = "" ] || [ "$answer" = "yes" ]; then
+ mv "/usr/RosBE" "/usr/local/RosBE"
+ installdir="/usr/local/RosBE"
+ fi
+fi
if $process_buildtime; then
echo -n "Compiling buildtime... "
- gcc -o "$installdir/bin/buildtime" "$SCRIPTDIR/tools/buildtime.c"
- checkrun
+ gcc -s -o "$installdir/bin/buildtime" "$SCRIPTDIR/tools/buildtime.c"
+ setup_check_run
fi
if $process_scut; then
echo -n "Compiling scut..."
- gcc -o "$installdir/bin/scut" "$SCRIPTDIR/tools/scut.c"
- checkrun
+ gcc -s -o "$installdir/bin/scut" "$SCRIPTDIR/tools/scut.c"
+ setup_check_run
fi
echo -n "Removing unneeded files... "
-rm -rf "$installdir/mingw32/sys-include"
-rm -rf "$installdir/info"
-rm -rf "$installdir/man"
-rm -rf "$installdir/share"
-checkrun
+rm -rf "$installdir/$TARGET_ARCH/mingw32/sys-include"
+rm -rf "$installdir/$TARGET_ARCH/info"
+rm -rf "$installdir/$TARGET_ARCH/man"
+rm -rf "$installdir/$TARGET_ARCH/share"
+setup_check_run
echo -n "Removing debugging symbols... "
-ls "$installdir"/bin/* "$installdir"/mingw32/bin/* | grep -v "gccbug" |
+ls "$installdir/$TARGET_ARCH/bin/"* "$installdir/$TARGET_ARCH/mingw32/bin/"* | grep -v "gccbug" |
while read file; do
strip "$file"
done
-checkrun
+setup_check_run
echo -n "Copying scripts... "
-cp "$SCRIPTDIR"/scripts/* "$installdir"
-checkrun
+cp -R "$SCRIPTDIR/scripts/"* "$installdir"
+setup_check_run
echo -n "Writing version... "
echo "$ROSBE_VERSION" > "$installdir/RosBE-Version"
-checkrun
+setup_check_run
echo
# Finish
@@ -539,7 +440,10 @@
echo "If you just want to start the Build Environment without using a shortcut, execute the"
echo "following command:"
echo
-echo " $installdir/RosBE.sh <path/to/your/ReactOS/source/directory> [optional color code]"
-echo
-
-exit 0
+echo " $installdir/RosBE.sh [source directory] [color code] [architecture]"
+echo
+echo "All parameters for that script are optional."
+echo
+
+return 0
+
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/RosBE-rc
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/Ros…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/RosBE-rc [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/RosBE-rc [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,17 +1,18 @@
# Set path
-PATH="$_ROSSCRIPTDIR/bin:$PATH"
+source "$_ROSBE_ROSSCRIPTDIR/rosbelibrary.sh"
+set_path_variable
# Set aliases
-alias basedir="source $_ROSSCRIPTDIR/basedir.sh"
-alias clean="$_ROSSCRIPTDIR/clean.sh"
-alias help="$_ROSSCRIPTDIR/help.sh"
-alias make="$_ROSSCRIPTDIR/build.sh"
-alias makex="$_ROSSCRIPTDIR/build-multi.sh"
-alias scut="source $_ROSSCRIPTDIR/scut.sh"
-alias version="$_ROSSCRIPTDIR/version.sh"
-
-# Display the available commands
-source "$_ROSSCRIPTDIR/help.sh"
+alias basedir="source $_ROSBE_ROSSCRIPTDIR/basedir.sh"
+alias charch="source $_ROSBE_ROSSCRIPTDIR/charch.sh"
+alias chdefdir="source $_ROSBE_ROSSCRIPTDIR/chdefdir.sh"
+alias clean="$_ROSBE_ROSSCRIPTDIR/clean.sh"
+alias help="$_ROSBE_ROSSCRIPTDIR/help.sh"
+alias make="$_ROSBE_ROSSCRIPTDIR/build.sh"
+alias makex="$_ROSBE_ROSSCRIPTDIR/build-multi.sh"
+alias scut="source $_ROSBE_ROSSCRIPTDIR/scut.sh"
+alias version="$_ROSBE_ROSSCRIPTDIR/version.sh"
# Change the current directory to the ReactOS source directory
basedir
+
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/RosBE.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/Ros…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/RosBE.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/RosBE.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -2,18 +2,25 @@
#
# Script for initializing RosBE
# Part of RosBE for Unix-based Operating Systems
-# Copyright 2007-2008 Colin Finck <mail(a)colinfinck.de>
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
+# Save the ReactOS source directory
+if [ "$1" = "" ]; then
+ _ROSBE_ROSSOURCEDIR="$PWD"
+else
+ _ROSBE_ROSSOURCEDIR="$1"
+fi
+
+export _ROSBE_ROSSOURCEDIR
+
# Get the absolute path to the script directory
cd `dirname $0`
-_ROSSCRIPTDIR="$PWD"
-export _ROSSCRIPTDIR
+export _ROSBE_ROSSCRIPTDIR="$PWD"
-# Save the ReactOS source directory
-_ROSSOURCEDIR="$1"
-export _ROSSOURCEDIR
+# Save the current PATH variable
+export _ROSBE_OLDPATH="$PATH"
# Make sure that some important variables are clean
export HOST=
@@ -23,11 +30,22 @@
# Read the RosBE version
# The file "RosBE-Version" has been created by the RosBE-Builder.sh script
-ROSBE_VERSION=`cat "$_ROSSCRIPTDIR/RosBE-Version"`
+export _ROSBE_VERSION=`cat "$_ROSBE_ROSSCRIPTDIR/RosBE-Version"`
# Set the text color
if [ "$2" != "" ]; then
echo -e "\e[$2m"
+fi
+
+# Set the architecture to build for
+source "$_ROSBE_ROSSCRIPTDIR/rosbelibrary.sh"
+
+if [ "$3" = "" ]; then
+ # No architecture specified, fall back to i386 without any message
+ export _ROSBE_ARCH="i386"
+else
+ # Try to set the architecture to the one specified
+ change_architecture $3
fi
# Display banner
@@ -35,7 +53,12 @@
echo "* ReactOS Build Environment for Unix-based Operating Systems *"
echo "* by Colin Finck <mail(a)colinfinck.de> *"
echo "* *"
-echo "* Version $ROSBE_VERSION *"
+echo "* Version $_ROSBE_VERSION *"
echo "*******************************************************************************"
+echo
+echo "For a list of all included commands, type: \"help\""
+echo "-------------------------------------------------"
+echo
-bash --rcfile "$_ROSSCRIPTDIR/RosBE-rc"
+bash --rcfile "$_ROSBE_ROSSCRIPTDIR/RosBE-rc"
+
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/basedir.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/bas…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/basedir.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/basedir.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,10 +1,11 @@
#!/bin/bash
#
-# Script for changing the current directory to $_ROSSOURCEDIR
+# Script for changing the current directory to $_ROSBE_ROSSOURCEDIR
# Part of RosBE for Unix-based Operating Systems
-# Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
-# An alias just to "cd $_ROSSOURCEDIR" won't work as bash only expands when executing the shell and then never again
-cd "$_ROSSOURCEDIR"
+# An alias just to "cd $_ROSBE_ROSSOURCEDIR" won't work as bash only expands when executing the shell and then never again
+cd "$_ROSBE_ROSSOURCEDIR"
+
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/build-multi.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/bui…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/build-multi.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/build-multi.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -2,11 +2,12 @@
#
# Detects the CPU cores in your system and builds ReactOS with this number of threads
# Part of RosBE for Unix-based Operating Systems
-# Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
-source "$_ROSSCRIPTDIR/build-shared.sh"
+source "$_ROSBE_ROSSCRIPTDIR/build-shared.sh"
CPUCOUNT=`cpucount -x1`
-buildtime mingw32-make -j $CPUCOUNT $*
+buildtime make -j $CPUCOUNT $*
+
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/build-shared.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/bui…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/build-shared.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/build-shared.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,13 +1,13 @@
# Shared functions for build.sh and build-multi.sh
-# Part of Generic RosBE
-# Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+# Part of RosBE for Unix-based Operating Systems
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
# Check if config.template.rbuild is newer than config.rbuild
# If it is then abort the build and inform the user.
-if [ -f "$_ROSSOURCEDIR/config.rbuild" ]; then
- if [ "$_ROSSOURCEDIR/config.template.rbuild" -nt "$_ROSSOURCEDIR/config.rbuild" ]; then
+if [ -f "$_ROSBE_ROSSOURCEDIR/config.rbuild" ]; then
+ if [ "$_ROSBE_ROSSOURCEDIR/config.template.rbuild" -nt "$_ROSBE_ROSSOURCEDIR/config.rbuild" ]; then
echo
echo "*** config.template.rbuild is newer than config.rbuild ***"
echo "*** aborting build. Please check for changes and ***"
@@ -16,3 +16,4 @@
exit 1
fi
fi
+
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/build.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/bui…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/build.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/build.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -2,10 +2,11 @@
#
# Builds ReactOS with one thread
# Part of RosBE for Unix-based Operating Systems
-# Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
-source "$_ROSSCRIPTDIR/build-shared.sh"
+source "$_ROSBE_ROSSCRIPTDIR/build-shared.sh"
-buildtime mingw32-make $*
+buildtime make $*
+
Added: trunk/tools/RosBE/RosBE-Unix/scripts/charch.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/cha…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/charch.sh (added)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/charch.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,0 +1,25 @@
+#!/bin/bash
+#
+# Change the current target build tools to an architecture to build for
+# Part of RosBE for Unix-based Operating Systems
+# Copyright 2009 Colin Finck <mail(a)colinfinck.de>
+#
+# Released under GNU GPL v2 or any later version.
+
+if [ "$1" = "" ]; then
+ echo "charch: Changes the architecture to build for."
+ echo "The appropriate build tools for this architecture need to be installed by a"
+ echo "RosBE-Unix package."
+ echo
+ echo "Syntax: charch <architecture>"
+ return 0
+fi
+
+# Change the architecture
+source "$_ROSBE_ROSSCRIPTDIR/rosbelibrary.sh"
+change_architecture $1
+set_path_variable
+
+# Display tool versions
+source "$_ROSBE_ROSSCRIPTDIR/$_ROSBE_ARCH/version.sh"
+
Propchange: trunk/tools/RosBE/RosBE-Unix/scripts/charch.sh
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/tools/RosBE/RosBE-Unix/scripts/chdefdir.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/chd…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/chdefdir.sh (added)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/chdefdir.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,0 +1,18 @@
+#!/bin/bash
+#
+# Change the ReactOS source directory for the current session
+# Part of RosBE for Unix-based Operating Systems
+# Copyright 2009 Colin Finck <mail(a)colinfinck.de>
+#
+# Released under GNU GPL v2 or any later version.
+
+if [ "$1" = "" ]; then
+ echo "chdefdir: Change the ReactOS source directory for the current RosBE session"
+ echo
+ echo "Syntax: chdefdir <directory>"
+ return 0
+fi
+
+export _ROSBE_ROSSOURCEDIR="$1"
+basedir
+
Propchange: trunk/tools/RosBE/RosBE-Unix/scripts/chdefdir.sh
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/clean.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/cle…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/clean.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/clean.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -2,23 +2,11 @@
#
# Script for cleaning the ReactOS source directory
# Part of RosBE for Unix-based Operating Systems
-# Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
-pushd "$_ROSSOURCEDIR" >& /dev/null
+pushd "$_ROSBE_ROSSOURCEDIR" >& /dev/null
+source "$_ROSBE_ROSSCRIPTDIR/$_ROSBE_ARCH/clean.sh"
+popd >& /dev/null
-if [ -d "obj-i386" ]; then
- echo "Cleaning ReactOS source directory..."
-
- rm -rf "obj-i386"
- rm -rf "output-i386"
- rm -rf "reactos."
- rm -f "makefile.auto"
-
- echo "Done cleaning ReactOS source directory."
-else
- echo "There is nothing to clean."
-fi
-
-popd >& /dev/null
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/createshortcut.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/cre…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/createshortcut.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/createshortcut.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -2,27 +2,19 @@
#
# Script for creating shortcuts
# Part of RosBE for Unix-based Operating Systems
-# Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
# Constants
DEFAULT_SHORTCUT_DIR="$HOME/Desktop"
-# Functions
-greenmsg()
-{
- echo -e "\e[32m$1\e[0m"
-}
-
-boldmsg()
-{
- echo -e "\e[1m$1\e[0m"
-}
-
# Get the absolute path to the script directory
cd `dirname $0`
SCRIPTDIR="$PWD"
+
+source "$SCRIPTDIR/rosbelibrary.sh"
+
# Read the RosBE version
# The file "RosBE-Version" has been created by the RosBE-Builder.sh script
@@ -85,3 +77,4 @@
echo "Terminal=true" >> "$shortcut"
greenmsg "OK"
+
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/help.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/hel…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/help.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/help.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -2,23 +2,28 @@
#
# Script for displaying the help
# Part of RosBE for Unix-based Operating Systems
-# Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
echo
echo "Available Commands:"
-echo " make [OPTIONS] - make, without options does a standard build of"
-echo " ReactOS. OPTIONS are the standard ReactOS build"
-echo " options, i.e. bootcd."
-echo " makex [OPTIONS] - Same as 'make' but automatically determines the"
-echo " number of CPUs in the system and uses -j with"
-echo " the appropriate number."
-echo " basedir - Switch back to the ReactOS source directory."
-echo " clean - Fully clean the ReactOS source directory."
-echo " help - Display the available commands."
-echo " scut [OPTIONS] - List, add, edit, remove, switch and default to"
-echo " shortcutted ReactOS source directories."
-echo " version - Show information about the tool versions."
+echo " make [OPTIONS] - make, without options does a standard build of"
+echo " ReactOS. OPTIONS are the standard ReactOS build"
+echo " options, i.e. bootcd."
+echo " makex [OPTIONS] - Same as 'make' but automatically determines the"
+echo " number of CPUs in the system and uses -j with"
+echo " the appropriate number."
+echo " basedir - Switch back to the ReactOS source directory."
+echo " charch [OPTIONS] - Change the Architecture to build ReactOS for"
+echo " for the current RosBE session."
+echo " chdefdir [OPTIONS] - Change the ReactOS source directory for the"
+echo " current RosBE session."
+echo " clean - Fully clean the ReactOS source directory."
+echo " help - Display the available commands."
+echo " scut [OPTIONS] - List, add, edit, remove, switch and default to"
+echo " shortcutted ReactOS source directories."
+echo " version - Show information about the tool versions."
echo
+
Added: trunk/tools/RosBE/RosBE-Unix/scripts/i386/clean.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/i38…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/i386/clean.sh (added)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/i386/clean.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,0 +1,19 @@
+# Clean i386 source directories
+# Part of RosBE for Unix-based Operating Systems
+# Copyright 2009 Colin Finck <mail(a)colinfinck.de>
+#
+# Released under GNU GPL v2 or any later version.
+
+if [ -d "obj-i386" ]; then
+ echo "Cleaning ReactOS i386 source directory..."
+
+ rm -rf "obj-i386"
+ rm -rf "output-i386"
+ rm -rf "reactos."
+ rm -f "makefile.auto"
+
+ echo "Done cleaning ReactOS i386 source directory."
+else
+ echo "ERROR: There is no i386 compiler output to clean."
+fi
+
Propchange: trunk/tools/RosBE/RosBE-Unix/scripts/i386/clean.sh
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/tools/RosBE/RosBE-Unix/scripts/i386/version.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/i38…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/i386/version.sh (added)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/i386/version.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,0 +1,10 @@
+# Show the i386 tool versions
+# Part of RosBE for Unix-based Operating Systems
+# Copyright 2009 Colin Finck <mail(a)colinfinck.de>
+#
+# Released under GNU GPL v2 or any later version.
+
+mingw32-gcc -v 2>&1 | grep "gcc version"
+nasm -v
+mingw32-ld -v
+
Propchange: trunk/tools/RosBE/RosBE-Unix/scripts/i386/version.sh
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/tools/RosBE/RosBE-Unix/scripts/rosbelibrary.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/ros…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/rosbelibrary.sh (added)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/rosbelibrary.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,0 +1,188 @@
+# Shared functions for RosBE-Unix components
+# Part of RosBE for Unix-based Operating Systems
+# Copyright 2009 Colin Finck <mail(a)colinfinck.de>
+#
+# Released under GNU GPL v2 or any later version.
+
+# Print a message in a bold font
+# Parameter 1: The message
+# Parameter 2: Optional additional parameters for "echo"
+boldmsg()
+{
+ echo -e $2 "\e[1m$1\e[0m"
+}
+
+# Print a message in green color
+# Parameter 1: The message
+# Parameter 2: Optional additional parameters for "echo"
+greenmsg()
+{
+ echo -e $2 "\e[32m$1\e[0m"
+}
+
+# Print a message in red color
+# Parameter 1: The message
+# Parameter 2: Optional additional parameters for "echo"
+redmsg()
+{
+ echo -e $2 "\e[31m$1\e[0m"
+}
+
+# Allow a choice between several options
+# If a valid choice was done, the result is stored in $choice
+# Parameter 1 - The default value
+# Parameter 2 - All possible values
+showchoice()
+{
+ default_value="$1"
+ valid_choices="$2"
+
+ breakloop=false
+ choice=""
+
+ while true; do
+ read -p "Your choice [$default_value]: " choice
+
+ if [ "$choice" = "" ]; then
+ choice="$default_value"
+ break
+ fi
+
+ for valid_choice in $valid_choices; do
+ if [ "$choice" = "$valid_choice" ]; then
+ breakloop=true
+ break
+ fi
+ done
+
+ if $breakloop; then
+ break
+ fi
+ done
+}
+
+# Change the _ROSBE_ARCH variable appropriately
+change_architecture()
+{
+ new_arch="$1"
+
+ if [ -f "$_ROSBE_ROSSCRIPTDIR/$new_arch/version.sh" ]; then
+ # Architecture parameter seems valid
+ _ROSBE_ARCH="$new_arch"
+ else
+ echo "Unsupported architecture specified, falling back to i386!"
+ echo
+ _ROSBE_ARCH="i386"
+ fi
+
+ export _ROSBE_ARCH
+}
+
+# Set the PATH variable properly for the specified architecture
+set_path_variable()
+{
+ # Set the PATH
+ PATH="$_ROSBE_ROSSCRIPTDIR/$_ROSBE_ARCH/bin:$_ROSBE_ROSSCRIPTDIR/bin:$_ROSBE_OLDPATH"
+}
+
+# Check for several requirements, which need to be met in order to run the installation script properly
+setup_check_requirements()
+{
+ # Check whether we're running as root
+ if [ ! "`whoami`" = "root" ]; then
+ boldmsg "User is not \"root\""
+
+ echo "The default installation path for the Build Environment is \"$DEFAULT_INSTALL_DIR\"."
+ echo "Therefore it is recommended to run this script as the \"root\" user. Otherwise you probably cannot create the necessary directories."
+ echo "An alternative is to specify another installation directory at the installation process."
+ echo "Do you really want to continue? (yes/no)"
+ read -p "[no] " answer
+
+ if [ "$answer" = "yes" ]; then
+ echo
+ else
+ exit 1
+ fi
+ fi
+
+ # Test if the script directory is writeable
+ if [ ! -w "$SCRIPTDIR" ]; then
+ redmsg "The script directory \"$SCRIPTDIR\" is not writeable, aborted!"
+ exit 1
+ fi
+
+ # Test if the script directory contains spaces
+ case "$SCRIPTDIR" in
+ *" "*)
+ redmsg "The script directory \"$SCRIPTDIR\" contains spaces!"
+ redmsg "Therefore some build tools cannot be compiled properly."
+ echo
+ redmsg "Please move \"$SCRIPTDIR\" to a directory, which does not contain spaces."
+
+ exit 1;;
+ esac
+
+ # Check if all necessary tools exist
+ boldmsg "Checking for the needed tools..."
+
+ toolmissing=false
+ for tool in $NEEDED_TOOLS; do
+ echo -n "Checking for $tool... "
+
+ if which "$tool" >& /dev/null; then
+ greenmsg "OK"
+ else
+ redmsg "MISSING"
+ toolmissing=true
+ fi
+ done
+
+ # Special check for GNU Make
+ # For example FreeBSD's "make" is not GNU Make, so we have to define a variable
+ echo -n "Checking for GNU Make... "
+
+ if make -v 2>&1 | grep "GNU Make" >& /dev/null; then
+ makecmd="make"
+ greenmsg "OK"
+ elif gmake -v 2>&1 | grep "GNU Make" >& /dev/null; then
+ makecmd="gmake"
+ greenmsg "OK"
+ else
+ redmsg "MISSING"
+ toolmissing=true
+ fi
+
+ if $toolmissing; then
+ echo "At least one needed tool is missing, aborted!"
+ exit 1
+ fi
+
+ echo
+}
+
+# Check whether the previous command finished with errorlevel 0
+# If it did so, print a green "OK" and delete the debug logfile for the command.
+# If that wasn't the case, print a red "FAILED" and give information about the debug logfile.
+setup_check_run()
+{
+ if [ $? -ne 0 ]; then
+ redmsg "FAILED"
+
+ if [ "$1" = "" ]; then
+ echo "If you did not do something wrong, please contact the ReactOS Team."
+ else
+ echo "Please take a look at the log file \"$SCRIPTDIR/$1.log\""
+ echo "If you did not do something wrong, please save the log file and contact the ReactOS Team."
+ fi
+
+ echo "Aborted!"
+ exit 1
+ else
+ greenmsg "OK"
+
+ if [ "$1" != "" ]; then
+ rm "$SCRIPTDIR/$1.log"
+ fi
+ fi
+}
+
Propchange: trunk/tools/RosBE/RosBE-Unix/scripts/rosbelibrary.sh
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/scut.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/scu…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/scut.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/scut.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -2,24 +2,25 @@
#
# Script for launching scut and changing the current directory appropriately
# Part of RosBE for Unix-based Operating Systems
-# Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
case "$1" in
add|rem|edit|def|list|/?|-h|--help)
# It's an scut parameter, which can just be passed to the program
- "$_ROSSCRIPTDIR/bin/scut" $*
+ "$_ROSBE_ROSSCRIPTDIR/bin/scut" $*
;;
*)
# It's probably the name of a shortcut
- _ROSSOURCEDIR=`"$_ROSSCRIPTDIR/bin/scut" $*`
+ _ROSBE_ROSSOURCEDIR=`"$_ROSBE_ROSSCRIPTDIR/bin/scut" $*`
- if [ "$_ROSSOURCEDIR" != "Default" ] && [ -d "$_ROSSOURCEDIR" ]; then
- export _ROSSOURCEDIR
+ if [ "$_ROSBE_ROSSOURCEDIR" != "Default" ] && [ -d "$_ROSBE_ROSSOURCEDIR" ]; then
+ export _ROSBE_ROSSOURCEDIR
basedir
fi
;;
esac
+
Modified: trunk/tools/RosBE/RosBE-Unix/scripts/version.sh
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Unix/scripts/ver…
==============================================================================
--- trunk/tools/RosBE/RosBE-Unix/scripts/version.sh [iso-8859-1] (original)
+++ trunk/tools/RosBE/RosBE-Unix/scripts/version.sh [iso-8859-1] Wed Feb 11 08:37:48 2009
@@ -1,20 +1,16 @@
#!/bin/bash
#
-# Build with
+# Show the tool versions
# Part of RosBE for Unix-based Operating Systems
-# Copyright 2007 Colin Finck <mail(a)colinfinck.de>
+# Copyright 2007-2009 Colin Finck <mail(a)colinfinck.de>
#
# Released under GNU GPL v2 or any later version.
# Display RosBE version
-ROSBE_VERSION=`cat "$_ROSSCRIPTDIR/RosBE-Version"`
-
echo "This is the ReactOS Build Environment for Unix-based Operating Systems"
-echo "Version $ROSBE_VERSION, containing the following components:"
+echo "Version $_ROSBE_VERSION, currently running with these components:"
echo
# Display tool versions
-mingw32-gcc -v 2>&1 | grep "gcc version"
-nasm -v
-mingw32-ld -v
-mingw32-make -v | grep "GNU Make"
+source "$_ROSBE_ROSSCRIPTDIR/$_ROSBE_ARCH/version.sh"
+