mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-22 13:50:47 +00:00
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:
parent
b94f14d446
commit
d9be90f9ee
6 changed files with 144 additions and 27 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
105
target.make
105
target.make
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue