Simplify use of user-defined flags.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@17744 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2003-09-29 16:46:50 +00:00
parent a99fa01a53
commit e9d21d10f0
7 changed files with 193 additions and 128 deletions

View file

@ -1,8 +1,22 @@
2003-09-29 Adam Fedor <fedor@gnu.org>
* Simplify use of user-defined flags.
* configure.ac: USE LDFLAGS not LIBS. Leave CPPFLAGS alone
* common.make (INTERNAL_LDFLAGS): Don't add LDFLAGS
* library-combo.make (SYSTEM_LDFLAGS): Add LDFLAGS.
* config.make.in (CONFIG_SYSTEM_DEFS): Remove.
* Documentation/faq.texi: Update answers.
2003-09-27 Adam Fedor <fedor@gnu.org>
* target.make (darwin/BUNDLE_LDFLAGS): Supress warnings
* Documentation/machines.texi: Update darwin.
2003-09-26 Adam Fedor <fedor@gnu.org>
* Version 1.8.0 released on branch.
2003-09-25 Adam Fedor <fedor@gnu.org>
* target.make (darwin): Fix up bundle flags for GNU compiler.

View file

@ -25,6 +25,7 @@ at the user FAQ for more user oriented questions.
@menu
* Is it easy to port OPENSTEP programs to GNUstep?::
* How about porting between Cocoa and GNUstep?::
* Tools for porting::
* Can I transfer archived data from GNUstep to Cocoa?::
* Does distributed objects work between GNUstep and Cocoa?::
* Is there an Interface Builder for GNUstep?::
@ -45,7 +46,7 @@ the Makefiles yourself. You will also have to translate the NIB files
(if there are any) to GNUstep model files using the nib2gmodel program
(from @url{ftp://ftp.gnustep.org/pub/gnustep/dev-apps}).
@node How about porting between Cocoa and GNUstep?, Can I transfer archived data from GNUstep to Cocoa?, Is it easy to port OPENSTEP programs to GNUstep?, Compatibility
@node How about porting between Cocoa and GNUstep?, Tools for porting, Is it easy to port OPENSTEP programs to GNUstep?, Compatibility
@subsection How about porting between Cocoa and GNUstep?
It's easier from GNUstep to Cocoa than Cocoa to GNUstep. Cocoa is
@ -55,17 +56,50 @@ GNUstep yet. Plus there are some other issues. If you start with
Cocoa:
@itemize @bullet
@item Be careful with Cocoa.h includes
@item Be careful with Cocoa.h includes (Use #ifndef GNUSTEP, for instance)
@item Do not use CoreFoundation
@item Do not use C++
@item Do not use Quicktime or other propriatory extention
@item You need to convert .nib (IB if you use it) to .gmodel or .gorm
and Gorm is good enough for most of the work
@item Do not use NSToolBar (not finished in GNUstep)
@item Do not use Drawer (not implmented in GNUstep)
@item Do not use Objective-C++
@item Do not use Quicktime or other proprietary extension
@item You need to convert .nib files (see next question @pxref(Tools for porting))
@item Some unfinished classes include NSToolBar and Drawers.
@end itemize
@node Can I transfer archived data from GNUstep to Cocoa?, Does distributed objects work between GNUstep and Cocoa?, How about porting between Cocoa and GNUstep?, Compatibility
@node Tools for porting, Can I transfer archived data from GNUstep to Cocoa?, How about porting between Cocoa and GNUstep?, Compatibility
@subsection Tools for porting
While the programming interface should be almost transparent between
systems (expect for the unimplemented parts, of course), there are a
variety of other files and tools that are necessary for porting
programs.
@table @samp
@item ni2gmodel
This program coverts nib files from any system, such as Cocoa or OPENSTEP to
a gmodel format file. Gmodel can be read directly by GNUstep or you can
convert this to a more GNUstep-native gorm format (using the Gorm interface
modeller).
@item Renaissance
GNUstep Renaissance allows you to describe your user
interfaces (that is, the windows in your application, and the buttons,
boxes, textfields, etc in the windows) in simple and intuitive XML
files, using an open, standard format describing the logic of the
interface. It has a number of advantages over the proprietary nib format:
portability, open standard, easy localization, themeability, and
intelligent autolayout.
@item OpenStep2GNUConverter and nfmake
Two programs that allow you to convert PB files to GNUstep makefiles or
compile a program on GNUstep directly from PB files. They probably work
only for OPENSTEP systems and are a little out-of-date.
@item StepTalk
A portable scripting environment that lets your do scripting in almost
any language you like.
@end table
@node Can I transfer archived data from GNUstep to Cocoa?, Does distributed objects work between GNUstep and Cocoa?, Tools for porting, Compatibility
@subsection Can I transfer archived data from GNUstep to Cocoa?
Apple's archiving format is proprietary and not documented, so this
@ -79,7 +113,7 @@ different machines because of endiness issues, although GNUstep doesn't
have this problem.
Your best bet is to implement your own archiving format that would work
both with GNUstep and Cocoa. Fortuneatly, you don't have to start from
both with GNUstep and Cocoa. Fortunately, you don't have to start from
scratch, since this has been essentially done for you in the nib2gmodel
tool, which has an archiver that works both on GNUstep and Cocoa. It
might be nice to split this off into a separate project to make it
@ -107,16 +141,14 @@ both the 'gmodel' format (which stores information as text
(property-lists) and can therefore be edited 'by hand') and binary
archive format (which can be edited by Gorm). There IS a conversion
tool called nib2gmodel that can be compiled under OPENSTEP to convert
OPENSTEP nib files to GNUstep gmodel files.
nib files to GNUstep gmodel files.
@node Can one use the hybrid "Objective-C++", Is there a plan to support Java/YellowBox Bindings?, Can I use my original NIB files?, Compatibility
@subsection Can one use the hybrid "Objective-C++"
No. at present the GNU compiler (gcc) does not support
"Objective-C++". Apple has submitted patches for this, but it is up to
the GCC steering commitee to decide if they want to add them. If you
would like to see this, please politely and respectfully lobby them at
@email{gcc@@gnu.org}.
"Objective-C++". Apple is interested in adding back their implementation
to gcc and is slowly adding parts of it to the mainline gcc implementation.
@node Is there a plan to support Java/YellowBox Bindings?, What if I compile GNUstep under OPENSTEP/MacOS X?, Can one use the hybrid "Objective-C++", Compatibility
@subsection Is there a plan to support the Java/YellowBox Bindings?
@ -140,7 +172,8 @@ OPENSTEP/MacOS-X windows server. While someone could write a
backend library to provide the interface, nobody has bothered to
date.
Also, the GNUstep base library is still being ported to Darwin.
You should, however, be able to use a GNUstep program with an X11 server
running on MacOSX.
@node Is the Objective C API for GTK related?, How about implementing parts of the Application Kit with GTK?, What if I compile GNUstep under OPENSTEP/MacOS X?, Compatibility
@subsection Is the Objective C API for GTK related?
@ -169,7 +202,7 @@ of the work involved in implementing the OpenStep API, the backend
is a relatively thin layer and the advantages of GTK over direct
xlib or win32 calls is likely to be minimal. If/when GTK is ported
to more systems, a backend written using it could be a valuable
asset - volunteers are, as always, wecome.
asset - volunteers are, as always, welcome.
@c ****************************************************************
@ -194,7 +227,7 @@ asset - volunteers are, as always, wecome.
Good question. Read the tutorials at the GNUstep web site. Also look at
Apple's documentation (pointers in the Resources section on the GNUstep web
site.
site.)
@node How can I help with GNUstep?, Helping develop GNUstep, How can I get started programming?, Compiling and Developing
@subsection How can I help with GNUstep?
@ -216,7 +249,7 @@ Free Software Foundation before they can be incorporated into the
project. Get in touch with the maintainer of the library you are
working on about this.
Don't start with large-scale reorganisation of anything - instead,
Don't start with large-scale reorganization of anything - instead,
get a general idea in mind of what you want to do, and proceed as
much as possible with incremental changes that don't break anything
- that way you can make those incremental changes available to the
@ -328,7 +361,7 @@ volunteer to help, or you can start your own project.
@node How can I help with the GNUstep website?, Why doesn't GDB support Objective-C?, How do I start writing applications?, Compiling and Developing
@subsection How can I help with the GNUstep website?
Talk to Adam Fedor @email{fedor@@gnu.org}, the maintainer.
Talk to Adam Fedor @email{fedor@@gnu.org}, the maintainer.
The GNUstep website is kept as a CVS module, but the largest portions
of it (the FAQ and the Documentation) are actually
@ -350,14 +383,11 @@ out-of-date (or wrong) and update/mark-as-outdated as required.
@node Why doesn't GDB support Objective-C?, , How can I help with the GNUstep website?, Compiling and Developing
@subsection Why doesn't GDB support Objective-C?
Apple has submitted their patches to make GDB work with Objective-C
programs, and the GDB maintainer has said that he is interested in
integrating them. Now it appears that that there is just a lack of
time and priority to get this done. You can ask about or lobby for this -
see @url{http://sources.redhat.com/gdb/}.
Update: GDB 6.0, which should come out sometime in September 2003
supports debugging of Objective-C code.
There are patches available on the gnustep web site if you want
to compile your own gdb (see @url{ftp://ftp.gnustep.org/pub/gnustep/patches}).
There are patches available on the gnustep web site for earlier versions
of gdb (see @url{ftp://ftp.gnustep.org/pub/gnustep/patches}).
@c -------------------------------------------------------------------
@ -382,36 +412,22 @@ does, including Categories, Protocols, @samp{+poseAs:}, thread-safety,
class initialization on demand, delayed loading of classes, and
initialization of static instances (such as @@""-style string objects).
It also has several improvements over NeXT's implementation:
It also has several differences over NeXT's implementation:
@itemize @bullet
@item NeXT's runtime requires an extra function call (objc_msgSend) for
each message that is sent; (the function looks up the receiving
instance's implementation of the method). GNU's implementation is
faster because it does not use an extra function call. Instead, it
inlines a short piece of code that makes two pointer hops into a method
dispatch table; because the code is inlined, it does not incur the
overhead of a function call.
@item When running in thread-safe mode, NeXT's runtime must aquire a
global mutual exclusion lock every time a message is sent; this is
extremely slow. GNU's runtime, amazingly, sends messages just as fast
in thread-safe mode as it does in single-thread mode---the code path
does not contain even a single extra instruction! The GNU runtime only
needs locks when certainly structures are written, not read; the
structures are written relatively infrequently: only at class
initialization and when @samp{+poseAs:} is called.
@item GNU's runtime provides ``selector-types'' along with each
selector; NeXT's does not. A selector-type is a string that describes
the C variable types for the method's return and argument values. Among
other uses, selector-types is extrememly helpful for fast distributed
other uses, selector-types is extremely helpful for fast distributed
objects implementations, (see GNUstep Base Library Section, below).
@item Many of the GNU functions have different names than their
corresponding NeXT functions; the GNU names conform to the GNU coding
standards.
standards. The GNUstep base library contains a compatibility header that
works with both runtimes. You should use functions there or use OpenStep
Foundation methods/functions instead of the basic
runtime functions so that you code can run with either system.
@end itemize
@ -454,12 +470,11 @@ portion of the OpenStep standard (the Foundation library).
@node What is base's current state of development?, What are the features of GNU Distributed Objects?, What is the GNUstep Base Library?, GNUstep Base Library
@subsection What is its current state of development?
GNUstep base is currently stable and implements probably 99% of the
functionality of the OpenStep classes and most all of the new Cocoa
classes.
Normal work can already be done using the library since the
missing 1 percent are the least-often-used features or are simply not
up to date with the latest Carbon spec.
GNUstep base is currently stable and, to the best of our knowledge,
implements all of the OpenStep functionality (except for a few classes
that we feel are not useful). It also implements most all of the new
Cocoa classes. However we do some things, like scripting, differently,
so we don't implement all the Cocoa classes.
@node What are the features of GNU Distributed Objects?, , What is base's current state of development?, GNUstep Base Library
@subsection What are the features of GNU Distributed Objects?
@ -471,7 +486,7 @@ are not available.
[NOTE: The GNU distributed object facilities have the same ease-of-use
as NeXT's; be warned, however, that they are not compatible with each
other. They have different class heirarchies, different instance
other. They have different class hierarchies, different instance
variables, different method names, different implementation strategies
and different network message formats. You cannot communicate with a
NeXT NSConnection using a GNU NSConnection.
@ -497,7 +512,7 @@ you like. ].
* What is the GUI Library?::
* Explain the organization of the front- and back-ends::
* What is the current state of development of the front-end?::
* What is the current state of development of the X/DPS back-end?::
* What is the current state of development of the back-ends?::
@end menu
@node What is the GUI Library?, Explain the organization of the front- and back-ends, GNUstep GUI Library, GNUstep GUI Library
@ -531,17 +546,30 @@ graphics/event platforms. Much work will be saved by this clean
separation between front- and back-end, because it allows different
platforms to share the large amount of front-end code.
@node What is the current state of development of the front-end?, What is the current state of development of the X/DPS back-end?, Explain the organization of the front- and back-ends, GNUstep GUI Library
@node What is the current state of development of the front-end?, What is the current state of development of the back-ends?, Explain the organization of the front- and back-ends, GNUstep GUI Library
@subsection What is the current state of development of the front-end?
Many of the classes are well implemented, if not thouroughly tested.
Many of the classes are well implemented, if not thoroughly tested.
See the GNUstep web sites and read status information contained in the
distribution for the most up-to-date information.
@node What is the current state of development of the X/DPS back-end?, , What is the current state of development of the front-end?, GNUstep GUI Library
@subsection What is the current state of development of the X/DPS back-end?
@node What is the current state of development of the back-ends?, , What is the current state of development of the front-end?, GNUstep GUI Library
@subsection What is the current state of development of the back-ends?
It works, but is slow and buggy. A lot of work could be done.
There are several backends currently available:
@table @samp
@item xlib
This is the standard backend that runs on X11 and uses standard xlib
calls for implementing drawing. It works well, but is limited in many
areas due to the limitations of xlib drawing.
@item art
This is a very good backend that draws using the libart package and
freetype with near PostScript quality and functionality. At some point
it will become the standard.
@item w32
This backend works on Windows and is currently very alpha quality.
@end table
@c ------------------------- GNUstep GUI Library -----------------------
@ -560,6 +588,10 @@ It works, but is slow and buggy. A lot of work could be done.
It is a free implementation of a Display PostScript server based on the
GNU Ghostscript program developed by Aladdin Enterprises and now owned by artofcode LLC.
At one point, GNUstep was using this for display purposes. However the
development of DGS has stopped as it is too difficult to maintain and
no one wanted to work on it. Now we are using other means of drawing.
@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?

View file

@ -396,7 +396,7 @@ endif
ifeq ($(profile), yes)
ADDITIONAL_FLAGS += -pg
ifeq ($(LD), $(CC))
LDFLAGS += -pg
INTERNAL_LDFLAGS += -pg
endif
OBJ_DIR_PREFIX += profile_
LIBRARY_NAME_SUFFIX := p$(LIBRARY_NAME_SUFFIX)
@ -437,7 +437,6 @@ AUXILIARY_CPPFLAGS += $(GNUSTEP_DEFINE) \
INTERNAL_OBJCFLAGS += $(ADDITIONAL_FLAGS) $(OPTFLAG) $(OBJCFLAGS) \
$(RUNTIME_FLAG)
INTERNAL_CFLAGS += $(ADDITIONAL_FLAGS) $(CFLAGS) $(OPTFLAG)
INTERNAL_LDFLAGS += $(LDFLAGS)
# trick needed to replace a space with nothing
empty:=

View file

@ -105,10 +105,9 @@ ifndef objc_threaded
objc_threaded:=@objc_threaded@
endif
# Any user specified libs, like thread libraries
CONFIG_SYSTEM_INCL = @INCLUDE_FLAGS@
# Any user specified libs
CONFIG_SYSTEM_INCL=@INCLUDES@
CONFIG_SYSTEM_LIBS = @LIBS@
CONFIG_SYSTEM_DEFS =
#
# Whether the C/ObjC/C++ compiler supports auto-dependencies

90
configure vendored
View file

@ -317,7 +317,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os ac_cv_library_combo CYGWIN RANLIB AR DLLTOOL ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S TAR CHOWN GNUSTEP_ROOT root_prefix MAKEFILES_SUFFIX HOST_INSTALL GNUSTEP_LOCAL_ROOT GNUSTEP_NETWORK_ROOT GNUSTEP_FLATTENED GNUSTEP_MULTI_PLATFORM BACKEND_BUNDLE EGREP objc_threaded ac_cv_objc_threaded AUTO_DEPENDENCIES OBJC_NO_IMPORT_FLAGS INCLUDE_FLAGS GNUSTEP_MOVE_OBSOLETE GNUSTEP_MAKE_VERSION GNUSTEP_MAKE_MAJOR_VERSION GNUSTEP_MAKE_MINOR_VERSION GNUSTEP_MAKE_SUBMINOR_VERSION clean_target_os clean_target_cpu clean_target_vendor LIBOBJS LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os ac_cv_library_combo CYGWIN RANLIB AR DLLTOOL ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S TAR CHOWN GNUSTEP_ROOT root_prefix MAKEFILES_SUFFIX HOST_INSTALL GNUSTEP_LOCAL_ROOT GNUSTEP_NETWORK_ROOT GNUSTEP_FLATTENED GNUSTEP_MULTI_PLATFORM BACKEND_BUNDLE EGREP objc_threaded ac_cv_objc_threaded AUTO_DEPENDENCIES INCLUDES OBJC_NO_IMPORT_FLAGS GNUSTEP_MOVE_OBSOLETE GNUSTEP_MAKE_VERSION GNUSTEP_MAKE_MAJOR_VERSION GNUSTEP_MAKE_MINOR_VERSION GNUSTEP_MAKE_SUBMINOR_VERSION clean_target_os clean_target_cpu clean_target_vendor LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@ -2529,6 +2529,7 @@ if test "$ac_cv_library_combo" = ""; then
case "$host_os" in
darwin*) ac_cv_library_combo=apple-apple-apple ;;
nextstep4) ac_cv_library_combo=nx-nx-nx ;;
openstep4) ac_cv_library_combo=nx-nx-nx ;;
*) ac_cv_library_combo=gnu-gnu-gnu ;;
esac
fi
@ -2548,19 +2549,14 @@ OBJC_RUNTIME_LIB=`echo $ac_cv_library_combo | awk -F- '{print $1}'`
#--------------------------------------------------------------------
# specific target_os options
#--------------------------------------------------------------------
INCLUDE_FLAGS=
INCLUDES=
case "$target_os" in
freebsd* | openbsd* )
INCLUDE_FLAGS="$INCLUDE_FLAGS -I/usr/local/include"
LIBS="$LIBS -L/usr/local/lib";;
netbsd*) INCLUDE_FLAGS="$INCLUDE_FLAGS -I/usr/pkg/include"
LIBS="$LIBS -Wl,-R/usr/pkg/lib -L/usr/pkg/lib";;
INCLUDES="-I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib";;
netbsd*) INCLUDES="-I/usr/pkg/include"
LDFLAGS="$LDFLAGS -Wl,-R/usr/pkg/lib -L/usr/pkg/lib";;
esac
# Save the user supplied CPPFLAGS so we can restore them later.
user_CPPFLAGS="$CPPFLAGS"
# This is just for configuring. Later, in config.make, INCLUDE_FLAGS
# goes in CONFIG_SYSTEM_INCL and the original CPPFLAGS goes in unaltered
CPPFLAGS="$CPPFLAGS $INCLUDE_FLAGS"
#--------------------------------------------------------------------
# Determine the host, build, and target systems
@ -3305,9 +3301,9 @@ echo "${ECHO_T}$gs_cv_objc_libdir" >&6
# The following are needed to compile the test programs
if test "$gs_cv_objc_libdir" = "$GNUSTEP_LDIR"; then
if test "$GNUSTEP_FLATTENED" = yes; then
OBJC_CPPFLAGS="$INCLUDE_FLAGS -I$prefix/Library/Headers"
OBJC_CPPFLAGS="$CPPFLAGS $INCLUDES -I$prefix/Library/Headers"
else
OBJC_CPPFLAGS="$INCLUDE_FLAGS -I$prefix/Library/Headers/${ac_cv_library_combo}"
OBJC_CPPFLAGS="$CPPFLAGS $INCLUDES -I$prefix/Library/Headers/${ac_cv_library_combo}"
fi
OBJC_LDFLAGS="$LDFLAGS -L$gs_cv_objc_libdir"
fi
@ -4099,12 +4095,6 @@ fi;
echo "$as_me:$LINENO: checking whether objc has thread support" >&5
echo $ECHO_N "checking whether objc has thread support... $ECHO_C" >&6
extra_LIBS=""
case "${target_os}" in
solaris*)
extra_LIBS="-lposix4"
;;
esac
saved_CFLAGS="$CFLAGS"
saved_LIBS="$LIBS"
CFLAGS="$CFLAGS -x objective-c -I$srcdir $OBJC_CPPFLAGS $OBJC_LDFLAGS"
@ -4118,7 +4108,7 @@ if test "$OBJC_RUNTIME_LIB" = "apple"; then
CFLAGS="$CFLAGS -DNeXT_RUNTIME"
fi
if test "$OBJC_THREAD" != ""; then
LIBS="-lobjc $LIBS $OBJC_THREAD $extra_LIBS"
LIBS="-lobjc $LIBS $OBJC_THREAD"
if test "$cross_compiling" = yes; then
objc_threaded=""
else
@ -4142,7 +4132,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
objc_threaded="$OBJC_THREAD $extra_LIBS"
objc_threaded="$OBJC_THREAD"
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
@ -4301,7 +4291,7 @@ fi
fi
elif test "$MINGW32" = yes; then
# Mingw doesn't need anything extra for threads
LIBS="-lobjc $LIBS $extra_LIBS"
LIBS="-lobjc $LIBS"
if test "$cross_compiling" = yes; then
objc_threaded="works"
else
@ -4337,7 +4327,7 @@ fi
rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
else
LIBS="-lobjc $LIBS $extra_LIBS"
LIBS="-lobjc $LIBS"
if test "$cross_compiling" = yes; then
objc_threaded=""
else
@ -4373,7 +4363,7 @@ fi
rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
if test x"$objc_threaded" = x""; then
LIBS="-lobjc $saved_LIBS -lpthread $extra_LIBS"
LIBS="-lobjc $saved_LIBS -lpthread "
if test "$cross_compiling" = yes; then
objc_threaded=""
else
@ -4397,7 +4387,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
objc_threaded="-lpthread $extra_LIBS"
objc_threaded="-lpthread"
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
@ -4410,7 +4400,8 @@ rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext
fi
fi
if test x"$objc_threaded" = x""; then
LIBS="-lobjc $saved_LIBS -lthread $extra_LIBS"
# Solaris, OpenBSD/sparc
LIBS="-lobjc $saved_LIBS -lpthread -lposix4"
if test "$cross_compiling" = yes; then
objc_threaded=""
else
@ -4434,7 +4425,44 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
objc_threaded="-lthread $extra_LIBS"
objc_threaded="-lpthread -lposix4"
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
objc_threaded=""
fi
rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
if test x"$objc_threaded" = x""; then
LIBS="-lobjc $saved_LIBS -lthread "
if test "$cross_compiling" = yes; then
objc_threaded=""
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include "config_thread.m"
_ACEOF
rm -f conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
objc_threaded="-lthread"
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
@ -4454,7 +4482,7 @@ if test x"$objc_threaded" = x""; then
echo "${ECHO_T}no" >&6
else
if test x"$objc_threaded" = x"works"; then
objc_threaded="$extra_LIBS"
objc_threaded=""
fi
echo "$as_me:$LINENO: result: yes: $objc_threaded" >&5
echo "${ECHO_T}yes: $objc_threaded" >&6
@ -4501,6 +4529,7 @@ fi
#---------------------------------------------------------------------
# Enable/disable warnings for deprecated #import directive as required
#---------------------------------------------------------------------
@ -4527,9 +4556,6 @@ if test "$ac_cv_import" = "yes"; then
fi
CPPFLAGS="$user_CPPFLAGS"
#--------------------------------------------------------------------
# Disable updating the obsolete directory structure
#--------------------------------------------------------------------
@ -5267,8 +5293,8 @@ s,@EGREP@,$EGREP,;t t
s,@objc_threaded@,$objc_threaded,;t t
s,@ac_cv_objc_threaded@,$ac_cv_objc_threaded,;t t
s,@AUTO_DEPENDENCIES@,$AUTO_DEPENDENCIES,;t t
s,@INCLUDES@,$INCLUDES,;t t
s,@OBJC_NO_IMPORT_FLAGS@,$OBJC_NO_IMPORT_FLAGS,;t t
s,@INCLUDE_FLAGS@,$INCLUDE_FLAGS,;t t
s,@GNUSTEP_MOVE_OBSOLETE@,$GNUSTEP_MOVE_OBSOLETE,;t t
s,@GNUSTEP_MAKE_VERSION@,$GNUSTEP_MAKE_VERSION,;t t
s,@GNUSTEP_MAKE_MAJOR_VERSION@,$GNUSTEP_MAKE_MAJOR_VERSION,;t t

View file

@ -42,6 +42,7 @@ if test "$ac_cv_library_combo" = ""; then
case "$host_os" in
darwin*) ac_cv_library_combo=apple-apple-apple ;;
nextstep4) ac_cv_library_combo=nx-nx-nx ;;
openstep4) ac_cv_library_combo=nx-nx-nx ;;
*) ac_cv_library_combo=gnu-gnu-gnu ;;
esac
fi
@ -60,19 +61,14 @@ OBJC_RUNTIME_LIB=`echo $ac_cv_library_combo | awk -F- '{print $1}'`
#--------------------------------------------------------------------
# specific target_os options
#--------------------------------------------------------------------
INCLUDE_FLAGS=
INCLUDES=
case "$target_os" in
freebsd* | openbsd* )
INCLUDE_FLAGS="$INCLUDE_FLAGS -I/usr/local/include"
LIBS="$LIBS -L/usr/local/lib";;
netbsd*) INCLUDE_FLAGS="$INCLUDE_FLAGS -I/usr/pkg/include"
LIBS="$LIBS -Wl,-R/usr/pkg/lib -L/usr/pkg/lib";;
INCLUDES="-I/usr/local/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib";;
netbsd*) INCLUDES="-I/usr/pkg/include"
LDFLAGS="$LDFLAGS -Wl,-R/usr/pkg/lib -L/usr/pkg/lib";;
esac
# Save the user supplied CPPFLAGS so we can restore them later.
user_CPPFLAGS="$CPPFLAGS"
# This is just for configuring. Later, in config.make, INCLUDE_FLAGS
# goes in CONFIG_SYSTEM_INCL and the original CPPFLAGS goes in unaltered
CPPFLAGS="$CPPFLAGS $INCLUDE_FLAGS"
#--------------------------------------------------------------------
# Determine the host, build, and target systems
@ -349,9 +345,9 @@ AC_MSG_RESULT($gs_cv_objc_libdir)
# The following are needed to compile the test programs
if test "$gs_cv_objc_libdir" = "$GNUSTEP_LDIR"; then
if test "$GNUSTEP_FLATTENED" = yes; then
OBJC_CPPFLAGS="$INCLUDE_FLAGS -I$prefix/Library/Headers"
OBJC_CPPFLAGS="$CPPFLAGS $INCLUDES -I$prefix/Library/Headers"
else
OBJC_CPPFLAGS="$INCLUDE_FLAGS -I$prefix/Library/Headers/${ac_cv_library_combo}"
OBJC_CPPFLAGS="$CPPFLAGS $INCLUDES -I$prefix/Library/Headers/${ac_cv_library_combo}"
fi
OBJC_LDFLAGS="$LDFLAGS -L$gs_cv_objc_libdir"
fi
@ -380,12 +376,6 @@ OBJC_THREAD=
AC_MSG_CHECKING(whether objc has thread support)
extra_LIBS=""
case "${target_os}" in
solaris*)
extra_LIBS="-lposix4"
;;
esac
saved_CFLAGS="$CFLAGS"
saved_LIBS="$LIBS"
CFLAGS="$CFLAGS -x objective-c -I$srcdir $OBJC_CPPFLAGS $OBJC_LDFLAGS"
@ -399,9 +389,9 @@ if test "$OBJC_RUNTIME_LIB" = "apple"; then
CFLAGS="$CFLAGS -DNeXT_RUNTIME"
fi
if test "$OBJC_THREAD" != ""; then
LIBS="-lobjc $LIBS $OBJC_THREAD $extra_LIBS"
LIBS="-lobjc $LIBS $OBJC_THREAD"
AC_TRY_RUN([#include "config_thread.m"],
objc_threaded="$OBJC_THREAD $extra_LIBS",
objc_threaded="$OBJC_THREAD",
objc_threaded="", objc_threaded="")
elif test "$host_os" = linux-gnu; then
LIBS="-lobjc -lpthread"
@ -423,25 +413,32 @@ elif test "`echo $host_os|sed 's/[[0-9]].*//'|sed s/elf//`" = freebsd; then
fi
elif test "$MINGW32" = yes; then
# Mingw doesn't need anything extra for threads
LIBS="-lobjc $LIBS $extra_LIBS"
LIBS="-lobjc $LIBS"
AC_TRY_RUN([#include "config_thread.m"],
objc_threaded="works",
objc_threaded="", objc_threaded="works")
else
LIBS="-lobjc $LIBS $extra_LIBS"
LIBS="-lobjc $LIBS"
AC_TRY_RUN([#include "config_thread.m"],
objc_threaded="works",
objc_threaded="", objc_threaded="")
if test x"$objc_threaded" = x""; then
LIBS="-lobjc $saved_LIBS -lpthread $extra_LIBS"
LIBS="-lobjc $saved_LIBS -lpthread "
AC_TRY_RUN([#include "config_thread.m"],
objc_threaded="-lpthread $extra_LIBS",
objc_threaded="-lpthread",
objc_threaded="", objc_threaded="")
fi
if test x"$objc_threaded" = x""; then
LIBS="-lobjc $saved_LIBS -lthread $extra_LIBS"
# Solaris, OpenBSD/sparc
LIBS="-lobjc $saved_LIBS -lpthread -lposix4"
AC_TRY_RUN([#include "config_thread.m"],
objc_threaded="-lthread $extra_LIBS",
objc_threaded="-lpthread -lposix4",
objc_threaded="", objc_threaded="")
fi
if test x"$objc_threaded" = x""; then
LIBS="-lobjc $saved_LIBS -lthread "
AC_TRY_RUN([#include "config_thread.m"],
objc_threaded="-lthread",
objc_threaded="", objc_threaded="")
fi
fi
@ -451,7 +448,7 @@ if test x"$objc_threaded" = x""; then
AC_MSG_RESULT(no)
else
if test x"$objc_threaded" = x"works"; then
objc_threaded="$extra_LIBS"
objc_threaded=""
fi
AC_MSG_RESULT(yes: $objc_threaded)
fi
@ -492,6 +489,7 @@ else
fi
AC_SUBST(AUTO_DEPENDENCIES)
AC_SUBST(INCLUDES)
#---------------------------------------------------------------------
# Enable/disable warnings for deprecated #import directive as required
@ -514,9 +512,6 @@ if test "$ac_cv_import" = "yes"; then
fi
AC_SUBST(OBJC_NO_IMPORT_FLAGS)
CPPFLAGS="$user_CPPFLAGS"
AC_SUBST(INCLUDE_FLAGS)
#--------------------------------------------------------------------
# Disable updating the obsolete directory structure
#--------------------------------------------------------------------

View file

@ -216,6 +216,6 @@ ifeq ($(GUI_LIB), apple)
endif
SYSTEM_INCLUDES = $(CONFIG_SYSTEM_INCL)
SYSTEM_LDFLAGS =
SYSTEM_LDFLAGS = $(LDFLAGS)
SYSTEM_LIB_DIR =
SYSTEM_LIBS =