Rewritten large parts of installation instructions updating for new installation/configuration system

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@24649 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Nicola Pero 2007-02-19 00:53:24 +00:00
parent 49d77e247d
commit bc907f97ce
3 changed files with 335 additions and 161 deletions

View file

@ -1,3 +1,9 @@
2007-02-19 Nicola Pero <nicola.pero@meta-innovation.com>
* Documentation/install.texi: Rewritten large parts to describe
the new installation and configuration process.
* INSTALL: Regenerated.
2007-02-18 Nicola Pero <nicola.pero@meta-innovation.com>
* config-noarch.make.in: Removed the deprecation warnings added

View file

@ -13,19 +13,17 @@
@section Introduction
If you are installing this package as part of the GNUstep core
libraries, read the file GNUstep-HOWTO for more complete instructions on
how to install the entire GNUstep package (including this package).
libraries, read the file GNUstep-HOWTO for more complete instructions
on how to install the entire GNUstep package (including this package).
GNUstep-HOWTO comes with this distribution.
This should be the first GNUstep package you install. Before installing
this package, install ffcall or libffi and any other libraries that GNUstep may
need (see the GNUstep-HOWTO). Read and follow the instructions on
setting up the GNUstep environement below. Then install gnustep-base.
This should be the first GNUstep package you install. Before
installing this package, install ffcall or libffi and any other
libraries that GNUstep may need (see the GNUstep-HOWTO). Read and
follow the instructions on setting up the GNUstep environement below.
Then install gnustep-base.
When you configure additional libraries, make sure you use the same
configuration options as with gstep-make.
Also make sure you've read the machine-specific instructions for your
Make sure you've read the machine-specific instructions for your
particular operating system and CPU. These instructions come with the
GNUstep-HOWTO and are also located at the GNUstep web site at
@url{http://www.gnustep.org}.
@ -38,6 +36,19 @@ make
make install
@end example
This will use the default GNUstep filesystem layout (in other words,
all of GNUstep will end up installed into /usr/GNUstep). If you are on a
Unix system, another popular option is
@example
./configure --with-layout=fhs
make
make install
@end example
which will use the FHS (in other words, all of GNUstep will end up
installed into /usr/local).
To make and install the documentation:
@example
@ -49,27 +60,45 @@ make install
@node Configuration, Installation, Introduction, Top
@section Configuration
The GNUstep packages uses the Autoconf mechanism for
configuration; it checks some host capabilties which are used by
all GNUstep software. To configure just type:
The GNUstep packages uses the Autoconf mechanism for configuration; it
checks some host capabilties which are used by all GNUstep software.
To configure just type:
@example
./configure
@end example
The GNUstep makefile package needs a root directory. If the
GNUSTEP_SYSTEM_ROOT environment variable is set then configure will
use its value as the root directory. You can also specify the root
directory when you run configure with the prefix paramter; the
following command makes /usr/local/GNUstep the root directory:
The GNUstep makefile package needs to know which filesystem layout to
use when installing; this determines the way that various directories
in the GNUstep domains (SYSTEM, NETWORK, LOCAL, USER) are mapped to
local directories on disk. In the FilesystemLayouts/README file you
can find detailed information on filesystem layouts.
To specify a filesystem layout, use the --with-layout=xxx option. The
default is
@example
./configure --prefix=/usr/local/GNUstep
./configure --with-layout=gnustep
@end example
If you do not have the GNUSTEP_SYSTEM_ROOT environment variable set
and you do not specify a root directory when running configure, then
configure will use /usr/GNUstep as the default root directory.
which installs GNUstep in /usr/GNUstep using the GNUstep layout (that
is, /usr/GNUstep/System, /usr/GNUstep/Local, ~/GNUstep). Another
popular option is '--with-layout=fhs' which installs gnustep-make into
FHS directories based on /usr/local. Check the FilesystemLayouts for
more options.
If you want to install the same layout but in a different location
(for example, /opt/gnustep), you can use --prefix=xxx,
@example
./configure --prefix=/opt/gnustep
@end example
If you're confused and want to see exactly what directories will be
used for a certain choice of ./configure flags, have a look at the
GNUstep.conf file that is generated by ./configure. It will list the
full paths to all the relevant GNUstep directories that would be used
if you install the software with that configuration.
To see more options you can use with configure, type
@ -191,104 +220,163 @@ make install
@node Installation, Setup, Configuration, Top
@section Installation
After you configure the GNUstep makefile package, then you need to
compile the programs that come with the package. Currently there is
only a single C program which needs to be compiled; all of the other
files are either shell scripts or makefile fragments, so you can
compile and install the makefile package in one step with:
After you configure the GNUstep makefile package, you can go straight
into installation (there is nothing to compile):
@example
make install
@end example
After you have installed the GNUstep makefile package, there is still
some minor administration to be performed. Based upon whether you are
setting up the GNUstep environment for a single user or all users on
your system, perform the appropriate step below.
After you have installed the GNUstep makefile package, there might
still be some minor administration to be performed, depending on your
configuration.
@node Setup, , Installation, Top
@node Setup, UserDomainSetup, Installation, Top
@section Setting up the GNUstep environment
GNUstep-make will install all programs and libraries in the
directories specified by the filesystem layout that you choose.
In here we explain how to set up your environment so that the
operating system can find the programs and libraries in these
directories.
The procedure depends on the type of layout (flattened or
non-flattened), and on the amount of advanced options that you want to
use.
@menu
* Multi-User::
* Single-User::
* Flattened::
* Non-Flattened::
* UserDomainSetup::
* MultipleInstallations::
@end menu
@node Multi-User, Single-User, Setup, Setup
@subsection Setting up the GNUstep environment for all users
@node Flattened, Non-Flattened, Setup, Setup
@subsection Flattened (default) Setup
The GNUstep environment and thus usage of the makefile package is based
almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable. So
essentially the setup involved is to make sure that the variable is
defined for all users. The GNUstep.sh file within the makefile package
contains all of the environment variable settings required, so you want
to call that shell. Some systems, like GNU/Linux have an
@file{/etc/profile.d} directory where scripts can be executed
automatically. Just copy GNUstep.sh to this directory for it to
work. For other UNIX systems, there might be a system wide script that
everyone uses, such as @file{/etc/bashrc}, where you could add
lines similar to these:
In a flattened setup (the default unless you use the
--disable-flattened configure argument), you can use a simple setup
where you just need to make sure that the few program and library
directories are found by the shell/linker.
Check the description of your filesystem in FilesystemLayouts to find
precise simplified instructions for your layout.
In general, you need to your GNUSTEP_SYSTEM_TOOLS,
GNUSTEP_NETWORK_TOOLS and GNUSTEP_LOCAL_TOOLS to your PATH, and add
your GNUSTEP_SYSTEM_LIBRARIES, GNUSTEP_NETWORK_LIBRARIES and
GNUSTEP_LOCAL_LIBRARIES to your linker paths (which is /etc/ld.so.conf
on GNU/Linux).
To build software, you also need to set GNUSTEP_MAKEFILES. (PS: This requirement
is likely to go away soon)
@node Non-Flattened, , Flattened, Setup
@subsection Non-Flattend (fat binary) Setup
(Advanced configuration)
If the setup is non-flattened (ie, fat binary support is enabled)
programs and libraries will be installed in appropriate subdirectories
so that binaries for different machines/library-combos can coexist.
This is the case only if you configure gnustep-make with the option
--disable-flattened.
In this case, the recommended solution for setting up the GNUstep
environment is to source the GNUstep.sh file.
@example
# Setup for the GNUstep environment
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
@end example
This will source in the GNUstep.sh file and set the environment
variables; thus making them available for all users. Before executing
this script, you can setup a default path for scripts in the
makefiles package to use for searching for tools and apps by
defining the variable GNUSTEP_PATHLIST (and exporting
it). By default, it's set to
(change the path to be the path to your GNUstep.sh file on disk.
Common cases include /usr/GNUstep/System/Library/Libraries/Makefiles
and /usr/local/share/GNUstep/Makefiles)
You can run this command in your shell every time, or you may want to
add the command to your shell startup scripts - either the ones for
your own user (for example, @file{.bash_profile} for Bash) or the ones
for the whole system (for example, @file{/etc/profile} on GNU/Linux).
Please note that you need to execute this command both to build
software using gnustep-make and to run software installed by
gnustep-make.
@node UserDomainSetup, MultipleInstallations, Setup, Setup
@section Setting up your GNUstep User domain
(Advanced configuration)
The USER domain is generally expected to be in your home directory;
you can use the USER domain to install programs or libraries in your
home directory without affecting other users.
If you want to access programs or libraries installed in your USER
domain, then you really need to source GNUstep.sh in all cases (both
flattened and non-flattened), as explained in the Non-Flattened
section.
If you want to change the filesystem layout of your USER domain
(without reinstalling gnustep-make or affecting other people's USER
domains), you can do so at runtime by creating a file called
~/.GNUstep.conf (this might have a different name if your filesystem
layout specifies otherwise).
In that file, you can set all the GNUSTEP_USER_* varibles set in
GNUstep.conf. Check your GNUstep.conf for a full description. Here
is an example in which all the GNUstep domain is moved into
~/Test/GNUstep instead of ~/GNUstep:
@example
$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
GNUSTEP_USER_DIR=Test/GNUstep
@end example
which might look something like this:
@node MultipleInstallations, , UserDomainSetup, Setup
@section Having multiple gnustep-makes installed at the same time
(Advanced configuration)
You can install gnustep-make multiple times in different directories
by using a different config file for each. But if you do, then you
must make sure that you can easily switch the operating system paths
from one installation to the other. An easy way to do this is to
configure your GNUstep by using GNUstep.sh as explained in the
non-flattened instructions.
Your default gnustep-make installation is the one described in the
default GNUstep.conf file for the system; on GNU/Linux this is
@file{/etc/GNUstep/GNUstep.conf}. You can create a second one that
uses a different config file; for example:
@example
~/GNUstep:/usr/GNUstep/Local:/usr/GNUstep/System
./configure --prefix=/opt/mytest --with-config-file=/etc/GNUstep-mytest.conf
@end example
when all is done.
When you install, this second instance of gnustep-make will reside in
@file{/opt/mytest}, and have @file{/etc/GNUstep-mytest.conf} as config
file.
NB. This path is NOT used by GNUstep tools and applications
themselves ... they use a standard function
NSSearchPathForDirectoriesInDomains() to locate files instead.
@node Single-User, , Multi-User, Setup
@subsection Setting up the GNUstep environment for a single user
The GNUstep environment and thus usage of the makefile package is
based almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable.
So essentially the setup involved is to make sure that the variable is
defined for the user. The GNUstep.sh file within the makefile package
contains all of the environment variable settings required, so you
want to call that shell when the user logs in to the system. Most
shells have some file that you read upon login, for example the BASH
shell reads the .bash_profile file in the user's home directory. So
you can add the following lines to that file:
To use this second installation instead of the first one, you only
need to set the GNUSTEP_CONFIG_FILE variable to point to the next
config file and source GNUstep.sh:
@example
# Setup for the GNUstep environment
if [ -f $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh ]; then
. $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh
fi
export GNUSTEP_CONFIG_FILE=/etc/GNUstep-mytest.conf
. /opt/mytest/System/Library/Makefies/GNUstep.sh
@end example
This will source in the GNUstep.sh file and set the environment
variables; thus making them available for the user.
The GNUstep.sh file will set up GNUSTEP_USER_ROOT to the GNUstep
subdirectory of the users home directory by default. This may be
overridden by a user providing a .GNUsteprc file in their home
directory. It may be overridden on a system-wide basis by supplying
a .GNUsteprc file in the GNUSTEP_SYSTEM_ROOT directory.
To stop using a GNUstep installation, reset your GNUstep environment
with the GNUstep-reset.sh script and destroy the variable
GNUSTEP_CONFIG_FILE --
@example
# Set up to store GNUstep files directly in my home directory
GNUSTEP_USER_ROOT=~
. /opt/mytest/System/Library/Makefies/GNUstep-reset.sh
unset GNUSTEP_CONFIG_FILE
@end example
After this, you are ready to start using a new one (by setting a new
GNSTEP_CONFIG_FILE and then sourcing the GNUstep.sh of the new one).
@bye

226
INSTALL
View file

@ -5,8 +5,8 @@
================
If you are installing this package as part of the GNUstep core
libraries, read the file GNUstep-HOWTO for more complete instructions on
how to install the entire GNUstep package (including this package).
libraries, read the file GNUstep-HOWTO for more complete instructions
on how to install the entire GNUstep package (including this package).
GNUstep-HOWTO comes with this distribution.
This should be the first GNUstep package you install. Before
@ -15,10 +15,7 @@ libraries that GNUstep may need (see the GNUstep-HOWTO). Read and
follow the instructions on setting up the GNUstep environement below.
Then install gnustep-base.
When you configure additional libraries, make sure you use the same
configuration options as with gstep-make.
Also make sure you've read the machine-specific instructions for your
Make sure you've read the machine-specific instructions for your
particular operating system and CPU. These instructions come with the
GNUstep-HOWTO and are also located at the GNUstep web site at
`http://www.gnustep.org'.
@ -29,6 +26,17 @@ GNUstep-HOWTO and are also located at the GNUstep web site at
make
make install
This will use the default GNUstep filesystem layout (in other words,
all of GNUstep will end up installed into /usr/GNUstep). If you are on
a Unix system, another popular option is
./configure --with-layout=fhs
make
make install
which will use the FHS (in other words, all of GNUstep will end up
installed into /usr/local).
To make and install the documentation:
cd Documentation
@ -44,17 +52,33 @@ To configure just type:
./configure
The GNUstep makefile package needs a root directory. If the
GNUSTEP_SYSTEM_ROOT environment variable is set then configure will use
its value as the root directory. You can also specify the root
directory when you run configure with the prefix paramter; the
following command makes /usr/local/GNUstep the root directory:
The GNUstep makefile package needs to know which filesystem layout to
use when installing; this determines the way that various directories
in the GNUstep domains (SYSTEM, NETWORK, LOCAL, USER) are mapped to
local directories on disk. In the FilesystemLayouts/README file you
can find detailed information on filesystem layouts.
./configure --prefix=/usr/local/GNUstep
To specify a filesystem layout, use the -with-layout=xxx option. The
default is
If you do not have the GNUSTEP_SYSTEM_ROOT environment variable set
and you do not specify a root directory when running configure, then
configure will use /usr/GNUstep as the default root directory.
./configure --with-layout=gnustep
which installs GNUstep in /usr/GNUstep using the GNUstep layout (that
is, /usr/GNUstep/System, /usr/GNUstep/Local, ~/GNUstep). Another
popular option is '-with-layout=fhs' which installs gnustep-make into
FHS directories based on /usr/local. Check the FilesystemLayouts for
more options.
If you want to install the same layout but in a different location
(for example, /opt/gnustep), you can use -prefix=xxx,
./configure --prefix=/opt/gnustep
If you're confused and want to see exactly what directories will be
used for a certain choice of ./configure flags, have a look at the
GNUstep.conf file that is generated by ./configure. It will list the
full paths to all the relevant GNUstep directories that would be used
if you install the software with that configuration.
To see more options you can use with configure, type
@ -158,84 +182,140 @@ the make package several times.
1.3 Installation
================
After you configure the GNUstep makefile package, then you need to
compile the programs that come with the package. Currently there is
only a single C program which needs to be compiled; all of the other
files are either shell scripts or makefile fragments, so you can
compile and install the makefile package in one step with:
After you configure the GNUstep makefile package, you can go straight
into installation (there is nothing to compile):
make install
After you have installed the GNUstep makefile package, there is still
some minor administration to be performed. Based upon whether you are
setting up the GNUstep environment for a single user or all users on
your system, perform the appropriate step below.
After you have installed the GNUstep makefile package, there might
still be some minor administration to be performed, depending on your
configuration.
1.4 Setting up the GNUstep environment
======================================
1.4.1 Setting up the GNUstep environment for all users
------------------------------------------------------
GNUstep-make will install all programs and libraries in the directories
specified by the filesystem layout that you choose.
The GNUstep environment and thus usage of the makefile package is based
almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable. So
essentially the setup involved is to make sure that the variable is
defined for all users. The GNUstep.sh file within the makefile package
contains all of the environment variable settings required, so you want
to call that shell. Some systems, like GNU/Linux have an
`/etc/profile.d' directory where scripts can be executed automatically.
Just copy GNUstep.sh to this directory for it to work. For other UNIX
systems, there might be a system wide script that everyone uses, such
as `/etc/bashrc', where you could add lines similar to these:
In here we explain how to set up your environment so that the
operating system can find the programs and libraries in these
directories.
The procedure depends on the type of layout (flattened or
non-flattened), and on the amount of advanced options that you want to
use.
1.4.1 Flattened (default) Setup
-------------------------------
In a flattened setup (the default unless you use the -disable-flattened
configure argument), you can use a simple setup where you just need to
make sure that the few program and library directories are found by the
shell/linker.
Check the description of your filesystem in FilesystemLayouts to find
precise simplified instructions for your layout.
In general, you need to your GNUSTEP_SYSTEM_TOOLS,
GNUSTEP_NETWORK_TOOLS and GNUSTEP_LOCAL_TOOLS to your PATH, and add
your GNUSTEP_SYSTEM_LIBRARIES, GNUSTEP_NETWORK_LIBRARIES and
GNUSTEP_LOCAL_LIBRARIES to your linker paths (which is /etc/ld.so.conf
on GNU/Linux).
To build software, you also need to set GNUSTEP_MAKEFILES. (PS: This
requirement is likely to go away soon)
1.4.2 Non-Flattend (fat binary) Setup
-------------------------------------
(Advanced configuration)
If the setup is non-flattened (ie, fat binary support is enabled)
programs and libraries will be installed in appropriate subdirectories
so that binaries for different machines/library-combos can coexist.
This is the case only if you configure gnustep-make with the option
-disable-flattened.
In this case, the recommended solution for setting up the GNUstep
environment is to source the GNUstep.sh file.
# Setup for the GNUstep environment
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
This will source in the GNUstep.sh file and set the environment
variables; thus making them available for all users. Before executing
this script, you can setup a default path for scripts in the makefiles
package to use for searching for tools and apps by defining the
variable GNUSTEP_PATHLIST (and exporting it). By default, it's set to
(change the path to be the path to your GNUstep.sh file on disk.
Common cases include /usr/GNUstep/System/Library/Libraries/Makefiles
and /usr/local/share/GNUstep/Makefiles)
$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
You can run this command in your shell every time, or you may want to
add the command to your shell startup scripts - either the ones for
your own user (for example, `.bash_profile' for Bash) or the ones for
the whole system (for example, `/etc/profile' on GNU/Linux).
which might look something like this:
Please note that you need to execute this command both to build
software using gnustep-make and to run software installed by
gnustep-make.
~/GNUstep:/usr/GNUstep/Local:/usr/GNUstep/System
1.5 Setting up your GNUstep User domain
=======================================
when all is done.
(Advanced configuration)
NB. This path is NOT used by GNUstep tools and applications
themselves ... they use a standard function
NSSearchPathForDirectoriesInDomains() to locate files instead.
The USER domain is generally expected to be in your home directory;
you can use the USER domain to install programs or libraries in your
home directory without affecting other users.
1.4.2 Setting up the GNUstep environment for a single user
----------------------------------------------------------
If you want to access programs or libraries installed in your USER
domain, then you really need to source GNUstep.sh in all cases (both
flattened and non-flattened), as explained in the Non-Flattened section.
The GNUstep environment and thus usage of the makefile package is based
almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable. So
essentially the setup involved is to make sure that the variable is
defined for the user. The GNUstep.sh file within the makefile package
contains all of the environment variable settings required, so you want
to call that shell when the user logs in to the system. Most shells
have some file that you read upon login, for example the BASH shell
reads the .bash_profile file in the user's home directory. So you can
add the following lines to that file:
If you want to change the filesystem layout of your USER domain
(without reinstalling gnustep-make or affecting other people's USER
domains), you can do so at runtime by creating a file called
~/.GNUstep.conf (this might have a different name if your filesystem
layout specifies otherwise).
# Setup for the GNUstep environment
if [ -f $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh ]; then
. $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh
fi
In that file, you can set all the GNUSTEP_USER_* varibles set in
GNUstep.conf. Check your GNUstep.conf for a full description. Here is
an example in which all the GNUstep domain is moved into ~/Test/GNUstep
instead of ~/GNUstep:
This will source in the GNUstep.sh file and set the environment
variables; thus making them available for the user.
GNUSTEP_USER_DIR=Test/GNUstep
The GNUstep.sh file will set up GNUSTEP_USER_ROOT to the GNUstep
subdirectory of the users home directory by default. This may be
overridden by a user providing a .GNUsteprc file in their home
directory. It may be overridden on a system-wide basis by supplying a
.GNUsteprc file in the GNUSTEP_SYSTEM_ROOT directory.
1.6 Having multiple gnustep-makes installed at the same time
============================================================
# Set up to store GNUstep files directly in my home directory
GNUSTEP_USER_ROOT=~
(Advanced configuration)
You can install gnustep-make multiple times in different directories
by using a different config file for each. But if you do, then you
must make sure that you can easily switch the operating system paths
from one installation to the other. An easy way to do this is to
configure your GNUstep by using GNUstep.sh as explained in the
non-flattened instructions.
Your default gnustep-make installation is the one described in the
default GNUstep.conf file for the system; on GNU/Linux this is
`/etc/GNUstep/GNUstep.conf'. You can create a second one that uses a
different config file; for example:
./configure --prefix=/opt/mytest --with-config-file=/etc/GNUstep-mytest.conf
When you install, this second instance of gnustep-make will reside in
`/opt/mytest', and have `/etc/GNUstep-mytest.conf' as config file.
To use this second installation instead of the first one, you only
need to set the GNUSTEP_CONFIG_FILE variable to point to the next
config file and source GNUstep.sh:
export GNUSTEP_CONFIG_FILE=/etc/GNUstep-mytest.conf
. /opt/mytest/System/Library/Makefies/GNUstep.sh
To stop using a GNUstep installation, reset your GNUstep environment
with the GNUstep-reset.sh script and destroy the variable
GNUSTEP_CONFIG_FILE -
. /opt/mytest/System/Library/Makefies/GNUstep-reset.sh
unset GNUSTEP_CONFIG_FILE
After this, you are ready to start using a new one (by setting a new
GNSTEP_CONFIG_FILE and then sourcing the GNUstep.sh of the new one).