Lib flag fix, Updated docs

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@9250 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2001-02-28 19:59:16 +00:00
parent 2ef5e464b2
commit 0c42e21a23
6 changed files with 290 additions and 17 deletions

View file

@ -1,3 +1,9 @@
2001-02-28 Adam Fedor <fedor@gnu.org>
* rules.make (LIBRARIES_DEPEND_UPON): Use ALL_LIB_DIRS on
LIB_DIRS_NO_SYSTEM.
* Documentation/README.NetBSD: New file.
2001-02-27 Adam Fedor <fedor@gnu.org>
* rules.make (LIBRARIES_DEPEND_UPON): Switch order of -L flags so

121
Documentation/README.MinGW Normal file
View file

@ -0,0 +1,121 @@
Compiling GNUstep on MinGW
==========================
MinGW is a collection of header files and import libraries that allow
one to use GCC and produce native Windows32 programs that do not rely
on any 3rd-party DLLs. GNUstep has only partially been ported to MinGW
so expect some problems when trying to compile. Also, there are still
subtle problems with running GNU tools on Windows, so any problems you
may encounter may just as easly have to do with the compilation tools
you are using as with GNUstep.
MinGW on Cygwin
---------------
This is the only configuration I've tested so far. This method
uses the Cygwin tools to help out with the configuration and
compilation of the libraries. It's always good to get the very latest
version of Cygwin and MinGW. These instructions were performed with
Cygwin DLL 1.1.4 and MingW gcc 2.95.2-1. If you have more experience
with MinGW than me, please help improve these instructions!
I assume you have installed Cygwin and MinGW, and dowloaded and
unpacked the GNUstep core package. You also need to download a version
of the Objective-C runtime that compiles as a shared library
(DLL). See the GNUstep-HOWTO file for more information on where to get
various files.
1. First, start up a Cygwin BASH shell and make sure the MinGW tools
are in your path:
export PATH=//c/gcc-2.95.2-1/bin:$PATH
(Put in whatever path you have for the mingw tools).
2. The default location for GNUstep on Unix systems in /usr/GNUstep, but
there is no default for Windows machines, so you need to set that up
first with the GNUSTEP_SYSTEM_ROOT environment variable. To put it in
a similar location, you might try:
export GNUSTEP_SYSTEM_ROOT=//c/cygwin/usr/GNUstep/System
But you can put it anywhere you like (as long as you specify the full
path with the disk label so MinGW can find it). You can also specify this
with configure, using the --prefix=//c/cygwin/usr/GNUstep/System option.
3. For various reasons, we need to configure and build each
sub-package separately. So first, go to the 'make' subdirectory of the
core package and configure:
cd make
./configure --target=i386-mingw32
4. Now build the Makefile package. For some reason, the make that comes
with MinGW doesn't like the way GNUstep makefiles are setup (or perhaps
it's that MingW make doesn't work with bash), so use Cygwin's make:
/usr/bin/make target=i386-mingw32
/usr/bin/make target=i386-mingw32 install
5. Now source the GNUstep.sh file so the rest of the packages will
compile correctly:
. $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh
6. Now you can compile the Objective-C runtime DLL (unless you already
have one installed):
cd location_of_the_libobjc_library
/usr/bin/make target=i386-mingw32
/usr/bin/make target=i386-mingw32 install
7. Now we can configure and make the base library.
cd location_of_the_core_package/base
./configure --target=i386-mingw32
/usr/bin/make target=i386-mingw32
/usr/bin/make target=i386-mingw32 install
Note that the base library is not completely ported to run on MinGW yet.
In particular, the gstep-base DLL doesn't seem to be set up correctly.
To compile the gstep-base as a static library, use:
/usr/bin/make shared=no
If you get tired of typing "target=i386-mingw32" all the time, then before
you exec the GNUstep.sh script, just set the GNUSTEP_HOST:
export GNUSTEP_HOST=i586-pc-mingw32
. $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh
Native MinGW
------------
(Information provided by Craig Miskell)
So far, this configuration only works when compiling the Makefile package
(gstep-make). It should, in the future work on the libraries. First, you
need to get a port of sh (probably zsh) for Windows
(ftp://ftp.blarg.net/users/amol/).
1. Make sure $HOST_CC or $CC is set to MinGW's gcc. The default seems to be
wrong.
2. Now configure. You may need to set the installation directory, because
the default installation dir is for Unix machines:
./configure --prefix=/usr/GNUstep/System
(Make sure the drive is specified correctly in the path).
3. Then make and install
make
make install
4. Now source the GNUstep.sh file so the rest of the packages will
compile correctly:
. $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh

155
Documentation/README.NetBSD Normal file
View file

@ -0,0 +1,155 @@
Hi folks,
we have installed GS on NetBSD 1.5 (intel) and this is what we did:
pkg_add means, we have the pkg from the NetBSD package collection.
1.) gnumake: pkg_add gmake-3.79.1.tgz
2.) libiconv: pkg_add libiconv-1.5.tgz
3.) libxml:
./configure
in Makefile: Add the following lines:
INLCUDES = -I. -I/usr/local/include -I/usr/pkg/include
LDFLAGS = -L/usr/pkg/lib -liconv
make
su
make install
4.) ffcall-1.6b: ./configure
make
make check
su
make install
5.) pth-1.3.7: ./configure --enable-pthread --enable-syscall-soft
make
make test
su
make install
[for removing 'make uninstall']
5.1) cd /usr/lib
ar -dv libobjc_p.a NXConstStr.po
ar -dv libobjc_pic.a NXConstStr.so
ar -dv libobjc.a NXConstStr.o
rm libobjc.so.0.0
6.) core/make: #. Version <-- disable Version
./configure --prefix=/usr/GNUstep
gmake
su
gmake install
File : /usr/GNUstep/System/Makefiles/framework.make
change ine: with ... {if($$2 == "R") ...
in ... {if($$2 == "D") ...
7.) core/base: source /usr/GNUstep/System/Makefiles/GNustep.csh
./configure --prefix=/usr/GNUstep
File: GSFormat.m include <wchar.h> <-- ADD
(unichar *)strerror(save_errno); <- REPLACED
__strerror_r
File: NSCoder.m LINE 372: remove ";"
LINE 373, 374 :
return ((((GNU... + 0) * 100
+ GNU.. + 0) * 100) + GNU... + 0;
File:dynamic-load.h Zeile 93: // sym = dlsym(RTLD_NEXT, symbol);
sym = dlsym(handle, symbol);
gmake
su
gmake install
8.) core/gui: ./configure --prefix=/usr/GNUstep
--with-tiff-library=/usr/pkg/lib
--with-jpeg-library=/usr/pkg/lib
File: Source/SharedX/XGBitmapImageRep.m // include <config.h> <-- uncomment
File: Source/XGBitmap.m // include <config.h> <-- uncomment
touch Sources/config.h
setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/usr/pkg/lib"
gmake ADDITIONAL_INCLUDE_DIRS ="-I/usr/pkg/include
-I../Headers"
LDFLAGS="-L/usr/pkg/lib -ltiff -ljpeg"
su
gmake install
9.) core/xgps: ./configure --prefix=/usr/GNUstep
--with-tiff-library=/usr/pkg/lib
--with-jpeg-library=/usr/pkg/lib
setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/usr/X11R6/lib"
gmake ADDITIONAL_INCLUDE_DIRS="-I/usr/pkg/include -I../Headers"
LDFLAGS="-L/usr/pkg/lib -L/usr/X11R6/lib
-ltiff -lXmu -lXt"
su
gmake install
9.1) extensions: ./configure --prefix=/usr/GNUstep
gmake
su
gmake install
10.) Prefs:
/usr/GNUstep/System/Tools/defaults write NSGlobalDomain "Local
Time Zone" "Europe/Berlin"
10.1) /etc/rc.local:
GNUSTEP_SYSTEM_ROOT=/usr/GNUstep
if [ -f /usr/GNUstep/System/Tools/ix86/netbsdelf1.5/gdomap ]; then
/usr/GNUstep/System/Tools/ix86/netbsdelf1.5/gdomap
fi
10.2) .cshrc:
Add this at the end of .cshrc:
setenv LD_LIBRARY_PATH /usr/X11R6/lib:/usr/local/lib/usr/pkg/lib
source /usr/GNUstep/System/Makefiles/GNUstep.csh
if ( `gdomap -L GDNCServer | grep -c Found` == '0' ) then
echo "Starting GNUstep services..."
gdnc
gpbs
endif
11.) GWorkspace: gmake LDFLAGS="-L/usr/pkg/lib -ltiff -lXmu -lXt"
start: openapp GWorkspace.app
12.) ProjectCenter: su
gmake install LDFLAGS="-L/usr/pkg/lib -ltiff -lXmu -lXt"
start: openapp ProjectCenter.app
---
_ _
_(_)(_)_ David Wetzel, Turbocat's Development,
(_) __ (_) Buchhorster Strasse 23, D-16567 Muehlenbeck/Berlin, FRG,
_/ \_ Fax +49 33056 82835 NeXTmail dave@turbocat.de
(______) http://www.turbocat.de/
DEVELOPMENT * CONSULTING * ADMINISTRATION
_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@gnu.org
http://mail.gnu.org/mailman/listinfo/discuss-gnustep

View file

@ -264,21 +264,10 @@ and glibc library (which has the threads library) and install both.
Unknown
@item Extra libs needed
Unknown
libiconv
@item Special Instructions
Can compile with shared libraries on elf architectures, although problems
persist with the NXConstantString class. Currently, to avoid this you can
redefine NXConstantString to NXConstantString2 in the libobjc library. Or
you could do the following (works on NetBSD 1.4Z)
@example
cd /usr/lib
ar -dv libobjc_p.a NXConstStr.po
ar -dv libobjc_pic.a NXConstStr.so
ar -dv libobjc.a NXConstStr.o
rm /usr/lib/libobjc.so.0.0
@end example
See the README.NetBSD file located in the gnustep-make package.
@end table

View file

@ -15,8 +15,10 @@ cross-compiled binaries.
The file @samp{NEWS} has the library's feature history.
The files @samp{INSTALL} or @samp{GNUstep-HOWTO} (from the core package)
gives instructions for installing the library.
The files @samp{INSTALL} or @samp{GNUstep-HOWTO}
give instructions for installing the library. Also see the machines.texi
documentation and various machine specific READMEs in the Documentation
directory.
Files in the @samp{Documentation} directory have information on the
design of the Makefile system and how to write your own makefiles that

View file

@ -262,7 +262,7 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
ADDITIONAL_LIB_DIRS="$($*_LIB_DIRS) $(ADDITIONAL_LIB_DIRS)" \
ADDITIONAL_LDFLAGS="$($*_LDFLAGS) $(ADDITIONAL_LDFLAGS)" \
LIBRARIES_DEPEND_UPON="$(shell $(WHICH_LIB_SCRIPT) \
$($*_LIB_DIRS) $(ADDITIONAL_LIB_DIRS) $(LIB_DIRS_NO_SYSTEM) \
$($*_LIB_DIRS) $(ADDITIONAL_LIB_DIRS) $(ALL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) \
$($*_LIBRARIES_DEPEND_UPON) debug=$(debug) profile=$(profile) \
shared=$(shared) libext=$(LIBEXT) \
@ -364,7 +364,7 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
ADDITIONAL_LIB_DIRS="$($*_LIB_DIRS) $(ADDITIONAL_LIB_DIRS)" \
ADDITIONAL_LDFLAGS="$($*_LDFLAGS) $(ADDITIONAL_LDFLAGS)" \
LIBRARIES_DEPEND_UPON="$(shell $(WHICH_LIB_SCRIPT) \
$($*_LIB_DIRS) $(ADDITIONAL_LIB_DIRS) $(LIB_DIRS_NO_SYSTEM) \
$($*_LIB_DIRS) $(ADDITIONAL_LIB_DIRS) $(ALL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) \
$($*_LIBRARIES_DEPEND_UPON) debug=$(debug) profile=$(profile) \
shared=$(shared) libext=$(LIBEXT) \