2007-04-12 14:23:35 +00:00
|
|
|
0.1 Introduction
|
|
|
|
================
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2004-06-10 19:39:32 +00:00
|
|
|
If you are installing this package as part of the GNUstep core packages,
|
|
|
|
read the file GNUstep-HOWTO for more complete instructions on how to
|
|
|
|
install the entire GNUstep package (including this library).
|
2001-04-10 03:27:01 +00:00
|
|
|
GNUstep-HOWTO is located in the gnustep-make package or at
|
2007-04-12 14:23:35 +00:00
|
|
|
`http://www.gnustep.org'
|
2001-02-22 05:56:33 +00:00
|
|
|
|
2007-11-08 18:02:23 +00:00
|
|
|
This version of gnustep-base requires gnustep-make version 2.0.0 or
|
|
|
|
higher.
|
|
|
|
|
2005-07-21 13:58:00 +00:00
|
|
|
Other external libraries that you may need to install include:
|
|
|
|
|
|
|
|
* ffcall or ffi (HIGHLY RECOMMENDED)
|
|
|
|
|
|
|
|
* libxml2 (RECOMMENDED)
|
|
|
|
|
|
|
|
* libxslt (OPTIONAL)
|
|
|
|
|
|
|
|
* openssl (OPTIONAL)
|
|
|
|
|
|
|
|
* iconv (OPTIONAL, not needed if you have glibc)
|
|
|
|
|
2001-02-22 05:56:33 +00:00
|
|
|
If you are installing the GNUstep libraries individually, make sure
|
2003-02-17 03:14:17 +00:00
|
|
|
you have installed the GNUstep Makefile package (gnustep-make) already,
|
|
|
|
and you have sourced the makefile script:
|
2007-04-12 14:23:35 +00:00
|
|
|
. $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh
|
2003-02-17 03:14:17 +00:00
|
|
|
See the GNUstep-HOWTO for more information.
|
2001-05-29 19:42:39 +00:00
|
|
|
|
2002-03-14 16:07:01 +00:00
|
|
|
After installing this library you should install gnustep-gui if you
|
|
|
|
are going to use graphical applications.
|
|
|
|
|
2001-05-29 19:42:39 +00:00
|
|
|
When you configure this library, make sure you use the same
|
2007-04-12 14:23:35 +00:00
|
|
|
configuration options as with gstep-make. Some additional options to
|
2001-02-22 05:56:33 +00:00
|
|
|
configure are described below.
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2003-07-23 04:15:36 +00:00
|
|
|
Quick installation instructions:
|
|
|
|
|
|
|
|
./configure
|
|
|
|
make
|
|
|
|
make install
|
|
|
|
|
|
|
|
To make and install the documentation:
|
|
|
|
|
|
|
|
cd Documentation
|
|
|
|
make
|
|
|
|
make install
|
|
|
|
|
2007-04-12 14:23:35 +00:00
|
|
|
0.2 Configuration
|
|
|
|
=================
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2007-04-12 14:23:35 +00:00
|
|
|
Configuration is performed by running the `configure' program at a
|
|
|
|
shell prompt. You may want to use some of the optional arguments to the
|
|
|
|
`configure' program. Type `configure --help' for a list of these. It is
|
|
|
|
not likely that you will need to use the `--prefix' option, since
|
|
|
|
gstep-base will automatically install in the directory specified by the
|
|
|
|
`GNUSTEP_SYSTEM_ROOT' environment variable (specified when you
|
|
|
|
installed gnustep-make).
|
2001-02-22 05:56:33 +00:00
|
|
|
|
|
|
|
Some configuration options for the base library need to be specified
|
2007-04-12 14:23:35 +00:00
|
|
|
when configuring the gnustep-make package. In most cases, it is a good
|
2001-02-22 05:56:33 +00:00
|
|
|
idea to specify the same configuration options when configuring both
|
|
|
|
packages, just to make sure.
|
2000-12-08 19:06:00 +00:00
|
|
|
|
|
|
|
Also make sure you've read the machine-specific instructions for your
|
|
|
|
particular operating system and CPU. These instructions come with the
|
2001-02-22 05:56:33 +00:00
|
|
|
GNUstep-HOWTO and are also located at the GNUstep web site at
|
2007-04-12 14:23:35 +00:00
|
|
|
`http://www.gnustep.org'.
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2007-04-12 14:23:35 +00:00
|
|
|
0.2.1 Reading Command-Line Arguments
|
|
|
|
------------------------------------
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2004-06-10 19:39:32 +00:00
|
|
|
There are two features that change how GNUstep gets access to
|
2000-12-08 19:06:00 +00:00
|
|
|
command-line arguments and environment variables (normally passed to
|
|
|
|
the program in the `main()' function. These features are
|
|
|
|
`--enable-pass-arguments' and the `--enable-fake-main' option(s).
|
|
|
|
|
|
|
|
The fake-main option _secretly_ renames the `main()' function and
|
|
|
|
substitutes it's own function which stores the command line arguments
|
|
|
|
before calling the real main.
|
|
|
|
|
|
|
|
The pass-arguments option absolves GNUstep of any effort to get the
|
|
|
|
command-line arguments and instead forces the developer to insert the
|
|
|
|
line
|
|
|
|
|
|
|
|
[NSProcessInfo initializeWithArguments:argv count:argc environment:env];
|
|
|
|
|
|
|
|
in the `main()' function of their program.
|
|
|
|
|
|
|
|
Normally, the configure script will determine if a program can read
|
|
|
|
process information directly from the system (for use by the class
|
|
|
|
NSProcessInfo) and enable or disable the fake-main hack automatically,
|
|
|
|
but if you find that configure is not doing this correctly, you can
|
|
|
|
force the fake-main hack to be used, which will always work. Note that
|
|
|
|
if the fake-main hack is enabled, you need to include the header file
|
|
|
|
GSConfig.h in you main program - this is done by default if you include
|
|
|
|
NSObject.h or Foundation.h. If you want to avoid the whole idea of the
|
|
|
|
fake-main hack, you can use the pass-arguments option. In this case you
|
|
|
|
will be forced to call the NSProcessInfo initializeWithArguments method
|
|
|
|
to pass the program arguments to NSProcessInfo (This would be done
|
|
|
|
automatically if you use the NSApplicationMain function in a gui
|
|
|
|
application).
|
|
|
|
|
2007-04-12 14:23:35 +00:00
|
|
|
0.2.2 FFI Library
|
|
|
|
-----------------
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2004-06-10 19:39:32 +00:00
|
|
|
GNUstep's NSInvocations and Distributed Objects code involves detailed
|
|
|
|
manipulation of the stack and function calls using a library that
|
|
|
|
implements a Foreign-Function Interface (FFI), such as the ffcall or
|
|
|
|
libffi libraries. Use of ffcall is automatically enabled if the ffcall
|
|
|
|
libraries are found (and the same with libffi, although ffcall takes
|
|
|
|
precedence), unless specifically disabled with `--disable-do'. If
|
|
|
|
disabled, the code reverts to the builtin method for stack frame
|
2004-02-29 02:57:22 +00:00
|
|
|
handling, but this rarely works on non-ix86 machines and is not
|
|
|
|
supported.
|
2001-02-22 05:56:33 +00:00
|
|
|
|
|
|
|
You need to have the ffcall libraries, which you can get from
|
2007-04-12 14:23:35 +00:00
|
|
|
`ftp://www.gnustep.org/pub/gnustep/libs/' or
|
|
|
|
`http://clisp.cons.org/~haible/'. You also need to have a special
|
2002-04-30 21:26:43 +00:00
|
|
|
version of the Objective-C library if you are not using gcc 3.x (before
|
|
|
|
gcc 3.0 the required hooks were not in the standard library). You can
|
2007-04-12 14:23:35 +00:00
|
|
|
get this library from `ftp://www.gnustep.org/pub/gnustep/libs'.
|
2002-04-30 21:26:43 +00:00
|
|
|
|
2004-02-29 02:57:22 +00:00
|
|
|
Support for the libffi library has also been added. Current versions
|
|
|
|
of libffi are only distributed with gcc version 3.x, although it is not
|
|
|
|
installed by default. To install it, after you have built gcc, do
|
|
|
|
something like:
|
|
|
|
mkdir libffi-build
|
|
|
|
cd libffi-build
|
2003-02-17 03:14:17 +00:00
|
|
|
../gcc-3.2.1/libffi/configure
|
|
|
|
make
|
|
|
|
ffitest
|
|
|
|
sudo make install
|
|
|
|
|
|
|
|
To enable this in the gnustep-base library, use the configure option
|
|
|
|
`--enable-libffi'.
|
2001-06-13 02:30:25 +00:00
|
|
|
|
2007-04-12 14:23:35 +00:00
|
|
|
0.2.3 OpenSSL
|
|
|
|
-------------
|
2001-06-13 02:30:25 +00:00
|
|
|
|
2004-06-10 19:39:32 +00:00
|
|
|
GNUstep base has optional support for using the OpenSSL libraries for
|
2002-01-07 21:59:28 +00:00
|
|
|
secure URL connections (with the NSURL classes). This functionality is
|
|
|
|
compiled as a separate bundle since the OpenSSL license is not
|
|
|
|
compatible with GPL, and in the hopes that if someone writes an openssl
|
|
|
|
replacement, it can quickly be used by creating another bundle. The
|
|
|
|
openssl libraries need to be installed for this to work. To disable
|
|
|
|
this option add `--disable-openssl' when running the `configure' script.
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2007-04-12 14:23:35 +00:00
|
|
|
0.3 Compilation
|
|
|
|
===============
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2004-06-10 19:39:32 +00:00
|
|
|
To compile this library, type make. After this is complete, type make
|
2001-02-22 05:56:33 +00:00
|
|
|
install (make sure you are the root user). Some additional options you
|
2007-04-12 14:23:35 +00:00
|
|
|
can use with make are `debug=yes' to make a debugging version of the
|
2001-02-22 05:56:33 +00:00
|
|
|
library and `shared=no' to make a static version of the library. See
|
2007-04-12 14:23:35 +00:00
|
|
|
the gstep-make package for more information on these options.
|
2001-02-22 05:56:33 +00:00
|
|
|
|
2007-04-12 14:23:35 +00:00
|
|
|
If you can't install gstep-base as root, be sure to edit the
|
2001-02-22 05:56:33 +00:00
|
|
|
`Tools/gdomap.h' file and uncomment the last line.
|
|
|
|
|
2005-07-21 13:58:00 +00:00
|
|
|
Copyright (C) 2005 Free Software Foundation
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
notice and this notice are preserved.
|
|
|
|
|