mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
Updated docs. --enable-ffcall check
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@8284 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
2285763de7
commit
357263c411
7 changed files with 849 additions and 527 deletions
|
@ -1,3 +1,11 @@
|
|||
2000-12-08 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* configure.in: Add check for --enable-ffcall
|
||||
* Documentation/GNUmakefile.in: New file.
|
||||
* Documentation/install.texi: New file.
|
||||
* Documentation/readme.texi: New file.
|
||||
* README, INSTALL: Regenerate.
|
||||
|
||||
2000-12-06 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* openapp.in:
|
||||
|
|
68
Documentation/GNUmakefile.in
Normal file
68
Documentation/GNUmakefile.in
Normal file
|
@ -0,0 +1,68 @@
|
|||
#
|
||||
# Documentation makefile for the GNUstep Makefile Package
|
||||
# Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
#
|
||||
# Written: Adam Fedor <fedor@gnu.org>
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Library General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Library General Public
|
||||
# License along with this library; if not, write to the Free
|
||||
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
||||
|
||||
# Install into the system root by default
|
||||
prefix = @prefix@
|
||||
GNUSTEP_INSTALLATION_DIR=$(prefix)
|
||||
GNUSTEP_PREFIX = @GNUSTEP_PREFIX@
|
||||
srcdir = @srcdir@
|
||||
datadir = @datadir@
|
||||
|
||||
GNUSTEP_MAKETEXT = makeinfo
|
||||
GNUSTEP_MAKETEXT_FLAGS = -D NO-TEXI2HTML -D TEXT-ONLY --no-header --no-split
|
||||
|
||||
# The documents to be generated
|
||||
DOCUMENT_NAME =
|
||||
|
||||
# The text documents to be generated
|
||||
DOCUMENT_TEXT_NAME = \
|
||||
INSTALL README
|
||||
|
||||
TOP_DOC_FILES = INSTALL README
|
||||
|
||||
INSTALL_TEXI_FILES =
|
||||
INSTALL_TEXT_MAIN = install.texi
|
||||
INSTALL_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
|
||||
|
||||
NEWS_TEXI_FILES =
|
||||
NEWS_TEXT_MAIN = news.texi
|
||||
NEWS_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
|
||||
|
||||
README_TEXI_FILES =
|
||||
README_TEXT_MAIN = readme.texi
|
||||
README_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
|
||||
|
||||
ANNOUNCE_TEXI_FILES =
|
||||
ANNOUNCE_TEXT_MAIN = announce.texi
|
||||
ANNOUNCE_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
|
||||
|
||||
all: $(DOCUMENT_TEXT_NAME)
|
||||
|
||||
INSTALL: install.texi
|
||||
$(GNUSTEP_MAKETEXT) $(GNUSTEP_MAKETEXT_FLAGS) \
|
||||
-o $@ $^
|
||||
|
||||
README: readme.texi
|
||||
$(GNUSTEP_MAKETEXT) $(GNUSTEP_MAKETEXT_FLAGS) \
|
||||
-o $@ $^
|
||||
|
||||
|
||||
regenerate: $(DOCUMENT_TEXT_NAME)
|
||||
mv -f $(TOP_DOC_FILES) ..
|
222
Documentation/install.texi
Normal file
222
Documentation/install.texi
Normal file
|
@ -0,0 +1,222 @@
|
|||
@chapter GNUstep makefile package installation
|
||||
|
||||
@section Introduction
|
||||
|
||||
If you are installing this package as part of the GNUstep core
|
||||
libraries, read the file GNUstep-HOWTO for more complete instructions on
|
||||
how to install the entire GNUstep package (including this package).
|
||||
GNUstep-HOWTO comes with the core distribution and also is located at the
|
||||
same ftp sites as this library.
|
||||
|
||||
When you configure additional libraries, make sure you use the same
|
||||
configuration options as with gstep-make.
|
||||
|
||||
Also make sure you've read the machine-specific instructions for your
|
||||
particular operating system and CPU. These instructions come with the
|
||||
core libraries and are also located at the GNUstep web site at
|
||||
@url{http://www.gnustep.org}.
|
||||
|
||||
@section Additional Libraries
|
||||
|
||||
@section Configuration
|
||||
|
||||
The GNUstep makefile package uses the Autoconf mechanism for
|
||||
configuration; it checks some host capabilties which are used by
|
||||
all GNUstep software. To configure just type:
|
||||
|
||||
@example
|
||||
./configure
|
||||
@end example
|
||||
|
||||
The GNUstep makefile package needs a root directory. If the
|
||||
GNUSTEP_SYSTEM_ROOT environment variable is set then configure will
|
||||
use its value as the root directory. You can also specify the root
|
||||
directory when you run configure with the prefix paramter; the
|
||||
following command makes /usr/local/GNUstep the root directory:
|
||||
|
||||
@example
|
||||
./configure --prefix=/usr/local/GNUstep
|
||||
@end example
|
||||
|
||||
If you do not have the GNUSTEP_SYSTEM_ROOT environment variable set
|
||||
and you do not specify a root directory when running configure, then
|
||||
configure will use /usr/GNUstep as the default root directory.
|
||||
|
||||
@subsection Reading Command-Line Arguments
|
||||
|
||||
There are two features that change how GNUstep gets access to
|
||||
command-line arguments and environment variables (normally passed to
|
||||
the program in the @code{main()} function. These features are
|
||||
@code{--enable-pass-arguments} and the @code{--enable-fake-main}
|
||||
option(s).
|
||||
|
||||
The fake-main option @emph{secretly} renames the @code{main()} function
|
||||
and substitutes it's own function which stores the command line
|
||||
arguments before calling the real main.
|
||||
|
||||
The pass-arguments option absolves GNUstep of any effort to get the
|
||||
command-line arguments and instead forces the developer to insert the
|
||||
line
|
||||
|
||||
@example
|
||||
[NSProcessInfo initializeWithArguments:argv count:argc environment:env];
|
||||
@end example
|
||||
|
||||
in the @code{main()} function of their program.
|
||||
|
||||
Normally, the configure script will determine if a program
|
||||
can read process information directly from the system (for use by the
|
||||
class NSProcessInfo) and enable or disable the fake-main hack
|
||||
automatically, but if you find that configure is not doing this
|
||||
correctly, you can force the fake-main hack to be used, which will
|
||||
always work. Note that if the fake-main hack is enabled, you need to
|
||||
include the header file GSConfig.h in you main program -- this is done
|
||||
by default if you include NSObject.h or Foundation.h. If you want to
|
||||
avoid the whole idea of the fake-main hack, you can use the
|
||||
pass-arguments option. In this case you will be forced to call the
|
||||
NSProcessInfo initializeWithArguments method to pass the program
|
||||
arguments to NSProcessInfo (This would be done automatically if you use
|
||||
the NSApplicationMain function in a gui application).
|
||||
|
||||
@subsection FFI Library
|
||||
|
||||
GNUstep's NSInvocations and Distributed Objects code involves detailed
|
||||
manipulation of function (method) calls, which does not work on all
|
||||
machine architectures. A more robust and portable solution is to use a
|
||||
library that implements a Foreign-Function Interface (FFI), such as the
|
||||
ffcall libraries. If you use a non-x86 machine, you should seriously
|
||||
consider enabling this option using @code{--enable-ffcall}.
|
||||
|
||||
For this to work, you need to have the ffcall libraries, which you can
|
||||
get from @url{ftp://ftp.santafe.edu/pub/gnu/} or
|
||||
@url{http://clisp.cons.org/~haible/}. You also need to have a special
|
||||
version of the Objective-C library (as of gcc 2.95.x the required hooks
|
||||
are not in the standard library). You can get this library from
|
||||
@url{ftp://www.gnustep.org/pub/gnustep/contrib/libobjc-hh.tar.gz} or
|
||||
patch the standard library with the patch at
|
||||
@url{ftp://www.gnustep.org/pub/gnustep/contrib/libobjc-ffi.patch}.
|
||||
|
||||
Make sure you specify this option when configuring gstep-base also.
|
||||
|
||||
@section Configuring the GNUstep makefile package for a cross-compile target
|
||||
|
||||
By default when you run configure, it assumes that you want to create
|
||||
executables for the same host that you are compiling on; however, the
|
||||
GNUstep makefile package has been designed to support cross-compiling
|
||||
just as easily as normal compiling. In order to add a cross-compile
|
||||
target to the GNUstep makefile package, you must rerun configure for
|
||||
that target and reinstall the makefile package. By rerunning
|
||||
configure, the appropriate target settings are determined, and
|
||||
reinstalling the makefile package installs the appropriate files for
|
||||
that target. The target parameter is used to specify the target
|
||||
platform for cross-compiling:
|
||||
|
||||
@example
|
||||
./configure --target=i386-mingw32
|
||||
make install
|
||||
@end example
|
||||
|
||||
Note that configuring and installing for a cross-compile target does
|
||||
not eliminate or overwrite the files for any other targets that you
|
||||
may have configured. So if you wish to setup the GNUstep makefile
|
||||
package for multiple targets then just perform the above steps
|
||||
multiple times.
|
||||
|
||||
@example
|
||||
./configure --target=i386-mingw32
|
||||
make install
|
||||
./configure --target=sparc-solaris2.5
|
||||
make install
|
||||
./configure --target=alpha-linux-gnu
|
||||
make install
|
||||
@end example
|
||||
|
||||
@section Configuring the GNUstep makefile package for a flattened structure
|
||||
|
||||
On systems where you know you are only interested in supporting a single
|
||||
operating system, cpu type, and library combination, it's possible to
|
||||
configure GNUstep to use a 'flattened' directory structure.
|
||||
You do this by supplying the '--enable-flattened' argument to configure.
|
||||
|
||||
In a flattened structure, files are stotred at the top-level rather than
|
||||
in a @code{$(GNUSTEP_CPU)/$(GNUSTEP_OS)/$(LIBRARY_COMBO)} subdirectory.
|
||||
|
||||
You lose a lot of versatility with this layout, but it's simpler (less
|
||||
intimidating) for naive users to handle.
|
||||
|
||||
@section Installation
|
||||
|
||||
After you configure the GNUstep makefile package, then you need to
|
||||
compile the programs that come with the package. Currently there is
|
||||
only a single C program which needs to be compiled; all of the other
|
||||
files are either shell scripts or makefile fragments, so you can
|
||||
compile and install the makefile package in one step with:
|
||||
|
||||
@example
|
||||
make install
|
||||
@end example
|
||||
|
||||
After you have installed the GNUstep makefile package, there is still
|
||||
some minor administration to be performed. Based upon whether you are
|
||||
setting up the GNUstep environment for a single user or all users on
|
||||
your system, perform the appropriate step below.
|
||||
|
||||
@section Setting up the GNUstep environment for all users
|
||||
|
||||
The GNUstep environment and thus usage of the makefile package is
|
||||
based almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable.
|
||||
So essentially the setup involved is to make sure that the variable is
|
||||
defined for all users. The GNUstep.sh file within the makefile
|
||||
package contains all of the environment variable settings required, so
|
||||
you want to call that shell. For most UNIX systems, the easiest way
|
||||
to do that is to modify the system rc.local file which is executed
|
||||
upon system startup; add lines similar to these:
|
||||
|
||||
@example
|
||||
# Setup for the GNUstep environment
|
||||
. /usr/GNUstep/Makefiles/GNUstep.sh
|
||||
@end example
|
||||
|
||||
This will source in the GNUstep.sh file and set the environment
|
||||
variables; thus making them available for all users. Before executing
|
||||
this script, you can setup a default path for searching for tools
|
||||
and apps by defining the variable GNUSTEP_PATHPREFIX_LIST (and exporting
|
||||
it). By defualt, it's set to
|
||||
|
||||
@example
|
||||
$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
|
||||
@end example
|
||||
|
||||
which might look something like this:
|
||||
|
||||
@example
|
||||
~/GNUstep:/usr/GNUstep/Local:/usr/GNUstep
|
||||
@end example
|
||||
|
||||
when all is done.
|
||||
|
||||
@section Setting up the GNUstep environment for a single user
|
||||
|
||||
The GNUstep environment and thus usage of the makefile package is
|
||||
based almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable.
|
||||
So essentially the setup involved is to make sure that the variable is
|
||||
defined for the user. The GNUstep.sh file within the makefile package
|
||||
contains all of the environment variable settings required, so you
|
||||
want to call that shell when the user logs in to the system. Most
|
||||
shells have some file that you read upon login, for example the BASH
|
||||
shell reads the .bash_profile file in the user's home directory. So
|
||||
you can add the following lines to that file:
|
||||
|
||||
# Setup for the GNUstep environment
|
||||
. /usr/GNUstep/Makefiles/GNUstep.sh
|
||||
|
||||
This will source in the GNUstep.sh file and set the environment
|
||||
variables; thus making them available for the user.
|
||||
|
||||
|
||||
@bye
|
||||
|
||||
|
||||
|
||||
|
||||
|
44
Documentation/readme.texi
Normal file
44
Documentation/readme.texi
Normal file
|
@ -0,0 +1,44 @@
|
|||
@chapter GNUstep makefile package
|
||||
|
||||
Here is some introductory info to get you started:
|
||||
|
||||
@section What is the GNUstep makefile package?
|
||||
|
||||
The makefile package is a simplistic, powerful and extensible way to
|
||||
write makefiles for a GNUstep-based project. It allows the user to
|
||||
write a GNUstep-based project without having to deal with the complex
|
||||
issues associated with the configuration and installation of the core
|
||||
GNUstep libraries. It also allows the user to easily create
|
||||
cross-compiled binaries.
|
||||
|
||||
@section Information
|
||||
|
||||
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 file @samp{DESIGN} has information on the design of the Makefile
|
||||
system and how to write your own makefiles that work with it.
|
||||
|
||||
@section History
|
||||
|
||||
The GNUstep makefile package was designed by Scott Christley
|
||||
@email{scottc@@net-community.com} and Ovidiu Predescu
|
||||
@email{ovidiu@@net-community.com}.
|
||||
|
||||
Flags for building shared libraries and bundles on several systems were
|
||||
originally identified by Mircea Oancea @email{mircea@@pathcom.com}.
|
||||
|
||||
Richard Frith-Macdonald @email{richard@@brainstorm.co.uk} also
|
||||
contributed with ideas.
|
||||
|
||||
@section How can you help?
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item
|
||||
Give us feedback! Tell us what you like; tell us what you think
|
||||
could be better. Send bug reports to @email{bug-gnustep@@gnu.org}.
|
||||
|
||||
@end itemize
|
167
README
167
README
|
@ -1,167 +1,46 @@
|
|||
GNUstep makefile package
|
||||
========================
|
||||
************************
|
||||
|
||||
This document discusses the configuration and installation tasks for
|
||||
the GNUstep makefile package.
|
||||
|
||||
Read the DESIGN documentation for detailed information about the
|
||||
design and implementation of the GNUstep makefile package.
|
||||
Here is some introductory info to get you started:
|
||||
|
||||
What is the GNUstep makefile package?
|
||||
=====================================
|
||||
|
||||
The makefile package is a simplistic, powerful and extensible way to
|
||||
The makefile package is a simplistic, powerful and extensible way to
|
||||
write makefiles for a GNUstep-based project. It allows the user to
|
||||
write a GNUstep-based project without having to deal with the complex
|
||||
issues associated with the configuration and installation of the core
|
||||
GNUstep libraries. It also allows the user to easily create
|
||||
cross-compiled binaries.
|
||||
|
||||
Configuring the GNUstep makefile package
|
||||
========================================
|
||||
Information
|
||||
===========
|
||||
|
||||
The GNUstep makefile package uses the Autoconf mechanism for
|
||||
configuration; it checks some host capabilties which are used by
|
||||
all GNUstep software. To configure just type:
|
||||
The file `NEWS' has the library's feature history.
|
||||
|
||||
./configure
|
||||
|
||||
The GNUstep makefile package needs a root directory. If the
|
||||
GNUSTEP_SYSTEM_ROOT environment variable is set then configure will
|
||||
use its value as the root directory. You can also specify the root
|
||||
directory when you run configure with the prefix paramter; the
|
||||
following command makes /usr/local/GNUstep the root directory:
|
||||
|
||||
./configure --prefix=/usr/local/GNUstep
|
||||
|
||||
If you do not have the GNUSTEP_SYSTEM_ROOT environment variable set
|
||||
and you do not specify a root directory when running configure, then
|
||||
configure will use /usr/GNUstep as the default root directory.
|
||||
|
||||
Installing the GNUstep makefile package
|
||||
=======================================
|
||||
|
||||
After you configure the GNUstep makefile package, then you need to
|
||||
compile the programs that come with the package. Currently there is
|
||||
only a single C program which needs to be compiled; all of the other
|
||||
files are either shell scripts or makefile fragments, so you can
|
||||
compile and install the makefile package in one step with:
|
||||
|
||||
make install
|
||||
|
||||
After you have installed the GNUstep makefile package, there is still
|
||||
some minor administration to be performed. Based upon whether you are
|
||||
setting up the GNUstep environment for a single user or all users on
|
||||
your system, perform the appropriate step below.
|
||||
|
||||
Setting up the GNUstep environment for all users
|
||||
================================================
|
||||
|
||||
The GNUstep environment and thus usage of the makefile package is
|
||||
based almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable.
|
||||
So essentially the setup involved is to make sure that the variable is
|
||||
defined for all users. The GNUstep.sh file within the makefile
|
||||
package contains all of the environment variable settings required, so
|
||||
you want to call that shell. For most UNIX systems, the easiest way
|
||||
to do that is to modify the system rc.local file which is executed
|
||||
upon system startup; add lines similar to these:
|
||||
|
||||
# Setup for the GNUstep environment
|
||||
. /usr/GNUstep/Makefiles/GNUstep.sh
|
||||
|
||||
This will source in the GNUstep.sh file and set the environment
|
||||
variables; thus making them available for all users. Before executing
|
||||
this script, you can setup a default path for searching for tools
|
||||
and apps by defining the variable GNUSTEP_PATHPREFIX_LIST (and exporting
|
||||
it). By defualt, it's set to
|
||||
|
||||
$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
|
||||
|
||||
which might look something like this:
|
||||
|
||||
~/GNUstep:/usr/GNUstep/Local:/usr/GNUstep
|
||||
|
||||
when all is done.
|
||||
|
||||
Setting up the GNUstep environment for a single user
|
||||
====================================================
|
||||
|
||||
The GNUstep environment and thus usage of the makefile package is
|
||||
based almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable.
|
||||
So essentially the setup involved is to make sure that the variable is
|
||||
defined for the user. The GNUstep.sh file within the makefile package
|
||||
contains all of the environment variable settings required, so you
|
||||
want to call that shell when the user logs in to the system. Most
|
||||
shells have some file that you read upon login, for example the BASH
|
||||
shell reads the .bash_profile file in the user's home directory. So
|
||||
you can add the following lines to that file:
|
||||
|
||||
# Setup for the GNUstep environment
|
||||
. /usr/GNUstep/Makefiles/GNUstep.sh
|
||||
|
||||
This will source in the GNUstep.sh file and set the environment
|
||||
variables; thus making them available for the user.
|
||||
|
||||
Configuring the GNUstep makefile package for a cross-compile target
|
||||
===================================================================
|
||||
|
||||
By default when you run configure, it assumes that you want to create
|
||||
executables for the same host that you are compiling on; however, the
|
||||
GNUstep makefile package has been designed to support cross-compiling
|
||||
just as easily as normal compiling. In order to add a cross-compile
|
||||
target to the GNUstep makefile package, you must rerun configure for
|
||||
that target and reinstall the makefile package. By rerunning
|
||||
configure, the appropriate target settings are determined, and
|
||||
reinstalling the makefile package installs the appropriate files for
|
||||
that target. The target parameter is used to specify the target
|
||||
platform for cross-compiling:
|
||||
|
||||
./configure --target=i386-mingw32
|
||||
make install
|
||||
|
||||
Note that configuring and installing for a cross-compile target does
|
||||
not eliminate or overwrite the files for any other targets that you
|
||||
may have configured. So if you wish to setup the GNUstep makefile
|
||||
package for multiple targets then just perform the above steps
|
||||
multiple times.
|
||||
|
||||
./configure --target=i386-mingw32
|
||||
make install
|
||||
./configure --target=sparc-solaris2.5
|
||||
make install
|
||||
./configure --target=alpha-linux-gnu
|
||||
make install
|
||||
|
||||
Configuring the GNUstep makefile package for a flattened structure
|
||||
==================================================================
|
||||
|
||||
On systems where you know you are only interested in supporting a single
|
||||
operating system, cpu type, and library combination, it's possible to
|
||||
configure GNUstep to use a 'flattened' directory structure.
|
||||
You do this by supplying the '--enable-flattened' argument to configure.
|
||||
|
||||
In a flattened structure, files are stotred at the top-level rather than
|
||||
in a $(GNUSTEP_CPU)/$(GNUSTEP_OS)/$(LIBRARY_COMBO) subdirectory.
|
||||
|
||||
You lose a lot of versatility with this layout, but it's simpler (less
|
||||
intimidating) for naive users to handle.
|
||||
The files `INSTALL' or `GNUstep-HOWTO' (from the core package) gives
|
||||
instructions for installing the library.
|
||||
|
||||
The file `DESIGN' has information on the design of the Makefile
|
||||
system and how to write your own makefiles that work with it.
|
||||
|
||||
History
|
||||
=======
|
||||
|
||||
The GNUstep makefile package was designed by Scott Christley
|
||||
<scottc@net-community.com> and Ovidiu Predescu <ovidiu@net-community.com>.
|
||||
The GNUstep makefile package was designed by Scott Christley
|
||||
<scottc@net-community.com> and Ovidiu Predescu
|
||||
<ovidiu@net-community.com>.
|
||||
|
||||
Flags for building shared libraries and bundles on several systems were
|
||||
originally identified by Mircea Oancea <mircea@pathcom.com>.
|
||||
Flags for building shared libraries and bundles on several systems
|
||||
were originally identified by Mircea Oancea <mircea@pathcom.com>.
|
||||
|
||||
Richard Frith-Macdonald <richard@brainstorm.co.uk> also contributed with ideas.
|
||||
Richard Frith-Macdonald <richard@brainstorm.co.uk> also contributed
|
||||
with ideas.
|
||||
|
||||
How can you help?
|
||||
=================
|
||||
|
||||
* Give us feedback! Tell us what you like; tell us what you think
|
||||
could be better. Send bug reports to <bug-gnustep@gnu.org>.
|
||||
|
||||
Questions and/or Bug Reports
|
||||
============================
|
||||
|
||||
The initial implementation was performed by Scott Christley
|
||||
<scottc@net-community.com> and Ovidiu Predescu <ovidiu@net-community.com>, so
|
||||
you may send questions and/or bug reports to them or to
|
||||
<bug-gnustep@gnu.org>
|
||||
|
|
33
configure.in
33
configure.in
|
@ -500,6 +500,36 @@ ac_cv_objc_threaded=$objc_threaded
|
|||
AC_SUBST(objc_threaded)
|
||||
AC_SUBST(ac_cv_objc_threaded)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check for FFI interface libraries for invocations
|
||||
#--------------------------------------------------------------------
|
||||
AC_ARG_ENABLE(libffi,
|
||||
[ --enable-libffi Enable use of libffi library],,
|
||||
enable_libffi=no)
|
||||
AC_ARG_ENABLE(ffcall,
|
||||
[ --enable-ffcall Enable use of ffcall library],,
|
||||
enable_ffcall=no)
|
||||
|
||||
AC_CHECK_HEADER(ffi.h, , enable_libffi=no)
|
||||
|
||||
AC_TRY_CPP([#include "objc/objc-api.h"
|
||||
#ifndef OBJC_METHOD_LOOKUP_HOOKS
|
||||
#error
|
||||
#endif], , enable_ffcall=no)
|
||||
AC_CHECK_HEADERS(callback.h, , enable_ffcall=no)
|
||||
|
||||
AC_MSG_CHECKING("FFI library usage")
|
||||
WITH_FFI=none
|
||||
if test $enable_libffi = yes; then
|
||||
LIBS="$LIBS -lffi"
|
||||
AC_MSG_RESULT(libffi)
|
||||
elif test $enable_ffcall = yes; then
|
||||
LIBS="$LIBS -lcallback -lavcall"
|
||||
AC_MSG_RESULT(ffcall)
|
||||
else
|
||||
AC_MSG_RESULT(none)
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check recent libxml for Properytlists, GSXML, GSDoc etc.
|
||||
#--------------------------------------------------------------------
|
||||
|
@ -690,5 +720,6 @@ AC_SUBST(GNUSTEP_MINOR_VERSION)
|
|||
# Produce the output files
|
||||
#--------------------------------------------------------------------
|
||||
AC_OUTPUT(config.h config.make openapp debugapp which_lib.pl opentool
|
||||
executable.template GNUmakefile GNUstep.sh GNUstep.csh,
|
||||
executable.template GNUmakefile GNUstep.sh GNUstep.csh
|
||||
Documentation/GNUmakefile,
|
||||
chmod a+x openapp debugapp which_lib.pl opentool executable.template)
|
||||
|
|
Loading…
Reference in a new issue