mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-20 15:00:59 +00:00
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21512 72102866-910b-0410-8b05-ffd578937521
164 lines
6.3 KiB
Text
164 lines
6.3 KiB
Text
Introduction
|
|
============
|
|
|
|
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).
|
|
GNUstep-HOWTO is located in the gnustep-make package or at
|
|
<http://www.gnustep.org>
|
|
|
|
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)
|
|
|
|
If you are installing the GNUstep libraries individually, make sure
|
|
you have installed the GNUstep Makefile package (gnustep-make) already,
|
|
and you have sourced the makefile script:
|
|
. $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh
|
|
See the GNUstep-HOWTO for more information.
|
|
|
|
After installing this library you should install gnustep-gui if you
|
|
are going to use graphical applications.
|
|
|
|
When you configure this library, make sure you use the same
|
|
configuration options as with gstep-make. Some additional options to
|
|
configure are described below.
|
|
|
|
Quick installation instructions:
|
|
|
|
./configure
|
|
make
|
|
make install
|
|
|
|
To make and install the documentation:
|
|
|
|
cd Documentation
|
|
make
|
|
make install
|
|
|
|
Configuration
|
|
=============
|
|
|
|
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).
|
|
|
|
Some configuration options for the base library need to be specified
|
|
when configuring the gnustep-make package. In most cases, it is a good
|
|
idea to specify the same configuration options when configuring both
|
|
packages, just to make sure.
|
|
|
|
Also 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>.
|
|
|
|
Reading Command-Line Arguments
|
|
------------------------------
|
|
|
|
There are two features that change how GNUstep gets access to
|
|
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).
|
|
|
|
FFI Library
|
|
-----------
|
|
|
|
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
|
|
handling, but this rarely works on non-ix86 machines and is not
|
|
supported.
|
|
|
|
You need to have the ffcall libraries, which you can get from
|
|
<ftp://www.gnustep.org/pub/gnustep/libs/> or
|
|
<http://clisp.cons.org/~haible/>. You also need to have a special
|
|
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
|
|
get this library from <ftp://www.gnustep.org/pub/gnustep/libs>.
|
|
|
|
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
|
|
../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'.
|
|
|
|
OpenSSL
|
|
-------
|
|
|
|
GNUstep base has optional support for using the OpenSSL libraries for
|
|
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.
|
|
|
|
Compilation
|
|
===========
|
|
|
|
To compile this library, type make. After this is complete, type make
|
|
install (make sure you are the root user). Some additional options you
|
|
can use with make are `debug=yes' to make a debugging version of the
|
|
library and `shared=no' to make a static version of the library. See
|
|
the gstep-make package for more information on these options.
|
|
|
|
If you can't install gstep-base as root, be sure to edit the
|
|
`Tools/gdomap.h' file and uncomment the last line.
|
|
|
|
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.
|
|
|