Add darwin target

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/branches/freeze-1_0_0@9506 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2001-03-27 15:56:51 +00:00
parent b94f14d446
commit d9be90f9ee
6 changed files with 144 additions and 27 deletions

View file

@ -1,3 +1,11 @@
2001-03-27 Adam Fedor <fedor@gnu.org>
* target.make: Add darwin target.
* Documentation/machines.texi: Update.
* Documentation/faq.texi: Likewise.
* Documentation/gnustep-howto.texi: Likewise
Mon Mar 19 14:30:01 2001 Nicola Pero <nicola@brainstorm.co.uk>
* rules.make (install): Depend on internal-after-install after all

View file

@ -43,14 +43,13 @@ 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:
3. You need to configure and build each sub-package separately. So
first, go to the 'gnustep-make' package and configure:
cd make
cd gnustep-make
./configure --target=i386-mingw32
4. Now build the Makefile package. For some reason, the make that comes
4. Now build the gnustep-make 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:
@ -65,19 +64,20 @@ compile correctly:
6. Now you can compile the Objective-C runtime DLL (unless you already
have one installed):
cd location_of_the_libobjc_library
cd gnustep-objc
/usr/bin/make target=i386-mingw32 BUILD_DLL=yes WITH_DLL=yes
/usr/bin/make target=i386-mingw32 BUILD_DLL=yes WITH_DLL=yes install
7. Now we can configure and make the base library.
7. Now we can configure and make the gnustep-base library.
cd location_of_the_core_package/base
cd gnustep-base
./configure --target=i386-mingw32
/usr/bin/make target=i386-mingw32 BUILD_DLL=yes WITH_DLL=yes
/usr/bin/make target=i386-mingw32 BUILD_DLL=yes WITH_DLL=yes 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.
In particular, anything using sockets, NSRunLoop and FileHandles
The gnustep-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 target=i386-mingw32

View file

@ -78,7 +78,7 @@ OpenStep's @samp{AppKit}.)
@item GNUstep DisplayGhostscript Server - A server that draws PostScript
graphics to the screen, and receives events from the keyboard and
mouse. It is based on GhostScript. There is also an DPS extension to
mouse. It is based on GNU GhostScript. There is also an DPS extension to
Xfree*6 that is usable.
@item Various Tools and applications, including GORM, The GNUstep
@ -846,18 +846,22 @@ It works, but is slow and buggy. A lot of work could be done.
@subsection What is the Display Ghostscript Server?
It is a free implementation of a Display PostScript server based on the
ghostscript program by Aladdin software.
GNU Ghostscript program developed by Aladdin Enterprises and now owned by artofcode LLC.
@node What is DGSs current state of development?, What is the relationship between the Display Ghostscript Server and X Windows?, What is the Display Ghostscript Server?, GNUstep DisplayGhostScript Server
@subsection What is its current state of development?
GNU contracted with Aladdin software to add some key features to
ghostscript so it could be used as a DPS server. This work has mostly
been done, althought Aladdin did not completely finish the work that they
were contracted for. DGS works fairly well with a single context and
will soon work with multiple contexts. Alpha channel and compositing
GNU contracted with Aladdin Enterprises to add some key features to
GNU Ghostscript so it could be used as a DPS server. This work has mostly
been done, although Aladdin did not completely
finish the work that they were contracted for. (Because the work took
longer than specified and was not completed, Aladdin agreed to waive
approximately $10,000 in promised fees for the work that was actually
done and delivered.)
DGS works fairly well with a single context.
Alpha channel and compositing
currently doesn't work, but should before the end of 2000 (It's already
been fixed in Ghostscript, just not released).
been fixed in GNU Ghostscript 6.0, just not released).
@node What is the relationship between the Display Ghostscript Server and X Windows?, , What is DGSs current state of development?, GNUstep DisplayGhostScript Server
@subsection What is the relationship between the Display Ghostscript Server and X Windows?

View file

@ -155,13 +155,13 @@ 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.
@item libobjc library snapshot (for gcc version <= 2.95.2)
@item gnustep-objc package (for gcc version <= 3.0)
This is a special version of the Objective-C runtime that include several
bug fixes and features that have not been officially released yet.
It is available at @url{ftp://ftp.gnustep.org/pub/gnustep/libs} which
compiles using the GNUstep Makefile package (so you don't have to get the
entire gcc dist). Make sure to set the THREADING variable in the GNUmakefile.
It might also be best to compile the library static (make shared=no) and
It's possible to compile the library static (make shared=no) and
just copy to the place where the gcc libobjc library is (type gcc -v to
get this location).
@end table
@ -171,7 +171,7 @@ get this location).
Make sure you install all the previously mentioned libraries first
before configuring and building GNUstep (Except you need to install
libobjc after installing gnustep-make, unless your installing it as part
gnustep-objc after installing gnustep-make, unless your installing it as part
of gcc).
Note: you will need to be able to install packages as root (at least

View file

@ -208,8 +208,7 @@ at @url{ftp://ftp.linuxppc.org/linuxppc/contrib/linuxppc-1999/software/XFree86-F
Invocations (and DO) do not work well. The major problem is sending data
with data sizes less than 4 bytes (chars, shorts, etc). To fix this, we
recommend using the ffcall libraries via the @code{--enable-ffcall}
option when configuring (Read the instructions on this in the
recommend using the ffcall libraries (Read the instructions on this in the
configuration section).
@c -----------------------------------------
@ -351,14 +350,15 @@ See the Solaris 2.6 section for more instructions.
@table @samp
@item Recommended compiler
egcs-2.91.60 (1.1.2?), egcs-1.0.1, gcc 2.8.1, gcc 2.95.2
gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep tickles.
@item Extra libs needed
tiff, Don't use the one in /usr/openwin
@item Special Instructions
GCC 2.8.0 induced a problem on Solaris/Sparc
systems; however, there is a patch to fix this in the contrib directory
There is no need to patch the compiler for the builtin_apply problem unless
you are not using the ffcall libraries.
There is a patch to fix this in the contrib directory
on the ftp sites (This is also true for all versions of gcc/egcs up
through 2.95.2 (possibly fixed in later versions)).
@ -369,9 +369,9 @@ LIBS=-L/usr/local/lib ./configure
if, for instance, you have put a newer tiff library in /usr/local/lib
@end table
Even with the about patch, invocations (and DO) still don't
Even with the above patch, invocations (and DO) still don't
work well. The major problem is sending messages with more than four arguments.
We recommend using the ffcall libraries via the @code{--enable-ffcall} option
We recommend using the ffcall libraries
when configuring (Read the instructions on this in the configuration section).
If you are using threads, make sure the Objective-C runtime (libobjc that comes

View file

@ -200,6 +200,111 @@ endif
#
####################################################
####################################################
#
# MacOSX public beta, darwin1.2
#
ifeq ($(findstring darwin1.2, $(GNUSTEP_TARGET_OS)), darwin1.2)
ifeq ($(OBJC_RUNTIME), NeXT)
HAVE_BUNDLES = yes
endif
HAVE_SHARED_LIBS = yes
SHARED_LIBEXT = .dylib
ifeq ($(FOUNDATION_LIB),nx)
# Use the NeXT compiler
CC = cc -traditional-cpp
OBJC_COMPILER = NeXT
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 = \
$(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE)
ifeq ($(FOUNDATION_LIB),nx)
DYLIB_DEF_FRAMEWORKS += -framework Foundation
endif
ifneq ($(OBJC_COMPILER), NeXT)
# GNU compiler
DYLIB_DEF_FRAMEWORKS += -framework System
SHARED_LIB_LINK_CMD = \
$(CC) $(SHARED_LD_PREFLAGS) \
-dynamiclib $(ARCH_FLAGS) -dynamic \
$(DYLIB_COMPATIBILITY_VERSION) \
$(DYLIB_CURRENT_VERSION) \
-install_name $(DYLIB_INSTALL_NAME) \
-o $@ \
$(DYLIB_DEF_FRAMEWORKS) \
$(LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
-lobjc -lgcc $^ $(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
else # OBJC_COMPILER=NeXT
DYLIB_EXTRA_FLAGS = -read_only_relocs warning -undefined warning
-fno-common
DYLIB_DEF_FRAMEWORKS += #-framework Foundation
DYLIB_DEF_LIBS = -lobjc
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 $@ \
$(LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
$(DYLIB_DEF_FRAMEWORKS) \
$(DYLIB_DEF_LIBS) \
$^ $(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
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)
# This doesn't work with 4.1, what about others?
#ADDITIONAL_LDFLAGS += -Wl,-read_only_relocs,suppress
AFTER_INSTALL_STATIC_LIB_COMMAND =
SHARED_CFLAGS += -dynamic -fno-common
SHARED_LIBEXT = .dylib
ifneq ($(OBJC_COMPILER), NeXT)
TARGET_SYSTEM_LIBS += $(CONFIG_SYSTEM_LIBS) -lgcc
endif
BUNDLE_LD = $(CC)
BUNDLE_CFLAGS +=
BUNDLE_LDFLAGS += -bundle -undefined suppress $(ARCH_FLAGS)
endif
#
# end MacOSX public beta, darwin1.2
#
####################################################
####################################################
#
# OpenStep 4.x