
Startup
=======

GNUstep Startup is a set of scripts to automatically build and install the
core GNUstep system.  You can run it at any time: before, during, and after
you have installed GNUstep.

If you have never installed GNUstep before, make sure to check that you
have all the prerequisite packages installed. For general prerequisites, see
the GNUstep installation guide:

http://www.gnustep.org/resources/documentation/User/GNUstep/gnustep-howto_2.html#SEC2

For platform specific prerequisites, see:

http://www.gnustep.org/resources/documentation/User/GNUstep/machines_toc.html

The script will tell you if you have missed anything.
To begin, type:

./InstallGNUstep

or, preferably:

sudo ./InstallGNUstep

This runs configuration tests that check if your system is setup
correctly to install GNUstep. At the end of these tests, a report is
printed that gives some information on any errors or possible problems
you may have in installing GNUstep. If configure completes
sucessfully, then the script installs the GNUstep core libraries.

NOTE: This package is a compilation of the following packages:
gnustep-make
gnustep-base
gnustep-gui
gnustep-back
There is no need to install these packages after installing the Startup
package. You can proceed directly to installing GNUstep Applications or
any optional GNUstep libraries after this.

Options
=======

InstallGNUstep accepts a small number of arguments that can change the
behavior of the script.

--help	    Print out the arguments that InstallGNUstep accepts

--batch	    Install the GNUstep system without asking any questions.

--verbose   Print verbose compilation information.

--prefix    To install GNUstep in a non-default location, set the directory
	    prefix on the command line. For example:
	       --prefix=/usr/local/GNUstep

--builddir  Set the directory to build the packages. Normally this is
	    {pwd}/build, where {pwd} is the current working directory.

--config-options
	    Extra options to pass to the configure routines.

Trouble-Shooting
================

Q1. When I type ./InstallGNUstep, I get:

/bin/sh: bad interpreter: No such file or directory

A1: Make sure /bin is in your path:

PATH=$PATH:/bin

Alternatively, you may have un-tarred the files with WinZIP or another
program that added DOS linefeeds to all the files. Make sure to un-tar the
files with a Unix tar program.

Q2. I installed the required libraries and packages in /usr/local or 
some other special place, and InstallGNUstep says it can't find them.

A2. The best thing would be to set this information up beforehand:

export CPPFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib

Then run InstallGNUstep again.

Q4. I installed a required library in /usr/local/{include,lib}, but
I still get errors.

This is wierd, but many times, the gcc compiler will automatically look
in /usr/local for include files and libraries, but the dynamic loader (ld.so)
will not. So a program compiles fine, but will not run. During configuration
and installation in InstallGNUstep, this may happen. Try adding

/usr/local/lib 

to your /etc/ld.so.conf file or add it to the LD_LIBRARY_PATH environment
variable.

Q5. Why doesn't my ffcall work?

ffcall and libffi are two different systems which allow GNUstep to
jump to arbitrary programmaticly define methods and functions. You
system probably has a kernel feature callled PaX, which prohibits a
program from making code executable, which is how ffcall does this
jumping. libffi does not work the same way, so it should work on these
systems (if it has been ported to your system). 

To force Startup to use libffi instead of ffcall on your system type:

./InstallGNUstep --ffi=libffi

Discussion
==========

This install script is meant to make it as easy as possible to install
a bare-bones GNUstep system. That is, it doesn't require all the optional
libraries you might want to have (SSL, etc). 
Ideally, after this bare-bones system is installed, we could start
up a real GNUstep application which could do a much better job of doing any one
or all of the following:

1. Instructing the user how to set up a complete system
2. Downloading any additional required files
3. Compiling and installing an 'optimized' system
4. Compiling and installing useful applications.


This install script can be used in two ways. First, if you have checked
out the sources from SVN, this script expects the core directory to 
be located on the same level as the startup directory (e.g. ../core)

If you have tar.gz files downloaded (or this comes on a CD with the
sources). The sources should be in a directory called sources in the
Startup directory (e.g. ./sources).
