mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
Merged in 1.6.0 changes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@16227 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
6ebe587b8c
commit
a272af9aee
19 changed files with 241 additions and 291 deletions
16
ANNOUNCE
16
ANNOUNCE
|
@ -1,7 +1,7 @@
|
|||
Announcement
|
||||
************
|
||||
|
||||
The GNUstep Makefile Package version 1.5.2 is now available.
|
||||
The GNUstep Makefile Package version 1.6.0 is now available.
|
||||
|
||||
What is the GNUstep makefile package?
|
||||
=====================================
|
||||
|
@ -12,11 +12,11 @@ write a project without having to deal with the complex issues
|
|||
associated with configuration, building, installation, and packaging.
|
||||
It also allows the user to easily create cross-compiled binaries.
|
||||
|
||||
Note that versions that have a odd minor release number are unstable
|
||||
releases (like 1.5.2), which even release numbers (1.4.1) are stable
|
||||
releases.
|
||||
Note that versions that have a odd minor release number (the second
|
||||
number, y, in x.y.z) are unstable releases (like 1.5.2), which even
|
||||
minor release numbers (1.4.1) are stable releases.
|
||||
|
||||
Changes in version `1.5.2'
|
||||
Changes in version `1.6.0'
|
||||
==========================
|
||||
|
||||
Make now configures by default for only one system. To compile and
|
||||
|
@ -33,8 +33,10 @@ configure argument -enable-multi-platform.
|
|||
Obtaining gnustep-make
|
||||
======================
|
||||
|
||||
You can get the gstep-make-1.5.2.tar.gz distribution file at
|
||||
You can get the gstep-make-1.6.0.tar.gz distribution file at
|
||||
<ftp://ftp.gnustep.org/pub/gnustep/core>
|
||||
|
||||
Please send bug reports to <bug-gnustep@gnu.org>.
|
||||
Please log bug reports on the GNUstep project page
|
||||
<http://savannah.gnu.org/support/?group=gnustep> or send bug reports to
|
||||
<bug-gnustep@gnu.org>.
|
||||
|
||||
|
|
48
ChangeLog
48
ChangeLog
|
@ -1,3 +1,7 @@
|
|||
2003-03-23 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Merged 1.6.0 branch changes in
|
||||
|
||||
Mon Mar 10 12:51:20 2003 Nicola Pero <n.pero@mi.flashnet.it>
|
||||
|
||||
* rules.make: Disable all built-in SUFFIXES and all built-in rules
|
||||
|
@ -10,6 +14,50 @@ Wed Feb 26 18:34:37 2003 Nicola Pero <n.pero@mi.flashnet.it>
|
|||
CFBundleIconFile, and not NSIcon, on Apple. Quote full path of
|
||||
xxxInfo.plist file.
|
||||
|
||||
2003-03-17 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* Version: 1.6.0
|
||||
|
||||
2003-03-14 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* configure.ac: Check for -lpthread on unknown hosts (e.g. irix)
|
||||
* target.make (darwin): Add -read_only_reolcs warning.
|
||||
(darwin5): Remove
|
||||
* Documentation/machines.texi: Update Darwin.
|
||||
(suggestions from Carl Eugen Hoyos)
|
||||
|
||||
2003-03-13 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* clean_cpu.sh: Make all hppa variants the same.
|
||||
(suggestion from Matthias Klose)
|
||||
|
||||
2003-03-04 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* configure.ac: Change sense of --disable-import help line
|
||||
* configure: Regen.
|
||||
* Documentation/install.texi: Update import section
|
||||
* Documentation/userfaq.texi: Add import section.
|
||||
|
||||
Tue Mar 4 17:13:46 2003 Nicola Pero <n.pero@mi.flashnet.it>
|
||||
|
||||
* configure.ac: Enable GCC deprecation warnings for #import.
|
||||
* configure: Regenerated.
|
||||
|
||||
2003-03-03 iMartin Brecher <martin@mb-itconsulting.com>
|
||||
|
||||
* Documentation/README.MinGW: Tidied
|
||||
Some modifiecations by rfm@gnu.org also ... mainly to change the
|
||||
order of build/install of libobjc and ffcall
|
||||
|
||||
2003-02-23 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* user_home.c: fix HOMEPATH and HOMEDRIVE handling for mingw to
|
||||
only use the drive if there isn't one in the path.
|
||||
|
||||
2003-02-17 Tom Koelman <tkoelman@xs4all.nl>
|
||||
|
||||
* Documentation/README.MingW: Update URLs.
|
||||
|
||||
2003-02-16 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* Version: 1.5.2
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
Date: 09-Jan-2003 (tested under windoze-xp)
|
||||
Date: 09-Jan-2003 (tested under Windows XP)
|
||||
Update: 23-Feb-2003 (also tested under Windows 2000)
|
||||
Author: Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
PURPOSE
|
||||
-------
|
||||
|
||||
This document is intended to provide a step by step instruction on how
|
||||
to get the GNUstep base library into a usable state on a recent windows
|
||||
to get the GNUstep base library into a usable state on a recent Windows
|
||||
operating system (XP, 2000, and probably NT).
|
||||
|
||||
MinGW is a collection of header files and import libraries that allow
|
||||
|
@ -34,10 +35,10 @@ than developing user applications.
|
|||
PRELIMINARIES
|
||||
-------------
|
||||
|
||||
Before we start, we need to get some preliminary windoze software -
|
||||
Before we start, we need to get some preliminary Windows software -
|
||||
a tool for fetching source code via CVS.
|
||||
|
||||
If you don't want to use windows tools for this, you can get the
|
||||
If you don't want to use Windows tools for this, you can get the
|
||||
latest cygwin distribution and use the cvs client in that. The following is
|
||||
for people who don't want to download all that cygwin stuff.
|
||||
|
||||
|
@ -46,7 +47,7 @@ you can find at http://sourceforge.net/projects/cvsgui You will need
|
|||
to be a system administrator on your machine to install this software.
|
||||
You should be able to use it without changing/setting any special
|
||||
configuration options. The one thing to remember is that the checkbox
|
||||
to select whether to use unix line terminators instead of windows/DOS
|
||||
to select whether to use UNIX line terminators instead of Windows/DOS
|
||||
line terminators should be set to the unix option.
|
||||
|
||||
|
||||
|
@ -72,7 +73,7 @@ somewhere else.
|
|||
|
||||
You may need to edit /mingw/include/winsock2.h to change the size of the
|
||||
sa_data field in the sockaddr structure from 14 to 22 ... this is because
|
||||
newer versions of windoze have changed the layout of this structure.
|
||||
newer versions of Windows have changed the layout of this structure.
|
||||
This modification is needed to be able to correctly determine the
|
||||
network interface details for your machine.
|
||||
|
||||
|
@ -87,8 +88,8 @@ At this point you may want to set the HOMEDRIVE and HOMEPATH environment
|
|||
variables to point to the home directory you wish to work from (though
|
||||
the defaults may be ok for you).
|
||||
NB. This home directory for building software must *not* contain spaces.
|
||||
(aside - MSYS uses the unix-style HOME environment variable, but windows
|
||||
programs, including GNUstep programs under windows, use the HOMEDRIVE and
|
||||
(aside - MSYS uses the UNIX-style HOME environment variable, but Windows
|
||||
programs, including GNUstep programs under Windows, use the HOMEDRIVE and
|
||||
HOMEPATH environment variables to build a windows-style path for the home
|
||||
directory. eg. if HOMEDRIVE is C: and HOMEPATH is \MyHome then the path
|
||||
to the home directory is C:\MyHome).
|
||||
|
@ -156,6 +157,27 @@ export HOME=/C/home/myname
|
|||
export GNUSTEP_SYSTEM_ROOT=/C/GNUstep/System
|
||||
. $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh
|
||||
|
||||
NOTE: Sometimes the HOME variable may already be set by Windows to be
|
||||
%USERPROFILE% (which is the Windows variable that contains the path of
|
||||
your home folder). MSYS has problems with that as it doesn't recognise
|
||||
that %USERPROFILE% is a variable name. Be sure to check that if you run
|
||||
into errors.
|
||||
|
||||
|
||||
|
||||
Building and installing libobjc
|
||||
-------------------------------
|
||||
|
||||
Despite the statement in the GNUstep-HOWTO, even if you have a 3.x
|
||||
compiler, you still need to install gnustep-objc as it properly
|
||||
exports symbols for DLLs.
|
||||
|
||||
Go to gnustep-objc (or from CVS, into dev-apps/libobjc), and type
|
||||
|
||||
make install
|
||||
|
||||
This should build and install the ObjectiveC runtime and headers for you.
|
||||
|
||||
|
||||
|
||||
Building and installing FFCALL
|
||||
|
@ -175,31 +197,13 @@ environment, type
|
|||
--libdir=$GNUSTEP_SYSTEM_ROOT/Libraries/ix86/mingw32 \
|
||||
--includedir=$GNUSTEP_SYSTEM_ROOT/Headers
|
||||
|
||||
Having configured the ffcall library, you can now build and install
|
||||
it simply by typing:
|
||||
Now you can now build and install it simply by typing:
|
||||
|
||||
make
|
||||
make install
|
||||
|
||||
|
||||
|
||||
|
||||
Building and installing libobjc
|
||||
-------------------------------
|
||||
|
||||
Despite the statement in the GNUstep-HOWTO, even if you have a 3.x
|
||||
compiler, you still need to install gnustep-objc as it properly
|
||||
exports symbols for DLLs.
|
||||
|
||||
Go to gnustep-objc (or from CVS, into dev-apps/libobjc), and type
|
||||
|
||||
make install
|
||||
|
||||
This should build and install the ObjectiveC runtime and headers for you.
|
||||
|
||||
|
||||
|
||||
|
||||
Additional libraries
|
||||
--------------------
|
||||
|
||||
|
@ -212,7 +216,7 @@ libiconv
|
|||
Needed for multilingual character support (unicode etc)
|
||||
|
||||
Get the binary package from
|
||||
http://www.fh-frankfurt.de/~igor/projects/libxml
|
||||
http://www.zlatkovic.com/projects/libxml/index.html
|
||||
Unpack this and
|
||||
cp include/iconv.h $GNUSTEP_SYSTEM_ROOT/Headers
|
||||
cp lib/iconv.lib $GNUSTEP_SYSTEM_ROOT/Libraries/ix86/mingw32/libiconv.a
|
||||
|
@ -224,14 +228,19 @@ libtiff, libjpeg, and zlib
|
|||
|
||||
Get the binary packages from -
|
||||
http://prdownloads.sourceforge.net/gnuwin32/tiff-3.5.7-lib.zip
|
||||
http://prdownloads.sourceforge.net/gnuwin32/tiff-3.5.7-bin.zip
|
||||
http://prdownloads.sourceforge.net/gnuwin32/libjpeg-6b-lib.zip
|
||||
http://prdownloads.sourceforge.net/gnuwin32/libjpeg-6b-bin.zip
|
||||
http://prdownloads.sourceforge.net/gnuwin32/zlib-1.1.4-lib.zip
|
||||
http://prdownloads.sourceforge.net/gnuwin32/zlib-1.1.4-bin.zip
|
||||
|
||||
Unpack and install
|
||||
the header (.h) files in $GNUSTEP_SYSTEM_ROOT/Headers
|
||||
the library (.lib) files in $GNUSTEP_SYSTEM_ROOT/Libraries/ix86/mingw32
|
||||
the dll files in $GNUSTEP_SYSTEM_ROOT/Tools/ix86/mingw32
|
||||
|
||||
Be sure to rename the .lib files to .a!
|
||||
|
||||
|
||||
|
||||
The following are libraries which are not currently used, but which will
|
||||
|
@ -241,10 +250,10 @@ libxml2
|
|||
Needed for XML parsing support, for MacOS-X compatible
|
||||
property lists, and for documentation processing.
|
||||
NB. at the time of writing, XML support in GNUstep base has *not*
|
||||
been ported to windows - but when it is, you will need this package.
|
||||
been ported to Windows - but when it is, you will need this package.
|
||||
|
||||
Get the binary package from
|
||||
http://www.fh-frankfurt.de/~igor/projects/libxml
|
||||
http://www.zlatkovic.com/projects/libxml/binaries.html
|
||||
Unpack this and
|
||||
cd include
|
||||
tar -cf - libxml | (cd $GNUSTEP_SYSTEM_ROOT/Headers; tar -xvf -)
|
||||
|
@ -255,7 +264,7 @@ libxml2
|
|||
openssl
|
||||
Needed for the SSL bundle, providing HTTPS support for NSURL.
|
||||
NB. at the time of writing, SSL support in GNUstep base has *not*
|
||||
been ported to windows - but when it is, you will need this package.
|
||||
been ported to Windows - but when it is, you will need this package.
|
||||
Get the binary package from
|
||||
http://www.kix.or.jp/~fujino/openssl
|
||||
Unpack this and
|
||||
|
@ -293,8 +302,8 @@ Go to gnustep-gui (or from CVS into the core/gui directory), and type
|
|||
Building and installing GNUstep-back
|
||||
------------------------------------
|
||||
|
||||
This software is PRE-ALPHA ... it is present in CVS for people who which to
|
||||
help porting the GNUstep backend to windows!
|
||||
This software is PRE-ALPHA ... it is present in CVS for people who wish to
|
||||
help porting the GNUstep backend to Windows!
|
||||
|
||||
In the back directory, type
|
||||
|
||||
|
@ -307,6 +316,13 @@ In the back directory, type
|
|||
Troubleshooting
|
||||
---------------
|
||||
|
||||
Issues with updating:
|
||||
Before attempting to update your GNUstep installation, be sure to stop/kill
|
||||
all running GNUstep programs or services (i.e. gdomap, gdnc, gpbs) since
|
||||
Windows cannot overwrite files that are currently in use.
|
||||
|
||||
|
||||
|
||||
Good Sites for Pre-Compiled Binaries
|
||||
------------------------------------
|
||||
|
||||
|
|
|
@ -12,7 +12,8 @@ write a project without having to deal with the complex issues
|
|||
associated with configuration, building, installation, and packaging.
|
||||
It also allows the user to easily create cross-compiled binaries.
|
||||
|
||||
Note that versions that have a odd minor release number are unstable
|
||||
Note that versions that have a odd minor release number (the second number,
|
||||
y, in x.y.z) are unstable
|
||||
releases (like 1.5.2), which even minor release numbers (1.4.1) are stable
|
||||
releases.
|
||||
|
||||
|
|
|
@ -81,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.9.5 or greater, 3.0.4 or greater recommended)
|
||||
@item gcc (Version 2.95 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
|
||||
|
@ -117,6 +117,9 @@ 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.
|
||||
|
||||
@item The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)
|
||||
The GUI library uses this to handle loading and saving TIFF images.
|
||||
|
||||
@item openssl (OPTIONAL)
|
||||
The openssl library is used to provide support for https connections by
|
||||
the NSURL and HSURLHandle classes. This functionality is
|
||||
|
@ -126,8 +129,9 @@ 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,
|
||||
you don't have glibc (try iconv --version), you can get the separate
|
||||
libiconv library 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 ONLY) (RECOMMENDED)
|
||||
|
@ -141,9 +145,6 @@ just copy to the place where the gcc libobjc library is (type gcc -v to
|
|||
get this location). Note you have to install gnustep-make (below) before
|
||||
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 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
|
||||
|
|
|
@ -137,12 +137,10 @@ possible, and even if you use #import, you should protect all your
|
|||
headers against multiple inclusions. The GCC compiler automatically
|
||||
emits a warning whenever you use #import. Because many users are
|
||||
annoyed by these warnings and want to use #import (usually for
|
||||
compatibility with other systems), gnustep-make automatically disables
|
||||
these warnings. But if you want to make sure your Objective-C code is
|
||||
not using any deprecated feature, you can configure gnustep-make with
|
||||
--disable-import:
|
||||
compatibility with other systems), gnustep-make can disable
|
||||
these warnings:
|
||||
@example
|
||||
./configure --disable-import
|
||||
./configure --enable-import
|
||||
@end example
|
||||
If you are a legacy or MacOS X user, and wonder why #import is
|
||||
deprecated, please search the web and the GCC and GNUstep mailing list
|
||||
|
|
|
@ -13,7 +13,6 @@ more popular operating systems. Some machines marked with
|
|||
|
||||
@menu
|
||||
* Darwin 6.x/PowerPC::
|
||||
* Darwin 5.x/PowerPC::
|
||||
* Debian/DEC-Alpha::
|
||||
* FreeBSD 4.x::
|
||||
* FreeBSD 3.x::
|
||||
|
@ -74,29 +73,37 @@ optimization can break some code. The easiest way to do this is when
|
|||
configuring, @samp{CFLAGS="" ./configure}. Or when building,
|
||||
@samp{make OPTFLAG=""}.
|
||||
|
||||
Also if you manually upgraded gcc and/or make, we recommend reading the
|
||||
documentation at @url{http://www.LinuxFromScratch.org} for tips on compiling
|
||||
and installing gcc and make. If you had GNUstep previously installed, make sure
|
||||
you completely remove all of it, including installed init scripts.
|
||||
|
||||
@c -----------------------------------------
|
||||
@node Darwin 6.x/PowerPC, Darwin 5.x/PowerPC, Machine Specific, Machine Specific
|
||||
@node Darwin 6.x/PowerPC, Debian/DEC-Alpha, Machine Specific, Machine Specific
|
||||
@section Darwin 6.x/PowerPC (@emph{Unstable!})
|
||||
|
||||
@table @samp
|
||||
@item Recommended compiler
|
||||
gcc 3.2.1
|
||||
gcc 3.2.2
|
||||
|
||||
Default compiler has some odd memory(?) related problems.
|
||||
Use the GNU runtime. Download the gcc3.2.1 compiler and configure it with
|
||||
Use the GNU runtime. Download the gcc compiler and configure it with
|
||||
--enable-threads=posix. Usually the installed compiler will produce object
|
||||
files for the NeXT runtime if you don't say gcc -fgnu-runtime. To change
|
||||
this behaviour, edit src-dir/gcc/config/darwin.h: You have to change the
|
||||
word #define in line 73 to #undef. Then the runtime default is gnu. When
|
||||
bootstrapping the compiler a nice working objective C gnu-runtime library
|
||||
(which is a little bit faster than apples NeXT-runtime) will be compiled
|
||||
(which is a little bit faster than Apple's runtime) will be compiled
|
||||
and installed when make install. To use it, there is one (important) thing
|
||||
left: After installing the compiler, you have to go (probably as root) to
|
||||
left: After installing the compiler, you have to go to
|
||||
install-dir/lib and produce the following dynamic link:
|
||||
ln -s libobjc.a libobjc.dylib
|
||||
This might seem senseless, but it forces the linker to use this library
|
||||
instead of the NeXT-runtime!
|
||||
|
||||
Make sure to configure gnustep-make with ./configure
|
||||
--with-library-combo=gnu-gnu-gnu if you want to use all the GNUstep libraries.
|
||||
|
||||
@item Extra libs needed
|
||||
Use libffi (not ffcall). This should be enabled by default in gnustep-base
|
||||
so you don't have to type --enable-libffi
|
||||
|
@ -107,50 +114,7 @@ so you don't have to type --enable-libffi
|
|||
@end table
|
||||
|
||||
@c -----------------------------------------
|
||||
@node Darwin 5.x/PowerPC, Debian/DEC-Alpha, Darwin 6.x/PowerPC, Machine Specific
|
||||
@section Darwin 5.x/PowerPC (@emph{Unstable!})
|
||||
|
||||
@table @samp
|
||||
@item Recommended compiler
|
||||
gcc 3.1 (See Darwin 6.x for other instructions).
|
||||
|
||||
@item Extra libs needed
|
||||
Probably should use libffi as with Darwin 6.x.
|
||||
Instructions for compiling ffcall are provided below if that doesn't work.
|
||||
|
||||
@item Special Instructions
|
||||
|
||||
|
||||
@end table
|
||||
|
||||
Compiling ffcall:
|
||||
@example
|
||||
tar xf ffcall-1.8d.tar
|
||||
cd ffcall-1.8d
|
||||
configure
|
||||
cd avcall
|
||||
rm avcall-rs6000-sysv4.s
|
||||
gcc avcall-rs6000.c -S -o avcall-rs6000-sysv4.s
|
||||
make
|
||||
make install-lib
|
||||
cd ../callback/trampoline_r
|
||||
ln -s trampoline_r.h.in trampoline_r.h
|
||||
rm cache-rs6000-sysv4.s tramp-rs6000-sysv4.s
|
||||
gcc cache.c -S -o cache-rs6000-sysv4.s
|
||||
gcc trampoline.c -S -o tramp-rs6000-sysv4.s
|
||||
cd ../vacall_r
|
||||
rm vacall-rs6000-sysv4.s
|
||||
gcc vacall-rs6000.c -S -o vacall-rs6000-sysv4.s -DREENTRANT
|
||||
make
|
||||
gcc -c misc.c -fno-common
|
||||
ar cru .libs/libvacall.a vacall.o misc.o structcpy.o
|
||||
cd ..
|
||||
make
|
||||
make install-lib
|
||||
@end example
|
||||
|
||||
@c -----------------------------------------
|
||||
@node Debian/DEC-Alpha, FreeBSD 4.x, Darwin 5.x/PowerPC, Machine Specific
|
||||
@node Debian/DEC-Alpha, FreeBSD 4.x, Darwin 6.x/PowerPC, Machine Specific
|
||||
@section Debian/DEC-Alpha
|
||||
|
||||
@table @samp
|
||||
|
@ -492,6 +456,9 @@ will not work without it.
|
|||
|
||||
@end table
|
||||
|
||||
Some people have reported problems when using binutils assembler and linker.
|
||||
Using the native Solaris assmebler and linker should work fine.
|
||||
|
||||
Older Instructions:
|
||||
If you are using threads, make sure the Objective-C runtime (libobjc that comes
|
||||
with gcc) is compiled with threads enabled (This is true by default) AND that
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
The currently released version is @samp{@value{GNUSTEP-MAKE-VERSION}}.
|
||||
@end ifclear
|
||||
|
||||
@section Changes in version @samp{1.5.2}
|
||||
@section Changes in version @samp{1.6.0}
|
||||
|
||||
Make now configures by default for only one system. To compile and run
|
||||
GNUstep for multiple platforms from the same directory, use the
|
||||
|
|
|
@ -189,6 +189,7 @@ not.
|
|||
* How do I compile GNUstep on my machine? ::
|
||||
* Are there any precompiled packages available?::
|
||||
* What are these type and size warnings?::
|
||||
* What are these import warnings?::
|
||||
@end menu
|
||||
|
||||
@node How do I compile GNUstep on my machine? , Are there any precompiled packages available?, Compiling and Installing, Compiling and Installing
|
||||
|
@ -206,7 +207,7 @@ RPMS. Debian packages are also available. You can check the debian
|
|||
site(s) for preconfigured GNUstep packages. Also check the BSD sites for
|
||||
GNUstep ports.
|
||||
|
||||
@node What are these type and size warnings?, , Are there any precompiled packages available?, Compiling and Installing
|
||||
@node What are these type and size warnings?, What are these import warnings?, Are there any precompiled packages available?, Compiling and Installing
|
||||
@subsection What are these type and size warnings?
|
||||
|
||||
These warnings:
|
||||
|
@ -219,6 +220,34 @@ are a common occurence and are due to a mismatch between gcc and
|
|||
ld. They don't do any harm so they can be safely ignored. They have been
|
||||
fixed in GCC version 3.1.
|
||||
|
||||
@node What are these import warnings?, , What are these type and size warnings?, Compiling and Installing
|
||||
@subsection What are these import warnings?
|
||||
|
||||
Do you get these obnoxious warning whenever you compile an application, tool,
|
||||
or Objective-C program:
|
||||
|
||||
@example
|
||||
warning: using `#import' is not recommended
|
||||
[...]
|
||||
@end example
|
||||
|
||||
This is quite annoying for many people, particularly since almost any
|
||||
book on Objective-C you read recommends using #import instead of
|
||||
#include. If you are wondering why #import is deprecated, please
|
||||
search the web and the GCC and GNUstep mailing list archives - there
|
||||
are very precise and sound technical reasons.
|
||||
Due to these problems, the gcc maintainers are seriously considering
|
||||
removing support for #import altogether in the next release.
|
||||
|
||||
If you still like to use #import, you can get rid of these warnings when
|
||||
you configure gnustep-make, with
|
||||
|
||||
@example
|
||||
./configure --enable-import
|
||||
@end example
|
||||
|
||||
But beware, this may not even work on future versions of the gcc compiler.
|
||||
|
||||
|
||||
@c ****************************************************************
|
||||
@node Compatibility and Layout, Troubleshooting, Compiling and Installing, Top
|
||||
|
|
2
FAQ
2
FAQ
|
@ -1,7 +1,7 @@
|
|||
GNUstep Frequently Asked Questions with Answers
|
||||
***********************************************
|
||||
|
||||
Last updated 16 February 2003. Please send corrections to
|
||||
Last updated 17 March 2003. Please send corrections to
|
||||
<gnustep-maintainer@gnu.org>. Also look at the user FAQ for more user
|
||||
oriented questions.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
GNUstep HOWTO
|
||||
*************
|
||||
|
||||
Last Update: 16 February 2003
|
||||
Last Update: 17 March 2003
|
||||
|
||||
This document explains how to build the different components of the
|
||||
GNUstep core libraries and GNUstep Launchpad.
|
||||
|
@ -32,7 +32,7 @@ Summary
|
|||
In order to compile the libraries, you need to compile and install
|
||||
the following packages first (if you don't already have them):
|
||||
|
||||
* gcc (Version 2.9.5 or greater, 3.0.4 or greater recommended)
|
||||
* gcc (Version 2.95 or greater, 3.0.4 or greater recommended)
|
||||
|
||||
* GNU make (Version 3.75 or greater)
|
||||
|
||||
|
@ -71,6 +71,9 @@ are required.
|
|||
compatible XML-based property-lists. It is recommended but not
|
||||
currently required.
|
||||
|
||||
`The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)'
|
||||
The GUI library uses this to handle loading and saving TIFF images.
|
||||
|
||||
`openssl (OPTIONAL)'
|
||||
The openssl library is used to provide support for https
|
||||
connections by the NSURL and HSURLHandle classes. This
|
||||
|
@ -81,8 +84,8 @@ are required.
|
|||
|
||||
`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
|
||||
greater. If you don't have glibc (try iconv -version), you can get
|
||||
the separate libiconv library from
|
||||
<http://clisp.cons.org/~haible/packages-libiconv.html>. However,
|
||||
neither one is required to use GNUstep.
|
||||
|
||||
|
@ -98,9 +101,6 @@ are required.
|
|||
-v to get this location). Note you have to install gnustep-make
|
||||
(below) before installing this library.
|
||||
|
||||
`The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)'
|
||||
The GUI library uses this to handle loading and saving TIFF images.
|
||||
|
||||
`GDB and Objective-C patch (OPTIONAL)'
|
||||
GDB can be obtained from <ftp://ftp.gnu.org/gnu/gdb>. The patch to
|
||||
make it work better with GNUstep can be obtained from
|
||||
|
@ -350,68 +350,43 @@ optimization can break some code. The easiest way to do this is when
|
|||
configuring, `CFLAGS="" ./configure'. Or when building, `make
|
||||
OPTFLAG=""'.
|
||||
|
||||
Also if you manually upgraded gcc and/or make, we recommend reading
|
||||
the documentation at <http://www.LinuxFromScratch.org> for tips on
|
||||
compiling and installing gcc and make. If you had GNUstep previously
|
||||
installed, make sure you completely remove all of it, including
|
||||
installed init scripts.
|
||||
|
||||
Darwin 6.x/PowerPC (_Unstable!_)
|
||||
================================
|
||||
|
||||
`Recommended compiler'
|
||||
gcc 3.2.1
|
||||
gcc 3.2.2
|
||||
|
||||
Default compiler has some odd memory(?) related problems. Use the
|
||||
GNU runtime. Download the gcc3.2.1 compiler and configure it with
|
||||
GNU runtime. Download the gcc compiler and configure it with
|
||||
-enable-threads=posix. Usually the installed compiler will produce
|
||||
object files for the NeXT runtime if you don't say gcc
|
||||
-fgnu-runtime. To change this behaviour, edit
|
||||
src-dir/gcc/config/darwin.h: You have to change the word #define
|
||||
in line 73 to #undef. Then the runtime default is gnu. When
|
||||
bootstrapping the compiler a nice working objective C gnu-runtime
|
||||
library (which is a little bit faster than apples NeXT-runtime)
|
||||
will be compiled and installed when make install. To use it, there
|
||||
is one (important) thing left: After installing the compiler, you
|
||||
have to go (probably as root) to install-dir/lib and produce the
|
||||
following dynamic link: ln -s libobjc.a libobjc.dylib This might
|
||||
seem senseless, but it forces the linker to use this library
|
||||
instead of the NeXT-runtime!
|
||||
library (which is a little bit faster than Apple's runtime) will
|
||||
be compiled and installed when make install. To use it, there is
|
||||
one (important) thing left: After installing the compiler, you
|
||||
have to go to install-dir/lib and produce the following dynamic
|
||||
link: ln -s libobjc.a libobjc.dylib This might seem senseless, but
|
||||
it forces the linker to use this library instead of the
|
||||
NeXT-runtime!
|
||||
|
||||
Make sure to configure gnustep-make with ./configure
|
||||
-with-library-combo=gnu-gnu-gnu if you want to use all the GNUstep
|
||||
libraries.
|
||||
|
||||
`Extra libs needed'
|
||||
Use libffi (not ffcall). This should be enabled by default in
|
||||
gnustep-base so you don't have to type -enable-libffi
|
||||
|
||||
`Special Instructions'
|
||||
Darwin 5.x/PowerPC (_Unstable!_)
|
||||
================================
|
||||
|
||||
`Recommended compiler'
|
||||
gcc 3.1 (See Darwin 6.x for other instructions).
|
||||
|
||||
`Extra libs needed'
|
||||
Probably should use libffi as with Darwin 6.x. Instructions for
|
||||
compiling ffcall are provided below if that doesn't work.
|
||||
|
||||
`Special Instructions'
|
||||
Compiling ffcall:
|
||||
tar xf ffcall-1.8d.tar
|
||||
cd ffcall-1.8d
|
||||
configure
|
||||
cd avcall
|
||||
rm avcall-rs6000-sysv4.s
|
||||
gcc avcall-rs6000.c -S -o avcall-rs6000-sysv4.s
|
||||
make
|
||||
make install-lib
|
||||
cd ../callback/trampoline_r
|
||||
ln -s trampoline_r.h.in trampoline_r.h
|
||||
rm cache-rs6000-sysv4.s tramp-rs6000-sysv4.s
|
||||
gcc cache.c -S -o cache-rs6000-sysv4.s
|
||||
gcc trampoline.c -S -o tramp-rs6000-sysv4.s
|
||||
cd ../vacall_r
|
||||
rm vacall-rs6000-sysv4.s
|
||||
gcc vacall-rs6000.c -S -o vacall-rs6000-sysv4.s -DREENTRANT
|
||||
make
|
||||
gcc -c misc.c -fno-common
|
||||
ar cru .libs/libvacall.a vacall.o misc.o structcpy.o
|
||||
cd ..
|
||||
make
|
||||
make install-lib
|
||||
|
||||
Debian/DEC-Alpha
|
||||
================
|
||||
|
||||
|
@ -692,6 +667,9 @@ Solaris 2.[67]/Sparc
|
|||
is highly recommended. In fact, some functions, such as compiling
|
||||
frameworks, will not work without it.
|
||||
|
||||
Some people have reported problems when using binutils assembler and
|
||||
linker. Using the native Solaris assmebler and linker should work fine.
|
||||
|
||||
Older Instructions: If you are using threads, make sure the
|
||||
Objective-C runtime (libobjc that comes with gcc) is compiled with
|
||||
threads enabled (This is true by default) AND that it is compiled with
|
||||
|
|
8
INSTALL
8
INSTALL
|
@ -110,11 +110,9 @@ whenever possible, and even if you use #import, you should protect all
|
|||
your headers against multiple inclusions. The GCC compiler
|
||||
automatically emits a warning whenever you use #import. Because many
|
||||
users are annoyed by these warnings and want to use #import (usually for
|
||||
compatibility with other systems), gnustep-make automatically disables
|
||||
these warnings. But if you want to make sure your Objective-C code is
|
||||
not using any deprecated feature, you can configure gnustep-make with
|
||||
-disable-import:
|
||||
./configure --disable-import
|
||||
compatibility with other systems), gnustep-make can disable these
|
||||
warnings:
|
||||
./configure --enable-import
|
||||
If you are a legacy or MacOS X user, and wonder why #import is
|
||||
deprecated, please search the web and the GCC and GNUstep mailing list
|
||||
archives - there are very precise and sound technical reasons.
|
||||
|
|
4
NEWS
4
NEWS
|
@ -1,9 +1,9 @@
|
|||
NEWS
|
||||
****
|
||||
|
||||
The currently released version is `1.5.2'.
|
||||
The currently released version is `1.6.0'.
|
||||
|
||||
Changes in version `1.5.2'
|
||||
Changes in version `1.6.0'
|
||||
==========================
|
||||
|
||||
Make now configures by default for only one system. To compile and
|
||||
|
|
4
Version
4
Version
|
@ -3,7 +3,7 @@
|
|||
|
||||
# The version number of this release.
|
||||
GNUSTEP_MAKE_MAJOR_VERSION=1
|
||||
GNUSTEP_MAKE_MINOR_VERSION=5
|
||||
GNUSTEP_MAKE_SUBMINOR_VERSION=2
|
||||
GNUSTEP_MAKE_MINOR_VERSION=6
|
||||
GNUSTEP_MAKE_SUBMINOR_VERSION=0
|
||||
GNUSTEP_MAKE_VERSION=${GNUSTEP_MAKE_MAJOR_VERSION}.${GNUSTEP_MAKE_MINOR_VERSION}.${GNUSTEP_MAKE_SUBMINOR_VERSION}
|
||||
|
||||
|
|
|
@ -31,6 +31,11 @@ case "$1" in
|
|||
echo alpha
|
||||
exit 0
|
||||
;;
|
||||
# Make all hppa variants the same
|
||||
hppa*)
|
||||
echo hppa
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo $1
|
||||
exit 0
|
||||
|
|
7
configure
vendored
7
configure
vendored
|
@ -840,7 +840,7 @@ Optional Features:
|
|||
--enable-multi-platform Use run time multi-platform support
|
||||
|
||||
--disable-backend-bundle Compile gui backend as a library
|
||||
--disable-import Warn about usage of deprecated import directive
|
||||
--enable-import Don't warn about usage of deprecated import directive
|
||||
|
||||
Optional Packages:
|
||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||||
|
@ -2987,6 +2987,9 @@ fi
|
|||
# which was returning the wrong platform because the development
|
||||
# tools needed/used to determine the platform were not available).
|
||||
#
|
||||
# Unless you know what you are doing, stick with the default, which is
|
||||
# also much faster when sourcing GNUstep.sh.
|
||||
#
|
||||
# Check whether --enable-multi-platform or --disable-multi-platform was given.
|
||||
if test "${enable_multi_platform+set}" = set; then
|
||||
enableval="$enable_multi_platform"
|
||||
|
@ -4089,7 +4092,7 @@ if test "${enable_import+set}" = set; then
|
|||
enableval="$enable_import"
|
||||
ac_cv_import=$enableval
|
||||
else
|
||||
ac_cv_import="yes"
|
||||
ac_cv_import="no"
|
||||
fi;
|
||||
|
||||
echo "$as_me:$LINENO: result: $ac_cv_import" >&5
|
||||
|
|
10
configure.ac
10
configure.ac
|
@ -412,6 +412,12 @@ else
|
|||
AC_TRY_RUN([#include "config_thread.m"],
|
||||
objc_threaded="-lthread $extra_LIBS",
|
||||
objc_threaded="", objc_threaded="")
|
||||
if test x"$objc_threaded" = x""; then
|
||||
LIBS="-lobjc $saved_LIBS -lpthread $extra_LIBS""
|
||||
AC_TRY_RUN([#include "config_thread.m"],
|
||||
objc_threaded="-lpthread $extra_LIBS",
|
||||
objc_threaded="", objc_threaded="")
|
||||
fi
|
||||
fi
|
||||
LIBS="$saved_LIBS"
|
||||
CFLAGS="$saved_CFLAGS"
|
||||
|
@ -471,9 +477,9 @@ AC_MSG_CHECKING(whether to disable compiler warnings about deprecated import)
|
|||
# is seriously deprecated. If you are unsure, please use --disable-import.
|
||||
#
|
||||
AC_ARG_ENABLE(import,
|
||||
[--disable-import Warn about usage of deprecated import directive],
|
||||
[--enable-import Don't warn about usage of deprecated import directive],
|
||||
ac_cv_import=$enableval,
|
||||
ac_cv_import="yes")
|
||||
ac_cv_import="no")
|
||||
|
||||
AC_MSG_RESULT($ac_cv_import)
|
||||
|
||||
|
|
114
target.make
114
target.make
|
@ -305,9 +305,10 @@ endif
|
|||
|
||||
ifneq ($(OBJC_COMPILER), NeXT)
|
||||
# GNU compiler
|
||||
SHARED_LD_PREFLAGS += -arch_only ppc -noall_load
|
||||
SHARED_LD_PREFLAGS += -arch_only ppc -noall_load -read_only_relocs warning \
|
||||
-flat_namespace -undefined warning
|
||||
SHARED_LIB_LINK_CMD = \
|
||||
/usr/bin/libtool -flat_namespace -undefined warning \
|
||||
/usr/bin/libtool \
|
||||
$(SHARED_LD_PREFLAGS) \
|
||||
$(ARCH_FLAGS) -dynamic \
|
||||
$(DYLIB_COMPATIBILITY_VERSION) \
|
||||
|
@ -378,115 +379,6 @@ endif
|
|||
#
|
||||
####################################################
|
||||
|
||||
####################################################
|
||||
#
|
||||
# MacOSX 10.1.1, darwin5.1
|
||||
#
|
||||
ifeq ($(findstring darwin5, $(GNUSTEP_TARGET_OS)), darwin5)
|
||||
ifeq ($(OBJC_RUNTIME_LIB), apple)
|
||||
HAVE_BUNDLES = yes
|
||||
OBJC_COMPILER = NeXT
|
||||
# Set flags to ignore the MacOSX headers
|
||||
ifneq ($(FOUNDATION_LIB), apple)
|
||||
INTERNAL_OBJCFLAGS += -no-cpp-precomp -nostdinc -I/usr/include
|
||||
endif
|
||||
endif
|
||||
|
||||
HAVE_SHARED_LIBS = yes
|
||||
SHARED_LIBEXT = .dylib
|
||||
|
||||
ifeq ($(FOUNDATION_LIB), apple)
|
||||
# Use the NeXT compiler
|
||||
CC = cc
|
||||
INTERNAL_OBJCFLAGS += -traditional-cpp
|
||||
ifneq ($(arch),)
|
||||
ARCH_FLAGS = $(foreach a, $(arch), -arch $(a))
|
||||
INTERNAL_OBJCFLAGS += $(ARCH_FLAGS)
|
||||
INTERNAL_CFLAGS += $(ARCH_FLAGS)
|
||||
INTERNAL_LDFLAGS += $(ARCH_FLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
TARGET_LIB_DIR = \
|
||||
Libraries/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(LIBRARY_COMBO)
|
||||
|
||||
DYLIB_COMPATIBILITY_VERSION = -compatibility_version 1
|
||||
DYLIB_CURRENT_VERSION = -current_version 1
|
||||
DYLIB_INSTALL_NAME = $(FINAL_LIBRARY_INSTALL_DIR)/$(LIB_LINK_FILE)
|
||||
|
||||
# Remove empty dirs from the compiler/linker flags (ie, remove -Idir and
|
||||
# -Ldir flags where dir is empty).
|
||||
REMOVE_EMPTY_DIRS = yes
|
||||
|
||||
ifeq ($(FOUNDATION_LIB), apple)
|
||||
DYLIB_DEF_FRAMEWORKS += -framework Foundation
|
||||
endif
|
||||
|
||||
ifneq ($(OBJC_COMPILER), NeXT)
|
||||
# GNU compiler
|
||||
SHARED_LD_PREFLAGS += -arch_only ppc -noall_load
|
||||
SHARED_LIB_LINK_CMD = \
|
||||
/usr/bin/libtool -flat_namespace -undefined warning \
|
||||
$(SHARED_LD_PREFLAGS) \
|
||||
$(ARCH_FLAGS) -dynamic \
|
||||
$(DYLIB_COMPATIBILITY_VERSION) \
|
||||
$(DYLIB_CURRENT_VERSION) \
|
||||
-install_name $(DYLIB_INSTALL_NAME) \
|
||||
-o $@ \
|
||||
$(DYLIB_DEF_FRAMEWORKS) \
|
||||
$(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
|
||||
$^ $(SHARED_LD_POSTFLAGS); \
|
||||
(cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
|
||||
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
|
||||
|
||||
HAVE_BUNDLES = no
|
||||
BUNDLE_LD = /usr/bin/ld
|
||||
BUNDLE_LDFLAGS += -dynamic -flat_namespace -undefined warning $(ARCH_FLAGS)
|
||||
|
||||
else
|
||||
# NeXT Compiler
|
||||
|
||||
#DYLIB_EXTRA_FLAGS = -read_only_relocs warning -undefined warning -fno-common
|
||||
|
||||
SHARED_LIB_LINK_CMD = \
|
||||
$(CC) $(SHARED_LD_PREFLAGS) \
|
||||
-dynamiclib $(ARCH_FLAGS) -dynamic \
|
||||
$(DYLIB_COMPATIBILITY_VERSION) \
|
||||
$(DYLIB_CURRENT_VERSION) \
|
||||
$(DYLIB_EXTRA_FLAGS) \
|
||||
-install_name $(DYLIB_INSTALL_NAME) \
|
||||
-o $@ \
|
||||
$(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
|
||||
$^ $(SHARED_LD_POSTFLAGS); \
|
||||
(cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
|
||||
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
|
||||
|
||||
SHARED_CFLAGS += -dynamic
|
||||
|
||||
BUNDLE_LD = $(CC)
|
||||
BUNDLE_LDFLAGS += -bundle -undefined error $(ARCH_FLAGS)
|
||||
|
||||
endif # OBJC_COMPILER
|
||||
|
||||
OBJ_MERGE_CMD = \
|
||||
$(CC) -nostdlib -r -d -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
|
||||
|
||||
STATIC_LIB_LINK_CMD = \
|
||||
/usr/bin/libtool $(STATIC_LD_PREFLAGS) -static $(ARCH_FLAGS) -o $@ $^ \
|
||||
$(STATIC_LD_POSTFLAGS)
|
||||
|
||||
AFTER_INSTALL_STATIC_LIB_CMD = \
|
||||
(cd $(LIB_LINK_INSTALL_DIR); \
|
||||
$(RANLIB) $(LIB_LINK_VERSION_FILE))
|
||||
|
||||
SHARED_CFLAGS += -fno-common
|
||||
|
||||
endif
|
||||
#
|
||||
# end MacOSX 10.1.1, darwin5.1
|
||||
#
|
||||
####################################################
|
||||
|
||||
####################################################
|
||||
#
|
||||
# OpenStep 4.x
|
||||
|
|
28
user_home.c
28
user_home.c
|
@ -207,25 +207,31 @@ int main (int argc, char** argv)
|
|||
{
|
||||
/* The environment variable HOMEPATH holds the home directory
|
||||
for the user on Windows NT; Win95 has no concept of home. */
|
||||
len0 = GetEnvironmentVariable("HOMEDRIVE", buf0, 1024);
|
||||
len0 = GetEnvironmentVariable("HOMEPATH", buf0, 1024);
|
||||
if (len0 > 0 && len0 < 1024)
|
||||
{
|
||||
buf0[len0] = '\0';
|
||||
len1 = GetEnvironmentVariable("HOMEPATH", buf1, 128);
|
||||
if (len1 > 0 && len1 < 128)
|
||||
/*
|
||||
* Only use HOMEDRIVE is HOMEPATH does not already contain drive.
|
||||
*/
|
||||
if (len0 < 2 || buf0[1] != ':')
|
||||
{
|
||||
buf1[len1] = '\0';
|
||||
sprintf(home, "%s%s", buf0, buf1);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "Unable to determine HOMEPATH\n");
|
||||
return 1;
|
||||
len1 = GetEnvironmentVariable("HOMEDRIVE", buf1, 128);
|
||||
if (len1 > 0 && len1 < 128)
|
||||
{
|
||||
buf1[len1] = '\0';
|
||||
sprintf(home, "%s%s", buf1, buf0);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "Unable to determine HOMEDRIVE\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "Unable to determine HOMEDRIVE\n");
|
||||
fprintf(stderr, "Unable to determine HOMEPATH\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue