1998-01-02 18:09:52 +00:00
|
|
|
@c This is a generic INSTALL file for utilities distributions.
|
|
|
|
@c If this package does not come with, e.g., installable documentation or
|
|
|
|
@c data files, please ignore the references to them below.
|
|
|
|
|
|
|
|
@c set the vars GNUSTEP_BASE_VERSION and GNUSTEP_BASE_GCC_VERSION
|
2000-11-07 04:50:41 +00:00
|
|
|
@include version.texi
|
1998-01-02 18:09:52 +00:00
|
|
|
|
2000-12-08 19:06:00 +00:00
|
|
|
@node Top, Introduction, (dir), (dir)
|
|
|
|
|
|
|
|
@menu
|
|
|
|
* Introduction::
|
|
|
|
* Configuration::
|
|
|
|
* Compilation::
|
|
|
|
@end menu
|
|
|
|
|
|
|
|
@node Introduction, Configuration, Top, Top
|
|
|
|
@section Introduction
|
|
|
|
|
2001-04-10 03:27:01 +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).
|
|
|
|
GNUstep-HOWTO is located in the gnustep-make package or at
|
|
|
|
@url{http://www.gnustep.org}
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2007-04-12 21:25:05 +00:00
|
|
|
This version of gnustep-base requires gnustep-make version 2.0.0 or higher.
|
|
|
|
|
2005-05-22 03:32:16 +00:00
|
|
|
Other external libraries that you may need to install include:
|
|
|
|
|
|
|
|
@itemize
|
|
|
|
@item ffcall or ffi (HIGHLY RECOMMENDED)
|
|
|
|
@item libxml2 (RECOMMENDED)
|
|
|
|
@item libxslt (OPTIONAL)
|
|
|
|
@item openssl (OPTIONAL)
|
|
|
|
@item iconv (OPTIONAL, not needed if you have glibc)
|
|
|
|
@end itemize
|
|
|
|
|
2001-02-22 05:56:33 +00:00
|
|
|
If you are installing the GNUstep libraries individually, make sure you
|
2003-02-14 19:48:38 +00:00
|
|
|
have installed the GNUstep Makefile package (gnustep-make) already, and
|
|
|
|
you have sourced the makefile script:
|
|
|
|
@example
|
2004-02-29 02:57:22 +00:00
|
|
|
. $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh
|
2003-02-14 19:48:38 +00:00
|
|
|
@end example
|
|
|
|
See the GNUstep-HOWTO for more information.
|
2001-05-29 02:38:22 +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-02-22 05:56:33 +00:00
|
|
|
When you configure this library, make sure you use the same
|
2000-12-08 19:06:00 +00:00
|
|
|
configuration options as with gstep-make. Some additional options to
|
|
|
|
configure are described below.
|
|
|
|
|
2003-07-06 02:55:01 +00:00
|
|
|
Quick installation instructions:
|
|
|
|
|
|
|
|
@example
|
|
|
|
./configure
|
|
|
|
make
|
|
|
|
make install
|
|
|
|
@end example
|
|
|
|
|
|
|
|
To make and install the documentation:
|
|
|
|
|
|
|
|
@example
|
|
|
|
cd Documentation
|
|
|
|
make
|
|
|
|
make install
|
|
|
|
@end example
|
|
|
|
|
2001-06-11 15:38:22 +00:00
|
|
|
@node Configuration, Compilation, Introduction, Top
|
2000-12-08 19:06:00 +00:00
|
|
|
@section Configuration
|
|
|
|
|
|
|
|
Configuration is performed by running the @file{configure} program at a
|
|
|
|
shell prompt. You may want to use some of the optional arguments to the
|
|
|
|
@file{configure} program. Type @code{configure --help}
|
|
|
|
for a list of these. It is not likely that you will need to use the
|
|
|
|
@code{--prefix} option, since gstep-base will automatically install in
|
|
|
|
the directory specified by the @code{GNUSTEP_SYSTEM_ROOT} environment
|
2001-04-10 03:27:01 +00:00
|
|
|
variable (specified when you installed gnustep-make).
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2001-02-22 05:56:33 +00:00
|
|
|
Some configuration options for the base library need to be specified
|
2001-04-10 03:27:01 +00:00
|
|
|
when configuring the gnustep-make package. In most cases, it is a good
|
2000-12-08 19:06:00 +00:00
|
|
|
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
|
2001-02-22 05:56:33 +00:00
|
|
|
GNUstep-HOWTO and are also located at the GNUstep web site at
|
2000-12-08 19:06:00 +00:00
|
|
|
@url{http://www.gnustep.org}.
|
|
|
|
|
|
|
|
@menu
|
|
|
|
* Reading Command-Line Arguments::
|
|
|
|
* FFI Library::
|
2001-06-11 15:38:22 +00:00
|
|
|
* OpenSSL::
|
2000-12-08 19:06:00 +00:00
|
|
|
@end menu
|
|
|
|
|
2001-06-11 15:38:22 +00:00
|
|
|
@node Reading Command-Line Arguments, FFI Library, Configuration, Configuration
|
2001-02-22 05:56:33 +00:00
|
|
|
@subsection Reading Command-Line Arguments
|
2000-12-08 19:06:00 +00:00
|
|
|
|
|
|
|
There are two features that change how GNUstep gets access to
|
|
|
|
command-line arguments and environment variables (normally passed to
|
|
|
|
the program in the @code{main()} function. These features are
|
|
|
|
@code{--enable-pass-arguments} and the @code{--enable-fake-main}
|
|
|
|
option(s).
|
|
|
|
|
|
|
|
The fake-main option @emph{secretly} renames the @code{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
|
|
|
|
|
|
|
|
@example
|
|
|
|
[NSProcessInfo initializeWithArguments:argv count:argc environment:env];
|
|
|
|
@end example
|
|
|
|
|
|
|
|
in the @code{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).
|
|
|
|
|
2001-06-11 15:38:22 +00:00
|
|
|
@node FFI Library, OpenSSL, Reading Command-Line Arguments, Configuration
|
2001-02-22 05:56:33 +00:00
|
|
|
@subsection FFI Library
|
2000-12-08 19:06:00 +00:00
|
|
|
|
|
|
|
GNUstep's NSInvocations and Distributed Objects code involves detailed
|
2002-04-30 21:26:43 +00:00
|
|
|
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
|
2004-02-29 02:57:22 +00:00
|
|
|
libraries are found (and the same with libffi, although ffcall takes
|
|
|
|
precedence), unless specifically disabled with @code{--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.
|
2002-04-30 21:26:43 +00:00
|
|
|
|
|
|
|
You need to have the ffcall libraries, which you can get from
|
|
|
|
@url{ftp://www.gnustep.org/pub/gnustep/libs/} or
|
2000-12-08 19:06:00 +00:00
|
|
|
@url{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 get this library from
|
|
|
|
@url{ftp://www.gnustep.org/pub/gnustep/libs}.
|
|
|
|
|
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:
|
2002-12-10 16:52:01 +00:00
|
|
|
@example
|
2004-02-29 02:57:22 +00:00
|
|
|
mkdir libffi-build
|
|
|
|
cd libffi-build
|
2002-12-10 16:52:01 +00:00
|
|
|
../gcc-3.2.1/libffi/configure
|
|
|
|
make
|
|
|
|
ffitest
|
|
|
|
sudo make install
|
|
|
|
@end example
|
|
|
|
|
|
|
|
To enable this in the gnustep-base library, use the configure option
|
|
|
|
@code{--enable-libffi}.
|
2000-12-08 19:06:00 +00:00
|
|
|
|
2001-06-11 15:38:22 +00:00
|
|
|
@node OpenSSL, , FFI Library, Configuration
|
|
|
|
@subsection OpenSSL
|
|
|
|
|
|
|
|
GNUstep base has optional support for using the OpenSSL libraries for
|
2002-01-02 21:01:26 +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 @code{--disable-openssl} when running the
|
|
|
|
@file{configure} script.
|
2001-06-11 15:38:22 +00:00
|
|
|
|
|
|
|
@node Compilation, , Configuration, Top
|
2000-12-08 19:06:00 +00:00
|
|
|
@section 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 @samp{debug=yes} to make a debugging version of
|
|
|
|
the library and @samp{shared=no} to make a static version of the
|
|
|
|
library. See the gstep-make package for more information on these options.
|
|
|
|
|
2001-02-22 05:56:33 +00:00
|
|
|
If you can't install gstep-base as root, be sure to edit the
|
|
|
|
@file{Tools/gdomap.h} file and uncomment the last line.
|
1998-01-02 18:09:52 +00:00
|
|
|
|
2005-07-15 22:51:23 +00:00
|
|
|
@ifinfo
|
|
|
|
Copyright @copyright{} 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.
|
|
|
|
@end ifinfo
|
|
|
|
|
1998-01-02 18:09:52 +00:00
|
|
|
@bye
|