Doc updates. Move object file before library depends

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@15959 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2003-02-14 19:47:12 +00:00
parent c42f1f00ab
commit 5941216223
4 changed files with 34 additions and 76 deletions

View file

@ -1,3 +1,10 @@
2003-02-14 Adam Fedor <fedor@gnu.org>
* target.make (Darwin/SHARED_LIBRARY_LINK_CMD): Include object files
before library depends.
* Documentation/gnustep-howto.texi, install.texi: Updates.
Mon Feb 10 13:42:54 2003 Nicola Pero <n.pero@mi.flashnet.it>
* Master/source-distribution.make: Define a CVS variable, and use

View file

@ -64,11 +64,9 @@ any later version published by the Free Software Foundation.
@node Introduction, Preliminaries, Top, Top
@chapter Introduction
This document explains how to build the GNUstep core libraries or
GNUstep Launchpad. The core
libraries, along with associated tools and other files provide
everything necessary for a working GNUstep system. GNUstep Launchpad
consists of the non-graphical libraries of GNUstep.
This document explains how to build the GNUstep core libraries. The
core libraries, along with associated tools and other files provide
everything necessary for a working GNUstep system.
In order to easily compile and debug GNUstep projects, you will need the
GNU Objective-C compiler @samp{GCC} as well as various other GNU packages.
@ -83,7 +81,7 @@ In order to compile the libraries, you need to compile and install
the following packages first (if you don't already have them):
@itemize @bullet
@item gcc (Version 2.8.0 or greater, 3.0.4 or greater recommended)
@item gcc (Version 2.9.5 or greater, 3.0.4 or greater recommended)
@item GNU make (Version 3.75 or greater)
@item gdb, if you plan to do any debugging
@end itemize
@ -94,7 +92,7 @@ are required.
@table @samp
@item ffcall libraries (HIGHLY RECOMMENDED)
This is a library that provides stack frame handling for NSInvocation
This is a library that provides stack-frame handling for NSInvocation
and NSConnection. This library is highly recommended. The previous
builtin method for stack frame handling is no longer supported and may
be removed in the future. ffcall is under GNU GPL. As a special
@ -114,7 +112,7 @@ with the WindowMaker window manager. In addition, WindowMaker includes some
functionality that GNUstep uses that would otherwise not be available.
Get WindowMaker from @url{http://www.windowmaker.org}.
@item libxml2 (OPTIONAL)
@item libxml2 (RECOMMENDED)
The libxml library (Version 2) is used to translate some of the
documentation for GNUstep and to provide suport for MacOS-X compatible
XML-based property-lists. It is recommended but not currently required.
@ -129,10 +127,10 @@ replacement, it can quickly be used by creating another bundle.
@item libiconv (OPTIONAL)
Unicode support functions (iconv) come with glibc version 2.1 or greater. If
you don't have this, you can get the separate libiconv library
from @url{ http://clisp.cons.org/~haible/packages-libiconv.html}. However,
from @url{http://clisp.cons.org/~haible/packages-libiconv.html}. However,
neither one is required to use GNUstep.
@item gnustep-objc package (for gcc version < 3.0) (RECOMMENDED)
@item gnustep-objc package (for gcc version < 3.0 ONLY) (RECOMMENDED)
This is a special version of the Objective-C runtime that include several
bug fixes and features that were not in gcc versions previous to 3.0.
It is available at @url{ftp://ftp.gnustep.org/pub/gnustep/libs} which
@ -146,24 +144,6 @@ installing this library.
@item The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)
The GUI library uses this to handle loading and saving TIFF images.
@item DGS, the XFree86 DPS extension, or Adobe DPS (OPTIONAL)
If you want to use the features of a Display Postscript
(DPS)backend. Note that it is not required since you can use the
backend that is Xlib based. Note that the DPS backend is also still
experimental and not recommended. DPS can be obtained from the
following locations:
@itemize @bullet
@item DGS client/server, @url{ftp://ftp.gnustep.org/pub/gnustep/dgs}
@item XFree86 DPS, @url{http://dps.sourceforge.net/}
@item Adobe DPS, (contact your OS distributor)
@end itemize
@item PCThreads (OPTIONAL)
For GNU/Linux systems on Intel x86 processors. PCThreads is
no longer necessary (and should not be used) on GNU/Linux systems with
glibc version 2, such as Debian 2.0 and RedHat 5.x and greater.
@item GDB and Objective-C patch (OPTIONAL)
GDB can be obtained from @url{ftp://ftp.gnu.org/gnu/gdb}. The patch to
make it work better with GNUstep can be obtained from
@ -183,46 +163,18 @@ Get the following individual packages:
@item gnustep-back
@end itemize
For GNUstep Launchpad, substitute @file{gnustep-guile} and @file{jigs} for
@file{gnustep-gui} and @file{gnustep-back}.
See @url{http://www.gnustep.org} for information on where to get these
packages.
Make sure you install all the previously mentioned libraries first
before configuring and building GNUstep (Except you need to install
gnustep-objc after installing gnustep-make).
before configuring and building GNUstep.
Note: you will need to be able to install packages as root (at least
the base library) for applications to work correctly.
You should be able to install these packages as root.
For installation on specific systems, read the machine specific
instructions at the end of this document or appropriate README files in
the gnustep-make Documentation directory (such as README.MingW for Windows).
@menu
* DPS System::
* Core Package::
@end menu
@node DPS System, Core Package, Compiling and Installing, Compiling and Installing
@section Using a Display Postscript System
Please skip this instruction unless you really know what you are
doing. The DPS backend is not well developed. You are better off
sticking to the xlib-based backend.
Install a Display PostScript system if you want to use the XDPS backend.
You do not need it if you want to use the xlib-based backend.
Some systems, like Sun Microcomputers(TM) already have a DPS system installed.
Linux/GNU systems need to use a free implementation of DPS (described in
the Introduction.)
If you are installing DGS, follow the installation instructions included with
the DGS package. If you are installing the XFree86 DPS extension, follow the
instructions included with that package (and note that you need to be
running XFree86 version 4.0 or greater).
@node Core Package, , DPS System, Compiling and Installing
@section Installing the Core Libraries
@ -281,14 +233,16 @@ script, as follows:
. /usr/GNUstep/System/Makefiles/GNUstep.sh
@end example
before proceeding any further. Then do gnustep-objc. Before building
gnustep-objc, edit @file{GNUmakefile} and set the @var{THREADING}
before proceeding any further.
NOTE for gcc 2.X or MinGW users: Now install gnustep-objc. Before building
gnustep-objc, edit the @file{GNUmakefile} and set the @var{THREADING}
variable to the thread library used on your system (usually its posix,
but you can leave it at single if you don't need threads). At this point
you should probably re-configure, make and install gnustep-make, so it
can pick up on any threading information that gnustep-objc provides.
Now do gnustep-base, gnustep-gui and finally gnustep-back.
Now install gnustep-base, gnustep-gui and finally gnustep-back.
NOTE: If you are trying to install the packages without root permission,
you may need to change one thing in the base library. Edit the file
@ -341,9 +295,10 @@ source /usr/GNUstep/System/Makefiles/GNUstep.csh
@node GNUstep Home, Time Zone, Environment Setup, Additional Installation
@section GNUstep Home
Set up your home GNUstep directory. This is where user defaults are kept
as well as other user configuration files. User installed apps,
libraries, etc are also here (if the default user directory is used).
Set up your home GNUstep directory. This should be done automatically
if you don't do it. This is where user defaults are kept as well as
other user configuration files. User installed apps, libraries, etc
are also here (if the default user directory is used).
@example
cd
@ -354,7 +309,9 @@ mkdir GNUstep
@section Time Zone
Next, set your local time zone. There are four ways to do this, pick
one (see @file{$GNUSTEP_SYSTEM_ROOT/Libraries/Resources/NSTimeZones/zones} for typical time zones):
one (see
@file{$GNUSTEP_SYSTEM_ROOT/Libraries/Resources/NSTimeZones/zones} for
typical time zones):
@enumerate
@item Use the defaults utility to set ``Local Time Zone'' to your local
@ -369,12 +326,6 @@ something like ``defaults write NSGlobalDomain "Local Time Zone" GB''.
software on your system though).
@end enumerate
@node DPS Information, GNUstep deamons, Time Zone, Additional Installation
@section DPS Information
If you are using a built-in DPS server, you may need to set the PSRESOURCEPATH
environment variable (on Solaris, it's set to @file{/usr/openwin/lib/X11}).
@node GNUstep deamons, , DPS Information, Additional Installation
@section GNUstep deamons
@ -417,7 +368,7 @@ makefile package (and stored in
@file{$GNUSTEP_SYSTEM_ROOT/Tools}). Usage is:
@example
openapp [--library-combo=...] application [additional arguments to app]
openapp application [additional arguments to app]
@end example
Good Luck!

View file

@ -17,7 +17,7 @@ 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. After installing
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). Then install gnustep-base.
@ -214,7 +214,7 @@ setting up the GNUstep environment for a single user or all users on
your system, perform the appropriate step below.
@node Setup, , Installation, Top
@section Setting up the GNUstep
@section Setting up the GNUstep environment
@menu
* Multi-User::

View file

@ -315,8 +315,8 @@ SHARED_LIB_LINK_CMD = \
-install_name $(LIB_LINK_INSTALL_NAME) \
-o $@ \
$(DYLIB_DEF_FRAMEWORKS) \
$(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
$^ $(SHARED_LD_POSTFLAGS); \
$^ $(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
$(SHARED_LD_POSTFLAGS); \
(cd $(LIB_LINK_OBJ_DIR); \
rm -f $(LIB_LINK_FILE) $(LIB_LINK_SONAME_FILE); \
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \