/tilgungsplan/trunk/admin/Doxyfile.am |
---|
0,0 → 1,102 |
## generate API documentation with doxygen |
apidox-am-yes: |
@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$DOXDATA" ; then \ |
export DOXDATA=$(kde_libs_htmldir)/en/common ; \ |
fi ; \ |
abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\ |
test -d $(top_builddir)/apidocs || \ |
( cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \ |
--no-modulename --installdir=$(kde_libs_htmldir)/en \ |
--no-recurse $(abs_top_srcdir) . ) ; \ |
cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \ |
--recurse --no-modulename --installdir=$(kde_libs_htmldir)/en \ |
$$abs_top_srcdir $(subdir) |
apidox-am-toplevel-yes: |
@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$ADMIN" ; then \ |
export DOXDATA=$(kde_libs_htmldir)/en/common ; \ |
fi ; \ |
abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\ |
cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \ |
--no-modulename --installdir=$(kde_libs_htmldir)/en \ |
$$abs_top_srcdir |
## Don't generate API documentation without doxygen |
apidox-am-no: |
apidox-am-toplevel-no: |
apidox: |
@if test "$(subdir)" != "."; then \ |
$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\ |
else \ |
$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\ |
fi |
install-data-local: install-apidox |
## install API documentation |
install-apidox: |
@if test "$(subdir)" != "."; then \ |
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \ |
if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \ |
echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \ |
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \ |
fi; \ |
if test -d $(top_builddir)/apidocs/$(subdir)/html; then \ |
list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \ |
echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\ |
for file in $$list; do \ |
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \ |
done; \ |
fi; \ |
else\ |
if test -d $(top_builddir)/apidocs; then \ |
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\ |
list=`cd $(top_builddir)/apidocs && ls -1`; \ |
echo "installing $(top_builddir)/apidocs/$$file" ;\ |
echo "target directory $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs" ; \ |
for file in $$list; do \ |
if test -f $(top_builddir)/apidocs/$$file; then \ |
$(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \ |
fi; \ |
done ; fi; \ |
fi |
uninstall-local: uninstall-apidox |
## uninstall API documentation |
uninstall-apidox: |
@if test "$(subdir)" != "."; then \ |
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \ |
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \ |
fi \ |
else \ |
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \ |
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \ |
fi \ |
fi |
install-apidox-recurse: install-apidox |
@set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \ |
list='$(SUBDIRS)'; \ |
for subdir in $$list; do \ |
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am > /dev/null ; then \ |
echo "Installing apidox from $$subdir"; \ |
if test "$$subdir" != "."; then \ |
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no install-apidox-recurse) || exit 1; \ |
fi ; fi ;\ |
done; \ |
fi |
.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes |
# Local Variables: |
# mode: makefile |
# End: |
/tilgungsplan/trunk/admin/config.pl |
---|
0,0 → 1,238 |
#!/usr/bin/env perl |
# a script for use by autoconf to make the Makefiles |
# from the Makefile.in's |
# |
# the original autoconf mechanism first splits all substitutions into groups |
# of ca. 90, and than invokes sed for _every_ Makefile.in and every group |
# (so around 2-3 times per Makefile.in). So this takes forever, as sed |
# has to recompile the regexps every time. |
# |
# this script does better. It changes all Makefile.ins in one process. |
# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec! |
# |
# written by Michael Matz <matz@kde.org> |
# adapted by Dirk Mueller <mueller@kde.org> |
# This file 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; see the file COPYING.LIB. If not, write to |
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
# Boston, MA 02110-1301, USA. |
use strict; |
use File::Path; |
my $ac_subs=$ARGV[0]; |
my $ac_sacfiles = $ARGV[1]; |
my $ac_given_srcdir=$ARGV[2]; |
my $ac_given_INSTALL=$ARGV[3]; |
my @comp_match; |
my @comp_subs; |
#print "ac_subs=$ac_subs\n"; |
#print "ac_sacfiles=$ac_sacfiles\n"; |
#print "ac_given_srcdir=$ac_given_srcdir\n"; |
#print "ac_given_INSTALL=$ac_given_INSTALL\n"; |
my $configure_input; |
my ($srcdir, $top_srcdir); |
my $INSTALL; |
my $bad_perl = ($] < 5.005); |
my $created_file_count = 0; |
open(CF, "< $ac_subs") || die "can't open $ac_subs: $!"; |
my @subs = <CF>; |
my $pat; |
close(CF); |
chomp @subs; |
@comp_match=(); |
@comp_subs=(); |
if ($bad_perl) { |
print "Using perl older than version 5.005\n"; |
foreach $pat (@subs) { |
if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ ) |
|| ($pat =~ m/s%([^%]*)%([^%]*)%;t/ ) |
|| ($pat =~ m/s,([^,]*),(.*),;t/) |
|| ($pat =~ m%s/([^/]*)/([^/]*)/g% ) |
|| ($pat =~ m%s/([^/]*)/([^/]*)/;t% ) |
) { |
# form : s%bla%blubb%g |
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?) |
# or s,bla,blubb,;t t (autoconf 2.52) |
my $srch = $1; |
my $repl = $2; |
$repl =~ s/\\(.)/$1/g; |
push @comp_subs, make_closure($srch, $repl); |
} elsif ( ($pat =~ /%([^%]*)%d/ ) |
|| ($pat =~ m%/([^/]*)/d% ) |
) { |
push @comp_subs, make_closure($1, ""); |
} else { |
die "Uhh. Malformed pattern in $ac_subs ($pat)" |
unless ( $pat =~ /^\s*$/ ); # ignore white lines |
} |
} |
} else { |
foreach $pat (@subs) { |
if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) || |
($pat =~ /s%([^%]*)%([^%]*)%;t/ ) || |
($pat =~ /s,([^,]*),(.*),;t/) ) { |
# form : s%bla%blubb%g |
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?) |
# or s,bla,blubb,;t t (autoconf 2.52) |
my $srch = $1; |
my $repl = $2; |
push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern |
$repl =~ s/\\(.)/$1/g; |
push @comp_subs, $repl; |
} elsif ( ($pat =~ /%([^%]*)%d/ ) |
|| ($pat =~ m%/([^/]*)/d% ) |
) { |
push @comp_match, eval "qr/\Q$1\E/"; |
push @comp_subs, ""; |
} else { |
die "Uhh. Malformed pattern in $ac_subs ($pat)" |
unless ( $pat =~ /^\s*$/ ); # ignore white lines |
} |
} |
} |
undef @subs; |
# read the list of files to be patched, form: |
# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile |
open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!"; |
my @ac_files = <CF>; |
close(CF); |
chomp @ac_files; |
my $ac_file; |
foreach $ac_file (@ac_files) { |
next if $ac_file =~ /\.\./; |
next if $ac_file =~ /^\s*$/; |
my $ac_file_in; |
my ($ac_dir, $ac_dots, $ac_dir_suffix); |
if ($ac_file =~ /.*:.*/ ) { |
($ac_file_in = $ac_file) =~ s%[^:]*:%%; |
$ac_file =~ s%:.*%%; |
} else { |
$ac_file_in = $ac_file.".in"; |
} |
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. |
# Remove last slash and all that follows it. Not all systems have dirname. |
($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%; |
if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) { |
# The file is in a subdirectory. |
if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; } |
($ac_dir_suffix = $ac_dir) =~ s%^./%%; |
$ac_dir_suffix="/".$ac_dir_suffix; |
# A "../" for each directory in $ac_dir_suffix. |
($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g; |
} else { |
$ac_dir_suffix=""; |
$ac_dots=""; |
} |
if ($ac_given_srcdir eq ".") { |
$srcdir="."; |
if ($ac_dots) { |
( $top_srcdir = $ac_dots) =~ s%/$%%; |
} else { $top_srcdir="."; } |
} elsif ($ac_given_srcdir =~ m%^/%) { |
$srcdir=$ac_given_srcdir.$ac_dir_suffix; |
$top_srcdir = $ac_given_srcdir; |
} else { |
$srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix; |
$top_srcdir = $ac_dots.$ac_given_srcdir; |
} |
if ($ac_given_INSTALL) { |
if ($ac_given_INSTALL =~ m%^/% ) { |
$INSTALL = $ac_given_INSTALL; |
} else { |
$INSTALL = $ac_dots.$ac_given_INSTALL; |
} |
} |
print "fast creating $ac_file\n"; |
unlink $ac_file; |
my $ac_comsub=""; |
my $fname=$ac_file_in; |
$fname =~ s%.*/%%; |
$configure_input="$ac_file. Generated from $fname by config.pl."; |
my $ac_file_inputs; |
($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%; |
$ac_file_inputs =~ s%:% $ac_given_srcdir/%g; |
patch_file($ac_file, $ac_file_inputs); |
++$created_file_count; |
} |
print "config.pl: fast created $created_file_count file(s).\n"; |
sub patch_file { |
my ($outf, $infiles) = @_; |
my $filedata; |
my @infiles=split(' ', $infiles); |
my $i=0; |
my $name; |
foreach $name (@infiles) { |
if (open(CF, "< $name")) { |
while (<CF>) { |
$filedata .= $_; |
} |
close(CF); |
} else { |
print STDERR "can't open $name: $!"."\n"; |
} |
} |
$filedata =~ s%\@configure_input\@%$configure_input%g; |
$filedata =~ s%\@srcdir\@%$srcdir%g; |
$filedata =~ s%\@top_srcdir\@%$top_srcdir%g; |
$filedata =~ s%\@INSTALL\@%$INSTALL%g; |
if ($bad_perl) { |
while ($i <= $#comp_subs) { |
my $ref = $comp_subs[$i]; |
&$ref(\$filedata); |
$i++; |
} |
} else { |
while ($i <= $#comp_match) { |
$filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g; |
$i++; |
} |
} |
open(CF, "> $outf") || die "can't create $outf: $!"; |
print CF $filedata; |
close(CF); |
} |
sub make_closure { |
my ($pat, $sub) = @_; |
my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }"; |
if ($@) { |
print "can't create CODE: $@\n"; |
} |
return $ret; |
} |
/tilgungsplan/trunk/admin/mkinstalldirs |
---|
0,0 → 1,158 |
#! /bin/sh |
# mkinstalldirs --- make directory hierarchy |
scriptversion=2005-06-29.22 |
# Original author: Noah Friedman <friedman@prep.ai.mit.edu> |
# Created: 1993-05-16 |
# Public domain. |
# |
# This file is maintained in Automake, please report |
# bugs to <bug-automake@gnu.org> or send patches to |
# <automake-patches@gnu.org>. |
errstatus=0 |
dirmode= |
usage="\ |
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... |
Create each directory DIR (with mode MODE, if specified), including all |
leading file name components. |
Report bugs to <bug-automake@gnu.org>." |
# process command line arguments |
while test $# -gt 0 ; do |
case $1 in |
-h | --help | --h*) # -h for help |
echo "$usage" |
exit $? |
;; |
-m) # -m PERM arg |
shift |
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } |
dirmode=$1 |
shift |
;; |
--version) |
echo "$0 $scriptversion" |
exit $? |
;; |
--) # stop option processing |
shift |
break |
;; |
-*) # unknown option |
echo "$usage" 1>&2 |
exit 1 |
;; |
*) # first non-opt arg |
break |
;; |
esac |
done |
for file |
do |
if test -d "$file"; then |
shift |
else |
break |
fi |
done |
case $# in |
0) exit 0 ;; |
esac |
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and |
# mkdir -p a/c at the same time, both will detect that a is missing, |
# one will create a, then the other will try to create a and die with |
# a "File exists" error. This is a problem when calling mkinstalldirs |
# from a parallel make. We use --version in the probe to restrict |
# ourselves to GNU mkdir, which is thread-safe. |
case $dirmode in |
'') |
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then |
echo "mkdir -p -- $*" |
exec mkdir -p -- "$@" |
else |
# On NextStep and OpenStep, the `mkdir' command does not |
# recognize any option. It will interpret all options as |
# directories to create, and then abort because `.' already |
# exists. |
test -d ./-p && rmdir ./-p |
test -d ./--version && rmdir ./--version |
fi |
;; |
*) |
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && |
test ! -d ./--version; then |
echo "mkdir -m $dirmode -p -- $*" |
exec mkdir -m "$dirmode" -p -- "$@" |
else |
# Clean up after NextStep and OpenStep mkdir. |
for d in ./-m ./-p ./--version "./$dirmode"; |
do |
test -d $d && rmdir $d |
done |
fi |
;; |
esac |
for file |
do |
case $file in |
/*) pathcomp=/ ;; |
*) pathcomp= ;; |
esac |
oIFS=$IFS |
IFS=/ |
set fnord $file |
shift |
IFS=$oIFS |
for d |
do |
test "x$d" = x && continue |
pathcomp=$pathcomp$d |
case $pathcomp in |
-*) pathcomp=./$pathcomp ;; |
esac |
if test ! -d "$pathcomp"; then |
echo "mkdir $pathcomp" |
mkdir "$pathcomp" || lasterr=$? |
if test ! -d "$pathcomp"; then |
errstatus=$lasterr |
else |
if test ! -z "$dirmode"; then |
echo "chmod $dirmode $pathcomp" |
lasterr= |
chmod "$dirmode" "$pathcomp" || lasterr=$? |
if test ! -z "$lasterr"; then |
errstatus=$lasterr |
fi |
fi |
fi |
fi |
pathcomp=$pathcomp/ |
done |
done |
exit $errstatus |
# Local Variables: |
# mode: shell-script |
# sh-indentation: 2 |
# eval: (add-hook 'write-file-hooks 'time-stamp) |
# time-stamp-start: "scriptversion=" |
# time-stamp-format: "%:y-%02m-%02d.%02H" |
# time-stamp-end: "$" |
# End: |
/tilgungsplan/trunk/admin/Doxyfile.global |
---|
0,0 → 1,192 |
OUTPUT_LANGUAGE = English |
USE_WINDOWS_ENCODING = NO |
BRIEF_MEMBER_DESC = NO |
REPEAT_BRIEF = YES |
ABBREVIATE_BRIEF = |
ALWAYS_DETAILED_SEC = YES |
INLINE_INHERITED_MEMB = NO |
FULL_PATH_NAMES = NO |
STRIP_FROM_PATH = |
SHORT_NAMES = NO |
JAVADOC_AUTOBRIEF = YES |
MULTILINE_CPP_IS_BRIEF = NO |
INHERIT_DOCS = YES |
DISTRIBUTE_GROUP_DOC = NO |
TAB_SIZE = 4 |
OPTIMIZE_OUTPUT_FOR_C = NO |
OPTIMIZE_OUTPUT_JAVA = NO |
SUBGROUPING = YES |
EXTRACT_ALL = NO |
EXTRACT_PRIVATE = NO |
EXTRACT_STATIC = YES |
EXTRACT_LOCAL_CLASSES = NO |
HIDE_UNDOC_MEMBERS = NO |
HIDE_UNDOC_CLASSES = YES |
HIDE_FRIEND_COMPOUNDS = NO |
HIDE_IN_BODY_DOCS = NO |
INTERNAL_DOCS = NO |
CASE_SENSE_NAMES = YES |
HIDE_SCOPE_NAMES = NO |
SHOW_INCLUDE_FILES = YES |
INLINE_INFO = YES |
SORT_BRIEF_DOCS = NO |
SORT_BY_SCOPE_NAME = NO |
GENERATE_TESTLIST = NO |
GENERATE_BUGLIST = YES |
GENERATE_DEPRECATEDLIST= YES |
ENABLED_SECTIONS = |
MAX_INITIALIZER_LINES = 30 |
SHOW_USED_FILES = YES |
QUIET = YES |
WARNINGS = NO |
WARN_IF_UNDOCUMENTED = NO |
WARN_IF_DOC_ERROR = YES |
WARN_FORMAT = |
WARN_LOGFILE = |
INPUT = |
FILE_PATTERNS = *.h \ |
*.cpp \ |
*.cc \ |
*.hpp \ |
*.dox \ |
*.c++ \ |
*.cxx \ |
*.h++ \ |
*.hh |
RECURSIVE = YES |
EXCLUDE = |
EXCLUDE_SYMLINKS = NO |
EXCLUDE_PATTERNS = *.moc.* \ |
moc* \ |
*.all_cpp.* \ |
*unload.* \ |
*/test/* \ |
*/tests/* \ |
*_p.h |
EXAMPLE_PATH = |
EXAMPLE_PATTERNS = |
EXAMPLE_RECURSIVE = NO |
IMAGE_PATH = |
INPUT_FILTER = |
FILTER_SOURCE_FILES = NO |
SOURCE_BROWSER = YES |
INLINE_SOURCES = NO |
STRIP_CODE_COMMENTS = YES |
REFERENCED_BY_RELATION = YES |
REFERENCES_RELATION = YES |
VERBATIM_HEADERS = YES |
ALPHABETICAL_INDEX = YES |
COLS_IN_ALPHA_INDEX = 3 |
HTML_OUTPUT = |
HTML_FILE_EXTENSION = .html |
HTML_HEADER = ../apidocs/common/header.html |
HTML_FOOTER = ../apidocs/common/footer.html |
HTML_STYLESHEET = ../apidocs/common/doxygen.css |
HTML_ALIGN_MEMBERS = YES |
GENERATE_HTMLHELP = NO |
CHM_FILE = |
HHC_LOCATION = |
GENERATE_CHI = NO |
BINARY_TOC = NO |
TOC_EXPAND = NO |
DISABLE_INDEX = YES |
ENUM_VALUES_PER_LINE = 4 |
GENERATE_TREEVIEW = NO |
TREEVIEW_WIDTH = 250 |
GENERATE_LATEX = NO |
LATEX_OUTPUT = |
LATEX_CMD_NAME = latex |
MAKEINDEX_CMD_NAME = makeindex |
COMPACT_LATEX = NO |
PAPER_TYPE = a4wide |
EXTRA_PACKAGES = |
LATEX_HEADER = |
PDF_HYPERLINKS = NO |
USE_PDFLATEX = NO |
LATEX_BATCHMODE = NO |
LATEX_HIDE_INDICES = NO |
GENERATE_RTF = NO |
RTF_OUTPUT = |
COMPACT_RTF = NO |
RTF_HYPERLINKS = NO |
RTF_STYLESHEET_FILE = |
RTF_EXTENSIONS_FILE = |
GENERATE_MAN = NO |
MAN_OUTPUT = |
MAN_EXTENSION = .kde3 |
MAN_LINKS = YES |
GENERATE_XML = NO |
XML_OUTPUT = xml |
XML_SCHEMA = |
XML_DTD = |
XML_PROGRAMLISTING = NO |
GENERATE_AUTOGEN_DEF = NO |
GENERATE_PERLMOD = NO |
PERLMOD_LATEX = NO |
PERLMOD_PRETTY = YES |
PERLMOD_MAKEVAR_PREFIX = |
ENABLE_PREPROCESSING = YES |
SEARCH_INCLUDES = YES |
INCLUDE_PATH = |
INCLUDE_FILE_PATTERNS = |
PREDEFINED = QT_VERSION=320 \ |
__cplusplus \ |
Q_WS_X11 |
EXPAND_AS_DEFINED = |
SKIP_FUNCTION_MACROS = YES |
TAGFILES = |
GENERATE_TAGFILE = |
ALLEXTERNALS = NO |
EXTERNAL_GROUPS = NO |
PERL_PATH = |
CLASS_DIAGRAMS = YES |
HIDE_UNDOC_RELATIONS = NO |
HAVE_DOT = NO |
UML_LOOK = NO |
TEMPLATE_RELATIONS = YES |
INCLUDE_GRAPH = YES |
INCLUDED_BY_GRAPH = YES |
CALL_GRAPH = NO |
GRAPHICAL_HIERARCHY = YES |
DOT_IMAGE_FORMAT = png |
DOT_PATH = |
DOTFILE_DIRS = |
MAX_DOT_GRAPH_WIDTH = 800 |
MAX_DOT_GRAPH_HEIGHT = 1024 |
MAX_DOT_GRAPH_DEPTH = 0 |
GENERATE_LEGEND = YES |
DOT_CLEANUP = YES |
SEARCHENGINE = NO |
### KDE Settings |
ALIASES = \ |
"intern=\par<b>Internal use only.</b>" \ |
"reimp=\par<b>Reimplemented from superclass.</b>" \ |
"obsolete=@deprecated" \ |
"feature=\xrefitem features \"Feature(s)\" \"Features\"" \ |
"maintainer=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \ |
"unmaintained=\xrefitem unmaintained \"Unmaintained\" \"Unmaintained\"" \ |
"requirement=\xrefitem requirements \"Requirement(s)\" \"Requirements\"" \ |
"faq=\xrefitem FAQ \"F.A.Q.\" \"F.A.Q.\"" \ |
"authors=\xrefitem authors \"Author(s)\" \"Authors\"" \ |
"FIXME=\xrefitem fixme \"Fixme\" \"Fixme\"" |
HTML_ALIGN_MEMBERS = YES |
REFERENCED_BY_RELATION = NO |
REFERENCES_RELATION = NO |
VERBATIM_HEADERS = NO |
GENERATE_HTML = YES |
SOURCE_BROWSER = YES |
GENERATE_AUTOGEN_DEF = NO |
DETAILS_AT_TOP = YES |
SORT_MEMBER_DOCS = YES |
GENERATE_TODOLIST = YES |
IGNORE_PREFIX = K |
GENERATE_HTML = YES |
CLASS_GRAPH = YES |
COLLABORATION_GRAPH = NO |
MACRO_EXPANSION = YES |
EXPAND_ONLY_PREDEF = YES |
/tilgungsplan/trunk/admin/conf.change.pl |
---|
0,0 → 1,191 |
#!/usr/bin/env perl |
# this script patches a config.status file, to use our own perl script |
# in the main loop |
# we do it this way to circumvent hacking (and thereby including) |
# autoconf function (which are GPL) into our LGPL acinclude.m4.in |
# written by Michael Matz <matz@kde.org> |
# adapted by Dirk Mueller <mueller@kde.org> |
# |
# This file 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; see the file COPYING.LIB. If not, write to |
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
# Boston, MA 02110-1301, USA. |
# we have to change two places |
# 1. the splitting of the substitutions into chunks of 90 (or even 48 in |
# later autoconf's |
# 2. the big main loop which patches all Makefile.in's |
use strict; |
use File::Basename; |
my $ac_aux_dir = dirname($0); |
my ($flag); |
my $ac_version = 0; |
my $vpath_seen = 0; |
$flag = 0; |
while (<>) { |
# usage of $flag: 0 -- we have seen nothing yet |
# 1 -- we are in (1) |
# 2 -- we have ended (1) |
# 3 -- we are in (2) |
# 4 -- we ended (2) |
if ($flag == 4) { |
print; |
} elsif ($flag == 0) { |
# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..." |
# ends with (excluding) "CONFIG_FILE=..." |
# in later autoconf (2.14.1) there is no CONFIG_FILES= line, |
# but instead the (2) directly follow (1) |
if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) { |
$flag = 1; |
if ($1 eq 'lines') { |
# lets hope its different with 2141, |
# wasn't able to verify that |
if ($2 eq '48') { |
$ac_version = 250; |
} |
else { |
$ac_version = 2141; |
} |
} elsif ($1 eq 'cmds') { |
$ac_version = 213; |
} |
# hmm, we don't know the autoconf version, but we try anyway |
} else { |
print; |
} |
} elsif ($flag == 1) { |
if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) { |
print; |
$flag = 2; |
} elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) { |
$flag = 3; |
} |
} elsif ($flag == 2) { |
# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1)) |
# end with: "rm -f conftest.s\*" |
# on autoconf 250, it ends with '# CONFIG_HEADER section' |
# |
# gg: if a post-processing commands section is found first, |
# stop there and insert a new loop to honor the case/esac. |
# (pattern: /^\s+#\sRun the commands associated with the file./) |
if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) { |
$flag = 3; |
} else { |
print; |
} |
} elsif ($flag == 3) { |
if (/^\s*rm\s+-f\s+conftest/ ) { |
$flag = 4; |
&insert_main_loop(); |
} elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) { |
$flag = 4; |
&insert_main_loop(); |
#die "hhhhhhh"; |
if ($ac_version != 2141) { |
print STDERR "hmm, don't know autoconf version\n"; |
} |
} elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) { |
$flag = 4; |
my $commands = defined $2; |
&insert_main_loop(); |
$commands && insert_command_loop(); |
if($ac_version != 250) { |
print STDERR "hmm, something went wrong :-(\n"; |
} |
} elsif (/VPATH/ ) { |
$vpath_seen = 1; |
} |
} |
} |
die "wrong input (flag != 4)" unless $flag == 4; |
print STDERR "hmm, don't know autoconf version\n" unless $ac_version; |
sub insert_main_loop { |
if ($ac_version == 250) { |
&insert_main_loop_250(); |
} |
else { |
&insert_main_loop_213(); |
} |
} |
sub insert_main_loop_250 { |
print <<EOF; |
#echo Doing the fast build of Makefiles -- autoconf $ac_version |
EOF |
if ($vpath_seen) { |
print <<EOF; |
# VPATH subst was seen in original config.status main loop |
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >>\$tmp/subs.sed |
EOF |
} |
print <<EOF; |
rm -f \$tmp/subs.files |
for ac_file in .. \$CONFIG_FILES ; do |
if test "x\$ac_file" != x..; then |
echo \$ac_file >> \$tmp/subs.files |
fi |
done |
if test -f \$tmp/subs.files ; then |
perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL" |
fi |
rm -f \$tmp/subs.files |
fi |
EOF |
return; |
} |
sub insert_main_loop_213 { |
print <<EOF; |
#echo Doing the fast build of Makefiles -- autoconf $ac_version |
if test "x\$ac_cs_root" = "x" ; then |
ac_cs_root=conftest |
fi |
EOF |
if ($vpath_seen) { |
print <<EOF; |
# VPATH subst was seen in original config.status main loop |
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >> \$ac_cs_root.subs |
EOF |
} |
print <<EOF; |
rm -f \$ac_cs_root.sacfiles |
for ac_file in .. \$CONFIG_FILES ; do |
if test "x\$ac_file" != x..; then |
echo \$ac_file >> \$ac_cs_root.sacfiles |
fi |
done |
if test -f \$ac_cs_root.sacfiles ; then |
perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL" |
fi |
rm -f \$ac_cs_root.s* |
EOF |
return; |
} |
sub insert_command_loop { |
print <<EOF; |
for ac_file in .. \$CONFIG_FILES ; do |
EOF |
} |
/tilgungsplan/trunk/admin/doxygen.sh |
---|
0,0 → 1,883 |
#! /bin/sh |
# |
# doxygen.sh Copyright (C) 2005 by Adriaan de Groot |
# Based on some code from Doxyfile.am, among other things. |
# License: GPL version 2. |
# See file COPYING in kdelibs for details. |
echo "*** doxygen.sh" |
# Recurse handling is a little complicated, since normally |
# subdir (given on the command-line) processing doesn't recurse |
# but you can force it to do so. |
recurse=1 |
recurse_given=NO |
use_modulename=1 |
cleanup=YES |
while test -n "$1" ; do |
case "x$1" in |
"x--no-cleanup" ) |
cleanup=NO |
;; |
"x--no-recurse" ) |
recurse=0 |
recurse_given=YES |
;; |
"x--recurse" ) |
recurse=1 |
recurse_given=YES |
;; |
"x--no-modulename" ) |
use_modulename=0 |
;; |
"x--modulename" ) |
use_modulename=1 |
;; |
"x--help" ) |
echo "doxygen.sh usage:" |
echo "doxygen.sh [--no-recurse] [--no-modulename] <srcdir> [<subdir>]" |
exit 2 |
;; |
x--doxdatadir=* ) |
DOXDATA=`echo $1 | sed -e 's+--doxdatadir=++'` |
;; |
x--installdir=*) |
PREFIX=`echo $1 | sed -e 's+--installdir=++'` |
;; |
x--* ) |
echo "Unknown option: $1" |
exit 1 |
;; |
* ) |
top_srcdir="$1" |
break |
;; |
esac |
shift |
done |
### Sanity check the mandatory "top srcdir" argument. |
if test -z "$top_srcdir" ; then |
echo "Usage: doxygen.sh <top_srcdir>" |
exit 1 |
fi |
if test ! -d "$top_srcdir" ; then |
echo "top_srcdir ($top_srcdir) is not a directory." |
exit 1 |
fi |
### Normalize top_srcdir so it is an absolute path. |
if expr "x$top_srcdir" : "x/" > /dev/null ; then |
# top_srcdir is absolute already |
: |
else |
top_srcdir=`cd "$top_srcdir" 2> /dev/null && pwd` |
if test ! -d "$top_srcdir" ; then |
echo "top_srcdir ($top_srcdir) is not a directory." |
exit 1 |
fi |
fi |
### Sanity check and guess QTDOCDIR. |
if test -z "$QTDOCDIR" ; then |
if test -z "$QTDIR" ; then |
for i in /usr/X11R6/share/doc/qt/html |
do |
QTDOCDIR="$i" |
test -d "$QTDOCDIR" && break |
done |
else |
for i in share/doc/qt/html doc/html |
do |
QTDOCDIR="$QTDIR/$i" |
test -d "$QTDOCDIR" && break |
done |
fi |
fi |
if test -z "$QTDOCDIR" || test ! -d "$QTDOCDIR" ; then |
if test -z "$QTDOCDIR" ; then |
echo "* QTDOCDIR could not be guessed." |
else |
echo "* QTDOCDIR does not name a directory." |
fi |
if test -z "$QTDOCTAG" ; then |
echo "* QTDOCDIR set to \"\"" |
QTDOCDIR="" |
else |
echo "* But I'll use $QTDOCDIR anyway because of QTDOCTAG." |
fi |
fi |
### Get the "top srcdir", also its name, and handle the case that subdir "." |
### is given (which would be top_srcdir then, so it's equal to none-given |
### but no recursion either). |
### |
# top_srcdir="$1" # Already set by options processing |
module_name=`basename "$top_srcdir"` |
subdir="$2" |
if test "x." = "x$subdir" ; then |
subdir="" |
if test "x$recurse_given" = "xNO" ; then |
recurse=0 |
fi |
fi |
if test "x" != "x$subdir" ; then |
# If no recurse option given explicitly, default to |
# no recurse when processing subdirs given on the command-line. |
if test "x$recurse_given" = "xNO" ; then |
recurse=0 |
fi |
fi |
if test -z "$DOXDATA" || test ! -d "$DOXDATA" ; then |
if test -n "$DOXDATA" ; then |
echo "* \$DOXDATA is '$DOXDATA' which does not name a directory" |
fi |
DOXDATA="$top_srcdir/doc/common" |
fi |
if test ! -d "$DOXDATA" ; then |
echo "* \$DOXDATA does not name a directory ( or is unset ), tried \"$DOXDATA\"" |
exit 1 |
fi |
if test -n "$PREFIX" && test ! -d "$PREFIX" ; then |
echo "* \$PREFIX does not name a directory, tried \"$PREFIX\"" |
echo "* \$PREFIX is disabled." |
PREFIX="" |
fi |
### We need some values from top-level files, which |
### are not preserved between invocations of this |
### script, so factor it out for easy use. |
create_doxyfile_in() |
{ |
eval `grep 'VERSION="' "$top_srcdir/admin/cvs.sh"` |
echo "PROJECT_NUMBER = $VERSION" > Doxyfile.in |
grep '^KDE_INIT_DOXYGEN' "$top_srcdir/configure.in.in" | \ |
sed -e 's+[^[]*\[\([^]]*\)+PROJECT_NAME = "\1"+' \ |
-e 's+].*++' >> Doxyfile.in |
} |
apidoxdir="$module_name"-apidocs |
test "x$use_modulename" = "x0" && apidoxdir="apidocs" |
### If we're making the top subdir, create the structure |
### for the apidox and initialize it. Otherwise, just use the |
### structure assumed to be there. |
if test -z "$subdir" ; then |
if test ! -d "$apidoxdir" ; then |
mkdir "$apidoxdir" > /dev/null 2>&1 |
fi |
cd "$apidoxdir" > /dev/null 2>&1 || { |
echo "Cannot create and cd into $apidoxdir" |
exit 1 |
} |
test -f "Doxyfile.in" || create_doxyfile_in |
# Copy in logos and the like |
for i in "favicon.ico" "kde_gear_64.png" |
do |
cp "$DOXDATA/$i" . > /dev/null 2> /dev/null |
done |
for i in "$top_srcdir/doc/api/Dox-"*.png |
do |
T=`basename "$i" | sed -e 's+Dox-++'` |
test -f "$i" && cp "$i" "./$T" > /dev/null 2> /dev/null |
done |
top_builddir="." |
srcdir="$1" |
subdir="." |
else |
cd "$apidoxdir" > /dev/null 2>&1 || { |
echo "Cannot cd into $apidoxdir -- maybe you need to" |
echo "build the top-level dox first." |
exit 1 |
} |
if test "x1" = "x$recurse" ; then |
# OK, so --recurse was requested |
if test ! -f "subdirs.top" ; then |
echo "* No subdirs.top available in the $apidoxdir." |
echo "* The --recurse option will be ignored." |
recurse=0 |
fi |
fi |
fi |
### Read a single line (TODO: support \ continuations) from the Makefile.am. |
### Used to extract variable assignments from it. |
extract_line() |
{ |
file="$2" ; test -z "$file" && file="$srcdir/Makefile.am" |
pattern=`echo "$1" | tr + .` |
grep "^$1" "$file" | \ |
sed -e "s+$pattern.*=\s*++" |
} |
### Handle the COMPILE_{FIRST,LAST,BEFORE,AFTER} part of Makefile.am |
### in the toplevel. Copied from admin/cvs.sh. Licence presumed LGPL). |
create_subdirs() |
{ |
echo "* Sorting top-level subdirs" |
dirs= |
idirs= |
if test -f "$top_srcdir/inst-apps"; then |
idirs=`cat "$top_srcdir/"inst-apps` |
else |
idirs=`cd "$top_srcdir" && ls -1 | sort` |
fi |
compilefirst="" |
compilelast="" |
if test -f "$top_srcdir/"Makefile.am.in ; then |
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1` |
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1` |
fi |
for i in $idirs; do |
if test -f "$top_srcdir/$i"/Makefile.am; then |
case " $compilefirst $compilelast " in |
*" $i "*) ;; |
*) dirs="$dirs $i" |
esac |
fi |
done |
: > ./_SUBDIRS |
for d in $compilefirst; do |
echo $d >> ./_SUBDIRS |
done |
(for d in $dirs; do |
list="" |
if test -f "$top_srcdir/"Makefile.am.in ; then |
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1` |
fi |
for s in $list; do |
echo $s $d |
done |
list="" |
if test -f "$top_srcdir/"Makefile.am.in ; then |
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1` |
fi |
for s in $list; do |
echo $d $s |
done |
echo $d $d |
done ) | tsort >> ./_SUBDIRS |
for d in $compilelast; do |
echo $d >> ./_SUBDIRS |
done |
test -r _SUBDIRS && mv _SUBDIRS subdirs.top || true |
} |
### Add HTML header, footer, CSS tags to Doxyfile. |
### Assumes $subdir is set. Argument is a string |
### to stick in front of the file if needed. |
apidox_htmlfiles() |
{ |
dox_header="$top_srcdir/doc/api/$1header.html" |
dox_footer="$top_srcdir/doc/api/$1footer.html" |
dox_css="$top_srcdir/doc/api/doxygen.css" |
test -f "$dox_header" || dox_header="$DOXDATA/$1header.html" |
test -f "$dox_footer" || dox_footer="$DOXDATA/$1footer.html" |
test -f "$dox_css" || dox_css="$DOXDATA/doxygen.css" |
echo "HTML_HEADER = $dox_header" >> "$subdir/Doxyfile" ; \ |
echo "HTML_FOOTER = $dox_footer" >> "$subdir/Doxyfile" ; \ |
echo "HTML_STYLESHEET = $dox_css" >> "$subdir/Doxyfile" |
} |
apidox_specials() |
{ |
line=`extract_line DOXYGEN_PROJECTNAME "$1"` |
test -n "$line" && echo "PROJECT_NAME = \"$line\"" >> "$2" |
} |
apidox_local() |
{ |
for i in "$top_srcdir/doc/api/Doxyfile.local" |
do |
if test -f "$i" ; then |
cat "$i" >> "$subdir/Doxyfile" |
break |
fi |
done |
} |
### Post-process HTML files by substituting in the menu files |
# |
# In non-top directories, both <!-- menu --> and <!-- gmenu --> |
# are calculated and replaced. Top directories get an empty <!-- menu --> |
# if any. |
doxyndex() |
{ |
# Special case top-level to have an empty MENU. |
if test "x$subdir" = "x." ; then |
MENU="" |
htmldir="." |
htmltop="$top_builddir" # Just ., presumably |
echo "* Post-processing top-level files" |
else |
MENU="<ul>" |
htmldir="$subdir/html" |
htmltop="$top_builddir.." # top_builddir ends with / |
echo "* Post-processing files in $htmldir" |
# Build a little PHP file that maps class names to file |
# names, for the quick-class-picker functionality. |
# (The quick-class-picker is disabled due to styling |
# problems in IE & FF). |
( |
echo "<?php \$map = array("; \ |
for htmlfile in `find $htmldir/ -type f -name "class[A-Z]*.html" | grep -v "\-members.html$"`; do |
classname=`echo $htmlfile | sed -e "s,.*/class\\(.*\\).html,\1," -e "s,_1_1,::,g" -e "s,_01, ,g" -e "s,_4,>,g" -e "s+_00+,+g" -e "s+_3+<+g" | tr "[A-Z]" "[a-z]"` |
echo " \"$classname\" => \"$htmlfile\"," |
done | sort ; \ |
echo ") ?>" |
) > "$subdir/classmap.inc" |
# This is a list of pairs, with / separators so we can use |
# basename and dirname (a crude shell hack) to split them |
# into parts. For each, if the file part exists (as a html |
# file) tack it onto the MENU variable as a <li> with link. |
for i in "Main Page/index" \ |
"Modules/modules" \ |
"Namespace List/namespaces" \ |
"Class Hierarchy/hierarchy" \ |
"Alphabetical List/classes" \ |
"Class List/annotated" \ |
"File List/files" \ |
"Directories/dirs" \ |
"Namespace Members/namespacemembers" \ |
"Class Members/functions" \ |
"Related Pages/pages" |
do |
NAME=`dirname "$i"` |
FILE=`basename "$i"` |
test -f "$htmldir/$FILE.html" && MENU="$MENU<li><a href=\"$FILE.html\">$NAME</a></li>" |
done |
MENU="$MENU</ul>" |
fi |
# Get the list of global Menu entries. |
GMENU=`cat subdirs | tr -d '\n'` |
PMENU=`grep '<!-- pmenu' "$htmldir/index.html" | sed -e 's+.*pmenu *++' -e 's+ *-->++' | awk '{ c=split($0,a,"/"); for (j=1; j<=c; j++) { printf " / <a href=\""; if (j==c) { printf("."); } for (k=j; k<c; k++) { printf "../"; } if (j<c) { printf("../html/index.html"); } printf "\">%s</a>\n" , a[j]; } }' | tr -d '\n'` |
# Map the PHP file into HTML options so that |
# it can be substituted in for the quick-class-picker. |
CMENU="" |
# For now, leave the CMENU disabled |
CMENUBEGIN="<!--" |
CMENUEND="-->" |
if test "x$subdir" = "x." ; then |
# Disable CMENU on toplevel anyway |
CMENUBEGIN="<!--" |
CMENUEND="-->" |
else |
test -f "$subdir/classmap.inc" && \ |
CMENU=`grep '=>' "$subdir/classmap.inc" | sed -e 's+"\([^"]*\)" => "'"$subdir/html/"'\([^"]*\)"+<option value="\2">\1<\/option>+' | tr -d '\n'` |
if test -f "$subdir/classmap.inc" && grep "=>" "$subdir/classmap.inc" > /dev/null 2>&1 ; then |
# Keep the menu, it's useful |
: |
else |
CMENUBEGIN="<!--" |
CMENUEND="-->" |
fi |
fi |
# Now substitute in the MENU in every file. This depends |
# on HTML_HEADER (ie. header.html) containing the |
# <!-- menu --> comment. |
for i in "$htmldir"/*.html |
do |
if test -f "$i" ; then |
sed -e "s+<!-- menu -->+$MENU+" \ |
-e "s+<!-- gmenu -->+$GMENU+" \ |
-e "s+<!-- pmenu.*-->+$PMENU+" \ |
-e "s+<!-- cmenu.begin -->+$CMENUBEGIN+" \ |
-e "s+<!-- cmenu.end -->+$CMENUEND+" \ |
< "$i" | sed -e "s+@topdir@+$htmltop+g" > "$i.new" && mv "$i.new" "$i" |
sed -e "s+<!-- cmenu -->+$CMENU+" < "$i" > "$i.new" |
test -s "$i.new" && mv "$i.new" "$i" |
fi |
done |
} |
### Handle the Doxygen processing of a toplevel directory. |
apidox_toplevel() |
{ |
echo "" |
echo "*** Creating API documentation main page for $module_name" |
echo "*" |
rm -f "Doxyfile" |
for i in "$top_srcdir/doc/api/Doxyfile.global" \ |
"$top_srcdir/admin/Doxyfile.global" \ |
"$DOXDATA/Doxyfile.global" |
do |
if test -f "$i" ; then |
cp "$i" Doxyfile |
break |
fi |
done |
if test ! -f "Doxyfile" ; then |
echo "* Cannot create Doxyfile." |
exit 1 |
fi |
cat "$top_builddir/Doxyfile.in" >> Doxyfile |
echo "INPUT = $top_srcdir" >> Doxyfile |
echo "OUTPUT_DIRECTORY = $top_builddir" >> Doxyfile ; \ |
echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \ |
echo "RECURSIVE = NO" >> Doxyfile ; \ |
echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \ |
echo "HTML_OUTPUT = ." >> Doxyfile ; \ |
apidox_htmlfiles "main" |
# KDevelop has a top-level Makefile.am with settings. |
for i in "$top_srcdir/Makefile.am.in" "$top_srcdir/Makefile.am" |
do |
if test -f "$i" ; then |
grep '^DOXYGEN_SET_' "$i" | \ |
sed -e 's+DOXYGEN_SET_++' -e "s+@topdir@+$top_srcdir+" >> Doxyfile |
apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile" |
break |
fi |
done |
apidox_local |
doxygen Doxyfile |
( cd "$top_srcdir" && grep -l '^include.*Doxyfile.am' `find . -name Makefile.am` ) | sed -e 's+/Makefile.am$++' -e 's+^\./++' | sort > subdirs.in |
for i in `cat subdirs.in` |
do |
test "x." = "x$i" && continue; |
dir=`dirname "$i"` |
file=`basename "$i"` |
if test "x." = "x$dir" ; then |
dir="" |
else |
dir="$dir/" |
fi |
indent=`echo "$dir" | sed -e 's+[^/]*/+\ \ +g' | sed -e 's+&+\\\&+g'` |
entryname=`extract_line DOXYGEN_SET_PROJECT_NAME "$top_srcdir/$dir/$file/Makefile.am"` |
test -z "$entryname" && entryname="$file" |
if grep DOXYGEN_EMPTY "$top_srcdir/$dir/$file/Makefile.am" > /dev/null 2>&1 ; then |
echo "<li>$indent$file</li>" |
else |
echo "<li>$indent<a href=\"@topdir@/$dir$file/html/index.html\">$entryname</a></li>" |
fi |
done > subdirs |
doxyndex |
} |
### Handle the Doxygen processing of a non-toplevel directory. |
apidox_subdir() |
{ |
echo "" |
echo "*** Creating apidox in $subdir" |
echo "*" |
rm -f "$subdir/Doxyfile" |
if test ! -d "$top_srcdir/$subdir" ; then |
echo "* No source (sub)directory $subdir" |
return |
fi |
for i in "$top_srcdir/doc/api/Doxyfile.global" \ |
"$top_srcdir/admin/Doxyfile.global" \ |
"$DOXDATA/Doxyfile.global" |
do |
if test -f "$i" ; then |
cp "$i" "$subdir/Doxyfile" |
break |
fi |
done |
test -f "Doxyfile.in" || create_doxyfile_in |
cat "Doxyfile.in" >> "$subdir/Doxyfile" |
echo "PROJECT_NAME = \"$subdir\"" >> "$subdir/Doxyfile" |
echo "INPUT = $srcdir" >> "$subdir/Doxyfile" |
echo "OUTPUT_DIRECTORY = ." >> "$subdir/Doxyfile" |
if grep -l "$subdir/" subdirs.in > /dev/null 2>&1 ; then |
echo "RECURSIVE = NO" >> "$subdir/Doxyfile" |
fi |
echo "HTML_OUTPUT = $subdir/html" >> "$subdir/Doxyfile" |
echo "GENERATE_TAGFILE = $subdir/$subdirname.tag" >> "$subdir/Doxyfile" |
test -d "$top_srcdir/doc/api" && \ |
echo "IMAGE_PATH = $top_srcdir/doc/api" >> "$subdir/Doxyfile" |
apidox_htmlfiles "" |
# Makefile.ams may contain overrides to our settings, |
# so copy them in. |
grep '^DOXYGEN_SET_' "$srcdir/Makefile.am" | \ |
sed -e 's+DOXYGEN_SET_++' >> "$subdir/Doxyfile" |
apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile" |
excludes=`extract_line DOXYGEN_EXCLUDE` |
if test -n "$excludes"; then |
patterns="" |
dirs="" |
for item in `echo "$excludes"`; do |
if test -d "$top_srcdir/$subdir/$item"; then |
dirs="$dirs $top_srcdir/$subdir/$item/" |
else |
patterns="$patterns $item" |
fi |
done |
echo "EXCLUDE_PATTERNS += $patterns" >> "$subdir/Doxyfile" |
echo "EXCLUDE += $dirs" >> "$subdir/Doxyfile" |
fi |
echo "TAGFILES = \\" >> "$subdir/Doxyfile" |
## For now, don't support \ continued references lines |
tags=`extract_line DOXYGEN_REFERENCES` |
for i in $tags qt ; do |
tagsubdir=`dirname $i` ; tag=`basename $i` |
tagpath="" |
not_found="" |
if test "x$tagsubdir" = "x." ; then |
tagsubdir="" |
else |
tagsubdir="$tagsubdir/" |
fi |
# Find location of tag file |
if test -f "$tagsubdir$tag/$tag.tag" ; then |
file="$tagsubdir$tag/$tag.tag" |
loc="$tagsubdir$tag/html" |
else |
# This checks for dox built with_out_ --no-modulename |
# in the same build dir as this dox run was started in. |
file=`ls -1 ../*-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null` |
if test -n "$file" ; then |
loc=`echo "$file" | sed -e "s/$tag.tag\$/html/"` |
else |
# If the tag file doesn't exist yet, but should |
# because we have the right dirs here, queue |
# this directory for re-processing later. |
if test -d "$top_srcdir/$tagsubdir$tag" ; then |
echo "* Need to re-process $subdir for tag $i" |
echo "$subdir" >> "subdirs.later" |
else |
# Re-check in $PREFIX if needed. |
test -n "$PREFIX" && \ |
file=`cd "$PREFIX" && \ |
ls -1 *-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null` |
# If something is found, patch it up. The location must be |
# relative to the installed location of the dox and the |
# file must be absolute. |
if test -n "$file" ; then |
loc=`echo "../$file" | sed -e "s/$tag.tag\$/html/"` |
file="$PREFIX/$file" |
echo "* Tags for $tagsubdir$tag will only work when installed." |
not_found="YES" |
fi |
fi |
fi |
fi |
if test "$tag" = "qt" ; then |
if test -z "$QTDOCDIR" ; then |
echo " $file" >> "$subdir/Doxyfile" |
else |
if test -z "$file" ; then |
# Really no Qt tags |
echo "" >> "$subdir/Doxyfile" |
else |
echo " $file=$QTDOCDIR" >> "$subdir/Doxyfile" |
fi |
fi |
else |
if test -n "$file" ; then |
test -z "$not_found" && echo "* Found tag $file" |
echo " $file=../$top_builddir$loc \\" >> "$subdir/Doxyfile" |
fi |
fi |
done |
apidox_local |
if grep '^DOXYGEN_EMPTY' "$srcdir/Makefile.am" > /dev/null 2>&1 ; then |
# This directory is empty, so don't process it, but |
# *do* handle subdirs that might have dox. |
: |
else |
# Regular processing |
doxygen "$subdir/Doxyfile" |
doxyndex |
fi |
} |
### Run a given subdir by setting up global variables first. |
do_subdir() |
{ |
subdir=`echo "$1" | sed -e 's+/$++'` |
srcdir="$top_srcdir/$subdir" |
subdirname=`basename "$subdir"` |
mkdir -p "$subdir" 2> /dev/null |
if test ! -d "$subdir" ; then |
echo "Can't create dox subdirectory $subdir" |
return |
fi |
top_builddir=`echo "/$subdir" | sed -e 's+/[^/]*+../+g'` |
apidox_subdir |
} |
### Create installdox-slow in the toplevel |
create_installdox() |
{ |
# Fix up the installdox script so it accepts empty args |
# |
# This code is copied from the installdox generated by Doxygen, |
# copyright by Dimitri van Heesch and released under the GPL. |
# This does a _slow_ update of the dox, because it loops |
# over the given substitutions instead of assuming all the |
# needed ones are given. |
# |
cat <<\EOF |
#! /usr/bin/env perl |
%subst = () ; |
$quiet = 0; |
if (open(F,"search.cfg")) |
{ |
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; |
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; |
} |
while ( @ARGV ) { |
$_ = shift @ARGV; |
if ( s/^-// ) { |
if ( /^l(.*)/ ) { |
$v = ($1 eq "") ? shift @ARGV : $1; |
($v =~ /\/$/) || ($v .= "/"); |
$_ = $v; |
if ( /(.+)\@(.+)/ ) { |
$subst{$1} = $2; |
} else { |
print STDERR "Argument $_ is invalid for option -l\n"; |
&usage(); |
} |
} |
elsif ( /^q/ ) { |
$quiet = 1; |
} |
elsif ( /^\?|^h/ ) { |
&usage(); |
} |
else { |
print STDERR "Illegal option -$_\n"; |
&usage(); |
} |
} |
else { |
push (@files, $_ ); |
} |
} |
if ( ! @files ) { |
if (opendir(D,".")) { |
foreach $file ( readdir(D) ) { |
$match = ".html"; |
next if ( $file =~ /^\.\.?$/ ); |
($file =~ /$match/) && (push @files, $file); |
($file =~ "tree.js") && (push @files, $file); |
} |
closedir(D); |
} |
} |
if ( ! @files ) { |
print STDERR "Warning: No input files given and none found!\n"; |
} |
foreach $f (@files) |
{ |
if ( ! $quiet ) { |
print "Editing: $f...\n"; |
} |
$oldf = $f; |
$f .= ".bak"; |
unless (rename $oldf,$f) { |
print STDERR "Error: cannot rename file $oldf\n"; |
exit 1; |
} |
if (open(F,"<$f")) { |
unless (open(G,">$oldf")) { |
print STDERR "Error: opening file $oldf for writing\n"; |
exit 1; |
} |
if ($oldf ne "tree.js") { |
while (<F>) { |
foreach $sub (keys %subst) { |
s/doxygen\=\"$sub\:([^ \"\t\>\<]*)\" (href|src)=\"\1/doxygen\=\"$sub:$subst{$sub}\" \2=\"$subst{$sub}/g; |
print G "$_"; |
} |
} |
} |
else { |
while (<F>) { |
foreach $sub (keys %subst) { |
s/\"$sub\:([^ \"\t\>\<]*)\", \"\1/\"$sub:$subst{$sub}\" ,\"$subst{$sub}/g; |
print G "$_"; |
} |
} |
} |
} |
else { |
print STDERR "Warning file $f does not exist\n"; |
} |
unlink $f; |
} |
sub usage { |
print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; |
print STDERR "Options:\n"; |
print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; |
print STDERR " -q Quiet mode\n\n"; |
exit 1; |
} |
EOF |
} |
# Do only the subdirs that match the RE passed in as $1 |
do_subdirs_re() |
{ |
RE=`echo "$1" | sed -e 's+/$++'` |
# Here's a queue of dirs to re-process later when |
# all the rest have been done already. |
> subdirs.later |
# subdirs.top lists _all_ subdirs of top in the order they |
# should be handled; subdirs.in lists those dirs that contain |
# dox. So the intersection of the two is the ordered list |
# of top-level subdirs that contain dox. |
# |
# subdirs.top also doesn't contain ".", so that special |
# case can be ignored in the loop. |
( |
for i in `grep "^$RE" subdirs.top` |
do |
if test "x$i" = "x." ; then |
continue |
fi |
# Calculate intersection of this element and the |
# set of dox dirs. |
if grep "^$i\$" subdirs.in > /dev/null 2>&1 ; then |
echo "$i" |
mkdir -p "$i" 2> /dev/null |
# Handle the subdirs of this one |
for j in `grep "$i/" subdirs.in` |
do |
echo "$j" |
mkdir -p "$j" 2> /dev/null |
done |
fi |
done |
# Now we still need to handle whatever is left |
for i in `cat subdirs.in` |
do |
test -d "$i" || echo "$i" |
mkdir -p "$i" 2> /dev/null |
done |
) > subdirs.sort |
for i in `cat subdirs.sort` |
do |
do_subdir "$i" |
done |
if test -s "subdirs.later" ; then |
sort subdirs.later | uniq > subdirs.sort |
for i in `cat subdirs.sort` |
do |
: > subdirs.later |
echo "*** Reprocessing $i" |
do_subdir "$i" |
test -s "subdirs.later" && echo "* Some tag files were still not found." |
done |
fi |
} |
if test "x." = "x$top_builddir" ; then |
apidox_toplevel |
create_subdirs |
create_installdox > installdox-slow |
if test "x$recurse" = "x1" ; then |
if test "x$module_name" = "xkdelibs" ; then |
if test -z "$QTDOCTAG" && test -d "$QTDOCDIR" && \ |
test ! -f "qt/qt.tag" ; then |
# Special case: create a qt tag file. |
echo "*** Creating a tag file for the Qt library:" |
mkdir qt |
doxytag -t qt/qt.tag "$QTDOCDIR" > /dev/null 2>&1 |
fi |
fi |
if test -n "$QTDOCTAG" && test -r "$QTDOCTAG" ; then |
echo "*** Copying tag file for the Qt library:" |
mkdir qt |
cp "$QTDOCTAG" qt/qt.tag |
fi |
do_subdirs_re "." |
fi |
else |
if test "x$recurse" = "x1" ; then |
do_subdirs_re "$subdir" |
else |
do_subdir "$subdir" |
fi |
fi |
# At the end of a run, clean up stuff. |
if test "YES" = "$cleanup" ; then |
rm -f subdirs.in subdirs.later subdirs.sort subdirs.top Doxyfile.in |
rm -f `find . -name Doxyfile` |
rm -f qt/qt.tag |
rmdir qt > /dev/null 2>&1 |
fi |
exit 0 |
/tilgungsplan/trunk/admin/depcomp |
---|
0,0 → 1,530 |
#! /bin/sh |
# depcomp - compile a program generating dependencies as side-effects |
scriptversion=2005-07-09.11 |
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 2, or (at your option) |
# any later version. |
# This program 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 General Public License for more details. |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
# 02110-1301, USA. |
# As a special exception to the GNU General Public License, if you |
# distribute this file as part of a program that contains a |
# configuration script generated by Autoconf, you may include it under |
# the same distribution terms that you use for the rest of that program. |
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. |
case $1 in |
'') |
echo "$0: No command. Try \`$0 --help' for more information." 1>&2 |
exit 1; |
;; |
-h | --h*) |
cat <<\EOF |
Usage: depcomp [--help] [--version] PROGRAM [ARGS] |
Run PROGRAMS ARGS to compile a file, generating dependencies |
as side-effects. |
Environment variables: |
depmode Dependency tracking mode. |
source Source file read by `PROGRAMS ARGS'. |
object Object file output by `PROGRAMS ARGS'. |
DEPDIR directory where to store dependencies. |
depfile Dependency file to output. |
tmpdepfile Temporary file to use when outputing dependencies. |
libtool Whether libtool is used (yes/no). |
Report bugs to <bug-automake@gnu.org>. |
EOF |
exit $? |
;; |
-v | --v*) |
echo "depcomp $scriptversion" |
exit $? |
;; |
esac |
if test -z "$depmode" || test -z "$source" || test -z "$object"; then |
echo "depcomp: Variables source, object and depmode must be set" 1>&2 |
exit 1 |
fi |
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. |
depfile=${depfile-`echo "$object" | |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} |
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} |
rm -f "$tmpdepfile" |
# Some modes work just like other modes, but use different flags. We |
# parameterize here, but still list the modes in the big case below, |
# to make depend.m4 easier to write. Note that we *cannot* use a case |
# here, because this file can only contain one case statement. |
if test "$depmode" = hp; then |
# HP compiler uses -M and no extra arg. |
gccflag=-M |
depmode=gcc |
fi |
if test "$depmode" = dashXmstdout; then |
# This is just like dashmstdout with a different argument. |
dashmflag=-xM |
depmode=dashmstdout |
fi |
case "$depmode" in |
gcc3) |
## gcc 3 implements dependency tracking that does exactly what |
## we want. Yay! Note: for some reason libtool 1.4 doesn't like |
## it if -MD -MP comes after the -MF stuff. Hmm. |
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile" |
stat=$? |
if test $stat -eq 0; then : |
else |
rm -f "$tmpdepfile" |
exit $stat |
fi |
mv "$tmpdepfile" "$depfile" |
;; |
gcc) |
## There are various ways to get dependency output from gcc. Here's |
## why we pick this rather obscure method: |
## - Don't want to use -MD because we'd like the dependencies to end |
## up in a subdir. Having to rename by hand is ugly. |
## (We might end up doing this anyway to support other compilers.) |
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like |
## -MM, not -M (despite what the docs say). |
## - Using -M directly means running the compiler twice (even worse |
## than renaming). |
if test -z "$gccflag"; then |
gccflag=-MD, |
fi |
"$@" -Wp,"$gccflag$tmpdepfile" |
stat=$? |
if test $stat -eq 0; then : |
else |
rm -f "$tmpdepfile" |
exit $stat |
fi |
rm -f "$depfile" |
echo "$object : \\" > "$depfile" |
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz |
## The second -e expression handles DOS-style file names with drive letters. |
sed -e 's/^[^:]*: / /' \ |
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" |
## This next piece of magic avoids the `deleted header file' problem. |
## The problem is that when a header file which appears in a .P file |
## is deleted, the dependency causes make to die (because there is |
## typically no way to rebuild the header). We avoid this by adding |
## dummy dependencies for each header file. Too bad gcc doesn't do |
## this for us directly. |
tr ' ' ' |
' < "$tmpdepfile" | |
## Some versions of gcc put a space before the `:'. On the theory |
## that the space means something, we add a space to the output as |
## well. |
## Some versions of the HPUX 10.20 sed can't process this invocation |
## correctly. Breaking it into two sed invocations is a workaround. |
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" |
rm -f "$tmpdepfile" |
;; |
hp) |
# This case exists only to let depend.m4 do its work. It works by |
# looking at the text of this script. This case will never be run, |
# since it is checked for above. |
exit 1 |
;; |
sgi) |
if test "$libtool" = yes; then |
"$@" "-Wp,-MDupdate,$tmpdepfile" |
else |
"$@" -MDupdate "$tmpdepfile" |
fi |
stat=$? |
if test $stat -eq 0; then : |
else |
rm -f "$tmpdepfile" |
exit $stat |
fi |
rm -f "$depfile" |
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files |
echo "$object : \\" > "$depfile" |
# Clip off the initial element (the dependent). Don't try to be |
# clever and replace this with sed code, as IRIX sed won't handle |
# lines with more than a fixed number of characters (4096 in |
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; |
# the IRIX cc adds comments like `#:fec' to the end of the |
# dependency line. |
tr ' ' ' |
' < "$tmpdepfile" \ |
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ |
tr ' |
' ' ' >> $depfile |
echo >> $depfile |
# The second pass generates a dummy entry for each header file. |
tr ' ' ' |
' < "$tmpdepfile" \ |
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ |
>> $depfile |
else |
# The sourcefile does not contain any dependencies, so just |
# store a dummy comment line, to avoid errors with the Makefile |
# "include basename.Plo" scheme. |
echo "#dummy" > "$depfile" |
fi |
rm -f "$tmpdepfile" |
;; |
aix) |
# The C for AIX Compiler uses -M and outputs the dependencies |
# in a .u file. In older versions, this file always lives in the |
# current directory. Also, the AIX compiler puts `$object:' at the |
# start of each line; $object doesn't have directory information. |
# Version 6 uses the directory in both cases. |
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` |
tmpdepfile="$stripped.u" |
if test "$libtool" = yes; then |
"$@" -Wc,-M |
else |
"$@" -M |
fi |
stat=$? |
if test -f "$tmpdepfile"; then : |
else |
stripped=`echo "$stripped" | sed 's,^.*/,,'` |
tmpdepfile="$stripped.u" |
fi |
if test $stat -eq 0; then : |
else |
rm -f "$tmpdepfile" |
exit $stat |
fi |
if test -f "$tmpdepfile"; then |
outname="$stripped.o" |
# Each line is of the form `foo.o: dependent.h'. |
# Do two passes, one to just change these to |
# `$object: dependent.h' and one to simply `dependent.h:'. |
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" |
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" |
else |
# The sourcefile does not contain any dependencies, so just |
# store a dummy comment line, to avoid errors with the Makefile |
# "include basename.Plo" scheme. |
echo "#dummy" > "$depfile" |
fi |
rm -f "$tmpdepfile" |
;; |
icc) |
# Intel's C compiler understands `-MD -MF file'. However on |
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c |
# ICC 7.0 will fill foo.d with something like |
# foo.o: sub/foo.c |
# foo.o: sub/foo.h |
# which is wrong. We want: |
# sub/foo.o: sub/foo.c |
# sub/foo.o: sub/foo.h |
# sub/foo.c: |
# sub/foo.h: |
# ICC 7.1 will output |
# foo.o: sub/foo.c sub/foo.h |
# and will wrap long lines using \ : |
# foo.o: sub/foo.c ... \ |
# sub/foo.h ... \ |
# ... |
"$@" -MD -MF "$tmpdepfile" |
stat=$? |
if test $stat -eq 0; then : |
else |
rm -f "$tmpdepfile" |
exit $stat |
fi |
rm -f "$depfile" |
# Each line is of the form `foo.o: dependent.h', |
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. |
# Do two passes, one to just change these to |
# `$object: dependent.h' and one to simply `dependent.h:'. |
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" |
# Some versions of the HPUX 10.20 sed can't process this invocation |
# correctly. Breaking it into two sed invocations is a workaround. |
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | |
sed -e 's/$/ :/' >> "$depfile" |
rm -f "$tmpdepfile" |
;; |
tru64) |
# The Tru64 compiler uses -MD to generate dependencies as a side |
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. |
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put |
# dependencies in `foo.d' instead, so we check for that too. |
# Subdirectories are respected. |
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` |
test "x$dir" = "x$object" && dir= |
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` |
if test "$libtool" = yes; then |
# With Tru64 cc, shared objects can also be used to make a |
# static library. This mecanism is used in libtool 1.4 series to |
# handle both shared and static libraries in a single compilation. |
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. |
# |
# With libtool 1.5 this exception was removed, and libtool now |
# generates 2 separate objects for the 2 libraries. These two |
# compilations output dependencies in in $dir.libs/$base.o.d and |
# in $dir$base.o.d. We have to check for both files, because |
# one of the two compilations can be disabled. We should prefer |
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is |
# automatically cleaned when .libs/ is deleted, while ignoring |
# the former would cause a distcleancheck panic. |
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 |
tmpdepfile2=$dir$base.o.d # libtool 1.5 |
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 |
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 |
"$@" -Wc,-MD |
else |
tmpdepfile1=$dir$base.o.d |
tmpdepfile2=$dir$base.d |
tmpdepfile3=$dir$base.d |
tmpdepfile4=$dir$base.d |
"$@" -MD |
fi |
stat=$? |
if test $stat -eq 0; then : |
else |
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" |
exit $stat |
fi |
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" |
do |
test -f "$tmpdepfile" && break |
done |
if test -f "$tmpdepfile"; then |
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" |
# That's a tab and a space in the []. |
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" |
else |
echo "#dummy" > "$depfile" |
fi |
rm -f "$tmpdepfile" |
;; |
#nosideeffect) |
# This comment above is used by automake to tell side-effect |
# dependency tracking mechanisms from slower ones. |
dashmstdout) |
# Important note: in order to support this mode, a compiler *must* |
# always write the preprocessed file to stdout, regardless of -o. |
"$@" || exit $? |
# Remove the call to Libtool. |
if test "$libtool" = yes; then |
while test $1 != '--mode=compile'; do |
shift |
done |
shift |
fi |
# Remove `-o $object'. |
IFS=" " |
for arg |
do |
case $arg in |
-o) |
shift |
;; |
$object) |
shift |
;; |
*) |
set fnord "$@" "$arg" |
shift # fnord |
shift # $arg |
;; |
esac |
done |
test -z "$dashmflag" && dashmflag=-M |
# Require at least two characters before searching for `:' |
# in the target name. This is to cope with DOS-style filenames: |
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. |
"$@" $dashmflag | |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" |
rm -f "$depfile" |
cat < "$tmpdepfile" > "$depfile" |
tr ' ' ' |
' < "$tmpdepfile" | \ |
## Some versions of the HPUX 10.20 sed can't process this invocation |
## correctly. Breaking it into two sed invocations is a workaround. |
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" |
rm -f "$tmpdepfile" |
;; |
dashXmstdout) |
# This case only exists to satisfy depend.m4. It is never actually |
# run, as this mode is specially recognized in the preamble. |
exit 1 |
;; |
makedepend) |
"$@" || exit $? |
# Remove any Libtool call |
if test "$libtool" = yes; then |
while test $1 != '--mode=compile'; do |
shift |
done |
shift |
fi |
# X makedepend |
shift |
cleared=no |
for arg in "$@"; do |
case $cleared in |
no) |
set ""; shift |
cleared=yes ;; |
esac |
case "$arg" in |
-D*|-I*) |
set fnord "$@" "$arg"; shift ;; |
# Strip any option that makedepend may not understand. Remove |
# the object too, otherwise makedepend will parse it as a source file. |
-*|$object) |
;; |
*) |
set fnord "$@" "$arg"; shift ;; |
esac |
done |
obj_suffix="`echo $object | sed 's/^.*\././'`" |
touch "$tmpdepfile" |
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" |
rm -f "$depfile" |
cat < "$tmpdepfile" > "$depfile" |
sed '1,2d' "$tmpdepfile" | tr ' ' ' |
' | \ |
## Some versions of the HPUX 10.20 sed can't process this invocation |
## correctly. Breaking it into two sed invocations is a workaround. |
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" |
rm -f "$tmpdepfile" "$tmpdepfile".bak |
;; |
cpp) |
# Important note: in order to support this mode, a compiler *must* |
# always write the preprocessed file to stdout. |
"$@" || exit $? |
# Remove the call to Libtool. |
if test "$libtool" = yes; then |
while test $1 != '--mode=compile'; do |
shift |
done |
shift |
fi |
# Remove `-o $object'. |
IFS=" " |
for arg |
do |
case $arg in |
-o) |
shift |
;; |
$object) |
shift |
;; |
*) |
set fnord "$@" "$arg" |
shift # fnord |
shift # $arg |
;; |
esac |
done |
"$@" -E | |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ |
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | |
sed '$ s: \\$::' > "$tmpdepfile" |
rm -f "$depfile" |
echo "$object : \\" > "$depfile" |
cat < "$tmpdepfile" >> "$depfile" |
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" |
rm -f "$tmpdepfile" |
;; |
msvisualcpp) |
# Important note: in order to support this mode, a compiler *must* |
# always write the preprocessed file to stdout, regardless of -o, |
# because we must use -o when running libtool. |
"$@" || exit $? |
IFS=" " |
for arg |
do |
case "$arg" in |
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") |
set fnord "$@" |
shift |
shift |
;; |
*) |
set fnord "$@" "$arg" |
shift |
shift |
;; |
esac |
done |
"$@" -E | |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" |
rm -f "$depfile" |
echo "$object : \\" > "$depfile" |
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" |
echo " " >> "$depfile" |
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" |
rm -f "$tmpdepfile" |
;; |
none) |
exec "$@" |
;; |
*) |
echo "Unknown depmode $depmode" 1>&2 |
exit 1 |
;; |
esac |
exit 0 |
# Local Variables: |
# mode: shell-script |
# sh-indentation: 2 |
# eval: (add-hook 'write-file-hooks 'time-stamp) |
# time-stamp-start: "scriptversion=" |
# time-stamp-format: "%:y-%02m-%02d.%02H" |
# time-stamp-end: "$" |
# End: |
/tilgungsplan/trunk/admin/deps.am |
---|
0,0 → 1,19 |
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in $(top_srcdir)/admin/cvs.sh $(top_srcdir)/admin/pkg.m4.in |
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh acinclude_m4 |
$(top_srcdir)/configure.in: $(top_srcdir)/subdirs $(top_srcdir)/configure.files $(top_srcdir)/admin/cvs.sh |
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure_in |
$(top_srcdir)/configure.files: $(top_srcdir)/subdirs $(CONF_FILES) |
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure.files $(top_srcdir)/admin/cvs.sh |
$(top_srcdir)/Makefile.am: $(top_srcdir)/Makefile.am.in $(top_srcdir)/subdirs $(top_srcdir)/admin/cvs.sh |
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh Makefile_am |
$(top_srcdir)/subdirs: $(top_srcdir)/Makefile.am.in $(top_srcdir)/admin/cvs.sh |
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh subdirs |
# defining default rules for files that may not be present |
$(top_srcdir)/Makefile.am.in: |
$(CONF_FILES): |
/tilgungsplan/trunk/admin/libtool.m4.in |
---|
0,0 → 1,5891 |
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- |
## Copyright 1996, 1997, 1998, 1999, 2000, 2001 |
## Free Software Foundation, Inc. |
## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 |
## |
## This program is free software; you can redistribute it and/or modify |
## it under the terms of the GNU General Public License as published by |
## the Free Software Foundation; either version 2 of the License, or |
## (at your option) any later version. |
## |
## This program 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 |
## General Public License for more details. |
## |
## You should have received a copy of the GNU General Public License |
## along with this program; if not, write to the Free Software |
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
## |
## As a special exception to the GNU General Public License, if you |
## distribute this file as part of a program that contains a |
## configuration script generated by Autoconf, you may include it under |
## the same distribution terms that you use for the rest of that program. |
# serial 47 AC_PROG_LIBTOOL |
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) |
# ----------------------------------------------------------- |
# If this macro is not defined by Autoconf, define it here. |
m4_ifdef([AC_PROVIDE_IFELSE], |
[], |
[m4_define([AC_PROVIDE_IFELSE], |
[m4_ifdef([AC_PROVIDE_$1], |
[$2], [$3])])]) |
# AC_PROG_LIBTOOL |
# --------------- |
AC_DEFUN([AC_PROG_LIBTOOL], |
[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl |
dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX |
dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. |
AC_PROVIDE_IFELSE([AC_PROG_CXX], |
[AC_LIBTOOL_CXX], |
[define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX |
])]) |
dnl And a similar setup for Fortran 77 support |
AC_PROVIDE_IFELSE([AC_PROG_F77], |
[AC_LIBTOOL_F77], |
[define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 |
])]) |
dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. |
dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run |
dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. |
AC_PROVIDE_IFELSE([AC_PROG_GCJ], |
[AC_LIBTOOL_GCJ], |
[AC_PROVIDE_IFELSE([A][M_PROG_GCJ], |
[AC_LIBTOOL_GCJ], |
[AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], |
[AC_LIBTOOL_GCJ], |
[ifdef([AC_PROG_GCJ], |
[define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) |
ifdef([A][M_PROG_GCJ], |
[define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) |
ifdef([LT_AC_PROG_GCJ], |
[define([LT_AC_PROG_GCJ], |
defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) |
])])# AC_PROG_LIBTOOL |
# _AC_PROG_LIBTOOL |
# ---------------- |
AC_DEFUN([_AC_PROG_LIBTOOL], |
[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl |
AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl |
AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl |
AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl |
# This can be used to rebuild libtool when needed |
LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" |
# Always use our own libtool. |
LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent' |
AC_SUBST(LIBTOOL)dnl |
# Prevent multiple expansion |
define([AC_PROG_LIBTOOL], []) |
])# _AC_PROG_LIBTOOL |
# AC_LIBTOOL_SETUP |
# ---------------- |
AC_DEFUN([AC_LIBTOOL_SETUP], |
[AC_PREREQ(2.50)dnl |
AC_REQUIRE([AC_ENABLE_SHARED])dnl |
AC_REQUIRE([AC_ENABLE_STATIC])dnl |
AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl |
AC_REQUIRE([AC_CANONICAL_HOST])dnl |
AC_REQUIRE([AC_CANONICAL_BUILD])dnl |
AC_REQUIRE([AC_PROG_CC])dnl |
AC_REQUIRE([AC_PROG_LD])dnl |
AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl |
AC_REQUIRE([AC_PROG_NM])dnl |
AC_REQUIRE([AC_PROG_LN_S])dnl |
AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl |
# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! |
AC_REQUIRE([AC_OBJEXT])dnl |
AC_REQUIRE([AC_EXEEXT])dnl |
dnl |
AC_LIBTOOL_SYS_MAX_CMD_LEN |
AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE |
AC_LIBTOOL_OBJDIR |
AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl |
_LT_AC_PROG_ECHO_BACKSLASH |
case $host_os in |
aix3*) |
# AIX sometimes has problems with the GCC collect2 program. For some |
# reason, if we set the COLLECT_NAMES environment variable, the problems |
# vanish in a puff of smoke. |
if test "X${COLLECT_NAMES+set}" != Xset; then |
COLLECT_NAMES= |
export COLLECT_NAMES |
fi |
;; |
esac |
# Sed substitution that helps us do robust quoting. It backslashifies |
# metacharacters that are still active within double-quoted strings. |
Xsed='sed -e s/^X//' |
[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] |
# Same as above, but do not quote variable references. |
[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] |
# Sed substitution to delay expansion of an escaped shell variable in a |
# double_quote_subst'ed string. |
delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' |
# Sed substitution to avoid accidental globbing in evaled expressions |
no_glob_subst='s/\*/\\\*/g' |
# Constants: |
rm="rm -f" |
# Global variables: |
default_ofile=libtool |
can_build_shared=yes |
# All known linkers require a `.a' archive for static linking (except M$VC, |
# which needs '.lib'). |
libext=a |
ltmain="$ac_aux_dir/ltmain.sh" |
ofile="$default_ofile" |
with_gnu_ld="$lt_cv_prog_gnu_ld" |
AC_CHECK_TOOL(AR, ar, false) |
AC_CHECK_TOOL(RANLIB, ranlib, :) |
AC_CHECK_TOOL(STRIP, strip, :) |
old_CC="$CC" |
old_CFLAGS="$CFLAGS" |
# Set sane defaults for various variables |
test -z "$AR" && AR=ar |
test -z "$AR_FLAGS" && AR_FLAGS=cru |
test -z "$AS" && AS=as |
test -z "$CC" && CC=cc |
test -z "$LTCC" && LTCC=$CC |
test -z "$DLLTOOL" && DLLTOOL=dlltool |
test -z "$LD" && LD=ld |
test -z "$LN_S" && LN_S="ln -s" |
test -z "$MAGIC_CMD" && MAGIC_CMD=file |
test -z "$NM" && NM=nm |
test -z "$SED" && SED=sed |
test -z "$OBJDUMP" && OBJDUMP=objdump |
test -z "$RANLIB" && RANLIB=: |
test -z "$STRIP" && STRIP=: |
test -z "$ac_objext" && ac_objext=o |
# Determine commands to create old-style static archives. |
old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' |
old_postinstall_cmds='chmod 644 $oldlib' |
old_postuninstall_cmds= |
if test -n "$RANLIB"; then |
case $host_os in |
openbsd*) |
old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" |
;; |
*) |
old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" |
;; |
esac |
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" |
fi |
# Only perform the check for file, if the check method requires it |
case $deplibs_check_method in |
file_magic*) |
if test "$file_magic_cmd" = '$MAGIC_CMD'; then |
AC_PATH_MAGIC |
fi |
;; |
esac |
AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) |
AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], |
enable_win32_dll=yes, enable_win32_dll=no) |
AC_ARG_ENABLE([libtool-lock], |
[AC_HELP_STRING([--disable-libtool-lock], |
[avoid locking (might break parallel builds)])]) |
test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes |
AC_ARG_WITH([pic], |
[AC_HELP_STRING([--with-pic], |
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])], |
[pic_mode="$withval"], |
[pic_mode=default]) |
test -z "$pic_mode" && pic_mode=default |
# Use C for the default configuration in the libtool script |
tagname= |
AC_LIBTOOL_LANG_C_CONFIG |
_LT_AC_TAGCONFIG |
])# AC_LIBTOOL_SETUP |
# _LT_AC_SYS_COMPILER |
# ------------------- |
AC_DEFUN([_LT_AC_SYS_COMPILER], |
[AC_REQUIRE([AC_PROG_CC])dnl |
# If no C compiler was specified, use CC. |
LTCC=${LTCC-"$CC"} |
# Allow CC to be a program name with arguments. |
compiler=$CC |
])# _LT_AC_SYS_COMPILER |
# _LT_AC_SYS_LIBPATH_AIX |
# ---------------------- |
# Links a minimal program and checks the executable |
# for the system default hardcoded library path. In most cases, |
# this is /usr/lib:/lib, but when the MPI compilers are used |
# the location of the communication and MPI libs are included too. |
# If we don't find anything, use the default library path according |
# to the aix ld manual. |
AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], |
[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ |
aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } |
}'` |
# Check for a 64-bit object if we didn't find anything. |
if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } |
}'`; fi],[]) |
if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi |
])# _LT_AC_SYS_LIBPATH_AIX |
# _LT_AC_SHELL_INIT(ARG) |
# ---------------------- |
AC_DEFUN([_LT_AC_SHELL_INIT], |
[ifdef([AC_DIVERSION_NOTICE], |
[AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], |
[AC_DIVERT_PUSH(NOTICE)]) |
$1 |
AC_DIVERT_POP |
])# _LT_AC_SHELL_INIT |
# _LT_AC_PROG_ECHO_BACKSLASH |
# -------------------------- |
# Add some code to the start of the generated configure script which |
# will find an echo command which doesn't interpret backslashes. |
AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], |
[_LT_AC_SHELL_INIT([ |
# Check that we are running under the correct shell. |
SHELL=${CONFIG_SHELL-/bin/sh} |
case X$ECHO in |
X*--fallback-echo) |
# Remove one level of quotation (which was required for Make). |
ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` |
;; |
esac |
echo=${ECHO-echo} |
if test "X[$]1" = X--no-reexec; then |
# Discard the --no-reexec flag, and continue. |
shift |
elif test "X[$]1" = X--fallback-echo; then |
# Avoid inline document here, it may be left over |
: |
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then |
# Yippee, $echo works! |
: |
else |
# Restart under the correct shell. |
exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} |
fi |
if test "X[$]1" = X--fallback-echo; then |
# used as fallback echo |
shift |
cat <<EOF |
[$]* |
EOF |
exit 0 |
fi |
# The HP-UX ksh and POSIX shell print the target directory to stdout |
# if CDPATH is set. |
if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi |
if test -z "$ECHO"; then |
if test "X${echo_test_string+set}" != Xset; then |
# find a string as large as possible, as long as the shell can cope with it |
for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do |
# expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... |
if (echo_test_string="`eval $cmd`") 2>/dev/null && |
echo_test_string="`eval $cmd`" && |
(test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null |
then |
break |
fi |
done |
fi |
if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && |
echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && |
test "X$echo_testing_string" = "X$echo_test_string"; then |
: |
else |
# The Solaris, AIX, and Digital Unix default echo programs unquote |
# backslashes. This makes it impossible to quote backslashes using |
# echo "$something" | sed 's/\\/\\\\/g' |
# |
# So, first we look for a working echo in the user's PATH. |
lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR |
for dir in $PATH /usr/ucb; do |
IFS="$lt_save_ifs" |
if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && |
test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && |
echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && |
test "X$echo_testing_string" = "X$echo_test_string"; then |
echo="$dir/echo" |
break |
fi |
done |
IFS="$lt_save_ifs" |
if test "X$echo" = Xecho; then |
# We didn't find a better echo, so look for alternatives. |
if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && |
echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && |
test "X$echo_testing_string" = "X$echo_test_string"; then |
# This shell has a builtin print -r that does the trick. |
echo='print -r' |
elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && |
test "X$CONFIG_SHELL" != X/bin/ksh; then |
# If we have ksh, try running configure again with it. |
ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} |
export ORIGINAL_CONFIG_SHELL |
CONFIG_SHELL=/bin/ksh |
export CONFIG_SHELL |
exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} |
else |
# Try using printf. |
echo='printf %s\n' |
if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && |
echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && |
test "X$echo_testing_string" = "X$echo_test_string"; then |
# Cool, printf works |
: |
elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && |
test "X$echo_testing_string" = 'X\t' && |
echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && |
test "X$echo_testing_string" = "X$echo_test_string"; then |
CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL |
export CONFIG_SHELL |
SHELL="$CONFIG_SHELL" |
export SHELL |
echo="$CONFIG_SHELL [$]0 --fallback-echo" |
elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && |
test "X$echo_testing_string" = 'X\t' && |
echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && |
test "X$echo_testing_string" = "X$echo_test_string"; then |
echo="$CONFIG_SHELL [$]0 --fallback-echo" |
else |
# maybe with a smaller string... |
prev=: |
for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do |
if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null |
then |
break |
fi |
prev="$cmd" |
done |
if test "$prev" != 'sed 50q "[$]0"'; then |
echo_test_string=`eval $prev` |
export echo_test_string |
exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} |
else |
# Oops. We lost completely, so just stick with echo. |
echo=echo |
fi |
fi |
fi |
fi |
fi |
fi |
# Copy echo and quote the copy suitably for passing to libtool from |
# the Makefile, instead of quoting the original, which is used later. |
ECHO=$echo |
if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then |
ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" |
fi |
AC_SUBST(ECHO) |
])])# _LT_AC_PROG_ECHO_BACKSLASH |
# _LT_AC_LOCK |
# ----------- |
AC_DEFUN([_LT_AC_LOCK], |
[AC_ARG_ENABLE([libtool-lock], |
[AC_HELP_STRING([--disable-libtool-lock], |
[avoid locking (might break parallel builds)])]) |
test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes |
# Some flags need to be propagated to the compiler or linker for good |
# libtool support. |
case $host in |
ia64-*-hpux*) |
# Find out which ABI we are using. |
echo 'int i;' > conftest.$ac_ext |
if AC_TRY_EVAL(ac_compile); then |
case `/usr/bin/file conftest.$ac_objext` in |
*ELF-32*) |
HPUX_IA64_MODE="32" |
;; |
*ELF-64*) |
HPUX_IA64_MODE="64" |
;; |
esac |
fi |
rm -rf conftest* |
;; |
*-*-irix6*) |
# Find out which ABI we are using. |
echo '[#]line __oline__ "configure"' > conftest.$ac_ext |
if AC_TRY_EVAL(ac_compile); then |
if test "$lt_cv_prog_gnu_ld" = yes; then |
case `/usr/bin/file conftest.$ac_objext` in |
*32-bit*) |
LD="${LD-ld} -melf32bsmip" |
;; |
*N32*) |
LD="${LD-ld} -melf32bmipn32" |
;; |
*64-bit*) |
LD="${LD-ld} -melf64bmip" |
;; |
esac |
else |
case `/usr/bin/file conftest.$ac_objext` in |
*32-bit*) |
LD="${LD-ld} -32" |
;; |
*N32*) |
LD="${LD-ld} -n32" |
;; |
*64-bit*) |
LD="${LD-ld} -64" |
;; |
esac |
fi |
fi |
rm -rf conftest* |
;; |
x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) |
# Find out which ABI we are using. |
echo 'int i;' > conftest.$ac_ext |
if AC_TRY_EVAL(ac_compile); then |
case "`/usr/bin/file conftest.o`" in |
*32-bit*) |
LINUX_64_MODE="32" |
case $host in |
x86_64-*linux*) |
LD="${LD-ld} -m elf_i386" |
;; |
ppc64-*linux*) |
LD="${LD-ld} -m elf32ppclinux" |
;; |
s390x-*linux*) |
LD="${LD-ld} -m elf_s390" |
;; |
sparc64-*linux*) |
LD="${LD-ld} -m elf32_sparc" |
;; |
esac |
;; |
*64-bit*) |
LINUX_64_MODE="64" |
case $host in |
x86_64-*linux*) |
LD="${LD-ld} -m elf_x86_64" |
;; |
ppc*-*linux*|powerpc*-*linux*) |
LD="${LD-ld} -m elf64ppc" |
;; |
s390*-*linux*) |
LD="${LD-ld} -m elf64_s390" |
;; |
sparc*-*linux*) |
LD="${LD-ld} -m elf64_sparc" |
;; |
esac |
;; |
esac |
fi |
rm -rf conftest* |
;; |
*-*-sco3.2v5*) |
# On SCO OpenServer 5, we need -belf to get full-featured binaries. |
SAVE_CFLAGS="$CFLAGS" |
CFLAGS="$CFLAGS -belf" |
AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, |
[AC_LANG_PUSH(C) |
AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) |
AC_LANG_POP]) |
if test x"$lt_cv_cc_needs_belf" != x"yes"; then |
# this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf |
CFLAGS="$SAVE_CFLAGS" |
fi |
;; |
AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], |
[*-*-cygwin* | *-*-mingw* | *-*-pw32*) |
AC_CHECK_TOOL(DLLTOOL, dlltool, false) |
AC_CHECK_TOOL(AS, as, false) |
AC_CHECK_TOOL(OBJDUMP, objdump, false) |
;; |
]) |
esac |
need_locks="$enable_libtool_lock" |
])# _LT_AC_LOCK |
# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, |
# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) |
# ---------------------------------------------------------------- |
# Check whether the given compiler option works |
AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], |
[AC_REQUIRE([LT_AC_PROG_SED]) |
AC_CACHE_CHECK([$1], [$2], |
[$2=no |
ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) |
printf "$lt_simple_compile_test_code" > conftest.$ac_ext |
lt_compiler_flag="$3" |
# Insert the option either (1) after the last *FLAGS variable, or |
# (2) before a word containing "conftest.", or (3) at the end. |
# Note that $ac_compile itself does not contain backslashes and begins |
# with a dollar sign (not a hyphen), so the echo should work correctly. |
# The option is referenced via a variable to avoid confusing sed. |
lt_compile=`echo "$ac_compile" | $SED \ |
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ |
-e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ |
-e 's:$: $lt_compiler_flag:'` |
(eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) |
(eval "$lt_compile" 2>conftest.err) |
ac_status=$? |
cat conftest.err >&AS_MESSAGE_LOG_FD |
echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD |
if (exit $ac_status) && test -s "$ac_outfile"; then |
# The compiler can only warn and ignore the option if not recognized |
# So say no if there are warnings |
if test ! -s conftest.err; then |
$2=yes |
fi |
fi |
$rm conftest* |
]) |
if test x"[$]$2" = xyes; then |
ifelse([$5], , :, [$5]) |
else |
ifelse([$6], , :, [$6]) |
fi |
])# AC_LIBTOOL_COMPILER_OPTION |
# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, |
# [ACTION-SUCCESS], [ACTION-FAILURE]) |
# ------------------------------------------------------------ |
# Check whether the given compiler option works |
AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], |
[AC_CACHE_CHECK([$1], [$2], |
[$2=no |
save_LDFLAGS="$LDFLAGS" |
LDFLAGS="$LDFLAGS $3" |
printf "$lt_simple_link_test_code" > conftest.$ac_ext |
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then |
# The compiler can only warn and ignore the option if not recognized |
# So say no if there are warnings |
if test -s conftest.err; then |
# Append any errors to the config.log. |
cat conftest.err 1>&AS_MESSAGE_LOG_FD |
else |
$2=yes |
fi |
fi |
$rm conftest* |
LDFLAGS="$save_LDFLAGS" |
]) |
if test x"[$]$2" = xyes; then |
ifelse([$4], , :, [$4]) |
else |
ifelse([$5], , :, [$5]) |
fi |
])# AC_LIBTOOL_LINKER_OPTION |
# AC_LIBTOOL_SYS_MAX_CMD_LEN |
# -------------------------- |
AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], |
[# find the maximum length of command line arguments |
AC_MSG_CHECKING([the maximum length of command line arguments]) |
AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl |
i=0 |
testring="ABCD" |
case $build_os in |
msdosdjgpp*) |
# On DJGPP, this test can blow up pretty badly due to problems in libc |
# (any single argument exceeding 2000 bytes causes a buffer overrun |
# during glob expansion). Even if it were fixed, the result of this |
# check would be larger than it should be. |
lt_cv_sys_max_cmd_len=12288; # 12K is about right |
;; |
gnu*) |
# Under GNU Hurd, this test is not required because there is |
# no limit to the length of command line arguments. |
# Libtool will interpret -1 as no limit whatsoever |
lt_cv_sys_max_cmd_len=-1; |
;; |
cygwin* | mingw*) |
# On Win9x/ME, this test blows up -- it succeeds, but takes |
# about 5 minutes as the teststring grows exponentially. |
# Worse, since 9x/ME are not pre-emptively multitasking, |
# you end up with a "frozen" computer, even though with patience |
# the test eventually succeeds (with a max line length of 256k). |
# Instead, let's just punt: use the minimum linelength reported by |
# all of the supported platforms: 8192 (on NT/2K/XP). |
lt_cv_sys_max_cmd_len=8192; |
;; |
*) |
# If test is not a shell built-in, we'll probably end up computing a |
# maximum length that is only half of the actual maximum length, but |
# we can't tell. |
while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \ |
= "XX$testring") >/dev/null 2>&1 && |
new_result=`expr "X$testring" : ".*" 2>&1` && |
lt_cv_sys_max_cmd_len=$new_result && |
test $i != 17 # 1/2 MB should be enough |
do |
i=`expr $i + 1` |
testring=$testring$testring |
done |
testring= |
# Add a significant safety factor because C++ compilers can tack on massive |
# amounts of additional arguments before passing them to the linker. |
# It appears as though 1/2 is a usable value. |
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` |
;; |
esac |
]) |
if test -n $lt_cv_sys_max_cmd_len ; then |
AC_MSG_RESULT($lt_cv_sys_max_cmd_len) |
else |
AC_MSG_RESULT(none) |
fi |
])# AC_LIBTOOL_SYS_MAX_CMD_LEN |
# _LT_AC_CHECK_DLFCN |
# -------------------- |
AC_DEFUN([_LT_AC_CHECK_DLFCN], |
[AC_CHECK_HEADERS(dlfcn.h)dnl |
])# _LT_AC_CHECK_DLFCN |
# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, |
# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) |
# ------------------------------------------------------------------ |
AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], |
[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl |
if test "$cross_compiling" = yes; then : |
[$4] |
else |
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
lt_status=$lt_dlunknown |
cat > conftest.$ac_ext <<EOF |
[#line __oline__ "configure" |
#include "confdefs.h" |
#if HAVE_DLFCN_H |
#include <dlfcn.h> |
#endif |
#include <stdio.h> |
#ifdef RTLD_GLOBAL |
# define LT_DLGLOBAL RTLD_GLOBAL |
#else |
# ifdef DL_GLOBAL |
# define LT_DLGLOBAL DL_GLOBAL |
# else |
# define LT_DLGLOBAL 0 |
# endif |
#endif |
/* We may have to define LT_DLLAZY_OR_NOW in the command line if we |
find out it does not work in some platform. */ |
#ifndef LT_DLLAZY_OR_NOW |
# ifdef RTLD_LAZY |
# define LT_DLLAZY_OR_NOW RTLD_LAZY |
# else |
# ifdef DL_LAZY |
# define LT_DLLAZY_OR_NOW DL_LAZY |
# else |
# ifdef RTLD_NOW |
# define LT_DLLAZY_OR_NOW RTLD_NOW |
# else |
# ifdef DL_NOW |
# define LT_DLLAZY_OR_NOW DL_NOW |
# else |
# define LT_DLLAZY_OR_NOW 0 |
# endif |
# endif |
# endif |
# endif |
#endif |
#ifdef __cplusplus |
extern "C" void exit (int); |
#endif |
void fnord() { int i=42;} |
int main () |
{ |
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); |
int status = $lt_dlunknown; |
if (self) |
{ |
if (dlsym (self,"fnord")) status = $lt_dlno_uscore; |
else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; |
/* dlclose (self); */ |
} |
exit (status); |
}] |
EOF |
if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then |
(./conftest; exit; ) 2>/dev/null |
lt_status=$? |
case x$lt_status in |
x$lt_dlno_uscore) $1 ;; |
x$lt_dlneed_uscore) $2 ;; |
x$lt_unknown|x*) $3 ;; |
esac |
else : |
# compilation failed |
$3 |
fi |
fi |
rm -fr conftest* |
])# _LT_AC_TRY_DLOPEN_SELF |
# AC_LIBTOOL_DLOPEN_SELF |
# ------------------- |
AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], |
[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl |
if test "x$enable_dlopen" != xyes; then |
enable_dlopen=unknown |
enable_dlopen_self=unknown |
enable_dlopen_self_static=unknown |
else |
lt_cv_dlopen=no |
lt_cv_dlopen_libs= |
case $host_os in |
beos*) |
lt_cv_dlopen="load_add_on" |
lt_cv_dlopen_libs= |
lt_cv_dlopen_self=yes |
;; |
mingw* | pw32*) |
lt_cv_dlopen="LoadLibrary" |
lt_cv_dlopen_libs= |
;; |
cygwin*) |
lt_cv_dlopen="dlopen" |
lt_cv_dlopen_libs= |
;; |
darwin*) |
# if libdl is installed we need to link against it |
AC_CHECK_LIB([dl], [dlopen], |
[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ |
lt_cv_dlopen="dyld" |
lt_cv_dlopen_libs= |
lt_cv_dlopen_self=yes |
]) |
;; |
*) |
AC_CHECK_FUNC([shl_load], |
[lt_cv_dlopen="shl_load"], |
[AC_CHECK_LIB([dld], [shl_load], |
[lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], |
[AC_CHECK_FUNC([dlopen], |
[lt_cv_dlopen="dlopen"], |
[AC_CHECK_LIB([dl], [dlopen], |
[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], |
[AC_CHECK_LIB([svld], [dlopen], |
[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], |
[AC_CHECK_LIB([dld], [dld_link], |
[lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) |
]) |
]) |
]) |
]) |
]) |
;; |
esac |
if test "x$lt_cv_dlopen" != xno; then |
enable_dlopen=yes |
else |
enable_dlopen=no |
fi |
case $lt_cv_dlopen in |
dlopen) |
save_CPPFLAGS="$CPPFLAGS" |
test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" |
save_LDFLAGS="$LDFLAGS" |
eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" |
save_LIBS="$LIBS" |
LIBS="$lt_cv_dlopen_libs $LIBS" |
AC_CACHE_CHECK([whether a program can dlopen itself], |
lt_cv_dlopen_self, [dnl |
_LT_AC_TRY_DLOPEN_SELF( |
lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, |
lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) |
]) |
if test "x$lt_cv_dlopen_self" = xyes; then |
LDFLAGS="$LDFLAGS $link_static_flag" |
AC_CACHE_CHECK([whether a statically linked program can dlopen itself], |
lt_cv_dlopen_self_static, [dnl |
_LT_AC_TRY_DLOPEN_SELF( |
lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, |
lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) |
]) |
fi |
CPPFLAGS="$save_CPPFLAGS" |
LDFLAGS="$save_LDFLAGS" |
LIBS="$save_LIBS" |
;; |
esac |
case $lt_cv_dlopen_self in |
yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; |
*) enable_dlopen_self=unknown ;; |
esac |
case $lt_cv_dlopen_self_static in |
yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; |
*) enable_dlopen_self_static=unknown ;; |
esac |
fi |
])# AC_LIBTOOL_DLOPEN_SELF |
# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) |
# --------------------------------- |
# Check to see if options -c and -o are simultaneously supported by compiler |
AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], |
[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl |
AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], |
[_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], |
[_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no |
$rm -r conftest 2>/dev/null |
mkdir conftest |
cd conftest |
mkdir out |
printf "$lt_simple_compile_test_code" > conftest.$ac_ext |
# According to Tom Tromey, Ian Lance Taylor reported there are C compilers |
# that will create temporary files in the current directory regardless of |
# the output directory. Thus, making CWD read-only will cause this test |
# to fail, enabling locking or at least warning the user not to do parallel |
# builds. |
chmod -w . |
lt_compiler_flag="-o out/conftest2.$ac_objext" |
# Insert the option either (1) after the last *FLAGS variable, or |
# (2) before a word containing "conftest.", or (3) at the end. |
# Note that $ac_compile itself does not contain backslashes and begins |
# with a dollar sign (not a hyphen), so the echo should work correctly. |
lt_compile=`echo "$ac_compile" | $SED \ |
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ |
-e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ |
-e 's:$: $lt_compiler_flag:'` |
(eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) |
(eval "$lt_compile" 2>out/conftest.err) |
ac_status=$? |
cat out/conftest.err >&AS_MESSAGE_LOG_FD |
echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD |
if (exit $ac_status) && test -s out/conftest2.$ac_objext |
then |
# The compiler can only warn and ignore the option if not recognized |
# So say no if there are warnings |
if test ! -s out/conftest.err; then |
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes |
fi |
fi |
chmod u+w . |
$rm conftest* out/* |
rmdir out |
cd .. |
rmdir conftest |
$rm conftest* |
]) |
])# AC_LIBTOOL_PROG_CC_C_O |
# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) |
# ----------------------------------------- |
# Check to see if we can do hard links to lock some files if needed |
AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], |
[AC_REQUIRE([_LT_AC_LOCK])dnl |
hard_links="nottested" |
if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then |
# do not overwrite the value of need_locks provided by the user |
AC_MSG_CHECKING([if we can lock with hard links]) |
hard_links=yes |
$rm conftest* |
ln conftest.a conftest.b 2>/dev/null && hard_links=no |
touch conftest.a |
ln conftest.a conftest.b 2>&5 || hard_links=no |
ln conftest.a conftest.b 2>/dev/null && hard_links=no |
AC_MSG_RESULT([$hard_links]) |
if test "$hard_links" = no; then |
AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) |
need_locks=warn |
fi |
else |
need_locks=no |
fi |
])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS |
# AC_LIBTOOL_OBJDIR |
# ----------------- |
AC_DEFUN([AC_LIBTOOL_OBJDIR], |
[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], |
[rm -f .libs 2>/dev/null |
mkdir .libs 2>/dev/null |
if test -d .libs; then |
lt_cv_objdir=.libs |
else |
# MS-DOS does not allow filenames that begin with a dot. |
lt_cv_objdir=_libs |
fi |
rmdir .libs 2>/dev/null]) |
objdir=$lt_cv_objdir |
])# AC_LIBTOOL_OBJDIR |
# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) |
# ---------------------------------------------- |
# Check hardcoding attributes. |
AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], |
[AC_MSG_CHECKING([how to hardcode library paths into programs]) |
_LT_AC_TAGVAR(hardcode_action, $1)= |
if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ |
test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ |
test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then |
# We can hardcode non-existant directories. |
if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && |
# If the only mechanism to avoid hardcoding is shlibpath_var, we |
# have to relink, otherwise we might link with an installed library |
# when we should be linking with a yet-to-be-installed one |
## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && |
test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then |
# Linking always hardcodes the temporary library directory. |
_LT_AC_TAGVAR(hardcode_action, $1)=relink |
else |
# We can link without hardcoding, and we can hardcode nonexisting dirs. |
_LT_AC_TAGVAR(hardcode_action, $1)=immediate |
fi |
else |
# We cannot hardcode anything, or else we can only hardcode existing |
# directories. |
_LT_AC_TAGVAR(hardcode_action, $1)=unsupported |
fi |
AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) |
if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then |
# Fast installation is not supported |
enable_fast_install=no |
elif test "$shlibpath_overrides_runpath" = yes || |
test "$enable_shared" = no; then |
# Fast installation is not necessary |
enable_fast_install=needless |
fi |
])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH |
# AC_LIBTOOL_SYS_LIB_STRIP |
# ------------------------ |
AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], |
[striplib= |
old_striplib= |
AC_MSG_CHECKING([whether stripping libraries is possible]) |
if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then |
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" |
test -z "$striplib" && striplib="$STRIP --strip-unneeded" |
AC_MSG_RESULT([yes]) |
else |
# FIXME - insert some real tests, host_os isn't really good enough |
case $host_os in |
darwin*) |
if test -n "$STRIP" ; then |
striplib="$STRIP -x" |
AC_MSG_RESULT([yes]) |
else |
AC_MSG_RESULT([no]) |
fi |
;; |
*) |
AC_MSG_RESULT([no]) |
;; |
esac |
fi |
])# AC_LIBTOOL_SYS_LIB_STRIP |
# AC_LIBTOOL_SYS_DYNAMIC_LINKER |
# ----------------------------- |
# PORTME Fill in your ld.so characteristics |
AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], |
[AC_MSG_CHECKING([dynamic linker characteristics]) |
library_names_spec= |
libname_spec='lib$name' |
soname_spec= |
shrext=".so" |
postinstall_cmds= |
postuninstall_cmds= |
finish_cmds= |
finish_eval= |
shlibpath_var= |
shlibpath_overrides_runpath=unknown |
version_type=none |
dynamic_linker="$host_os ld.so" |
sys_lib_dlsearch_path_spec="/lib /usr/lib" |
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" |
need_lib_prefix=unknown |
hardcode_into_libs=no |
# when you set need_version to no, make sure it does not cause -set_version |
# flags to be left without arguments |
need_version=unknown |
case $host_os in |
aix3*) |
version_type=linux |
library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' |
shlibpath_var=LIBPATH |
# AIX 3 has no versioning support, so we append a major version to the name. |
soname_spec='${libname}${release}${shared_ext}$major' |
;; |
aix4* | aix5*) |
version_type=linux |
need_lib_prefix=no |
need_version=no |
hardcode_into_libs=yes |
if test "$host_cpu" = ia64; then |
# AIX 5 supports IA64 |
library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' |
shlibpath_var=LD_LIBRARY_PATH |
else |
# With GCC up to 2.95.x, collect2 would create an import file |
# for dependence libraries. The import file would start with |
# the line `#! .'. This would cause the generated library to |
# depend on `.', always an invalid library. This was fixed in |
# development snapshots of GCC prior to 3.0. |
case $host_os in |
aix4 | aix4.[[01]] | aix4.[[01]].*) |
if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' |
echo ' yes ' |
echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then |
: |
else |
can_build_shared=no |
fi |
;; |
esac |
# AIX (on Power*) has no versioning support, so currently we can not hardcode correct |
# soname into executable. Probably we can add versioning support to |
# collect2, so additional links can be useful in future. |
if test "$aix_use_runtimelinking" = yes; then |
# If using run time linking (on AIX 4.2 or later) use lib<name>.so |
# instead of lib<name>.a to let people know that these are not |
# typical AIX shared libraries. |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
else |
# We preserve .a as extension for shared libraries through AIX4.2 |
# and later when we are not doing run time linking. |
library_names_spec='${libname}${release}.a $libname.a' |
soname_spec='${libname}${release}${shared_ext}$major' |
fi |
shlibpath_var=LIBPATH |
fi |
;; |
amigaos*) |
library_names_spec='$libname.ixlibrary $libname.a' |
# Create ${libname}_ixlibrary.a entries in /sys/libs. |
finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' |
;; |
beos*) |
library_names_spec='${libname}${shared_ext}' |
dynamic_linker="$host_os ld.so" |
shlibpath_var=LIBRARY_PATH |
;; |
bsdi4*) |
version_type=linux |
need_version=no |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' |
shlibpath_var=LD_LIBRARY_PATH |
sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" |
sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" |
# the default ld.so.conf also contains /usr/contrib/lib and |
# /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow |
# libtool to hard-code these into programs |
;; |
cygwin* | mingw* | pw32*) |
version_type=windows |
shrext=".dll" |
need_version=no |
need_lib_prefix=no |
case $GCC,$host_os in |
yes,cygwin* | yes,mingw* | yes,pw32*) |
library_names_spec='$libname.dll.a' |
# DLL is installed to $(libdir)/../bin by postinstall_cmds |
postinstall_cmds='base_file=`basename \${file}`~ |
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ |
dldir=$destdir/`dirname \$dlpath`~ |
test -d \$dldir || mkdir -p \$dldir~ |
$install_prog $dir/$dlname \$dldir/$dlname' |
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ |
dlpath=$dir/\$dldll~ |
$rm \$dlpath' |
shlibpath_overrides_runpath=yes |
case $host_os in |
cygwin*) |
# Cygwin DLLs use 'cyg' prefix rather than 'lib' |
soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' |
sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" |
;; |
mingw*) |
# MinGW DLLs use traditional 'lib' prefix |
soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' |
sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` |
if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then |
# It is most probably a Windows format PATH printed by |
# mingw gcc, but we are running on Cygwin. Gcc prints its search |
# path with ; separators, and with drive letters. We can handle the |
# drive letters (cygwin fileutils understands them), so leave them, |
# especially as we might pass files found there to a mingw objdump, |
# which wouldn't understand a cygwinified path. Ahh. |
sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` |
else |
sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` |
fi |
;; |
pw32*) |
# pw32 DLLs use 'pw' prefix rather than 'lib' |
library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' |
;; |
esac |
;; |
*) |
library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' |
;; |
esac |
dynamic_linker='Win32 ld.exe' |
# FIXME: first we should search . and the directory the executable is in |
shlibpath_var=PATH |
;; |
darwin* | rhapsody*) |
dynamic_linker="$host_os dyld" |
version_type=darwin |
need_lib_prefix=no |
need_version=no |
library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' |
soname_spec='${libname}${release}${major}$shared_ext' |
shlibpath_overrides_runpath=yes |
shlibpath_var=DYLD_LIBRARY_PATH |
shrext='$(test .$module = .yes && echo .so || echo .dylib)' |
# Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. |
if test "$GCC" = yes; then |
sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` |
else |
sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' |
fi |
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' |
;; |
dgux*) |
version_type=linux |
need_lib_prefix=no |
need_version=no |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' |
soname_spec='${libname}${release}${shared_ext}$major' |
shlibpath_var=LD_LIBRARY_PATH |
;; |
freebsd1*) |
dynamic_linker=no |
;; |
kfreebsd*-gnu*) |
version_type=linux |
need_lib_prefix=no |
need_version=no |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
shlibpath_var=LD_LIBRARY_PATH |
shlibpath_overrides_runpath=no |
hardcode_into_libs=yes |
dynamic_linker='GNU ld.so' |
;; |
freebsd*) |
objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` |
version_type=freebsd-$objformat |
case $version_type in |
freebsd-elf*) |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' |
need_version=no |
need_lib_prefix=no |
;; |
freebsd-*) |
library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' |
need_version=yes |
;; |
esac |
shlibpath_var=LD_LIBRARY_PATH |
case $host_os in |
freebsd2*) |
shlibpath_overrides_runpath=yes |
;; |
freebsd3.[01]* | freebsdelf3.[01]*) |
shlibpath_overrides_runpath=yes |
hardcode_into_libs=yes |
;; |
*) # from 3.2 on |
shlibpath_overrides_runpath=no |
hardcode_into_libs=yes |
;; |
esac |
;; |
gnu*) |
version_type=linux |
need_lib_prefix=no |
need_version=no |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
shlibpath_var=LD_LIBRARY_PATH |
hardcode_into_libs=yes |
;; |
hpux9* | hpux10* | hpux11*) |
# Give a soname corresponding to the major version so that dld.sl refuses to |
# link against other versions. |
version_type=sunos |
need_lib_prefix=no |
need_version=no |
case "$host_cpu" in |
ia64*) |
shrext='.so' |
hardcode_into_libs=yes |
dynamic_linker="$host_os dld.so" |
shlibpath_var=LD_LIBRARY_PATH |
shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
if test "X$HPUX_IA64_MODE" = X32; then |
sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" |
else |
sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" |
fi |
sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec |
;; |
hppa*64*) |
shrext='.sl' |
hardcode_into_libs=yes |
dynamic_linker="$host_os dld.sl" |
shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH |
shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" |
sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec |
;; |
*) |
shrext='.sl' |
dynamic_linker="$host_os dld.sl" |
shlibpath_var=SHLIB_PATH |
shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
;; |
esac |
# HP-UX runs *really* slowly unless shared libraries are mode 555. |
postinstall_cmds='chmod 555 $lib' |
;; |
irix5* | irix6* | nonstopux*) |
case $host_os in |
nonstopux*) version_type=nonstopux ;; |
*) |
if test "$lt_cv_prog_gnu_ld" = yes; then |
version_type=linux |
else |
version_type=irix |
fi ;; |
esac |
need_lib_prefix=no |
need_version=no |
soname_spec='${libname}${release}${shared_ext}$major' |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' |
case $host_os in |
irix5* | nonstopux*) |
libsuff= shlibsuff= |
;; |
*) |
case $LD in # libtool.m4 will add one of these switches to LD |
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") |
libsuff= shlibsuff= libmagic=32-bit;; |
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") |
libsuff=32 shlibsuff=N32 libmagic=N32;; |
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") |
libsuff=64 shlibsuff=64 libmagic=64-bit;; |
*) libsuff= shlibsuff= libmagic=never-match;; |
esac |
;; |
esac |
shlibpath_var=LD_LIBRARY${shlibsuff}_PATH |
shlibpath_overrides_runpath=no |
sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" |
sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" |
hardcode_into_libs=yes |
;; |
# No shared lib support for Linux oldld, aout, or coff. |
linux*oldld* | linux*aout* | linux*coff*) |
dynamic_linker=no |
;; |
# This must be Linux ELF. |
linux*) |
version_type=linux |
need_lib_prefix=no |
need_version=no |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' |
libsuff= |
if test "x$LINUX_64_MODE" = x64; then |
# Some platforms are per default 64-bit, so there's no /lib64 |
if test -d /lib64 -a ! -h /lib64; then |
libsuff=64 |
fi |
fi |
shlibpath_var=LD_LIBRARY_PATH |
shlibpath_overrides_runpath=no |
sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" |
sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" |
# This implies no fast_install, which is unacceptable. |
# Some rework will be needed to allow for fast_install |
# before this can be enabled. |
hardcode_into_libs=yes |
# We used to test for /lib/ld.so.1 and disable shared libraries on |
# powerpc, because MkLinux only supported shared libraries with the |
# GNU dynamic linker. Since this was broken with cross compilers, |
# most powerpc-linux boxes support dynamic linking these days and |
# people can always --disable-shared, the test was removed, and we |
# assume the GNU/Linux dynamic linker is in use. |
dynamic_linker='GNU/Linux ld.so' |
;; |
netbsd*) |
version_type=sunos |
need_lib_prefix=no |
need_version=no |
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' |
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' |
dynamic_linker='NetBSD (a.out) ld.so' |
else |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
dynamic_linker='NetBSD ld.elf_so' |
fi |
shlibpath_var=LD_LIBRARY_PATH |
shlibpath_overrides_runpath=yes |
hardcode_into_libs=yes |
;; |
newsos6) |
version_type=linux |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
shlibpath_var=LD_LIBRARY_PATH |
shlibpath_overrides_runpath=yes |
;; |
nto-qnx*) |
version_type=linux |
need_lib_prefix=no |
need_version=no |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
shlibpath_var=LD_LIBRARY_PATH |
shlibpath_overrides_runpath=yes |
;; |
openbsd*) |
version_type=sunos |
need_lib_prefix=no |
need_version=no |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' |
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' |
shlibpath_var=LD_LIBRARY_PATH |
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then |
case $host_os in |
openbsd2.[[89]] | openbsd2.[[89]].*) |
shlibpath_overrides_runpath=no |
;; |
*) |
shlibpath_overrides_runpath=yes |
;; |
esac |
else |
shlibpath_overrides_runpath=yes |
fi |
;; |
os2*) |
libname_spec='$name' |
shrext=".dll" |
need_lib_prefix=no |
library_names_spec='$libname${shared_ext} $libname.a' |
dynamic_linker='OS/2 ld.exe' |
shlibpath_var=LIBPATH |
;; |
osf3* | osf4* | osf5*) |
version_type=osf |
need_lib_prefix=no |
need_version=no |
soname_spec='${libname}${release}${shared_ext}$major' |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
shlibpath_var=LD_LIBRARY_PATH |
sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" |
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" |
;; |
sco3.2v5*) |
version_type=osf |
soname_spec='${libname}${release}${shared_ext}$major' |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
shlibpath_var=LD_LIBRARY_PATH |
;; |
solaris*) |
version_type=linux |
need_lib_prefix=no |
need_version=no |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
shlibpath_var=LD_LIBRARY_PATH |
shlibpath_overrides_runpath=yes |
hardcode_into_libs=yes |
# ldd complains unless libraries are executable |
postinstall_cmds='chmod +x $lib' |
;; |
sunos4*) |
version_type=sunos |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' |
finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' |
shlibpath_var=LD_LIBRARY_PATH |
shlibpath_overrides_runpath=yes |
if test "$with_gnu_ld" = yes; then |
need_lib_prefix=no |
fi |
need_version=yes |
;; |
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) |
version_type=linux |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
shlibpath_var=LD_LIBRARY_PATH |
case $host_vendor in |
sni) |
shlibpath_overrides_runpath=no |
need_lib_prefix=no |
export_dynamic_flag_spec='${wl}-Blargedynsym' |
runpath_var=LD_RUN_PATH |
;; |
siemens) |
need_lib_prefix=no |
;; |
motorola) |
need_lib_prefix=no |
need_version=no |
shlibpath_overrides_runpath=no |
sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' |
;; |
esac |
;; |
sysv4*MP*) |
if test -d /usr/nec ;then |
version_type=linux |
library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' |
soname_spec='$libname${shared_ext}.$major' |
shlibpath_var=LD_LIBRARY_PATH |
fi |
;; |
uts4*) |
version_type=linux |
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' |
soname_spec='${libname}${release}${shared_ext}$major' |
shlibpath_var=LD_LIBRARY_PATH |
;; |
*) |
dynamic_linker=no |
;; |
esac |
AC_MSG_RESULT([$dynamic_linker]) |
test "$dynamic_linker" = no && can_build_shared=no |
])# AC_LIBTOOL_SYS_DYNAMIC_LINKER |
# _LT_AC_TAGCONFIG |
# ---------------- |
AC_DEFUN([_LT_AC_TAGCONFIG], |
[AC_ARG_WITH([tags], |
[AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], |
[include additional configurations @<:@automatic@:>@])], |
[tagnames="$withval"]) |
if test -f "$ltmain" && test -n "$tagnames"; then |
if test ! -f "${ofile}"; then |
AC_MSG_WARN([output file `$ofile' does not exist]) |
fi |
if test -z "$LTCC"; then |
eval "`$SHELL ${ofile} --config | grep '^LTCC='`" |
if test -z "$LTCC"; then |
AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) |
else |
AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) |
fi |
fi |
# Extract list of available tagged configurations in $ofile. |
# Note that this assumes the entire list is on one line. |
available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` |
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," |
for tagname in $tagnames; do |
IFS="$lt_save_ifs" |
# Check whether tagname contains only valid characters |
case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in |
"") ;; |
*) AC_MSG_ERROR([invalid tag name: $tagname]) |
;; |
esac |
if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null |
then |
AC_MSG_ERROR([tag name \"$tagname\" already exists]) |
fi |
# Update the list of available tags. |
if test -n "$tagname"; then |
echo appending configuration tag \"$tagname\" to $ofile |
case $tagname in |
CXX) |
if test -n "$CXX" && test "X$CXX" != "Xno"; then |
AC_LIBTOOL_LANG_CXX_CONFIG |
else |
tagname="" |
fi |
;; |
F77) |
if test -n "$F77" && test "X$F77" != "Xno"; then |
AC_LIBTOOL_LANG_F77_CONFIG |
else |
tagname="" |
fi |
;; |
GCJ) |
if test -n "$GCJ" && test "X$GCJ" != "Xno"; then |
AC_LIBTOOL_LANG_GCJ_CONFIG |
else |
tagname="" |
fi |
;; |
RC) |
AC_LIBTOOL_LANG_RC_CONFIG |
;; |
*) |
AC_MSG_ERROR([Unsupported tag name: $tagname]) |
;; |
esac |
# Append the new tag name to the list of available tags. |
if test -n "$tagname" ; then |
available_tags="$available_tags $tagname" |
fi |
fi |
done |
IFS="$lt_save_ifs" |
# Now substitute the updated list of available tags. |
if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then |
mv "${ofile}T" "$ofile" |
chmod +x "$ofile" |
else |
rm -f "${ofile}T" |
AC_MSG_ERROR([unable to update list of available tagged configurations.]) |
fi |
fi |
])# _LT_AC_TAGCONFIG |
# AC_LIBTOOL_DLOPEN |
# ----------------- |
# enable checks for dlopen support |
AC_DEFUN([AC_LIBTOOL_DLOPEN], |
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) |
])# AC_LIBTOOL_DLOPEN |
# AC_LIBTOOL_WIN32_DLL |
# -------------------- |
# declare package support for building win32 dll's |
AC_DEFUN([AC_LIBTOOL_WIN32_DLL], |
[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) |
])# AC_LIBTOOL_WIN32_DLL |
# AC_ENABLE_SHARED([DEFAULT]) |
# --------------------------- |
# implement the --enable-shared flag |
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. |
AC_DEFUN([AC_ENABLE_SHARED], |
[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl |
AC_ARG_ENABLE([shared], |
[AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], |
[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], |
[p=${PACKAGE-default} |
case $enableval in |
yes) enable_shared=yes ;; |
no) enable_shared=no ;; |
*) |
enable_shared=no |
# Look at the argument we got. We use all the common list separators. |
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," |
for pkg in $enableval; do |
IFS="$lt_save_ifs" |
if test "X$pkg" = "X$p"; then |
enable_shared=yes |
fi |
done |
IFS="$lt_save_ifs" |
;; |
esac], |
[enable_shared=]AC_ENABLE_SHARED_DEFAULT) |
])# AC_ENABLE_SHARED |
# AC_DISABLE_SHARED |
# ----------------- |
#- set the default shared flag to --disable-shared |
AC_DEFUN([AC_DISABLE_SHARED], |
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl |
AC_ENABLE_SHARED(no) |
])# AC_DISABLE_SHARED |
# AC_ENABLE_STATIC([DEFAULT]) |
# --------------------------- |
# implement the --enable-static flag |
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. |
AC_DEFUN([AC_ENABLE_STATIC], |
[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl |
AC_ARG_ENABLE([static], |
[AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], |
[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], |
[p=${PACKAGE-default} |
case $enableval in |
yes) enable_static=yes ;; |
no) enable_static=no ;; |
*) |
enable_static=no |
# Look at the argument we got. We use all the common list separators. |
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," |
for pkg in $enableval; do |
IFS="$lt_save_ifs" |
if test "X$pkg" = "X$p"; then |
enable_static=yes |
fi |
done |
IFS="$lt_save_ifs" |
;; |
esac], |
[enable_static=]AC_ENABLE_STATIC_DEFAULT) |
])# AC_ENABLE_STATIC |
# AC_DISABLE_STATIC |
# ----------------- |
# set the default static flag to --disable-static |
AC_DEFUN([AC_DISABLE_STATIC], |
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl |
AC_ENABLE_STATIC(no) |
])# AC_DISABLE_STATIC |
# AC_ENABLE_FAST_INSTALL([DEFAULT]) |
# --------------------------------- |
# implement the --enable-fast-install flag |
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. |
AC_DEFUN([AC_ENABLE_FAST_INSTALL], |
[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl |
AC_ARG_ENABLE([fast-install], |
[AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], |
[optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], |
[p=${PACKAGE-default} |
case $enableval in |
yes) enable_fast_install=yes ;; |
no) enable_fast_install=no ;; |
*) |
enable_fast_install=no |
# Look at the argument we got. We use all the common list separators. |
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," |
for pkg in $enableval; do |
IFS="$lt_save_ifs" |
if test "X$pkg" = "X$p"; then |
enable_fast_install=yes |
fi |
done |
IFS="$lt_save_ifs" |
;; |
esac], |
[enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) |
])# AC_ENABLE_FAST_INSTALL |
# AC_DISABLE_FAST_INSTALL |
# ----------------------- |
# set the default to --disable-fast-install |
AC_DEFUN([AC_DISABLE_FAST_INSTALL], |
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl |
AC_ENABLE_FAST_INSTALL(no) |
])# AC_DISABLE_FAST_INSTALL |
# AC_LIBTOOL_PICMODE([MODE]) |
# -------------------------- |
# implement the --with-pic flag |
# MODE is either `yes' or `no'. If omitted, it defaults to `both'. |
AC_DEFUN([AC_LIBTOOL_PICMODE], |
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl |
pic_mode=ifelse($#,1,$1,default) |
])# AC_LIBTOOL_PICMODE |
# AC_PROG_EGREP |
# ------------- |
# This is predefined starting with Autoconf 2.54, so this conditional |
# definition can be removed once we require Autoconf 2.54 or later. |
m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], |
[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], |
[if echo a | (grep -E '(a|b)') >/dev/null 2>&1 |
then ac_cv_prog_egrep='grep -E' |
else ac_cv_prog_egrep='egrep' |
fi]) |
EGREP=$ac_cv_prog_egrep |
AC_SUBST([EGREP]) |
])]) |
# AC_PATH_TOOL_PREFIX |
# ------------------- |
# find a file program which can recognise shared library |
AC_DEFUN([AC_PATH_TOOL_PREFIX], |
[AC_REQUIRE([AC_PROG_EGREP])dnl |
AC_MSG_CHECKING([for $1]) |
AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, |
[case $MAGIC_CMD in |
[[\\/*] | ?:[\\/]*]) |
lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. |
;; |
*) |
lt_save_MAGIC_CMD="$MAGIC_CMD" |
lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR |
dnl $ac_dummy forces splitting on constant user-supplied paths. |
dnl POSIX.2 word splitting is done only on the output of word expansions, |
dnl not every word. This closes a longstanding sh security hole. |
ac_dummy="ifelse([$2], , $PATH, [$2])" |
for ac_dir in $ac_dummy; do |
IFS="$lt_save_ifs" |
test -z "$ac_dir" && ac_dir=. |
if test -f $ac_dir/$1; then |
lt_cv_path_MAGIC_CMD="$ac_dir/$1" |
if test -n "$file_magic_test_file"; then |
case $deplibs_check_method in |
"file_magic "*) |
file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" |
MAGIC_CMD="$lt_cv_path_MAGIC_CMD" |
if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | |
$EGREP "$file_magic_regex" > /dev/null; then |
: |
else |
cat <<EOF 1>&2 |
*** Warning: the command libtool uses to detect shared libraries, |
*** $file_magic_cmd, produces output that libtool cannot recognize. |
*** The result is that libtool may fail to recognize shared libraries |
*** as such. This will affect the creation of libtool libraries that |
*** depend on shared libraries, but programs linked with such libtool |
*** libraries will work regardless of this problem. Nevertheless, you |
*** may want to report the problem to your system manager and/or to |
*** bug-libtool@gnu.org |
EOF |
fi ;; |
esac |
fi |
break |
fi |
done |
IFS="$lt_save_ifs" |
MAGIC_CMD="$lt_save_MAGIC_CMD" |
;; |
esac]) |
MAGIC_CMD="$lt_cv_path_MAGIC_CMD" |
if test -n "$MAGIC_CMD"; then |
AC_MSG_RESULT($MAGIC_CMD) |
else |
AC_MSG_RESULT(no) |
fi |
])# AC_PATH_TOOL_PREFIX |
# AC_PATH_MAGIC |
# ------------- |
# find a file program which can recognise a shared library |
AC_DEFUN([AC_PATH_MAGIC], |
[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) |
if test -z "$lt_cv_path_MAGIC_CMD"; then |
if test -n "$ac_tool_prefix"; then |
AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) |
else |
MAGIC_CMD=: |
fi |
fi |
])# AC_PATH_MAGIC |
# AC_PROG_LD |
# ---------- |
# find the pathname to the GNU or non-GNU linker |
AC_DEFUN([AC_PROG_LD], |
[AC_ARG_WITH([gnu-ld], |
[AC_HELP_STRING([--with-gnu-ld], |
[assume the C compiler uses GNU ld @<:@default=no@:>@])], |
[test "$withval" = no || with_gnu_ld=yes], |
[with_gnu_ld=no]) |
AC_REQUIRE([LT_AC_PROG_SED])dnl |
AC_REQUIRE([AC_PROG_CC])dnl |
AC_REQUIRE([AC_CANONICAL_HOST])dnl |
AC_REQUIRE([AC_CANONICAL_BUILD])dnl |
ac_prog=ld |
if test "$GCC" = yes; then |
# Check if gcc -print-prog-name=ld gives a path. |
AC_MSG_CHECKING([for ld used by $CC]) |
case $host in |
*-*-mingw*) |
# gcc leaves a trailing carriage return which upsets mingw |
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; |
*) |
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; |
esac |
case $ac_prog in |
# Accept absolute paths. |
[[\\/]]* | ?:[[\\/]]*) |
re_direlt='/[[^/]][[^/]]*/\.\./' |
# Canonicalize the pathname of ld |
ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` |
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do |
ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` |
done |
test -z "$LD" && LD="$ac_prog" |
;; |
"") |
# If it fails, then pretend we aren't using GCC. |
ac_prog=ld |
;; |
*) |
# If it is relative, then search for the first ld in PATH. |
with_gnu_ld=unknown |
;; |
esac |
elif test "$with_gnu_ld" = yes; then |
AC_MSG_CHECKING([for GNU ld]) |
else |
AC_MSG_CHECKING([for non-GNU ld]) |
fi |
AC_CACHE_VAL(lt_cv_path_LD, |
[if test -z "$LD"; then |
lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR |
for ac_dir in $PATH; do |
IFS="$lt_save_ifs" |
test -z "$ac_dir" && ac_dir=. |
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then |
lt_cv_path_LD="$ac_dir/$ac_prog" |
# Check to see if the program is GNU ld. I'd rather use --version, |
# but apparently some GNU ld's only accept -v. |
# Break only if it was the GNU/non-GNU ld that we prefer. |
case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in |
*GNU* | *'with BFD'*) |
test "$with_gnu_ld" != no && break |
;; |
*) |
test "$with_gnu_ld" != yes && break |
;; |
esac |
fi |
done |
IFS="$lt_save_ifs" |
else |
lt_cv_path_LD="$LD" # Let the user override the test with a path. |
fi]) |
LD="$lt_cv_path_LD" |
if test -n "$LD"; then |
AC_MSG_RESULT($LD) |
else |
AC_MSG_RESULT(no) |
fi |
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) |
AC_PROG_LD_GNU |
])# AC_PROG_LD |
# AC_PROG_LD_GNU |
# -------------- |
AC_DEFUN([AC_PROG_LD_GNU], |
[AC_REQUIRE([AC_PROG_EGREP])dnl |
AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, |
[# I'd rather use --version here, but apparently some GNU ld's only accept -v. |
case `$LD -v 2>&1 </dev/null` in |
*GNU* | *'with BFD'*) |
lt_cv_prog_gnu_ld=yes |
;; |
*) |
lt_cv_prog_gnu_ld=no |
;; |
esac]) |
with_gnu_ld=$lt_cv_prog_gnu_ld |
])# AC_PROG_LD_GNU |
# AC_PROG_LD_RELOAD_FLAG |
# ---------------------- |
# find reload flag for linker |
# -- PORTME Some linkers may need a different reload flag. |
AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], |
[AC_CACHE_CHECK([for $LD option to reload object files], |
lt_cv_ld_reload_flag, |
[lt_cv_ld_reload_flag='-r']) |
reload_flag=$lt_cv_ld_reload_flag |
case $reload_flag in |
"" | " "*) ;; |
*) reload_flag=" $reload_flag" ;; |
esac |
reload_cmds='$LD$reload_flag -o $output$reload_objs' |
])# AC_PROG_LD_RELOAD_FLAG |
# AC_DEPLIBS_CHECK_METHOD |
# ----------------------- |
# how to check for library dependencies |
# -- PORTME fill in with the dynamic library characteristics |
AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], |
[AC_CACHE_CHECK([how to recognise dependent libraries], |
lt_cv_deplibs_check_method, |
[lt_cv_file_magic_cmd='$MAGIC_CMD' |
lt_cv_file_magic_test_file= |
lt_cv_deplibs_check_method='unknown' |
# Need to set the preceding variable on all platforms that support |
# interlibrary dependencies. |
# 'none' -- dependencies not supported. |
# `unknown' -- same as none, but documents that we really don't know. |
# 'pass_all' -- all dependencies passed with no checks. |
# 'test_compile' -- check by making test program. |
# 'file_magic [[regex]]' -- check by looking for files in library path |
# which responds to the $file_magic_cmd with a given extended regex. |
# If you have `file' or equivalent on your system and you're not sure |
# whether `pass_all' will *always* work, you probably want this one. |
case $host_os in |
aix4* | aix5*) |
lt_cv_deplibs_check_method=pass_all |
;; |
beos*) |
lt_cv_deplibs_check_method=pass_all |
;; |
bsdi4*) |
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' |
lt_cv_file_magic_cmd='/usr/bin/file -L' |
lt_cv_file_magic_test_file=/shlib/libc.so |
;; |
cygwin*) |
lt_cv_deplibs_check_method=pass_all |
;; |
mingw* | pw32*) |
# win32_libid is a shell function defined in ltmain.sh |
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' |
lt_cv_file_magic_cmd='win32_libid' |
;; |
darwin* | rhapsody*) |
# this will be overwritten by pass_all, but leave it in just in case |
lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' |
lt_cv_file_magic_cmd='/usr/bin/file -L' |
case "$host_os" in |
rhapsody* | darwin1.[[012]]) |
lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` |
;; |
*) # Darwin 1.3 on |
lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' |
;; |
esac |
lt_cv_deplibs_check_method=pass_all |
;; |
freebsd* | kfreebsd*-gnu) |
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then |
case $host_cpu in |
i*86 ) |
# Not sure whether the presence of OpenBSD here was a mistake. |
# Let's accept both of them until this is cleared up. |
lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' |
lt_cv_file_magic_cmd=/usr/bin/file |
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` |
;; |
esac |
else |
lt_cv_deplibs_check_method=pass_all |
fi |
;; |
gnu*) |
lt_cv_deplibs_check_method=pass_all |
;; |
hpux10.20* | hpux11*) |
lt_cv_file_magic_cmd=/usr/bin/file |
case "$host_cpu" in |
ia64*) |
lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' |
lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so |
;; |
hppa*64*) |
[lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] |
lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl |
;; |
*) |
lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' |
lt_cv_file_magic_test_file=/usr/lib/libc.sl |
;; |
esac |
;; |
irix5* | irix6* | nonstopux*) |
case $host_os in |
irix5* | nonstopux*) |
# this will be overridden with pass_all, but let us keep it just in case |
lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" |
;; |
*) |
case $LD in |
*-32|*"-32 ") libmagic=32-bit;; |
*-n32|*"-n32 ") libmagic=N32;; |
*-64|*"-64 ") libmagic=64-bit;; |
*) libmagic=never-match;; |
esac |
# this will be overridden with pass_all, but let us keep it just in case |
lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" |
;; |
esac |
lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` |
lt_cv_deplibs_check_method=pass_all |
;; |
# This must be Linux ELF. |
linux*) |
case $host_cpu in |
alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* ) |
lt_cv_deplibs_check_method=pass_all ;; |
# the debian people say, arm and glibc 2.3.1 works for them with pass_all |
arm* ) |
lt_cv_deplibs_check_method=pass_all ;; |
*) |
# glibc up to 2.1.1 does not perform some relocations on ARM |
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; |
esac |
lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` |
;; |
netbsd*) |
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then |
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' |
else |
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' |
fi |
;; |
newos6*) |
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' |
lt_cv_file_magic_cmd=/usr/bin/file |
lt_cv_file_magic_test_file=/usr/lib/libnls.so |
;; |
nto-qnx*) |
lt_cv_deplibs_check_method=unknown |
;; |
openbsd*) |
lt_cv_file_magic_cmd=/usr/bin/file |
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` |
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then |
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' |
else |
lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' |
fi |
;; |
osf3* | osf4* | osf5*) |
# this will be overridden with pass_all, but let us keep it just in case |
lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' |
lt_cv_file_magic_test_file=/shlib/libc.so |
lt_cv_deplibs_check_method=pass_all |
;; |
sco3.2v5*) |
lt_cv_deplibs_check_method=pass_all |
;; |
solaris*) |
lt_cv_deplibs_check_method=pass_all |
lt_cv_file_magic_test_file=/lib/libc.so |
;; |
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) |
case $host_vendor in |
motorola) |
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' |
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` |
;; |
ncr) |
lt_cv_deplibs_check_method=pass_all |
;; |
sequent) |
lt_cv_file_magic_cmd='/bin/file' |
lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' |
;; |
sni) |
lt_cv_file_magic_cmd='/bin/file' |
lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" |
lt_cv_file_magic_test_file=/lib/libc.so |
;; |
siemens) |
lt_cv_deplibs_check_method=pass_all |
;; |
esac |
;; |
sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) |
lt_cv_deplibs_check_method=pass_all |
;; |
esac |
]) |
file_magic_cmd=$lt_cv_file_magic_cmd |
deplibs_check_method=$lt_cv_deplibs_check_method |
test -z "$deplibs_check_method" && deplibs_check_method=unknown |
])# AC_DEPLIBS_CHECK_METHOD |
# AC_PROG_NM |
# ---------- |
# find the pathname to a BSD-compatible name lister |
AC_DEFUN([AC_PROG_NM], |
[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, |
[if test -n "$NM"; then |
# Let the user override the test. |
lt_cv_path_NM="$NM" |
else |
lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR |
for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do |
IFS="$lt_save_ifs" |
test -z "$ac_dir" && ac_dir=. |
tmp_nm="$ac_dir/${ac_tool_prefix}nm" |
if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then |
# Check to see if the nm accepts a BSD-compat flag. |
# Adding the `sed 1q' prevents false positives on HP-UX, which says: |
# nm: unknown option "B" ignored |
# Tru64's nm complains that /dev/null is an invalid object file |
case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in |
*/dev/null* | *'Invalid file or object type'*) |
lt_cv_path_NM="$tmp_nm -B" |
break |
;; |
*) |
case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in |
*/dev/null*) |
lt_cv_path_NM="$tmp_nm -p" |
break |
;; |
*) |
lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but |
continue # so that we can try to find one that supports BSD flags |
;; |
esac |
esac |
fi |
done |
IFS="$lt_save_ifs" |
test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm |
fi]) |
NM="$lt_cv_path_NM" |
])# AC_PROG_NM |
# AC_CHECK_LIBM |
# ------------- |
# check for math library |
AC_DEFUN([AC_CHECK_LIBM], |
[AC_REQUIRE([AC_CANONICAL_HOST])dnl |
LIBM= |
case $host in |
*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) |
# These system don't have libm, or don't need it |
;; |
*-ncr-sysv4.3*) |
AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") |
AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") |
;; |
*) |
AC_CHECK_LIB(m, cos, LIBM="-lm") |
;; |
esac |
])# AC_CHECK_LIBM |
# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) |
# ----------------------------------- |
# sets LIBLTDL to the link flags for the libltdl convenience library and |
# LTDLINCL to the include flags for the libltdl header and adds |
# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL |
# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If |
# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will |
# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with |
# '${top_srcdir}/' (note the single quotes!). If your package is not |
# flat and you're not using automake, define top_builddir and |
# top_srcdir appropriately in the Makefiles. |
AC_DEFUN([AC_LIBLTDL_CONVENIENCE], |
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl |
case $enable_ltdl_convenience in |
no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; |
"") enable_ltdl_convenience=yes |
ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; |
esac |
LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la |
LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) |
# For backwards non-gettext consistent compatibility... |
INCLTDL="$LTDLINCL" |
])# AC_LIBLTDL_CONVENIENCE |
# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) |
# ----------------------------------- |
# sets LIBLTDL to the link flags for the libltdl installable library and |
# LTDLINCL to the include flags for the libltdl header and adds |
# --enable-ltdl-install to the configure arguments. Note that LIBLTDL |
# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If |
# DIRECTORY is not provided and an installed libltdl is not found, it is |
# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' |
# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single |
# quotes!). If your package is not flat and you're not using automake, |
# define top_builddir and top_srcdir appropriately in the Makefiles. |
# In the future, this macro may have to be called after AC_PROG_LIBTOOL. |
AC_DEFUN([AC_LIBLTDL_INSTALLABLE], |
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl |
AC_CHECK_LIB(ltdl, lt_dlinit, |
[test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], |
[if test x"$enable_ltdl_install" = xno; then |
AC_MSG_WARN([libltdl not installed, but installation disabled]) |
else |
enable_ltdl_install=yes |
fi |
]) |
if test x"$enable_ltdl_install" = x"yes"; then |
ac_configure_args="$ac_configure_args --enable-ltdl-install" |
LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la |
LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) |
else |
ac_configure_args="$ac_configure_args --enable-ltdl-install=no" |
LIBLTDL="-lltdl" |
LTDLINCL= |
fi |
# For backwards non-gettext consistent compatibility... |
INCLTDL="$LTDLINCL" |
])# AC_LIBLTDL_INSTALLABLE |
# AC_LIBTOOL_CXX |
# -------------- |
# enable support for C++ libraries |
AC_DEFUN([AC_LIBTOOL_CXX], |
[AC_REQUIRE([_LT_AC_LANG_CXX]) |
])# AC_LIBTOOL_CXX |
# _LT_AC_LANG_CXX |
# --------------- |
AC_DEFUN([_LT_AC_LANG_CXX], |
[AC_REQUIRE([AC_PROG_CXX]) |
AC_REQUIRE([AC_PROG_CXXCPP]) |
_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) |
])# _LT_AC_LANG_CXX |
# AC_LIBTOOL_F77 |
# -------------- |
# enable support for Fortran 77 libraries |
AC_DEFUN([AC_LIBTOOL_F77], |
[AC_REQUIRE([_LT_AC_LANG_F77]) |
])# AC_LIBTOOL_F77 |
# _LT_AC_LANG_F77 |
# --------------- |
AC_DEFUN([_LT_AC_LANG_F77], |
[AC_REQUIRE([AC_PROG_F77]) |
_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) |
])# _LT_AC_LANG_F77 |
# AC_LIBTOOL_GCJ |
# -------------- |
# enable support for GCJ libraries |
AC_DEFUN([AC_LIBTOOL_GCJ], |
[AC_REQUIRE([_LT_AC_LANG_GCJ]) |
])# AC_LIBTOOL_GCJ |
# _LT_AC_LANG_GCJ |
# --------------- |
AC_DEFUN([_LT_AC_LANG_GCJ], |
[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], |
[AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], |
[AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], |
[ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], |
[ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], |
[AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) |
_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) |
])# _LT_AC_LANG_GCJ |
# AC_LIBTOOL_RC |
# -------------- |
# enable support for Windows resource files |
AC_DEFUN([AC_LIBTOOL_RC], |
[AC_REQUIRE([LT_AC_PROG_RC]) |
_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) |
])# AC_LIBTOOL_RC |
# AC_LIBTOOL_LANG_C_CONFIG |
# ------------------------ |
# Ensure that the configuration vars for the C compiler are |
# suitably defined. Those variables are subsequently used by |
# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. |
AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) |
AC_DEFUN([_LT_AC_LANG_C_CONFIG], |
[lt_save_CC="$CC" |
AC_LANG_PUSH(C) |
# Source file extension for C test sources. |
ac_ext=c |
# Object file extension for compiled C test sources. |
objext=o |
_LT_AC_TAGVAR(objext, $1)=$objext |
# Code to be used in simple compile tests |
lt_simple_compile_test_code="int some_variable = 0;\n" |
# Code to be used in simple link tests |
lt_simple_link_test_code='int main(){return(0);}\n' |
_LT_AC_SYS_COMPILER |
# |
# Check for any special shared library compilation flags. |
# |
_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= |
if test "$GCC" = no; then |
case $host_os in |
sco3.2v5*) |
_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' |
;; |
esac |
fi |
if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then |
AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) |
if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then : |
else |
AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) |
_LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no |
fi |
fi |
# |
# Check to make sure the static flag actually works. |
# |
AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], |
_LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), |
$_LT_AC_TAGVAR(lt_prog_compiler_static, $1), |
[], |
[_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) |
## CAVEAT EMPTOR: |
## There is no encapsulation within the following macros, do not change |
## the running order or otherwise move them around unless you know exactly |
## what you are doing... |
AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) |
AC_LIBTOOL_PROG_COMPILER_PIC($1) |
AC_LIBTOOL_PROG_CC_C_O($1) |
AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) |
AC_LIBTOOL_PROG_LD_SHLIBS($1) |
AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) |
AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) |
AC_LIBTOOL_SYS_LIB_STRIP |
AC_LIBTOOL_DLOPEN_SELF($1) |
# Report which librarie types wil actually be built |
AC_MSG_CHECKING([if libtool supports shared libraries]) |
AC_MSG_RESULT([$can_build_shared]) |
AC_MSG_CHECKING([whether to build shared libraries]) |
test "$can_build_shared" = "no" && enable_shared=no |
# On AIX, shared libraries and static libraries use the same namespace, and |
# are all built from PIC. |
case "$host_os" in |
aix3*) |
test "$enable_shared" = yes && enable_static=no |
if test -n "$RANLIB"; then |
archive_cmds="$archive_cmds~\$RANLIB \$lib" |
postinstall_cmds='$RANLIB $lib' |
fi |
;; |
aix4*) |
if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then |
test "$enable_shared" = yes && enable_static=no |
fi |
;; |
darwin* | rhapsody*) |
if test "$GCC" = yes; then |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
case "$host_os" in |
rhapsody* | darwin1.[[012]]) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' |
;; |
*) # Darwin 1.3 on |
if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' |
else |
case ${MACOSX_DEPLOYMENT_TARGET} in |
10.[012]) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' |
;; |
10.*) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' |
;; |
esac |
fi |
;; |
esac |
output_verbose_link_cmd='echo' |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' |
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' |
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_automatic, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' |
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
else |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
esac |
AC_MSG_RESULT([$enable_shared]) |
AC_MSG_CHECKING([whether to build static libraries]) |
# Make sure either enable_shared or enable_static is yes. |
test "$enable_shared" = yes || enable_static=yes |
AC_MSG_RESULT([$enable_static]) |
AC_LIBTOOL_CONFIG($1) |
AC_LANG_POP |
CC="$lt_save_CC" |
])# AC_LIBTOOL_LANG_C_CONFIG |
# AC_LIBTOOL_LANG_CXX_CONFIG |
# -------------------------- |
# Ensure that the configuration vars for the C compiler are |
# suitably defined. Those variables are subsequently used by |
# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. |
AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) |
AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], |
[AC_LANG_PUSH(C++) |
AC_REQUIRE([AC_PROG_CXX]) |
AC_REQUIRE([AC_PROG_CXXCPP]) |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
_LT_AC_TAGVAR(allow_undefined_flag, $1)= |
_LT_AC_TAGVAR(always_export_symbols, $1)=no |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)= |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=no |
_LT_AC_TAGVAR(hardcode_automatic, $1)=no |
_LT_AC_TAGVAR(module_cmds, $1)= |
_LT_AC_TAGVAR(module_expsym_cmds, $1)= |
_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown |
_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds |
_LT_AC_TAGVAR(no_undefined_flag, $1)= |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= |
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no |
# Dependencies to place before and after the object being linked: |
_LT_AC_TAGVAR(predep_objects, $1)= |
_LT_AC_TAGVAR(postdep_objects, $1)= |
_LT_AC_TAGVAR(predeps, $1)= |
_LT_AC_TAGVAR(postdeps, $1)= |
_LT_AC_TAGVAR(compiler_lib_search_path, $1)= |
# Source file extension for C++ test sources. |
ac_ext=cc |
# Object file extension for compiled C++ test sources. |
objext=o |
_LT_AC_TAGVAR(objext, $1)=$objext |
# Code to be used in simple compile tests |
lt_simple_compile_test_code="int some_variable = 0;\n" |
# Code to be used in simple link tests |
lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' |
# ltmain only uses $CC for tagged configurations so make sure $CC is set. |
_LT_AC_SYS_COMPILER |
# Allow CC to be a program name with arguments. |
lt_save_CC=$CC |
lt_save_LD=$LD |
lt_save_GCC=$GCC |
GCC=$GXX |
lt_save_with_gnu_ld=$with_gnu_ld |
lt_save_path_LD=$lt_cv_path_LD |
if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then |
lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx |
else |
unset lt_cv_prog_gnu_ld |
fi |
if test -n "${lt_cv_path_LDCXX+set}"; then |
lt_cv_path_LD=$lt_cv_path_LDCXX |
else |
unset lt_cv_path_LD |
fi |
test -z "${LDCXX+set}" || LD=$LDCXX |
CC=${CXX-"c++"} |
compiler=$CC |
_LT_AC_TAGVAR(compiler, $1)=$CC |
cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` |
# We don't want -fno-exception wen compiling C++ code, so set the |
# no_builtin_flag separately |
if test "$GXX" = yes; then |
_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' |
else |
_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= |
fi |
if test "$GXX" = yes; then |
# Set up default GNU C++ configuration |
AC_PROG_LD |
# Check if GNU C++ uses GNU ld as the underlying linker, since the |
# archiving commands below assume that GNU ld is being used. |
if test "$with_gnu_ld" = yes; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' |
# If archive_cmds runs LD, not CC, wlarc should be empty |
# XXX I think wlarc can be eliminated in ltcf-cxx, but I need to |
# investigate it a little bit more. (MM) |
wlarc='${wl}' |
# ancient GNU ld didn't support --whole-archive et. al. |
if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ |
grep 'no-whole-archive' > /dev/null; then |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' |
else |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= |
fi |
else |
with_gnu_ld=no |
wlarc= |
# A generic and very simple default shared library creation |
# command for GNU C++ for the case where it uses the native |
# linker, instead of GNU ld. If possible, this setting should |
# overridden to take advantage of the native linker features on |
# the platform it is being used on. |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib' |
fi |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' |
else |
GXX=no |
with_gnu_ld=no |
wlarc= |
fi |
# PORTME: fill in a description of your system's C++ link characteristics |
AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) |
_LT_AC_TAGVAR(ld_shlibs, $1)=yes |
case $host_os in |
aix3*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
aix4* | aix5*) |
if test "$host_cpu" = ia64; then |
# On IA64, the linker does run time linking by default, so we don't |
# have to do anything special. |
aix_use_runtimelinking=no |
exp_sym_flag='-Bexport' |
no_entry_flag="" |
else |
# KDE requires run time linking. Make it the default. |
aix_use_runtimelinking=yes |
exp_sym_flag='-bexport' |
no_entry_flag='-bnoentry' |
fi |
# When large executables or shared objects are built, AIX ld can |
# have problems creating the table of contents. If linking a library |
# or program results in "error TOC overflow" add -mminimal-toc to |
# CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not |
# enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. |
_LT_AC_TAGVAR(archive_cmds, $1)='' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' |
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
if test "$GXX" = yes; then |
case $host_os in aix4.[012]|aix4.[012].*) |
# We only want to do this on AIX 4.2 and lower, the check |
# below for broken collect2 doesn't work under 4.3+ |
collect2name=`${CC} -print-prog-name=collect2` |
if test -f "$collect2name" && \ |
strings "$collect2name" | grep resolve_lib_name >/dev/null |
then |
# We have reworked collect2 |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
else |
# We have old collect2 |
_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported |
# It fails to find uninstalled libraries when the uninstalled |
# path is not listed in the libpath. Setting hardcode_minus_L |
# to unsupported forces relinking |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= |
fi |
esac |
shared_flag='-shared' |
else |
# not using gcc |
if test "$host_cpu" = ia64; then |
# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release |
# chokes on -Wl,-G. The following line is correct: |
shared_flag='-G' |
else |
if test "$aix_use_runtimelinking" = yes; then |
shared_flag='-qmkshrobj ${wl}-G' |
else |
shared_flag='-qmkshrobj' |
fi |
fi |
fi |
# Let the compiler handle the export list. |
_LT_AC_TAGVAR(always_export_symbols, $1)=no |
if test "$aix_use_runtimelinking" = yes; then |
# Warning - without using the other runtime loading flags (-brtl), |
# -berok will link without error, but may produce a broken library. |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' |
# Determine the default libpath from the value encoded in an empty executable. |
_LT_AC_SYS_LIBPATH_AIX |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" |
_LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" |
else |
if test "$host_cpu" = ia64; then |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' |
_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" |
else |
# Determine the default libpath from the value encoded in an empty executable. |
_LT_AC_SYS_LIBPATH_AIX |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" |
# Warning - without using the other run time loading flags, |
# -berok will link without error, but may produce a broken library. |
_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' |
# -bexpall does not export symbols beginning with underscore (_) |
_LT_AC_TAGVAR(always_export_symbols, $1)=yes |
# Exported symbols can be pulled into shared objects from archives |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes |
# This is similar to how AIX traditionally builds it's shared libraries. |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' |
fi |
fi |
;; |
chorus*) |
case $cc_basename in |
*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
esac |
;; |
cygwin* | mingw* | pw32*) |
# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, |
# as there is no search path for DLLs. |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=no |
_LT_AC_TAGVAR(always_export_symbols, $1)=no |
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes |
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' |
# If the export-symbols file already is a .def file (1st line |
# is EXPORTS), use it as is; otherwise, prepend... |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then |
cp $export_symbols $output_objdir/$soname.def; |
else |
echo EXPORTS > $output_objdir/$soname.def; |
cat $export_symbols >> $output_objdir/$soname.def; |
fi~ |
$CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' |
else |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
darwin* | rhapsody*) |
if test "$GXX" = yes; then |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
case "$host_os" in |
rhapsody* | darwin1.[[012]]) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' |
;; |
*) # Darwin 1.3 on |
if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' |
else |
case ${MACOSX_DEPLOYMENT_TARGET} in |
10.[012]) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' |
;; |
10.*) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' |
;; |
esac |
fi |
;; |
esac |
lt_int_apple_cc_single_mod=no |
output_verbose_link_cmd='echo' |
if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then |
lt_int_apple_cc_single_mod=yes |
fi |
if test "X$lt_int_apple_cc_single_mod" = Xyes ; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' |
fi |
_LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' |
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's |
if test "X$lt_int_apple_cc_single_mod" = Xyes ; then |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
else |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
fi |
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_automatic, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' |
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
else |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
dgux*) |
case $cc_basename in |
ec++) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
ghcx) |
# Green Hills C++ Compiler |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
esac |
;; |
freebsd[12]*) |
# C++ shared libraries reported to be fairly broken before switch to ELF |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
freebsd-elf*) |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
;; |
freebsd* | kfreebsd*-gnu) |
# FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF |
# conventions |
_LT_AC_TAGVAR(ld_shlibs, $1)=yes |
;; |
gnu*) |
;; |
hpux9*) |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, |
# but as the default |
# location of the library. |
case $cc_basename in |
CC) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
aCC) |
_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
# |
# There doesn't appear to be a way to prevent this compiler from |
# explicitly linking system object files so we need to strip them |
# from the output so that they don't get included in the library |
# dependencies. |
output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' |
;; |
*) |
if test "$GXX" = yes; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' |
else |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
esac |
;; |
hpux10*|hpux11*) |
if test $with_gnu_ld = no; then |
case "$host_cpu" in |
hppa*64*) |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
;; |
ia64*) |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
;; |
*) |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' |
;; |
esac |
fi |
case "$host_cpu" in |
hppa*64*) |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
ia64*) |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, |
# but as the default |
# location of the library. |
;; |
*) |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, |
# but as the default |
# location of the library. |
;; |
esac |
case $cc_basename in |
CC) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
aCC) |
case "$host_cpu" in |
hppa*64*|ia64*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' |
;; |
*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' |
;; |
esac |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
# |
# There doesn't appear to be a way to prevent this compiler from |
# explicitly linking system object files so we need to strip them |
# from the output so that they don't get included in the library |
# dependencies. |
output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' |
;; |
*) |
if test "$GXX" = yes; then |
if test $with_gnu_ld = no; then |
case "$host_cpu" in |
ia64*|hppa*64*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' |
;; |
*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' |
;; |
esac |
fi |
else |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
esac |
;; |
irix5* | irix6*) |
case $cc_basename in |
CC) |
# SGI C++ |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' |
# Archives containing C++ object files must be created using |
# "CC -ar", where "CC" is the IRIX C++ compiler. This is |
# necessary to make sure instantiated templates are included |
# in the archive. |
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' |
;; |
*) |
if test "$GXX" = yes; then |
if test "$with_gnu_ld" = no; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' |
fi |
fi |
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
;; |
esac |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
;; |
linux*) |
case $cc_basename in |
KCC) |
# Kuck and Associates, Inc. (KAI) C++ Compiler |
# KCC will only create a shared library if the output file |
# ends with ".so" (or ".sl" for HP-UX), so rename the library |
# to its proper name (with version) after linking. |
_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
# |
# There doesn't appear to be a way to prevent this compiler from |
# explicitly linking system object files so we need to strip them |
# from the output so that they don't get included in the library |
# dependencies. |
output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' |
# Archives containing C++ object files must be created using |
# "CC -Bstatic", where "CC" is the KAI C++ compiler. |
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' |
;; |
icpc) |
# Intel C++ |
with_gnu_ld=yes |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' |
;; |
cxx) |
# Compaq C++ |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' |
runpath_var=LD_RUN_PATH |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
# |
# There doesn't appear to be a way to prevent this compiler from |
# explicitly linking system object files so we need to strip them |
# from the output so that they don't get included in the library |
# dependencies. |
output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' |
;; |
esac |
;; |
lynxos*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
m88k*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
mvs*) |
case $cc_basename in |
cxx) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
esac |
;; |
netbsd*) |
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' |
wlarc= |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
fi |
# Workaround some broken pre-1.5 toolchains |
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' |
;; |
osf3*) |
case $cc_basename in |
KCC) |
# Kuck and Associates, Inc. (KAI) C++ Compiler |
# KCC will only create a shared library if the output file |
# ends with ".so" (or ".sl" for HP-UX), so rename the library |
# to its proper name (with version) after linking. |
_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
# Archives containing C++ object files must be created using |
# "CC -Bstatic", where "CC" is the KAI C++ compiler. |
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' |
;; |
RCC) |
# Rational C++ 2.4.1 |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
cxx) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
# |
# There doesn't appear to be a way to prevent this compiler from |
# explicitly linking system object files so we need to strip them |
# from the output so that they don't get included in the library |
# dependencies. |
output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' |
;; |
*) |
if test "$GXX" = yes && test "$with_gnu_ld" = no; then |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' |
else |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
esac |
;; |
osf4* | osf5*) |
case $cc_basename in |
KCC) |
# Kuck and Associates, Inc. (KAI) C++ Compiler |
# KCC will only create a shared library if the output file |
# ends with ".so" (or ".sl" for HP-UX), so rename the library |
# to its proper name (with version) after linking. |
_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
# Archives containing C++ object files must be created using |
# the KAI C++ compiler. |
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' |
;; |
RCC) |
# Rational C++ 2.4.1 |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
cxx) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ |
echo "-hidden">> $lib.exp~ |
$CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ |
$rm $lib.exp' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
# |
# There doesn't appear to be a way to prevent this compiler from |
# explicitly linking system object files so we need to strip them |
# from the output so that they don't get included in the library |
# dependencies. |
output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' |
;; |
*) |
if test "$GXX" = yes && test "$with_gnu_ld" = no; then |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' |
else |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
esac |
;; |
psos*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
sco*) |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
case $cc_basename in |
CC) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
esac |
;; |
sunos4*) |
case $cc_basename in |
CC) |
# Sun C++ 4.x |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
lcc) |
# Lucid |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
esac |
;; |
solaris*) |
case $cc_basename in |
CC) |
# Sun C++ 4.2, 5.x and Centerline C++ |
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ |
$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
case $host_os in |
solaris2.[0-5] | solaris2.[0-5].*) ;; |
*) |
# The C++ compiler is used as linker so we must use $wl |
# flag to pass the commands to the underlying system |
# linker. |
# Supported since Solaris 2.6 (maybe 2.5.1?) |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' |
;; |
esac |
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
# |
# There doesn't appear to be a way to prevent this compiler from |
# explicitly linking system object files so we need to strip them |
# from the output so that they don't get included in the library |
# dependencies. |
output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' |
# Archives containing C++ object files must be created using |
# "CC -xar", where "CC" is the Sun C++ compiler. This is |
# necessary to make sure instantiated templates are included |
# in the archive. |
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' |
;; |
gcx) |
# Green Hills C++ Compiler |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' |
# The C++ compiler must be used to create the archive. |
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' |
;; |
*) |
# GNU C++ compiler with Solaris linker |
if test "$GXX" = yes && test "$with_gnu_ld" = no; then |
_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' |
if $CC --version | grep -v '^2\.7' > /dev/null; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ |
$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" |
else |
# g++ 2.7 appears to require `-G' NOT `-shared' on this |
# platform. |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ |
$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' |
# Commands to make compiler produce verbose output that lists |
# what "hidden" libraries, object files and flags are used when |
# linking a shared library. |
output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" |
fi |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' |
fi |
;; |
esac |
;; |
sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
;; |
tandem*) |
case $cc_basename in |
NCC) |
# NonStop-UX NCC 3.20 |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
esac |
;; |
vxworks*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
*) |
# FIXME: insert proper C++ library support |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
esac |
AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) |
test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no |
_LT_AC_TAGVAR(GCC, $1)="$GXX" |
_LT_AC_TAGVAR(LD, $1)="$LD" |
## CAVEAT EMPTOR: |
## There is no encapsulation within the following macros, do not change |
## the running order or otherwise move them around unless you know exactly |
## what you are doing... |
AC_LIBTOOL_POSTDEP_PREDEP($1) |
AC_LIBTOOL_PROG_COMPILER_PIC($1) |
AC_LIBTOOL_PROG_CC_C_O($1) |
AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) |
AC_LIBTOOL_PROG_LD_SHLIBS($1) |
AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) |
AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) |
AC_LIBTOOL_SYS_LIB_STRIP |
AC_LIBTOOL_DLOPEN_SELF($1) |
AC_LIBTOOL_CONFIG($1) |
AC_LANG_POP |
CC=$lt_save_CC |
LDCXX=$LD |
LD=$lt_save_LD |
GCC=$lt_save_GCC |
with_gnu_ldcxx=$with_gnu_ld |
with_gnu_ld=$lt_save_with_gnu_ld |
lt_cv_path_LDCXX=$lt_cv_path_LD |
lt_cv_path_LD=$lt_save_path_LD |
lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld |
lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld |
])# AC_LIBTOOL_LANG_CXX_CONFIG |
# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) |
# ------------------------ |
# Figure out "hidden" library dependencies from verbose |
# compiler output when linking a shared library. |
# Parse the compiler output and extract the necessary |
# objects, libraries and library flags. |
AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ |
dnl we can't use the lt_simple_compile_test_code here, |
dnl because it contains code intended for an executable, |
dnl not a library. It's possible we should let each |
dnl tag define a new lt_????_link_test_code variable, |
dnl but it's only used here... |
ifelse([$1],[],[cat > conftest.$ac_ext <<EOF |
int a; |
void foo (void) { a = 0; } |
EOF |
],[$1],[CXX],[cat > conftest.$ac_ext <<EOF |
class Foo |
{ |
public: |
Foo (void) { a = 0; } |
private: |
int a; |
}; |
EOF |
],[$1],[F77],[cat > conftest.$ac_ext <<EOF |
subroutine foo |
implicit none |
integer*4 a |
a=0 |
return |
end |
EOF |
],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF |
public class foo { |
private int a; |
public void bar (void) { |
a = 0; |
} |
}; |
EOF |
]) |
dnl Parse the compiler output and extract the necessary |
dnl objects, libraries and library flags. |
if AC_TRY_EVAL(ac_compile); then |
# Parse the compiler output and extract the necessary |
# objects, libraries and library flags. |
# Sentinel used to keep track of whether or not we are before |
# the conftest object file. |
pre_test_object_deps_done=no |
# The `*' in the case matches for architectures that use `case' in |
# $output_verbose_cmd can trigger glob expansion during the loop |
# eval without this substitution. |
output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" |
for p in `eval $output_verbose_link_cmd`; do |
case $p in |
-L* | -R* | -l*) |
# Some compilers place space between "-{L,R}" and the path. |
# Remove the space. |
if test $p = "-L" \ |
|| test $p = "-R"; then |
prev=$p |
continue |
else |
prev= |
fi |
if test "$pre_test_object_deps_done" = no; then |
case $p in |
-L* | -R*) |
# Internal compiler library paths should come after those |
# provided the user. The postdeps already come after the |
# user supplied libs so there is no need to process them. |
if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then |
_LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" |
else |
_LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" |
fi |
;; |
# The "-l" case would never come before the object being |
# linked, so don't bother handling this case. |
esac |
else |
if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then |
_LT_AC_TAGVAR(postdeps, $1)="${prev}${p}" |
else |
_LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}" |
fi |
fi |
;; |
*.$objext|*.$libext) |
# This assumes that the test object file only shows up |
# once in the compiler output. |
if test "$p" = "conftest.$objext"; then |
pre_test_object_deps_done=yes |
continue |
fi |
if test "$pre_test_object_deps_done" = no; then |
if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then |
_LT_AC_TAGVAR(predep_objects, $1)="$p" |
else |
_LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p" |
fi |
else |
if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then |
_LT_AC_TAGVAR(postdep_objects, $1)="$p" |
else |
_LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p" |
fi |
fi |
;; |
*) ;; # Ignore the rest. |
esac |
done |
# Clean up. |
rm -f a.out a.exe |
else |
echo "libtool.m4: error: problem compiling $1 test program" |
fi |
$rm -f confest.$objext |
case " $_LT_AC_TAGVAR(postdeps, $1) " in |
*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; |
esac |
])# AC_LIBTOOL_POSTDEP_PREDEP |
# AC_LIBTOOL_LANG_F77_CONFIG |
# ------------------------ |
# Ensure that the configuration vars for the C compiler are |
# suitably defined. Those variables are subsequently used by |
# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. |
AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) |
AC_DEFUN([_LT_AC_LANG_F77_CONFIG], |
[AC_REQUIRE([AC_PROG_F77]) |
AC_LANG_PUSH(Fortran 77) |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
_LT_AC_TAGVAR(allow_undefined_flag, $1)= |
_LT_AC_TAGVAR(always_export_symbols, $1)=no |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)= |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=no |
_LT_AC_TAGVAR(hardcode_automatic, $1)=no |
_LT_AC_TAGVAR(module_cmds, $1)= |
_LT_AC_TAGVAR(module_expsym_cmds, $1)= |
_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown |
_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds |
_LT_AC_TAGVAR(no_undefined_flag, $1)= |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= |
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no |
# Source file extension for f77 test sources. |
ac_ext=f |
# Object file extension for compiled f77 test sources. |
objext=o |
_LT_AC_TAGVAR(objext, $1)=$objext |
# Code to be used in simple compile tests |
lt_simple_compile_test_code=" subroutine t\n return\n end\n" |
# Code to be used in simple link tests |
lt_simple_link_test_code=" program t\n end\n" |
# ltmain only uses $CC for tagged configurations so make sure $CC is set. |
_LT_AC_SYS_COMPILER |
# Allow CC to be a program name with arguments. |
lt_save_CC="$CC" |
CC=${F77-"f77"} |
compiler=$CC |
_LT_AC_TAGVAR(compiler, $1)=$CC |
cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` |
AC_MSG_CHECKING([if libtool supports shared libraries]) |
AC_MSG_RESULT([$can_build_shared]) |
AC_MSG_CHECKING([whether to build shared libraries]) |
test "$can_build_shared" = "no" && enable_shared=no |
# On AIX, shared libraries and static libraries use the same namespace, and |
# are all built from PIC. |
case "$host_os" in |
aix3*) |
test "$enable_shared" = yes && enable_static=no |
if test -n "$RANLIB"; then |
archive_cmds="$archive_cmds~\$RANLIB \$lib" |
postinstall_cmds='$RANLIB $lib' |
fi |
;; |
aix4*) |
test "$enable_shared" = yes && enable_static=no |
;; |
esac |
AC_MSG_RESULT([$enable_shared]) |
AC_MSG_CHECKING([whether to build static libraries]) |
# Make sure either enable_shared or enable_static is yes. |
test "$enable_shared" = yes || enable_static=yes |
AC_MSG_RESULT([$enable_static]) |
test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no |
_LT_AC_TAGVAR(GCC, $1)="$G77" |
_LT_AC_TAGVAR(LD, $1)="$LD" |
AC_LIBTOOL_PROG_COMPILER_PIC($1) |
AC_LIBTOOL_PROG_CC_C_O($1) |
AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) |
AC_LIBTOOL_PROG_LD_SHLIBS($1) |
AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) |
AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) |
AC_LIBTOOL_SYS_LIB_STRIP |
AC_LIBTOOL_CONFIG($1) |
AC_LANG_POP |
CC="$lt_save_CC" |
])# AC_LIBTOOL_LANG_F77_CONFIG |
# AC_LIBTOOL_LANG_GCJ_CONFIG |
# -------------------------- |
# Ensure that the configuration vars for the C compiler are |
# suitably defined. Those variables are subsequently used by |
# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. |
AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) |
AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], |
[AC_LANG_SAVE |
# Source file extension for Java test sources. |
ac_ext=java |
# Object file extension for compiled Java test sources. |
objext=o |
_LT_AC_TAGVAR(objext, $1)=$objext |
# Code to be used in simple compile tests |
lt_simple_compile_test_code="class foo {}\n" |
# Code to be used in simple link tests |
lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' |
# ltmain only uses $CC for tagged configurations so make sure $CC is set. |
_LT_AC_SYS_COMPILER |
# Allow CC to be a program name with arguments. |
lt_save_CC="$CC" |
CC=${GCJ-"gcj"} |
compiler=$CC |
_LT_AC_TAGVAR(compiler, $1)=$CC |
# GCJ did not exist at the time GCC didn't implicitly link libc in. |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
## CAVEAT EMPTOR: |
## There is no encapsulation within the following macros, do not change |
## the running order or otherwise move them around unless you know exactly |
## what you are doing... |
AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) |
AC_LIBTOOL_PROG_COMPILER_PIC($1) |
AC_LIBTOOL_PROG_CC_C_O($1) |
AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) |
AC_LIBTOOL_PROG_LD_SHLIBS($1) |
AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) |
AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) |
AC_LIBTOOL_SYS_LIB_STRIP |
AC_LIBTOOL_DLOPEN_SELF($1) |
AC_LIBTOOL_CONFIG($1) |
AC_LANG_RESTORE |
CC="$lt_save_CC" |
])# AC_LIBTOOL_LANG_GCJ_CONFIG |
# AC_LIBTOOL_LANG_RC_CONFIG |
# -------------------------- |
# Ensure that the configuration vars for the Windows resource compiler are |
# suitably defined. Those variables are subsequently used by |
# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. |
AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) |
AC_DEFUN([_LT_AC_LANG_RC_CONFIG], |
[AC_LANG_SAVE |
# Source file extension for RC test sources. |
ac_ext=rc |
# Object file extension for compiled RC test sources. |
objext=o |
_LT_AC_TAGVAR(objext, $1)=$objext |
# Code to be used in simple compile tests |
lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' |
# Code to be used in simple link tests |
lt_simple_link_test_code="$lt_simple_compile_test_code" |
# ltmain only uses $CC for tagged configurations so make sure $CC is set. |
_LT_AC_SYS_COMPILER |
# Allow CC to be a program name with arguments. |
lt_save_CC="$CC" |
CC=${RC-"windres"} |
compiler=$CC |
_LT_AC_TAGVAR(compiler, $1)=$CC |
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes |
AC_LIBTOOL_CONFIG($1) |
AC_LANG_RESTORE |
CC="$lt_save_CC" |
])# AC_LIBTOOL_LANG_RC_CONFIG |
# AC_LIBTOOL_CONFIG([TAGNAME]) |
# ---------------------------- |
# If TAGNAME is not passed, then create an initial libtool script |
# with a default configuration from the untagged config vars. Otherwise |
# add code to config.status for appending the configuration named by |
# TAGNAME from the matching tagged config vars. |
AC_DEFUN([AC_LIBTOOL_CONFIG], |
[# The else clause should only fire when bootstrapping the |
# libtool distribution, otherwise you forgot to ship ltmain.sh |
# with your package, and you will get complaints that there are |
# no rules to generate ltmain.sh. |
if test -f "$ltmain"; then |
# See if we are running on zsh, and set the options which allow our commands through |
# without removal of \ escapes. |
if test -n "${ZSH_VERSION+set}" ; then |
setopt NO_GLOB_SUBST |
fi |
# Now quote all the things that may contain metacharacters while being |
# careful not to overquote the AC_SUBSTed values. We take copies of the |
# variables and quote the copies for generation of the libtool script. |
for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \ |
libname_spec library_names_spec soname_spec extract_expsyms_cmds \ |
old_striplib striplib file_magic_cmd finish_cmds finish_eval \ |
deplibs_check_method reload_flag reload_cmds need_locks \ |
lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ |
lt_cv_sys_global_symbol_to_c_name_address \ |
sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ |
old_postinstall_cmds old_postuninstall_cmds \ |
_LT_AC_TAGVAR(compiler, $1) \ |
_LT_AC_TAGVAR(CC, $1) \ |
_LT_AC_TAGVAR(LD, $1) \ |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ |
_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ |
_LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ |
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ |
_LT_AC_TAGVAR(old_archive_cmds, $1) \ |
_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ |
_LT_AC_TAGVAR(predep_objects, $1) \ |
_LT_AC_TAGVAR(postdep_objects, $1) \ |
_LT_AC_TAGVAR(predeps, $1) \ |
_LT_AC_TAGVAR(postdeps, $1) \ |
_LT_AC_TAGVAR(compiler_lib_search_path, $1) \ |
_LT_AC_TAGVAR(archive_cmds, $1) \ |
_LT_AC_TAGVAR(archive_expsym_cmds, $1) \ |
_LT_AC_TAGVAR(postinstall_cmds, $1) \ |
_LT_AC_TAGVAR(postuninstall_cmds, $1) \ |
_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ |
_LT_AC_TAGVAR(allow_undefined_flag, $1) \ |
_LT_AC_TAGVAR(no_undefined_flag, $1) \ |
_LT_AC_TAGVAR(export_symbols_cmds, $1) \ |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ |
_LT_AC_TAGVAR(hardcode_automatic, $1) \ |
_LT_AC_TAGVAR(module_cmds, $1) \ |
_LT_AC_TAGVAR(module_expsym_cmds, $1) \ |
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ |
_LT_AC_TAGVAR(exclude_expsyms, $1) \ |
_LT_AC_TAGVAR(include_expsyms, $1); do |
case $var in |
_LT_AC_TAGVAR(old_archive_cmds, $1) | \ |
_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ |
_LT_AC_TAGVAR(archive_cmds, $1) | \ |
_LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ |
_LT_AC_TAGVAR(module_cmds, $1) | \ |
_LT_AC_TAGVAR(module_expsym_cmds, $1) | \ |
_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ |
_LT_AC_TAGVAR(export_symbols_cmds, $1) | \ |
extract_expsyms_cmds | reload_cmds | finish_cmds | \ |
postinstall_cmds | postuninstall_cmds | \ |
old_postinstall_cmds | old_postuninstall_cmds | \ |
sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) |
# Double-quote double-evaled strings. |
eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" |
;; |
*) |
eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" |
;; |
esac |
done |
case $lt_echo in |
*'\[$]0 --fallback-echo"') |
lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` |
;; |
esac |
ifelse([$1], [], |
[cfgfile="${ofile}T" |
trap "$rm \"$cfgfile\"; exit 1" 1 2 15 |
$rm -f "$cfgfile" |
AC_MSG_NOTICE([creating $ofile])], |
[cfgfile="$ofile"]) |
cat <<__EOF__ >> "$cfgfile" |
ifelse([$1], [], |
[#! $SHELL |
# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. |
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) |
# NOTE: Changes made to this file will be lost: look at ltmain.sh. |
# |
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 |
# Free Software Foundation, Inc. |
# |
# This file is part of GNU Libtool: |
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 |
# |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 2 of the License, or |
# (at your option) any later version. |
# |
# This program 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 |
# General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
# |
# As a special exception to the GNU General Public License, if you |
# distribute this file as part of a program that contains a |
# configuration script generated by Autoconf, you may include it under |
# the same distribution terms that you use for the rest of that program. |
# A sed program that does not truncate output. |
SED=$lt_SED |
# Sed that helps us avoid accidentally triggering echo(1) options like -n. |
Xsed="$SED -e s/^X//" |
# The HP-UX ksh and POSIX shell print the target directory to stdout |
# if CDPATH is set. |
if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi |
# The names of the tagged configurations supported by this script. |
available_tags= |
# ### BEGIN LIBTOOL CONFIG], |
[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) |
# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: |
# Shell to use when invoking shell scripts. |
SHELL=$lt_SHELL |
# Whether or not to build shared libraries. |
build_libtool_libs=$enable_shared |
# Whether or not to build static libraries. |
build_old_libs=$enable_static |
# Whether or not to add -lc for building shared libraries. |
build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) |
# Whether or not to disallow shared libs when runtime libs are static |
allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) |
# Whether or not to optimize for fast installation. |
fast_install=$enable_fast_install |
# The host system. |
host_alias=$host_alias |
host=$host |
# An echo program that does not interpret backslashes. |
echo=$lt_echo |
# The archiver. |
AR=$lt_AR |
AR_FLAGS=$lt_AR_FLAGS |
# A C compiler. |
LTCC=$lt_LTCC |
# A language-specific compiler. |
CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) |
# Is the compiler the GNU C compiler? |
with_gcc=$_LT_AC_TAGVAR(GCC, $1) |
# An ERE matcher. |
EGREP=$lt_EGREP |
# The linker used to build libraries. |
LD=$lt_[]_LT_AC_TAGVAR(LD, $1) |
# Whether we need hard or soft links. |
LN_S=$lt_LN_S |
# A BSD-compatible nm program. |
NM=$lt_NM |
# A symbol stripping program |
STRIP=$STRIP |
# Used to examine libraries when file_magic_cmd begins "file" |
MAGIC_CMD=$MAGIC_CMD |
# Used on cygwin: DLL creation program. |
DLLTOOL="$DLLTOOL" |
# Used on cygwin: object dumper. |
OBJDUMP="$OBJDUMP" |
# Used on cygwin: assembler. |
AS="$AS" |
# The name of the directory that contains temporary libtool files. |
objdir=$objdir |
# How to create reloadable object files. |
reload_flag=$lt_reload_flag |
reload_cmds=$lt_reload_cmds |
# How to pass a linker flag through the compiler. |
wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) |
# Object file suffix (normally "o"). |
objext="$ac_objext" |
# Old archive suffix (normally "a"). |
libext="$libext" |
# Shared library suffix (normally ".so"). |
shrext='$shrext' |
# Executable file suffix (normally ""). |
exeext="$exeext" |
# Additional compiler flags for building library objects. |
pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) |
pic_mode=$pic_mode |
# What is the maximum length of a command? |
max_cmd_len=$lt_cv_sys_max_cmd_len |
# Does compiler simultaneously support -c and -o options? |
compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) |
# Must we lock files when doing compilation ? |
need_locks=$lt_need_locks |
# Do we need the lib prefix for modules? |
need_lib_prefix=$need_lib_prefix |
# Do we need a version for libraries? |
need_version=$need_version |
# Whether dlopen is supported. |
dlopen_support=$enable_dlopen |
# Whether dlopen of programs is supported. |
dlopen_self=$enable_dlopen_self |
# Whether dlopen of statically linked programs is supported. |
dlopen_self_static=$enable_dlopen_self_static |
# Compiler flag to prevent dynamic linking. |
link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) |
# Compiler flag to turn off builtin functions. |
no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) |
# Compiler flag to allow reflexive dlopens. |
export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) |
# Compiler flag to generate shared objects directly from archives. |
whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) |
# Compiler flag to generate thread-safe objects. |
thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) |
# Library versioning type. |
version_type=$version_type |
# Format of library name prefix. |
libname_spec=$lt_libname_spec |
# List of archive names. First name is the real one, the rest are links. |
# The last name is the one that the linker finds with -lNAME. |
library_names_spec=$lt_library_names_spec |
# The coded name of the library, if different from the real name. |
soname_spec=$lt_soname_spec |
# Commands used to build and install an old-style archive. |
RANLIB=$lt_RANLIB |
old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) |
old_postinstall_cmds=$lt_old_postinstall_cmds |
old_postuninstall_cmds=$lt_old_postuninstall_cmds |
# Create an old-style archive from a shared archive. |
old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) |
# Create a temporary old-style archive to link instead of a shared archive. |
old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) |
# Commands used to build and install a shared archive. |
archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) |
archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) |
postinstall_cmds=$lt_postinstall_cmds |
postuninstall_cmds=$lt_postuninstall_cmds |
# Commands used to build a loadable module (assumed same as above if empty) |
module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) |
module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) |
# Commands to strip libraries. |
old_striplib=$lt_old_striplib |
striplib=$lt_striplib |
# Dependencies to place before the objects being linked to create a |
# shared library. |
predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) |
# Dependencies to place after the objects being linked to create a |
# shared library. |
postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) |
# Dependencies to place before the objects being linked to create a |
# shared library. |
predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) |
# Dependencies to place after the objects being linked to create a |
# shared library. |
postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) |
# The library search path used internally by the compiler when linking |
# a shared library. |
compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) |
# Method to check whether dependent libraries are shared objects. |
deplibs_check_method=$lt_deplibs_check_method |
# Command to use when deplibs_check_method == file_magic. |
file_magic_cmd=$lt_file_magic_cmd |
# Flag that allows shared libraries with undefined symbols to be built. |
allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) |
# Flag that forces no undefined symbols. |
no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) |
# Commands used to finish a libtool library installation in a directory. |
finish_cmds=$lt_finish_cmds |
# Same as above, but a single script fragment to be evaled but not shown. |
finish_eval=$lt_finish_eval |
# Take the output of nm and produce a listing of raw symbols and C names. |
global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe |
# Transform the output of nm in a proper C declaration |
global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl |
# Transform the output of nm in a C name address pair |
global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address |
# This is the shared library runtime path variable. |
runpath_var=$runpath_var |
# This is the shared library path variable. |
shlibpath_var=$shlibpath_var |
# Is shlibpath searched before the hard-coded library search path? |
shlibpath_overrides_runpath=$shlibpath_overrides_runpath |
# How to hardcode a shared library path into an executable. |
hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) |
# Whether we should hardcode library paths into libraries. |
hardcode_into_libs=$hardcode_into_libs |
# Flag to hardcode \$libdir into a binary during linking. |
# This must work even if \$libdir does not exist. |
hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) |
# If ld is used when linking, flag to hardcode \$libdir into |
# a binary during linking. This must work even if \$libdir does |
# not exist. |
hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) |
# Whether we need a single -rpath flag with a separated argument. |
hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) |
# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the |
# resulting binary. |
hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) |
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the |
# resulting binary. |
hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) |
# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into |
# the resulting binary. |
hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) |
# Set to yes if building a shared library automatically hardcodes DIR into the library |
# and all subsequent libraries and executables linked against it. |
hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) |
# Variables whose values should be saved in libtool wrapper scripts and |
# restored at relink time. |
variables_saved_for_relink="$variables_saved_for_relink" |
# Whether libtool must link a program against all its dependency libraries. |
link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) |
# Compile-time system search path for libraries |
sys_lib_search_path_spec=$lt_sys_lib_search_path_spec |
# Run-time system search path for libraries |
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec |
# Fix the shell variable \$srcfile for the compiler. |
fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" |
# Set to yes if exported symbols are required. |
always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) |
# The commands to list exported symbols. |
export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) |
# The commands to extract the exported symbol list from a shared archive. |
extract_expsyms_cmds=$lt_extract_expsyms_cmds |
# Symbols that should not be listed in the preloaded symbols. |
exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) |
# Symbols that must always be exported. |
include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) |
ifelse([$1],[], |
[# ### END LIBTOOL CONFIG], |
[# ### END LIBTOOL TAG CONFIG: $tagname]) |
__EOF__ |
ifelse([$1],[], [ |
case $host_os in |
aix3*) |
cat <<\EOF >> "$cfgfile" |
# AIX sometimes has problems with the GCC collect2 program. For some |
# reason, if we set the COLLECT_NAMES environment variable, the problems |
# vanish in a puff of smoke. |
if test "X${COLLECT_NAMES+set}" != Xset; then |
COLLECT_NAMES= |
export COLLECT_NAMES |
fi |
EOF |
;; |
esac |
# We use sed instead of cat because bash on DJGPP gets confused if |
# if finds mixed CR/LF and LF-only lines. Since sed operates in |
# text mode, it properly converts lines to CR/LF. This bash problem |
# is reportedly fixed, but why not run on old versions too? |
sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) |
mv -f "$cfgfile" "$ofile" || \ |
(rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") |
chmod +x "$ofile" |
]) |
else |
# If there is no Makefile yet, we rely on a make rule to execute |
# `config.status --recheck' to rerun these tests and create the |
# libtool script then. |
test -f Makefile && make "$ltmain" |
fi |
])# AC_LIBTOOL_CONFIG |
# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) |
# ------------------------------------------- |
AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], |
[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl |
_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= |
if test "$GCC" = yes; then |
_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' |
AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], |
lt_cv_prog_compiler_rtti_exceptions, |
[-fno-rtti -fno-exceptions], [], |
[_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) |
fi |
])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI |
# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE |
# --------------------------------- |
AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], |
[AC_REQUIRE([AC_CANONICAL_HOST]) |
AC_REQUIRE([AC_PROG_NM]) |
AC_REQUIRE([AC_OBJEXT]) |
# Check for command to grab the raw symbol name followed by C symbol from nm. |
AC_MSG_CHECKING([command to parse $NM output from $compiler object]) |
AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], |
[ |
# These are sane defaults that work on at least a few old systems. |
# [They come from Ultrix. What could be older than Ultrix?!! ;)] |
# Character class describing NM global symbol codes. |
symcode='[[BCDEGRST]]' |
# Regexp to match symbols that can be accessed directly from C. |
sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' |
# Transform the above into a raw symbol and a C symbol. |
symxfrm='\1 \2\3 \3' |
# Transform an extracted symbol line into a proper C declaration |
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" |
# Transform an extracted symbol line into symbol name and symbol address |
lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" |
# Define system-specific variables. |
case $host_os in |
aix*) |
symcode='[[BCDT]]' |
;; |
cygwin* | mingw* | pw32*) |
symcode='[[ABCDGISTW]]' |
;; |
hpux*) # Its linker distinguishes data from code symbols |
if test "$host_cpu" = ia64; then |
symcode='[[ABCDEGRST]]' |
fi |
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" |
lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" |
;; |
irix* | nonstopux*) |
symcode='[[BCDEGRST]]' |
;; |
osf*) |
symcode='[[BCDEGQRST]]' |
;; |
solaris* | sysv5*) |
symcode='[[BDT]]' |
;; |
sysv4) |
symcode='[[DFNSTU]]' |
;; |
esac |
# Handle CRLF in mingw tool chain |
opt_cr= |
case $build_os in |
mingw*) |
opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp |
;; |
esac |
# If we're using GNU nm, then use its standard symbol codes. |
case `$NM -V 2>&1` in |
*GNU* | *'with BFD'*) |
symcode='[[ABCDGISTW]]' ;; |
esac |
# Try without a prefix undercore, then with it. |
for ac_symprfx in "" "_"; do |
# Write the raw and C identifiers. |
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" |
# Check to see that the pipe works correctly. |
pipe_works=no |
rm -f conftest* |
cat > conftest.$ac_ext <<EOF |
#ifdef __cplusplus |
extern "C" { |
#endif |
char nm_test_var; |
void nm_test_func(){} |
#ifdef __cplusplus |
} |
#endif |
int main(){nm_test_var='a';nm_test_func();return(0);} |
EOF |
if AC_TRY_EVAL(ac_compile); then |
# Now try to grab the symbols. |
nlist=conftest.nm |
if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then |
# Try sorting and uniquifying the output. |
if sort "$nlist" | uniq > "$nlist"T; then |
mv -f "$nlist"T "$nlist" |
else |
rm -f "$nlist"T |
fi |
# Make sure that we snagged all the symbols we need. |
if grep ' nm_test_var$' "$nlist" >/dev/null; then |
if grep ' nm_test_func$' "$nlist" >/dev/null; then |
cat <<EOF > conftest.$ac_ext |
#ifdef __cplusplus |
extern "C" { |
#endif |
EOF |
# Now generate the symbol file. |
eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' |
cat <<EOF >> conftest.$ac_ext |
#if defined (__STDC__) && __STDC__ |
# define lt_ptr_t void * |
#else |
# define lt_ptr_t char * |
# define const |
#endif |
/* The mapping between symbol names and symbols. */ |
const struct { |
const char *name; |
lt_ptr_t address; |
} |
lt_preloaded_symbols[[]] = |
{ |
EOF |
$SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext |
cat <<\EOF >> conftest.$ac_ext |
{0, (lt_ptr_t) 0} |
}; |
#ifdef __cplusplus |
} |
#endif |
EOF |
# Now try linking the two files. |
mv conftest.$ac_objext conftstm.$ac_objext |
lt_save_LIBS="$LIBS" |
lt_save_CFLAGS="$CFLAGS" |
LIBS="conftstm.$ac_objext" |
CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" |
if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then |
pipe_works=yes |
fi |
LIBS="$lt_save_LIBS" |
CFLAGS="$lt_save_CFLAGS" |
else |
echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD |
fi |
else |
echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD |
fi |
else |
echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD |
fi |
else |
echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD |
cat conftest.$ac_ext >&5 |
fi |
rm -f conftest* conftst* |
# Do not use the global_symbol_pipe unless it works. |
if test "$pipe_works" = yes; then |
break |
else |
lt_cv_sys_global_symbol_pipe= |
fi |
done |
]) |
if test -z "$lt_cv_sys_global_symbol_pipe"; then |
lt_cv_sys_global_symbol_to_cdecl= |
fi |
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then |
AC_MSG_RESULT(failed) |
else |
AC_MSG_RESULT(ok) |
fi |
]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE |
# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) |
# --------------------------------------- |
AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], |
[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= |
AC_MSG_CHECKING([for $compiler option to produce PIC]) |
ifelse([$1],[CXX],[ |
# C++ specific cases for pic, static, wl, etc. |
if test "$GXX" = yes; then |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' |
case $host_os in |
aix*) |
# All AIX code is PIC. |
if test "$host_cpu" = ia64; then |
# AIX 5 now supports IA64 processor |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
fi |
;; |
amigaos*) |
# FIXME: we need at least 68020 code to build shared libraries, but |
# adding the `-m68020' flag to GCC prevents building anything better, |
# like `-m68040'. |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' |
;; |
beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) |
# PIC is the default for these OSes. |
;; |
mingw* | os2* | pw32*) |
# This hack is so that the source file can tell whether it is being |
# built for inclusion in a dll (and should export symbols for example). |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' |
;; |
darwin* | rhapsody*) |
# PIC is the default on this platform |
# Common symbols not allowed in MH_DYLIB files |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' |
;; |
*djgpp*) |
# DJGPP does not support shared libraries at all |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= |
;; |
sysv4*MP*) |
if test -d /usr/nec; then |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic |
fi |
;; |
hpux*) |
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but |
# not for PA HP-UX. |
case "$host_cpu" in |
hppa*64*|ia64*) |
;; |
*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' |
;; |
esac |
;; |
*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' |
;; |
esac |
else |
case $host_os in |
aix4* | aix5*) |
# All AIX code is PIC. |
if test "$host_cpu" = ia64; then |
# AIX 5 now supports IA64 processor |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
else |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' |
fi |
;; |
chorus*) |
case $cc_basename in |
cxch68) |
# Green Hills C++ Compiler |
# _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" |
;; |
esac |
;; |
dgux*) |
case $cc_basename in |
ec++) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' |
;; |
ghcx) |
# Green Hills C++ Compiler |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' |
;; |
*) |
;; |
esac |
;; |
freebsd* | kfreebsd*-gnu) |
# FreeBSD uses GNU C++ |
;; |
hpux9* | hpux10* | hpux11*) |
case $cc_basename in |
CC) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" |
if test "$host_cpu" != ia64; then |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' |
fi |
;; |
aCC) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" |
case "$host_cpu" in |
hppa*64*|ia64*) |
# +Z the default |
;; |
*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' |
;; |
esac |
;; |
*) |
;; |
esac |
;; |
irix5* | irix6* | nonstopux*) |
case $cc_basename in |
CC) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' |
# CC pic flag -KPIC is the default. |
;; |
*) |
;; |
esac |
;; |
linux*) |
case $cc_basename in |
KCC) |
# KAI C++ Compiler |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' |
;; |
icpc) |
# Intel C++ |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' |
;; |
cxx) |
# Compaq C++ |
# Make sure the PIC flag is empty. It appears that all Alpha |
# Linux and Compaq Tru64 Unix objects are PIC. |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' |
;; |
*) |
;; |
esac |
;; |
lynxos*) |
;; |
m88k*) |
;; |
mvs*) |
case $cc_basename in |
cxx) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' |
;; |
*) |
;; |
esac |
;; |
netbsd*) |
;; |
osf3* | osf4* | osf5*) |
case $cc_basename in |
KCC) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' |
;; |
RCC) |
# Rational C++ 2.4.1 |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' |
;; |
cxx) |
# Digital/Compaq C++ |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
# Make sure the PIC flag is empty. It appears that all Alpha |
# Linux and Compaq Tru64 Unix objects are PIC. |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' |
;; |
*) |
;; |
esac |
;; |
psos*) |
;; |
sco*) |
case $cc_basename in |
CC) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' |
;; |
*) |
;; |
esac |
;; |
solaris*) |
case $cc_basename in |
CC) |
# Sun C++ 4.2, 5.x and Centerline C++ |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' |
;; |
gcx) |
# Green Hills C++ Compiler |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' |
;; |
*) |
;; |
esac |
;; |
sunos4*) |
case $cc_basename in |
CC) |
# Sun C++ 4.x |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
;; |
lcc) |
# Lucid |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' |
;; |
*) |
;; |
esac |
;; |
tandem*) |
case $cc_basename in |
NCC) |
# NonStop-UX NCC 3.20 |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' |
;; |
*) |
;; |
esac |
;; |
unixware*) |
;; |
vxworks*) |
;; |
*) |
_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no |
;; |
esac |
fi |
], |
[ |
if test "$GCC" = yes; then |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' |
case $host_os in |
aix*) |
# All AIX code is PIC. |
if test "$host_cpu" = ia64; then |
# AIX 5 now supports IA64 processor |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
fi |
;; |
amigaos*) |
# FIXME: we need at least 68020 code to build shared libraries, but |
# adding the `-m68020' flag to GCC prevents building anything better, |
# like `-m68040'. |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' |
;; |
beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) |
# PIC is the default for these OSes. |
;; |
mingw* | pw32* | os2*) |
# This hack is so that the source file can tell whether it is being |
# built for inclusion in a dll (and should export symbols for example). |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' |
;; |
darwin* | rhapsody*) |
# PIC is the default on this platform |
# Common symbols not allowed in MH_DYLIB files |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' |
;; |
msdosdjgpp*) |
# Just because we use GCC doesn't mean we suddenly get shared libraries |
# on systems that don't support them. |
_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no |
enable_shared=no |
;; |
sysv4*MP*) |
if test -d /usr/nec; then |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic |
fi |
;; |
hpux*) |
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but |
# not for PA HP-UX. |
case "$host_cpu" in |
hppa*64*|ia64*) |
# +Z the default |
;; |
*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' |
;; |
esac |
;; |
*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' |
;; |
esac |
else |
# PORTME Check for flag to pass linker flags through the system compiler. |
case $host_os in |
aix*) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
if test "$host_cpu" = ia64; then |
# AIX 5 now supports IA64 processor |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
else |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' |
fi |
;; |
mingw* | pw32* | os2*) |
# This hack is so that the source file can tell whether it is being |
# built for inclusion in a dll (and should export symbols for example). |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' |
;; |
hpux9* | hpux10* | hpux11*) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but |
# not for PA HP-UX. |
case "$host_cpu" in |
hppa*64*|ia64*) |
# +Z the default |
;; |
*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' |
;; |
esac |
# Is there a better lt_prog_compiler_static that works with the bundled CC? |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' |
;; |
irix5* | irix6* | nonstopux*) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
# PIC (with -KPIC) is the default. |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' |
;; |
newsos6) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
;; |
linux*) |
case $CC in |
icc* | ecc*) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' |
;; |
ccc*) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
# All Alpha code is PIC. |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' |
;; |
esac |
;; |
osf3* | osf4* | osf5*) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
# All OSF/1 code is PIC. |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' |
;; |
sco3.2v5*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' |
;; |
solaris*) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
;; |
sunos4*) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
;; |
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) |
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
;; |
sysv4*MP*) |
if test -d /usr/nec ;then |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
fi |
;; |
uts4*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' |
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
;; |
*) |
_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no |
;; |
esac |
fi |
]) |
AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) |
# |
# Check to make sure the PIC flag actually works. |
# |
if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then |
AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], |
_LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), |
[$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], |
[case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in |
"" | " "*) ;; |
*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; |
esac], |
[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= |
_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) |
fi |
case "$host_os" in |
# For platforms which do not support PIC, -DPIC is meaningless: |
*djgpp*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= |
;; |
*) |
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" |
;; |
esac |
]) |
# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) |
# ------------------------------------ |
# See if the linker supports building shared libraries. |
AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], |
[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) |
ifelse([$1],[CXX],[ |
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' |
case $host_os in |
aix4* | aix5*) |
# If we're using GNU nm, then we don't want the "-C" option. |
# -C means demangle to AIX nm, but means don't demangle with GNU nm |
if $NM -V 2>&1 | grep 'GNU' > /dev/null; then |
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' |
else |
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' |
fi |
;; |
pw32*) |
_LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" |
;; |
cygwin* | mingw*) |
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' |
;; |
*) |
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' |
;; |
esac |
],[ |
runpath_var= |
_LT_AC_TAGVAR(allow_undefined_flag, $1)= |
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no |
_LT_AC_TAGVAR(archive_cmds, $1)= |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)= |
_LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= |
_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= |
_LT_AC_TAGVAR(thread_safe_flag_spec, $1)= |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=no |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported |
_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown |
_LT_AC_TAGVAR(hardcode_automatic, $1)=no |
_LT_AC_TAGVAR(module_cmds, $1)= |
_LT_AC_TAGVAR(module_expsym_cmds, $1)= |
_LT_AC_TAGVAR(always_export_symbols, $1)=no |
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' |
# include_expsyms should be a list of space-separated symbols to be *always* |
# included in the symbol list |
_LT_AC_TAGVAR(include_expsyms, $1)= |
# exclude_expsyms can be an extended regexp of symbols to exclude |
# it will be wrapped by ` (' and `)$', so one must not match beginning or |
# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', |
# as well as any symbol that contains `d'. |
_LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" |
# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out |
# platforms (ab)use it in PIC code, but their linkers get confused if |
# the symbol is explicitly referenced. Since portable code cannot |
# rely on this symbol name, it's probably fine to never include it in |
# preloaded symbol tables. |
extract_expsyms_cmds= |
case $host_os in |
cygwin* | mingw* | pw32*) |
# FIXME: the MSVC++ port hasn't been tested in a loooong time |
# When not using gcc, we currently assume that we are using |
# Microsoft Visual C++. |
if test "$GCC" != yes; then |
with_gnu_ld=no |
fi |
;; |
openbsd*) |
with_gnu_ld=no |
;; |
esac |
_LT_AC_TAGVAR(ld_shlibs, $1)=yes |
if test "$with_gnu_ld" = yes; then |
# If archive_cmds runs LD, not CC, wlarc should be empty |
wlarc='${wl}' |
# See if GNU ld supports shared libraries. |
case $host_os in |
aix3* | aix4* | aix5*) |
# On AIX/PPC, the GNU linker is very broken |
if test "$host_cpu" != ia64; then |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
cat <<EOF 1>&2 |
*** Warning: the GNU linker, at least up to release 2.9.1, is reported |
*** to be unable to reliably create shared libraries on AIX. |
*** Therefore, libtool is disabling shared libraries support. If you |
*** really care for shared libraries, you may want to modify your PATH |
*** so that a non-GNU linker is found, and then restart. |
EOF |
fi |
;; |
amigaos*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports |
# that the semantics of dynamic libraries on AmigaOS, at least up |
# to version 4, is to share data among multiple programs linked |
# with the same dynamic library. Since this doesn't match the |
# behavior of shared libraries on other platforms, we can't use |
# them. |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
beos*) |
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported |
# Joseph Beckenbach <jrb3@best.com> says some releases of gcc |
# support --undefined. This deserves some investigation. FIXME |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' |
else |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
cygwin* | mingw* | pw32*) |
# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, |
# as there is no search path for DLLs. |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=no |
_LT_AC_TAGVAR(always_export_symbols, $1)=no |
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes |
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' |
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' |
# If the export-symbols file already is a .def file (1st line |
# is EXPORTS), use it as is; otherwise, prepend... |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then |
cp $export_symbols $output_objdir/$soname.def; |
else |
echo EXPORTS > $output_objdir/$soname.def; |
cat $export_symbols >> $output_objdir/$soname.def; |
fi~ |
$CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' |
else |
ld_shlibs=no |
fi |
;; |
netbsd*) |
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' |
wlarc= |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' |
fi |
;; |
solaris* | sysv5*) |
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
cat <<EOF 1>&2 |
*** Warning: The releases 2.8.* of the GNU linker cannot reliably |
*** create shared libraries on Solaris systems. Therefore, libtool |
*** is disabling shared libraries support. We urge you to upgrade GNU |
*** binutils to release 2.9.1 or newer. Another option is to modify |
*** your PATH or compiler configuration so that the native linker is |
*** used, and then restart. |
EOF |
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' |
else |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
sunos4*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' |
wlarc= |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
*) |
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' |
else |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
esac |
if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then |
runpath_var=LD_RUN_PATH |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' |
# ancient GNU ld didn't support --whole-archive et. al. |
if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' |
else |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= |
fi |
fi |
else |
# PORTME fill in a description of your system's linker (not GNU ld) |
case $host_os in |
aix3*) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported |
_LT_AC_TAGVAR(always_export_symbols, $1)=yes |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' |
# Note: this linker hardcodes the directories in LIBPATH if there |
# are no directories specified by -L. |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
if test "$GCC" = yes && test -z "$link_static_flag"; then |
# Neither direct hardcoding nor static linking is supported with a |
# broken collect2. |
_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported |
fi |
;; |
aix4* | aix5*) |
if test "$host_cpu" = ia64; then |
# On IA64, the linker does run time linking by default, so we don't |
# have to do anything special. |
aix_use_runtimelinking=no |
exp_sym_flag='-Bexport' |
no_entry_flag="" |
else |
# If we're using GNU nm, then we don't want the "-C" option. |
# -C means demangle to AIX nm, but means don't demangle with GNU nm |
if $NM -V 2>&1 | grep 'GNU' > /dev/null; then |
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' |
else |
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' |
fi |
# KDE requires run time linking. Make it the default. |
aix_use_runtimelinking=yes |
exp_sym_flag='-bexport' |
no_entry_flag='-bnoentry' |
fi |
# When large executables or shared objects are built, AIX ld can |
# have problems creating the table of contents. If linking a library |
# or program results in "error TOC overflow" add -mminimal-toc to |
# CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not |
# enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. |
_LT_AC_TAGVAR(archive_cmds, $1)='' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' |
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
if test "$GCC" = yes; then |
case $host_os in aix4.[012]|aix4.[012].*) |
# We only want to do this on AIX 4.2 and lower, the check |
# below for broken collect2 doesn't work under 4.3+ |
collect2name=`${CC} -print-prog-name=collect2` |
if test -f "$collect2name" && \ |
strings "$collect2name" | grep resolve_lib_name >/dev/null |
then |
# We have reworked collect2 |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
else |
# We have old collect2 |
_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported |
# It fails to find uninstalled libraries when the uninstalled |
# path is not listed in the libpath. Setting hardcode_minus_L |
# to unsupported forces relinking |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= |
fi |
esac |
shared_flag='-shared' |
else |
# not using gcc |
if test "$host_cpu" = ia64; then |
# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release |
# chokes on -Wl,-G. The following line is correct: |
shared_flag='-G' |
else |
if test "$aix_use_runtimelinking" = yes; then |
shared_flag='-qmkshrobj ${wl}-G' |
else |
shared_flag='-qmkshrobj' |
fi |
fi |
fi |
# Let the compiler handle the export list. |
_LT_AC_TAGVAR(always_export_symbols, $1)=no |
if test "$aix_use_runtimelinking" = yes; then |
# Warning - without using the other runtime loading flags (-brtl), |
# -berok will link without error, but may produce a broken library. |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' |
# Determine the default libpath from the value encoded in an empty executable. |
_LT_AC_SYS_LIBPATH_AIX |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" |
_LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" |
else |
if test "$host_cpu" = ia64; then |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' |
_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" |
else |
# Determine the default libpath from the value encoded in an empty executable. |
_LT_AC_SYS_LIBPATH_AIX |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" |
# Warning - without using the other run time loading flags, |
# -berok will link without error, but may produce a broken library. |
_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' |
# -bexpall does not export symbols beginning with underscore (_) |
_LT_AC_TAGVAR(always_export_symbols, $1)=yes |
# Exported symbols can be pulled into shared objects from archives |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes |
# This is similar to how AIX traditionally builds it's shared libraries. |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' |
fi |
fi |
;; |
amigaos*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
# see comment about different semantics on the GNU ld section |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
bsdi4*) |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic |
;; |
cygwin* | mingw* | pw32*) |
# When not using gcc, we currently assume that we are using |
# Microsoft Visual C++. |
# hardcode_libdir_flag_spec is actually meaningless, as there is |
# no search path for DLLs. |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=no |
# Tell ltmain to make .lib files, not .a files. |
libext=lib |
# Tell ltmain to make .dll files, not .so files. |
shrext=".dll" |
# FIXME: Setting linknames here is a bad hack. |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' |
# The linker will automatically build a .lib file if we build a DLL. |
_LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' |
# FIXME: Should let the user specify the lib program. |
_LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' |
fix_srcfile_path='`cygpath -w "$srcfile"`' |
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes |
;; |
darwin* | rhapsody*) |
if test "$GXX" = yes ; then |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
case "$host_os" in |
rhapsody* | darwin1.[[012]]) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' |
;; |
*) # Darwin 1.3 on |
if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' |
else |
case ${MACOSX_DEPLOYMENT_TARGET} in |
10.[012]) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' |
;; |
10.*) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' |
;; |
esac |
fi |
;; |
esac |
lt_int_apple_cc_single_mod=no |
output_verbose_link_cmd='echo' |
if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then |
lt_int_apple_cc_single_mod=yes |
fi |
if test "X$lt_int_apple_cc_single_mod" = Xyes ; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' |
fi |
_LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' |
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's |
if test "X$lt_int_apple_cc_single_mod" = Xyes ; then |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
else |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
fi |
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_automatic, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' |
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
else |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
fi |
;; |
dgux*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
freebsd1*) |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
# FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor |
# support. Future versions do this automatically, but an explicit c++rt0.o |
# does not break anything, and helps significantly (at the cost of a little |
# extra space). |
freebsd2.2*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
# Unfortunately, older versions of FreeBSD 2 do not have this feature. |
freebsd2*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
# FreeBSD 3 and greater uses gcc -shared to do shared libraries. |
freebsd* | kfreebsd*-gnu) |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
hpux9*) |
if test "$GCC" = yes; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' |
fi |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
# hardcode_minus_L: Not really in the search PATH, |
# but as the default location of the library. |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' |
;; |
hpux10* | hpux11*) |
if test "$GCC" = yes -a "$with_gnu_ld" = no; then |
case "$host_cpu" in |
hppa*64*|ia64*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' |
;; |
*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs' |
;; |
esac |
else |
case "$host_cpu" in |
hppa*64*|ia64*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' |
;; |
*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' |
;; |
esac |
fi |
if test "$with_gnu_ld" = no; then |
case "$host_cpu" in |
hppa*64*) |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
ia64*) |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
# hardcode_minus_L: Not really in the search PATH, |
# but as the default location of the library. |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
;; |
*) |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' |
# hardcode_minus_L: Not really in the search PATH, |
# but as the default location of the library. |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
;; |
esac |
fi |
;; |
irix5* | irix6* | nonstopux*) |
if test "$GCC" = yes; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' |
fi |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
;; |
netbsd*) |
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF |
fi |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
newsos6) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
openbsd*) |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' |
else |
case $host_os in |
openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' |
;; |
*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' |
;; |
esac |
fi |
;; |
os2*) |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported |
_LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def' |
_LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' |
;; |
osf3*) |
if test "$GCC" = yes; then |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' |
else |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' |
fi |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
;; |
osf4* | osf5*) # as osf3* with the addition of -msym flag |
if test "$GCC" = yes; then |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' |
else |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ |
$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' |
# Both c and cxx compiler support -rpath directly |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' |
fi |
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
;; |
sco3.2v5*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' |
runpath_var=LD_RUN_PATH |
hardcode_runpath_var=yes |
;; |
solaris*) |
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' |
if test "$GCC" = yes; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ |
$CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp' |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ |
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' |
fi |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
case $host_os in |
solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; |
*) # Supported since Solaris 2.6 (maybe 2.5.1?) |
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; |
esac |
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
;; |
sunos4*) |
if test "x$host_vendor" = xsequent; then |
# Use $CC to link under sequent, because it throws in some extra .o |
# files that make .init and .fini sections work. |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs' |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' |
fi |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
sysv4) |
case $host_vendor in |
sni) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? |
;; |
siemens) |
## LD is ld it makes a PLAMLIB |
## CC just makes a GrossModule. |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' |
_LT_AC_TAGVAR(hardcode_direct, $1)=no |
;; |
motorola) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie |
;; |
esac |
runpath_var='LD_RUN_PATH' |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
sysv4.3*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' |
;; |
sysv4*MP*) |
if test -d /usr/nec; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
runpath_var=LD_RUN_PATH |
hardcode_runpath_var=yes |
_LT_AC_TAGVAR(ld_shlibs, $1)=yes |
fi |
;; |
sysv4.2uw2*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_direct, $1)=yes |
_LT_AC_TAGVAR(hardcode_minus_L, $1)=no |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
hardcode_runpath_var=yes |
runpath_var=LD_RUN_PATH |
;; |
sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) |
_LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' |
if test "$GCC" = yes; then |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' |
else |
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' |
fi |
runpath_var='LD_RUN_PATH' |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
sysv5*) |
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' |
# $CC -shared without GNU ld will not create a library from C++ |
# object files and a static libstdc++, better avoid it by now |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ |
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
runpath_var='LD_RUN_PATH' |
;; |
uts4*) |
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' |
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' |
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
;; |
*) |
_LT_AC_TAGVAR(ld_shlibs, $1)=no |
;; |
esac |
fi |
]) |
AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) |
test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no |
variables_saved_for_relink="PATH $shlibpath_var $runpath_var" |
if test "$GCC" = yes; then |
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" |
fi |
# |
# Do we need to explicitly link libc? |
# |
case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in |
x|xyes) |
# Assume -lc should be added |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes |
if test "$enable_shared" = yes && test "$GCC" = yes; then |
case $_LT_AC_TAGVAR(archive_cmds, $1) in |
*'~'*) |
# FIXME: we may have to deal with multi-command sequences. |
;; |
'$CC '*) |
# Test whether the compiler implicitly links with -lc since on some |
# systems, -lgcc has to come before -lc. If gcc already passes -lc |
# to ld, don't add -lc before -lgcc. |
AC_MSG_CHECKING([whether -lc should be explicitly linked in]) |
$rm conftest* |
printf "$lt_simple_compile_test_code" > conftest.$ac_ext |
if AC_TRY_EVAL(ac_compile) 2>conftest.err; then |
soname=conftest |
lib=conftest |
libobjs=conftest.$ac_objext |
deplibs= |
wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) |
compiler_flags=-v |
linker_flags=-v |
verstring= |
output_objdir=. |
libname=conftest |
lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) |
_LT_AC_TAGVAR(allow_undefined_flag, $1)= |
if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) |
then |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
else |
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes |
fi |
_LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag |
else |
cat conftest.err 1>&5 |
fi |
$rm conftest* |
AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) |
;; |
esac |
fi |
;; |
esac |
])# AC_LIBTOOL_PROG_LD_SHLIBS |
# _LT_AC_FILE_LTDLL_C |
# ------------------- |
# Be careful that the start marker always follows a newline. |
AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ |
# /* ltdll.c starts here */ |
# #define WIN32_LEAN_AND_MEAN |
# #include <windows.h> |
# #undef WIN32_LEAN_AND_MEAN |
# #include <stdio.h> |
# |
# #ifndef __CYGWIN__ |
# # ifdef __CYGWIN32__ |
# # define __CYGWIN__ __CYGWIN32__ |
# # endif |
# #endif |
# |
# #ifdef __cplusplus |
# extern "C" { |
# #endif |
# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); |
# #ifdef __cplusplus |
# } |
# #endif |
# |
# #ifdef __CYGWIN__ |
# #include <cygwin/cygwin_dll.h> |
# DECLARE_CYGWIN_DLL( DllMain ); |
# #endif |
# HINSTANCE __hDllInstance_base; |
# |
# BOOL APIENTRY |
# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) |
# { |
# __hDllInstance_base = hInst; |
# return TRUE; |
# } |
# /* ltdll.c ends here */ |
])# _LT_AC_FILE_LTDLL_C |
# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) |
# --------------------------------- |
AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) |
# old names |
AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) |
AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) |
AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) |
AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) |
AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) |
AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) |
AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) |
# This is just to silence aclocal about the macro not being used |
ifelse([AC_DISABLE_FAST_INSTALL]) |
AC_DEFUN([LT_AC_PROG_GCJ], |
[AC_CHECK_TOOL(GCJ, gcj, no) |
test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" |
AC_SUBST(GCJFLAGS) |
]) |
AC_DEFUN([LT_AC_PROG_RC], |
[AC_CHECK_TOOL(RC, windres, no) |
]) |
############################################################ |
# NOTE: This macro has been submitted for inclusion into # |
# GNU Autoconf as AC_PROG_SED. When it is available in # |
# a released version of Autoconf we should remove this # |
# macro and use it instead. # |
############################################################ |
# LT_AC_PROG_SED |
# -------------- |
# Check for a fully-functional sed program, that truncates |
# as few characters as possible. Prefer GNU sed if found. |
AC_DEFUN([LT_AC_PROG_SED], |
[AC_MSG_CHECKING([for a sed that does not truncate output]) |
AC_CACHE_VAL(lt_cv_path_SED, |
[# Loop through the user's path and test for sed and gsed. |
# Then use that list of sed's as ones to test for truncation. |
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR |
for as_dir in $PATH |
do |
IFS=$as_save_IFS |
test -z "$as_dir" && as_dir=. |
for lt_ac_prog in sed gsed; do |
for ac_exec_ext in '' $ac_executable_extensions; do |
if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then |
lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" |
fi |
done |
done |
done |
lt_ac_max=0 |
lt_ac_count=0 |
# Add /usr/xpg4/bin/sed as it is typically found on Solaris |
# along with /bin/sed that truncates output. |
for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do |
test ! -f $lt_ac_sed && break |
cat /dev/null > conftest.in |
lt_ac_count=0 |
echo $ECHO_N "0123456789$ECHO_C" >conftest.in |
# Check for GNU sed and select it if it is found. |
if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then |
lt_cv_path_SED=$lt_ac_sed |
break |
fi |
while true; do |
cat conftest.in conftest.in >conftest.tmp |
mv conftest.tmp conftest.in |
cp conftest.in conftest.nl |
echo >>conftest.nl |
$lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break |
cmp -s conftest.out conftest.nl || break |
# 10000 chars as input seems more than enough |
test $lt_ac_count -gt 10 && break |
lt_ac_count=`expr $lt_ac_count + 1` |
if test $lt_ac_count -gt $lt_ac_max; then |
lt_ac_max=$lt_ac_count |
lt_cv_path_SED=$lt_ac_sed |
fi |
done |
done |
]) |
SED=$lt_cv_path_SED |
AC_MSG_RESULT([$SED]) |
]) |
/tilgungsplan/trunk/admin/compile |
---|
0,0 → 1,142 |
#! /bin/sh |
# Wrapper for compilers which do not understand `-c -o'. |
scriptversion=2005-05-14.22 |
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. |
# Written by Tom Tromey <tromey@cygnus.com>. |
# |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 2, or (at your option) |
# any later version. |
# |
# This program 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 General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
# As a special exception to the GNU General Public License, if you |
# distribute this file as part of a program that contains a |
# configuration script generated by Autoconf, you may include it under |
# the same distribution terms that you use for the rest of that program. |
# This file is maintained in Automake, please report |
# bugs to <bug-automake@gnu.org> or send patches to |
# <automake-patches@gnu.org>. |
case $1 in |
'') |
echo "$0: No command. Try \`$0 --help' for more information." 1>&2 |
exit 1; |
;; |
-h | --h*) |
cat <<\EOF |
Usage: compile [--help] [--version] PROGRAM [ARGS] |
Wrapper for compilers which do not understand `-c -o'. |
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining |
arguments, and rename the output as expected. |
If you are trying to build a whole package this is not the |
right script to run: please start by reading the file `INSTALL'. |
Report bugs to <bug-automake@gnu.org>. |
EOF |
exit $? |
;; |
-v | --v*) |
echo "compile $scriptversion" |
exit $? |
;; |
esac |
ofile= |
cfile= |
eat= |
for arg |
do |
if test -n "$eat"; then |
eat= |
else |
case $1 in |
-o) |
# configure might choose to run compile as `compile cc -o foo foo.c'. |
# So we strip `-o arg' only if arg is an object. |
eat=1 |
case $2 in |
*.o | *.obj) |
ofile=$2 |
;; |
*) |
set x "$@" -o "$2" |
shift |
;; |
esac |
;; |
*.c) |
cfile=$1 |
set x "$@" "$1" |
shift |
;; |
*) |
set x "$@" "$1" |
shift |
;; |
esac |
fi |
shift |
done |
if test -z "$ofile" || test -z "$cfile"; then |
# If no `-o' option was seen then we might have been invoked from a |
# pattern rule where we don't need one. That is ok -- this is a |
# normal compilation that the losing compiler can handle. If no |
# `.c' file was seen then we are probably linking. That is also |
# ok. |
exec "$@" |
fi |
# Name of file we expect compiler to create. |
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` |
# Create the lock directory. |
# Note: use `[/.-]' here to ensure that we don't use the same name |
# that we are using for the .o file. Also, base the name on the expected |
# object file name, since that is what matters with a parallel build. |
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d |
while true; do |
if mkdir "$lockdir" >/dev/null 2>&1; then |
break |
fi |
sleep 1 |
done |
# FIXME: race condition here if user kills between mkdir and trap. |
trap "rmdir '$lockdir'; exit 1" 1 2 15 |
# Run the compile. |
"$@" |
ret=$? |
if test -f "$cofile"; then |
mv "$cofile" "$ofile" |
elif test -f "${cofile}bj"; then |
mv "${cofile}bj" "$ofile" |
fi |
rmdir "$lockdir" |
exit $ret |
# Local Variables: |
# mode: shell-script |
# sh-indentation: 2 |
# eval: (add-hook 'write-file-hooks 'time-stamp) |
# time-stamp-start: "scriptversion=" |
# time-stamp-format: "%:y-%02m-%02d.%02H" |
# time-stamp-end: "$" |
# End: |
/tilgungsplan/trunk/admin/bcheck.pl |
---|
0,0 → 1,157 |
#!/usr/bin/perl -w |
use DB_File; |
use Fcntl ':flock'; |
if (!defined($ARGV[0])) { |
print "usage: requires .class dump as parameter!\n"; |
exit; |
} |
sub bailout |
{ |
untie %bcheckdb if(defined(%bcheckdb)); |
if(defined(MYLOCK)) { |
flock MYLOCK, LOCK_UN; |
close(MYLOCK); |
} |
print @_; |
exit 5; |
} |
sub ask_user |
{ |
my ($dbkey, $dbchunk) = @_; |
if (defined($ENV{"BCHECK_UPDATE"})) { |
$bcheckdb{$dbkey} = $dbchunk; |
return; |
} |
&bailout("BC problem detected") if (! -t STDIN); |
print "(I)gnore / (Q)uit / (U)pdate: "; |
my $key; |
while(defined(read STDIN, $key, 1)) { |
$key = lc($key); |
print "got: >$key<\n"; |
return if ($key eq 'i'); |
&bailout("BC problem. aborted") if ($key eq 'q'); |
if ($key eq 'u') { |
$bcheckdb{$dbkey} = $dbchunk; |
return; |
} |
print "\n(I)gnore / (Q)uit / (U)pdate: "; |
} |
} |
sub diff_chunk($$) |
{ |
my ($oldl, $newl) = @_; |
my @old = split /^/m, $oldl; |
my @new = split /^/m, $newl; |
my $haschanges = 0; |
my $max = $#old > $#new ? $#old : $#new; |
die "whoops. key different" if ($old[0] ne $new[0]); |
if ($#old != $#new) { |
warn ("Structural difference.\n"); |
print @old; |
print "-----------------------------------------------\n"; |
print @new; |
$haschanges = 1; |
return $haschanges; |
} |
print $old[0]; |
my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/); |
my $c = 1; |
while ($c < $max) { |
my ($o, $n) = ($old[$c], $new[$c]); |
chomp $o; |
chomp $n; |
$c++; |
next if ($o eq $n); |
if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) { |
next if ($n eq "$1$class$2"); |
} |
$haschanges = 1; |
print "-$o\n+$n\n\n"; |
} |
return $haschanges; |
} |
local $dblock = $ENV{"HOME"} . "/bcheck.lock"; |
my $dbfile = $ENV{"HOME"} . "/bcheck.db"; |
my $cdump = $ARGV[0]; |
die "file $cdump is not readable: $!" if (! -f $cdump); |
# make sure the advisory lock exists |
open(MYLOCK, ">$dblock"); |
print MYLOCK ""; |
flock MYLOCK, LOCK_EX; |
tie %bcheckdb, 'DB_File', $dbfile; |
my $chunk = ""; |
open (IN, "<$cdump") or die "cannot open $cdump: $!"; |
while (<IN>) { |
chop; |
s/0x[0-9a-fA-F]+/0x......../g; |
s/base size=/size=/g; |
s/\(\)\s*$//g; |
s/base align=/align=/g; |
$chunk .= $_ . "\n"; |
if(/^\s*$/) { |
my @lines = split /^/m, $chunk; |
my $key = $lines[0]; |
chomp $key; |
if($key !~ /<anonymous struct>/ && |
$key !~ /<anonymous union>/) { |
if(defined($bcheckdb{$key})) { |
my $dbversion = $bcheckdb{$key}; |
if($dbversion ne $chunk) { |
&ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk)); |
} |
} |
else { |
$bcheckdb{$key} = $chunk; |
print "NEW: $key\n"; |
} |
} |
$chunk = ""; |
next; |
} |
} |
close(IN); |
untie %bcheckdb; |
flock MYLOCK, LOCK_UN; |
close(MYLOCK); |
exit 0; |
/tilgungsplan/trunk/admin/config.guess |
---|
0,0 → 1,1516 |
#! /bin/sh |
# Attempt to guess a canonical system name. |
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, |
# Inc. |
timestamp='2007-03-06' |
# This file is free software; you can redistribute it and/or modify it |
# under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 2 of the License, or |
# (at your option) any later version. |
# |
# This program 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 |
# General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA |
# 02110-1301, USA. |
# |
# As a special exception to the GNU General Public License, if you |
# distribute this file as part of a program that contains a |
# configuration script generated by Autoconf, you may include it under |
# the same distribution terms that you use for the rest of that program. |
# Originally written by Per Bothner <per@bothner.com>. |
# Please send patches to <config-patches@gnu.org>. Submit a context |
# diff and a properly formatted ChangeLog entry. |
# |
# This script attempts to guess a canonical system name similar to |
# config.sub. If it succeeds, it prints the system name on stdout, and |
# exits with 0. Otherwise, it exits with 1. |
# |
# The plan is that this can be called by configure scripts if you |
# don't specify an explicit build system type. |
me=`echo "$0" | sed -e 's,.*/,,'` |
usage="\ |
Usage: $0 [OPTION] |
Output the configuration name of the system \`$me' is run on. |
Operation modes: |
-h, --help print this help, then exit |
-t, --time-stamp print date of last modification, then exit |
-v, --version print version number, then exit |
Report bugs and patches to <config-patches@gnu.org>." |
version="\ |
GNU config.guess ($timestamp) |
Originally written by Per Bothner. |
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 |
Free Software Foundation, Inc. |
This is free software; see the source for copying conditions. There is NO |
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
help=" |
Try \`$me --help' for more information." |
# Parse command line |
while test $# -gt 0 ; do |
case $1 in |
--time-stamp | --time* | -t ) |
echo "$timestamp" ; exit ;; |
--version | -v ) |
echo "$version" ; exit ;; |
--help | --h* | -h ) |
echo "$usage"; exit ;; |
-- ) # Stop option processing |
shift; break ;; |
- ) # Use stdin as input. |
break ;; |
-* ) |
echo "$me: invalid option $1$help" >&2 |
exit 1 ;; |
* ) |
break ;; |
esac |
done |
if test $# != 0; then |
echo "$me: too many arguments$help" >&2 |
exit 1 |
fi |
trap 'exit 1' 1 2 15 |
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a |
# compiler to aid in system detection is discouraged as it requires |
# temporary files to be created and, as you can see below, it is a |
# headache to deal with in a portable fashion. |
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still |
# use `HOST_CC' if defined, but it is deprecated. |
# Portable tmp directory creation inspired by the Autoconf team. |
set_cc_for_build=' |
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; |
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; |
: ${TMPDIR=/tmp} ; |
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || |
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || |
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || |
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; |
dummy=$tmp/dummy ; |
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; |
case $CC_FOR_BUILD,$HOST_CC,$CC in |
,,) echo "int x;" > $dummy.c ; |
for c in cc gcc c89 c99 ; do |
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then |
CC_FOR_BUILD="$c"; break ; |
fi ; |
done ; |
if test x"$CC_FOR_BUILD" = x ; then |
CC_FOR_BUILD=no_compiler_found ; |
fi |
;; |
,,*) CC_FOR_BUILD=$CC ;; |
,*,*) CC_FOR_BUILD=$HOST_CC ;; |
esac ; set_cc_for_build= ;' |
# This is needed to find uname on a Pyramid OSx when run in the BSD universe. |
# (ghazi@noc.rutgers.edu 1994-08-24) |
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then |
PATH=$PATH:/.attbin ; export PATH |
fi |
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown |
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown |
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown |
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown |
# Note: order is significant - the case branches are not exclusive. |
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
*:NetBSD:*:*) |
# NetBSD (nbsd) targets should (where applicable) match one or |
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, |
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently |
# switched to ELF, *-*-netbsd* would select the old |
# object file format. This provides both forward |
# compatibility and a consistent mechanism for selecting the |
# object file format. |
# |
# Note: NetBSD doesn't particularly care about the vendor |
# portion of the name. We always set it to "unknown". |
sysctl="sysctl -n hw.machine_arch" |
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ |
/usr/sbin/$sysctl 2>/dev/null || echo unknown)` |
case "${UNAME_MACHINE_ARCH}" in |
armeb) machine=armeb-unknown ;; |
arm*) machine=arm-unknown ;; |
sh3el) machine=shl-unknown ;; |
sh3eb) machine=sh-unknown ;; |
sh5el) machine=sh5le-unknown ;; |
*) machine=${UNAME_MACHINE_ARCH}-unknown ;; |
esac |
# The Operating System including object format, if it has switched |
# to ELF recently, or will in the future. |
case "${UNAME_MACHINE_ARCH}" in |
arm*|i386|m68k|ns32k|sh3*|sparc|vax) |
eval $set_cc_for_build |
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
| grep __ELF__ >/dev/null |
then |
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). |
# Return netbsd for either. FIX? |
os=netbsd |
else |
os=netbsdelf |
fi |
;; |
*) |
os=netbsd |
;; |
esac |
# The OS release |
# Debian GNU/NetBSD machines have a different userland, and |
# thus, need a distinct triplet. However, they do not need |
# kernel version information, so it can be replaced with a |
# suitable tag, in the style of linux-gnu. |
case "${UNAME_VERSION}" in |
Debian*) |
release='-gnu' |
;; |
*) |
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` |
;; |
esac |
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: |
# contains redundant information, the shorter form: |
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. |
echo "${machine}-${os}${release}" |
exit ;; |
*:OpenBSD:*:*) |
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` |
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} |
exit ;; |
*:ekkoBSD:*:*) |
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} |
exit ;; |
*:SolidBSD:*:*) |
echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} |
exit ;; |
macppc:MirBSD:*:*) |
echo powerpc-unknown-mirbsd${UNAME_RELEASE} |
exit ;; |
*:MirBSD:*:*) |
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} |
exit ;; |
alpha:OSF1:*:*) |
case $UNAME_RELEASE in |
*4.0) |
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` |
;; |
*5.*) |
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` |
;; |
esac |
# According to Compaq, /usr/sbin/psrinfo has been available on |
# OSF/1 and Tru64 systems produced since 1995. I hope that |
# covers most systems running today. This code pipes the CPU |
# types through head -n 1, so we only detect the type of CPU 0. |
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` |
case "$ALPHA_CPU_TYPE" in |
"EV4 (21064)") |
UNAME_MACHINE="alpha" ;; |
"EV4.5 (21064)") |
UNAME_MACHINE="alpha" ;; |
"LCA4 (21066/21068)") |
UNAME_MACHINE="alpha" ;; |
"EV5 (21164)") |
UNAME_MACHINE="alphaev5" ;; |
"EV5.6 (21164A)") |
UNAME_MACHINE="alphaev56" ;; |
"EV5.6 (21164PC)") |
UNAME_MACHINE="alphapca56" ;; |
"EV5.7 (21164PC)") |
UNAME_MACHINE="alphapca57" ;; |
"EV6 (21264)") |
UNAME_MACHINE="alphaev6" ;; |
"EV6.7 (21264A)") |
UNAME_MACHINE="alphaev67" ;; |
"EV6.8CB (21264C)") |
UNAME_MACHINE="alphaev68" ;; |
"EV6.8AL (21264B)") |
UNAME_MACHINE="alphaev68" ;; |
"EV6.8CX (21264D)") |
UNAME_MACHINE="alphaev68" ;; |
"EV6.9A (21264/EV69A)") |
UNAME_MACHINE="alphaev69" ;; |
"EV7 (21364)") |
UNAME_MACHINE="alphaev7" ;; |
"EV7.9 (21364A)") |
UNAME_MACHINE="alphaev79" ;; |
esac |
# A Pn.n version is a patched version. |
# A Vn.n version is a released version. |
# A Tn.n version is a released field test version. |
# A Xn.n version is an unreleased experimental baselevel. |
# 1.2 uses "1.2" for uname -r. |
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` |
exit ;; |
Alpha\ *:Windows_NT*:*) |
# How do we know it's Interix rather than the generic POSIX subsystem? |
# Should we change UNAME_MACHINE based on the output of uname instead |
# of the specific Alpha model? |
echo alpha-pc-interix |
exit ;; |
21064:Windows_NT:50:3) |
echo alpha-dec-winnt3.5 |
exit ;; |
Amiga*:UNIX_System_V:4.0:*) |
echo m68k-unknown-sysv4 |
exit ;; |
*:[Aa]miga[Oo][Ss]:*:*) |
echo ${UNAME_MACHINE}-unknown-amigaos |
exit ;; |
*:[Mm]orph[Oo][Ss]:*:*) |
echo ${UNAME_MACHINE}-unknown-morphos |
exit ;; |
*:OS/390:*:*) |
echo i370-ibm-openedition |
exit ;; |
*:z/VM:*:*) |
echo s390-ibm-zvmoe |
exit ;; |
*:OS400:*:*) |
echo powerpc-ibm-os400 |
exit ;; |
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) |
echo arm-acorn-riscix${UNAME_RELEASE} |
exit ;; |
arm:riscos:*:*|arm:RISCOS:*:*) |
echo arm-unknown-riscos |
exit ;; |
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) |
echo hppa1.1-hitachi-hiuxmpp |
exit ;; |
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) |
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. |
if test "`(/bin/universe) 2>/dev/null`" = att ; then |
echo pyramid-pyramid-sysv3 |
else |
echo pyramid-pyramid-bsd |
fi |
exit ;; |
NILE*:*:*:dcosx) |
echo pyramid-pyramid-svr4 |
exit ;; |
DRS?6000:unix:4.0:6*) |
echo sparc-icl-nx6 |
exit ;; |
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) |
case `/usr/bin/uname -p` in |
sparc) echo sparc-icl-nx7; exit ;; |
esac ;; |
sun4H:SunOS:5.*:*) |
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
exit ;; |
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) |
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
exit ;; |
i86pc:SunOS:5.*:*) |
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
exit ;; |
sun4*:SunOS:6*:*) |
# According to config.sub, this is the proper way to canonicalize |
# SunOS6. Hard to guess exactly what SunOS6 will be like, but |
# it's likely to be more like Solaris than SunOS4. |
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
exit ;; |
sun4*:SunOS:*:*) |
case "`/usr/bin/arch -k`" in |
Series*|S4*) |
UNAME_RELEASE=`uname -v` |
;; |
esac |
# Japanese Language versions have a version number like `4.1.3-JL'. |
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` |
exit ;; |
sun3*:SunOS:*:*) |
echo m68k-sun-sunos${UNAME_RELEASE} |
exit ;; |
sun*:*:4.2BSD:*) |
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` |
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 |
case "`/bin/arch`" in |
sun3) |
echo m68k-sun-sunos${UNAME_RELEASE} |
;; |
sun4) |
echo sparc-sun-sunos${UNAME_RELEASE} |
;; |
esac |
exit ;; |
aushp:SunOS:*:*) |
echo sparc-auspex-sunos${UNAME_RELEASE} |
exit ;; |
# The situation for MiNT is a little confusing. The machine name |
# can be virtually everything (everything which is not |
# "atarist" or "atariste" at least should have a processor |
# > m68000). The system name ranges from "MiNT" over "FreeMiNT" |
# to the lowercase version "mint" (or "freemint"). Finally |
# the system name "TOS" denotes a system which is actually not |
# MiNT. But MiNT is downward compatible to TOS, so this should |
# be no problem. |
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) |
echo m68k-atari-mint${UNAME_RELEASE} |
exit ;; |
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) |
echo m68k-atari-mint${UNAME_RELEASE} |
exit ;; |
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) |
echo m68k-atari-mint${UNAME_RELEASE} |
exit ;; |
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) |
echo m68k-milan-mint${UNAME_RELEASE} |
exit ;; |
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) |
echo m68k-hades-mint${UNAME_RELEASE} |
exit ;; |
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) |
echo m68k-unknown-mint${UNAME_RELEASE} |
exit ;; |
m68k:machten:*:*) |
echo m68k-apple-machten${UNAME_RELEASE} |
exit ;; |
powerpc:machten:*:*) |
echo powerpc-apple-machten${UNAME_RELEASE} |
exit ;; |
RISC*:Mach:*:*) |
echo mips-dec-mach_bsd4.3 |
exit ;; |
RISC*:ULTRIX:*:*) |
echo mips-dec-ultrix${UNAME_RELEASE} |
exit ;; |
VAX*:ULTRIX*:*:*) |
echo vax-dec-ultrix${UNAME_RELEASE} |
exit ;; |
2020:CLIX:*:* | 2430:CLIX:*:*) |
echo clipper-intergraph-clix${UNAME_RELEASE} |
exit ;; |
mips:*:*:UMIPS | mips:*:*:RISCos) |
eval $set_cc_for_build |
sed 's/^ //' << EOF >$dummy.c |
#ifdef __cplusplus |
#include <stdio.h> /* for printf() prototype */ |
int main (int argc, char *argv[]) { |
#else |
int main (argc, argv) int argc; char *argv[]; { |
#endif |
#if defined (host_mips) && defined (MIPSEB) |
#if defined (SYSTYPE_SYSV) |
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); |
#endif |
#if defined (SYSTYPE_SVR4) |
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); |
#endif |
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) |
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); |
#endif |
#endif |
exit (-1); |
} |
EOF |
$CC_FOR_BUILD -o $dummy $dummy.c && |
dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && |
SYSTEM_NAME=`$dummy $dummyarg` && |
{ echo "$SYSTEM_NAME"; exit; } |
echo mips-mips-riscos${UNAME_RELEASE} |
exit ;; |
Motorola:PowerMAX_OS:*:*) |
echo powerpc-motorola-powermax |
exit ;; |
Motorola:*:4.3:PL8-*) |
echo powerpc-harris-powermax |
exit ;; |
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) |
echo powerpc-harris-powermax |
exit ;; |
Night_Hawk:Power_UNIX:*:*) |
echo powerpc-harris-powerunix |
exit ;; |
m88k:CX/UX:7*:*) |
echo m88k-harris-cxux7 |
exit ;; |
m88k:*:4*:R4*) |
echo m88k-motorola-sysv4 |
exit ;; |
m88k:*:3*:R3*) |
echo m88k-motorola-sysv3 |
exit ;; |
AViiON:dgux:*:*) |
# DG/UX returns AViiON for all architectures |
UNAME_PROCESSOR=`/usr/bin/uname -p` |
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] |
then |
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ |
[ ${TARGET_BINARY_INTERFACE}x = x ] |
then |
echo m88k-dg-dgux${UNAME_RELEASE} |
else |
echo m88k-dg-dguxbcs${UNAME_RELEASE} |
fi |
else |
echo i586-dg-dgux${UNAME_RELEASE} |
fi |
exit ;; |
M88*:DolphinOS:*:*) # DolphinOS (SVR3) |
echo m88k-dolphin-sysv3 |
exit ;; |
M88*:*:R3*:*) |
# Delta 88k system running SVR3 |
echo m88k-motorola-sysv3 |
exit ;; |
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) |
echo m88k-tektronix-sysv3 |
exit ;; |
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) |
echo m68k-tektronix-bsd |
exit ;; |
*:IRIX*:*:*) |
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` |
exit ;; |
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. |
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id |
exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' |
i*86:AIX:*:*) |
echo i386-ibm-aix |
exit ;; |
ia64:AIX:*:*) |
if [ -x /usr/bin/oslevel ] ; then |
IBM_REV=`/usr/bin/oslevel` |
else |
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} |
fi |
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} |
exit ;; |
*:AIX:2:3) |
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then |
eval $set_cc_for_build |
sed 's/^ //' << EOF >$dummy.c |
#include <sys/systemcfg.h> |
main() |
{ |
if (!__power_pc()) |
exit(1); |
puts("powerpc-ibm-aix3.2.5"); |
exit(0); |
} |
EOF |
if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` |
then |
echo "$SYSTEM_NAME" |
else |
echo rs6000-ibm-aix3.2.5 |
fi |
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then |
echo rs6000-ibm-aix3.2.4 |
else |
echo rs6000-ibm-aix3.2 |
fi |
exit ;; |
*:AIX:*:[45]) |
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` |
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then |
IBM_ARCH=rs6000 |
else |
IBM_ARCH=powerpc |
fi |
if [ -x /usr/bin/oslevel ] ; then |
IBM_REV=`/usr/bin/oslevel` |
else |
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} |
fi |
echo ${IBM_ARCH}-ibm-aix${IBM_REV} |
exit ;; |
*:AIX:*:*) |
echo rs6000-ibm-aix |
exit ;; |
ibmrt:4.4BSD:*|romp-ibm:BSD:*) |
echo romp-ibm-bsd4.4 |
exit ;; |
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and |
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to |
exit ;; # report: romp-ibm BSD 4.3 |
*:BOSX:*:*) |
echo rs6000-bull-bosx |
exit ;; |
DPX/2?00:B.O.S.:*:*) |
echo m68k-bull-sysv3 |
exit ;; |
9000/[34]??:4.3bsd:1.*:*) |
echo m68k-hp-bsd |
exit ;; |
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) |
echo m68k-hp-bsd4.4 |
exit ;; |
9000/[34678]??:HP-UX:*:*) |
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` |
case "${UNAME_MACHINE}" in |
9000/31? ) HP_ARCH=m68000 ;; |
9000/[34]?? ) HP_ARCH=m68k ;; |
9000/[678][0-9][0-9]) |
if [ -x /usr/bin/getconf ]; then |
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` |
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` |
case "${sc_cpu_version}" in |
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 |
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 |
532) # CPU_PA_RISC2_0 |
case "${sc_kernel_bits}" in |
32) HP_ARCH="hppa2.0n" ;; |
64) HP_ARCH="hppa2.0w" ;; |
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 |
esac ;; |
esac |
fi |
if [ "${HP_ARCH}" = "" ]; then |
eval $set_cc_for_build |
sed 's/^ //' << EOF >$dummy.c |
#define _HPUX_SOURCE |
#include <stdlib.h> |
#include <unistd.h> |
int main () |
{ |
#if defined(_SC_KERNEL_BITS) |
long bits = sysconf(_SC_KERNEL_BITS); |
#endif |
long cpu = sysconf (_SC_CPU_VERSION); |
switch (cpu) |
{ |
case CPU_PA_RISC1_0: puts ("hppa1.0"); break; |
case CPU_PA_RISC1_1: puts ("hppa1.1"); break; |
case CPU_PA_RISC2_0: |
#if defined(_SC_KERNEL_BITS) |
switch (bits) |
{ |
case 64: puts ("hppa2.0w"); break; |
case 32: puts ("hppa2.0n"); break; |
default: puts ("hppa2.0"); break; |
} break; |
#else /* !defined(_SC_KERNEL_BITS) */ |
puts ("hppa2.0"); break; |
#endif |
default: puts ("hppa1.0"); break; |
} |
exit (0); |
} |
EOF |
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` |
test -z "$HP_ARCH" && HP_ARCH=hppa |
fi ;; |
esac |
if [ ${HP_ARCH} = "hppa2.0w" ] |
then |
eval $set_cc_for_build |
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating |
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler |
# generating 64-bit code. GNU and HP use different nomenclature: |
# |
# $ CC_FOR_BUILD=cc ./config.guess |
# => hppa2.0w-hp-hpux11.23 |
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess |
# => hppa64-hp-hpux11.23 |
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | |
grep __LP64__ >/dev/null |
then |
HP_ARCH="hppa2.0w" |
else |
HP_ARCH="hppa64" |
fi |
fi |
echo ${HP_ARCH}-hp-hpux${HPUX_REV} |
exit ;; |
ia64:HP-UX:*:*) |
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` |
echo ia64-hp-hpux${HPUX_REV} |
exit ;; |
3050*:HI-UX:*:*) |
eval $set_cc_for_build |
sed 's/^ //' << EOF >$dummy.c |
#include <unistd.h> |
int |
main () |
{ |
long cpu = sysconf (_SC_CPU_VERSION); |
/* The order matters, because CPU_IS_HP_MC68K erroneously returns |
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct |
results, however. */ |
if (CPU_IS_PA_RISC (cpu)) |
{ |
switch (cpu) |
{ |
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; |
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; |
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; |
default: puts ("hppa-hitachi-hiuxwe2"); break; |
} |
} |
else if (CPU_IS_HP_MC68K (cpu)) |
puts ("m68k-hitachi-hiuxwe2"); |
else puts ("unknown-hitachi-hiuxwe2"); |
exit (0); |
} |
EOF |
$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && |
{ echo "$SYSTEM_NAME"; exit; } |
echo unknown-hitachi-hiuxwe2 |
exit ;; |
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) |
echo hppa1.1-hp-bsd |
exit ;; |
9000/8??:4.3bsd:*:*) |
echo hppa1.0-hp-bsd |
exit ;; |
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) |
echo hppa1.0-hp-mpeix |
exit ;; |
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) |
echo hppa1.1-hp-osf |
exit ;; |
hp8??:OSF1:*:*) |
echo hppa1.0-hp-osf |
exit ;; |
i*86:OSF1:*:*) |
if [ -x /usr/sbin/sysversion ] ; then |
echo ${UNAME_MACHINE}-unknown-osf1mk |
else |
echo ${UNAME_MACHINE}-unknown-osf1 |
fi |
exit ;; |
parisc*:Lites*:*:*) |
echo hppa1.1-hp-lites |
exit ;; |
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) |
echo c1-convex-bsd |
exit ;; |
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) |
if getsysinfo -f scalar_acc |
then echo c32-convex-bsd |
else echo c2-convex-bsd |
fi |
exit ;; |
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) |
echo c34-convex-bsd |
exit ;; |
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) |
echo c38-convex-bsd |
exit ;; |
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) |
echo c4-convex-bsd |
exit ;; |
CRAY*Y-MP:*:*:*) |
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
exit ;; |
CRAY*[A-Z]90:*:*:*) |
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ |
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ |
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ |
-e 's/\.[^.]*$/.X/' |
exit ;; |
CRAY*TS:*:*:*) |
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
exit ;; |
CRAY*T3E:*:*:*) |
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
exit ;; |
CRAY*SV1:*:*:*) |
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
exit ;; |
*:UNICOS/mp:*:*) |
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
exit ;; |
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) |
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` |
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` |
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` |
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
exit ;; |
5000:UNIX_System_V:4.*:*) |
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` |
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` |
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
exit ;; |
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) |
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} |
exit ;; |
sparc*:BSD/OS:*:*) |
echo sparc-unknown-bsdi${UNAME_RELEASE} |
exit ;; |
*:BSD/OS:*:*) |
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} |
exit ;; |
*:FreeBSD:*:*) |
case ${UNAME_MACHINE} in |
pc98) |
echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; |
amd64) |
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; |
*) |
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; |
esac |
exit ;; |
i*:CYGWIN*:*) |
echo ${UNAME_MACHINE}-pc-cygwin |
exit ;; |
*:MINGW*:*) |
echo ${UNAME_MACHINE}-pc-mingw32 |
exit ;; |
i*:windows32*:*) |
# uname -m includes "-pc" on this system. |
echo ${UNAME_MACHINE}-mingw32 |
exit ;; |
i*:PW*:*) |
echo ${UNAME_MACHINE}-pc-pw32 |
exit ;; |
*:Interix*:[3456]*) |
case ${UNAME_MACHINE} in |
x86) |
echo i586-pc-interix${UNAME_RELEASE} |
exit ;; |
EM64T | authenticamd) |
echo x86_64-unknown-interix${UNAME_RELEASE} |
exit ;; |
esac ;; |
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) |
echo i${UNAME_MACHINE}-pc-mks |
exit ;; |
i*:Windows_NT*:* | Pentium*:Windows_NT*:*) |
# How do we know it's Interix rather than the generic POSIX subsystem? |
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we |
# UNAME_MACHINE based on the output of uname instead of i386? |
echo i586-pc-interix |
exit ;; |
i*:UWIN*:*) |
echo ${UNAME_MACHINE}-pc-uwin |
exit ;; |
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) |
echo x86_64-unknown-cygwin |
exit ;; |
p*:CYGWIN*:*) |
echo powerpcle-unknown-cygwin |
exit ;; |
prep*:SunOS:5.*:*) |
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
exit ;; |
*:GNU:*:*) |
# the GNU system |
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` |
exit ;; |
*:GNU/*:*:*) |
# other systems with GNU libc and userland |
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu |
exit ;; |
i*86:Minix:*:*) |
echo ${UNAME_MACHINE}-pc-minix |
exit ;; |
arm*:Linux:*:*) |
echo ${UNAME_MACHINE}-unknown-linux-gnu |
exit ;; |
avr32*:Linux:*:*) |
echo ${UNAME_MACHINE}-unknown-linux-gnu |
exit ;; |
cris:Linux:*:*) |
echo cris-axis-linux-gnu |
exit ;; |
crisv32:Linux:*:*) |
echo crisv32-axis-linux-gnu |
exit ;; |
frv:Linux:*:*) |
echo frv-unknown-linux-gnu |
exit ;; |
ia64:Linux:*:*) |
echo ${UNAME_MACHINE}-unknown-linux-gnu |
exit ;; |
m32r*:Linux:*:*) |
echo ${UNAME_MACHINE}-unknown-linux-gnu |
exit ;; |
m68*:Linux:*:*) |
echo ${UNAME_MACHINE}-unknown-linux-gnu |
exit ;; |
mips:Linux:*:*) |
eval $set_cc_for_build |
sed 's/^ //' << EOF >$dummy.c |
#undef CPU |
#undef mips |
#undef mipsel |
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) |
CPU=mipsel |
#else |
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) |
CPU=mips |
#else |
CPU= |
#endif |
#endif |
EOF |
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' |
/^CPU/{ |
s: ::g |
p |
}'`" |
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } |
;; |
mips64:Linux:*:*) |
eval $set_cc_for_build |
sed 's/^ //' << EOF >$dummy.c |
#undef CPU |
#undef mips64 |
#undef mips64el |
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) |
CPU=mips64el |
#else |
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) |
CPU=mips64 |
#else |
CPU= |
#endif |
#endif |
EOF |
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' |
/^CPU/{ |
s: ::g |
p |
}'`" |
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } |
;; |
or32:Linux:*:*) |
echo or32-unknown-linux-gnu |
exit ;; |
ppc:Linux:*:*) |
echo powerpc-unknown-linux-gnu |
exit ;; |
ppc64:Linux:*:*) |
echo powerpc64-unknown-linux-gnu |
exit ;; |
alpha:Linux:*:*) |
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in |
EV5) UNAME_MACHINE=alphaev5 ;; |
EV56) UNAME_MACHINE=alphaev56 ;; |
PCA56) UNAME_MACHINE=alphapca56 ;; |
PCA57) UNAME_MACHINE=alphapca56 ;; |
EV6) UNAME_MACHINE=alphaev6 ;; |
EV67) UNAME_MACHINE=alphaev67 ;; |
EV68*) UNAME_MACHINE=alphaev68 ;; |
esac |
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null |
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi |
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} |
exit ;; |
parisc:Linux:*:* | hppa:Linux:*:*) |
# Look for CPU level |
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in |
PA7*) echo hppa1.1-unknown-linux-gnu ;; |
PA8*) echo hppa2.0-unknown-linux-gnu ;; |
*) echo hppa-unknown-linux-gnu ;; |
esac |
exit ;; |
parisc64:Linux:*:* | hppa64:Linux:*:*) |
echo hppa64-unknown-linux-gnu |
exit ;; |
s390:Linux:*:* | s390x:Linux:*:*) |
echo ${UNAME_MACHINE}-ibm-linux |
exit ;; |
sh64*:Linux:*:*) |
echo ${UNAME_MACHINE}-unknown-linux-gnu |
exit ;; |
sh*:Linux:*:*) |
echo ${UNAME_MACHINE}-unknown-linux-gnu |
exit ;; |
sparc:Linux:*:* | sparc64:Linux:*:*) |
echo ${UNAME_MACHINE}-unknown-linux-gnu |
exit ;; |
vax:Linux:*:*) |
echo ${UNAME_MACHINE}-dec-linux-gnu |
exit ;; |
x86_64:Linux:*:*) |
echo x86_64-unknown-linux-gnu |
exit ;; |
xtensa:Linux:*:*) |
echo xtensa-unknown-linux-gnu |
exit ;; |
i*86:Linux:*:*) |
# The BFD linker knows what the default object file format is, so |
# first see if it will tell us. cd to the root directory to prevent |
# problems with other programs or directories called `ld' in the path. |
# Set LC_ALL=C to ensure ld outputs messages in English. |
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ |
| sed -ne '/supported targets:/!d |
s/[ ][ ]*/ /g |
s/.*supported targets: *// |
s/ .*// |
p'` |
case "$ld_supported_targets" in |
elf32-i386) |
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" |
;; |
a.out-i386-linux) |
echo "${UNAME_MACHINE}-pc-linux-gnuaout" |
exit ;; |
coff-i386) |
echo "${UNAME_MACHINE}-pc-linux-gnucoff" |
exit ;; |
"") |
# Either a pre-BFD a.out linker (linux-gnuoldld) or |
# one that does not give us useful --help. |
echo "${UNAME_MACHINE}-pc-linux-gnuoldld" |
exit ;; |
esac |
# Determine whether the default compiler is a.out or elf |
eval $set_cc_for_build |
sed 's/^ //' << EOF >$dummy.c |
#include <features.h> |
#ifdef __ELF__ |
# ifdef __GLIBC__ |
# if __GLIBC__ >= 2 |
LIBC=gnu |
# else |
LIBC=gnulibc1 |
# endif |
# else |
LIBC=gnulibc1 |
# endif |
#else |
#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) |
LIBC=gnu |
#else |
LIBC=gnuaout |
#endif |
#endif |
#ifdef __dietlibc__ |
LIBC=dietlibc |
#endif |
EOF |
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' |
/^LIBC/{ |
s: ::g |
p |
}'`" |
test x"${LIBC}" != x && { |
echo "${UNAME_MACHINE}-pc-linux-${LIBC}" |
exit |
} |
test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } |
;; |
i*86:DYNIX/ptx:4*:*) |
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. |
# earlier versions are messed up and put the nodename in both |
# sysname and nodename. |
echo i386-sequent-sysv4 |
exit ;; |
i*86:UNIX_SV:4.2MP:2.*) |
# Unixware is an offshoot of SVR4, but it has its own version |
# number series starting with 2... |
# I am not positive that other SVR4 systems won't match this, |
# I just have to hope. -- rms. |
# Use sysv4.2uw... so that sysv4* matches it. |
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} |
exit ;; |
i*86:OS/2:*:*) |
# If we were able to find `uname', then EMX Unix compatibility |
# is probably installed. |
echo ${UNAME_MACHINE}-pc-os2-emx |
exit ;; |
i*86:XTS-300:*:STOP) |
echo ${UNAME_MACHINE}-unknown-stop |
exit ;; |
i*86:atheos:*:*) |
echo ${UNAME_MACHINE}-unknown-atheos |
exit ;; |
i*86:syllable:*:*) |
echo ${UNAME_MACHINE}-pc-syllable |
exit ;; |
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) |
echo i386-unknown-lynxos${UNAME_RELEASE} |
exit ;; |
i*86:*DOS:*:*) |
echo ${UNAME_MACHINE}-pc-msdosdjgpp |
exit ;; |
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) |
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` |
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then |
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} |
else |
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} |
fi |
exit ;; |
i*86:*:5:[678]*) |
# UnixWare 7.x, OpenUNIX and OpenServer 6. |
case `/bin/uname -X | grep "^Machine"` in |
*486*) UNAME_MACHINE=i486 ;; |
*Pentium) UNAME_MACHINE=i586 ;; |
*Pent*|*Celeron) UNAME_MACHINE=i686 ;; |
esac |
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} |
exit ;; |
i*86:*:3.2:*) |
if test -f /usr/options/cb.name; then |
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` |
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL |
elif /bin/uname -X 2>/dev/null >/dev/null ; then |
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` |
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 |
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ |
&& UNAME_MACHINE=i586 |
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ |
&& UNAME_MACHINE=i686 |
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ |
&& UNAME_MACHINE=i686 |
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL |
else |
echo ${UNAME_MACHINE}-pc-sysv32 |
fi |
exit ;; |
pc:*:*:*) |
# Left here for compatibility: |
# uname -m prints for DJGPP always 'pc', but it prints nothing about |
# the processor, so we play safe by assuming i386. |
echo i386-pc-msdosdjgpp |
exit ;; |
Intel:Mach:3*:*) |
echo i386-pc-mach3 |
exit ;; |
paragon:*:*:*) |
echo i860-intel-osf1 |
exit ;; |
i860:*:4.*:*) # i860-SVR4 |
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then |
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 |
else # Add other i860-SVR4 vendors below as they are discovered. |
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 |
fi |
exit ;; |
mini*:CTIX:SYS*5:*) |
# "miniframe" |
echo m68010-convergent-sysv |
exit ;; |
mc68k:UNIX:SYSTEM5:3.51m) |
echo m68k-convergent-sysv |
exit ;; |
M680?0:D-NIX:5.3:*) |
echo m68k-diab-dnix |
exit ;; |
M68*:*:R3V[5678]*:*) |
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; |
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) |
OS_REL='' |
test -r /etc/.relid \ |
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` |
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; } |
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ |
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; |
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) |
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
&& { echo i486-ncr-sysv4; exit; } ;; |
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) |
echo m68k-unknown-lynxos${UNAME_RELEASE} |
exit ;; |
mc68030:UNIX_System_V:4.*:*) |
echo m68k-atari-sysv4 |
exit ;; |
TSUNAMI:LynxOS:2.*:*) |
echo sparc-unknown-lynxos${UNAME_RELEASE} |
exit ;; |
rs6000:LynxOS:2.*:*) |
echo rs6000-unknown-lynxos${UNAME_RELEASE} |
exit ;; |
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) |
echo powerpc-unknown-lynxos${UNAME_RELEASE} |
exit ;; |
SM[BE]S:UNIX_SV:*:*) |
echo mips-dde-sysv${UNAME_RELEASE} |
exit ;; |
RM*:ReliantUNIX-*:*:*) |
echo mips-sni-sysv4 |
exit ;; |
RM*:SINIX-*:*:*) |
echo mips-sni-sysv4 |
exit ;; |
*:SINIX-*:*:*) |
if uname -p 2>/dev/null >/dev/null ; then |
UNAME_MACHINE=`(uname -p) 2>/dev/null` |
echo ${UNAME_MACHINE}-sni-sysv4 |
else |
echo ns32k-sni-sysv |
fi |
exit ;; |
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort |
# says <Richard.M.Bartel@ccMail.Census.GOV> |
echo i586-unisys-sysv4 |
exit ;; |
*:UNIX_System_V:4*:FTX*) |
# From Gerald Hewes <hewes@openmarket.com>. |
# How about differentiating between stratus architectures? -djm |
echo hppa1.1-stratus-sysv4 |
exit ;; |
*:*:*:FTX*) |
# From seanf@swdc.stratus.com. |
echo i860-stratus-sysv4 |
exit ;; |
i*86:VOS:*:*) |
# From Paul.Green@stratus.com. |
echo ${UNAME_MACHINE}-stratus-vos |
exit ;; |
*:VOS:*:*) |
# From Paul.Green@stratus.com. |
echo hppa1.1-stratus-vos |
exit ;; |
mc68*:A/UX:*:*) |
echo m68k-apple-aux${UNAME_RELEASE} |
exit ;; |
news*:NEWS-OS:6*:*) |
echo mips-sony-newsos6 |
exit ;; |
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) |
if [ -d /usr/nec ]; then |
echo mips-nec-sysv${UNAME_RELEASE} |
else |
echo mips-unknown-sysv${UNAME_RELEASE} |
fi |
exit ;; |
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. |
echo powerpc-be-beos |
exit ;; |
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. |
echo powerpc-apple-beos |
exit ;; |
BePC:BeOS:*:*) # BeOS running on Intel PC compatible. |
echo i586-pc-beos |
exit ;; |
SX-4:SUPER-UX:*:*) |
echo sx4-nec-superux${UNAME_RELEASE} |
exit ;; |
SX-5:SUPER-UX:*:*) |
echo sx5-nec-superux${UNAME_RELEASE} |
exit ;; |
SX-6:SUPER-UX:*:*) |
echo sx6-nec-superux${UNAME_RELEASE} |
exit ;; |
SX-7:SUPER-UX:*:*) |
echo sx7-nec-superux${UNAME_RELEASE} |
exit ;; |
SX-8:SUPER-UX:*:*) |
echo sx8-nec-superux${UNAME_RELEASE} |
exit ;; |
SX-8R:SUPER-UX:*:*) |
echo sx8r-nec-superux${UNAME_RELEASE} |
exit ;; |
Power*:Rhapsody:*:*) |
echo powerpc-apple-rhapsody${UNAME_RELEASE} |
exit ;; |
*:Rhapsody:*:*) |
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} |
exit ;; |
*:Darwin:*:*) |
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown |
case $UNAME_PROCESSOR in |
unknown) UNAME_PROCESSOR=powerpc ;; |
esac |
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} |
exit ;; |
*:procnto*:*:* | *:QNX:[0123456789]*:*) |
UNAME_PROCESSOR=`uname -p` |
if test "$UNAME_PROCESSOR" = "x86"; then |
UNAME_PROCESSOR=i386 |
UNAME_MACHINE=pc |
fi |
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} |
exit ;; |
*:QNX:*:4*) |
echo i386-pc-qnx |
exit ;; |
NSE-?:NONSTOP_KERNEL:*:*) |
echo nse-tandem-nsk${UNAME_RELEASE} |
exit ;; |
NSR-?:NONSTOP_KERNEL:*:*) |
echo nsr-tandem-nsk${UNAME_RELEASE} |
exit ;; |
*:NonStop-UX:*:*) |
echo mips-compaq-nonstopux |
exit ;; |
BS2000:POSIX*:*:*) |
echo bs2000-siemens-sysv |
exit ;; |
DS/*:UNIX_System_V:*:*) |
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} |
exit ;; |
*:Plan9:*:*) |
# "uname -m" is not consistent, so use $cputype instead. 386 |
# is converted to i386 for consistency with other x86 |
# operating systems. |
if test "$cputype" = "386"; then |
UNAME_MACHINE=i386 |
else |
UNAME_MACHINE="$cputype" |
fi |
echo ${UNAME_MACHINE}-unknown-plan9 |
exit ;; |
*:TOPS-10:*:*) |
echo pdp10-unknown-tops10 |
exit ;; |
*:TENEX:*:*) |
echo pdp10-unknown-tenex |
exit ;; |
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) |
echo pdp10-dec-tops20 |
exit ;; |
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) |
echo pdp10-xkl-tops20 |
exit ;; |
*:TOPS-20:*:*) |
echo pdp10-unknown-tops20 |
exit ;; |
*:ITS:*:*) |
echo pdp10-unknown-its |
exit ;; |
SEI:*:*:SEIUX) |
echo mips-sei-seiux${UNAME_RELEASE} |
exit ;; |
*:DragonFly:*:*) |
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` |
exit ;; |
*:*VMS:*:*) |
UNAME_MACHINE=`(uname -p) 2>/dev/null` |
case "${UNAME_MACHINE}" in |
A*) echo alpha-dec-vms ; exit ;; |
I*) echo ia64-dec-vms ; exit ;; |
V*) echo vax-dec-vms ; exit ;; |
esac ;; |
*:XENIX:*:SysV) |
echo i386-pc-xenix |
exit ;; |
i*86:skyos:*:*) |
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' |
exit ;; |
i*86:rdos:*:*) |
echo ${UNAME_MACHINE}-pc-rdos |
exit ;; |
esac |
#echo '(No uname command or uname output not recognized.)' 1>&2 |
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 |
eval $set_cc_for_build |
cat >$dummy.c <<EOF |
#ifdef _SEQUENT_ |
# include <sys/types.h> |
# include <sys/utsname.h> |
#endif |
main () |
{ |
#if defined (sony) |
#if defined (MIPSEB) |
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, |
I don't know.... */ |
printf ("mips-sony-bsd\n"); exit (0); |
#else |
#include <sys/param.h> |
printf ("m68k-sony-newsos%s\n", |
#ifdef NEWSOS4 |
"4" |
#else |
"" |
#endif |
); exit (0); |
#endif |
#endif |
#if defined (__arm) && defined (__acorn) && defined (__unix) |
printf ("arm-acorn-riscix\n"); exit (0); |
#endif |
#if defined (hp300) && !defined (hpux) |
printf ("m68k-hp-bsd\n"); exit (0); |
#endif |
#if defined (NeXT) |
#if !defined (__ARCHITECTURE__) |
#define __ARCHITECTURE__ "m68k" |
#endif |
int version; |
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; |
if (version < 4) |
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); |
else |
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); |
exit (0); |
#endif |
#if defined (MULTIMAX) || defined (n16) |
#if defined (UMAXV) |
printf ("ns32k-encore-sysv\n"); exit (0); |
#else |
#if defined (CMU) |
printf ("ns32k-encore-mach\n"); exit (0); |
#else |
printf ("ns32k-encore-bsd\n"); exit (0); |
#endif |
#endif |
#endif |
#if defined (__386BSD__) |
printf ("i386-pc-bsd\n"); exit (0); |
#endif |
#if defined (sequent) |
#if defined (i386) |
printf ("i386-sequent-dynix\n"); exit (0); |
#endif |
#if defined (ns32000) |
printf ("ns32k-sequent-dynix\n"); exit (0); |
#endif |
#endif |
#if defined (_SEQUENT_) |
struct utsname un; |
uname(&un); |
if (strncmp(un.version, "V2", 2) == 0) { |
printf ("i386-sequent-ptx2\n"); exit (0); |
} |
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ |
printf ("i386-sequent-ptx1\n"); exit (0); |
} |
printf ("i386-sequent-ptx\n"); exit (0); |
#endif |
#if defined (vax) |
# if !defined (ultrix) |
# include <sys/param.h> |
# if defined (BSD) |
# if BSD == 43 |
printf ("vax-dec-bsd4.3\n"); exit (0); |
# else |
# if BSD == 199006 |
printf ("vax-dec-bsd4.3reno\n"); exit (0); |
# else |
printf ("vax-dec-bsd\n"); exit (0); |
# endif |
# endif |
# else |
printf ("vax-dec-bsd\n"); exit (0); |
# endif |
# else |
printf ("vax-dec-ultrix\n"); exit (0); |
# endif |
#endif |
#if defined (alliant) && defined (i860) |
printf ("i860-alliant-bsd\n"); exit (0); |
#endif |
exit (1); |
} |
EOF |
$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && |
{ echo "$SYSTEM_NAME"; exit; } |
# Apollos put the system type in the environment. |
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } |
# Convex versions that predate uname can use getsysinfo(1) |
if [ -x /usr/convex/getsysinfo ] |
then |
case `getsysinfo -f cpu_type` in |
c1*) |
echo c1-convex-bsd |
exit ;; |
c2*) |
if getsysinfo -f scalar_acc |
then echo c32-convex-bsd |
else echo c2-convex-bsd |
fi |
exit ;; |
c34*) |
echo c34-convex-bsd |
exit ;; |
c38*) |
echo c38-convex-bsd |
exit ;; |
c4*) |
echo c4-convex-bsd |
exit ;; |
esac |
fi |
cat >&2 <<EOF |
$0: unable to guess system type |
This script, last modified $timestamp, has failed to recognize |
the operating system you are using. It is advised that you |
download the most up to date version of the config scripts from |
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess |
and |
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub |
If the version you run ($0) is already up to date, please |
send the following data and any information you think might be |
pertinent to <config-patches@gnu.org> in order to provide the needed |
information to handle your system. |
config.guess timestamp = $timestamp |
uname -m = `(uname -m) 2>/dev/null || echo unknown` |
uname -r = `(uname -r) 2>/dev/null || echo unknown` |
uname -s = `(uname -s) 2>/dev/null || echo unknown` |
uname -v = `(uname -v) 2>/dev/null || echo unknown` |
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` |
/bin/uname -X = `(/bin/uname -X) 2>/dev/null` |
hostinfo = `(hostinfo) 2>/dev/null` |
/bin/universe = `(/bin/universe) 2>/dev/null` |
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` |
/bin/arch = `(/bin/arch) 2>/dev/null` |
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` |
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` |
UNAME_MACHINE = ${UNAME_MACHINE} |
UNAME_RELEASE = ${UNAME_RELEASE} |
UNAME_SYSTEM = ${UNAME_SYSTEM} |
UNAME_VERSION = ${UNAME_VERSION} |
EOF |
exit 1 |
# Local variables: |
# eval: (add-hook 'write-file-hooks 'time-stamp) |
# time-stamp-start: "timestamp='" |
# time-stamp-format: "%:y-%02m-%02d" |
# time-stamp-end: "'" |
# End: |
/tilgungsplan/trunk/admin/config.sub |
---|
0,0 → 1,1622 |
#! /bin/sh |
# Configuration validation subroutine script. |
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, |
# Inc. |
timestamp='2007-01-18' |
# This file is (in principle) common to ALL GNU software. |
# The presence of a machine in this file suggests that SOME GNU software |
# can handle that machine. It does not imply ALL GNU software can. |
# |
# This file is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 2 of the License, or |
# (at your option) any later version. |
# |
# This program 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 General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA |
# 02110-1301, USA. |
# |
# As a special exception to the GNU General Public License, if you |
# distribute this file as part of a program that contains a |
# configuration script generated by Autoconf, you may include it under |
# the same distribution terms that you use for the rest of that program. |
# Please send patches to <config-patches@gnu.org>. Submit a context |
# diff and a properly formatted ChangeLog entry. |
# |
# Configuration subroutine to validate and canonicalize a configuration type. |
# Supply the specified configuration type as an argument. |
# If it is invalid, we print an error message on stderr and exit with code 1. |
# Otherwise, we print the canonical config type on stdout and succeed. |
# This file is supposed to be the same for all GNU packages |
# and recognize all the CPU types, system types and aliases |
# that are meaningful with *any* GNU software. |
# Each package is responsible for reporting which valid configurations |
# it does not support. The user should be able to distinguish |
# a failure to support a valid configuration from a meaningless |
# configuration. |
# The goal of this file is to map all the various variations of a given |
# machine specification into a single specification in the form: |
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM |
# or in some cases, the newer four-part form: |
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM |
# It is wrong to echo any other type of specification. |
me=`echo "$0" | sed -e 's,.*/,,'` |
usage="\ |
Usage: $0 [OPTION] CPU-MFR-OPSYS |
$0 [OPTION] ALIAS |
Canonicalize a configuration name. |
Operation modes: |
-h, --help print this help, then exit |
-t, --time-stamp print date of last modification, then exit |
-v, --version print version number, then exit |
Report bugs and patches to <config-patches@gnu.org>." |
version="\ |
GNU config.sub ($timestamp) |
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 |
Free Software Foundation, Inc. |
This is free software; see the source for copying conditions. There is NO |
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
help=" |
Try \`$me --help' for more information." |
# Parse command line |
while test $# -gt 0 ; do |
case $1 in |
--time-stamp | --time* | -t ) |
echo "$timestamp" ; exit ;; |
--version | -v ) |
echo "$version" ; exit ;; |
--help | --h* | -h ) |
echo "$usage"; exit ;; |
-- ) # Stop option processing |
shift; break ;; |
- ) # Use stdin as input. |
break ;; |
-* ) |
echo "$me: invalid option $1$help" |
exit 1 ;; |
*local*) |
# First pass through any local machine types. |
echo $1 |
exit ;; |
* ) |
break ;; |
esac |
done |
case $# in |
0) echo "$me: missing argument$help" >&2 |
exit 1;; |
1) ;; |
*) echo "$me: too many arguments$help" >&2 |
exit 1;; |
esac |
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). |
# Here we must recognize all the valid KERNEL-OS combinations. |
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` |
case $maybe_os in |
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ |
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ |
storm-chaos* | os2-emx* | rtmk-nova*) |
os=-$maybe_os |
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` |
;; |
*) |
basic_machine=`echo $1 | sed 's/-[^-]*$//'` |
if [ $basic_machine != $1 ] |
then os=`echo $1 | sed 's/.*-/-/'` |
else os=; fi |
;; |
esac |
### Let's recognize common machines as not being operating systems so |
### that things like config.sub decstation-3100 work. We also |
### recognize some manufacturers as not being operating systems, so we |
### can provide default operating systems below. |
case $os in |
-sun*os*) |
# Prevent following clause from handling this invalid input. |
;; |
-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ |
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ |
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ |
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ |
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ |
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ |
-apple | -axis | -knuth | -cray) |
os= |
basic_machine=$1 |
;; |
-sim | -cisco | -oki | -wec | -winbond) |
os= |
basic_machine=$1 |
;; |
-scout) |
;; |
-wrs) |
os=-vxworks |
basic_machine=$1 |
;; |
-chorusos*) |
os=-chorusos |
basic_machine=$1 |
;; |
-chorusrdb) |
os=-chorusrdb |
basic_machine=$1 |
;; |
-hiux*) |
os=-hiuxwe2 |
;; |
-sco6) |
os=-sco5v6 |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-sco5) |
os=-sco3.2v5 |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-sco4) |
os=-sco3.2v4 |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-sco3.2.[4-9]*) |
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-sco3.2v[4-9]*) |
# Don't forget version if it is 3.2v4 or newer. |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-sco5v6*) |
# Don't forget version if it is 3.2v4 or newer. |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-sco*) |
os=-sco3.2v2 |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-udk*) |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-isc) |
os=-isc2.2 |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-clix*) |
basic_machine=clipper-intergraph |
;; |
-isc*) |
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
;; |
-lynx*) |
os=-lynxos |
;; |
-ptx*) |
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` |
;; |
-windowsnt*) |
os=`echo $os | sed -e 's/windowsnt/winnt/'` |
;; |
-psos*) |
os=-psos |
;; |
-mint | -mint[0-9]*) |
basic_machine=m68k-atari |
os=-mint |
;; |
esac |
# Decode aliases for certain CPU-COMPANY combinations. |
case $basic_machine in |
# Recognize the basic CPU types without company name. |
# Some are omitted here because they have special meanings below. |
1750a | 580 \ |
| a29k \ |
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ |
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ |
| am33_2.0 \ |
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ |
| bfin \ |
| c4x | clipper \ |
| d10v | d30v | dlx | dsp16xx \ |
| fido | fr30 | frv \ |
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ |
| i370 | i860 | i960 | ia64 \ |
| ip2k | iq2000 \ |
| m32c | m32r | m32rle | m68000 | m68k | m88k \ |
| maxq | mb | microblaze | mcore | mep \ |
| mips | mipsbe | mipseb | mipsel | mipsle \ |
| mips16 \ |
| mips64 | mips64el \ |
| mips64vr | mips64vrel \ |
| mips64orion | mips64orionel \ |
| mips64vr4100 | mips64vr4100el \ |
| mips64vr4300 | mips64vr4300el \ |
| mips64vr5000 | mips64vr5000el \ |
| mips64vr5900 | mips64vr5900el \ |
| mipsisa32 | mipsisa32el \ |
| mipsisa32r2 | mipsisa32r2el \ |
| mipsisa64 | mipsisa64el \ |
| mipsisa64r2 | mipsisa64r2el \ |
| mipsisa64sb1 | mipsisa64sb1el \ |
| mipsisa64sr71k | mipsisa64sr71kel \ |
| mipstx39 | mipstx39el \ |
| mn10200 | mn10300 \ |
| mt \ |
| msp430 \ |
| nios | nios2 \ |
| ns16k | ns32k \ |
| or32 \ |
| pdp10 | pdp11 | pj | pjl \ |
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ |
| pyramid \ |
| score \ |
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ |
| sh64 | sh64le \ |
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ |
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \ |
| spu | strongarm \ |
| tahoe | thumb | tic4x | tic80 | tron \ |
| v850 | v850e \ |
| we32k \ |
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ |
| z8k) |
basic_machine=$basic_machine-unknown |
;; |
m6811 | m68hc11 | m6812 | m68hc12) |
# Motorola 68HC11/12. |
basic_machine=$basic_machine-unknown |
os=-none |
;; |
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) |
;; |
ms1) |
basic_machine=mt-unknown |
;; |
# We use `pc' rather than `unknown' |
# because (1) that's what they normally are, and |
# (2) the word "unknown" tends to confuse beginning users. |
i*86 | x86_64) |
basic_machine=$basic_machine-pc |
;; |
# Object if more than one company name word. |
*-*-*) |
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 |
exit 1 |
;; |
# Recognize the basic CPU types with company name. |
580-* \ |
| a29k-* \ |
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ |
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ |
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ |
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \ |
| avr-* | avr32-* \ |
| bfin-* | bs2000-* \ |
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ |
| clipper-* | craynv-* | cydra-* \ |
| d10v-* | d30v-* | dlx-* \ |
| elxsi-* \ |
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ |
| h8300-* | h8500-* \ |
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ |
| i*86-* | i860-* | i960-* | ia64-* \ |
| ip2k-* | iq2000-* \ |
| m32c-* | m32r-* | m32rle-* \ |
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ |
| m88110-* | m88k-* | maxq-* | mcore-* \ |
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ |
| mips16-* \ |
| mips64-* | mips64el-* \ |
| mips64vr-* | mips64vrel-* \ |
| mips64orion-* | mips64orionel-* \ |
| mips64vr4100-* | mips64vr4100el-* \ |
| mips64vr4300-* | mips64vr4300el-* \ |
| mips64vr5000-* | mips64vr5000el-* \ |
| mips64vr5900-* | mips64vr5900el-* \ |
| mipsisa32-* | mipsisa32el-* \ |
| mipsisa32r2-* | mipsisa32r2el-* \ |
| mipsisa64-* | mipsisa64el-* \ |
| mipsisa64r2-* | mipsisa64r2el-* \ |
| mipsisa64sb1-* | mipsisa64sb1el-* \ |
| mipsisa64sr71k-* | mipsisa64sr71kel-* \ |
| mipstx39-* | mipstx39el-* \ |
| mmix-* \ |
| mt-* \ |
| msp430-* \ |
| nios-* | nios2-* \ |
| none-* | np1-* | ns16k-* | ns32k-* \ |
| orion-* \ |
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ |
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ |
| pyramid-* \ |
| romp-* | rs6000-* \ |
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ |
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ |
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ |
| sparclite-* \ |
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ |
| tahoe-* | thumb-* \ |
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ |
| tron-* \ |
| v850-* | v850e-* | vax-* \ |
| we32k-* \ |
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ |
| xstormy16-* | xtensa-* \ |
| ymp-* \ |
| z8k-*) |
;; |
# Recognize the various machine names and aliases which stand |
# for a CPU type and a company and sometimes even an OS. |
386bsd) |
basic_machine=i386-unknown |
os=-bsd |
;; |
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) |
basic_machine=m68000-att |
;; |
3b*) |
basic_machine=we32k-att |
;; |
a29khif) |
basic_machine=a29k-amd |
os=-udi |
;; |
abacus) |
basic_machine=abacus-unknown |
;; |
adobe68k) |
basic_machine=m68010-adobe |
os=-scout |
;; |
alliant | fx80) |
basic_machine=fx80-alliant |
;; |
altos | altos3068) |
basic_machine=m68k-altos |
;; |
am29k) |
basic_machine=a29k-none |
os=-bsd |
;; |
amd64) |
basic_machine=x86_64-pc |
;; |
amd64-*) |
basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
amdahl) |
basic_machine=580-amdahl |
os=-sysv |
;; |
amiga | amiga-*) |
basic_machine=m68k-unknown |
;; |
amigaos | amigados) |
basic_machine=m68k-unknown |
os=-amigaos |
;; |
amigaunix | amix) |
basic_machine=m68k-unknown |
os=-sysv4 |
;; |
apollo68) |
basic_machine=m68k-apollo |
os=-sysv |
;; |
apollo68bsd) |
basic_machine=m68k-apollo |
os=-bsd |
;; |
aux) |
basic_machine=m68k-apple |
os=-aux |
;; |
balance) |
basic_machine=ns32k-sequent |
os=-dynix |
;; |
c90) |
basic_machine=c90-cray |
os=-unicos |
;; |
convex-c1) |
basic_machine=c1-convex |
os=-bsd |
;; |
convex-c2) |
basic_machine=c2-convex |
os=-bsd |
;; |
convex-c32) |
basic_machine=c32-convex |
os=-bsd |
;; |
convex-c34) |
basic_machine=c34-convex |
os=-bsd |
;; |
convex-c38) |
basic_machine=c38-convex |
os=-bsd |
;; |
cray | j90) |
basic_machine=j90-cray |
os=-unicos |
;; |
craynv) |
basic_machine=craynv-cray |
os=-unicosmp |
;; |
cr16c) |
basic_machine=cr16c-unknown |
os=-elf |
;; |
crds | unos) |
basic_machine=m68k-crds |
;; |
crisv32 | crisv32-* | etraxfs*) |
basic_machine=crisv32-axis |
;; |
cris | cris-* | etrax*) |
basic_machine=cris-axis |
;; |
crx) |
basic_machine=crx-unknown |
os=-elf |
;; |
da30 | da30-*) |
basic_machine=m68k-da30 |
;; |
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) |
basic_machine=mips-dec |
;; |
decsystem10* | dec10*) |
basic_machine=pdp10-dec |
os=-tops10 |
;; |
decsystem20* | dec20*) |
basic_machine=pdp10-dec |
os=-tops20 |
;; |
delta | 3300 | motorola-3300 | motorola-delta \ |
| 3300-motorola | delta-motorola) |
basic_machine=m68k-motorola |
;; |
delta88) |
basic_machine=m88k-motorola |
os=-sysv3 |
;; |
djgpp) |
basic_machine=i586-pc |
os=-msdosdjgpp |
;; |
dpx20 | dpx20-*) |
basic_machine=rs6000-bull |
os=-bosx |
;; |
dpx2* | dpx2*-bull) |
basic_machine=m68k-bull |
os=-sysv3 |
;; |
ebmon29k) |
basic_machine=a29k-amd |
os=-ebmon |
;; |
elxsi) |
basic_machine=elxsi-elxsi |
os=-bsd |
;; |
encore | umax | mmax) |
basic_machine=ns32k-encore |
;; |
es1800 | OSE68k | ose68k | ose | OSE) |
basic_machine=m68k-ericsson |
os=-ose |
;; |
fx2800) |
basic_machine=i860-alliant |
;; |
genix) |
basic_machine=ns32k-ns |
;; |
gmicro) |
basic_machine=tron-gmicro |
os=-sysv |
;; |
go32) |
basic_machine=i386-pc |
os=-go32 |
;; |
h3050r* | hiux*) |
basic_machine=hppa1.1-hitachi |
os=-hiuxwe2 |
;; |
h8300hms) |
basic_machine=h8300-hitachi |
os=-hms |
;; |
h8300xray) |
basic_machine=h8300-hitachi |
os=-xray |
;; |
h8500hms) |
basic_machine=h8500-hitachi |
os=-hms |
;; |
harris) |
basic_machine=m88k-harris |
os=-sysv3 |
;; |
hp300-*) |
basic_machine=m68k-hp |
;; |
hp300bsd) |
basic_machine=m68k-hp |
os=-bsd |
;; |
hp300hpux) |
basic_machine=m68k-hp |
os=-hpux |
;; |
hp3k9[0-9][0-9] | hp9[0-9][0-9]) |
basic_machine=hppa1.0-hp |
;; |
hp9k2[0-9][0-9] | hp9k31[0-9]) |
basic_machine=m68000-hp |
;; |
hp9k3[2-9][0-9]) |
basic_machine=m68k-hp |
;; |
hp9k6[0-9][0-9] | hp6[0-9][0-9]) |
basic_machine=hppa1.0-hp |
;; |
hp9k7[0-79][0-9] | hp7[0-79][0-9]) |
basic_machine=hppa1.1-hp |
;; |
hp9k78[0-9] | hp78[0-9]) |
# FIXME: really hppa2.0-hp |
basic_machine=hppa1.1-hp |
;; |
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) |
# FIXME: really hppa2.0-hp |
basic_machine=hppa1.1-hp |
;; |
hp9k8[0-9][13679] | hp8[0-9][13679]) |
basic_machine=hppa1.1-hp |
;; |
hp9k8[0-9][0-9] | hp8[0-9][0-9]) |
basic_machine=hppa1.0-hp |
;; |
hppa-next) |
os=-nextstep3 |
;; |
hppaosf) |
basic_machine=hppa1.1-hp |
os=-osf |
;; |
hppro) |
basic_machine=hppa1.1-hp |
os=-proelf |
;; |
i370-ibm* | ibm*) |
basic_machine=i370-ibm |
;; |
# I'm not sure what "Sysv32" means. Should this be sysv3.2? |
i*86v32) |
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` |
os=-sysv32 |
;; |
i*86v4*) |
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` |
os=-sysv4 |
;; |
i*86v) |
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` |
os=-sysv |
;; |
i*86sol2) |
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` |
os=-solaris2 |
;; |
i386mach) |
basic_machine=i386-mach |
os=-mach |
;; |
i386-vsta | vsta) |
basic_machine=i386-unknown |
os=-vsta |
;; |
iris | iris4d) |
basic_machine=mips-sgi |
case $os in |
-irix*) |
;; |
*) |
os=-irix4 |
;; |
esac |
;; |
isi68 | isi) |
basic_machine=m68k-isi |
os=-sysv |
;; |
m88k-omron*) |
basic_machine=m88k-omron |
;; |
magnum | m3230) |
basic_machine=mips-mips |
os=-sysv |
;; |
merlin) |
basic_machine=ns32k-utek |
os=-sysv |
;; |
mingw32) |
basic_machine=i386-pc |
os=-mingw32 |
;; |
miniframe) |
basic_machine=m68000-convergent |
;; |
*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) |
basic_machine=m68k-atari |
os=-mint |
;; |
mips3*-*) |
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` |
;; |
mips3*) |
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown |
;; |
monitor) |
basic_machine=m68k-rom68k |
os=-coff |
;; |
morphos) |
basic_machine=powerpc-unknown |
os=-morphos |
;; |
msdos) |
basic_machine=i386-pc |
os=-msdos |
;; |
ms1-*) |
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` |
;; |
mvs) |
basic_machine=i370-ibm |
os=-mvs |
;; |
ncr3000) |
basic_machine=i486-ncr |
os=-sysv4 |
;; |
netbsd386) |
basic_machine=i386-unknown |
os=-netbsd |
;; |
netwinder) |
basic_machine=armv4l-rebel |
os=-linux |
;; |
news | news700 | news800 | news900) |
basic_machine=m68k-sony |
os=-newsos |
;; |
news1000) |
basic_machine=m68030-sony |
os=-newsos |
;; |
news-3600 | risc-news) |
basic_machine=mips-sony |
os=-newsos |
;; |
necv70) |
basic_machine=v70-nec |
os=-sysv |
;; |
next | m*-next ) |
basic_machine=m68k-next |
case $os in |
-nextstep* ) |
;; |
-ns2*) |
os=-nextstep2 |
;; |
*) |
os=-nextstep3 |
;; |
esac |
;; |
nh3000) |
basic_machine=m68k-harris |
os=-cxux |
;; |
nh[45]000) |
basic_machine=m88k-harris |
os=-cxux |
;; |
nindy960) |
basic_machine=i960-intel |
os=-nindy |
;; |
mon960) |
basic_machine=i960-intel |
os=-mon960 |
;; |
nonstopux) |
basic_machine=mips-compaq |
os=-nonstopux |
;; |
np1) |
basic_machine=np1-gould |
;; |
nsr-tandem) |
basic_machine=nsr-tandem |
;; |
op50n-* | op60c-*) |
basic_machine=hppa1.1-oki |
os=-proelf |
;; |
openrisc | openrisc-*) |
basic_machine=or32-unknown |
;; |
os400) |
basic_machine=powerpc-ibm |
os=-os400 |
;; |
OSE68000 | ose68000) |
basic_machine=m68000-ericsson |
os=-ose |
;; |
os68k) |
basic_machine=m68k-none |
os=-os68k |
;; |
pa-hitachi) |
basic_machine=hppa1.1-hitachi |
os=-hiuxwe2 |
;; |
paragon) |
basic_machine=i860-intel |
os=-osf |
;; |
pbd) |
basic_machine=sparc-tti |
;; |
pbb) |
basic_machine=m68k-tti |
;; |
pc532 | pc532-*) |
basic_machine=ns32k-pc532 |
;; |
pc98) |
basic_machine=i386-pc |
;; |
pc98-*) |
basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
pentium | p5 | k5 | k6 | nexgen | viac3) |
basic_machine=i586-pc |
;; |
pentiumpro | p6 | 6x86 | athlon | athlon_*) |
basic_machine=i686-pc |
;; |
pentiumii | pentium2 | pentiumiii | pentium3) |
basic_machine=i686-pc |
;; |
pentium4) |
basic_machine=i786-pc |
;; |
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) |
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
pentiumpro-* | p6-* | 6x86-* | athlon-*) |
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) |
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
pentium4-*) |
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
pn) |
basic_machine=pn-gould |
;; |
power) basic_machine=power-ibm |
;; |
ppc) basic_machine=powerpc-unknown |
;; |
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
ppcle | powerpclittle | ppc-le | powerpc-little) |
basic_machine=powerpcle-unknown |
;; |
ppcle-* | powerpclittle-*) |
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
ppc64) basic_machine=powerpc64-unknown |
;; |
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
ppc64le | powerpc64little | ppc64-le | powerpc64-little) |
basic_machine=powerpc64le-unknown |
;; |
ppc64le-* | powerpc64little-*) |
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` |
;; |
ps2) |
basic_machine=i386-ibm |
;; |
pw32) |
basic_machine=i586-unknown |
os=-pw32 |
;; |
rdos) |
basic_machine=i386-pc |
os=-rdos |
;; |
rom68k) |
basic_machine=m68k-rom68k |
os=-coff |
;; |
rm[46]00) |
basic_machine=mips-siemens |
;; |
rtpc | rtpc-*) |
basic_machine=romp-ibm |
;; |
s390 | s390-*) |
basic_machine=s390-ibm |
;; |
s390x | s390x-*) |
basic_machine=s390x-ibm |
;; |
sa29200) |
basic_machine=a29k-amd |
os=-udi |
;; |
sb1) |
basic_machine=mipsisa64sb1-unknown |
;; |
sb1el) |
basic_machine=mipsisa64sb1el-unknown |
;; |
sde) |
basic_machine=mipsisa32-sde |
os=-elf |
;; |
sei) |
basic_machine=mips-sei |
os=-seiux |
;; |
sequent) |
basic_machine=i386-sequent |
;; |
sh) |
basic_machine=sh-hitachi |
os=-hms |
;; |
sh5el) |
basic_machine=sh5le-unknown |
;; |
sh64) |
basic_machine=sh64-unknown |
;; |
sparclite-wrs | simso-wrs) |
basic_machine=sparclite-wrs |
os=-vxworks |
;; |
sps7) |
basic_machine=m68k-bull |
os=-sysv2 |
;; |
spur) |
basic_machine=spur-unknown |
;; |
st2000) |
basic_machine=m68k-tandem |
;; |
stratus) |
basic_machine=i860-stratus |
os=-sysv4 |
;; |
sun2) |
basic_machine=m68000-sun |
;; |
sun2os3) |
basic_machine=m68000-sun |
os=-sunos3 |
;; |
sun2os4) |
basic_machine=m68000-sun |
os=-sunos4 |
;; |
sun3os3) |
basic_machine=m68k-sun |
os=-sunos3 |
;; |
sun3os4) |
basic_machine=m68k-sun |
os=-sunos4 |
;; |
sun4os3) |
basic_machine=sparc-sun |
os=-sunos3 |
;; |
sun4os4) |
basic_machine=sparc-sun |
os=-sunos4 |
;; |
sun4sol2) |
basic_machine=sparc-sun |
os=-solaris2 |
;; |
sun3 | sun3-*) |
basic_machine=m68k-sun |
;; |
sun4) |
basic_machine=sparc-sun |
;; |
sun386 | sun386i | roadrunner) |
basic_machine=i386-sun |
;; |
sv1) |
basic_machine=sv1-cray |
os=-unicos |
;; |
symmetry) |
basic_machine=i386-sequent |
os=-dynix |
;; |
t3e) |
basic_machine=alphaev5-cray |
os=-unicos |
;; |
t90) |
basic_machine=t90-cray |
os=-unicos |
;; |
tic54x | c54x*) |
basic_machine=tic54x-unknown |
os=-coff |
;; |
tic55x | c55x*) |
basic_machine=tic55x-unknown |
os=-coff |
;; |
tic6x | c6x*) |
basic_machine=tic6x-unknown |
os=-coff |
;; |
tx39) |
basic_machine=mipstx39-unknown |
;; |
tx39el) |
basic_machine=mipstx39el-unknown |
;; |
toad1) |
basic_machine=pdp10-xkl |
os=-tops20 |
;; |
tower | tower-32) |
basic_machine=m68k-ncr |
;; |
tpf) |
basic_machine=s390x-ibm |
os=-tpf |
;; |
udi29k) |
basic_machine=a29k-amd |
os=-udi |
;; |
ultra3) |
basic_machine=a29k-nyu |
os=-sym1 |
;; |
v810 | necv810) |
basic_machine=v810-nec |
os=-none |
;; |
vaxv) |
basic_machine=vax-dec |
os=-sysv |
;; |
vms) |
basic_machine=vax-dec |
os=-vms |
;; |
vpp*|vx|vx-*) |
basic_machine=f301-fujitsu |
;; |
vxworks960) |
basic_machine=i960-wrs |
os=-vxworks |
;; |
vxworks68) |
basic_machine=m68k-wrs |
os=-vxworks |
;; |
vxworks29k) |
basic_machine=a29k-wrs |
os=-vxworks |
;; |
w65*) |
basic_machine=w65-wdc |
os=-none |
;; |
w89k-*) |
basic_machine=hppa1.1-winbond |
os=-proelf |
;; |
xbox) |
basic_machine=i686-pc |
os=-mingw32 |
;; |
xps | xps100) |
basic_machine=xps100-honeywell |
;; |
ymp) |
basic_machine=ymp-cray |
os=-unicos |
;; |
z8k-*-coff) |
basic_machine=z8k-unknown |
os=-sim |
;; |
none) |
basic_machine=none-none |
os=-none |
;; |
# Here we handle the default manufacturer of certain CPU types. It is in |
# some cases the only manufacturer, in others, it is the most popular. |
w89k) |
basic_machine=hppa1.1-winbond |
;; |
op50n) |
basic_machine=hppa1.1-oki |
;; |
op60c) |
basic_machine=hppa1.1-oki |
;; |
romp) |
basic_machine=romp-ibm |
;; |
mmix) |
basic_machine=mmix-knuth |
;; |
rs6000) |
basic_machine=rs6000-ibm |
;; |
vax) |
basic_machine=vax-dec |
;; |
pdp10) |
# there are many clones, so DEC is not a safe bet |
basic_machine=pdp10-unknown |
;; |
pdp11) |
basic_machine=pdp11-dec |
;; |
we32k) |
basic_machine=we32k-att |
;; |
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) |
basic_machine=sh-unknown |
;; |
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) |
basic_machine=sparc-sun |
;; |
cydra) |
basic_machine=cydra-cydrome |
;; |
orion) |
basic_machine=orion-highlevel |
;; |
orion105) |
basic_machine=clipper-highlevel |
;; |
mac | mpw | mac-mpw) |
basic_machine=m68k-apple |
;; |
pmac | pmac-mpw) |
basic_machine=powerpc-apple |
;; |
*-unknown) |
# Make sure to match an already-canonicalized machine name. |
;; |
*) |
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 |
exit 1 |
;; |
esac |
# Here we canonicalize certain aliases for manufacturers. |
case $basic_machine in |
*-digital*) |
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` |
;; |
*-commodore*) |
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` |
;; |
*) |
;; |
esac |
# Decode manufacturer-specific aliases for certain operating systems. |
if [ x"$os" != x"" ] |
then |
case $os in |
# First match some system type aliases |
# that might get confused with valid system types. |
# -solaris* is a basic system type, with this one exception. |
-solaris1 | -solaris1.*) |
os=`echo $os | sed -e 's|solaris1|sunos4|'` |
;; |
-solaris) |
os=-solaris2 |
;; |
-svr4*) |
os=-sysv4 |
;; |
-unixware*) |
os=-sysv4.2uw |
;; |
-gnu/linux*) |
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` |
;; |
# First accept the basic system types. |
# The portable systems comes first. |
# Each alternative MUST END IN A *, to match a version number. |
# -sysv* is not here because it comes later, after sysvr4. |
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ |
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ |
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ |
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ |
| -aos* \ |
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ |
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ |
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ |
| -openbsd* | -solidbsd* \ |
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ |
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ |
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ |
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ |
| -chorusos* | -chorusrdb* \ |
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ |
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ |
| -uxpv* | -beos* | -mpeix* | -udk* \ |
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ |
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ |
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ |
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ |
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ |
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ |
| -skyos* | -haiku* | -rdos* | -toppers* | -drops*) |
# Remember, each alternative MUST END IN *, to match a version number. |
;; |
-qnx*) |
case $basic_machine in |
x86-* | i*86-*) |
;; |
*) |
os=-nto$os |
;; |
esac |
;; |
-nto-qnx*) |
;; |
-nto*) |
os=`echo $os | sed -e 's|nto|nto-qnx|'` |
;; |
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ |
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ |
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) |
;; |
-mac*) |
os=`echo $os | sed -e 's|mac|macos|'` |
;; |
-linux-dietlibc) |
os=-linux-dietlibc |
;; |
-linux*) |
os=`echo $os | sed -e 's|linux|linux-gnu|'` |
;; |
-sunos5*) |
os=`echo $os | sed -e 's|sunos5|solaris2|'` |
;; |
-sunos6*) |
os=`echo $os | sed -e 's|sunos6|solaris3|'` |
;; |
-opened*) |
os=-openedition |
;; |
-os400*) |
os=-os400 |
;; |
-wince*) |
os=-wince |
;; |
-osfrose*) |
os=-osfrose |
;; |
-osf*) |
os=-osf |
;; |
-utek*) |
os=-bsd |
;; |
-dynix*) |
os=-bsd |
;; |
-acis*) |
os=-aos |
;; |
-atheos*) |
os=-atheos |
;; |
-syllable*) |
os=-syllable |
;; |
-386bsd) |
os=-bsd |
;; |
-ctix* | -uts*) |
os=-sysv |
;; |
-nova*) |
os=-rtmk-nova |
;; |
-ns2 ) |
os=-nextstep2 |
;; |
-nsk*) |
os=-nsk |
;; |
# Preserve the version number of sinix5. |
-sinix5.*) |
os=`echo $os | sed -e 's|sinix|sysv|'` |
;; |
-sinix*) |
os=-sysv4 |
;; |
-tpf*) |
os=-tpf |
;; |
-triton*) |
os=-sysv3 |
;; |
-oss*) |
os=-sysv3 |
;; |
-svr4) |
os=-sysv4 |
;; |
-svr3) |
os=-sysv3 |
;; |
-sysvr4) |
os=-sysv4 |
;; |
# This must come after -sysvr4. |
-sysv*) |
;; |
-ose*) |
os=-ose |
;; |
-es1800*) |
os=-ose |
;; |
-xenix) |
os=-xenix |
;; |
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) |
os=-mint |
;; |
-aros*) |
os=-aros |
;; |
-kaos*) |
os=-kaos |
;; |
-zvmoe) |
os=-zvmoe |
;; |
-none) |
;; |
*) |
# Get rid of the `-' at the beginning of $os. |
os=`echo $os | sed 's/[^-]*-//'` |
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 |
exit 1 |
;; |
esac |
else |
# Here we handle the default operating systems that come with various machines. |
# The value should be what the vendor currently ships out the door with their |
# machine or put another way, the most popular os provided with the machine. |
# Note that if you're going to try to match "-MANUFACTURER" here (say, |
# "-sun"), then you have to tell the case statement up towards the top |
# that MANUFACTURER isn't an operating system. Otherwise, code above |
# will signal an error saying that MANUFACTURER isn't an operating |
# system, and we'll never get to this point. |
case $basic_machine in |
score-*) |
os=-elf |
;; |
spu-*) |
os=-elf |
;; |
*-acorn) |
os=-riscix1.2 |
;; |
arm*-rebel) |
os=-linux |
;; |
arm*-semi) |
os=-aout |
;; |
c4x-* | tic4x-*) |
os=-coff |
;; |
# This must come before the *-dec entry. |
pdp10-*) |
os=-tops20 |
;; |
pdp11-*) |
os=-none |
;; |
*-dec | vax-*) |
os=-ultrix4.2 |
;; |
m68*-apollo) |
os=-domain |
;; |
i386-sun) |
os=-sunos4.0.2 |
;; |
m68000-sun) |
os=-sunos3 |
# This also exists in the configure program, but was not the |
# default. |
# os=-sunos4 |
;; |
m68*-cisco) |
os=-aout |
;; |
mep-*) |
os=-elf |
;; |
mips*-cisco) |
os=-elf |
;; |
mips*-*) |
os=-elf |
;; |
or32-*) |
os=-coff |
;; |
*-tti) # must be before sparc entry or we get the wrong os. |
os=-sysv3 |
;; |
sparc-* | *-sun) |
os=-sunos4.1.1 |
;; |
*-be) |
os=-beos |
;; |
*-haiku) |
os=-haiku |
;; |
*-ibm) |
os=-aix |
;; |
*-knuth) |
os=-mmixware |
;; |
*-wec) |
os=-proelf |
;; |
*-winbond) |
os=-proelf |
;; |
*-oki) |
os=-proelf |
;; |
*-hp) |
os=-hpux |
;; |
*-hitachi) |
os=-hiux |
;; |
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) |
os=-sysv |
;; |
*-cbm) |
os=-amigaos |
;; |
*-dg) |
os=-dgux |
;; |
*-dolphin) |
os=-sysv3 |
;; |
m68k-ccur) |
os=-rtu |
;; |
m88k-omron*) |
os=-luna |
;; |
*-next ) |
os=-nextstep |
;; |
*-sequent) |
os=-ptx |
;; |
*-crds) |
os=-unos |
;; |
*-ns) |
os=-genix |
;; |
i370-*) |
os=-mvs |
;; |
*-next) |
os=-nextstep3 |
;; |
*-gould) |
os=-sysv |
;; |
*-highlevel) |
os=-bsd |
;; |
*-encore) |
os=-bsd |
;; |
*-sgi) |
os=-irix |
;; |
*-siemens) |
os=-sysv4 |
;; |
*-masscomp) |
os=-rtu |
;; |
f30[01]-fujitsu | f700-fujitsu) |
os=-uxpv |
;; |
*-rom68k) |
os=-coff |
;; |
*-*bug) |
os=-coff |
;; |
*-apple) |
os=-macos |
;; |
*-atari*) |
os=-mint |
;; |
*) |
os=-none |
;; |
esac |
fi |
# Here we handle the case where we know the os, and the CPU type, but not the |
# manufacturer. We pick the logical manufacturer. |
vendor=unknown |
case $basic_machine in |
*-unknown) |
case $os in |
-riscix*) |
vendor=acorn |
;; |
-sunos*) |
vendor=sun |
;; |
-aix*) |
vendor=ibm |
;; |
-beos*) |
vendor=be |
;; |
-hpux*) |
vendor=hp |
;; |
-mpeix*) |
vendor=hp |
;; |
-hiux*) |
vendor=hitachi |
;; |
-unos*) |
vendor=crds |
;; |
-dgux*) |
vendor=dg |
;; |
-luna*) |
vendor=omron |
;; |
-genix*) |
vendor=ns |
;; |
-mvs* | -opened*) |
vendor=ibm |
;; |
-os400*) |
vendor=ibm |
;; |
-ptx*) |
vendor=sequent |
;; |
-tpf*) |
vendor=ibm |
;; |
-vxsim* | -vxworks* | -windiss*) |
vendor=wrs |
;; |
-aux*) |
vendor=apple |
;; |
-hms*) |
vendor=hitachi |
;; |
-mpw* | -macos*) |
vendor=apple |
;; |
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) |
vendor=atari |
;; |
-vos*) |
vendor=stratus |
;; |
esac |
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` |
;; |
esac |
echo $basic_machine$os |
exit |
# Local variables: |
# eval: (add-hook 'write-file-hooks 'time-stamp) |
# time-stamp-start: "timestamp='" |
# time-stamp-format: "%:y-%02m-%02d" |
# time-stamp-end: "'" |
# End: |
/tilgungsplan/trunk/admin/debianrules |
---|
0,0 → 1,43 |
#!/usr/bin/perl -w |
use Shell qw(mv cp mkdir rm) ; |
use File::Find; |
use Cwd; |
$origPwd = `pwd`; |
chomp $origPwd; |
$kde_prefix = "/usr"; |
$sysconfdir = "/etc"; |
$kde_includedir = "$kde_prefix/include/kde"; |
$infodir = "$kde_prefix/share/info"; |
$mandir = "$kde_prefix/share/man"; |
$qtdir = "/usr/share/qt3"; |
$kde_cgidir = "$kde_prefix/lib/cgi-bin"; |
$kde_confdir = "$sysconfdir/kde3"; |
$kde_htmldir = "$kde_prefix/share/doc/kde/HTML"; |
if (defined $ENV{DEB_BUILD_OPTIONS} && |
$ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) { |
$enable_debug="--enable-debug=full"; |
} else { |
$enable_debug="--disable-debug"; |
} |
if (@ARGV && $ARGV[0] eq 'echodirs') { |
print STDOUT "export kde_prefix=$kde_prefix\n"; |
print STDOUT "export sysconfdir=$sysconfdir\n"; |
print STDOUT "export kde_includedir=$kde_includedir\n"; |
print STDOUT "export infodir=$infodir\n"; |
print STDOUT "export mandir=$mandir\n"; |
print STDOUT "export qtdir=$qtdir\n"; |
print STDOUT "export kde_cgidir=$kde_cgidir\n"; |
print STDOUT "export kde_confdir=$kde_confdir\n"; |
print STDOUT "export kde_htmldir=$kde_htmldir\n"; |
print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n"; |
exit |
} |
/tilgungsplan/trunk/admin/ltmain.sh |
---|
0,0 → 1,6871 |
# ltmain.sh - Provide generalized library-building support services. |
# NOTE: Changing this file will not affect anything until you rerun configure. |
# |
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 |
# Free Software Foundation, Inc. |
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 |
# |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 2 of the License, or |
# (at your option) any later version. |
# |
# This program 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 |
# General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
# |
# As a special exception to the GNU General Public License, if you |
# distribute this file as part of a program that contains a |
# configuration script generated by Autoconf, you may include it under |
# the same distribution terms that you use for the rest of that program. |
basename="s,^.*/,,g" |
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh |
# is ksh but when the shell is invoked as "sh" and the current value of |
# the _XPG environment variable is not equal to 1 (one), the special |
# positional parameter $0, within a function call, is the name of the |
# function. |
progpath="$0" |
# The name of this program: |
progname=`echo "$progpath" | $SED $basename` |
modename="$progname" |
# Global variables: |
EXIT_SUCCESS=0 |
EXIT_FAILURE=1 |
PROGRAM=ltmain.sh |
PACKAGE=libtool |
VERSION="1.5.22 Debian 1.5.22-4" |
TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" |
# See if we are running on zsh, and set the options which allow our |
# commands through without removal of \ escapes. |
if test -n "${ZSH_VERSION+set}" ; then |
setopt NO_GLOB_SUBST |
fi |
# Check that we have a working $echo. |
if test "X$1" = X--no-reexec; then |
# Discard the --no-reexec flag, and continue. |
shift |
elif test "X$1" = X--fallback-echo; then |
# Avoid inline document here, it may be left over |
: |
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then |
# Yippee, $echo works! |
: |
else |
# Restart under the correct shell, and then maybe $echo will work. |
exec $SHELL "$progpath" --no-reexec ${1+"$@"} |
fi |
if test "X$1" = X--fallback-echo; then |
# used as fallback echo |
shift |
cat <<EOF |
$* |
EOF |
exit $EXIT_SUCCESS |
fi |
default_mode= |
help="Try \`$progname --help' for more information." |
magic="%%%MAGIC variable%%%" |
mkdir="mkdir" |
mv="mv -f" |
rm="rm -f" |
# Sed substitution that helps us do robust quoting. It backslashifies |
# metacharacters that are still active within double-quoted strings. |
Xsed="${SED}"' -e 1s/^X//' |
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' |
# test EBCDIC or ASCII |
case `echo X|tr X '\101'` in |
A) # ASCII based system |
# \n is not interpreted correctly by Solaris 8 /usr/ucb/tr |
SP2NL='tr \040 \012' |
NL2SP='tr \015\012 \040\040' |
;; |
*) # EBCDIC based system |
SP2NL='tr \100 \n' |
NL2SP='tr \r\n \100\100' |
;; |
esac |
# NLS nuisances. |
# Only set LANG and LC_ALL to C if already set. |
# These must not be set unconditionally because not all systems understand |
# e.g. LANG=C (notably SCO). |
# We save the old values to restore during execute mode. |
if test "${LC_ALL+set}" = set; then |
save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL |
fi |
if test "${LANG+set}" = set; then |
save_LANG="$LANG"; LANG=C; export LANG |
fi |
# Make sure IFS has a sensible default |
lt_nl=' |
' |
IFS=" $lt_nl" |
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then |
$echo "$modename: not configured to build any kind of library" 1>&2 |
$echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 |
exit $EXIT_FAILURE |
fi |
# Global variables. |
mode=$default_mode |
nonopt= |
prev= |
prevopt= |
run= |
show="$echo" |
show_help= |
execute_dlfiles= |
duplicate_deps=no |
preserve_args= |
lo2o="s/\\.lo\$/.${objext}/" |
o2lo="s/\\.${objext}\$/.lo/" |
##################################### |
# Shell function definitions: |
# This seems to be the best place for them |
# func_mktempdir [string] |
# Make a temporary directory that won't clash with other running |
# libtool processes, and avoids race conditions if possible. If |
# given, STRING is the basename for that directory. |
func_mktempdir () |
{ |
my_template="${TMPDIR-/tmp}/${1-$progname}" |
if test "$run" = ":"; then |
# Return a directory name, but don't create it in dry-run mode |
my_tmpdir="${my_template}-$$" |
else |
# If mktemp works, use that first and foremost |
my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` |
if test ! -d "$my_tmpdir"; then |
# Failing that, at least try and use $RANDOM to avoid a race |
my_tmpdir="${my_template}-${RANDOM-0}$$" |
save_mktempdir_umask=`umask` |
umask 0077 |
$mkdir "$my_tmpdir" |
umask $save_mktempdir_umask |
fi |
# If we're not in dry-run mode, bomb out on failure |
test -d "$my_tmpdir" || { |
$echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 |
exit $EXIT_FAILURE |
} |
fi |
$echo "X$my_tmpdir" | $Xsed |
} |
# func_win32_libid arg |
# return the library type of file 'arg' |
# |
# Need a lot of goo to handle *both* DLLs and import libs |
# Has to be a shell function in order to 'eat' the argument |
# that is supplied when $file_magic_command is called. |
func_win32_libid () |
{ |
win32_libid_type="unknown" |
win32_fileres=`file -L $1 2>/dev/null` |
case $win32_fileres in |
*ar\ archive\ import\ library*) # definitely import |
win32_libid_type="x86 archive import" |
;; |
*ar\ archive*) # could be an import, or static |
if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ |
$EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then |
win32_nmres=`eval $NM -f posix -A $1 | \ |
$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` |
case $win32_nmres in |
import*) win32_libid_type="x86 archive import";; |
*) win32_libid_type="x86 archive static";; |
esac |
fi |
;; |
*DLL*) |
win32_libid_type="x86 DLL" |
;; |
*executable*) # but shell scripts are "executable" too... |
case $win32_fileres in |
*MS\ Windows\ PE\ Intel*) |
win32_libid_type="x86 DLL" |
;; |
esac |
;; |
esac |
$echo $win32_libid_type |
} |
# func_infer_tag arg |
# Infer tagged configuration to use if any are available and |
# if one wasn't chosen via the "--tag" command line option. |
# Only attempt this if the compiler in the base compile |
# command doesn't match the default compiler. |
# arg is usually of the form 'gcc ...' |
func_infer_tag () |
{ |
if test -n "$available_tags" && test -z "$tagname"; then |
CC_quoted= |
for arg in $CC; do |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
arg="\"$arg\"" |
;; |
esac |
CC_quoted="$CC_quoted $arg" |
done |
case $@ in |
# Blanks in the command may have been stripped by the calling shell, |
# but not from the CC environment variable when configure was run. |
" $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; |
# Blanks at the start of $base_compile will cause this to fail |
# if we don't check for them as well. |
*) |
for z in $available_tags; do |
if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then |
# Evaluate the configuration. |
eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" |
CC_quoted= |
for arg in $CC; do |
# Double-quote args containing other shell metacharacters. |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
arg="\"$arg\"" |
;; |
esac |
CC_quoted="$CC_quoted $arg" |
done |
case "$@ " in |
" $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) |
# The compiler in the base compile command matches |
# the one in the tagged configuration. |
# Assume this is the tagged configuration we want. |
tagname=$z |
break |
;; |
esac |
fi |
done |
# If $tagname still isn't set, then no tagged configuration |
# was found and let the user know that the "--tag" command |
# line option must be used. |
if test -z "$tagname"; then |
$echo "$modename: unable to infer tagged configuration" |
$echo "$modename: specify a tag with \`--tag'" 1>&2 |
exit $EXIT_FAILURE |
# else |
# $echo "$modename: using $tagname tagged configuration" |
fi |
;; |
esac |
fi |
} |
# func_extract_an_archive dir oldlib |
func_extract_an_archive () |
{ |
f_ex_an_ar_dir="$1"; shift |
f_ex_an_ar_oldlib="$1" |
$show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" |
$run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? |
if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then |
: |
else |
$echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 |
exit $EXIT_FAILURE |
fi |
} |
# func_extract_archives gentop oldlib ... |
func_extract_archives () |
{ |
my_gentop="$1"; shift |
my_oldlibs=${1+"$@"} |
my_oldobjs="" |
my_xlib="" |
my_xabs="" |
my_xdir="" |
my_status="" |
$show "${rm}r $my_gentop" |
$run ${rm}r "$my_gentop" |
$show "$mkdir $my_gentop" |
$run $mkdir "$my_gentop" |
my_status=$? |
if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then |
exit $my_status |
fi |
for my_xlib in $my_oldlibs; do |
# Extract the objects. |
case $my_xlib in |
[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; |
*) my_xabs=`pwd`"/$my_xlib" ;; |
esac |
my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` |
my_xdir="$my_gentop/$my_xlib" |
$show "${rm}r $my_xdir" |
$run ${rm}r "$my_xdir" |
$show "$mkdir $my_xdir" |
$run $mkdir "$my_xdir" |
exit_status=$? |
if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then |
exit $exit_status |
fi |
case $host in |
*-darwin*) |
$show "Extracting $my_xabs" |
# Do not bother doing anything if just a dry run |
if test -z "$run"; then |
darwin_orig_dir=`pwd` |
cd $my_xdir || exit $? |
darwin_archive=$my_xabs |
darwin_curdir=`pwd` |
darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` |
darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` |
if test -n "$darwin_arches"; then |
darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` |
darwin_arch= |
$show "$darwin_base_archive has multiple architectures $darwin_arches" |
for darwin_arch in $darwin_arches ; do |
mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" |
lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" |
cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" |
func_extract_an_archive "`pwd`" "${darwin_base_archive}" |
cd "$darwin_curdir" |
$rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" |
done # $darwin_arches |
## Okay now we have a bunch of thin objects, gotta fatten them up :) |
darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` |
darwin_file= |
darwin_files= |
for darwin_file in $darwin_filelist; do |
darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` |
lipo -create -output "$darwin_file" $darwin_files |
done # $darwin_filelist |
${rm}r unfat-$$ |
cd "$darwin_orig_dir" |
else |
cd "$darwin_orig_dir" |
func_extract_an_archive "$my_xdir" "$my_xabs" |
fi # $darwin_arches |
fi # $run |
;; |
*) |
func_extract_an_archive "$my_xdir" "$my_xabs" |
;; |
esac |
my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` |
done |
func_extract_archives_result="$my_oldobjs" |
} |
# End of Shell function definitions |
##################################### |
# Darwin sucks |
eval std_shrext=\"$shrext_cmds\" |
disable_libs=no |
# Parse our command line options once, thoroughly. |
while test "$#" -gt 0 |
do |
arg="$1" |
shift |
case $arg in |
-*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; |
*) optarg= ;; |
esac |
# If the previous option needs an argument, assign it. |
if test -n "$prev"; then |
case $prev in |
execute_dlfiles) |
execute_dlfiles="$execute_dlfiles $arg" |
;; |
tag) |
tagname="$arg" |
preserve_args="${preserve_args}=$arg" |
# Check whether tagname contains only valid characters |
case $tagname in |
*[!-_A-Za-z0-9,/]*) |
$echo "$progname: invalid tag name: $tagname" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
case $tagname in |
CC) |
# Don't test for the "default" C tag, as we know, it's there, but |
# not specially marked. |
;; |
*) |
if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then |
taglist="$taglist $tagname" |
# Evaluate the configuration. |
eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" |
else |
$echo "$progname: ignoring unknown tag $tagname" 1>&2 |
fi |
;; |
esac |
;; |
*) |
eval "$prev=\$arg" |
;; |
esac |
prev= |
prevopt= |
continue |
fi |
# Have we seen a non-optional argument yet? |
case $arg in |
--help) |
show_help=yes |
;; |
--version) |
$echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" |
$echo |
$echo "Copyright (C) 2005 Free Software Foundation, Inc." |
$echo "This is free software; see the source for copying conditions. There is NO" |
$echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
exit $? |
;; |
--config) |
${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath |
# Now print the configurations for the tags. |
for tagname in $taglist; do |
${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" |
done |
exit $? |
;; |
--debug) |
$echo "$progname: enabling shell trace mode" |
set -x |
preserve_args="$preserve_args $arg" |
;; |
--dry-run | -n) |
run=: |
;; |
--features) |
$echo "host: $host" |
if test "$build_libtool_libs" = yes; then |
$echo "enable shared libraries" |
else |
$echo "disable shared libraries" |
fi |
if test "$build_old_libs" = yes; then |
$echo "enable static libraries" |
else |
$echo "disable static libraries" |
fi |
exit $? |
;; |
--finish) mode="finish" ;; |
--mode) prevopt="--mode" prev=mode ;; |
--mode=*) mode="$optarg" ;; |
--preserve-dup-deps) duplicate_deps="yes" ;; |
--quiet | --silent) |
show=: |
preserve_args="$preserve_args $arg" |
;; |
--tag) |
prevopt="--tag" |
prev=tag |
preserve_args="$preserve_args --tag" |
;; |
--tag=*) |
set tag "$optarg" ${1+"$@"} |
shift |
prev=tag |
preserve_args="$preserve_args --tag" |
;; |
-dlopen) |
prevopt="-dlopen" |
prev=execute_dlfiles |
;; |
-*) |
$echo "$modename: unrecognized option \`$arg'" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
;; |
*) |
nonopt="$arg" |
break |
;; |
esac |
done |
if test -n "$prevopt"; then |
$echo "$modename: option \`$prevopt' requires an argument" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
case $disable_libs in |
no) |
;; |
shared) |
build_libtool_libs=no |
build_old_libs=yes |
;; |
static) |
build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` |
;; |
esac |
# If this variable is set in any of the actions, the command in it |
# will be execed at the end. This prevents here-documents from being |
# left over by shells. |
exec_cmd= |
if test -z "$show_help"; then |
# Infer the operation mode. |
if test -z "$mode"; then |
$echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 |
$echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 |
case $nonopt in |
*cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) |
mode=link |
for arg |
do |
case $arg in |
-c) |
mode=compile |
break |
;; |
esac |
done |
;; |
*db | *dbx | *strace | *truss) |
mode=execute |
;; |
*install*|cp|mv) |
mode=install |
;; |
*rm) |
mode=uninstall |
;; |
*) |
# If we have no mode, but dlfiles were specified, then do execute mode. |
test -n "$execute_dlfiles" && mode=execute |
# Just use the default operation mode. |
if test -z "$mode"; then |
if test -n "$nonopt"; then |
$echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 |
else |
$echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 |
fi |
fi |
;; |
esac |
fi |
# Only execute mode is allowed to have -dlopen flags. |
if test -n "$execute_dlfiles" && test "$mode" != execute; then |
$echo "$modename: unrecognized option \`-dlopen'" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
# Change the help message to a mode-specific one. |
generic_help="$help" |
help="Try \`$modename --help --mode=$mode' for more information." |
# These modes are in order of execution frequency so that they run quickly. |
case $mode in |
# libtool compile mode |
compile) |
modename="$modename: compile" |
# Get the compilation command and the source file. |
base_compile= |
srcfile="$nonopt" # always keep a non-empty value in "srcfile" |
suppress_opt=yes |
suppress_output= |
arg_mode=normal |
libobj= |
later= |
for arg |
do |
case $arg_mode in |
arg ) |
# do not "continue". Instead, add this to base_compile |
lastarg="$arg" |
arg_mode=normal |
;; |
target ) |
libobj="$arg" |
arg_mode=normal |
continue |
;; |
normal ) |
# Accept any command-line options. |
case $arg in |
-o) |
if test -n "$libobj" ; then |
$echo "$modename: you cannot specify \`-o' more than once" 1>&2 |
exit $EXIT_FAILURE |
fi |
arg_mode=target |
continue |
;; |
-static | -prefer-pic | -prefer-non-pic) |
later="$later $arg" |
continue |
;; |
-no-suppress) |
suppress_opt=no |
continue |
;; |
-Xcompiler) |
arg_mode=arg # the next one goes into the "base_compile" arg list |
continue # The current "srcfile" will either be retained or |
;; # replaced later. I would guess that would be a bug. |
-Wc,*) |
args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` |
lastarg= |
save_ifs="$IFS"; IFS=',' |
for arg in $args; do |
IFS="$save_ifs" |
# Double-quote args containing other shell metacharacters. |
# Many Bourne shells cannot handle close brackets correctly |
# in scan sets, so we specify it separately. |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
arg="\"$arg\"" |
;; |
esac |
lastarg="$lastarg $arg" |
done |
IFS="$save_ifs" |
lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` |
# Add the arguments to base_compile. |
base_compile="$base_compile $lastarg" |
continue |
;; |
* ) |
# Accept the current argument as the source file. |
# The previous "srcfile" becomes the current argument. |
# |
lastarg="$srcfile" |
srcfile="$arg" |
;; |
esac # case $arg |
;; |
esac # case $arg_mode |
# Aesthetically quote the previous argument. |
lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` |
case $lastarg in |
# Double-quote args containing other shell metacharacters. |
# Many Bourne shells cannot handle close brackets correctly |
# in scan sets, and some SunOS ksh mistreat backslash-escaping |
# in scan sets (worked around with variable expansion), |
# and furthermore cannot handle '|' '&' '(' ')' in scan sets |
# at all, so we specify them separately. |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
lastarg="\"$lastarg\"" |
;; |
esac |
base_compile="$base_compile $lastarg" |
done # for arg |
case $arg_mode in |
arg) |
$echo "$modename: you must specify an argument for -Xcompile" |
exit $EXIT_FAILURE |
;; |
target) |
$echo "$modename: you must specify a target with \`-o'" 1>&2 |
exit $EXIT_FAILURE |
;; |
*) |
# Get the name of the library object. |
[ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` |
;; |
esac |
# Recognize several different file suffixes. |
# If the user specifies -o file.o, it is replaced with file.lo |
xform='[cCFSifmso]' |
case $libobj in |
*.ada) xform=ada ;; |
*.adb) xform=adb ;; |
*.ads) xform=ads ;; |
*.asm) xform=asm ;; |
*.c++) xform=c++ ;; |
*.cc) xform=cc ;; |
*.ii) xform=ii ;; |
*.class) xform=class ;; |
*.cpp) xform=cpp ;; |
*.cxx) xform=cxx ;; |
*.f90) xform=f90 ;; |
*.for) xform=for ;; |
*.java) xform=java ;; |
esac |
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` |
case $libobj in |
*.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; |
*) |
$echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
func_infer_tag $base_compile |
for arg in $later; do |
case $arg in |
-static) |
build_old_libs=yes |
continue |
;; |
-prefer-pic) |
pic_mode=yes |
continue |
;; |
-prefer-non-pic) |
pic_mode=no |
continue |
;; |
esac |
done |
qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` |
case $qlibobj in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
qlibobj="\"$qlibobj\"" ;; |
esac |
test "X$libobj" != "X$qlibobj" \ |
&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ |
&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters." |
objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` |
xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` |
if test "X$xdir" = "X$obj"; then |
xdir= |
else |
xdir=$xdir/ |
fi |
lobj=${xdir}$objdir/$objname |
if test -z "$base_compile"; then |
$echo "$modename: you must specify a compilation command" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
# Delete any leftover library objects. |
if test "$build_old_libs" = yes; then |
removelist="$obj $lobj $libobj ${libobj}T" |
else |
removelist="$lobj $libobj ${libobj}T" |
fi |
$run $rm $removelist |
trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 |
# On Cygwin there's no "real" PIC flag so we must build both object types |
case $host_os in |
cygwin* | mingw* | pw32* | os2*) |
pic_mode=default |
;; |
esac |
if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then |
# non-PIC code in shared libraries is not supported |
pic_mode=default |
fi |
# Calculate the filename of the output object if compiler does |
# not support -o with -c |
if test "$compiler_c_o" = no; then |
output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} |
lockfile="$output_obj.lock" |
removelist="$removelist $output_obj $lockfile" |
trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 |
else |
output_obj= |
need_locks=no |
lockfile= |
fi |
# Lock this critical section if it is needed |
# We use this script file to make the link, it avoids creating a new file |
if test "$need_locks" = yes; then |
until $run ln "$progpath" "$lockfile" 2>/dev/null; do |
$show "Waiting for $lockfile to be removed" |
sleep 2 |
done |
elif test "$need_locks" = warn; then |
if test -f "$lockfile"; then |
$echo "\ |
*** ERROR, $lockfile exists and contains: |
`cat $lockfile 2>/dev/null` |
This indicates that another process is trying to use the same |
temporary object file, and libtool could not work around it because |
your compiler does not support \`-c' and \`-o' together. If you |
repeat this compilation, it may succeed, by chance, but you had better |
avoid parallel builds (make -j) in this platform, or get a better |
compiler." |
$run $rm $removelist |
exit $EXIT_FAILURE |
fi |
$echo "$srcfile" > "$lockfile" |
fi |
if test -n "$fix_srcfile_path"; then |
eval srcfile=\"$fix_srcfile_path\" |
fi |
qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` |
case $qsrcfile in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
qsrcfile="\"$qsrcfile\"" ;; |
esac |
$run $rm "$libobj" "${libobj}T" |
# Create a libtool object file (analogous to a ".la" file), |
# but don't create it if we're doing a dry run. |
test -z "$run" && cat > ${libobj}T <<EOF |
# $libobj - a libtool object file |
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP |
# |
# Please DO NOT delete this file! |
# It is necessary for linking the library. |
# Name of the PIC object. |
EOF |
# Only build a PIC object if we are building libtool libraries. |
if test "$build_libtool_libs" = yes; then |
# Without this assignment, base_compile gets emptied. |
fbsd_hideous_sh_bug=$base_compile |
if test "$pic_mode" != no; then |
command="$base_compile $qsrcfile $pic_flag" |
else |
# Don't build PIC code |
command="$base_compile $qsrcfile" |
fi |
if test ! -d "${xdir}$objdir"; then |
$show "$mkdir ${xdir}$objdir" |
$run $mkdir ${xdir}$objdir |
exit_status=$? |
if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then |
exit $exit_status |
fi |
fi |
if test -z "$output_obj"; then |
# Place PIC objects in $objdir |
command="$command -o $lobj" |
fi |
$run $rm "$lobj" "$output_obj" |
$show "$command" |
if $run eval "$command"; then : |
else |
test -n "$output_obj" && $run $rm $removelist |
exit $EXIT_FAILURE |
fi |
if test "$need_locks" = warn && |
test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then |
$echo "\ |
*** ERROR, $lockfile contains: |
`cat $lockfile 2>/dev/null` |
but it should contain: |
$srcfile |
This indicates that another process is trying to use the same |
temporary object file, and libtool could not work around it because |
your compiler does not support \`-c' and \`-o' together. If you |
repeat this compilation, it may succeed, by chance, but you had better |
avoid parallel builds (make -j) in this platform, or get a better |
compiler." |
$run $rm $removelist |
exit $EXIT_FAILURE |
fi |
# Just move the object if needed, then go on to compile the next one |
if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then |
$show "$mv $output_obj $lobj" |
if $run $mv $output_obj $lobj; then : |
else |
error=$? |
$run $rm $removelist |
exit $error |
fi |
fi |
# Append the name of the PIC object to the libtool object file. |
test -z "$run" && cat >> ${libobj}T <<EOF |
pic_object='$objdir/$objname' |
EOF |
# Allow error messages only from the first compilation. |
if test "$suppress_opt" = yes; then |
suppress_output=' >/dev/null 2>&1' |
fi |
else |
# No PIC object so indicate it doesn't exist in the libtool |
# object file. |
test -z "$run" && cat >> ${libobj}T <<EOF |
pic_object=none |
EOF |
fi |
# Only build a position-dependent object if we build old libraries. |
if test "$build_old_libs" = yes; then |
if test "$pic_mode" != yes; then |
# Don't build PIC code |
command="$base_compile $qsrcfile" |
else |
command="$base_compile $qsrcfile $pic_flag" |
fi |
if test "$compiler_c_o" = yes; then |
command="$command -o $obj" |
fi |
# Suppress compiler output if we already did a PIC compilation. |
command="$command$suppress_output" |
$run $rm "$obj" "$output_obj" |
$show "$command" |
if $run eval "$command"; then : |
else |
$run $rm $removelist |
exit $EXIT_FAILURE |
fi |
if test "$need_locks" = warn && |
test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then |
$echo "\ |
*** ERROR, $lockfile contains: |
`cat $lockfile 2>/dev/null` |
but it should contain: |
$srcfile |
This indicates that another process is trying to use the same |
temporary object file, and libtool could not work around it because |
your compiler does not support \`-c' and \`-o' together. If you |
repeat this compilation, it may succeed, by chance, but you had better |
avoid parallel builds (make -j) in this platform, or get a better |
compiler." |
$run $rm $removelist |
exit $EXIT_FAILURE |
fi |
# Just move the object if needed |
if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then |
$show "$mv $output_obj $obj" |
if $run $mv $output_obj $obj; then : |
else |
error=$? |
$run $rm $removelist |
exit $error |
fi |
fi |
# Append the name of the non-PIC object the libtool object file. |
# Only append if the libtool object file exists. |
test -z "$run" && cat >> ${libobj}T <<EOF |
# Name of the non-PIC object. |
non_pic_object='$objname' |
EOF |
else |
# Append the name of the non-PIC object the libtool object file. |
# Only append if the libtool object file exists. |
test -z "$run" && cat >> ${libobj}T <<EOF |
# Name of the non-PIC object. |
non_pic_object=none |
EOF |
fi |
$run $mv "${libobj}T" "${libobj}" |
# Unlock the critical section if it was locked |
if test "$need_locks" != no; then |
$run $rm "$lockfile" |
fi |
exit $EXIT_SUCCESS |
;; |
# libtool link mode |
link | relink) |
modename="$modename: link" |
case $host in |
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) |
# It is impossible to link a dll without this setting, and |
# we shouldn't force the makefile maintainer to figure out |
# which system we are compiling for in order to pass an extra |
# flag for every libtool invocation. |
# allow_undefined=no |
# FIXME: Unfortunately, there are problems with the above when trying |
# to make a dll which has undefined symbols, in which case not |
# even a static library is built. For now, we need to specify |
# -no-undefined on the libtool link line when we can be certain |
# that all symbols are satisfied, otherwise we get a static library. |
allow_undefined=yes |
;; |
*) |
allow_undefined=yes |
;; |
esac |
libtool_args="$nonopt" |
base_compile="$nonopt $@" |
compile_command="$nonopt" |
finalize_command="$nonopt" |
compile_rpath= |
finalize_rpath= |
compile_shlibpath= |
finalize_shlibpath= |
convenience= |
old_convenience= |
deplibs= |
old_deplibs= |
compiler_flags= |
linker_flags= |
dllsearchpath= |
lib_search_path=`pwd` |
inst_prefix_dir= |
avoid_version=no |
dlfiles= |
dlprefiles= |
dlself=no |
export_dynamic=no |
export_symbols= |
export_symbols_regex= |
generated= |
libobjs= |
ltlibs= |
module=no |
no_install=no |
objs= |
non_pic_objects= |
notinst_path= # paths that contain not-installed libtool libraries |
precious_files_regex= |
prefer_static_libs=no |
preload=no |
prev= |
prevarg= |
release= |
rpath= |
xrpath= |
perm_rpath= |
temp_rpath= |
thread_safe=no |
vinfo= |
vinfo_number=no |
func_infer_tag $base_compile |
# We need to know -static, to get the right output filenames. |
for arg |
do |
case $arg in |
-all-static | -static) |
if test "X$arg" = "X-all-static"; then |
if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then |
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 |
fi |
if test -n "$link_static_flag"; then |
dlopen_self=$dlopen_self_static |
fi |
prefer_static_libs=yes |
else |
if test -z "$pic_flag" && test -n "$link_static_flag"; then |
dlopen_self=$dlopen_self_static |
fi |
prefer_static_libs=built |
fi |
build_libtool_libs=no |
build_old_libs=yes |
break |
;; |
esac |
done |
# See if our shared archives depend on static archives. |
test -n "$old_archive_from_new_cmds" && build_old_libs=yes |
# Go through the arguments, transforming them on the way. |
while test "$#" -gt 0; do |
arg="$1" |
shift |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test |
;; |
*) qarg=$arg ;; |
esac |
libtool_args="$libtool_args $qarg" |
# If the previous option needs an argument, assign it. |
if test -n "$prev"; then |
case $prev in |
output) |
compile_command="$compile_command @OUTPUT@" |
finalize_command="$finalize_command @OUTPUT@" |
;; |
esac |
case $prev in |
dlfiles|dlprefiles) |
if test "$preload" = no; then |
# Add the symbol object into the linking commands. |
compile_command="$compile_command @SYMFILE@" |
finalize_command="$finalize_command @SYMFILE@" |
preload=yes |
fi |
case $arg in |
*.la | *.lo) ;; # We handle these cases below. |
force) |
if test "$dlself" = no; then |
dlself=needless |
export_dynamic=yes |
fi |
prev= |
continue |
;; |
self) |
if test "$prev" = dlprefiles; then |
dlself=yes |
elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then |
dlself=yes |
else |
dlself=needless |
export_dynamic=yes |
fi |
prev= |
continue |
;; |
*) |
if test "$prev" = dlfiles; then |
dlfiles="$dlfiles $arg" |
else |
dlprefiles="$dlprefiles $arg" |
fi |
prev= |
continue |
;; |
esac |
;; |
expsyms) |
export_symbols="$arg" |
if test ! -f "$arg"; then |
$echo "$modename: symbol file \`$arg' does not exist" |
exit $EXIT_FAILURE |
fi |
prev= |
continue |
;; |
expsyms_regex) |
export_symbols_regex="$arg" |
prev= |
continue |
;; |
inst_prefix) |
inst_prefix_dir="$arg" |
prev= |
continue |
;; |
precious_regex) |
precious_files_regex="$arg" |
prev= |
continue |
;; |
release) |
release="-$arg" |
prev= |
continue |
;; |
objectlist) |
if test -f "$arg"; then |
save_arg=$arg |
moreargs= |
for fil in `cat $save_arg` |
do |
# moreargs="$moreargs $fil" |
arg=$fil |
# A libtool-controlled object. |
# Check to see that this really is a libtool object. |
if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then |
pic_object= |
non_pic_object= |
# Read the .lo file |
# If there is no directory component, then add one. |
case $arg in |
*/* | *\\*) . $arg ;; |
*) . ./$arg ;; |
esac |
if test -z "$pic_object" || \ |
test -z "$non_pic_object" || |
test "$pic_object" = none && \ |
test "$non_pic_object" = none; then |
$echo "$modename: cannot find name of object for \`$arg'" 1>&2 |
exit $EXIT_FAILURE |
fi |
# Extract subdirectory from the argument. |
xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` |
if test "X$xdir" = "X$arg"; then |
xdir= |
else |
xdir="$xdir/" |
fi |
if test "$pic_object" != none; then |
# Prepend the subdirectory the object is found in. |
pic_object="$xdir$pic_object" |
if test "$prev" = dlfiles; then |
if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then |
dlfiles="$dlfiles $pic_object" |
prev= |
continue |
else |
# If libtool objects are unsupported, then we need to preload. |
prev=dlprefiles |
fi |
fi |
# CHECK ME: I think I busted this. -Ossama |
if test "$prev" = dlprefiles; then |
# Preload the old-style object. |
dlprefiles="$dlprefiles $pic_object" |
prev= |
fi |
# A PIC object. |
libobjs="$libobjs $pic_object" |
arg="$pic_object" |
fi |
# Non-PIC object. |
if test "$non_pic_object" != none; then |
# Prepend the subdirectory the object is found in. |
non_pic_object="$xdir$non_pic_object" |
# A standard non-PIC object |
non_pic_objects="$non_pic_objects $non_pic_object" |
if test -z "$pic_object" || test "$pic_object" = none ; then |
arg="$non_pic_object" |
fi |
else |
# If the PIC object exists, use it instead. |
# $xdir was prepended to $pic_object above. |
non_pic_object="$pic_object" |
non_pic_objects="$non_pic_objects $non_pic_object" |
fi |
else |
# Only an error if not doing a dry-run. |
if test -z "$run"; then |
$echo "$modename: \`$arg' is not a valid libtool object" 1>&2 |
exit $EXIT_FAILURE |
else |
# Dry-run case. |
# Extract subdirectory from the argument. |
xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` |
if test "X$xdir" = "X$arg"; then |
xdir= |
else |
xdir="$xdir/" |
fi |
pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` |
non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` |
libobjs="$libobjs $pic_object" |
non_pic_objects="$non_pic_objects $non_pic_object" |
fi |
fi |
done |
else |
$echo "$modename: link input file \`$save_arg' does not exist" |
exit $EXIT_FAILURE |
fi |
arg=$save_arg |
prev= |
continue |
;; |
rpath | xrpath) |
# We need an absolute path. |
case $arg in |
[\\/]* | [A-Za-z]:[\\/]*) ;; |
*) |
$echo "$modename: only absolute run-paths are allowed" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
if test "$prev" = rpath; then |
case "$rpath " in |
*" $arg "*) ;; |
*) rpath="$rpath $arg" ;; |
esac |
else |
case "$xrpath " in |
*" $arg "*) ;; |
*) xrpath="$xrpath $arg" ;; |
esac |
fi |
prev= |
continue |
;; |
xcompiler) |
compiler_flags="$compiler_flags $qarg" |
prev= |
compile_command="$compile_command $qarg" |
finalize_command="$finalize_command $qarg" |
continue |
;; |
xlinker) |
linker_flags="$linker_flags $qarg" |
compiler_flags="$compiler_flags $wl$qarg" |
prev= |
compile_command="$compile_command $wl$qarg" |
finalize_command="$finalize_command $wl$qarg" |
continue |
;; |
xcclinker) |
linker_flags="$linker_flags $qarg" |
compiler_flags="$compiler_flags $qarg" |
prev= |
compile_command="$compile_command $qarg" |
finalize_command="$finalize_command $qarg" |
continue |
;; |
shrext) |
shrext_cmds="$arg" |
prev= |
continue |
;; |
darwin_framework|darwin_framework_skip) |
test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" |
compile_command="$compile_command $arg" |
finalize_command="$finalize_command $arg" |
prev= |
continue |
;; |
*) |
eval "$prev=\"\$arg\"" |
prev= |
continue |
;; |
esac |
fi # test -n "$prev" |
prevarg="$arg" |
case $arg in |
-all-static) |
if test -n "$link_static_flag"; then |
compile_command="$compile_command $link_static_flag" |
finalize_command="$finalize_command $link_static_flag" |
fi |
continue |
;; |
-allow-undefined) |
# FIXME: remove this flag sometime in the future. |
$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 |
continue |
;; |
-avoid-version) |
avoid_version=yes |
continue |
;; |
-dlopen) |
prev=dlfiles |
continue |
;; |
-dlpreopen) |
prev=dlprefiles |
continue |
;; |
-export-dynamic) |
export_dynamic=yes |
continue |
;; |
-export-symbols | -export-symbols-regex) |
if test -n "$export_symbols" || test -n "$export_symbols_regex"; then |
$echo "$modename: more than one -exported-symbols argument is not allowed" |
exit $EXIT_FAILURE |
fi |
if test "X$arg" = "X-export-symbols"; then |
prev=expsyms |
else |
prev=expsyms_regex |
fi |
continue |
;; |
-framework|-arch|-isysroot) |
case " $CC " in |
*" ${arg} ${1} "* | *" ${arg} ${1} "*) |
prev=darwin_framework_skip ;; |
*) compiler_flags="$compiler_flags $arg" |
prev=darwin_framework ;; |
esac |
compile_command="$compile_command $arg" |
finalize_command="$finalize_command $arg" |
continue |
;; |
-inst-prefix-dir) |
prev=inst_prefix |
continue |
;; |
# The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* |
# so, if we see these flags be careful not to treat them like -L |
-L[A-Z][A-Z]*:*) |
case $with_gcc/$host in |
no/*-*-irix* | /*-*-irix*) |
compile_command="$compile_command $arg" |
finalize_command="$finalize_command $arg" |
;; |
esac |
continue |
;; |
-L*) |
dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` |
# We need an absolute path. |
case $dir in |
[\\/]* | [A-Za-z]:[\\/]*) ;; |
*) |
absdir=`cd "$dir" && pwd` |
if test -z "$absdir"; then |
$echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 |
absdir="$dir" |
notinst_path="$notinst_path $dir" |
fi |
dir="$absdir" |
;; |
esac |
case "$deplibs " in |
*" -L$dir "*) ;; |
*) |
deplibs="$deplibs -L$dir" |
lib_search_path="$lib_search_path $dir" |
;; |
esac |
case $host in |
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) |
testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` |
case :$dllsearchpath: in |
*":$dir:"*) ;; |
*) dllsearchpath="$dllsearchpath:$dir";; |
esac |
case :$dllsearchpath: in |
*":$testbindir:"*) ;; |
*) dllsearchpath="$dllsearchpath:$testbindir";; |
esac |
;; |
esac |
continue |
;; |
-l*) |
if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then |
case $host in |
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) |
# These systems don't actually have a C or math library (as such) |
continue |
;; |
*-*-os2*) |
# These systems don't actually have a C library (as such) |
test "X$arg" = "X-lc" && continue |
;; |
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) |
# Do not include libc due to us having libc/libc_r. |
test "X$arg" = "X-lc" && continue |
;; |
*-*-rhapsody* | *-*-darwin1.[012]) |
# Rhapsody C and math libraries are in the System framework |
deplibs="$deplibs -framework System" |
continue |
;; |
*-*-sco3.2v5* | *-*-sco5v6*) |
# Causes problems with __ctype |
test "X$arg" = "X-lc" && continue |
;; |
*-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) |
# Compiler inserts libc in the correct place for threads to work |
test "X$arg" = "X-lc" && continue |
;; |
esac |
elif test "X$arg" = "X-lc_r"; then |
case $host in |
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) |
# Do not include libc_r directly, use -pthread flag. |
continue |
;; |
esac |
fi |
deplibs="$deplibs $arg" |
continue |
;; |
# Tru64 UNIX uses -model [arg] to determine the layout of C++ |
# classes, name mangling, and exception handling. |
-model) |
compile_command="$compile_command $arg" |
compiler_flags="$compiler_flags $arg" |
finalize_command="$finalize_command $arg" |
prev=xcompiler |
continue |
;; |
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) |
compiler_flags="$compiler_flags $arg" |
compile_command="$compile_command $arg" |
finalize_command="$finalize_command $arg" |
continue |
;; |
-module) |
module=yes |
continue |
;; |
# -64, -mips[0-9] enable 64-bit mode on the SGI compiler |
# -r[0-9][0-9]* specifies the processor on the SGI compiler |
# -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler |
# +DA*, +DD* enable 64-bit mode on the HP compiler |
# -q* pass through compiler args for the IBM compiler |
# -m* pass through architecture-specific compiler args for GCC |
# -m*, -t[45]*, -txscale* pass through architecture-specific |
# compiler args for GCC |
# -pg pass through profiling flag for GCC |
# @file GCC response files |
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ |
-t[45]*|-txscale*|@*) |
# Unknown arguments in both finalize_command and compile_command need |
# to be aesthetically quoted because they are evaled later. |
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
arg="\"$arg\"" |
;; |
esac |
compile_command="$compile_command $arg" |
finalize_command="$finalize_command $arg" |
compiler_flags="$compiler_flags $arg" |
continue |
;; |
-shrext) |
prev=shrext |
continue |
;; |
-no-fast-install) |
fast_install=no |
continue |
;; |
-no-install) |
case $host in |
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) |
# The PATH hackery in wrapper scripts is required on Windows |
# in order for the loader to find any dlls it needs. |
$echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 |
$echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 |
fast_install=no |
;; |
*) no_install=yes ;; |
esac |
continue |
;; |
-no-undefined) |
allow_undefined=no |
continue |
;; |
-objectlist) |
prev=objectlist |
continue |
;; |
-o) prev=output ;; |
-precious-files-regex) |
prev=precious_regex |
continue |
;; |
-release) |
prev=release |
continue |
;; |
-rpath) |
prev=rpath |
continue |
;; |
-R) |
prev=xrpath |
continue |
;; |
-R*) |
dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` |
# We need an absolute path. |
case $dir in |
[\\/]* | [A-Za-z]:[\\/]*) ;; |
*) |
$echo "$modename: only absolute run-paths are allowed" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
case "$xrpath " in |
*" $dir "*) ;; |
*) xrpath="$xrpath $dir" ;; |
esac |
continue |
;; |
-static) |
# The effects of -static are defined in a previous loop. |
# We used to do the same as -all-static on platforms that |
# didn't have a PIC flag, but the assumption that the effects |
# would be equivalent was wrong. It would break on at least |
# Digital Unix and AIX. |
continue |
;; |
-thread-safe) |
thread_safe=yes |
continue |
;; |
-version-info) |
prev=vinfo |
continue |
;; |
-version-number) |
prev=vinfo |
vinfo_number=yes |
continue |
;; |
-Wc,*) |
args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` |
arg= |
save_ifs="$IFS"; IFS=',' |
for flag in $args; do |
IFS="$save_ifs" |
case $flag in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
flag="\"$flag\"" |
;; |
esac |
arg="$arg $wl$flag" |
compiler_flags="$compiler_flags $flag" |
done |
IFS="$save_ifs" |
arg=`$echo "X$arg" | $Xsed -e "s/^ //"` |
;; |
-Wl,*) |
args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` |
arg= |
save_ifs="$IFS"; IFS=',' |
for flag in $args; do |
IFS="$save_ifs" |
case $flag in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
flag="\"$flag\"" |
;; |
esac |
arg="$arg $wl$flag" |
compiler_flags="$compiler_flags $wl$flag" |
linker_flags="$linker_flags $flag" |
done |
IFS="$save_ifs" |
arg=`$echo "X$arg" | $Xsed -e "s/^ //"` |
;; |
-Xcompiler) |
prev=xcompiler |
continue |
;; |
-Xlinker) |
prev=xlinker |
continue |
;; |
-XCClinker) |
prev=xcclinker |
continue |
;; |
# Some other compiler flag. |
-* | +*) |
# Unknown arguments in both finalize_command and compile_command need |
# to be aesthetically quoted because they are evaled later. |
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
arg="\"$arg\"" |
;; |
esac |
;; |
*.$objext) |
# A standard object. |
objs="$objs $arg" |
;; |
*.lo) |
# A libtool-controlled object. |
# Check to see that this really is a libtool object. |
if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then |
pic_object= |
non_pic_object= |
# Read the .lo file |
# If there is no directory component, then add one. |
case $arg in |
*/* | *\\*) . $arg ;; |
*) . ./$arg ;; |
esac |
if test -z "$pic_object" || \ |
test -z "$non_pic_object" || |
test "$pic_object" = none && \ |
test "$non_pic_object" = none; then |
$echo "$modename: cannot find name of object for \`$arg'" 1>&2 |
exit $EXIT_FAILURE |
fi |
# Extract subdirectory from the argument. |
xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` |
if test "X$xdir" = "X$arg"; then |
xdir= |
else |
xdir="$xdir/" |
fi |
if test "$pic_object" != none; then |
# Prepend the subdirectory the object is found in. |
pic_object="$xdir$pic_object" |
if test "$prev" = dlfiles; then |
if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then |
dlfiles="$dlfiles $pic_object" |
prev= |
continue |
else |
# If libtool objects are unsupported, then we need to preload. |
prev=dlprefiles |
fi |
fi |
# CHECK ME: I think I busted this. -Ossama |
if test "$prev" = dlprefiles; then |
# Preload the old-style object. |
dlprefiles="$dlprefiles $pic_object" |
prev= |
fi |
# A PIC object. |
libobjs="$libobjs $pic_object" |
arg="$pic_object" |
fi |
# Non-PIC object. |
if test "$non_pic_object" != none; then |
# Prepend the subdirectory the object is found in. |
non_pic_object="$xdir$non_pic_object" |
# A standard non-PIC object |
non_pic_objects="$non_pic_objects $non_pic_object" |
if test -z "$pic_object" || test "$pic_object" = none ; then |
arg="$non_pic_object" |
fi |
else |
# If the PIC object exists, use it instead. |
# $xdir was prepended to $pic_object above. |
non_pic_object="$pic_object" |
non_pic_objects="$non_pic_objects $non_pic_object" |
fi |
else |
# Only an error if not doing a dry-run. |
if test -z "$run"; then |
$echo "$modename: \`$arg' is not a valid libtool object" 1>&2 |
exit $EXIT_FAILURE |
else |
# Dry-run case. |
# Extract subdirectory from the argument. |
xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` |
if test "X$xdir" = "X$arg"; then |
xdir= |
else |
xdir="$xdir/" |
fi |
pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` |
non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` |
libobjs="$libobjs $pic_object" |
non_pic_objects="$non_pic_objects $non_pic_object" |
fi |
fi |
;; |
*.$libext) |
# An archive. |
deplibs="$deplibs $arg" |
old_deplibs="$old_deplibs $arg" |
continue |
;; |
*.la) |
# A libtool-controlled library. |
if test "$prev" = dlfiles; then |
# This library was specified with -dlopen. |
dlfiles="$dlfiles $arg" |
prev= |
elif test "$prev" = dlprefiles; then |
# The library was specified with -dlpreopen. |
dlprefiles="$dlprefiles $arg" |
prev= |
else |
deplibs="$deplibs $arg" |
fi |
continue |
;; |
# Some other compiler argument. |
*) |
# Unknown arguments in both finalize_command and compile_command need |
# to be aesthetically quoted because they are evaled later. |
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
arg="\"$arg\"" |
;; |
esac |
;; |
esac # arg |
# Now actually substitute the argument into the commands. |
if test -n "$arg"; then |
compile_command="$compile_command $arg" |
finalize_command="$finalize_command $arg" |
fi |
done # argument parsing loop |
if test -n "$prev"; then |
$echo "$modename: the \`$prevarg' option requires an argument" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then |
eval arg=\"$export_dynamic_flag_spec\" |
compile_command="$compile_command $arg" |
finalize_command="$finalize_command $arg" |
fi |
oldlibs= |
# calculate the name of the file, without its directory |
outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` |
libobjs_save="$libobjs" |
if test -n "$shlibpath_var"; then |
# get the directories listed in $shlibpath_var |
eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` |
else |
shlib_search_path= |
fi |
eval sys_lib_search_path=\"$sys_lib_search_path_spec\" |
eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" |
output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` |
if test "X$output_objdir" = "X$output"; then |
output_objdir="$objdir" |
else |
output_objdir="$output_objdir/$objdir" |
fi |
# Create the object directory. |
if test ! -d "$output_objdir"; then |
$show "$mkdir $output_objdir" |
$run $mkdir $output_objdir |
exit_status=$? |
if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then |
exit $exit_status |
fi |
fi |
# Determine the type of output |
case $output in |
"") |
$echo "$modename: you must specify an output file" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
;; |
*.$libext) linkmode=oldlib ;; |
*.lo | *.$objext) linkmode=obj ;; |
*.la) linkmode=lib ;; |
*) linkmode=prog ;; # Anything else should be a program. |
esac |
case $host in |
*cygwin* | *mingw* | *pw32*) |
# don't eliminate duplications in $postdeps and $predeps |
duplicate_compiler_generated_deps=yes |
;; |
*) |
duplicate_compiler_generated_deps=$duplicate_deps |
;; |
esac |
specialdeplibs= |
libs= |
# Find all interdependent deplibs by searching for libraries |
# that are linked more than once (e.g. -la -lb -la) |
for deplib in $deplibs; do |
if test "X$duplicate_deps" = "Xyes" ; then |
case "$libs " in |
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; |
esac |
fi |
libs="$libs $deplib" |
done |
if test "$linkmode" = lib; then |
libs="$predeps $libs $compiler_lib_search_path $postdeps" |
# Compute libraries that are listed more than once in $predeps |
# $postdeps and mark them as special (i.e., whose duplicates are |
# not to be eliminated). |
pre_post_deps= |
if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then |
for pre_post_dep in $predeps $postdeps; do |
case "$pre_post_deps " in |
*" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; |
esac |
pre_post_deps="$pre_post_deps $pre_post_dep" |
done |
fi |
pre_post_deps= |
fi |
deplibs= |
newdependency_libs= |
newlib_search_path= |
need_relink=no # whether we're linking any uninstalled libtool libraries |
notinst_deplibs= # not-installed libtool libraries |
case $linkmode in |
lib) |
passes="conv link" |
for file in $dlfiles $dlprefiles; do |
case $file in |
*.la) ;; |
*) |
$echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
done |
;; |
prog) |
compile_deplibs= |
finalize_deplibs= |
alldeplibs=no |
newdlfiles= |
newdlprefiles= |
passes="conv scan dlopen dlpreopen link" |
;; |
*) passes="conv" |
;; |
esac |
for pass in $passes; do |
if test "$linkmode,$pass" = "lib,link" || |
test "$linkmode,$pass" = "prog,scan"; then |
libs="$deplibs" |
deplibs= |
fi |
if test "$linkmode" = prog; then |
case $pass in |
dlopen) libs="$dlfiles" ;; |
dlpreopen) libs="$dlprefiles" ;; |
link) |
libs="$deplibs %DEPLIBS%" |
test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" |
;; |
esac |
fi |
if test "$pass" = dlopen; then |
# Collect dlpreopened libraries |
save_deplibs="$deplibs" |
deplibs= |
fi |
for deplib in $libs; do |
lib= |
found=no |
case $deplib in |
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) |
if test "$linkmode,$pass" = "prog,link"; then |
compile_deplibs="$deplib $compile_deplibs" |
finalize_deplibs="$deplib $finalize_deplibs" |
else |
compiler_flags="$compiler_flags $deplib" |
fi |
continue |
;; |
-l*) |
if test "$linkmode" != lib && test "$linkmode" != prog; then |
$echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 |
continue |
fi |
name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` |
for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do |
for search_ext in .la $std_shrext .so .a; do |
# Search the libtool library |
lib="$searchdir/lib${name}${search_ext}" |
if test -f "$lib"; then |
if test "$search_ext" = ".la"; then |
found=yes |
else |
found=no |
fi |
break 2 |
fi |
done |
done |
if test "$found" != yes; then |
# deplib doesn't seem to be a libtool library |
if test "$linkmode,$pass" = "prog,link"; then |
compile_deplibs="$deplib $compile_deplibs" |
finalize_deplibs="$deplib $finalize_deplibs" |
else |
deplibs="$deplib $deplibs" |
test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" |
fi |
continue |
else # deplib is a libtool library |
# If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, |
# We need to do some special things here, and not later. |
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
case " $predeps $postdeps " in |
*" $deplib "*) |
if (${SED} -e '2q' $lib | |
grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then |
library_names= |
old_library= |
case $lib in |
*/* | *\\*) . $lib ;; |
*) . ./$lib ;; |
esac |
for l in $old_library $library_names; do |
ll="$l" |
done |
if test "X$ll" = "X$old_library" ; then # only static version available |
found=no |
ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` |
test "X$ladir" = "X$lib" && ladir="." |
lib=$ladir/$old_library |
if test "$linkmode,$pass" = "prog,link"; then |
compile_deplibs="$deplib $compile_deplibs" |
finalize_deplibs="$deplib $finalize_deplibs" |
else |
deplibs="$deplib $deplibs" |
test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" |
fi |
continue |
fi |
fi |
;; |
*) ;; |
esac |
fi |
fi |
;; # -l |
-L*) |
case $linkmode in |
lib) |
deplibs="$deplib $deplibs" |
test "$pass" = conv && continue |
newdependency_libs="$deplib $newdependency_libs" |
newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` |
;; |
prog) |
if test "$pass" = conv; then |
deplibs="$deplib $deplibs" |
continue |
fi |
if test "$pass" = scan; then |
deplibs="$deplib $deplibs" |
else |
compile_deplibs="$deplib $compile_deplibs" |
finalize_deplibs="$deplib $finalize_deplibs" |
fi |
newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` |
;; |
*) |
$echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 |
;; |
esac # linkmode |
continue |
;; # -L |
-R*) |
if test "$pass" = link; then |
dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` |
# Make sure the xrpath contains only unique directories. |
case "$xrpath " in |
*" $dir "*) ;; |
*) xrpath="$xrpath $dir" ;; |
esac |
fi |
deplibs="$deplib $deplibs" |
continue |
;; |
*.la) lib="$deplib" ;; |
*.$libext) |
if test "$pass" = conv; then |
deplibs="$deplib $deplibs" |
continue |
fi |
case $linkmode in |
lib) |
valid_a_lib=no |
case $deplibs_check_method in |
match_pattern*) |
set dummy $deplibs_check_method |
match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` |
if eval $echo \"$deplib\" 2>/dev/null \ |
| $SED 10q \ |
| $EGREP "$match_pattern_regex" > /dev/null; then |
valid_a_lib=yes |
fi |
;; |
pass_all) |
valid_a_lib=yes |
;; |
esac |
if test "$valid_a_lib" != yes; then |
$echo |
$echo "*** Warning: Trying to link with static lib archive $deplib." |
$echo "*** I have the capability to make that library automatically link in when" |
$echo "*** you link to this library. But I can only do this if you have a" |
$echo "*** shared version of the library, which you do not appear to have" |
$echo "*** because the file extensions .$libext of this argument makes me believe" |
$echo "*** that it is just a static archive that I should not used here." |
else |
$echo |
$echo "*** Warning: Linking the shared library $output against the" |
$echo "*** static library $deplib is not portable!" |
deplibs="$deplib $deplibs" |
fi |
continue |
;; |
prog) |
if test "$pass" != link; then |
deplibs="$deplib $deplibs" |
else |
compile_deplibs="$deplib $compile_deplibs" |
finalize_deplibs="$deplib $finalize_deplibs" |
fi |
continue |
;; |
esac # linkmode |
;; # *.$libext |
*.lo | *.$objext) |
if test "$pass" = conv; then |
deplibs="$deplib $deplibs" |
elif test "$linkmode" = prog; then |
if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then |
# If there is no dlopen support or we're linking statically, |
# we need to preload. |
newdlprefiles="$newdlprefiles $deplib" |
compile_deplibs="$deplib $compile_deplibs" |
finalize_deplibs="$deplib $finalize_deplibs" |
else |
newdlfiles="$newdlfiles $deplib" |
fi |
fi |
continue |
;; |
%DEPLIBS%) |
alldeplibs=yes |
continue |
;; |
esac # case $deplib |
if test "$found" = yes || test -f "$lib"; then : |
else |
$echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 |
exit $EXIT_FAILURE |
fi |
# Check to see that this really is a libtool archive. |
if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : |
else |
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 |
exit $EXIT_FAILURE |
fi |
ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` |
test "X$ladir" = "X$lib" && ladir="." |
dlname= |
dlopen= |
dlpreopen= |
libdir= |
library_names= |
old_library= |
# If the library was installed with an old release of libtool, |
# it will not redefine variables installed, or shouldnotlink |
installed=yes |
shouldnotlink=no |
avoidtemprpath= |
# Read the .la file |
case $lib in |
*/* | *\\*) . $lib ;; |
*) . ./$lib ;; |
esac |
if test "$linkmode,$pass" = "lib,link" || |
test "$linkmode,$pass" = "prog,scan" || |
{ test "$linkmode" != prog && test "$linkmode" != lib; }; then |
test -n "$dlopen" && dlfiles="$dlfiles $dlopen" |
test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" |
fi |
if test "$pass" = conv; then |
# Only check for convenience libraries |
deplibs="$lib $deplibs" |
if test -z "$libdir"; then |
if test -z "$old_library"; then |
$echo "$modename: cannot find name of link library for \`$lib'" 1>&2 |
exit $EXIT_FAILURE |
fi |
# It is a libtool convenience library, so add in its objects. |
convenience="$convenience $ladir/$objdir/$old_library" |
old_convenience="$old_convenience $ladir/$objdir/$old_library" |
tmp_libs= |
for deplib in $dependency_libs; do |
deplibs="$deplib $deplibs" |
if test "X$duplicate_deps" = "Xyes" ; then |
case "$tmp_libs " in |
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; |
esac |
fi |
tmp_libs="$tmp_libs $deplib" |
done |
elif test "$linkmode" != prog && test "$linkmode" != lib; then |
$echo "$modename: \`$lib' is not a convenience library" 1>&2 |
exit $EXIT_FAILURE |
fi |
continue |
fi # $pass = conv |
# Get the name of the library we link against. |
linklib= |
for l in $old_library $library_names; do |
linklib="$l" |
done |
if test -z "$linklib"; then |
$echo "$modename: cannot find name of link library for \`$lib'" 1>&2 |
exit $EXIT_FAILURE |
fi |
# This library was specified with -dlopen. |
if test "$pass" = dlopen; then |
if test -z "$libdir"; then |
$echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 |
exit $EXIT_FAILURE |
fi |
if test -z "$dlname" || |
test "$dlopen_support" != yes || |
test "$build_libtool_libs" = no; then |
# If there is no dlname, no dlopen support or we're linking |
# statically, we need to preload. We also need to preload any |
# dependent libraries so libltdl's deplib preloader doesn't |
# bomb out in the load deplibs phase. |
dlprefiles="$dlprefiles $lib $dependency_libs" |
else |
newdlfiles="$newdlfiles $lib" |
fi |
continue |
fi # $pass = dlopen |
# We need an absolute path. |
case $ladir in |
[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; |
*) |
abs_ladir=`cd "$ladir" && pwd` |
if test -z "$abs_ladir"; then |
$echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 |
$echo "$modename: passing it literally to the linker, although it might fail" 1>&2 |
abs_ladir="$ladir" |
fi |
;; |
esac |
laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` |
# Find the relevant object directory and library name. |
if test "X$installed" = Xyes; then |
if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then |
$echo "$modename: warning: library \`$lib' was moved." 1>&2 |
dir="$ladir" |
absdir="$abs_ladir" |
libdir="$abs_ladir" |
else |
dir="$libdir" |
absdir="$libdir" |
fi |
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes |
else |
if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then |
dir="$ladir" |
absdir="$abs_ladir" |
# Remove this search path later |
notinst_path="$notinst_path $abs_ladir" |
else |
dir="$ladir/$objdir" |
absdir="$abs_ladir/$objdir" |
# Remove this search path later |
notinst_path="$notinst_path $abs_ladir" |
fi |
fi # $installed = yes |
name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` |
# This library was specified with -dlpreopen. |
if test "$pass" = dlpreopen; then |
if test -z "$libdir"; then |
$echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 |
exit $EXIT_FAILURE |
fi |
# Prefer using a static library (so that no silly _DYNAMIC symbols |
# are required to link). |
if test -n "$old_library"; then |
newdlprefiles="$newdlprefiles $dir/$old_library" |
# Otherwise, use the dlname, so that lt_dlopen finds it. |
elif test -n "$dlname"; then |
newdlprefiles="$newdlprefiles $dir/$dlname" |
else |
newdlprefiles="$newdlprefiles $dir/$linklib" |
fi |
fi # $pass = dlpreopen |
if test -z "$libdir"; then |
# Link the convenience library |
if test "$linkmode" = lib; then |
deplibs="$dir/$old_library $deplibs" |
elif test "$linkmode,$pass" = "prog,link"; then |
compile_deplibs="$dir/$old_library $compile_deplibs" |
finalize_deplibs="$dir/$old_library $finalize_deplibs" |
else |
deplibs="$lib $deplibs" # used for prog,scan pass |
fi |
continue |
fi |
if test "$linkmode" = prog && test "$pass" != link; then |
newlib_search_path="$newlib_search_path $ladir" |
deplibs="$lib $deplibs" |
linkalldeplibs=no |
if test "$link_all_deplibs" != no || test -z "$library_names" || |
test "$build_libtool_libs" = no; then |
linkalldeplibs=yes |
fi |
tmp_libs= |
for deplib in $dependency_libs; do |
case $deplib in |
-L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test |
esac |
# Need to link against all dependency_libs? |
if test "$linkalldeplibs" = yes; then |
deplibs="$deplib $deplibs" |
else |
# Need to hardcode shared library paths |
# or/and link against static libraries |
newdependency_libs="$deplib $newdependency_libs" |
fi |
if test "X$duplicate_deps" = "Xyes" ; then |
case "$tmp_libs " in |
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; |
esac |
fi |
tmp_libs="$tmp_libs $deplib" |
done # for deplib |
continue |
fi # $linkmode = prog... |
if test "$linkmode,$pass" = "prog,link"; then |
if test -n "$library_names" && |
{ test "$prefer_static_libs" = no || test -z "$old_library"; }; then |
# We need to hardcode the library path |
if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then |
# Make sure the rpath contains only unique directories. |
case "$temp_rpath " in |
*" $dir "*) ;; |
*" $absdir "*) ;; |
*) temp_rpath="$temp_rpath $absdir" ;; |
esac |
fi |
# Hardcode the library path. |
# Skip directories that are in the system default run-time |
# search path. |
case " $sys_lib_dlsearch_path " in |
*" $absdir "*) ;; |
*) |
case "$compile_rpath " in |
*" $absdir "*) ;; |
*) compile_rpath="$compile_rpath $absdir" |
esac |
;; |
esac |
case " $sys_lib_dlsearch_path " in |
*" $libdir "*) ;; |
*) |
case "$finalize_rpath " in |
*" $libdir "*) ;; |
*) finalize_rpath="$finalize_rpath $libdir" |
esac |
;; |
esac |
fi # $linkmode,$pass = prog,link... |
if test "$alldeplibs" = yes && |
{ test "$deplibs_check_method" = pass_all || |
{ test "$build_libtool_libs" = yes && |
test -n "$library_names"; }; }; then |
# We only need to search for static libraries |
continue |
fi |
fi |
link_static=no # Whether the deplib will be linked statically |
use_static_libs=$prefer_static_libs |
if test "$use_static_libs" = built && test "$installed" = yes ; then |
use_static_libs=no |
fi |
if test -n "$library_names" && |
{ test "$use_static_libs" = no || test -z "$old_library"; }; then |
if test "$installed" = no; then |
notinst_deplibs="$notinst_deplibs $lib" |
need_relink=yes |
fi |
# This is a shared library |
# Warn about portability, can't link against -module's on |
# some systems (darwin) |
if test "$shouldnotlink" = yes && test "$pass" = link ; then |
$echo |
if test "$linkmode" = prog; then |
$echo "*** Warning: Linking the executable $output against the loadable module" |
else |
$echo "*** Warning: Linking the shared library $output against the loadable module" |
fi |
$echo "*** $linklib is not portable!" |
fi |
if test "$linkmode" = lib && |
test "$hardcode_into_libs" = yes; then |
# Hardcode the library path. |
# Skip directories that are in the system default run-time |
# search path. |
case " $sys_lib_dlsearch_path " in |
*" $absdir "*) ;; |
*) |
case "$compile_rpath " in |
*" $absdir "*) ;; |
*) compile_rpath="$compile_rpath $absdir" |
esac |
;; |
esac |
case " $sys_lib_dlsearch_path " in |
*" $libdir "*) ;; |
*) |
case "$finalize_rpath " in |
*" $libdir "*) ;; |
*) finalize_rpath="$finalize_rpath $libdir" |
esac |
;; |
esac |
fi |
if test -n "$old_archive_from_expsyms_cmds"; then |
# figure out the soname |
set dummy $library_names |
realname="$2" |
shift; shift |
libname=`eval \\$echo \"$libname_spec\"` |
# use dlname if we got it. it's perfectly good, no? |
if test -n "$dlname"; then |
soname="$dlname" |
elif test -n "$soname_spec"; then |
# bleh windows |
case $host in |
*cygwin* | mingw*) |
major=`expr $current - $age` |
versuffix="-$major" |
;; |
esac |
eval soname=\"$soname_spec\" |
else |
soname="$realname" |
fi |
# Make a new name for the extract_expsyms_cmds to use |
soroot="$soname" |
soname=`$echo $soroot | ${SED} -e 's/^.*\///'` |
newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" |
# If the library has no export list, then create one now |
if test -f "$output_objdir/$soname-def"; then : |
else |
$show "extracting exported symbol list from \`$soname'" |
save_ifs="$IFS"; IFS='~' |
cmds=$extract_expsyms_cmds |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" || exit $? |
done |
IFS="$save_ifs" |
fi |
# Create $newlib |
if test -f "$output_objdir/$newlib"; then :; else |
$show "generating import library for \`$soname'" |
save_ifs="$IFS"; IFS='~' |
cmds=$old_archive_from_expsyms_cmds |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" || exit $? |
done |
IFS="$save_ifs" |
fi |
# make sure the library variables are pointing to the new library |
dir=$output_objdir |
linklib=$newlib |
fi # test -n "$old_archive_from_expsyms_cmds" |
if test "$linkmode" = prog || test "$mode" != relink; then |
add_shlibpath= |
add_dir= |
add= |
lib_linked=yes |
case $hardcode_action in |
immediate | unsupported) |
if test "$hardcode_direct" = no; then |
add="$dir/$linklib" |
case $host in |
*-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; |
*-*-sysv4*uw2*) add_dir="-L$dir" ;; |
*-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ |
*-*-unixware7*) add_dir="-L$dir" ;; |
*-*-darwin* ) |
# if the lib is a module then we can not link against |
# it, someone is ignoring the new warnings I added |
if /usr/bin/file -L $add 2> /dev/null | |
$EGREP ": [^:]* bundle" >/dev/null ; then |
$echo "** Warning, lib $linklib is a module, not a shared library" |
if test -z "$old_library" ; then |
$echo |
$echo "** And there doesn't seem to be a static archive available" |
$echo "** The link will probably fail, sorry" |
else |
add="$dir/$old_library" |
fi |
fi |
esac |
elif test "$hardcode_minus_L" = no; then |
case $host in |
*-*-sunos*) add_shlibpath="$dir" ;; |
esac |
add_dir="-L$dir" |
add="-l$name" |
elif test "$hardcode_shlibpath_var" = no; then |
add_shlibpath="$dir" |
add="-l$name" |
else |
lib_linked=no |
fi |
;; |
relink) |
if test "$hardcode_direct" = yes; then |
add="$dir/$linklib" |
elif test "$hardcode_minus_L" = yes; then |
add_dir="-L$dir" |
# Try looking first in the location we're being installed to. |
if test -n "$inst_prefix_dir"; then |
case $libdir in |
[\\/]*) |
add_dir="$add_dir -L$inst_prefix_dir$libdir" |
;; |
esac |
fi |
add="-l$name" |
elif test "$hardcode_shlibpath_var" = yes; then |
add_shlibpath="$dir" |
add="-l$name" |
else |
lib_linked=no |
fi |
;; |
*) lib_linked=no ;; |
esac |
if test "$lib_linked" != yes; then |
$echo "$modename: configuration error: unsupported hardcode properties" |
exit $EXIT_FAILURE |
fi |
if test -n "$add_shlibpath"; then |
case :$compile_shlibpath: in |
*":$add_shlibpath:"*) ;; |
*) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; |
esac |
fi |
if test "$linkmode" = prog; then |
test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" |
test -n "$add" && compile_deplibs="$add $compile_deplibs" |
else |
test -n "$add_dir" && deplibs="$add_dir $deplibs" |
test -n "$add" && deplibs="$add $deplibs" |
if test "$hardcode_direct" != yes && \ |
test "$hardcode_minus_L" != yes && \ |
test "$hardcode_shlibpath_var" = yes; then |
case :$finalize_shlibpath: in |
*":$libdir:"*) ;; |
*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; |
esac |
fi |
fi |
fi |
if test "$linkmode" = prog || test "$mode" = relink; then |
add_shlibpath= |
add_dir= |
add= |
# Finalize command for both is simple: just hardcode it. |
if test "$hardcode_direct" = yes; then |
add="$libdir/$linklib" |
elif test "$hardcode_minus_L" = yes; then |
add_dir="-L$libdir" |
add="-l$name" |
elif test "$hardcode_shlibpath_var" = yes; then |
case :$finalize_shlibpath: in |
*":$libdir:"*) ;; |
*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; |
esac |
add="-l$name" |
elif test "$hardcode_automatic" = yes; then |
if test -n "$inst_prefix_dir" && |
test -f "$inst_prefix_dir$libdir/$linklib" ; then |
add="$inst_prefix_dir$libdir/$linklib" |
else |
add="$libdir/$linklib" |
fi |
else |
# We cannot seem to hardcode it, guess we'll fake it. |
add_dir="-L$libdir" |
# Try looking first in the location we're being installed to. |
if test -n "$inst_prefix_dir"; then |
case $libdir in |
[\\/]*) |
add_dir="$add_dir -L$inst_prefix_dir$libdir" |
;; |
esac |
fi |
add="-l$name" |
fi |
if test "$linkmode" = prog; then |
test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" |
test -n "$add" && finalize_deplibs="$add $finalize_deplibs" |
else |
test -n "$add_dir" && deplibs="$add_dir $deplibs" |
test -n "$add" && deplibs="$add $deplibs" |
fi |
fi |
elif test "$linkmode" = prog; then |
# Here we assume that one of hardcode_direct or hardcode_minus_L |
# is not unsupported. This is valid on all known static and |
# shared platforms. |
if test "$hardcode_direct" != unsupported; then |
test -n "$old_library" && linklib="$old_library" |
compile_deplibs="$dir/$linklib $compile_deplibs" |
finalize_deplibs="$dir/$linklib $finalize_deplibs" |
else |
compile_deplibs="-l$name -L$dir $compile_deplibs" |
finalize_deplibs="-l$name -L$dir $finalize_deplibs" |
fi |
elif test "$build_libtool_libs" = yes; then |
# Not a shared library |
if test "$deplibs_check_method" != pass_all; then |
# We're trying link a shared library against a static one |
# but the system doesn't support it. |
# Just print a warning and add the library to dependency_libs so |
# that the program can be linked against the static library. |
$echo |
$echo "*** Warning: This system can not link to static lib archive $lib." |
$echo "*** I have the capability to make that library automatically link in when" |
$echo "*** you link to this library. But I can only do this if you have a" |
$echo "*** shared version of the library, which you do not appear to have." |
if test "$module" = yes; then |
$echo "*** But as you try to build a module library, libtool will still create " |
$echo "*** a static module, that should work as long as the dlopening application" |
$echo "*** is linked with the -dlopen flag to resolve symbols at runtime." |
if test -z "$global_symbol_pipe"; then |
$echo |
$echo "*** However, this would only work if libtool was able to extract symbol" |
$echo "*** lists from a program, using \`nm' or equivalent, but libtool could" |
$echo "*** not find such a program. So, this module is probably useless." |
$echo "*** \`nm' from GNU binutils and a full rebuild may help." |
fi |
if test "$build_old_libs" = no; then |
build_libtool_libs=module |
build_old_libs=yes |
else |
build_libtool_libs=no |
fi |
fi |
else |
deplibs="$dir/$old_library $deplibs" |
link_static=yes |
fi |
fi # link shared/static library? |
if test "$linkmode" = lib; then |
if test -n "$dependency_libs" && |
{ test "$hardcode_into_libs" != yes || |
test "$build_old_libs" = yes || |
test "$link_static" = yes; }; then |
# Extract -R from dependency_libs |
temp_deplibs= |
for libdir in $dependency_libs; do |
case $libdir in |
-R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` |
case " $xrpath " in |
*" $temp_xrpath "*) ;; |
*) xrpath="$xrpath $temp_xrpath";; |
esac;; |
*) temp_deplibs="$temp_deplibs $libdir";; |
esac |
done |
dependency_libs="$temp_deplibs" |
fi |
newlib_search_path="$newlib_search_path $absdir" |
# Link against this library |
test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" |
# ... and its dependency_libs |
tmp_libs= |
for deplib in $dependency_libs; do |
newdependency_libs="$deplib $newdependency_libs" |
if test "X$duplicate_deps" = "Xyes" ; then |
case "$tmp_libs " in |
*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; |
esac |
fi |
tmp_libs="$tmp_libs $deplib" |
done |
if test "$link_all_deplibs" != no; then |
# Add the search paths of all dependency libraries |
for deplib in $dependency_libs; do |
case $deplib in |
-L*) path="$deplib" ;; |
*.la) |
dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` |
test "X$dir" = "X$deplib" && dir="." |
# We need an absolute path. |
case $dir in |
[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; |
*) |
absdir=`cd "$dir" && pwd` |
if test -z "$absdir"; then |
$echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 |
absdir="$dir" |
fi |
;; |
esac |
if grep "^installed=no" $deplib > /dev/null; then |
path="$absdir/$objdir" |
else |
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` |
if test -z "$libdir"; then |
$echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 |
exit $EXIT_FAILURE |
fi |
if test "$absdir" != "$libdir"; then |
$echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 |
fi |
path="$absdir" |
fi |
depdepl= |
case $host in |
*-*-darwin*) |
# we do not want to link against static libs, |
# but need to link against shared |
eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` |
if test -n "$deplibrary_names" ; then |
for tmp in $deplibrary_names ; do |
depdepl=$tmp |
done |
if test -f "$path/$depdepl" ; then |
depdepl="$path/$depdepl" |
fi |
# do not add paths which are already there |
case " $newlib_search_path " in |
*" $path "*) ;; |
*) newlib_search_path="$newlib_search_path $path";; |
esac |
fi |
path="" |
;; |
*) |
path="-L$path" |
;; |
esac |
;; |
-l*) |
case $host in |
*-*-darwin*) |
# Again, we only want to link against shared libraries |
eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` |
for tmp in $newlib_search_path ; do |
if test -f "$tmp/lib$tmp_libs.dylib" ; then |
eval depdepl="$tmp/lib$tmp_libs.dylib" |
break |
fi |
done |
path="" |
;; |
*) continue ;; |
esac |
;; |
*) continue ;; |
esac |
case " $deplibs " in |
*" $path "*) ;; |
*) deplibs="$path $deplibs" ;; |
esac |
case " $deplibs " in |
*" $depdepl "*) ;; |
*) deplibs="$depdepl $deplibs" ;; |
esac |
done |
fi # link_all_deplibs != no |
fi # linkmode = lib |
done # for deplib in $libs |
dependency_libs="$newdependency_libs" |
if test "$pass" = dlpreopen; then |
# Link the dlpreopened libraries before other libraries |
for deplib in $save_deplibs; do |
deplibs="$deplib $deplibs" |
done |
fi |
if test "$pass" != dlopen; then |
if test "$pass" != conv; then |
# Make sure lib_search_path contains only unique directories. |
lib_search_path= |
for dir in $newlib_search_path; do |
case "$lib_search_path " in |
*" $dir "*) ;; |
*) lib_search_path="$lib_search_path $dir" ;; |
esac |
done |
newlib_search_path= |
fi |
if test "$linkmode,$pass" != "prog,link"; then |
vars="deplibs" |
else |
vars="compile_deplibs finalize_deplibs" |
fi |
for var in $vars dependency_libs; do |
# Add libraries to $var in reverse order |
eval tmp_libs=\"\$$var\" |
new_libs= |
for deplib in $tmp_libs; do |
# FIXME: Pedantically, this is the right thing to do, so |
# that some nasty dependency loop isn't accidentally |
# broken: |
#new_libs="$deplib $new_libs" |
# Pragmatically, this seems to cause very few problems in |
# practice: |
case $deplib in |
-L*) new_libs="$deplib $new_libs" ;; |
-R*) ;; |
*) |
# And here is the reason: when a library appears more |
# than once as an explicit dependence of a library, or |
# is implicitly linked in more than once by the |
# compiler, it is considered special, and multiple |
# occurrences thereof are not removed. Compare this |
# with having the same library being listed as a |
# dependency of multiple other libraries: in this case, |
# we know (pedantically, we assume) the library does not |
# need to be listed more than once, so we keep only the |
# last copy. This is not always right, but it is rare |
# enough that we require users that really mean to play |
# such unportable linking tricks to link the library |
# using -Wl,-lname, so that libtool does not consider it |
# for duplicate removal. |
case " $specialdeplibs " in |
*" $deplib "*) new_libs="$deplib $new_libs" ;; |
*) |
case " $new_libs " in |
*" $deplib "*) ;; |
*) new_libs="$deplib $new_libs" ;; |
esac |
;; |
esac |
;; |
esac |
done |
tmp_libs= |
for deplib in $new_libs; do |
case $deplib in |
-L*) |
case " $tmp_libs " in |
*" $deplib "*) ;; |
*) tmp_libs="$tmp_libs $deplib" ;; |
esac |
;; |
*) tmp_libs="$tmp_libs $deplib" ;; |
esac |
done |
eval $var=\"$tmp_libs\" |
done # for var |
fi |
# Last step: remove runtime libs from dependency_libs |
# (they stay in deplibs) |
tmp_libs= |
for i in $dependency_libs ; do |
case " $predeps $postdeps $compiler_lib_search_path " in |
*" $i "*) |
i="" |
;; |
esac |
if test -n "$i" ; then |
tmp_libs="$tmp_libs $i" |
fi |
done |
dependency_libs=$tmp_libs |
done # for pass |
if test "$linkmode" = prog; then |
dlfiles="$newdlfiles" |
dlprefiles="$newdlprefiles" |
fi |
case $linkmode in |
oldlib) |
if test -n "$deplibs"; then |
$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 |
fi |
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then |
$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 |
fi |
if test -n "$rpath"; then |
$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 |
fi |
if test -n "$xrpath"; then |
$echo "$modename: warning: \`-R' is ignored for archives" 1>&2 |
fi |
if test -n "$vinfo"; then |
$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 |
fi |
if test -n "$release"; then |
$echo "$modename: warning: \`-release' is ignored for archives" 1>&2 |
fi |
if test -n "$export_symbols" || test -n "$export_symbols_regex"; then |
$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 |
fi |
# Now set the variables for building old libraries. |
build_libtool_libs=no |
oldlibs="$output" |
objs="$objs$old_deplibs" |
;; |
lib) |
# Make sure we only generate libraries of the form `libNAME.la'. |
case $outputname in |
lib*) |
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` |
eval shared_ext=\"$shrext_cmds\" |
eval libname=\"$libname_spec\" |
;; |
*) |
if test "$module" = no; then |
$echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
if test "$need_lib_prefix" != no; then |
# Add the "lib" prefix for modules if required |
name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` |
eval shared_ext=\"$shrext_cmds\" |
eval libname=\"$libname_spec\" |
else |
libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` |
fi |
;; |
esac |
if test -n "$objs"; then |
if test "$deplibs_check_method" != pass_all; then |
$echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 |
exit $EXIT_FAILURE |
else |
$echo |
$echo "*** Warning: Linking the shared library $output against the non-libtool" |
$echo "*** objects $objs is not portable!" |
libobjs="$libobjs $objs" |
fi |
fi |
if test "$dlself" != no; then |
$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 |
fi |
set dummy $rpath |
if test "$#" -gt 2; then |
$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 |
fi |
install_libdir="$2" |
oldlibs= |
if test -z "$rpath"; then |
if test "$build_libtool_libs" = yes; then |
# Building a libtool convenience library. |
# Some compilers have problems with a `.al' extension so |
# convenience libraries should have the same extension an |
# archive normally would. |
oldlibs="$output_objdir/$libname.$libext $oldlibs" |
build_libtool_libs=convenience |
build_old_libs=yes |
fi |
if test -n "$vinfo"; then |
$echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 |
fi |
if test -n "$release"; then |
$echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 |
fi |
else |
# Parse the version information argument. |
save_ifs="$IFS"; IFS=':' |
set dummy $vinfo 0 0 0 |
IFS="$save_ifs" |
if test -n "$8"; then |
$echo "$modename: too many parameters to \`-version-info'" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
# convert absolute version numbers to libtool ages |
# this retains compatibility with .la files and attempts |
# to make the code below a bit more comprehensible |
case $vinfo_number in |
yes) |
number_major="$2" |
number_minor="$3" |
number_revision="$4" |
# |
# There are really only two kinds -- those that |
# use the current revision as the major version |
# and those that subtract age and use age as |
# a minor version. But, then there is irix |
# which has an extra 1 added just for fun |
# |
case $version_type in |
darwin|linux|osf|windows) |
current=`expr $number_major + $number_minor` |
age="$number_minor" |
revision="$number_revision" |
;; |
freebsd-aout|freebsd-elf|sunos) |
current="$number_major" |
revision="$number_minor" |
age="0" |
;; |
irix|nonstopux) |
current=`expr $number_major + $number_minor - 1` |
age="$number_minor" |
revision="$number_minor" |
;; |
*) |
$echo "$modename: unknown library version type \`$version_type'" 1>&2 |
$echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
;; |
no) |
current="$2" |
revision="$3" |
age="$4" |
;; |
esac |
# Check that each of the things are valid numbers. |
case $current in |
0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; |
*) |
$echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 |
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
case $revision in |
0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; |
*) |
$echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 |
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
case $age in |
0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; |
*) |
$echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 |
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
if test "$age" -gt "$current"; then |
$echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 |
$echo "$modename: \`$vinfo' is not valid version information" 1>&2 |
exit $EXIT_FAILURE |
fi |
# Calculate the version variables. |
major= |
versuffix= |
verstring= |
case $version_type in |
none) ;; |
darwin) |
# Like Linux, but with the current version available in |
# verstring for coding it into the library header |
major=.`expr $current - $age` |
versuffix="$major.$age.$revision" |
# Darwin ld doesn't like 0 for these options... |
minor_current=`expr $current + 1` |
verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" |
;; |
freebsd-aout) |
major=".$current" |
versuffix=".$current.$revision"; |
;; |
freebsd-elf) |
major=".$current" |
versuffix=".$current"; |
;; |
irix | nonstopux) |
major=`expr $current - $age + 1` |
case $version_type in |
nonstopux) verstring_prefix=nonstopux ;; |
*) verstring_prefix=sgi ;; |
esac |
verstring="$verstring_prefix$major.$revision" |
# Add in all the interfaces that we are compatible with. |
loop=$revision |
while test "$loop" -ne 0; do |
iface=`expr $revision - $loop` |
loop=`expr $loop - 1` |
verstring="$verstring_prefix$major.$iface:$verstring" |
done |
# Before this point, $major must not contain `.'. |
major=.$major |
versuffix="$major.$revision" |
;; |
linux) |
major=.`expr $current - $age` |
versuffix="$major.$age.$revision" |
;; |
osf) |
major=.`expr $current - $age` |
versuffix=".$current.$age.$revision" |
verstring="$current.$age.$revision" |
# Add in all the interfaces that we are compatible with. |
loop=$age |
while test "$loop" -ne 0; do |
iface=`expr $current - $loop` |
loop=`expr $loop - 1` |
verstring="$verstring:${iface}.0" |
done |
# Make executables depend on our current version. |
verstring="$verstring:${current}.0" |
;; |
sunos) |
major=".$current" |
versuffix=".$current.$revision" |
;; |
windows) |
# Use '-' rather than '.', since we only want one |
# extension on DOS 8.3 filesystems. |
major=`expr $current - $age` |
versuffix="-$major" |
;; |
*) |
$echo "$modename: unknown library version type \`$version_type'" 1>&2 |
$echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
# Clear the version info if we defaulted, and they specified a release. |
if test -z "$vinfo" && test -n "$release"; then |
major= |
case $version_type in |
darwin) |
# we can't check for "0.0" in archive_cmds due to quoting |
# problems, so we reset it completely |
verstring= |
;; |
*) |
verstring="0.0" |
;; |
esac |
if test "$need_version" = no; then |
versuffix= |
else |
versuffix=".0.0" |
fi |
fi |
# Remove version info from name if versioning should be avoided |
if test "$avoid_version" = yes && test "$need_version" = no; then |
major= |
versuffix= |
verstring="" |
fi |
# Check to see if the archive will have undefined symbols. |
if test "$allow_undefined" = yes; then |
if test "$allow_undefined_flag" = unsupported; then |
$echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 |
build_libtool_libs=no |
build_old_libs=yes |
fi |
else |
# Don't allow undefined symbols. |
allow_undefined_flag="$no_undefined_flag" |
fi |
fi |
if test "$mode" != relink; then |
# Remove our outputs, but don't remove object files since they |
# may have been created when compiling PIC objects. |
removelist= |
tempremovelist=`$echo "$output_objdir/*"` |
for p in $tempremovelist; do |
case $p in |
*.$objext) |
;; |
$output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) |
if test "X$precious_files_regex" != "X"; then |
if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 |
then |
continue |
fi |
fi |
removelist="$removelist $p" |
;; |
*) ;; |
esac |
done |
if test -n "$removelist"; then |
$show "${rm}r $removelist" |
$run ${rm}r $removelist |
fi |
fi |
# Now set the variables for building old libraries. |
if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then |
oldlibs="$oldlibs $output_objdir/$libname.$libext" |
# Transform .lo files to .o files. |
oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` |
fi |
# Eliminate all temporary directories. |
for path in $notinst_path; do |
lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` |
deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` |
dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` |
done |
if test -n "$xrpath"; then |
# If the user specified any rpath flags, then add them. |
temp_xrpath= |
for libdir in $xrpath; do |
temp_xrpath="$temp_xrpath -R$libdir" |
case "$finalize_rpath " in |
*" $libdir "*) ;; |
*) finalize_rpath="$finalize_rpath $libdir" ;; |
esac |
done |
if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then |
dependency_libs="$temp_xrpath $dependency_libs" |
fi |
fi |
# Make sure dlfiles contains only unique files that won't be dlpreopened |
old_dlfiles="$dlfiles" |
dlfiles= |
for lib in $old_dlfiles; do |
case " $dlprefiles $dlfiles " in |
*" $lib "*) ;; |
*) dlfiles="$dlfiles $lib" ;; |
esac |
done |
# Make sure dlprefiles contains only unique files |
old_dlprefiles="$dlprefiles" |
dlprefiles= |
for lib in $old_dlprefiles; do |
case "$dlprefiles " in |
*" $lib "*) ;; |
*) dlprefiles="$dlprefiles $lib" ;; |
esac |
done |
if test "$build_libtool_libs" = yes; then |
if test -n "$rpath"; then |
case $host in |
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) |
# these systems don't actually have a c library (as such)! |
;; |
*-*-rhapsody* | *-*-darwin1.[012]) |
# Rhapsody C library is in the System framework |
deplibs="$deplibs -framework System" |
;; |
*-*-netbsd*) |
# Don't link with libc until the a.out ld.so is fixed. |
;; |
*-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) |
# Do not include libc due to us having libc/libc_r. |
;; |
*-*-sco3.2v5* | *-*-sco5v6*) |
# Causes problems with __ctype |
;; |
*-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) |
# Compiler inserts libc in the correct place for threads to work |
;; |
*) |
# Add libc to deplibs on all other systems if necessary. |
if test "$build_libtool_need_lc" = "yes"; then |
deplibs="$deplibs -lc" |
fi |
;; |
esac |
fi |
# Transform deplibs into only deplibs that can be linked in shared. |
name_save=$name |
libname_save=$libname |
release_save=$release |
versuffix_save=$versuffix |
major_save=$major |
# I'm not sure if I'm treating the release correctly. I think |
# release should show up in the -l (ie -lgmp5) so we don't want to |
# add it in twice. Is that correct? |
release="" |
versuffix="" |
major="" |
newdeplibs= |
droppeddeps=no |
case $deplibs_check_method in |
pass_all) |
# Don't check for shared/static. Everything works. |
# This might be a little naive. We might want to check |
# whether the library exists or not. But this is on |
# osf3 & osf4 and I'm not really sure... Just |
# implementing what was already the behavior. |
newdeplibs=$deplibs |
;; |
test_compile) |
# This code stresses the "libraries are programs" paradigm to its |
# limits. Maybe even breaks it. We compile a program, linking it |
# against the deplibs as a proxy for the library. Then we can check |
# whether they linked in statically or dynamically with ldd. |
$rm conftest.c |
cat > conftest.c <<EOF |
int main() { return 0; } |
EOF |
$rm conftest |
$LTCC $LTCFLAGS -o conftest conftest.c $deplibs |
if test "$?" -eq 0 ; then |
ldd_output=`ldd conftest` |
for i in $deplibs; do |
name=`expr $i : '-l\(.*\)'` |
# If $name is empty we are operating on a -L argument. |
if test "$name" != "" && test "$name" -ne "0"; then |
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
case " $predeps $postdeps " in |
*" $i "*) |
newdeplibs="$newdeplibs $i" |
i="" |
;; |
esac |
fi |
if test -n "$i" ; then |
libname=`eval \\$echo \"$libname_spec\"` |
deplib_matches=`eval \\$echo \"$library_names_spec\"` |
set dummy $deplib_matches |
deplib_match=$2 |
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then |
newdeplibs="$newdeplibs $i" |
else |
droppeddeps=yes |
$echo |
$echo "*** Warning: dynamic linker does not accept needed library $i." |
$echo "*** I have the capability to make that library automatically link in when" |
$echo "*** you link to this library. But I can only do this if you have a" |
$echo "*** shared version of the library, which I believe you do not have" |
$echo "*** because a test_compile did reveal that the linker did not use it for" |
$echo "*** its dynamic dependency list that programs get resolved with at runtime." |
fi |
fi |
else |
newdeplibs="$newdeplibs $i" |
fi |
done |
else |
# Error occurred in the first compile. Let's try to salvage |
# the situation: Compile a separate program for each library. |
for i in $deplibs; do |
name=`expr $i : '-l\(.*\)'` |
# If $name is empty we are operating on a -L argument. |
if test "$name" != "" && test "$name" != "0"; then |
$rm conftest |
$LTCC $LTCFLAGS -o conftest conftest.c $i |
# Did it work? |
if test "$?" -eq 0 ; then |
ldd_output=`ldd conftest` |
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
case " $predeps $postdeps " in |
*" $i "*) |
newdeplibs="$newdeplibs $i" |
i="" |
;; |
esac |
fi |
if test -n "$i" ; then |
libname=`eval \\$echo \"$libname_spec\"` |
deplib_matches=`eval \\$echo \"$library_names_spec\"` |
set dummy $deplib_matches |
deplib_match=$2 |
if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then |
newdeplibs="$newdeplibs $i" |
else |
droppeddeps=yes |
$echo |
$echo "*** Warning: dynamic linker does not accept needed library $i." |
$echo "*** I have the capability to make that library automatically link in when" |
$echo "*** you link to this library. But I can only do this if you have a" |
$echo "*** shared version of the library, which you do not appear to have" |
$echo "*** because a test_compile did reveal that the linker did not use this one" |
$echo "*** as a dynamic dependency that programs can get resolved with at runtime." |
fi |
fi |
else |
droppeddeps=yes |
$echo |
$echo "*** Warning! Library $i is needed by this library but I was not able to" |
$echo "*** make it link in! You will probably need to install it or some" |
$echo "*** library that it depends on before this library will be fully" |
$echo "*** functional. Installing it before continuing would be even better." |
fi |
else |
newdeplibs="$newdeplibs $i" |
fi |
done |
fi |
;; |
file_magic*) |
set dummy $deplibs_check_method |
file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` |
for a_deplib in $deplibs; do |
name=`expr $a_deplib : '-l\(.*\)'` |
# If $name is empty we are operating on a -L argument. |
if test "$name" != "" && test "$name" != "0"; then |
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
case " $predeps $postdeps " in |
*" $a_deplib "*) |
newdeplibs="$newdeplibs $a_deplib" |
a_deplib="" |
;; |
esac |
fi |
if test -n "$a_deplib" ; then |
libname=`eval \\$echo \"$libname_spec\"` |
for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do |
potential_libs=`ls $i/$libname[.-]* 2>/dev/null` |
for potent_lib in $potential_libs; do |
# Follow soft links. |
if ls -lLd "$potent_lib" 2>/dev/null \ |
| grep " -> " >/dev/null; then |
continue |
fi |
# The statement above tries to avoid entering an |
# endless loop below, in case of cyclic links. |
# We might still enter an endless loop, since a link |
# loop can be closed while we follow links, |
# but so what? |
potlib="$potent_lib" |
while test -h "$potlib" 2>/dev/null; do |
potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` |
case $potliblink in |
[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; |
*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; |
esac |
done |
if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ |
| ${SED} 10q \ |
| $EGREP "$file_magic_regex" > /dev/null; then |
newdeplibs="$newdeplibs $a_deplib" |
a_deplib="" |
break 2 |
fi |
done |
done |
fi |
if test -n "$a_deplib" ; then |
droppeddeps=yes |
$echo |
$echo "*** Warning: linker path does not have real file for library $a_deplib." |
$echo "*** I have the capability to make that library automatically link in when" |
$echo "*** you link to this library. But I can only do this if you have a" |
$echo "*** shared version of the library, which you do not appear to have" |
$echo "*** because I did check the linker path looking for a file starting" |
if test -z "$potlib" ; then |
$echo "*** with $libname but no candidates were found. (...for file magic test)" |
else |
$echo "*** with $libname and none of the candidates passed a file format test" |
$echo "*** using a file magic. Last file checked: $potlib" |
fi |
fi |
else |
# Add a -L argument. |
newdeplibs="$newdeplibs $a_deplib" |
fi |
done # Gone through all deplibs. |
;; |
match_pattern*) |
set dummy $deplibs_check_method |
match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` |
for a_deplib in $deplibs; do |
name=`expr $a_deplib : '-l\(.*\)'` |
# If $name is empty we are operating on a -L argument. |
if test -n "$name" && test "$name" != "0"; then |
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
case " $predeps $postdeps " in |
*" $a_deplib "*) |
newdeplibs="$newdeplibs $a_deplib" |
a_deplib="" |
;; |
esac |
fi |
if test -n "$a_deplib" ; then |
libname=`eval \\$echo \"$libname_spec\"` |
for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do |
potential_libs=`ls $i/$libname[.-]* 2>/dev/null` |
for potent_lib in $potential_libs; do |
potlib="$potent_lib" # see symlink-check above in file_magic test |
if eval $echo \"$potent_lib\" 2>/dev/null \ |
| ${SED} 10q \ |
| $EGREP "$match_pattern_regex" > /dev/null; then |
newdeplibs="$newdeplibs $a_deplib" |
a_deplib="" |
break 2 |
fi |
done |
done |
fi |
if test -n "$a_deplib" ; then |
droppeddeps=yes |
$echo |
$echo "*** Warning: linker path does not have real file for library $a_deplib." |
$echo "*** I have the capability to make that library automatically link in when" |
$echo "*** you link to this library. But I can only do this if you have a" |
$echo "*** shared version of the library, which you do not appear to have" |
$echo "*** because I did check the linker path looking for a file starting" |
if test -z "$potlib" ; then |
$echo "*** with $libname but no candidates were found. (...for regex pattern test)" |
else |
$echo "*** with $libname and none of the candidates passed a file format test" |
$echo "*** using a regex pattern. Last file checked: $potlib" |
fi |
fi |
else |
# Add a -L argument. |
newdeplibs="$newdeplibs $a_deplib" |
fi |
done # Gone through all deplibs. |
;; |
none | unknown | *) |
newdeplibs="" |
tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ |
-e 's/ -[LR][^ ]*//g'` |
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then |
for i in $predeps $postdeps ; do |
# can't use Xsed below, because $i might contain '/' |
tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` |
done |
fi |
if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ |
| grep . >/dev/null; then |
$echo |
if test "X$deplibs_check_method" = "Xnone"; then |
$echo "*** Warning: inter-library dependencies are not supported in this platform." |
else |
$echo "*** Warning: inter-library dependencies are not known to be supported." |
fi |
$echo "*** All declared inter-library dependencies are being dropped." |
droppeddeps=yes |
fi |
;; |
esac |
versuffix=$versuffix_save |
major=$major_save |
release=$release_save |
libname=$libname_save |
name=$name_save |
case $host in |
*-*-rhapsody* | *-*-darwin1.[012]) |
# On Rhapsody replace the C library is the System framework |
newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` |
;; |
esac |
if test "$droppeddeps" = yes; then |
if test "$module" = yes; then |
$echo |
$echo "*** Warning: libtool could not satisfy all declared inter-library" |
$echo "*** dependencies of module $libname. Therefore, libtool will create" |
$echo "*** a static module, that should work as long as the dlopening" |
$echo "*** application is linked with the -dlopen flag." |
if test -z "$global_symbol_pipe"; then |
$echo |
$echo "*** However, this would only work if libtool was able to extract symbol" |
$echo "*** lists from a program, using \`nm' or equivalent, but libtool could" |
$echo "*** not find such a program. So, this module is probably useless." |
$echo "*** \`nm' from GNU binutils and a full rebuild may help." |
fi |
if test "$build_old_libs" = no; then |
oldlibs="$output_objdir/$libname.$libext" |
build_libtool_libs=module |
build_old_libs=yes |
else |
build_libtool_libs=no |
fi |
else |
$echo "*** The inter-library dependencies that have been dropped here will be" |
$echo "*** automatically added whenever a program is linked with this library" |
$echo "*** or is declared to -dlopen it." |
if test "$allow_undefined" = no; then |
$echo |
$echo "*** Since this library must not contain undefined symbols," |
$echo "*** because either the platform does not support them or" |
$echo "*** it was explicitly requested with -no-undefined," |
$echo "*** libtool will only create a static version of it." |
if test "$build_old_libs" = no; then |
oldlibs="$output_objdir/$libname.$libext" |
build_libtool_libs=module |
build_old_libs=yes |
else |
build_libtool_libs=no |
fi |
fi |
fi |
fi |
# Done checking deplibs! |
deplibs=$newdeplibs |
fi |
# move library search paths that coincide with paths to not yet |
# installed libraries to the beginning of the library search list |
new_libs= |
for path in $notinst_path; do |
case " $new_libs " in |
*" -L$path/$objdir "*) ;; |
*) |
case " $deplibs " in |
*" -L$path/$objdir "*) |
new_libs="$new_libs -L$path/$objdir" ;; |
esac |
;; |
esac |
done |
for deplib in $deplibs; do |
case $deplib in |
-L*) |
case " $new_libs " in |
*" $deplib "*) ;; |
*) new_libs="$new_libs $deplib" ;; |
esac |
;; |
*) new_libs="$new_libs $deplib" ;; |
esac |
done |
deplibs="$new_libs" |
# All the library-specific variables (install_libdir is set above). |
library_names= |
old_library= |
dlname= |
# Test again, we may have decided not to build it any more |
if test "$build_libtool_libs" = yes; then |
if test "$hardcode_into_libs" = yes; then |
# Hardcode the library paths |
hardcode_libdirs= |
dep_rpath= |
rpath="$finalize_rpath" |
test "$mode" != relink && rpath="$compile_rpath$rpath" |
for libdir in $rpath; do |
if test -n "$hardcode_libdir_flag_spec"; then |
if test -n "$hardcode_libdir_separator"; then |
if test -z "$hardcode_libdirs"; then |
hardcode_libdirs="$libdir" |
else |
# Just accumulate the unique libdirs. |
case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in |
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
;; |
*) |
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" |
;; |
esac |
fi |
else |
eval flag=\"$hardcode_libdir_flag_spec\" |
dep_rpath="$dep_rpath $flag" |
fi |
elif test -n "$runpath_var"; then |
case "$perm_rpath " in |
*" $libdir "*) ;; |
*) perm_rpath="$perm_rpath $libdir" ;; |
esac |
fi |
done |
# Substitute the hardcoded libdirs into the rpath. |
if test -n "$hardcode_libdir_separator" && |
test -n "$hardcode_libdirs"; then |
libdir="$hardcode_libdirs" |
if test -n "$hardcode_libdir_flag_spec_ld"; then |
eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" |
else |
eval dep_rpath=\"$hardcode_libdir_flag_spec\" |
fi |
fi |
if test -n "$runpath_var" && test -n "$perm_rpath"; then |
# We should set the runpath_var. |
rpath= |
for dir in $perm_rpath; do |
rpath="$rpath$dir:" |
done |
eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" |
fi |
test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" |
fi |
shlibpath="$finalize_shlibpath" |
test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" |
if test -n "$shlibpath"; then |
eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" |
fi |
# Get the real and link names of the library. |
eval shared_ext=\"$shrext_cmds\" |
eval library_names=\"$library_names_spec\" |
set dummy $library_names |
realname="$2" |
shift; shift |
if test -n "$soname_spec"; then |
eval soname=\"$soname_spec\" |
else |
soname="$realname" |
fi |
if test -z "$dlname"; then |
dlname=$soname |
fi |
lib="$output_objdir/$realname" |
linknames= |
for link |
do |
linknames="$linknames $link" |
done |
# Use standard objects if they are pic |
test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` |
# Prepare the list of exported symbols |
if test -z "$export_symbols"; then |
if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then |
$show "generating symbol list for \`$libname.la'" |
export_symbols="$output_objdir/$libname.exp" |
$run $rm $export_symbols |
cmds=$export_symbols_cmds |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
if len=`expr "X$cmd" : ".*"` && |
test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then |
$show "$cmd" |
$run eval "$cmd" || exit $? |
skipped_export=false |
else |
# The command line is too long to execute in one step. |
$show "using reloadable object file for export list..." |
skipped_export=: |
# Break out early, otherwise skipped_export may be |
# set to false by a later but shorter cmd. |
break |
fi |
done |
IFS="$save_ifs" |
if test -n "$export_symbols_regex"; then |
$show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" |
$run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' |
$show "$mv \"${export_symbols}T\" \"$export_symbols\"" |
$run eval '$mv "${export_symbols}T" "$export_symbols"' |
fi |
fi |
fi |
if test -n "$export_symbols" && test -n "$include_expsyms"; then |
$run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' |
fi |
tmp_deplibs= |
for test_deplib in $deplibs; do |
case " $convenience " in |
*" $test_deplib "*) ;; |
*) |
tmp_deplibs="$tmp_deplibs $test_deplib" |
;; |
esac |
done |
deplibs="$tmp_deplibs" |
if test -n "$convenience"; then |
if test -n "$whole_archive_flag_spec"; then |
save_libobjs=$libobjs |
eval libobjs=\"\$libobjs $whole_archive_flag_spec\" |
else |
gentop="$output_objdir/${outputname}x" |
generated="$generated $gentop" |
func_extract_archives $gentop $convenience |
libobjs="$libobjs $func_extract_archives_result" |
fi |
fi |
if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then |
eval flag=\"$thread_safe_flag_spec\" |
linker_flags="$linker_flags $flag" |
fi |
# Make a backup of the uninstalled library when relinking |
if test "$mode" = relink; then |
$run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? |
fi |
# Do each of the archive commands. |
if test "$module" = yes && test -n "$module_cmds" ; then |
if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then |
eval test_cmds=\"$module_expsym_cmds\" |
cmds=$module_expsym_cmds |
else |
eval test_cmds=\"$module_cmds\" |
cmds=$module_cmds |
fi |
else |
if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then |
eval test_cmds=\"$archive_expsym_cmds\" |
cmds=$archive_expsym_cmds |
else |
eval test_cmds=\"$archive_cmds\" |
cmds=$archive_cmds |
fi |
fi |
if test "X$skipped_export" != "X:" && |
len=`expr "X$test_cmds" : ".*" 2>/dev/null` && |
test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then |
: |
else |
# The command line is too long to link in one step, link piecewise. |
$echo "creating reloadable object files..." |
# Save the value of $output and $libobjs because we want to |
# use them later. If we have whole_archive_flag_spec, we |
# want to use save_libobjs as it was before |
# whole_archive_flag_spec was expanded, because we can't |
# assume the linker understands whole_archive_flag_spec. |
# This may have to be revisited, in case too many |
# convenience libraries get linked in and end up exceeding |
# the spec. |
if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then |
save_libobjs=$libobjs |
fi |
save_output=$output |
output_la=`$echo "X$output" | $Xsed -e "$basename"` |
# Clear the reloadable object creation command queue and |
# initialize k to one. |
test_cmds= |
concat_cmds= |
objlist= |
delfiles= |
last_robj= |
k=1 |
output=$output_objdir/$output_la-${k}.$objext |
# Loop over the list of objects to be linked. |
for obj in $save_libobjs |
do |
eval test_cmds=\"$reload_cmds $objlist $last_robj\" |
if test "X$objlist" = X || |
{ len=`expr "X$test_cmds" : ".*" 2>/dev/null` && |
test "$len" -le "$max_cmd_len"; }; then |
objlist="$objlist $obj" |
else |
# The command $test_cmds is almost too long, add a |
# command to the queue. |
if test "$k" -eq 1 ; then |
# The first file doesn't have a previous command to add. |
eval concat_cmds=\"$reload_cmds $objlist $last_robj\" |
else |
# All subsequent reloadable object files will link in |
# the last one created. |
eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" |
fi |
last_robj=$output_objdir/$output_la-${k}.$objext |
k=`expr $k + 1` |
output=$output_objdir/$output_la-${k}.$objext |
objlist=$obj |
len=1 |
fi |
done |
# Handle the remaining objects by creating one last |
# reloadable object file. All subsequent reloadable object |
# files will link in the last one created. |
test -z "$concat_cmds" || concat_cmds=$concat_cmds~ |
eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" |
if ${skipped_export-false}; then |
$show "generating symbol list for \`$libname.la'" |
export_symbols="$output_objdir/$libname.exp" |
$run $rm $export_symbols |
libobjs=$output |
# Append the command to create the export file. |
eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" |
fi |
# Set up a command to remove the reloadable object files |
# after they are used. |
i=0 |
while test "$i" -lt "$k" |
do |
i=`expr $i + 1` |
delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" |
done |
$echo "creating a temporary reloadable object file: $output" |
# Loop through the commands generated above and execute them. |
save_ifs="$IFS"; IFS='~' |
for cmd in $concat_cmds; do |
IFS="$save_ifs" |
$show "$cmd" |
$run eval "$cmd" || exit $? |
done |
IFS="$save_ifs" |
libobjs=$output |
# Restore the value of output. |
output=$save_output |
if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then |
eval libobjs=\"\$libobjs $whole_archive_flag_spec\" |
fi |
# Expand the library linking commands again to reset the |
# value of $libobjs for piecewise linking. |
# Do each of the archive commands. |
if test "$module" = yes && test -n "$module_cmds" ; then |
if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then |
cmds=$module_expsym_cmds |
else |
cmds=$module_cmds |
fi |
else |
if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then |
cmds=$archive_expsym_cmds |
else |
cmds=$archive_cmds |
fi |
fi |
# Append the command to remove the reloadable object files |
# to the just-reset $cmds. |
eval cmds=\"\$cmds~\$rm $delfiles\" |
fi |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" || { |
lt_exit=$? |
# Restore the uninstalled library and exit |
if test "$mode" = relink; then |
$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' |
fi |
exit $lt_exit |
} |
done |
IFS="$save_ifs" |
# Restore the uninstalled library and exit |
if test "$mode" = relink; then |
$run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? |
if test -n "$convenience"; then |
if test -z "$whole_archive_flag_spec"; then |
$show "${rm}r $gentop" |
$run ${rm}r "$gentop" |
fi |
fi |
exit $EXIT_SUCCESS |
fi |
# Create links to the real library. |
for linkname in $linknames; do |
if test "$realname" != "$linkname"; then |
$show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" |
$run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? |
fi |
done |
# If -module or -export-dynamic was specified, set the dlname. |
if test "$module" = yes || test "$export_dynamic" = yes; then |
# On all known operating systems, these are identical. |
dlname="$soname" |
fi |
fi |
;; |
obj) |
if test -n "$deplibs"; then |
$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 |
fi |
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then |
$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 |
fi |
if test -n "$rpath"; then |
$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 |
fi |
if test -n "$xrpath"; then |
$echo "$modename: warning: \`-R' is ignored for objects" 1>&2 |
fi |
if test -n "$vinfo"; then |
$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 |
fi |
if test -n "$release"; then |
$echo "$modename: warning: \`-release' is ignored for objects" 1>&2 |
fi |
case $output in |
*.lo) |
if test -n "$objs$old_deplibs"; then |
$echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 |
exit $EXIT_FAILURE |
fi |
libobj="$output" |
obj=`$echo "X$output" | $Xsed -e "$lo2o"` |
;; |
*) |
libobj= |
obj="$output" |
;; |
esac |
# Delete the old objects. |
$run $rm $obj $libobj |
# Objects from convenience libraries. This assumes |
# single-version convenience libraries. Whenever we create |
# different ones for PIC/non-PIC, this we'll have to duplicate |
# the extraction. |
reload_conv_objs= |
gentop= |
# reload_cmds runs $LD directly, so let us get rid of |
# -Wl from whole_archive_flag_spec |
wl= |
if test -n "$convenience"; then |
if test -n "$whole_archive_flag_spec"; then |
eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" |
else |
gentop="$output_objdir/${obj}x" |
generated="$generated $gentop" |
func_extract_archives $gentop $convenience |
reload_conv_objs="$reload_objs $func_extract_archives_result" |
fi |
fi |
# Create the old-style object. |
reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test |
output="$obj" |
cmds=$reload_cmds |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" || exit $? |
done |
IFS="$save_ifs" |
# Exit if we aren't doing a library object file. |
if test -z "$libobj"; then |
if test -n "$gentop"; then |
$show "${rm}r $gentop" |
$run ${rm}r $gentop |
fi |
exit $EXIT_SUCCESS |
fi |
if test "$build_libtool_libs" != yes; then |
if test -n "$gentop"; then |
$show "${rm}r $gentop" |
$run ${rm}r $gentop |
fi |
# Create an invalid libtool object if no PIC, so that we don't |
# accidentally link it into a program. |
# $show "echo timestamp > $libobj" |
# $run eval "echo timestamp > $libobj" || exit $? |
exit $EXIT_SUCCESS |
fi |
if test -n "$pic_flag" || test "$pic_mode" != default; then |
# Only do commands if we really have different PIC objects. |
reload_objs="$libobjs $reload_conv_objs" |
output="$libobj" |
cmds=$reload_cmds |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" || exit $? |
done |
IFS="$save_ifs" |
fi |
if test -n "$gentop"; then |
$show "${rm}r $gentop" |
$run ${rm}r $gentop |
fi |
exit $EXIT_SUCCESS |
;; |
prog) |
case $host in |
*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; |
esac |
if test -n "$vinfo"; then |
$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 |
fi |
if test -n "$release"; then |
$echo "$modename: warning: \`-release' is ignored for programs" 1>&2 |
fi |
if test "$preload" = yes; then |
if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && |
test "$dlopen_self_static" = unknown; then |
$echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." |
fi |
fi |
case $host in |
*-*-rhapsody* | *-*-darwin1.[012]) |
# On Rhapsody replace the C library is the System framework |
compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` |
finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` |
;; |
esac |
case $host in |
*darwin*) |
# Don't allow lazy linking, it breaks C++ global constructors |
if test "$tagname" = CXX ; then |
compile_command="$compile_command ${wl}-bind_at_load" |
finalize_command="$finalize_command ${wl}-bind_at_load" |
fi |
;; |
esac |
# move library search paths that coincide with paths to not yet |
# installed libraries to the beginning of the library search list |
new_libs= |
for path in $notinst_path; do |
case " $new_libs " in |
*" -L$path/$objdir "*) ;; |
*) |
case " $compile_deplibs " in |
*" -L$path/$objdir "*) |
new_libs="$new_libs -L$path/$objdir" ;; |
esac |
;; |
esac |
done |
for deplib in $compile_deplibs; do |
case $deplib in |
-L*) |
case " $new_libs " in |
*" $deplib "*) ;; |
*) new_libs="$new_libs $deplib" ;; |
esac |
;; |
*) new_libs="$new_libs $deplib" ;; |
esac |
done |
compile_deplibs="$new_libs" |
compile_command="$compile_command $compile_deplibs" |
finalize_command="$finalize_command $finalize_deplibs" |
if test -n "$rpath$xrpath"; then |
# If the user specified any rpath flags, then add them. |
for libdir in $rpath $xrpath; do |
# This is the magic to use -rpath. |
case "$finalize_rpath " in |
*" $libdir "*) ;; |
*) finalize_rpath="$finalize_rpath $libdir" ;; |
esac |
done |
fi |
# Now hardcode the library paths |
rpath= |
hardcode_libdirs= |
for libdir in $compile_rpath $finalize_rpath; do |
if test -n "$hardcode_libdir_flag_spec"; then |
if test -n "$hardcode_libdir_separator"; then |
if test -z "$hardcode_libdirs"; then |
hardcode_libdirs="$libdir" |
else |
# Just accumulate the unique libdirs. |
case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in |
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
;; |
*) |
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" |
;; |
esac |
fi |
else |
eval flag=\"$hardcode_libdir_flag_spec\" |
rpath="$rpath $flag" |
fi |
elif test -n "$runpath_var"; then |
case "$perm_rpath " in |
*" $libdir "*) ;; |
*) perm_rpath="$perm_rpath $libdir" ;; |
esac |
fi |
case $host in |
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) |
testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` |
case :$dllsearchpath: in |
*":$libdir:"*) ;; |
*) dllsearchpath="$dllsearchpath:$libdir";; |
esac |
case :$dllsearchpath: in |
*":$testbindir:"*) ;; |
*) dllsearchpath="$dllsearchpath:$testbindir";; |
esac |
;; |
esac |
done |
# Substitute the hardcoded libdirs into the rpath. |
if test -n "$hardcode_libdir_separator" && |
test -n "$hardcode_libdirs"; then |
libdir="$hardcode_libdirs" |
eval rpath=\" $hardcode_libdir_flag_spec\" |
fi |
compile_rpath="$rpath" |
rpath= |
hardcode_libdirs= |
for libdir in $finalize_rpath; do |
if test -n "$hardcode_libdir_flag_spec"; then |
if test -n "$hardcode_libdir_separator"; then |
if test -z "$hardcode_libdirs"; then |
hardcode_libdirs="$libdir" |
else |
# Just accumulate the unique libdirs. |
case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in |
*"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) |
;; |
*) |
hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" |
;; |
esac |
fi |
else |
eval flag=\"$hardcode_libdir_flag_spec\" |
rpath="$rpath $flag" |
fi |
elif test -n "$runpath_var"; then |
case "$finalize_perm_rpath " in |
*" $libdir "*) ;; |
*) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; |
esac |
fi |
done |
# Substitute the hardcoded libdirs into the rpath. |
if test -n "$hardcode_libdir_separator" && |
test -n "$hardcode_libdirs"; then |
libdir="$hardcode_libdirs" |
eval rpath=\" $hardcode_libdir_flag_spec\" |
fi |
finalize_rpath="$rpath" |
if test -n "$libobjs" && test "$build_old_libs" = yes; then |
# Transform all the library objects into standard objects. |
compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` |
finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` |
fi |
dlsyms= |
if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then |
if test -n "$NM" && test -n "$global_symbol_pipe"; then |
dlsyms="${outputname}S.c" |
else |
$echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 |
fi |
fi |
if test -n "$dlsyms"; then |
case $dlsyms in |
"") ;; |
*.c) |
# Discover the nlist of each of the dlfiles. |
nlist="$output_objdir/${outputname}.nm" |
$show "$rm $nlist ${nlist}S ${nlist}T" |
$run $rm "$nlist" "${nlist}S" "${nlist}T" |
# Parse the name list into a source file. |
$show "creating $output_objdir/$dlsyms" |
test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ |
/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ |
/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ |
#ifdef __cplusplus |
extern \"C\" { |
#endif |
/* Prevent the only kind of declaration conflicts we can make. */ |
#define lt_preloaded_symbols some_other_symbol |
/* External symbol declarations for the compiler. */\ |
" |
if test "$dlself" = yes; then |
$show "generating symbol list for \`$output'" |
test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" |
# Add our own program objects to the symbol list. |
progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` |
for arg in $progfiles; do |
$show "extracting global C symbols from \`$arg'" |
$run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" |
done |
if test -n "$exclude_expsyms"; then |
$run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' |
$run eval '$mv "$nlist"T "$nlist"' |
fi |
if test -n "$export_symbols_regex"; then |
$run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' |
$run eval '$mv "$nlist"T "$nlist"' |
fi |
# Prepare the list of exported symbols |
if test -z "$export_symbols"; then |
export_symbols="$output_objdir/$outputname.exp" |
$run $rm $export_symbols |
$run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' |
case $host in |
*cygwin* | *mingw* ) |
$run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' |
$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' |
;; |
esac |
else |
$run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' |
$run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' |
$run eval 'mv "$nlist"T "$nlist"' |
case $host in |
*cygwin* | *mingw* ) |
$run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' |
$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' |
;; |
esac |
fi |
fi |
for arg in $dlprefiles; do |
$show "extracting global C symbols from \`$arg'" |
name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` |
$run eval '$echo ": $name " >> "$nlist"' |
$run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" |
done |
if test -z "$run"; then |
# Make sure we have at least an empty file. |
test -f "$nlist" || : > "$nlist" |
if test -n "$exclude_expsyms"; then |
$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T |
$mv "$nlist"T "$nlist" |
fi |
# Try sorting and uniquifying the output. |
if grep -v "^: " < "$nlist" | |
if sort -k 3 </dev/null >/dev/null 2>&1; then |
sort -k 3 |
else |
sort +2 |
fi | |
uniq > "$nlist"S; then |
: |
else |
grep -v "^: " < "$nlist" > "$nlist"S |
fi |
if test -f "$nlist"S; then |
eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' |
else |
$echo '/* NONE */' >> "$output_objdir/$dlsyms" |
fi |
$echo >> "$output_objdir/$dlsyms" "\ |
#undef lt_preloaded_symbols |
#if defined (__STDC__) && __STDC__ |
# define lt_ptr void * |
#else |
# define lt_ptr char * |
# define const |
#endif |
/* The mapping between symbol names and symbols. */ |
" |
case $host in |
*cygwin* | *mingw* ) |
$echo >> "$output_objdir/$dlsyms" "\ |
/* DATA imports from DLLs on WIN32 can't be const, because |
runtime relocations are performed -- see ld's documentation |
on pseudo-relocs */ |
struct { |
" |
;; |
* ) |
$echo >> "$output_objdir/$dlsyms" "\ |
const struct { |
" |
;; |
esac |
$echo >> "$output_objdir/$dlsyms" "\ |
const char *name; |
lt_ptr address; |
} |
lt_preloaded_symbols[] = |
{\ |
" |
eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" |
$echo >> "$output_objdir/$dlsyms" "\ |
{0, (lt_ptr) 0} |
}; |
/* This works around a problem in FreeBSD linker */ |
#ifdef FREEBSD_WORKAROUND |
static const void *lt_preloaded_setup() { |
return lt_preloaded_symbols; |
} |
#endif |
#ifdef __cplusplus |
} |
#endif\ |
" |
fi |
pic_flag_for_symtable= |
case $host in |
# compiling the symbol table file with pic_flag works around |
# a FreeBSD bug that causes programs to crash when -lm is |
# linked before any other PIC object. But we must not use |
# pic_flag when linking with -static. The problem exists in |
# FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. |
*-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) |
case "$compile_command " in |
*" -static "*) ;; |
*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; |
esac;; |
*-*-hpux*) |
case "$compile_command " in |
*" -static "*) ;; |
*) pic_flag_for_symtable=" $pic_flag";; |
esac |
esac |
# Now compile the dynamic symbol file. |
$show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" |
$run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? |
# Clean up the generated files. |
$show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" |
$run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" |
# Transform the symbol file into the correct name. |
case $host in |
*cygwin* | *mingw* ) |
if test -f "$output_objdir/${outputname}.def" ; then |
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` |
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` |
else |
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` |
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` |
fi |
;; |
* ) |
compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` |
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` |
;; |
esac |
;; |
*) |
$echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
else |
# We keep going just in case the user didn't refer to |
# lt_preloaded_symbols. The linker will fail if global_symbol_pipe |
# really was required. |
# Nullify the symbol file. |
compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` |
finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` |
fi |
if test "$need_relink" = no || test "$build_libtool_libs" != yes; then |
# Replace the output file specification. |
compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` |
link_command="$compile_command$compile_rpath" |
# We have no uninstalled library dependencies, so finalize right now. |
$show "$link_command" |
$run eval "$link_command" |
exit_status=$? |
# Delete the generated files. |
if test -n "$dlsyms"; then |
$show "$rm $output_objdir/${outputname}S.${objext}" |
$run $rm "$output_objdir/${outputname}S.${objext}" |
fi |
exit $exit_status |
fi |
if test -n "$shlibpath_var"; then |
# We should set the shlibpath_var |
rpath= |
for dir in $temp_rpath; do |
case $dir in |
[\\/]* | [A-Za-z]:[\\/]*) |
# Absolute path. |
rpath="$rpath$dir:" |
;; |
*) |
# Relative path: add a thisdir entry. |
rpath="$rpath\$thisdir/$dir:" |
;; |
esac |
done |
temp_rpath="$rpath" |
fi |
if test -n "$compile_shlibpath$finalize_shlibpath"; then |
compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" |
fi |
if test -n "$finalize_shlibpath"; then |
finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" |
fi |
compile_var= |
finalize_var= |
if test -n "$runpath_var"; then |
if test -n "$perm_rpath"; then |
# We should set the runpath_var. |
rpath= |
for dir in $perm_rpath; do |
rpath="$rpath$dir:" |
done |
compile_var="$runpath_var=\"$rpath\$$runpath_var\" " |
fi |
if test -n "$finalize_perm_rpath"; then |
# We should set the runpath_var. |
rpath= |
for dir in $finalize_perm_rpath; do |
rpath="$rpath$dir:" |
done |
finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " |
fi |
fi |
if test "$no_install" = yes; then |
# We don't need to create a wrapper script. |
link_command="$compile_var$compile_command$compile_rpath" |
# Replace the output file specification. |
link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` |
# Delete the old output file. |
$run $rm $output |
# Link the executable and exit |
$show "$link_command" |
$run eval "$link_command" || exit $? |
exit $EXIT_SUCCESS |
fi |
if test "$hardcode_action" = relink; then |
# Fast installation is not supported |
link_command="$compile_var$compile_command$compile_rpath" |
relink_command="$finalize_var$finalize_command$finalize_rpath" |
$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 |
$echo "$modename: \`$output' will be relinked during installation" 1>&2 |
else |
if test "$fast_install" != no; then |
link_command="$finalize_var$compile_command$finalize_rpath" |
if test "$fast_install" = yes; then |
relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` |
else |
# fast_install is set to needless |
relink_command= |
fi |
else |
link_command="$compile_var$compile_command$compile_rpath" |
relink_command="$finalize_var$finalize_command$finalize_rpath" |
fi |
fi |
# Replace the output file specification. |
link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` |
# Delete the old output files. |
$run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname |
$show "$link_command" |
$run eval "$link_command" || exit $? |
# Now create the wrapper script. |
$show "creating $output" |
# Quote the relink command for shipping. |
if test -n "$relink_command"; then |
# Preserve any variables that may affect compiler behavior |
for var in $variables_saved_for_relink; do |
if eval test -z \"\${$var+set}\"; then |
relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" |
elif eval var_value=\$$var; test -z "$var_value"; then |
relink_command="$var=; export $var; $relink_command" |
else |
var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` |
relink_command="$var=\"$var_value\"; export $var; $relink_command" |
fi |
done |
relink_command="(cd `pwd`; $relink_command)" |
relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` |
fi |
# Quote $echo for shipping. |
if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then |
case $progpath in |
[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; |
*) qecho="$SHELL `pwd`/$progpath --fallback-echo";; |
esac |
qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` |
else |
qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` |
fi |
# Only actually do things if our run command is non-null. |
if test -z "$run"; then |
# win32 will think the script is a binary if it has |
# a .exe suffix, so we strip it off here. |
case $output in |
*.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; |
esac |
# test for cygwin because mv fails w/o .exe extensions |
case $host in |
*cygwin*) |
exeext=.exe |
outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; |
*) exeext= ;; |
esac |
case $host in |
*cygwin* | *mingw* ) |
output_name=`basename $output` |
output_path=`dirname $output` |
cwrappersource="$output_path/$objdir/lt-$output_name.c" |
cwrapper="$output_path/$output_name.exe" |
$rm $cwrappersource $cwrapper |
trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 |
cat > $cwrappersource <<EOF |
/* $cwrappersource - temporary wrapper executable for $objdir/$outputname |
Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP |
The $output program cannot be directly executed until all the libtool |
libraries that it depends on are installed. |
This wrapper executable should never be moved out of the build directory. |
If it is, it will not operate correctly. |
Currently, it simply execs the wrapper *script* "/bin/sh $output", |
but could eventually absorb all of the scripts functionality and |
exec $objdir/$outputname directly. |
*/ |
EOF |
cat >> $cwrappersource<<"EOF" |
#include <stdio.h> |
#include <stdlib.h> |
#include <unistd.h> |
#include <malloc.h> |
#include <stdarg.h> |
#include <assert.h> |
#include <string.h> |
#include <ctype.h> |
#include <sys/stat.h> |
#if defined(PATH_MAX) |
# define LT_PATHMAX PATH_MAX |
#elif defined(MAXPATHLEN) |
# define LT_PATHMAX MAXPATHLEN |
#else |
# define LT_PATHMAX 1024 |
#endif |
#ifndef DIR_SEPARATOR |
# define DIR_SEPARATOR '/' |
# define PATH_SEPARATOR ':' |
#endif |
#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ |
defined (__OS2__) |
# define HAVE_DOS_BASED_FILE_SYSTEM |
# ifndef DIR_SEPARATOR_2 |
# define DIR_SEPARATOR_2 '\\' |
# endif |
# ifndef PATH_SEPARATOR_2 |
# define PATH_SEPARATOR_2 ';' |
# endif |
#endif |
#ifndef DIR_SEPARATOR_2 |
# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) |
#else /* DIR_SEPARATOR_2 */ |
# define IS_DIR_SEPARATOR(ch) \ |
(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) |
#endif /* DIR_SEPARATOR_2 */ |
#ifndef PATH_SEPARATOR_2 |
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) |
#else /* PATH_SEPARATOR_2 */ |
# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) |
#endif /* PATH_SEPARATOR_2 */ |
#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) |
#define XFREE(stale) do { \ |
if (stale) { free ((void *) stale); stale = 0; } \ |
} while (0) |
/* -DDEBUG is fairly common in CFLAGS. */ |
#undef DEBUG |
#if defined DEBUGWRAPPER |
# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) |
#else |
# define DEBUG(format, ...) |
#endif |
const char *program_name = NULL; |
void * xmalloc (size_t num); |
char * xstrdup (const char *string); |
const char * base_name (const char *name); |
char * find_executable(const char *wrapper); |
int check_executable(const char *path); |
char * strendzap(char *str, const char *pat); |
void lt_fatal (const char *message, ...); |
int |
main (int argc, char *argv[]) |
{ |
char **newargz; |
int i; |
program_name = (char *) xstrdup (base_name (argv[0])); |
DEBUG("(main) argv[0] : %s\n",argv[0]); |
DEBUG("(main) program_name : %s\n",program_name); |
newargz = XMALLOC(char *, argc+2); |
EOF |
cat >> $cwrappersource <<EOF |
newargz[0] = (char *) xstrdup("$SHELL"); |
EOF |
cat >> $cwrappersource <<"EOF" |
newargz[1] = find_executable(argv[0]); |
if (newargz[1] == NULL) |
lt_fatal("Couldn't find %s", argv[0]); |
DEBUG("(main) found exe at : %s\n",newargz[1]); |
/* we know the script has the same name, without the .exe */ |
/* so make sure newargz[1] doesn't end in .exe */ |
strendzap(newargz[1],".exe"); |
for (i = 1; i < argc; i++) |
newargz[i+1] = xstrdup(argv[i]); |
newargz[argc+1] = NULL; |
for (i=0; i<argc+1; i++) |
{ |
DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); |
; |
} |
EOF |
case $host_os in |
mingw*) |
cat >> $cwrappersource <<EOF |
execv("$SHELL",(char const **)newargz); |
EOF |
;; |
*) |
cat >> $cwrappersource <<EOF |
execv("$SHELL",newargz); |
EOF |
;; |
esac |
cat >> $cwrappersource <<"EOF" |
return 127; |
} |
void * |
xmalloc (size_t num) |
{ |
void * p = (void *) malloc (num); |
if (!p) |
lt_fatal ("Memory exhausted"); |
return p; |
} |
char * |
xstrdup (const char *string) |
{ |
return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL |
; |
} |
const char * |
base_name (const char *name) |
{ |
const char *base; |
#if defined (HAVE_DOS_BASED_FILE_SYSTEM) |
/* Skip over the disk name in MSDOS pathnames. */ |
if (isalpha ((unsigned char)name[0]) && name[1] == ':') |
name += 2; |
#endif |
for (base = name; *name; name++) |
if (IS_DIR_SEPARATOR (*name)) |
base = name + 1; |
return base; |
} |
int |
check_executable(const char * path) |
{ |
struct stat st; |
DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); |
if ((!path) || (!*path)) |
return 0; |
if ((stat (path, &st) >= 0) && |
( |
/* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ |
#if defined (S_IXOTH) |
((st.st_mode & S_IXOTH) == S_IXOTH) || |
#endif |
#if defined (S_IXGRP) |
((st.st_mode & S_IXGRP) == S_IXGRP) || |
#endif |
((st.st_mode & S_IXUSR) == S_IXUSR)) |
) |
return 1; |
else |
return 0; |
} |
/* Searches for the full path of the wrapper. Returns |
newly allocated full path name if found, NULL otherwise */ |
char * |
find_executable (const char* wrapper) |
{ |
int has_slash = 0; |
const char* p; |
const char* p_next; |
/* static buffer for getcwd */ |
char tmp[LT_PATHMAX + 1]; |
int tmp_len; |
char* concat_name; |
DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); |
if ((wrapper == NULL) || (*wrapper == '\0')) |
return NULL; |
/* Absolute path? */ |
#if defined (HAVE_DOS_BASED_FILE_SYSTEM) |
if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') |
{ |
concat_name = xstrdup (wrapper); |
if (check_executable(concat_name)) |
return concat_name; |
XFREE(concat_name); |
} |
else |
{ |
#endif |
if (IS_DIR_SEPARATOR (wrapper[0])) |
{ |
concat_name = xstrdup (wrapper); |
if (check_executable(concat_name)) |
return concat_name; |
XFREE(concat_name); |
} |
#if defined (HAVE_DOS_BASED_FILE_SYSTEM) |
} |
#endif |
for (p = wrapper; *p; p++) |
if (*p == '/') |
{ |
has_slash = 1; |
break; |
} |
if (!has_slash) |
{ |
/* no slashes; search PATH */ |
const char* path = getenv ("PATH"); |
if (path != NULL) |
{ |
for (p = path; *p; p = p_next) |
{ |
const char* q; |
size_t p_len; |
for (q = p; *q; q++) |
if (IS_PATH_SEPARATOR(*q)) |
break; |
p_len = q - p; |
p_next = (*q == '\0' ? q : q + 1); |
if (p_len == 0) |
{ |
/* empty path: current directory */ |
if (getcwd (tmp, LT_PATHMAX) == NULL) |
lt_fatal ("getcwd failed"); |
tmp_len = strlen(tmp); |
concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); |
memcpy (concat_name, tmp, tmp_len); |
concat_name[tmp_len] = '/'; |
strcpy (concat_name + tmp_len + 1, wrapper); |
} |
else |
{ |
concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); |
memcpy (concat_name, p, p_len); |
concat_name[p_len] = '/'; |
strcpy (concat_name + p_len + 1, wrapper); |
} |
if (check_executable(concat_name)) |
return concat_name; |
XFREE(concat_name); |
} |
} |
/* not found in PATH; assume curdir */ |
} |
/* Relative path | not found in path: prepend cwd */ |
if (getcwd (tmp, LT_PATHMAX) == NULL) |
lt_fatal ("getcwd failed"); |
tmp_len = strlen(tmp); |
concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); |
memcpy (concat_name, tmp, tmp_len); |
concat_name[tmp_len] = '/'; |
strcpy (concat_name + tmp_len + 1, wrapper); |
if (check_executable(concat_name)) |
return concat_name; |
XFREE(concat_name); |
return NULL; |
} |
char * |
strendzap(char *str, const char *pat) |
{ |
size_t len, patlen; |
assert(str != NULL); |
assert(pat != NULL); |
len = strlen(str); |
patlen = strlen(pat); |
if (patlen <= len) |
{ |
str += len - patlen; |
if (strcmp(str, pat) == 0) |
*str = '\0'; |
} |
return str; |
} |
static void |
lt_error_core (int exit_status, const char * mode, |
const char * message, va_list ap) |
{ |
fprintf (stderr, "%s: %s: ", program_name, mode); |
vfprintf (stderr, message, ap); |
fprintf (stderr, ".\n"); |
if (exit_status >= 0) |
exit (exit_status); |
} |
void |
lt_fatal (const char *message, ...) |
{ |
va_list ap; |
va_start (ap, message); |
lt_error_core (EXIT_FAILURE, "FATAL", message, ap); |
va_end (ap); |
} |
EOF |
# we should really use a build-platform specific compiler |
# here, but OTOH, the wrappers (shell script and this C one) |
# are only useful if you want to execute the "real" binary. |
# Since the "real" binary is built for $host, then this |
# wrapper might as well be built for $host, too. |
$run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource |
;; |
esac |
$rm $output |
trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 |
$echo > $output "\ |
#! $SHELL |
# $output - temporary wrapper script for $objdir/$outputname |
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP |
# |
# The $output program cannot be directly executed until all the libtool |
# libraries that it depends on are installed. |
# |
# This wrapper script should never be moved out of the build directory. |
# If it is, it will not operate correctly. |
# Sed substitution that helps us do robust quoting. It backslashifies |
# metacharacters that are still active within double-quoted strings. |
Xsed='${SED} -e 1s/^X//' |
sed_quote_subst='$sed_quote_subst' |
# The HP-UX ksh and POSIX shell print the target directory to stdout |
# if CDPATH is set. |
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH |
relink_command=\"$relink_command\" |
# This environment variable determines our operation mode. |
if test \"\$libtool_install_magic\" = \"$magic\"; then |
# install mode needs the following variable: |
notinst_deplibs='$notinst_deplibs' |
else |
# When we are sourced in execute mode, \$file and \$echo are already set. |
if test \"\$libtool_execute_magic\" != \"$magic\"; then |
echo=\"$qecho\" |
file=\"\$0\" |
# Make sure echo works. |
if test \"X\$1\" = X--no-reexec; then |
# Discard the --no-reexec flag, and continue. |
shift |
elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then |
# Yippee, \$echo works! |
: |
else |
# Restart under the correct shell, and then maybe \$echo will work. |
exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} |
fi |
fi\ |
" |
$echo >> $output "\ |
# Find the directory that this script lives in. |
thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` |
test \"x\$thisdir\" = \"x\$file\" && thisdir=. |
# Follow symbolic links until we get to the real thisdir. |
file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` |
while test -n \"\$file\"; do |
destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` |
# If there was a directory component, then change thisdir. |
if test \"x\$destdir\" != \"x\$file\"; then |
case \"\$destdir\" in |
[\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; |
*) thisdir=\"\$thisdir/\$destdir\" ;; |
esac |
fi |
file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` |
file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` |
done |
# Try to get the absolute directory name. |
absdir=\`cd \"\$thisdir\" && pwd\` |
test -n \"\$absdir\" && thisdir=\"\$absdir\" |
" |
if test "$fast_install" = yes; then |
$echo >> $output "\ |
program=lt-'$outputname'$exeext |
progdir=\"\$thisdir/$objdir\" |
if test ! -f \"\$progdir/\$program\" || \\ |
{ file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ |
test \"X\$file\" != \"X\$progdir/\$program\"; }; then |
file=\"\$\$-\$program\" |
if test ! -d \"\$progdir\"; then |
$mkdir \"\$progdir\" |
else |
$rm \"\$progdir/\$file\" |
fi" |
$echo >> $output "\ |
# relink executable if necessary |
if test -n \"\$relink_command\"; then |
if relink_command_output=\`eval \$relink_command 2>&1\`; then : |
else |
$echo \"\$relink_command_output\" >&2 |
$rm \"\$progdir/\$file\" |
exit $EXIT_FAILURE |
fi |
fi |
$mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || |
{ $rm \"\$progdir/\$program\"; |
$mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } |
$rm \"\$progdir/\$file\" |
fi" |
else |
$echo >> $output "\ |
program='$outputname' |
progdir=\"\$thisdir/$objdir\" |
" |
fi |
$echo >> $output "\ |
if test -f \"\$progdir/\$program\"; then" |
# Export our shlibpath_var if we have one. |
if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then |
$echo >> $output "\ |
# Add our own library path to $shlibpath_var |
$shlibpath_var=\"$temp_rpath\$$shlibpath_var\" |
# Some systems cannot cope with colon-terminated $shlibpath_var |
# The second colon is a workaround for a bug in BeOS R4 sed |
$shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` |
export $shlibpath_var |
" |
fi |
# fixup the dll searchpath if we need to. |
if test -n "$dllsearchpath"; then |
$echo >> $output "\ |
# Add the dll search path components to the executable PATH |
PATH=$dllsearchpath:\$PATH |
" |
fi |
$echo >> $output "\ |
if test \"\$libtool_execute_magic\" != \"$magic\"; then |
# Run the actual program with our arguments. |
" |
case $host in |
# Backslashes separate directories on plain windows |
*-*-mingw | *-*-os2*) |
$echo >> $output "\ |
exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} |
" |
;; |
*) |
$echo >> $output "\ |
exec \"\$progdir/\$program\" \${1+\"\$@\"} |
" |
;; |
esac |
$echo >> $output "\ |
\$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" |
exit $EXIT_FAILURE |
fi |
else |
# The program doesn't exist. |
\$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 |
\$echo \"This script is just a wrapper for \$program.\" 1>&2 |
$echo \"See the $PACKAGE documentation for more information.\" 1>&2 |
exit $EXIT_FAILURE |
fi |
fi\ |
" |
chmod +x $output |
fi |
exit $EXIT_SUCCESS |
;; |
esac |
# See if we need to build an old-fashioned archive. |
for oldlib in $oldlibs; do |
if test "$build_libtool_libs" = convenience; then |
oldobjs="$libobjs_save" |
addlibs="$convenience" |
build_libtool_libs=no |
else |
if test "$build_libtool_libs" = module; then |
oldobjs="$libobjs_save" |
build_libtool_libs=no |
else |
oldobjs="$old_deplibs $non_pic_objects" |
fi |
addlibs="$old_convenience" |
fi |
if test -n "$addlibs"; then |
gentop="$output_objdir/${outputname}x" |
generated="$generated $gentop" |
func_extract_archives $gentop $addlibs |
oldobjs="$oldobjs $func_extract_archives_result" |
fi |
# Do each command in the archive commands. |
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then |
cmds=$old_archive_from_new_cmds |
else |
# POSIX demands no paths to be encoded in archives. We have |
# to avoid creating archives with duplicate basenames if we |
# might have to extract them afterwards, e.g., when creating a |
# static archive out of a convenience library, or when linking |
# the entirety of a libtool archive into another (currently |
# not supported by libtool). |
if (for obj in $oldobjs |
do |
$echo "X$obj" | $Xsed -e 's%^.*/%%' |
done | sort | sort -uc >/dev/null 2>&1); then |
: |
else |
$echo "copying selected object files to avoid basename conflicts..." |
if test -z "$gentop"; then |
gentop="$output_objdir/${outputname}x" |
generated="$generated $gentop" |
$show "${rm}r $gentop" |
$run ${rm}r "$gentop" |
$show "$mkdir $gentop" |
$run $mkdir "$gentop" |
exit_status=$? |
if test "$exit_status" -ne 0 && test ! -d "$gentop"; then |
exit $exit_status |
fi |
fi |
save_oldobjs=$oldobjs |
oldobjs= |
counter=1 |
for obj in $save_oldobjs |
do |
objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` |
case " $oldobjs " in |
" ") oldobjs=$obj ;; |
*[\ /]"$objbase "*) |
while :; do |
# Make sure we don't pick an alternate name that also |
# overlaps. |
newobj=lt$counter-$objbase |
counter=`expr $counter + 1` |
case " $oldobjs " in |
*[\ /]"$newobj "*) ;; |
*) if test ! -f "$gentop/$newobj"; then break; fi ;; |
esac |
done |
$show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" |
$run ln "$obj" "$gentop/$newobj" || |
$run cp "$obj" "$gentop/$newobj" |
oldobjs="$oldobjs $gentop/$newobj" |
;; |
*) oldobjs="$oldobjs $obj" ;; |
esac |
done |
fi |
eval cmds=\"$old_archive_cmds\" |
if len=`expr "X$cmds" : ".*"` && |
test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then |
cmds=$old_archive_cmds |
else |
# the command line is too long to link in one step, link in parts |
$echo "using piecewise archive linking..." |
save_RANLIB=$RANLIB |
RANLIB=: |
objlist= |
concat_cmds= |
save_oldobjs=$oldobjs |
# Is there a better way of finding the last object in the list? |
for obj in $save_oldobjs |
do |
last_oldobj=$obj |
done |
for obj in $save_oldobjs |
do |
oldobjs="$objlist $obj" |
objlist="$objlist $obj" |
eval test_cmds=\"$old_archive_cmds\" |
if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && |
test "$len" -le "$max_cmd_len"; then |
: |
else |
# the above command should be used before it gets too long |
oldobjs=$objlist |
if test "$obj" = "$last_oldobj" ; then |
RANLIB=$save_RANLIB |
fi |
test -z "$concat_cmds" || concat_cmds=$concat_cmds~ |
eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" |
objlist= |
fi |
done |
RANLIB=$save_RANLIB |
oldobjs=$objlist |
if test "X$oldobjs" = "X" ; then |
eval cmds=\"\$concat_cmds\" |
else |
eval cmds=\"\$concat_cmds~\$old_archive_cmds\" |
fi |
fi |
fi |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
eval cmd=\"$cmd\" |
IFS="$save_ifs" |
$show "$cmd" |
$run eval "$cmd" || exit $? |
done |
IFS="$save_ifs" |
done |
if test -n "$generated"; then |
$show "${rm}r$generated" |
$run ${rm}r$generated |
fi |
# Now create the libtool archive. |
case $output in |
*.la) |
old_library= |
test "$build_old_libs" = yes && old_library="$libname.$libext" |
$show "creating $output" |
# Preserve any variables that may affect compiler behavior |
for var in $variables_saved_for_relink; do |
if eval test -z \"\${$var+set}\"; then |
relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" |
elif eval var_value=\$$var; test -z "$var_value"; then |
relink_command="$var=; export $var; $relink_command" |
else |
var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` |
relink_command="$var=\"$var_value\"; export $var; $relink_command" |
fi |
done |
# Quote the link command for shipping. |
relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" |
relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` |
if test "$hardcode_automatic" = yes ; then |
relink_command= |
fi |
# Only create the output if not a dry run. |
if test -z "$run"; then |
for installed in no yes; do |
if test "$installed" = yes; then |
if test -z "$install_libdir"; then |
break |
fi |
output="$output_objdir/$outputname"i |
# Replace all uninstalled libtool libraries with the installed ones |
newdependency_libs= |
for deplib in $dependency_libs; do |
case $deplib in |
*.la) |
name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` |
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` |
if test -z "$libdir"; then |
$echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 |
exit $EXIT_FAILURE |
fi |
newdependency_libs="$newdependency_libs $libdir/$name" |
;; |
*) newdependency_libs="$newdependency_libs $deplib" ;; |
esac |
done |
dependency_libs="$newdependency_libs" |
newdlfiles= |
for lib in $dlfiles; do |
name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` |
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` |
if test -z "$libdir"; then |
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 |
exit $EXIT_FAILURE |
fi |
newdlfiles="$newdlfiles $libdir/$name" |
done |
dlfiles="$newdlfiles" |
newdlprefiles= |
for lib in $dlprefiles; do |
name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` |
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` |
if test -z "$libdir"; then |
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 |
exit $EXIT_FAILURE |
fi |
newdlprefiles="$newdlprefiles $libdir/$name" |
done |
dlprefiles="$newdlprefiles" |
else |
newdlfiles= |
for lib in $dlfiles; do |
case $lib in |
[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; |
*) abs=`pwd`"/$lib" ;; |
esac |
newdlfiles="$newdlfiles $abs" |
done |
dlfiles="$newdlfiles" |
newdlprefiles= |
for lib in $dlprefiles; do |
case $lib in |
[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; |
*) abs=`pwd`"/$lib" ;; |
esac |
newdlprefiles="$newdlprefiles $abs" |
done |
dlprefiles="$newdlprefiles" |
fi |
$rm $output |
# place dlname in correct position for cygwin |
tdlname=$dlname |
case $host,$output,$installed,$module,$dlname in |
*cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; |
esac |
$echo > $output "\ |
# $outputname - a libtool library file |
# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP |
# |
# Please DO NOT delete this file! |
# It is necessary for linking the library. |
# The name that we can dlopen(3). |
dlname='$tdlname' |
# Names of this library. |
library_names='$library_names' |
# The name of the static archive. |
old_library='$old_library' |
# Libraries that this one depends upon. |
dependency_libs='$dependency_libs' |
# Version information for $libname. |
current=$current |
age=$age |
revision=$revision |
# Is this an already installed library? |
installed=$installed |
# Should we warn about portability when linking against -modules? |
shouldnotlink=$module |
# Files to dlopen/dlpreopen |
dlopen='$dlfiles' |
dlpreopen='$dlprefiles' |
# Directory that this library needs to be installed in: |
libdir='$install_libdir'" |
if test "$installed" = no && test "$need_relink" = yes; then |
$echo >> $output "\ |
relink_command=\"$relink_command\"" |
fi |
done |
fi |
# Do a symbolic link so that the libtool archive can be found in |
# LD_LIBRARY_PATH before the program is installed. |
$show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" |
$run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? |
;; |
esac |
exit $EXIT_SUCCESS |
;; |
# libtool install mode |
install) |
modename="$modename: install" |
# There may be an optional sh(1) argument at the beginning of |
# install_prog (especially on Windows NT). |
if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || |
# Allow the use of GNU shtool's install command. |
$echo "X$nonopt" | grep shtool > /dev/null; then |
# Aesthetically quote it. |
arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
arg="\"$arg\"" |
;; |
esac |
install_prog="$arg " |
arg="$1" |
shift |
else |
install_prog= |
arg=$nonopt |
fi |
# The real first argument should be the name of the installation program. |
# Aesthetically quote it. |
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
arg="\"$arg\"" |
;; |
esac |
install_prog="$install_prog$arg" |
# We need to accept at least all the BSD install flags. |
dest= |
files= |
opts= |
prev= |
install_type= |
isdir=no |
stripme= |
for arg |
do |
if test -n "$dest"; then |
files="$files $dest" |
dest=$arg |
continue |
fi |
case $arg in |
-d) isdir=yes ;; |
-f) |
case " $install_prog " in |
*[\\\ /]cp\ *) ;; |
*) prev=$arg ;; |
esac |
;; |
-g | -m | -o) prev=$arg ;; |
-s) |
stripme=" -s" |
continue |
;; |
-*) |
;; |
*) |
# If the previous option needed an argument, then skip it. |
if test -n "$prev"; then |
prev= |
else |
dest=$arg |
continue |
fi |
;; |
esac |
# Aesthetically quote the argument. |
arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` |
case $arg in |
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") |
arg="\"$arg\"" |
;; |
esac |
install_prog="$install_prog $arg" |
done |
if test -z "$install_prog"; then |
$echo "$modename: you must specify an install program" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
if test -n "$prev"; then |
$echo "$modename: the \`$prev' option requires an argument" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
if test -z "$files"; then |
if test -z "$dest"; then |
$echo "$modename: no file or destination specified" 1>&2 |
else |
$echo "$modename: you must specify a destination" 1>&2 |
fi |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
# Strip any trailing slash from the destination. |
dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` |
# Check to see that the destination is a directory. |
test -d "$dest" && isdir=yes |
if test "$isdir" = yes; then |
destdir="$dest" |
destname= |
else |
destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` |
test "X$destdir" = "X$dest" && destdir=. |
destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` |
# Not a directory, so check to see that there is only one file specified. |
set dummy $files |
if test "$#" -gt 2; then |
$echo "$modename: \`$dest' is not a directory" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
fi |
case $destdir in |
[\\/]* | [A-Za-z]:[\\/]*) ;; |
*) |
for file in $files; do |
case $file in |
*.lo) ;; |
*) |
$echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
done |
;; |
esac |
# This variable tells wrapper scripts just to set variables rather |
# than running their programs. |
libtool_install_magic="$magic" |
staticlibs= |
future_libdirs= |
current_libdirs= |
for file in $files; do |
# Do each installation. |
case $file in |
*.$libext) |
# Do the static libraries later. |
staticlibs="$staticlibs $file" |
;; |
*.la) |
# Check to see that this really is a libtool archive. |
if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : |
else |
$echo "$modename: \`$file' is not a valid libtool archive" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
library_names= |
old_library= |
relink_command= |
# If there is no directory component, then add one. |
case $file in |
*/* | *\\*) . $file ;; |
*) . ./$file ;; |
esac |
# Add the libdir to current_libdirs if it is the destination. |
if test "X$destdir" = "X$libdir"; then |
case "$current_libdirs " in |
*" $libdir "*) ;; |
*) current_libdirs="$current_libdirs $libdir" ;; |
esac |
else |
# Note the libdir as a future libdir. |
case "$future_libdirs " in |
*" $libdir "*) ;; |
*) future_libdirs="$future_libdirs $libdir" ;; |
esac |
fi |
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ |
test "X$dir" = "X$file/" && dir= |
dir="$dir$objdir" |
if test -n "$relink_command"; then |
# Determine the prefix the user has applied to our future dir. |
inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` |
# Don't allow the user to place us outside of our expected |
# location b/c this prevents finding dependent libraries that |
# are installed to the same prefix. |
# At present, this check doesn't affect windows .dll's that |
# are installed into $libdir/../bin (currently, that works fine) |
# but it's something to keep an eye on. |
if test "$inst_prefix_dir" = "$destdir"; then |
$echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 |
exit $EXIT_FAILURE |
fi |
if test -n "$inst_prefix_dir"; then |
# Stick the inst_prefix_dir data into the link command. |
relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` |
else |
relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` |
fi |
$echo "$modename: warning: relinking \`$file'" 1>&2 |
$show "$relink_command" |
if $run eval "$relink_command"; then : |
else |
$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 |
exit $EXIT_FAILURE |
fi |
fi |
# See the names of the shared library. |
set dummy $library_names |
if test -n "$2"; then |
realname="$2" |
shift |
shift |
srcname="$realname" |
test -n "$relink_command" && srcname="$realname"T |
# Install the shared library and build the symlinks. |
$show "$install_prog $dir/$srcname $destdir/$realname" |
$run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? |
if test -n "$stripme" && test -n "$striplib"; then |
$show "$striplib $destdir/$realname" |
$run eval "$striplib $destdir/$realname" || exit $? |
fi |
if test "$#" -gt 0; then |
# Delete the old symlinks, and create new ones. |
# Try `ln -sf' first, because the `ln' binary might depend on |
# the symlink we replace! Solaris /bin/ln does not understand -f, |
# so we also need to try rm && ln -s. |
for linkname |
do |
if test "$linkname" != "$realname"; then |
$show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" |
$run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" |
fi |
done |
fi |
# Do each command in the postinstall commands. |
lib="$destdir/$realname" |
cmds=$postinstall_cmds |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" || { |
lt_exit=$? |
# Restore the uninstalled library and exit |
if test "$mode" = relink; then |
$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' |
fi |
exit $lt_exit |
} |
done |
IFS="$save_ifs" |
fi |
# Install the pseudo-library for information purposes. |
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` |
instname="$dir/$name"i |
$show "$install_prog $instname $destdir/$name" |
$run eval "$install_prog $instname $destdir/$name" || exit $? |
# Maybe install the static library, too. |
test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" |
;; |
*.lo) |
# Install (i.e. copy) a libtool object. |
# Figure out destination file name, if it wasn't already specified. |
if test -n "$destname"; then |
destfile="$destdir/$destname" |
else |
destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` |
destfile="$destdir/$destfile" |
fi |
# Deduce the name of the destination old-style object file. |
case $destfile in |
*.lo) |
staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` |
;; |
*.$objext) |
staticdest="$destfile" |
destfile= |
;; |
*) |
$echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
# Install the libtool object if requested. |
if test -n "$destfile"; then |
$show "$install_prog $file $destfile" |
$run eval "$install_prog $file $destfile" || exit $? |
fi |
# Install the old object if enabled. |
if test "$build_old_libs" = yes; then |
# Deduce the name of the old-style object file. |
staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` |
$show "$install_prog $staticobj $staticdest" |
$run eval "$install_prog \$staticobj \$staticdest" || exit $? |
fi |
exit $EXIT_SUCCESS |
;; |
*) |
# Figure out destination file name, if it wasn't already specified. |
if test -n "$destname"; then |
destfile="$destdir/$destname" |
else |
destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` |
destfile="$destdir/$destfile" |
fi |
# If the file is missing, and there is a .exe on the end, strip it |
# because it is most likely a libtool script we actually want to |
# install |
stripped_ext="" |
case $file in |
*.exe) |
if test ! -f "$file"; then |
file=`$echo $file|${SED} 's,.exe$,,'` |
stripped_ext=".exe" |
fi |
;; |
esac |
# Do a test to see if this is really a libtool program. |
case $host in |
*cygwin*|*mingw*) |
wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` |
;; |
*) |
wrapper=$file |
;; |
esac |
if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then |
notinst_deplibs= |
relink_command= |
# Note that it is not necessary on cygwin/mingw to append a dot to |
# foo even if both foo and FILE.exe exist: automatic-append-.exe |
# behavior happens only for exec(3), not for open(2)! Also, sourcing |
# `FILE.' does not work on cygwin managed mounts. |
# |
# If there is no directory component, then add one. |
case $wrapper in |
*/* | *\\*) . ${wrapper} ;; |
*) . ./${wrapper} ;; |
esac |
# Check the variables that should have been set. |
if test -z "$notinst_deplibs"; then |
$echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 |
exit $EXIT_FAILURE |
fi |
finalize=yes |
for lib in $notinst_deplibs; do |
# Check to see that each library is installed. |
libdir= |
if test -f "$lib"; then |
# If there is no directory component, then add one. |
case $lib in |
*/* | *\\*) . $lib ;; |
*) . ./$lib ;; |
esac |
fi |
libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test |
if test -n "$libdir" && test ! -f "$libfile"; then |
$echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 |
finalize=no |
fi |
done |
relink_command= |
# Note that it is not necessary on cygwin/mingw to append a dot to |
# foo even if both foo and FILE.exe exist: automatic-append-.exe |
# behavior happens only for exec(3), not for open(2)! Also, sourcing |
# `FILE.' does not work on cygwin managed mounts. |
# |
# If there is no directory component, then add one. |
case $wrapper in |
*/* | *\\*) . ${wrapper} ;; |
*) . ./${wrapper} ;; |
esac |
outputname= |
if test "$fast_install" = no && test -n "$relink_command"; then |
if test "$finalize" = yes && test -z "$run"; then |
tmpdir=`func_mktempdir` |
file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` |
outputname="$tmpdir/$file" |
# Replace the output file specification. |
relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` |
$show "$relink_command" |
if $run eval "$relink_command"; then : |
else |
$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 |
${rm}r "$tmpdir" |
continue |
fi |
file="$outputname" |
else |
$echo "$modename: warning: cannot relink \`$file'" 1>&2 |
fi |
else |
# Install the binary that we compiled earlier. |
file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` |
fi |
fi |
# remove .exe since cygwin /usr/bin/install will append another |
# one anyway |
case $install_prog,$host in |
*/usr/bin/install*,*cygwin*) |
case $file:$destfile in |
*.exe:*.exe) |
# this is ok |
;; |
*.exe:*) |
destfile=$destfile.exe |
;; |
*:*.exe) |
destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` |
;; |
esac |
;; |
esac |
$show "$install_prog$stripme $file $destfile" |
$run eval "$install_prog\$stripme \$file \$destfile" || exit $? |
test -n "$outputname" && ${rm}r "$tmpdir" |
;; |
esac |
done |
for file in $staticlibs; do |
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` |
# Set up the ranlib parameters. |
oldlib="$destdir/$name" |
$show "$install_prog $file $oldlib" |
$run eval "$install_prog \$file \$oldlib" || exit $? |
if test -n "$stripme" && test -n "$old_striplib"; then |
$show "$old_striplib $oldlib" |
$run eval "$old_striplib $oldlib" || exit $? |
fi |
# Do each command in the postinstall commands. |
cmds=$old_postinstall_cmds |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" || exit $? |
done |
IFS="$save_ifs" |
done |
if test -n "$future_libdirs"; then |
$echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 |
fi |
if test -n "$current_libdirs"; then |
# Maybe just do a dry run. |
test -n "$run" && current_libdirs=" -n$current_libdirs" |
exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' |
else |
exit $EXIT_SUCCESS |
fi |
;; |
# libtool finish mode |
finish) |
modename="$modename: finish" |
libdirs="$nonopt" |
admincmds= |
if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then |
for dir |
do |
libdirs="$libdirs $dir" |
done |
for libdir in $libdirs; do |
if test -n "$finish_cmds"; then |
# Do each command in the finish commands. |
cmds=$finish_cmds |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" || admincmds="$admincmds |
$cmd" |
done |
IFS="$save_ifs" |
fi |
if test -n "$finish_eval"; then |
# Do the single finish_eval. |
eval cmds=\"$finish_eval\" |
$run eval "$cmds" || admincmds="$admincmds |
$cmds" |
fi |
done |
fi |
# Exit here if they wanted silent mode. |
test "$show" = : && exit $EXIT_SUCCESS |
$echo "X----------------------------------------------------------------------" | $Xsed |
$echo "Libraries have been installed in:" |
for libdir in $libdirs; do |
$echo " $libdir" |
done |
$echo |
$echo "If you ever happen to want to link against installed libraries" |
$echo "in a given directory, LIBDIR, you must either use libtool, and" |
$echo "specify the full pathname of the library, or use the \`-LLIBDIR'" |
$echo "flag during linking and do at least one of the following:" |
if test -n "$shlibpath_var"; then |
$echo " - add LIBDIR to the \`$shlibpath_var' environment variable" |
$echo " during execution" |
fi |
if test -n "$runpath_var"; then |
$echo " - add LIBDIR to the \`$runpath_var' environment variable" |
$echo " during linking" |
fi |
if test -n "$hardcode_libdir_flag_spec"; then |
libdir=LIBDIR |
eval flag=\"$hardcode_libdir_flag_spec\" |
$echo " - use the \`$flag' linker flag" |
fi |
if test -n "$admincmds"; then |
$echo " - have your system administrator run these commands:$admincmds" |
fi |
if test -f /etc/ld.so.conf; then |
$echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" |
fi |
$echo |
$echo "See any operating system documentation about shared libraries for" |
$echo "more information, such as the ld(1) and ld.so(8) manual pages." |
$echo "X----------------------------------------------------------------------" | $Xsed |
exit $EXIT_SUCCESS |
;; |
# libtool execute mode |
execute) |
modename="$modename: execute" |
# The first argument is the command name. |
cmd="$nonopt" |
if test -z "$cmd"; then |
$echo "$modename: you must specify a COMMAND" 1>&2 |
$echo "$help" |
exit $EXIT_FAILURE |
fi |
# Handle -dlopen flags immediately. |
for file in $execute_dlfiles; do |
if test ! -f "$file"; then |
$echo "$modename: \`$file' is not a file" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
dir= |
case $file in |
*.la) |
# Check to see that this really is a libtool archive. |
if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : |
else |
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
# Read the libtool library. |
dlname= |
library_names= |
# If there is no directory component, then add one. |
case $file in |
*/* | *\\*) . $file ;; |
*) . ./$file ;; |
esac |
# Skip this library if it cannot be dlopened. |
if test -z "$dlname"; then |
# Warn if it was a shared library. |
test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" |
continue |
fi |
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` |
test "X$dir" = "X$file" && dir=. |
if test -f "$dir/$objdir/$dlname"; then |
dir="$dir/$objdir" |
else |
$echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 |
exit $EXIT_FAILURE |
fi |
;; |
*.lo) |
# Just add the directory containing the .lo file. |
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` |
test "X$dir" = "X$file" && dir=. |
;; |
*) |
$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 |
continue |
;; |
esac |
# Get the absolute pathname. |
absdir=`cd "$dir" && pwd` |
test -n "$absdir" && dir="$absdir" |
# Now add the directory to shlibpath_var. |
if eval "test -z \"\$$shlibpath_var\""; then |
eval "$shlibpath_var=\"\$dir\"" |
else |
eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" |
fi |
done |
# This variable tells wrapper scripts just to set shlibpath_var |
# rather than running their programs. |
libtool_execute_magic="$magic" |
# Check if any of the arguments is a wrapper script. |
args= |
for file |
do |
case $file in |
-*) ;; |
*) |
# Do a test to see if this is really a libtool program. |
if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then |
# If there is no directory component, then add one. |
case $file in |
*/* | *\\*) . $file ;; |
*) . ./$file ;; |
esac |
# Transform arg to wrapped name. |
file="$progdir/$program" |
fi |
;; |
esac |
# Quote arguments (to preserve shell metacharacters). |
file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` |
args="$args \"$file\"" |
done |
if test -z "$run"; then |
if test -n "$shlibpath_var"; then |
# Export the shlibpath_var. |
eval "export $shlibpath_var" |
fi |
# Restore saved environment variables |
if test "${save_LC_ALL+set}" = set; then |
LC_ALL="$save_LC_ALL"; export LC_ALL |
fi |
if test "${save_LANG+set}" = set; then |
LANG="$save_LANG"; export LANG |
fi |
# Now prepare to actually exec the command. |
exec_cmd="\$cmd$args" |
else |
# Display what would be done. |
if test -n "$shlibpath_var"; then |
eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" |
$echo "export $shlibpath_var" |
fi |
$echo "$cmd$args" |
exit $EXIT_SUCCESS |
fi |
;; |
# libtool clean and uninstall mode |
clean | uninstall) |
modename="$modename: $mode" |
rm="$nonopt" |
files= |
rmforce= |
exit_status=0 |
# This variable tells wrapper scripts just to set variables rather |
# than running their programs. |
libtool_install_magic="$magic" |
for arg |
do |
case $arg in |
-f) rm="$rm $arg"; rmforce=yes ;; |
-*) rm="$rm $arg" ;; |
*) files="$files $arg" ;; |
esac |
done |
if test -z "$rm"; then |
$echo "$modename: you must specify an RM program" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
fi |
rmdirs= |
origobjdir="$objdir" |
for file in $files; do |
dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` |
if test "X$dir" = "X$file"; then |
dir=. |
objdir="$origobjdir" |
else |
objdir="$dir/$origobjdir" |
fi |
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` |
test "$mode" = uninstall && objdir="$dir" |
# Remember objdir for removal later, being careful to avoid duplicates |
if test "$mode" = clean; then |
case " $rmdirs " in |
*" $objdir "*) ;; |
*) rmdirs="$rmdirs $objdir" ;; |
esac |
fi |
# Don't error if the file doesn't exist and rm -f was used. |
if (test -L "$file") >/dev/null 2>&1 \ |
|| (test -h "$file") >/dev/null 2>&1 \ |
|| test -f "$file"; then |
: |
elif test -d "$file"; then |
exit_status=1 |
continue |
elif test "$rmforce" = yes; then |
continue |
fi |
rmfiles="$file" |
case $name in |
*.la) |
# Possibly a libtool archive, so verify it. |
if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then |
. $dir/$name |
# Delete the libtool libraries and symlinks. |
for n in $library_names; do |
rmfiles="$rmfiles $objdir/$n" |
done |
test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" |
case "$mode" in |
clean) |
case " $library_names " in |
# " " in the beginning catches empty $dlname |
*" $dlname "*) ;; |
*) rmfiles="$rmfiles $objdir/$dlname" ;; |
esac |
test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" |
;; |
uninstall) |
if test -n "$library_names"; then |
# Do each command in the postuninstall commands. |
cmds=$postuninstall_cmds |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" |
if test "$?" -ne 0 && test "$rmforce" != yes; then |
exit_status=1 |
fi |
done |
IFS="$save_ifs" |
fi |
if test -n "$old_library"; then |
# Do each command in the old_postuninstall commands. |
cmds=$old_postuninstall_cmds |
save_ifs="$IFS"; IFS='~' |
for cmd in $cmds; do |
IFS="$save_ifs" |
eval cmd=\"$cmd\" |
$show "$cmd" |
$run eval "$cmd" |
if test "$?" -ne 0 && test "$rmforce" != yes; then |
exit_status=1 |
fi |
done |
IFS="$save_ifs" |
fi |
# FIXME: should reinstall the best remaining shared library. |
;; |
esac |
fi |
;; |
*.lo) |
# Possibly a libtool object, so verify it. |
if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then |
# Read the .lo file |
. $dir/$name |
# Add PIC object to the list of files to remove. |
if test -n "$pic_object" \ |
&& test "$pic_object" != none; then |
rmfiles="$rmfiles $dir/$pic_object" |
fi |
# Add non-PIC object to the list of files to remove. |
if test -n "$non_pic_object" \ |
&& test "$non_pic_object" != none; then |
rmfiles="$rmfiles $dir/$non_pic_object" |
fi |
fi |
;; |
*) |
if test "$mode" = clean ; then |
noexename=$name |
case $file in |
*.exe) |
file=`$echo $file|${SED} 's,.exe$,,'` |
noexename=`$echo $name|${SED} 's,.exe$,,'` |
# $file with .exe has already been added to rmfiles, |
# add $file without .exe |
rmfiles="$rmfiles $file" |
;; |
esac |
# Do a test to see if this is a libtool program. |
if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then |
relink_command= |
. $dir/$noexename |
# note $name still contains .exe if it was in $file originally |
# as does the version of $file that was added into $rmfiles |
rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" |
if test "$fast_install" = yes && test -n "$relink_command"; then |
rmfiles="$rmfiles $objdir/lt-$name" |
fi |
if test "X$noexename" != "X$name" ; then |
rmfiles="$rmfiles $objdir/lt-${noexename}.c" |
fi |
fi |
fi |
;; |
esac |
$show "$rm $rmfiles" |
$run $rm $rmfiles || exit_status=1 |
done |
objdir="$origobjdir" |
# Try to remove the ${objdir}s in the directories where we deleted files |
for dir in $rmdirs; do |
if test -d "$dir"; then |
$show "rmdir $dir" |
$run rmdir $dir >/dev/null 2>&1 |
fi |
done |
exit $exit_status |
;; |
"") |
$echo "$modename: you must specify a MODE" 1>&2 |
$echo "$generic_help" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
if test -z "$exec_cmd"; then |
$echo "$modename: invalid operation mode \`$mode'" 1>&2 |
$echo "$generic_help" 1>&2 |
exit $EXIT_FAILURE |
fi |
fi # test -z "$show_help" |
if test -n "$exec_cmd"; then |
eval exec $exec_cmd |
exit $EXIT_FAILURE |
fi |
# We need to display help for each of the modes. |
case $mode in |
"") $echo \ |
"Usage: $modename [OPTION]... [MODE-ARG]... |
Provide generalized library-building support services. |
--config show all configuration variables |
--debug enable verbose shell tracing |
-n, --dry-run display commands without modifying any files |
--features display basic configuration information and exit |
--finish same as \`--mode=finish' |
--help display this help message and exit |
--mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] |
--quiet same as \`--silent' |
--silent don't print informational messages |
--tag=TAG use configuration variables from tag TAG |
--version print version information |
MODE must be one of the following: |
clean remove files from the build directory |
compile compile a source file into a libtool object |
execute automatically set library path, then run a program |
finish complete the installation of libtool libraries |
install install libraries or executables |
link create a library or an executable |
uninstall remove libraries from an installed directory |
MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for |
a more detailed description of MODE. |
Report bugs to <bug-libtool@gnu.org>." |
exit $EXIT_SUCCESS |
;; |
clean) |
$echo \ |
"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... |
Remove files from the build directory. |
RM is the name of the program to use to delete files associated with each FILE |
(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed |
to RM. |
If FILE is a libtool library, object or program, all the files associated |
with it are deleted. Otherwise, only FILE itself is deleted using RM." |
;; |
compile) |
$echo \ |
"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE |
Compile a source file into a libtool library object. |
This mode accepts the following additional options: |
-o OUTPUT-FILE set the output file name to OUTPUT-FILE |
-prefer-pic try to building PIC objects only |
-prefer-non-pic try to building non-PIC objects only |
-static always build a \`.o' file suitable for static linking |
COMPILE-COMMAND is a command to be used in creating a \`standard' object file |
from the given SOURCEFILE. |
The output file name is determined by removing the directory component from |
SOURCEFILE, then substituting the C source code suffix \`.c' with the |
library object suffix, \`.lo'." |
;; |
execute) |
$echo \ |
"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... |
Automatically set library path, then run a program. |
This mode accepts the following additional options: |
-dlopen FILE add the directory containing FILE to the library path |
This mode sets the library path environment variable according to \`-dlopen' |
flags. |
If any of the ARGS are libtool executable wrappers, then they are translated |
into their corresponding uninstalled binary, and any of their required library |
directories are added to the library path. |
Then, COMMAND is executed, with ARGS as arguments." |
;; |
finish) |
$echo \ |
"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... |
Complete the installation of libtool libraries. |
Each LIBDIR is a directory that contains libtool libraries. |
The commands that this mode executes may require superuser privileges. Use |
the \`--dry-run' option if you just want to see what would be executed." |
;; |
install) |
$echo \ |
"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... |
Install executables or libraries. |
INSTALL-COMMAND is the installation command. The first component should be |
either the \`install' or \`cp' program. |
The rest of the components are interpreted as arguments to that command (only |
BSD-compatible install options are recognized)." |
;; |
link) |
$echo \ |
"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... |
Link object files or libraries together to form another library, or to |
create an executable program. |
LINK-COMMAND is a command using the C compiler that you would use to create |
a program from several object files. |
The following components of LINK-COMMAND are treated specially: |
-all-static do not do any dynamic linking at all |
-avoid-version do not add a version suffix if possible |
-dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime |
-dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols |
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) |
-export-symbols SYMFILE |
try to export only the symbols listed in SYMFILE |
-export-symbols-regex REGEX |
try to export only the symbols matching REGEX |
-LLIBDIR search LIBDIR for required installed libraries |
-lNAME OUTPUT-FILE requires the installed library libNAME |
-module build a library that can dlopened |
-no-fast-install disable the fast-install mode |
-no-install link a not-installable executable |
-no-undefined declare that a library does not refer to external symbols |
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects |
-objectlist FILE Use a list of object files found in FILE to specify objects |
-precious-files-regex REGEX |
don't remove output files matching REGEX |
-release RELEASE specify package release information |
-rpath LIBDIR the created library will eventually be installed in LIBDIR |
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries |
-static do not do any dynamic linking of libtool libraries |
-version-info CURRENT[:REVISION[:AGE]] |
specify library version info [each variable defaults to 0] |
All other options (arguments beginning with \`-') are ignored. |
Every other argument is treated as a filename. Files ending in \`.la' are |
treated as uninstalled libtool libraries, other files are standard or library |
object files. |
If the OUTPUT-FILE ends in \`.la', then a libtool library is created, |
only library objects (\`.lo' files) may be specified, and \`-rpath' is |
required, except when creating a convenience library. |
If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created |
using \`ar' and \`ranlib', or on Windows using \`lib'. |
If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file |
is created, otherwise an executable program is created." |
;; |
uninstall) |
$echo \ |
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... |
Remove libraries from an installation directory. |
RM is the name of the program to use to delete files associated with each FILE |
(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed |
to RM. |
If FILE is a libtool library, all the files associated with it are deleted. |
Otherwise, only FILE itself is deleted using RM." |
;; |
*) |
$echo "$modename: invalid operation mode \`$mode'" 1>&2 |
$echo "$help" 1>&2 |
exit $EXIT_FAILURE |
;; |
esac |
$echo |
$echo "Try \`$modename --help' for more information about other modes." |
exit $? |
# The TAGs below are defined such that we never get into a situation |
# in which we disable both kinds of libraries. Given conflicting |
# choices, we go for a static library, that is the most portable, |
# since we can't tell whether shared libraries were disabled because |
# the user asked for that or because the platform doesn't support |
# them. This is particularly important on AIX, because we don't |
# support having both static and shared libraries enabled at the same |
# time on that platform, so we default to a shared-only configuration. |
# If a disable-shared tag is given, we'll fallback to a static-only |
# configuration. But we'll never go from static-only to shared-only. |
# ### BEGIN LIBTOOL TAG CONFIG: disable-shared |
disable_libs=shared |
# ### END LIBTOOL TAG CONFIG: disable-shared |
# ### BEGIN LIBTOOL TAG CONFIG: disable-static |
disable_libs=static |
# ### END LIBTOOL TAG CONFIG: disable-static |
# Local Variables: |
# mode:shell-script |
# sh-indentation:2 |
# End: |
/tilgungsplan/trunk/admin/detect-autoconf.pl |
---|
0,0 → 1,173 |
#!/usr/bin/env perl |
# Try to locate best version of auto* |
# By Michael Pyne <michael.pyne@kdemail.net> |
# |
# Copyright (c) 2005. |
# This code is public domain. You may use it however you like (including |
# relicensing). |
# Emulate the 'which' program. |
sub which |
{ |
my $prog = shift; |
my @paths = split(/:/, $ENV{'PATH'}); |
for $path (@paths) |
{ |
return "$path/$prog" if -x "$path/$prog"; |
} |
return ""; |
} |
# Subroutine to determine the highest installed version of the given program, |
# searching from the given paths. |
sub findBest |
{ |
my ($program, @paths) = @_; |
my $best_version_found = '0'; # Deliberately a string. |
my %versions; |
my %minimumVersions = ( |
'autoconf' => '2.5', |
'automake' => '1.6', |
); |
# Allow user to use environment variable to override search. |
return $ENV{uc $program} if $ENV{uc $program}; |
for $prefix (@paths) |
{ |
@files = glob "$prefix/$program*"; |
for $file (@files) |
{ |
# Don't check non-executable scripts. |
next unless -x $file; |
($version) = $file =~ /$prefix\/$program-?(.*)$/; |
$version =~ s/-|\.//g; |
# Special case some programs to make sure it has a minimum version. |
if (not $version and exists $minimumVersions{$program}) |
{ |
my $min_version = $minimumVersions{$program}; |
my $versionOutput = `$program --version 2>/dev/null | head -n 1`; |
# If we can't run the script to get the version it likely won't work later. |
next unless $versionOutput; |
# Use number.number for version (we don't need the excess in general). |
($versionOutput) = ($versionOutput =~ /(\d\.\d)/); |
# Use lt to do lexicographical comparison of strings (which should be |
# equivalent and doesn't involve issues with floating point conversions). |
if (not $versionOutput or $versionOutput lt $min_version) |
{ |
next; |
} |
} |
# If no version suffix then use it in favor of a versioned autotool |
# since the ever-popular WANT_AUTOFOO should then work (in theory). |
return $file unless $version; |
# Emulate 'which', and abort if we've already seen this version. |
next if exists $versions{$version}; |
# Save filename of program. |
$versions{$version} = $file; |
# Use string comparison so that e.g. 253a will be > 253 but < 254. |
if ($version gt $best_version_found) |
{ |
$best_version_found = $version; |
} |
} |
} |
return $versions{$best_version_found}; |
} |
# Find an appropriate "which" program for later use by the shell script calling |
# us. |
sub findWhich |
{ |
for $candidate ('type -p', 'which', 'type') |
{ |
$test = `$candidate sh 2>/dev/null`; |
chomp $test; |
return $candidate if -x $test; |
} |
} |
# Uses which() to find a program unless the user provided its path in the |
# environment (the upper case program name is searched). |
sub findProgram |
{ |
$suffix = ""; # For use if @_ has only one param. |
my ($program, $suffix) = @_; |
return $ENV{uc $program} if $ENV{uc $program}; |
return which("$program$suffix"); |
} |
# SCRIPT STARTS. |
# Search in path. |
@paths = split(/:/, $ENV{'PATH'}); |
# Make sure at least /usr/bin and /usr/local/bin are in this search. |
unshift @paths, '/usr/local/bin' unless grep $_ eq '/usr/local/bin', @paths; |
unshift @paths, '/usr/bin' unless grep $_ eq '/usr/bin', @paths; |
$autoconf = findBest('autoconf', @paths); |
($autoconf_suffix) = $autoconf =~ /.*autoconf(.*)$/; |
# Find matching autoconf companions. |
$autoheader = findProgram('autoheader', $autoconf_suffix); |
$autom4te = findProgram('autom4te', $autoconf_suffix); |
# Get best automake, and look for unsermake to possibly override it. |
$automake = findBest('automake', @paths); |
$unsermake = ""; |
# backward compatible: if $UNSERMAKE points to a path, use it |
$unsermake = findProgram('unsermake') if (defined($ENV{'UNSERMAKE'}) and $ENV{'UNSERMAKE'} =~ /\//); |
# new compatible: if it says 'yes', use the one from path |
$unsermake = which('unsermake') if ($ENV{'UNSERMAKE'} ne 'no'); |
($automake_suffix) = $automake =~ /.*automake(.*)$/; |
# Use unsermake if we found it. |
$automake = "$unsermake -c" if $unsermake; |
# Find matching automake companions. |
$aclocal = findProgram('aclocal', $automake_suffix); |
$which = findWhich(); |
# Make sure we have all of the needed programs. |
for $i (qw'autoconf autoheader autom4te automake aclocal') |
{ |
unless(${$i}) |
{ |
print "# Unable to find $i!!\n"; |
exit 1; |
} |
} |
# Print results in eval-able form. |
print <<EOF; |
AUTOCONF="$autoconf" |
AUTOHEADER="$autoheader" |
AUTOM4TE="$autom4te" |
AUTOMAKE="$automake" |
ACLOCAL="$aclocal" |
WHICH="$which" |
export AUTOCONF AUTOHEADER AUTOM4TE AUTOMAKE ACLOCAL WHICH |
EOF |
exit 0; |
/tilgungsplan/trunk/admin/am_edit |
---|
0,0 → 1,2445 |
#!/usr/bin/perl -w |
# Expands the specialised KDE tags in Makefile.in to (hopefully) valid |
# make syntax. |
# When called without file parameters, we work recursively on all Makefile.in |
# in and below the current subdirectory. When called with file parameters, |
# only those Makefile.in are changed. |
# The currently supported tags are |
# |
# {program}_METASOURCES |
# where you have a choice of two styles |
# {program}_METASOURCES = name1.moc name2.moc ... [\] |
# {program}_METASOURCES = AUTO |
# The second style requires other tags as well. |
# |
# To install icons : |
# KDE_ICON = iconname iconname2 ... |
# KDE_ICON = AUTO |
# |
# For documentation : |
# http://developer.kde.org/documentation/other/developer-faq.html |
# |
# and more new tags TBD! |
# |
# The concept (and base code) for this program came from automoc, |
# supplied by the following |
# |
# Matthias Ettrich <ettrich@kde.org> (The originator) |
# Kalle Dalheimer <kalle@kde.org> (The original implementator) |
# Harri Porten <porten@tu-harburg.de> |
# Alex Zepeda <jazepeda@pacbell.net> |
# David Faure <faure@kde.org> |
# Stephan Kulow <coolo@kde.org> |
# Dirk Mueller <mueller@kde.org> |
use Cwd; |
use File::Find; |
use File::Basename; |
# Prototype the functions |
sub initialise (); |
sub processMakefile ($); |
sub updateMakefile (); |
sub restoreMakefile (); |
sub removeLine ($$); |
sub appendLines ($); |
sub substituteLine ($$); |
sub findMocCandidates (); |
sub pruneMocCandidates ($); |
sub checkMocCandidates (); |
sub addMocRules (); |
sub findKcfgFile($); |
sub tag_AUTOMAKE (); |
sub tag_META_INCLUDES (); |
sub tag_METASOURCES (); |
sub tag_POFILES (); |
sub tag_DOCFILES (); |
sub tag_LOCALINSTALL(); |
sub tag_IDLFILES(); |
sub tag_UIFILES(); |
sub tag_KCFGFILES(); |
sub tag_SUBDIRS(); |
sub tag_ICON(); |
sub tag_CLOSURE(); |
sub tag_NO_UNDEFINED(); |
sub tag_NMCHECK(); |
sub tag_DIST(); |
sub tag_KDEINIT(); |
# Some global globals... |
$verbose = 0; # a debug flag |
$thisProg = "$0"; # This programs name |
$topdir = cwd(); # The current directory |
@makefiles = (); # Contains all the files we'll process |
@foreignfiles = (); |
$start = (times)[0]; # some stats for testing - comment out for release |
$version = "v0.2"; |
$errorflag = 0; |
$cppExt = "(cpp|cc|cxx|C|c\\+\\+)"; |
$hExt = "(h|H|hh|hxx|hpp|h\\+\\+)"; |
$progId = "KDE tags expanded automatically by " . basename($thisProg); |
$automkCall = "\n"; |
$printname = ""; # used to display the directory the Makefile is in |
$use_final = 1; # create code for --enable-final |
$cleantarget = "clean"; |
$dryrun = 0; |
$pathoption = 0; |
$foreign_libtool = 0; |
while (defined ($ARGV[0])) |
{ |
$_ = shift; |
if (/^--version$/) |
{ |
print STDOUT "\n"; |
print STDOUT basename($thisProg), " $version\n", |
"This is really free software, unencumbered by the GPL.\n", |
"You can do anything you like with it except sueing me.\n", |
"Copyright 1998 Kalle Dalheimer <kalle\@kde.org>\n", |
"Concept, design and unnecessary questions about perl\n", |
" by Matthias Ettrich <ettrich\@kde.org>\n\n", |
"Making it useful by Stephan Kulow <coolo\@kde.org> and\n", |
"Harri Porten <porten\@kde.org>\n", |
"Updated (Feb-1999), John Birch <jb.nz\@writeme.com>\n", |
"Fixes and Improvements by Dirk Mueller <mueller\@kde.org>\n", |
"Current Maintainer Stephan Kulow\n\n"; |
exit 0; |
} |
elsif (/^--verbose$|^-v$/) |
{ |
$verbose = 1; # Oh is there a problem...? |
} |
elsif (/^(?:-p|--path=)(.+)$/) |
{ |
my $p = $1; |
$thisProg = $p . "/". basename($thisProg); |
warn ("$thisProg doesn't exist\n") if (!(-f $thisProg)); |
$thisProg .= " -p".$p; |
$pathoption=1; |
} |
elsif (/^--help$|^-h$/) |
{ |
print STDOUT "Usage $thisProg [OPTION] ... [dir/Makefile.in]...\n", |
"\n", |
"Patches dir/Makefile.in generated by automake\n", |
"(where dir can be an absolute or relative directory name)\n", |
"\n", |
" -v, --verbose verbosely list files processed\n", |
" -h, --help print this help, then exit\n", |
" --version print version number, then exit\n", |
" -p, --path= use the path to am_edit if the path\n", |
" called from is not the one to be used\n", |
" --no-final don't patch for --enable-final\n"; |
exit 0; |
} |
elsif (/^--no-final$/) |
{ |
$use_final = 0; |
$thisProg .= " --no-final"; |
} |
elsif (/^--foreign-libtool$/) |
{ |
$foreign_libtool = 1; |
$thisProg .= " --foreign-libtool"; |
} |
elsif (/^-n$/) |
{ |
$dryrun = 1; |
} |
else |
{ |
# user selects what input files to check |
# add full path if relative path is given |
$_ = cwd()."/".$_ if (! /^\//); |
print "User wants $_\n" if ($verbose); |
push (@makefiles, $_); |
} |
} |
if ($thisProg =~ /^\// && !$pathoption ) |
{ |
print STDERR "Illegal full pathname call performed...\n", |
"The call to \"$thisProg\"\nwould be inserted in some Makefile.in.\n", |
"Please use option --path.\n"; |
exit 1; |
} |
# Only scan for files when the user hasn't entered data |
if (!@makefiles) |
{ |
print STDOUT "Scanning for Makefile.in\n" if ($verbose); |
find (\&add_makefile, cwd()); |
#chdir('$topdir'); |
} else { |
print STDOUT "Using input files specified by user\n" if ($verbose); |
} |
foreach $makefile (sort(@makefiles)) |
{ |
processMakefile ($makefile); |
last if ($errorflag); |
} |
# Just some debug statistics - comment out for release as it uses printf. |
printf STDOUT "Time %.2f CPU sec\n", (times)[0] - $start if ($verbose); |
exit $errorflag; # causes make to fail if erroflag is set |
#----------------------------------------------------------------------------- |
# In conjunction with the "find" call, this builds the list of input files |
sub add_makefile () |
{ |
push (@makefiles, $File::Find::name) if (/Makefile.in$/); |
} |
#----------------------------------------------------------------------------- |
# Processes a single make file |
# The parameter contains the full path name of the Makefile.in to use |
sub processMakefile ($) |
{ |
# some useful globals for the subroutines called here |
local ($makefile) = @_; |
local @headerdirs = ('.'); |
local $haveAutomocTag = 0; |
local $MakefileData = ""; |
local $cxxsuffix = "KKK"; |
local @programs = (); # lists the names of programs and libraries |
local $program = ""; |
local @kdeinits = (); # lists the kdeinit targets |
local %realObjs = (); # lists the objects compiled into $program |
local %sources = (); # lists the sources used for $program |
local %finalObjs = (); # lists the objects compiled when final |
local %realname = (); # the binary name of program variable |
local %idlfiles = (); # lists the idl files used for $program |
local %globalmocs = ();# list of all mocfiles (in %mocFiles format) |
local %important = (); # list of files to be generated asap |
local %uiFiles = (); |
local %kcfgFiles = (); |
local $allidls = ""; |
local $idl_output = "";# lists all idl generated files for cleantarget |
local $ui_output = "";# lists all uic generated files for cleantarget |
local $kcfg_output = "";# lists all kcfg generated files for cleantarget |
local %dependmocs = (); |
local $metasourceTags = 0; |
local $dep_files = ""; |
local $dep_finals = ""; |
local %target_adds = (); # the targets to add |
local %rule_adds = (); |
local $kdelang = ""; |
local @cleanfiles = (); |
local $cleanMoc = ""; |
local $closure_output = ""; |
local %varcontent = (); |
$makefileDir = dirname($makefile); |
chdir ($makefileDir); |
$printname = $makefile; |
$printname =~ s/^\Q$topdir\E\///; |
$makefile = basename($makefile); |
print STDOUT "Processing makefile $printname\n" if ($verbose); |
# Setup and see if we need to do this. |
return if (!initialise()); |
tag_AUTOMAKE (); # Allows a "make" to redo the Makefile.in |
tag_META_INCLUDES (); # Supplies directories for src locations |
foreach $program (@programs) { |
$sources_changed{$program} = 0; |
$dependmocs{$program} = ""; |
$important{$program} = ""; |
tag_IDLFILES(); # Sorts out idl rules |
tag_NO_UNDEFINED(); |
tag_CLOSURE(); |
tag_NMCHECK(); |
tag_UIFILES(); # Sorts out ui rules |
tag_KCFGFILES(); # Sorts out kcfg rules |
tag_METASOURCES (); # Sorts out the moc rules |
if ($sources_changed{$program}) { |
my $lookup = $program . '_SOURCES\s*=[ \t]*(.*)'; |
if($program =~ /libkdeinit_(.*)/) { |
my $prog = $1; |
substituteLine($prog . '_SOURCES\s*=[ \t]*(.*)', |
"${prog}_SOURCES = ${prog}_dummy.$cxxsuffix\n" . |
"libkdeinit_${prog}_SOURCES = " . $sources{$program}); |
$sources{$prog} = "${prog}_dummy.$cxxsuffix"; |
} |
else { |
substituteLine($lookup, "$program\_SOURCES=" . $sources{$program}); |
} |
} |
if ($important{$program}) { |
local %source_dict = (); |
for $source (split(/[\034\s]+/, $sources{$program})) { |
$source_dict{$source} = 1; |
} |
for $source (@cleanfiles) { |
$source_dict{$source} = 0; |
} |
for $source (keys %source_dict) { |
next if (!$source); |
if ($source_dict{$source}) { |
# sanity check |
if (! -f $source) { |
print STDERR "Error: $source is listed in a _SOURCE line in $printname, but doesn't exist yet. Put it in DISTCLEANFILES!\n"; |
} else { |
$target_adds{"\$(srcdir)/$source"} .= $important{$program}; |
} |
} |
} |
} |
} |
if ($cleanMoc) { |
# Always add dist clean tag |
# Add extra *.moc.cpp files created for USE_AUTOMOC because they |
# aren't included in the normal *.moc clean rules. |
appendLines ("$cleantarget-metasources:\n\t-rm -f $cleanMoc\n"); |
$target_adds{"$cleantarget-am"} .= "$cleantarget-metasources "; |
} |
tag_DIST() unless ($kdeopts{"noautodist"}); |
if ($idl_output) { |
appendLines ("$cleantarget-idl:\n\t-rm -f $idl_output\n"); |
$target_adds{"$cleantarget-am"} .= "$cleantarget-idl "; |
} |
if ($ui_output) { |
appendLines ("$cleantarget-ui:\n\t-rm -f $ui_output\n"); |
$target_adds{"$cleantarget-am"} .= "$cleantarget-ui "; |
} |
if ($kcfg_output) { |
appendLines ("$cleantarget-kcfg:\n\t-rm -f $kcfg_output\n"); |
$target_adds{"$cleantarget-am"} .= "$cleantarget-kcfg "; |
} |
if ($closure_output) { |
appendLines ("$cleantarget-closures:\n\t-rm -f $closure_output\n"); |
$target_adds{"$cleantarget-am"} .= "$cleantarget-closures "; |
} |
if ($MakefileData =~ /\nKDE_LANG\s*=\s*(\S*)\s*\n/) { |
$kdelang = '$(KDE_LANG)' |
} else { |
$kdelang = ''; |
} |
tag_POFILES (); # language rules for po directory |
tag_DOCFILES (); # language rules for doc directories |
tag_LOCALINSTALL(); # add $(DESTDIR) before all kde_ dirs |
tag_ICON(); |
tag_SUBDIRS(); |
my $tmp = "force-reedit:\n"; |
$tmp .= "\t$automkCall\n\tcd \$(top_srcdir) && perl $thisProg $printname\n\n"; |
appendLines($tmp); |
make_bcheck_target(); |
make_meta_classes(); |
tag_COMPILE_FIRST(); |
tag_FINAL() if (!$kdeopts{"nofinal"}); |
my $final_lines = "final:\n\t\$(MAKE) "; |
my $final_install_lines = "final-install:\n\t\$(MAKE) "; |
my $nofinal_lines = "no-final:\n\t\$(MAKE) "; |
my $nofinal_install_lines = "no-final-install:\n\t\$(MAKE) "; |
foreach $program (@programs) { |
my $lookup = $program . '_OBJECTS\s*=[ \t]*.*'; |
my $new = ""; |
my @list = split(/[\034\s]+/, $realObjs{$program}); |
if (!$kdeopts{"nofinal"} && @list > 1 && $finalObjs{$program}) { |
$new .= "$program\_final\_OBJECTS = " . $finalObjs{$program}; |
$new .= "\n$program\_nofinal\_OBJECTS = " . $realObjs{$program}; |
$new .= "\n\@KDE_USE_FINAL_FALSE\@$program\_OBJECTS = \$($program\_nofinal\_OBJECTS)"; |
$new .= "\n\@KDE_USE_FINAL_TRUE\@$program\_OBJECTS = \$($program\_final\_OBJECTS)"; |
$final_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" "; |
$final_install_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" "; |
$nofinal_lines .= "$program\_OBJECTS=\"\$($program\_nofinal\_OBJECTS)\" "; |
$nofinal_install_lines .= "$program\_OBJECTS=\"\$($program\_nofinal_OBJECTS)\" "; |
} else { |
$new = "$program\_OBJECTS = " . $realObjs{$program}; |
} |
if($MakefileData =~ m/\n$lookup/) { |
substituteLine ($lookup, $new); |
} |
else { |
appendLines("$new\n"); |
} |
} |
appendLines($final_lines . "all-am\n"); |
appendLines($final_install_lines . "install-am\n"); |
appendLines($nofinal_lines . "all-am\n"); |
appendLines($nofinal_install_lines . "install-am\n"); |
my $lookup = '(\@\S+\@)?DEP_FILES\s*=[ \t]*(.*)'; |
if ($MakefileData =~ /\n$lookup/) { |
my $condition = $1; |
my $depfiles = $2; |
my $workfiles; |
if ($dep_finals) { |
# Add the conditions on every line, since |
# there may be line continuations in the list. |
$workfiles = "$dep_files $dep_finals $depfiles"; |
$workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_TRUE\@\t/g; |
$lines = "$condition\@KDE_USE_FINAL_TRUE\@DEP_FILES = $workfiles\n"; |
$workfiles = "$dep_files $depfiles"; |
$workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_FALSE\@\t/g; |
$lines .= "$condition\@KDE_USE_FINAL_FALSE\@DEP_FILES = $workfiles"; |
} else { |
$workfiles = "$dep_files $depfiles"; |
$workfiles =~ s/\034/\034$condition\t/g; |
$lines = $condition . "DEP_FILES = $workfiles"; |
} |
substituteLine($lookup, $lines); |
} |
# new recursive targets |
$target_adds{ "nmcheck" } .= ""; # always create nmcheck target |
$target_adds{ "nmcheck-am" } .= "nmcheck"; |
$lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)'; |
if ($MakefileData =~ /\n$lookup/) { |
substituteLine($lookup, "RECURSIVE_TARGETS = $1 nmcheck-recursive bcheck-recursive"); |
} |
$cvs_lines = "kde-rpo-clean:\n"; |
$cvs_lines .= "\t-rm -f *.rpo\n"; |
appendLines($cvs_lines); |
$target_adds{"clean"} .= "kde-rpo-clean "; |
my %target_dels = ("install-data-am" => ""); |
# some strange people like to do a install-exec, and expect that also |
# all modules are installed. automake doesn't know this, so we need to move |
# this here from install-data to install-exec. |
if ($MakefileData =~ m/\nkde_module_LTLIBRARIES\s*=/) { |
# $target_adds{"install-exec-am"} .= "install-kde_moduleLTLIBRARIES "; |
# don't use $target_adds here because we need to append the dependency, not |
# prepend it. Fixes #44342 , when a module depends on a lib in the same dir |
# and libtool needs it during relinking upon install (Simon) |
my $lookup = "install-exec-am:([^\n]*)"; |
if($MakefileData =~ /\n$lookup\n/) { |
substituteLine("$lookup", "install-exec-am: $1 install-kde_moduleLTLIBRARIES"); |
} |
$target_dels{"install-data-am"} .= "install-kde_moduleLTLIBRARIES "; |
$target_adds{"install-data-am"} .= " "; |
} |
my $lines = ""; |
foreach $add (keys %target_adds) { |
my $lookup = quotemeta($add) . ':([^\n]*)'; |
if ($MakefileData =~ /\n$lookup\n/) { |
my $newlines = $1; |
my $oldlines = $lookup; |
if (defined $target_dels{$add}) { |
foreach $del (split(' ', $target_dels{$add})) { |
$newlines =~ s/\s*$del\s*/ /g; |
} |
} |
substituteLine($oldlines, "$add: " . $target_adds{$add} . $newlines); |
} else { |
$lines .= "$add: " . $target_adds{$add} . "\n"; |
} |
} |
appendLines($lines) if ($lines); |
$lines = join("\n", values %rule_adds); |
appendLines($lines) if ($lines); |
my $found = 1; |
while ($found) { |
if ($MakefileData =~ m/\n(.*)\$\(CXXFLAGS\)(.*)\n/) { |
my $stuff_before = $1; |
my $stuff_after = $2; |
my $lookup = quotemeta("$1\$(CXXFLAGS)$2"); |
my $replacement = "$1\$(KCXXFLAGS)$2"; |
$MakefileData =~ s/$lookup/$replacement/; |
$lookup =~ s/\\\$\\\(CXXFLAGS\\\)/\\\$\\\(KCXXFLAGS\\\)/; |
$replacement = "$stuff_before\$(KCXXFLAGS) \$(KDE_CXXFLAGS)$stuff_after"; |
next if ($stuff_before =~ /\$\(KDE_CXXFLAGS\)/ or $stuff_after =~ /\$\(KDE_CXXFLAGS\)/); |
substituteLine($lookup, $replacement); |
} else { |
$found = 0; |
} |
} |
if($foreign_libtool == 0) { |
$lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=link) (\$\(CXXLD\).*\$\(KCXXFLAGS\))'; |
if ($MakefileData =~ m/$lookup/ ) { |
$MakefileData =~ s/$lookup/$1 --tag=CXX $2/; |
} |
$lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=compile)\s+(\$\(CXX\)\s+)'; |
if ($MakefileData =~ m/$lookup/ ) { |
$MakefileData =~ s/$lookup/$1 --tag=CXX $2/; |
} |
} |
$MakefileData =~ s/\$\(KCXXFLAGS\)/\$\(CXXFLAGS\)/g; |
$lookup = '(.*)cp -pr \$\$/\$\$file \$\(distdir\)/\$\$file(.*)'; |
if ($MakefileData =~ m/\n$lookup\n/) { |
substituteLine($lookup, "$1cp -pr \$\$d/\$\$file \$(distdir)/\$\$file$2"); |
} |
# Always update the Makefile.in |
updateMakefile (); |
return; |
} |
#----------------------------------------------------------------------------- |
# Beware: This procedure is not complete. E.g. it also parses lines |
# containing a '=' in rules (for instance setting shell vars). For our |
# usage this us enough, though. |
sub read_variables () |
{ |
while ($MakefileData =~ /\n\s*(\S+)\s*=([^\n]*)/g) { |
$varcontent{$1} = $2; |
} |
} |
# Check to see whether we should process this make file. |
# This is where we look for tags that we need to process. |
# A small amount of initialising on the tags is also done here. |
# And of course we open and/or create the needed make files. |
sub initialise () |
{ |
if (! -r "Makefile.am") { |
print STDOUT "found Makefile.in without Makefile.am\n" if ($verbose); |
return 0; |
} |
# Checking for files to process... |
open (FILEIN, $makefile) || die "Can't open $makefileDir/$makefile: $!\n"; |
# perl bug in 5.8.0: in utf8 mode it badly screws up |
binmode(FILEIN, ":bytes") if ($] >= 5.008); |
# Read the file |
# stat(FILEIN)[7] might look more elegant, but is slower as it |
# requires stat'ing the file |
seek(FILEIN, 0, 2); |
my $fsize = tell(FILEIN); |
seek(FILEIN, 0, 0); |
read FILEIN, $MakefileData, $fsize; |
close FILEIN; |
print "DOS CRLF within $makefileDir/$makefile!\n" if($MakefileData =~ y/\r//d); |
# Remove the line continuations, but keep them marked |
# Note: we lose the trailing spaces but that's ok. |
# Don't mangle line-leading spaces (usually tabs) |
# since they're important. |
$MakefileData =~ s/\\\s*\n/\034/g; |
# If we've processed the file before... |
restoreMakefile () if ($MakefileData =~ /$progId/); |
foreach $dir (@foreignfiles) { |
if (substr($makefileDir,0,length($dir)) eq $dir) { |
return 0; |
} |
} |
%kdeopts = (); |
$kdeopts{"foreign"} = 0; |
$kdeopts{"qtonly"} = 0; |
$kdeopts{"noautodist"} = 0; |
$kdeopts{"foreign-libtool"} = $foreign_libtool; |
$kdeopts{"nofinal"} = !$use_final; # default |
read_variables(); |
if ($MakefileData =~ /\nKDE_OPTIONS\s*=[ \t]*([^\n]*)\n/) { |
my $kde_options_str = $1; |
local @kde_options = split(/[\034\s]+/, $kde_options_str); |
if (grep(/^foreign$/, @kde_options)) { |
push(@foreignfiles, $makefileDir . "/"); |
return 0; # don't touch me |
} |
for $opt (@kde_options) { |
if (!defined $kdeopts{$opt}) { |
print STDERR "Warning: unknown option $opt in $printname\n"; |
} else { |
$kdeopts{$opt} = 1; |
} |
} |
} |
# Look for the tags that mean we should process this file. |
$metasourceTags = 0; |
$metasourceTags++ while ($MakefileData =~ /\n[^=\#]*METASOURCES\s*=/g); |
my $pofileTag = 0; |
$pofileTag++ while ($MakefileData =~ /\nPOFILES\s*=/g); |
if ($pofileTag > 1) |
{ |
print STDERR "Error: Only one POFILES tag allowed\n"; |
$errorflag = 1; |
} |
while ($MakefileData =~ /\n\.SUFFIXES:([^\n]+)\n/g) { |
my $suffixes_str = $1; |
my @list=split(' ', $suffixes_str); |
foreach $ext (@list) { |
if ($ext =~ /^\.$cppExt$/) { |
$cxxsuffix = $ext; |
$cxxsuffix =~ s/\.//g; |
print STDOUT "will use suffix $cxxsuffix\n" if ($verbose); |
last; |
} |
} |
} |
tag_KDEINIT(); |
while ($MakefileData =~ /\n(\S*)_OBJECTS\s*=[\034 \t]*([^\n]*)\n/g) { |
my $program = $1; |
my $objs = $2; # safe them |
my $ocv = 0; |
my @objlist = split(/[\034\s]+/, $objs); |
foreach $obj (@objlist) { |
if ($obj =~ /(\S*)\$\((\S+)\)/ ) { |
my $pre = $1; |
my $variable = $2; |
if ($pre eq '' && exists($varcontent{$variable})) { |
my @addlist = split(/[\034\s]+/, $varcontent{$variable}); |
push(@objlist, @addlist); |
} elsif ($variable !~ 'OBJEXT' && $variable !~ /am__objects_\d+/ ) { |
$ocv = 1; |
} |
} |
} |
next if ($ocv); |
next if ($program =~ /^am_libkdeinit_/); |
$program =~ s/^am_// if ($program =~ /^am_/); |
my $sourceprogram = $program; |
$sourceprogram =~ s/\@am_/\@/ if($sourceprogram =~ /^.*\@am_.+/); |
print STDOUT "found program $program\n" if ($verbose); |
push(@programs, $program); |
$realObjs{$program} = $objs; |
if ($MakefileData =~ /\n$sourceprogram\_SOURCES\s*=[ \t]*(.*)\n/) { |
$sources{$program} = $1; |
} |
else { |
$sources{$program} = ""; |
print STDERR "found program with no _SOURCES: $program\n"; |
} |
my $realprogram = $program; |
$realprogram =~ s/_/./g; # unmask to regexp |
if ($MakefileData =~ /\n($realprogram)(\$\(EXEEXT\)?)?:.*\$\($program\_OBJECTS\)/) { |
$realname{$program} = $1; |
} else { |
# not standard Makefile - nothing to worry about |
$realname{$program} = ""; |
} |
} |
my $lookup = 'DEPDIR\s*=.*'; |
if ($MakefileData !~ /\n$lookup/) { |
$lookup = 'bindir\s*=[ \t]*.*'; |
substituteLine($lookup, "DEPDIR = .deps\n$1") if ($MakefileData =~ /\n($lookup)/); |
} |
my @marks = ('MAINTAINERCLEANFILES', 'CLEANFILES', 'DISTCLEANFILES'); |
foreach $mark (@marks) { |
while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) { |
my $clean_str = $2; |
foreach $file (split('[\034\s]+', $clean_str)) { |
$file =~ s/\.\///; |
push(@cleanfiles, $file); |
} |
} |
} |
my $localTag = 0; |
$localTag++ if ($MakefileData =~ /\ninstall-\S+-local:/); |
return (!$errorflag); |
} |
#----------------------------------------------------------------------------- |
# Gets the list of user defined directories - relative to $srcdir - where |
# header files could be located. |
sub tag_META_INCLUDES () |
{ |
my $lookup = '[^=\n]*META_INCLUDES\s*=[ \t]*(.*)'; |
return 1 if ($MakefileData !~ /($lookup)\n/); |
print STDOUT "META_INCLUDE processing <$1>\n" if ($verbose); |
my $headerStr = $2; |
removeLine ($lookup, $1); |
my @headerlist = split(/[\034\s]+/, $headerStr); |
foreach $dir (@headerlist) |
{ |
$dir =~ s#\$\(srcdir\)#.#; |
if (! -d $dir) |
{ |
print STDERR "Warning: $dir can't be found. ", |
"Must be a relative path to \$(srcdir)\n"; |
} |
else |
{ |
push (@headerdirs, $dir); |
} |
} |
return 0; |
} |
#----------------------------------------------------------------------------- |
sub tag_FINAL() |
{ |
my @final_names = (); |
foreach $program (@programs) { |
if ($sources{$program} =~ /\(/) { |
print STDOUT "found ( in $program\_SOURCES. skipping\n" if ($verbose); |
next; |
} |
my $mocs = ""; # Moc files (in this program) |
my $moc_cpp_added = 0; # If we added some .moc.cpp files, due to |
# no other .cpp file including the .moc one. |
my @progsources = split(/[\034\s]+/, $sources{$program}); |
my %shash = (); |
@shash{@progsources} = 1; # we are only interested in the existence |
my %sourcelist = (); |
my %extradeps = (); |
foreach $source (@progsources) { |
my $suffix = $source; |
$suffix =~ s/^.*\.([^\.]+)$/$1/; |
$sourcelist{$suffix} .= "$source "; |
} |
foreach my $mocFile (keys (%globalmocs)) |
{ |
my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3); |
if (defined ($cppFile)) { |
$mocs .= " $mocFile.moc" if exists $shash{$cppFile}; |
} else { |
$sourcelist{$cxxsuffix} .= "$mocFile.moc.$cxxsuffix "; |
$moc_cpp_added = 1; |
} |
} |
# scan for extra given dependencies and add them to our target |
while ($MakefileData =~ /\n\s*(\S+)\.(?:lo|o)\s*:([^\n]*)/g) { |
$extradeps{$1} = $2; |
} |
foreach $suffix (keys %sourcelist) { |
# See if this file contains c++ code. (i.e., just check the file's suffix against c++ extensions) |
my $suffix_is_cxx = 0; |
if($suffix =~ /($cppExt)$/) { |
$cxxsuffix = $1; |
$suffix_is_cxx = 1; |
} |
my $mocfiles_in = ($suffix eq $cxxsuffix) && $moc_cpp_added; |
my @sourcelist = split(/[\034\s]+/, $sourcelist{$suffix}); |
if ((@sourcelist == 1 && !$mocfiles_in) || $suffix_is_cxx != 1 ) { |
# we support IDL on our own |
if ($suffix eq "skel" || $suffix =~ /^stub/ |
|| $suffix =~ /^signals/ # obsolete, remove in KDE-4 |
|| $suffix eq "h" || $suffix eq "ui" |
|| $suffix eq "kcfgc" ) { |
next; |
} |
foreach $file (@sourcelist) { |
$file =~ s/\Q$suffix\E$//; |
$finalObjs{$program} .= $file; |
if ($program =~ /_la$/) { |
$finalObjs{$program} .= "lo "; |
} else { |
$finalObjs{$program} .= "o "; |
} |
} |
next; # suffix |
} |
my $source_deps = ""; |
foreach $source (@sourcelist) { |
if (-f $source) { |
$source_deps .= " \$(srcdir)/$source"; |
} else { |
$source_deps .= " $source"; |
} |
my $plainsource = $source; |
$plainsource =~ s/\.$cppExt$//; |
$source_deps .= " " . $extradeps{$plainsource} if (exists($extradeps{$plainsource})); |
} |
$handling = "$program.all_$suffix.$suffix: \$(srcdir)/Makefile.in" . $source_deps . " " . join(' ', $mocs) . "\n"; |
$handling .= "\t\@echo 'creating $program.all_$suffix.$suffix ...'; \\\n"; |
$handling .= "\trm -f $program.all_$suffix.files $program.all_$suffix.final; \\\n"; |
$handling .= "\techo \"#define KDE_USE_FINAL 1\" >> $program.all_$suffix.final; \\\n"; |
$handling .= "\tfor file in " . $sourcelist{$suffix} . "; do \\\n"; |
$handling .= "\t echo \"#include \\\"\$\$file\\\"\" >> $program.all_$suffix.files; \\\n"; |
$handling .= "\t test ! -f \$\(srcdir\)/\$\$file || egrep '^#pragma +implementation' \$\(srcdir\)/\$\$file >> $program.all_$suffix.final; \\\n"; |
$handling .= "\tdone; \\\n"; |
$handling .= "\tcat $program.all_$suffix.final $program.all_$suffix.files > $program.all_$suffix.$suffix; \\\n"; |
$handling .= "\trm -f $program.all_$suffix.final $program.all_$suffix.files\n"; |
appendLines($handling); |
push(@final_names, "$program.all_$suffix.$suffix"); |
my $finalObj = "$program.all_$suffix."; |
if ($program =~ /_la$/) { |
$finalObj .= "lo"; |
} else { |
$finalObj .= "o"; |
} |
$finalObjs{$program} .= $finalObj . " "; |
} |
} |
if (!$kdeopts{"nofinal"} && @final_names >= 1) { |
# add clean-final target |
my $lines = "$cleantarget-final:\n"; |
$lines .= "\t-rm -f " . join(' ', @final_names) . "\n" if (@final_names); |
appendLines($lines); |
$target_adds{"$cleantarget-am"} .= "$cleantarget-final "; |
foreach $finalfile (@final_names) { |
$finalfile =~ s/\.[^.]*$/.P/; |
$dep_finals .= " \$(DEPDIR)/$finalfile"; |
} |
} |
} |
sub tag_KDEINIT() |
{ |
my @progs = (); |
my $ltlibs = ""; |
my $lookup = 'kdeinit_LTLIBRARIES\s*=[ \t]*(.*)'; |
if ($MakefileData =~ m/\n$lookup/) { |
@kdeinits = split(/[\034\s]+/, $1); |
my $lines = ""; |
foreach my $kdeinit (@kdeinits) { |
if ($kdeinit =~ m/\.la$/) { |
$kdeinit =~ s/\.la$//; |
push(@progs, $kdeinit); |
$lines .= "\n${kdeinit}.la.$cxxsuffix:\n"; |
$lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' > ${kdeinit}.la.$cxxsuffix; \\\n"; |
$lines .= "\techo 'int main(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}.la.$cxxsuffix\n"; |
$lines .= "\n${kdeinit}_dummy.$cxxsuffix:\n"; |
$lines .= "\techo '#include <kdemacros.h>' > ${kdeinit}_dummy.$cxxsuffix; \\\n"; |
$lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' >> ${kdeinit}_dummy.$cxxsuffix; \\\n"; |
$lines .= "\techo 'extern \"C\" KDE_EXPORT int kdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}_dummy.$cxxsuffix\n"; |
push(@cleanfiles, "${kdeinit}.la.$cxxsuffix"); |
push(@cleanfiles, "${kdeinit}_dummy.$cxxsuffix"); |
# add dependency |
$dep_files .= " \$(DEPDIR)/${kdeinit}.la.Po" if($dep_files !~/${kdeinit}.la.Po/ ); |
$dep_files .= " \$(DEPDIR)/${kdeinit}_dummy.Plo" if($dep_files !~/${kdeinit}_dummy.Plo/ ); |
# make library |
$lookup = $kdeinit . '_la_LIBADD\s*=[ \t]*(.*)'; |
if($MakefileData =~ m/\n$lookup/) { |
my $libadd = $1; |
substituteLine($lookup, "${kdeinit}_la_LIBADD = libkdeinit_${kdeinit}.la"); |
appendLines("libkdeinit_${kdeinit}_la_LIBADD = $libadd\n"); |
} |
appendLines("libkdeinit_${kdeinit}_la_LDFLAGS = -no-undefined -avoid-version \$(all_libraries)\n"); |
# add library dependencies |
$lookup = $kdeinit . '_la_DEPENDENCIES\s*=[ \t]*(.*)'; |
if($MakefileData =~ m/\n$lookup/) { |
my $libdeps = $1; |
substituteLine($lookup, "${kdeinit}_la_DEPENDENCIES = libkdeinit_${kdeinit}.la"); |
appendLines("libkdeinit_${kdeinit}_la_DEPENDENCIES = $libdeps\n"); |
} |
# make library objects |
$lookup = "am_${kdeinit}_la_OBJECTS" . '\s*=[ \t]*(.*)'; |
if($MakefileData =~ m/\n$lookup/) { |
my $libobjects = $1; |
substituteLine($lookup, "am_${kdeinit}_la_OBJECTS = ${kdeinit}_dummy.lo"); |
appendLines("am_libkdeinit_${kdeinit}_la_OBJECTS = $libobjects\n"); |
my $prog = "libkdeinit_${kdeinit}_la"; |
push(@programs, $prog); |
$realObjs{$prog} = $libobjects; |
$realname{$prog} = "libkdeinit_${kdeinit}.la"; |
} |
$target_adds{"libkdeinit_${kdeinit}.la"} = "\$(libkdeinit_${kdeinit}_la_OBJECTS) \$(libkdeinit_${kdeinit}_la_DEPENDENCIES)\n" . |
"\t\$(CXXLINK) -rpath \$(libdir) \$(libkdeinit_${kdeinit}_la_LDFLAGS) ". |
"\$(libkdeinit_${kdeinit}_la_OBJECTS) " . |
"\$(libkdeinit_${kdeinit}_la_LIBADD) " . |
"\$(LIBS)\n"; |
# make libkdeinit sources |
$lookup = $kdeinit . '_la_SOURCES\s*=[ \t]*(.*)'; |
if($MakefileData =~ m/\n$lookup/) { |
my $srces = $1; |
$sources_changed{"libkdeinit_${kdeinit}_la"} = 1; |
$sources{"libkdeinit_${kdeinit}_la"} = $srces; |
} |
# make libkdeinit metasources |
$lookup = $kdeinit . '_la_METASOURCES\s*=[ \t]*(.*)'; |
substituteLine($lookup, "libkdeinit_${kdeinit}_la_METASOURCES = $1") |
if($MakefileData =~ m/\n$lookup/); |
=cut |
# make binary sources |
$lookup = $kdeinit. '_SOURCES\s*=[ \t]*(.*)'; |
if($MakefileData =~ m/\n$lookup/) { |
substituteLine($lookup, "${kdeinit}_SOURCES = ${kdeinit}.la.$cxxsuffix"); |
$lookup = 'SOURCES\s*=[ \t]*(.*)'; |
if($MakefileData =~ m/\n$lookup/) { |
my $srces = $1; |
$srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/; |
$srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/; |
substituteLine($lookup, "SOURCES = $srces"); |
} |
$lookup = 'DIST_SOURCES\s*=[ \t](.*)'; |
if($MakefileData =~ m/\n$lookup/) { |
my $srces = $1; |
$srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/; |
$srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/; |
substituteLine($lookup, "DIST_SOURCES = $srces"); |
} |
} |
# make binary objects / libs |
$lookup = $kdeinit . '_OBJECTS\s*=[ \t]*.*'; |
if($MakefileData =~ m/\n$lookup/) { |
$realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)"; |
substituteLine("${kdeinit}_LDFLAGS\\s*=.*", "${kdeinit}_LDFLAGS = \$(all_libraries)"); |
substituteLine("${kdeinit}_LDADD\\s*=.*", "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la"); |
substituteLine("${kdeinit}_DEPENDENCIES\\s*=.*", "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la"); |
} |
=cut |
# add binary |
push(@programs, $kdeinit); |
$realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)"; |
$realname{$kdeinit} = $kdeinit; |
$sources{$kdeinit} = "${kdeinit}.la.$cxxsuffix"; |
$lines .= "${kdeinit}_LDFLAGS = \$(KDE_RPATH) -no-undefined \$(all_libraries)\n"; |
$lines .= "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la\n"; |
$lines .= "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la\n"; |
$target_adds{"${kdeinit}\$(EXEEXT)"} = |
"\$(${kdeinit}_OBJECTS) \$(${kdeinit}_DEPENDENCIES)\n" . |
"\t\@rm -f ${kdeinit}\$(EXEEXT)\n" . |
"\t\$(CXXLINK) \$(${kdeinit}_LDFLAGS) \$(${kdeinit}_OBJECTS) \$(${kdeinit}_LDADD) \$(LIBS)\n"; |
$ltlibs .= " libkdeinit_${kdeinit}.la"; |
} |
} |
appendLines($lines); |
# add libkdeinit target |
$lookup = 'lib_LTLIBRARIES\s*=[ \t]*(.*)'; |
if($MakefileData =~ m/\n$lookup/) { |
substituteLine($lookup, "lib_LTLIBRARIES = $1 $ltlibs"); |
} |
else { |
print STDERR |
"Error: lib_LTLIBRARIES missing in $printname (required for kdeinit_LTLIBRARIES).\n"; |
$errorflag = 1; |
} |
} |
if($#progs >= 0) { |
if($MakefileData !~ m/\nbin_PROGRAMS\s*=/) { |
print STDERR "Error: bin_PROGRAMS missing in $printname (required for kdeinit_LTLIBRARIES).\n"; |
$errorflag = 1; |
} |
else { |
# add our new progs to SOURCES, DIST_SOURCES and bin_PROGRAMS |
my $progsources = ""; |
my $progexes = ""; |
foreach my $p (@progs) { |
$progsources .= "\$(${p}_SOURCES) "; |
$progexes .= "${p}\$(EXEEXT) "; |
} |
$lookup = 'SOURCES\s*=[ \t]*(.*)'; |
if($MakefileData =~ /\n$lookup/) { |
substituteLine($lookup, "SOURCES = $1 $progsources"); |
} |
$lookup = 'DIST_SOURCES\s*=[ \t]*(.*)'; |
if($MakefileData =~ /\n$lookup/) { |
substituteLine($lookup, "DIST_SOURCES = $1 $progsources"); |
} |
# bin_PROGRAMS is complicated, as it exists twice, so we do a little |
# magic trick here |
$lookup = 'PROGRAMS\s*=[ \t]*(.*)'; |
if ($MakefileData =~ /\n$lookup/) { |
substituteLine($lookup, "bin_PROGRAMS += $progexes\nPROGRAMS = $1"); |
} |
} |
} |
} |
#----------------------------------------------------------------------------- |
sub tag_COMPILE_FIRST() |
{ |
foreach $program (@programs) { |
my $lookup = "$program" . '_COMPILE_FIRST\s*=[ \t]*(.*)'; |
if ($MakefileData =~ m/\n$lookup\n/) { |
my $compilefirst_str = $1; |
my @compilefirst = split(/[\034\s]+/, $compilefirst_str); |
my @progsources = split(/[\034\s]+/, $sources{$program}); |
my %donesources = (); |
foreach $source (@progsources) { |
my @deps = (); |
my $sdeps = ""; |
if (-f $source) { |
$sdeps = "\$(srcdir)/$source"; |
} else { |
$sdeps = "$source"; |
} |
foreach $depend (@compilefirst) { |
next if ($source eq $depend); |
# avoid cyclic dependencies |
next if defined($donesources{$depend}); |
push @deps, $depend; |
} |
$target_adds{$sdeps} .= join(' ', @deps) . ' ' if (@deps); |
$donesources{$source} = 1; |
} |
} |
} |
} |
#----------------------------------------------------------------------------- |
# Organises the list of headers that we'll use to produce moc files |
# from. |
sub tag_METASOURCES () |
{ |
local @newObs = (); # here we add to create object files |
local @depend = (); # here we add to create moc files |
local $mocExt = ".moc"; |
local %mocFiles = (); |
my $line = ""; |
my $postEqual = ""; |
my $lookup; |
my $found = ""; |
if ($metasourceTags > 1) { |
$lookup = $program . '_METASOURCES\s*=\s*(.*)'; |
return 1 if ($MakefileData !~ /\n($lookup)\n/); |
$found = $1; |
} else { |
$lookup = $program . '_METASOURCES\s*=\s*(.*)'; |
if ($MakefileData !~ /\n($lookup)\n/) { |
$lookup = 'METASOURCES\s*=\s*(.*)'; |
return 1 if ($MakefileData !~ /\n($lookup)\n/); |
$found = $1; |
$metasourceTags = 0; # we can use the general target only once |
} else { |
$found = $1; |
} |
} |
print STDOUT "METASOURCE processing <$found>)\n" if ($verbose); |
$postEqual = $found; |
$postEqual =~ s/[^=]*=//; |
removeLine ($lookup, $found); |
# Always find the header files that could be used to "moc" |
return 1 if (findMocCandidates ()); |
if ($postEqual =~ /AUTO\s*(\S*)|USE_AUTOMOC\s*(\S*)/) |
{ |
print STDERR "$printname: the argument for AUTO|USE_AUTOMOC is obsolete" if ($+); |
$mocExt = ".moc.$cxxsuffix"; |
$haveAutomocTag = 1; |
} |
else |
{ |
# Not automoc so read the list of files supplied which |
# should be .moc files. |
$postEqual =~ tr/\034/ /; |
# prune out extra headers - This also checks to make sure that |
# the list is valid. |
pruneMocCandidates ($postEqual); |
} |
checkMocCandidates (); |
if (@newObs) { |
my $ext = ($program =~ /_la$/) ? ".moc.lo " : ".moc.o "; |
$realObjs{$program} .= "\034" . join ($ext, @newObs) . $ext; |
$dependmocs{$program} = join (".moc.$cxxsuffix " , @newObs) . ".moc.$cxxsuffix"; |
foreach $file (@newObs) { |
$dep_files .= " \$(DEPDIR)/$file.moc.P" if($dep_files !~/$file.moc.P/); |
} |
} |
if (@depend) { |
$dependmocs{$program} .= " "; |
$dependmocs{$program} .= join('.moc ', @depend) . ".moc"; |
$dependmocs{$program} .= " "; |
} |
addMocRules (); |
@globalmocs{keys %mocFiles}=values %mocFiles; |
} |
#----------------------------------------------------------------------------- |
# Returns 0 if the line was processed - 1 otherwise. |
# Errors are logged in the global $errorflags |
sub tag_AUTOMAKE () |
{ |
my $lookup = '.*cd \$\(top_srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\)(.*)'; |
return 1 if ($MakefileData !~ /\n($lookup)\n/); |
print STDOUT "AUTOMAKE processing <$1>\n" if ($verbose); |
my $newLine = $1."\n\tcd \$(top_srcdir) && perl $thisProg $printname"; |
# automake 1.8.x adds another automake call. *sigh* |
$newLine =~ s/;([\034\s]+cd\s+\$\(srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\).*)[\034\s]+\&\&[\034\s]+exit[\034\s]+0;([\034\s]+exit\s+1)/; \034 ( $1 ) || exit 1; echo \' cd \$(top_srcdir) && perl $thisProg \'; cd \$(top_srcdir) && perl $thisProg && exit 0; $2/; |
substituteLine ($lookup, $newLine); |
$automkCall = $1; |
$lookup = '.*cd \$\(srcdir\)\s+&&[\034\s]+\$\(AUTOCONF\)(.*)'; |
if ($MakefileData =~ /\n($lookup)\n/) { |
$newLine = "\tcd \$(srcdir) && rm -f configure\n"; |
$newLine .= "\tcd \$(top_srcdir) && \$(MAKE) -f admin/Makefile.common configure"; |
substituteLine ($lookup, $newLine); |
} |
return 0; |
} |
#----------------------------------------------------------------------------- |
sub handle_TOPLEVEL() |
{ |
my $pofiles = ""; |
my @restfiles = (); |
opendir (THISDIR, "."); |
foreach $entry (readdir(THISDIR)) { |
next if (-d $entry); |
next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry =~ /.gmo$/); |
if ($entry =~ /\.po$/) { |
next; |
} |
push(@restfiles, $entry); |
} |
closedir (THISDIR); |
if (@restfiles) { |
$target_adds{"install-data-am"} .= "install-nls-files "; |
$lines = "install-nls-files:\n"; |
$lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$kdelang\n"; |
for $file (@restfiles) { |
$lines .= "\t\$(INSTALL_DATA) \$\(srcdir\)/$file \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n"; |
} |
$target_adds{"uninstall"} .= "uninstall-nls-files "; |
$lines .= "uninstall-nls-files:\n"; |
for $file (@restfiles) { |
$lines .= "\t-rm -f \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n"; |
} |
appendLines($lines); |
} |
return 0; |
} |
#----------------------------------------------------------------------------- |
sub tag_SUBDIRS () |
{ |
if ($MakefileData !~ /\nSUBDIRS\s*=\s*\$\(AUTODIRS\)\s*\n/) { |
return 1; |
} |
my $subdirs = "."; |
opendir (THISDIR, "."); |
foreach $entry (readdir(THISDIR)) { |
next if ($entry eq "CVS" || $entry =~ /^\./); |
if (-d $entry && -f $entry . "/Makefile.am") { |
$subdirs .= " $entry"; |
next; |
} |
} |
closedir (THISDIR); |
substituteLine('SUBDIRS\s*=.*', "SUBDIRS =$subdirs"); |
return 0; |
} |
sub tag_IDLFILES () |
{ |
my @psources = split(/[\034\s]+/, $sources{$program}); |
my $dep_lines = ""; |
my @cppFiles = (); |
foreach $source (@psources) { |
my $skel = ($source =~ m/\.skel$/); |
my $stub = ($source =~ m/\.stub$/); |
my $signals = ($source =~ m/\.signals$/); # obsolete, remove in KDE-4 |
if ($stub || $skel || $signals) { |
my $qs = quotemeta($source); |
$sources{$program} =~ s/$qs//; |
$sources_changed{$program} = 1; |
$source =~ s/\.(stub|skel|signals)$//; |
my $sourcename; |
if ($skel) { |
$sourcename = "$source\_skel"; |
} elsif ($stub) { |
$sourcename = "$source\_stub"; |
} else { |
$sourcename = "$source\_signals"; |
} |
my $sourcedir = ''; |
if (-f "$makefileDir/$source.h") { |
$sourcedir = '$(srcdir)/'; |
} else { |
if ($MakefileData =~ /\n$source\_DIR\s*=\s*(\S+)\n/) { |
$sourcedir = $1; |
$sourcedir .= "/" if ($sourcedir !~ /\/$/); |
} |
} |
if ($allidls !~ /$source\_kidl/) { |
$use_ng = ($MakefileData =~ /\n$source\_DCOPIDLNG\s*=\s*(\S+)\n/); |
$dcopidl = $use_ng ? "KDECONFIG=\"\$(KDECONFIG)\" \$(DCOPIDLNG)" : "\$(DCOPIDL)"; |
$dep_lines .= "$source.kidl: $sourcedir$source.h \$(DCOP_DEPENDENCIES)\n"; |
$dep_lines .= "\t$dcopidl $sourcedir$source.h > $source.kidl || ( rm -f $source.kidl ; false )\n"; |
$allidls .= $source . "_kidl "; |
} |
if ($allidls !~ /$sourcename/) { |
$dep_lines_tmp = ""; |
if ($skel) { |
$dep_lines .= "$sourcename.$cxxsuffix: $source.kidl\n"; |
$dep_lines .= "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-stub $source.kidl\n"; |
} elsif ($stub) { |
$dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-skel $source.kidl\n"; |
} else { # signals - obsolete, remove in KDE 4 |
$dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-stub --no-skel $source.kidl\n"; |
} |
if ($stub || $signals) { |
$target_adds{"$sourcename.$cxxsuffix"} .= "$sourcename.h "; |
$dep_lines .= "$sourcename.h: $source.kidl\n"; |
$dep_lines .= $dep_lines_tmp; |
} |
$allidls .= $sourcename . " "; |
} |
$idlfiles{$program} .= $sourcename . " "; |
if ($program =~ /_la$/) { |
$realObjs{$program} .= " $sourcename.lo"; |
} else { |
$realObjs{$program} .= " $sourcename.\$(OBJEXT)"; |
} |
$sources{$program} .= " $sourcename.$cxxsuffix"; |
$sources_changed{$program} = 1; |
$important{$program} .= "$sourcename.h " if (!$skel); |
$idl_output .= "\\\n\t$sourcename.$cxxsuffix $sourcename.h $source.kidl "; |
push(@cleanfiles, "$sourcename.$cxxsuffix"); |
push(@cleanfiles, "$sourcename.h"); |
push(@cleanfiles, "$sourcename.kidl"); |
$dep_files .= " \$(DEPDIR)/$sourcename.P" if ($dep_files !~/$sourcename.P/); |
} |
} |
if ($dep_lines) { |
appendLines($dep_lines); |
} |
if (0) { |
my $lookup = "($program)"; |
$lookup .= '(|\$\(EXEEXT\))'; |
$lookup =~ s/\_/./g; |
$lookup .= ":(.*..$program\_OBJECTS..*)"; |
# $lookup = quotemeta($lookup); |
if ($MakefileData =~ /\n$lookup\n/) { |
my $line = "$1$2: "; |
foreach $file (split(' ', $idlfiles{$program})) { |
$line .= "$file.$cxxsuffix "; |
} |
$line .= $3; |
substituteLine($lookup, $line); |
} else { |
print STDERR "no built dependency found $lookup\n"; |
} |
} |
} |
sub tag_UIFILES () |
{ |
my @psources = split(/[\034\s]+/, $sources{$program}); |
my @depFiles = (); |
foreach $source (@psources) { |
if ($source =~ m/\.ui$/) { |
print STDERR "adding UI file $source\n" if ($verbose); |
my $qs = quotemeta($source); |
$sources{$program} =~ s/$qs//; |
$sources_changed{$program} = 1; |
$source =~ s/\.ui$//; |
my $sourcedir = ''; |
if (-f "$makefileDir/$source.ui") { |
$sourcedir = '$(srcdir)/'; |
} |
if (!$uiFiles{$source}) { |
my $dep_lines = "$source.$cxxsuffix: $sourcedir$source.ui $source.h $source.moc\n"; |
$dep_lines .= "\trm -f $source.$cxxsuffix\n"; |
if (!$kdeopts{"qtonly"}) { |
$dep_lines .= "\techo '#include <kdialog.h>' > $source.$cxxsuffix\n"; |
$dep_lines .= "\techo '#include <klocale.h>' >> $source.$cxxsuffix\n"; |
my ($mangled_source) = $source; |
$mangled_source =~ s/[^A-Za-z0-9]/_/g; # get rid of garbage |
$dep_lines .= "\t\$(UIC) -tr \${UIC_TR} -i $source.h $sourcedir$source.ui > $source.$cxxsuffix.temp ; ret=\$\$?; \\\n"; |
$dep_lines .= "\t\$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | \$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | \$(PERL) -pe \"s,image([0-9][0-9]*)_data,img\\\$\$1_" . $mangled_source . ",g\" | \$(PERL) -pe \"s,: QWizard\\(,: KWizard(,g\" >> $source.$cxxsuffix ;\\\n"; |
$dep_lines .= "\trm -f $source.$cxxsuffix.temp ;\\\n"; |
} else { |
$dep_lines .= "\t\$(UIC) -i $source.h $sourcedir$source.ui > $source.$cxxsuffix; ret=\$\$?; \\\n"; |
} |
$dep_lines .= "\tif test \"\$\$ret\" = 0; then echo '#include \"$source.moc\"' >> $source.$cxxsuffix; else rm -f $source.$cxxsuffix ; exit \$\$ret ; fi\n\n"; |
$dep_lines .= "$source.h: $sourcedir$source.ui\n"; |
$dep_lines .= "\trm -rf $source.h;\n"; |
if (!$kdeopts{"qtonly"}) { |
$dep_lines .= "\t\$(UIC) $sourcedir$source.ui | \$(PERL) -pi -e \"s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g\" >> $source.h ;\n"; |
} else { |
$dep_lines .= "\t\$(UIC) -o $source.h $sourcedir$source.ui\n"; |
} |
$dep_lines .= "$source.moc: $source.h\n"; |
$dep_lines .= "\t\$(MOC) $source.h -o $source.moc\n"; |
$rule_adds{"$source.$cxxsuffix"} = $dep_lines; |
$uiFiles{$source} = 1; |
$dependmocs{$program} .= " $source.moc"; |
$globalmocs{$source} = "\035$source.h\035$source.cpp"; |
} |
if ($program =~ /_la$/) { |
$realObjs{$program} .= " $source.lo"; |
} else { |
$realObjs{$program} .= " $source.\$(OBJEXT)"; |
} |
$sources{$program} .= " $source.$cxxsuffix"; |
$sources_changed{$program} = 1; |
$important{$program} .= "$source.h "; |
$ui_output .= "\\\n\t$source.$cxxsuffix $source.h $source.moc "; |
push(@cleanfiles, "$source.$cxxsuffix"); |
push(@cleanfiles, "$source.h"); |
push(@cleanfiles, "$source.moc"); |
$dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ ); |
} |
} |
} |
sub tag_KCFGFILES () |
{ |
my @psources = split(/[\034\s]+/, $sources{$program}); |
my @depFiles = (); |
foreach $source (@psources) { |
if ($source =~ m/\.kcfgc$/) { |
print STDERR "adding KCFG file $source\n" if ($verbose); |
my $qs = quotemeta($source); |
$sources{$program} =~ s/$qs//; |
$sources_changed{$program} = 1; |
$source =~ s/\.kcfgc$//; |
my $sourcedir = ''; |
if (-f "$makefileDir/$source.kcfgc") { |
$sourcedir = '$(srcdir)/'; |
} |
if (!$kcfgFiles{$source}) { |
$kcfg = "$program.kcfg"; |
findKcfgFile("$source.kcfgc"); |
my $fixsuffix = ""; |
$fixsuffix = "else mv $source.cpp $source.$cxxsuffix ; " |
unless "cpp" eq $cxxsuffix; |
my $dep_lines = "$source.$cxxsuffix: $source.h\n"; |
$dep_lines .= "$source.h: $sourcedir$kcfg $sourcedir$source.kcfgc \$(KCFG_DEPENDENCIES)\n"; |
$dep_lines .= "\t\$(KCONFIG_COMPILER) $sourcedir$kcfg $sourcedir$source.kcfgc; ret=\$\$?; \\\n"; |
$dep_lines .= "\tif test \"\$\$ret\" != 0; then rm -f $source.h ; exit \$\$ret ; $fixsuffix fi\n\n"; |
$rule_adds{"$source.$cxxsuffix"} = $dep_lines; |
$kcfgFiles{$source} = 1; |
} |
if ($program =~ /_la$/) { |
$realObjs{$program} .= " $source.lo"; |
} else { |
$realObjs{$program} .= " $source.\$(OBJEXT)"; |
} |
$sources{$program} .= " $source.$cxxsuffix"; |
$sources_changed{$program} = 1; |
$important{$program} .= "$source.h "; |
$kcfg_output .= "\\\n\t$source.$cxxsuffix $source.h "; |
push(@cleanfiles, "$source.$cxxsuffix"); |
push(@cleanfiles, "$source.h"); |
$dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ ); |
} |
} |
} |
sub tag_ICON() |
{ |
my $lookup = '([^\s]*)_ICON\s*=[ \t]*(.*)'; |
my $install = ""; |
my $uninstall = ""; |
while ($MakefileData =~ /\n$lookup/g) { |
my $destdir; |
if ($1 eq "KDE") { |
$destdir = "kde_icondir"; |
} else { |
$destdir = $1 . "dir"; |
} |
my $iconauto = ($2 =~ /AUTO\s*$/); |
my @appnames = (); |
if ( ! $iconauto ) { |
my $appicon_str = $2; |
my @_appnames = split(" ", $appicon_str); |
print STDOUT "KDE_ICON processing <@_appnames>\n" if ($verbose); |
foreach $appname (@_appnames) { |
push(@appnames, quotemeta($appname)); |
} |
} else { |
print STDOUT "KDE_ICON processing <AUTO>\n" if ($verbose); |
} |
my @files = (); |
opendir (THISDIR, "."); |
foreach $entry (readdir(THISDIR)) { |
next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/); |
next if (! -f $entry); |
if ( $iconauto ) |
{ |
push(@files, $entry) |
if ($entry =~ /\.xpm/ || $entry =~ /\.png/ || $entry =~ /\.mng/ || $entry =~ /\.svg/); |
} else { |
foreach $appname (@appnames) { |
push(@files, $entry) |
if ($entry =~ /-$appname\.xpm/ || $entry =~ /-$appname\.png/ || $entry =~ /-$appname\.mng/ || $entry =~ /-$appname\.svg/); |
} |
} |
} |
closedir (THISDIR); |
my %directories = (); |
foreach $file (@files) { |
my $newfile = $file; |
my $prefix = $file; |
$prefix =~ s/\.(png|xpm|mng|svg|svgz)$//; |
my $appname = $prefix; |
$appname =~ s/^[^-]+-// if ($appname =~ /-/) ; |
$appname =~ s/^[^-]+-// if ($appname =~ /-/) ; |
$appname = quotemeta($appname); |
$prefix =~ s/$appname$//; |
$prefix =~ s/-$//; |
$prefix = 'lo16-app' if ($prefix eq 'mini'); |
$prefix = 'lo32-app' if ($prefix eq 'lo'); |
$prefix = 'hi48-app' if ($prefix eq 'large'); |
$prefix .= '-app' if ($prefix =~ m/^...$/); |
my $type = $prefix; |
$type =~ s/^.*-([^-]+)$/$1/; |
$prefix =~ s/^(.*)-[^-]+$/$1/; |
my %type_hash = |
( |
'action' => 'actions', |
'app' => 'apps', |
'device' => 'devices', |
'filesys' => 'filesystems', |
'mime' => 'mimetypes' |
); |
if (! defined $type_hash{$type} ) { |
print STDERR "unknown icon type $type in $printname ($file)\n"; |
next; |
} |
my %dir_hash = |
( |
'los' => 'locolor/16x16', |
'lom' => 'locolor/32x32', |
'him' => 'hicolor/32x32', |
'hil' => 'hicolor/48x48', |
'lo16' => 'locolor/16x16', |
'lo22' => 'locolor/22x22', |
'lo32' => 'locolor/32x32', |
'hi16' => 'hicolor/16x16', |
'hi22' => 'hicolor/22x22', |
'hi32' => 'hicolor/32x32', |
'hi48' => 'hicolor/48x48', |
'hi64' => 'hicolor/64x64', |
'hi128' => 'hicolor/128x128', |
'hisc' => 'hicolor/scalable', |
'cr16' => 'crystalsvg/16x16', |
'cr22' => 'crystalsvg/22x22', |
'cr32' => 'crystalsvg/32x32', |
'cr48' => 'crystalsvg/48x48', |
'cr64' => 'crystalsvg/64x64', |
'cr128' => 'crystalsvg/128x128', |
'crsc' => 'crystalsvg/scalable' |
); |
$newfile =~ s@.*-($appname\.(png|xpm|mng|svgz|svg?))@$1@; |
if (! defined $dir_hash{$prefix}) { |
print STDERR "unknown icon prefix $prefix in $printname\n"; |
next; |
} |
my $dir = $dir_hash{$prefix} . "/" . $type_hash{$type}; |
if ($newfile =~ /-[^\.]/) { |
my $tmp = $newfile; |
$tmp =~ s/^([^-]+)-.*$/$1/; |
$dir = $dir . "/" . $tmp; |
$newfile =~ s/^[^-]+-//; |
} |
if (!defined $directories{$dir}) { |
$install .= "\t\$(mkinstalldirs) \$(DESTDIR)\$($destdir)/$dir\n"; |
$directories{$dir} = 1; |
} |
$install .= "\t\$(INSTALL_DATA) \$(srcdir)/$file \$(DESTDIR)\$($destdir)/$dir/$newfile\n"; |
$uninstall .= "\t-rm -f \$(DESTDIR)\$($destdir)/$dir/$newfile\n"; |
} |
} |
if (length($install)) { |
$target_adds{"install-data-am"} .= "install-kde-icons "; |
$target_adds{"uninstall-am"} .= "uninstall-kde-icons "; |
appendLines("install-kde-icons:\n" . $install . "\nuninstall-kde-icons:\n" . $uninstall); |
} |
} |
sub handle_POFILES($$) |
{ |
my @pofiles = split(" ", $_[0]); |
my $lang = $_[1]; |
# Build rules for creating the gmo files |
my $tmp = ""; |
my $allgmofiles = ""; |
my $pofileLine = "POFILES ="; |
foreach $pofile (@pofiles) |
{ |
$pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension |
$tmp .= "$1.gmo: $pofile\n"; |
$tmp .= "\trm -f $1.gmo; \$(GMSGFMT) -o $1.gmo \$(srcdir)/$pofile\n"; |
$tmp .= "\ttest ! -f $1.gmo || touch $1.gmo\n"; |
$allgmofiles .= " $1.gmo"; |
$pofileLine .= " $1.po"; |
} |
appendLines ($tmp); |
my $lookup = 'POFILES\s*=([^\n]*)'; |
if ($MakefileData !~ /\n$lookup/) { |
appendLines("$pofileLine\nGMOFILES =$allgmofiles"); |
} else { |
substituteLine ($lookup, "$pofileLine\nGMOFILES =$allgmofiles"); |
} |
if ($allgmofiles) { |
# Add the "clean" rule so that the maintainer-clean does something |
appendLines ("clean-nls:\n\t-rm -f $allgmofiles\n"); |
$target_adds{"maintainer-clean"} .= "clean-nls "; |
$lookup = 'DISTFILES\s*=[ \t]*(.*)'; |
if ($MakefileData =~ /\n$lookup/) { |
$tmp = "DISTFILES = \$(GMOFILES) \$(POFILES) $1"; |
substituteLine ($lookup, $tmp); |
} |
} |
$target_adds{"install-data-am"} .= "install-nls "; |
$tmp = "install-nls:\n"; |
if ($lang) { |
$tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES\n"; |
} |
$tmp .= "\t\@for base in "; |
foreach $pofile (@pofiles) |
{ |
$pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension |
$tmp .= "$1 "; |
} |
$tmp .= "; do \\\n"; |
if ($lang) { |
$tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"; |
$tmp .= "\t if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"; |
$tmp .= "\t elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"; |
$tmp .= "\t fi ;\\\n"; |
} else { |
$tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n"; |
$tmp .= "\t \$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES ; \\\n"; |
$tmp .= "\t if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n"; |
$tmp .= "\t elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n"; |
$tmp .= "\t fi ;\\\n"; |
} |
$tmp .= "\tdone\n\n"; |
appendLines ($tmp); |
$target_adds{"uninstall"} .= "uninstall-nls "; |
$tmp = "uninstall-nls:\n"; |
foreach $pofile (@pofiles) |
{ |
$pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension |
if ($lang) { |
$tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/$1.mo\n"; |
} else { |
$tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$1/LC_MESSAGES/\$(PACKAGE).mo\n"; |
} |
} |
appendLines($tmp); |
$target_adds{"all"} .= "all-nls "; |
$tmp = "all-nls: \$(GMOFILES)\n"; |
appendLines($tmp); |
$target_adds{"distdir"} .= "distdir-nls "; |
$tmp = "distdir-nls:\$(GMOFILES)\n"; |
$tmp .= "\tfor file in \$(POFILES); do \\\n"; |
$tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n"; |
$tmp .= "\tdone\n"; |
$tmp .= "\tfor file in \$(GMOFILES); do \\\n"; |
$tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n"; |
$tmp .= "\tdone\n"; |
appendLines ($tmp); |
if (!$lang) { |
appendLines("merge:\n\t\$(MAKE) -f \$(top_srcdir)/admin/Makefile.common package-merge POFILES=\"\${POFILES}\" PACKAGE=\${PACKAGE}\n\n"); |
} |
} |
#----------------------------------------------------------------------------- |
# Returns 0 if the line was processed - 1 otherwise. |
# Errors are logged in the global $errorflags |
sub tag_POFILES () |
{ |
my $lookup = 'POFILES\s*=([^\n]*)'; |
return 1 if ($MakefileData !~ /\n$lookup/); |
print STDOUT "POFILES processing <$1>\n" if ($verbose); |
my $tmp = $1; |
# make sure these are all gone. |
if ($MakefileData =~ /\n\.po\.gmo:\n/) |
{ |
print STDERR "Warning: Found old .po.gmo rules in $printname. New po rules not added\n"; |
return 1; |
} |
# Either find the pofiles in the directory (AUTO) or use |
# only the specified po files. |
my $pofiles = ""; |
if ($tmp =~ /^\s*AUTO\s*$/) |
{ |
opendir (THISDIR, "."); |
$pofiles = join(" ", grep(/\.po$/, readdir(THISDIR))); |
closedir (THISDIR); |
print STDOUT "pofiles found = $pofiles\n" if ($verbose); |
if (-f "charset" && -f "kdelibs/kdelibs.po") { |
handle_TOPLEVEL(); |
} |
} |
else |
{ |
$tmp =~ s/\034/ /g; |
$pofiles = $tmp; |
} |
return 1 if (!$pofiles); # Nothing to do |
handle_POFILES($pofiles, $kdelang); |
return 0; |
} |
sub helper_LOCALINSTALL($) |
{ |
my $lookup = "\035" . $_[0] . " *:[^\035]*\035\t"; |
my $copy = $MakefileData; |
$copy =~ s/\n/\035/g; |
if ($copy =~ /($lookup.*)$/) { |
$install = $1; |
$install =~ s/\035$_[0] *:[^\035]*\035//; |
my $emptyline = 0; |
while (! $emptyline ) { |
if ($install =~ /([^\035]*)\035(.*)/) { |
local $line = $1; |
$install = $2; |
if ($line !~ /^\s*$/ && $line !~ /^(\@.*\@)*\t/) { |
$emptyline = 1; |
} else { |
replaceDestDir($line); |
} |
} else { |
$emptyline = 1; |
} |
} |
} |
} |
sub tag_LOCALINSTALL () |
{ |
helper_LOCALINSTALL('install-exec-local'); |
helper_LOCALINSTALL('install-data-local'); |
helper_LOCALINSTALL('uninstall-local'); |
return 0; |
} |
sub replaceDestDir($) { |
local $line = $_[0]; |
if ( $line =~ /^\s*(\@.*\@)*\s*\$\(mkinstalldirs\)/ |
|| $line =~ /^\s*(\@.*\@)*\s*\$\(INSTALL\S*\)/ |
|| $line =~ /^\s*(\@.*\@)*\s*(-?rm.*) \S*$/) |
{ |
$line =~ s/^(.*) ([^\s]+)\s*$/$1 \$(DESTDIR)$2/ if ($line !~ /\$\(DESTDIR\)/); |
} |
if ($line ne $_[0]) { |
$_[0] = quotemeta $_[0]; |
substituteLine($_[0], $line); |
} |
} |
#--------------------------------------------------------------------------- |
# libtool is very hard to persuade it could use -Wl,--no-undefined for making |
# -no-undefined actually work |
# append $(KDE_NO_UNFINED) after every -no-undefined in LDFLAGS |
# this may go away if libtool ever does this on its own |
sub tag_NO_UNDEFINED () { |
return if ($program !~ /_la$/); |
my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n"; |
$MakefileData =~ m/$lookup/; |
return if (!defined($1)); |
return if ($1 !~ /CXXLINK/); |
if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ ) { |
return; |
} |
$lookup = $program . '\_LDFLAGS(\s*)=(.*)-no-undefined(.*)'; |
if ($MakefileData =~ /\n$lookup\n/) { |
my $replace = $program . "\_LDFLAGS$1=$2-no-undefined \$(KDE_NO_UNDEFINED)$3"; |
substituteLine($lookup, $replace); |
} |
} |
sub tag_CLOSURE () { |
return if ($program !~ /_la$/); |
my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n"; |
$MakefileData =~ m/$lookup/; |
return if (!defined($1)); |
return if ($1 !~ /CXXLINK/); |
if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ && |
$MakefileData !~ /\n$program\_LDFLAGS\s*=.*KDE_PLUGIN/ ) { |
print STDERR "Report: $program contains undefined in $printname\n" if ($program =~ /^lib/ && $dryrun); |
return; |
} |
my $closure = $realname{$program} . ".closure"; |
my $lines = "$closure: \$($program\_OBJECTS) \$($program\_DEPENDENCIES)\n"; |
$lines .= "\t\@echo \"int main() {return 0;}\" > $program\_closure.$cxxsuffix\n"; |
$lines .= "\t\@\$\(LTCXXCOMPILE\) -c $program\_closure.$cxxsuffix\n"; |
$lines .= "\t\$\(CXXLINK\) $program\_closure.lo \$($program\_LDFLAGS) \$($program\_OBJECTS) \$($program\_LIBADD) \$(LIBS)\n"; |
$lines .= "\t\@rm -f $program\_closure.* $closure\n"; |
$lines .= "\t\@echo \"timestamp\" > $closure\n"; |
$lines .= "\n"; |
appendLines($lines); |
$lookup = $realname{$program} . ": (.*)"; |
if ($MakefileData =~ /\n$lookup\n/) { |
$lines = "\@KDE_USE_CLOSURE_TRUE@". $realname{$program} . ": $closure $1"; |
$lines .= "\n\@KDE_USE_CLOSURE_FALSE@" . $realname{$program} . ": $1"; |
substituteLine($lookup, $lines); |
} |
$closure_output .= " $closure"; |
} |
sub tag_NMCHECK () { |
return if ($program !~ /_la$/); |
my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n"; |
$MakefileData =~ m/$lookup/; |
my $linkcmd = $1; |
return if (!defined($1)); |
return if ($linkcmd !~ /CXXLINK/ && $linkcmd !~ /LINK/); |
$lookup = $program . '_NMCHECK\s*=([^\n]*)'; |
if( $MakefileData !~ m/\n$lookup\n/ ) { |
return; |
} |
my $allowed = $1; |
$allowed =~ s/^ *//; |
$lookup = $program . '_NMCHECKWEAK\s*=([^\n]*)'; |
my $weak = ""; |
my $is_weak = 0; |
if( $MakefileData =~ m/\n$lookup\n/ ) { |
$weak = $1; |
$is_weak = 1; |
} |
$weak =~ s/^ *//; |
if( $is_weak ) |
{ |
$weak = '--allowweak=\'' . $weak . '\' '; |
} |
my $nmline = "\@KDE_USE_NMCHECK_TRUE@\t\@\$(MAKE) \$(AM_MAKEFLAGS) nmcheck_$realname{$program} || ( rm -f $realname{$program}; exit 1 )"; |
$lookup = '(\t\$\(CXXLINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)'; |
if( $MakefileData =~ /\n$lookup\n/ ) { |
my $oldstuff = $1; |
substituteLine( $lookup, $oldstuff . "\n" . $nmline ); |
} |
$lookup = '(\t\$\(LINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)'; |
if( $MakefileData =~ /\n$lookup\n/ ) { |
my $oldstuff = $1; |
substituteLine( $lookup, $oldstuff . "\n" . $nmline ); |
} |
$nmline = "\@\$(top_srcdir)/admin/nmcheck $realname{$program} \'$allowed\' $weak"; |
appendLines( "\nnmcheck_$realname{$program}: $realname{$program} \n\t$nmline\n" ); |
$target_adds{ "nmcheck" } .= "nmcheck_$realname{$program} "; |
} |
sub tag_DIST () { |
my %foundfiles = (); |
opendir (THISDIR, "."); |
foreach $entry (readdir(THISDIR)) { |
next if ($entry eq "CVS" || $entry =~ /^\./ || $entry eq "Makefile" || $entry =~ /~$/ || $entry =~ /^\#.*\#$/); |
next if (! -f $entry); |
next if ($entry =~ /\.moc/ || $entry =~ /\.moc.$cppExt$/ || $entry =~ /\.lo$/ || $entry =~ /\.la$/ || $entry =~ /\.o/); |
next if ($entry =~ /\.all_$cppExt\.$cppExt$/); |
$foundfiles{$entry} = 1; |
} |
closedir (THISDIR); |
# doing this for MAINTAINERCLEANFILES would be wrong |
my @marks = ("EXTRA_DIST", "DIST_COMMON", '\S*_SOURCES', '\S*_HEADERS', 'CLEANFILES', 'DISTCLEANFILES', '\S*_OBJECTS'); |
foreach $mark (@marks) { |
while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) { |
my $cleanfiles_str = $2; |
foreach $file (split('[\034\s]+', $cleanfiles_str)) { |
$file =~ s/\.\///; |
$foundfiles{$file} = 0 if (defined $foundfiles{$file}); |
} |
} |
} |
my @files = ("Makefile", "config.cache", "config.log", "stamp-h", |
"stamp-h1", "stamp-h1", "config.h", "Makefile", |
"config.status", "config.h", "libtool", "core" ); |
foreach $file (@files) { |
$foundfiles{$file} = 0 if (defined $foundfiles{$file}); |
} |
my $KDE_DIST = ""; |
foreach $file (keys %foundfiles) { |
if ($foundfiles{$file} == 1) { |
$KDE_DIST .= "$file "; |
} |
} |
if ($KDE_DIST) { |
print "KDE_DIST $printname $KDE_DIST\n" if ($verbose); |
my $lookup = 'DISTFILES\s*=[ \t]*(.*)'; |
if ($MakefileData =~ /\n$lookup/) { |
substituteLine($lookup, "DISTFILES = $1 \$(KDE_DIST)"); |
appendLines("KDE_DIST=$KDE_DIST\n"); |
} |
} |
} |
#----------------------------------------------------------------------------- |
# Returns 0 if the line was processed - 1 otherwise. |
# Errors are logged in the global $errorflags |
sub tag_DOCFILES () |
{ |
$target_adds{"all"} .= "docs-am "; |
my $lookup = 'KDE_DOCS\s*=[ \t]*([^\n]*)'; |
goto nodocs if ($MakefileData !~ /\n$lookup/); |
print STDOUT "KDE_DOCS processing <$1>\n" if ($verbose); |
my $tmp = $1; |
# Either find the files in the directory (AUTO) or use |
# only the specified po files. |
my $files = ""; |
my $appname = $tmp; |
$appname =~ s/^(\S*)\s*.*$/$1/; |
if ($appname =~ /AUTO/) { |
$appname = basename($makefileDir); |
if ("$appname" eq "en") { |
print STDERR "Error: KDE_DOCS = AUTO relies on the directory name. Yours is 'en' - you most likely want something else, e.g. KDE_DOCS = myapp\n"; |
exit(1); |
} |
} |
if ($tmp !~ / - /) |
{ |
opendir (THISDIR, "."); |
foreach $entry (readdir(THISDIR)) { |
next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry eq "core" || $entry eq "index.cache.bz2"); |
next if (! -f $entry); |
$files .= "$entry "; |
} |
closedir (THISDIR); |
print STDOUT "docfiles found = $files\n" if ($verbose); |
} |
else |
{ |
$tmp =~ s/\034/ /g; |
$tmp =~ s/^\S*\s*-\s*//; |
$files = $tmp; |
} |
goto nodocs if (!$files); # Nothing to do |
if ($files =~ /(^| )index\.docbook($| )/) { |
my $lines = ""; |
my $lookup = 'MEINPROC\s*='; |
if ($MakefileData !~ /\n($lookup)/) { |
$lines = "MEINPROC=/\$(kde_bindir)/meinproc\n"; |
} |
$lookup = 'KDE_XSL_STYLESHEET\s*='; |
if ($MakefileData !~ /\n($lookup)/) { |
$lines .= "KDE_XSL_STYLESHEET=/\$(kde_datadir)/ksgmltools2/customization/kde-chunk.xsl\n"; |
} |
$lookup = '\nindex.cache.bz2:'; |
if ($MakefileData !~ /\n($lookup)/) { |
$lines .= "index.cache.bz2: \$(srcdir)/index.docbook \$(KDE_XSL_STYLESHEET) $files\n"; |
$lines .= "\t\@if test -n \"\$(MEINPROC)\"; then echo \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; fi\n"; |
$lines .= "\n"; |
} |
$lines .= "docs-am: index.cache.bz2\n"; |
$lines .= "\n"; |
$lines .= "install-docs: docs-am install-nls\n"; |
$lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n"; |
$lines .= "\t\@if test -f index.cache.bz2; then \\\n"; |
$lines .= "\techo \$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; |
$lines .= "\t\$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; |
$lines .= "\telif test -f \$(srcdir)/index.cache.bz2; then \\\n"; |
$lines .= "\techo \$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; |
$lines .= "\t\$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; |
$lines .= "\tfi\n"; |
$lines .= "\t-rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n"; |
$lines .= "\t\$(LN_S) \$(kde_libs_htmldir)/$kdelang/common \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n"; |
$lines .= "\n"; |
$lines .= "uninstall-docs:\n"; |
$lines .= "\t-rm -rf \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n"; |
$lines .= "\n"; |
$lines .= "clean-docs:\n"; |
$lines .= "\t-rm -f index.cache.bz2\n"; |
$lines .= "\n"; |
$target_adds{"install-data-am"} .= "install-docs "; |
$target_adds{"uninstall"} .= "uninstall-docs "; |
$target_adds{"clean-am"} .= "clean-docs "; |
appendLines ($lines); |
} else { |
appendLines("docs-am: $files\n"); |
} |
$target_adds{"install-data-am"} .= "install-nls "; |
$target_adds{"uninstall"} .= "uninstall-nls "; |
$tmp = "install-nls:\n"; |
$tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n"; |
$tmp .= "\t\@for base in $files; do \\\n"; |
$tmp .= "\t echo \$(INSTALL_DATA) \$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n"; |
$tmp .= "\t \$(INSTALL_DATA) \$(srcdir)/\$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n"; |
$tmp .= "\tdone\n"; |
if ($appname eq 'common') { |
$tmp .= "\t\@echo \"merging common and language specific dir\" ;\\\n"; |
$tmp .= "\tif test ! -f \$(kde_htmldir)/en/common/kde-common.css; then echo 'no english docs found in \$(kde_htmldir)/en/common/'; exit 1; fi \n"; |
$tmp .= "\t\@com_files=`cd \$(kde_htmldir)/en/common && echo *` ;\\\n"; |
$tmp .= "\tcd \$(DESTDIR)\$(kde_htmldir)/$kdelang/common ;\\\n"; |
$tmp .= "\tif test -n \"\$\$com_files\"; then for p in \$\$com_files ; do \\\n"; |
$tmp .= "\t case \" $files \" in \\\n"; |
$tmp .= "\t *\" \$\$p \"*) ;; \\\n"; |
$tmp .= "\t *) test ! -f \$\$p && echo \$(LN_S) ../../en/common/\$\$p \$(DESTDIR)\$(kde_htmldir)/$kdelang/common/\$\$p && \$(LN_S) ../../en/common/\$\$p \$\$p ;; \\\n"; |
$tmp .= "\t esac ; \\\n"; |
$tmp .= "\tdone ; fi ; true\n"; |
} |
$tmp .= "\n"; |
$tmp .= "uninstall-nls:\n"; |
$tmp .= "\tfor base in $files; do \\\n"; |
$tmp .= "\t rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n"; |
$tmp .= "\tdone\n\n"; |
appendLines ($tmp); |
$target_adds{"distdir"} .= "distdir-nls "; |
$tmp = "distdir-nls:\n"; |
$tmp .= "\tfor file in $files; do \\\n"; |
$tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n"; |
$tmp .= "\tdone\n"; |
appendLines ($tmp); |
return 0; |
nodocs: |
appendLines("docs-am:\n"); |
return 1; |
} |
#----------------------------------------------------------------------------- |
# Find headers in any of the source directories specified previously, that |
# are candidates for "moc-ing". |
sub findMocCandidates () |
{ |
foreach $dir (@headerdirs) |
{ |
my @list = (); |
opendir (SRCDIR, "$dir"); |
@hFiles = grep { /.+\.$hExt$/o && !/^\./ } readdir(SRCDIR); |
closedir SRCDIR; |
foreach $hf (@hFiles) |
{ |
next if ($hf =~ /^\.\#/); |
$hf =~ /(.*)\.[^\.]*$/; # Find name minus extension |
next if ($uiFiles{$1}); |
open (HFIN, "$dir/$hf") || die "Could not open $dir/$hf: $!\n"; |
my $hfsize = 0; |
seek(HFIN, 0, 2); |
$hfsize = tell(HFIN); |
seek(HFIN, 0, 0); |
read HFIN, $hfData, $hfsize; |
close HFIN; |
# push (@list, $hf) if(index($hfData, "Q_OBJECT") >= 0); ### fast but doesn't handle //Q_OBJECT |
# handle " { friend class blah; Q_OBJECT ", but don't match antlarr_Q_OBJECT (\b). |
if ( $hfData =~ /{([^}]*)\bQ_OBJECT/s ) { |
push (@list, $hf) unless $1 =~ m://[^\n]*Q_OBJECT[^\n]*$:s; ## reject "// Q_OBJECT" |
} |
} |
# The assoc array of root of headerfile and header filename |
foreach $hFile (@list) |
{ |
$hFile =~ /(.*)\.[^\.]*$/; # Find name minus extension |
if ($mocFiles{$1}) |
{ |
print STDERR "Warning: Multiple header files found for $1\n"; |
next; # Use the first one |
} |
$mocFiles{$1} = "$dir\035$hFile"; # Add relative dir |
} |
} |
return 0; |
} |
#----------------------------------------------------------------------------- |
# The programmer has specified a moc list. Prune out the moc candidates |
# list that we found based on looking at the header files. This generates |
# a warning if the programmer gets the list wrong, but this doesn't have |
# to be fatal here. |
sub pruneMocCandidates ($) |
{ |
my %prunedMoc = (); |
local @mocList = split(' ', $_[0]); |
foreach $mocname (@mocList) |
{ |
$mocname =~ s/\.moc$//; |
if ($mocFiles{$mocname}) |
{ |
$prunedMoc{$mocname} = $mocFiles{$mocname}; |
} |
else |
{ |
my $print = $makefileDir; |
$print =~ s/^\Q$topdir\E\\//; |
# They specified a moc file but we can't find a header that |
# will generate this moc file. That's possible fatal! |
print STDERR "Warning: No moc-able header file for $print/$mocname\n"; |
} |
} |
undef %mocFiles; |
%mocFiles = %prunedMoc; |
} |
#----------------------------------------------------------------------------- |
# Finds the cpp files (If they exist). |
# The cpp files get appended to the header file separated by \035 |
sub checkMocCandidates () |
{ |
my @cppFiles; |
my $cpp2moc; # which c++ file includes which .moc files |
my $moc2cpp; # which moc file is included by which c++ files |
return unless (keys %mocFiles); |
opendir(THISDIR, ".") || return; |
@cppFiles = grep { /.+\.$cppExt$/o && !/.+\.moc\.$cppExt$/o |
&& !/.+\.all_$cppExt\.$cppExt$/o |
&& !/^\./ } readdir(THISDIR); |
closedir THISDIR; |
return unless (@cppFiles); |
my $files = join (" ", @cppFiles); |
$cpp2moc = {}; |
$moc2cpp = {}; |
foreach $cxxf (@cppFiles) |
{ |
open (CXXFIN, $cxxf) || die "Could not open $cxxf: $!\n"; |
seek(CXXFIN, 0, 2); |
my $cxxfsize = tell(CXXFIN); |
seek(CXXFIN, 0, 0); |
read CXXFIN, $cxxfData, $cxxfsize; |
close CXXFIN; |
while(($cxxfData =~ m/^[ \t]*\#include\s*[<\"](.*\.moc)[>\"]/gm)) { |
$cpp2moc->{$cxxf}->{$1} = 1; |
$moc2cpp->{$1}->{$cxxf} = 1; |
} |
} |
foreach my $mocFile (keys (%mocFiles)) |
{ |
@cppFiles = keys %{$moc2cpp->{"$mocFile.moc"}}; |
if (@cppFiles == 1) { |
$mocFiles{$mocFile} .= "\035" . $cppFiles[0]; |
push(@depend, $mocFile); |
} elsif (@cppFiles == 0) { |
push (@newObs, $mocFile); # Produce new object file |
next if ($haveAutomocTag); # This is expected... |
# But this is an error we can deal with - let them know |
print STDERR |
"Warning: No c++ file that includes $mocFile.moc\n"; |
} else { |
# We can't decide which file to use, so it's fatal. Although as a |
# guess we could use the mocFile.cpp file if it's in the list??? |
print STDERR |
"Error: Multiple c++ files that include $mocFile.moc\n"; |
print STDERR "\t",join ("\t", @cppFiles),"\n"; |
$errorflag = 1; |
delete $mocFiles{$mocFile}; |
# Let's continue and see what happens - They have been told! |
} |
} |
} |
#----------------------------------------------------------------------------- |
# Add the rules for generating moc source from header files |
# For Automoc output *.moc.cpp but normally we'll output *.moc |
# (We must compile *.moc.cpp separately. *.moc files are included |
# in the appropriate *.cpp file by the programmer) |
sub addMocRules () |
{ |
my $cppFile; |
my $hFile; |
foreach $mocFile (keys (%mocFiles)) |
{ |
undef $cppFile; |
($dir, $hFile, $cppFile) = split ("\035", $mocFiles{$mocFile}, 3); |
$dir =~ s#^\.#\$(srcdir)#; |
if (defined ($cppFile)) |
{ |
$cppFile =~ s,\.[^.]*$,,; |
$target_adds{"$cppFile.o"} .= "$mocFile.moc "; |
$target_adds{"$cppFile.lo"} .= "$mocFile.moc "; |
appendLines ("$mocFile.moc: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile.moc\n"); |
$cleanMoc .= " $mocFile.moc"; |
appendLines ("mocs: $mocFile.moc\n"); |
} |
else |
{ |
appendLines ("$mocFile$mocExt: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile$mocExt\n"); |
$cleanMoc .= " $mocFile$mocExt"; |
appendLines ("mocs: $mocFile$mocExt\n"); |
} |
} |
} |
sub make_bcheck_target() |
{ |
my $lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)'; |
my $bcheckdep = "bcheck-am"; |
$bcheckdep = "bcheck-recursive" if ($MakefileData =~ /\n$lookup/); |
my $headers= ""; |
$headers = $1 if($MakefileData =~ /\nHEADERS\s*=[ \t]*(.+)/); |
$headers =~ s/\$\((?:noinst|EXTRA)_HEADERS\)//g; |
$target_adds{"clean-am"} .= "clean-bcheck "; |
my $t = "clean-bcheck: \n" . |
"\trm -f *.bchecktest.cc *.bchecktest.cc.class a.out\n\n" . |
"bcheck: $bcheckdep\n\n" . |
"bcheck-am:\n" . |
"\t\@for i in $headers; do \\\n" . |
"\t if test \$(srcdir)/\$\$i -nt \$\$i.bchecktest.cc; then \\\n" . |
"\t echo \"int main() {return 0;}\" > \$\$i.bchecktest.cc ; \\\n" . |
"\t echo \"#include \\\"\$\$i\\\"\" >> \$\$i.bchecktest.cc ; \\\n" . |
"\t echo \"\$\$i\"; \\\n" . |
"\t if ! "; |
$t .= $cxxsuffix eq "KKK" ? |
"\$(CXX) \$(DEFS) -I. -I\$(srcdir) -I\$(top_builddir) \$(INCLUDES) \$(AM_CPPFLAGS) \$(CPPFLAGS) \$(CXXFLAGS) \$(KDE_CXXFLAGS) " : |
"\$(CXXCOMPILE) "; |
$t .= " --dump-class-hierarchy -c \$\$i.bchecktest.cc; then \\\n" . |
"\t rm -f \$\$i.bchecktest.cc; exit 1; \\\n" . |
"\t fi ; \\\n" . |
"\t echo \"\" >> \$\$i.bchecktest.cc.class; \\\n" . |
"\t perl \$(top_srcdir)/admin/bcheck.pl \$\$i.bchecktest.cc.class || { rm -f \$\$i.bchecktest.cc; exit 1; }; \\\n" . |
"\t rm -f a.out; \\\n" . |
"\t fi ; \\\n" . |
"\tdone\n"; |
appendLines("$t\n"); |
} |
sub make_meta_classes () |
{ |
return if ($kdeopts{"qtonly"}); |
my $cppFile; |
my $hFile; |
my $moc_class_headers = ""; |
foreach $program (@programs) { |
my $mocs = ""; |
my @progsources = split(/[\034\s]+/, $sources{$program}); |
my @depmocs = split(' ', $dependmocs{$program}); |
my %shash = (), %mhash = (); |
@shash{@progsources} = 1; # we are only interested in the existence |
@mhash{@depmocs} = 1; |
print STDOUT "program=$program\n" if ($verbose); |
print STDOUT "psources=[".join(' ', keys %shash)."]\n" if ($verbose); |
print STDOUT "depmocs=[".join(' ', keys %mhash)."]\n" if ($verbose); |
print STDOUT "globalmocs=[".join(' ', keys(%globalmocs))."]\n" if ($verbose); |
foreach my $mocFile (keys (%globalmocs)) |
{ |
my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3); |
if (defined ($cppFile)) |
{ |
$mocs .= " $mocFile.moc" if exists $shash{$cppFile}; |
} |
else |
{ |
# Bah. This is the case, if no C++ file includes the .moc |
# file. We make a .moc.cpp file for that. Unfortunately this |
# is not included in the %sources hash, but rather is mentioned |
# in %dependmocs. If the user wants to use AUTO he can't just |
# use an unspecific METAINCLUDES. Instead he must use |
# program_METAINCLUDES. Anyway, it's not working real nicely. |
# E.g. Its not clear what happens if user specifies two |
# METAINCLUDES=AUTO in the same Makefile.am. |
$mocs .= " $mocFile.moc.$cxxsuffix" |
if exists $mhash{$mocFile.".moc.$cxxsuffix"}; |
} |
} |
if ($mocs) { |
print STDOUT "==> mocs=[".$mocs."]\n" if ($verbose); |
} |
print STDOUT "\n" if $verbose; |
} |
if ($moc_class_headers) { |
appendLines ("$cleantarget-moc-classes:\n\t-rm -f $moc_class_headers\n"); |
$target_adds{"$cleantarget-am"} .= "$cleantarget-moc-classes "; |
} |
} |
#----------------------------------------------------------------------------- |
sub updateMakefile () |
{ |
return if ($dryrun); |
open (FILEOUT, "> $makefile") |
|| die "Could not create $makefile: $!\n"; |
$MakefileData =~ s/\034/\\\n/g; # Restore continuation lines |
# Append our $progId line, _below_ the "generated by automake" line |
# because automake-1.6 relies on the first line to be his own. |
my $progIdLine = "\# $progId - " . '$Revision: 483858 $ '."\n"; |
if ( !( $MakefileData =~ s/^(.*generated .*by automake.*\n)/$1$progIdLine/ ) ) { |
warn "automake line not found in $makefile\n"; |
# Fallback: first line |
print FILEOUT $progIdLine; |
}; |
print FILEOUT $MakefileData; |
close FILEOUT; |
} |
#----------------------------------------------------------------------------- |
# The given line needs to be removed from the makefile |
# Do this by adding the special "removed line" comment at the line start. |
sub removeLine ($$) |
{ |
my ($lookup, $old) = @_; |
$old =~ s/\034/\\\n#>- /g; # Fix continuation lines |
$MakefileData =~ s/\n$lookup/\n#>\- $old/; |
} |
#----------------------------------------------------------------------------- |
# Replaces the old line with the new line |
# old line(s) are retained but tagged as removed. The new line(s) have the |
# "added" tag placed before it. |
sub substituteLine ($$) |
{ |
my ($lookup, $new) = @_; |
if ($MakefileData =~ /\n($lookup)/) { |
$old = $1; |
$old =~ s/\034/\\\n#>\- /g; # Fix continuation lines |
my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1; |
$new =~ s/\\\n/\034/g; |
$MakefileData =~ s/\n$lookup/\n#>- $old\n#>\+ $newCount\n$new/; |
} else { |
warn "Warning: substitution of \"$lookup\" in $printname failed\n"; |
} |
} |
#----------------------------------------------------------------------------- |
# Slap new lines on the back of the file. |
sub appendLines ($) |
{ |
my ($new) = @_; |
my $copynew = $new; |
my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1; |
$new =~ s/\\\n/\034/g; # Fix continuation lines |
$MakefileData .= "\n#>\+ $newCount\n$new"; |
} |
#----------------------------------------------------------------------------- |
# Restore the Makefile.in to the state it was before we fiddled with it |
sub restoreMakefile () |
{ |
$MakefileData =~ s/# $progId[^\n\034]*[\n\034]*//g; |
# Restore removed lines |
$MakefileData =~ s/([\n\034])#>\- /$1/g; |
# Remove added lines |
while ($MakefileData =~ /[\n\034]#>\+ ([^\n\034]*)/) |
{ |
my $newCount = $1; |
my $removeLines = ""; |
while ($newCount--) { |
$removeLines .= "[^\n\034]*([\n\034]|)"; |
} |
$MakefileData =~ s/[\n\034]#>\+.*[\n\034]$removeLines/\n/; |
} |
} |
#----------------------------------------------------------------------------- |
# find the .kcfg file listed in the .kcfgc file |
sub findKcfgFile($) |
{ |
my ($kcfgf) = @_; |
open (KCFGFIN, $kcfgf) || die "Could not open $kcfgf: $!\n"; |
seek(KCFGFIN, 0, 2); |
my $kcfgfsize = tell(KCFGFIN); |
seek(KCFGFIN, 0, 0); |
read KCFGFIN, $kcfgfData, $kcfgfsize; |
close KCFGFIN; |
if(($kcfgfData =~ m/^File=(.*\.kcfg)/gm)) { |
$kcfg = $1; |
} |
} |
/tilgungsplan/trunk/admin/cvs.sh |
---|
0,0 → 1,661 |
#! /bin/sh |
# |
# cvs.sh |
# |
# This file contains support code from Makefile.common |
# It defines a shell function for each known target |
# and then does a case to call the correct function. |
unset MAKEFLAGS |
call_and_fix_autoconf() |
{ |
$AUTOCONF || exit 1 |
if test -r configure.in.in ; then |
perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\ |
\\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\ |
\\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\ |
\\n rm -f \\\$CONFIG_STATUS.bak\\nfi\ |
\\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure |
fi |
} |
strip_makefile() |
{ |
if test ! -f $makefile_wo; then |
perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo |
fi |
} |
check_autotool_versions() |
{ |
required_autoconf_version="2.53 or newer" |
AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1` |
case $AUTOCONF_VERSION in |
Autoconf*2.5* | autoconf*2.5* | autoconf*2.6* ) : ;; |
"" ) |
echo "*** AUTOCONF NOT FOUND!." |
echo "*** KDE requires autoconf $required_autoconf_version" |
exit 1 |
;; |
* ) |
echo "*** YOU'RE USING $AUTOCONF_VERSION." |
echo "*** KDE requires autoconf $required_autoconf_version" |
exit 1 |
;; |
esac |
AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1` |
case $AUTOHEADER_VERSION in |
Autoconf*2.5* | autoheader*2.5* | autoheader*2.6* ) : ;; |
"" ) |
echo "*** AUTOHEADER NOT FOUND!." |
echo "*** KDE requires autoheader $required_autoconf_version" |
exit 1 |
;; |
* ) |
echo "*** YOU'RE USING $AUTOHEADER_VERSION." |
echo "*** KDE requires autoheader $required_autoconf_version" |
exit 1 |
;; |
esac |
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1` |
required_automake_version="1.6.1 or newer" |
case $AUTOMAKE_STRING in |
automake*1.5d* | automake*1.5* | automake*1.5-* ) |
echo "*** YOU'RE USING $AUTOMAKE_STRING." |
echo "*** KDE requires automake $required_automake_version" |
exit 1 |
;; |
automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10*) |
echo "*** $AUTOMAKE_STRING found." |
UNSERMAKE=no |
;; |
"" ) |
echo "*** AUTOMAKE NOT FOUND!." |
echo "*** KDE requires automake $required_automake_version" |
exit 1 |
;; |
*unsermake* ) : |
echo "*** YOU'RE USING UNSERMAKE." |
echo "*** GOOD LUCK!! :)" |
UNSERMAKE=unsermake |
;; |
* ) |
echo "*** YOU'RE USING $AUTOMAKE_STRING." |
echo "*** KDE requires automake $required_automake_version" |
exit 1 |
;; |
esac |
unset required_automake_version |
} |
cvs() |
{ |
check_autotool_versions |
acinclude_m4 |
### Make new subdirs and configure.in. |
### The make calls could be optimized away here, |
### with a little thought. |
if test -r configure.in.in; then |
rm -f configure.in |
echo "*** Creating list of subdirectories" |
create_subdirs |
if test -r Makefile.am.in; then |
echo "*** Creating Makefile.am" |
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then |
strip_makefile |
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1 |
else |
Makefile_am |
fi |
fi |
configure_files |
echo "*** Creating configure.in" |
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then |
strip_makefile |
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1 |
else |
configure_in |
fi |
fi |
echo "*** Creating aclocal.m4" |
$ACLOCAL $ACLOCALFLAGS || exit 1 |
echo "*** Creating configure" |
call_and_fix_autoconf |
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then |
echo "*** Creating config.h template" |
$AUTOHEADER || exit 1 |
touch config.h.in |
fi |
echo "*** Creating Makefile templates" |
$AUTOMAKE || exit 1 |
if test "$UNSERMAKE" = no; then |
echo "*** Postprocessing Makefile templates" |
perl -w admin/am_edit || exit 1 |
fi |
if egrep "^cvs-local:" $makefile_am >/dev/null; then \ |
strip_makefile |
$MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1 |
fi |
echo "*** Creating date/time stamp" |
touch stamp-h.in |
echo "*** Finished" |
echo " Don't forget to run ./configure" |
echo " If you haven't done so in a while, run ./configure --help" |
} |
dist() |
{ |
check_autotool_versions |
### |
### First build all of the files necessary to do just "make" |
### |
acinclude_m4 |
if test -r configure.in.in; then |
rm -f configure.in |
create_subdirs |
if test -r Makefile.am.in; then |
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then |
strip_makefile |
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1 |
else |
Makefile_am |
fi |
fi |
configure_files |
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then |
strip_makefile |
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1 |
else |
configure_in |
fi |
fi |
$ACLOCAL $ACLOCALFLAGS |
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then |
echo "*** Creating config.h template" |
$AUTOHEADER || exit 1 |
touch config.h.in |
fi |
$AUTOMAKE --foreign || exit 1 |
if test "$UNSERMAKE" = no; then |
echo "*** Postprocessing Makefile templates" |
perl -w admin/am_edit || exit 1 |
fi |
call_and_fix_autoconf |
touch stamp-h.in |
if grep "^cvs-local:" $makefile_am >/dev/null; then |
strip_makefile |
$MAKE -f $makefile_wo cvs-local top_srcdir=. |
fi |
### |
### Then make messages |
### |
if test -d po; then |
LIST=`find ./po -name "*.po"` |
for i in $LIST; do |
file2=`echo $i | sed -e "s#\.po#\.gmo#"` |
msgfmt -o $file2 $i || touch $file2 |
done |
fi |
if grep "^cvs-dist-local:" $makefile_am >/dev/null; then |
strip_makefile |
$MAKE -f $makefile_wo cvs-dist-local top_srcdir=. |
fi |
} |
subdir_dist() |
{ |
$ACLOCAL $ACLOCALFLAGS |
$AUTOHEADER |
touch config.h.in |
$AUTOMAKE |
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1` |
case $AUTOMAKE_STRING in |
*unsermake* ) : |
;; |
*) |
perl -w ../admin/am_edit --path=../admin |
esac |
call_and_fix_autoconf |
touch stamp-h.in |
} |
configure_in() |
{ |
rm -f configure.in configure.in.new |
kde_use_qt_param= |
test -f configure.files || { echo "need configure.files for configure.in"; exit 1; } |
list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"` |
: > configure.in.new |
for file in $list; do |
echo "dnl =======================================================" >> configure.in.new |
echo "dnl FILE: $file" >> configure.in.new |
echo "dnl =======================================================" >> configure.in.new |
echo "" >> configure.in.new |
cat $file >> configure.in.new |
done |
echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new |
if test -f Makefile.am.in; then |
subdirs=`cat subdirs` |
for dir in $subdirs; do |
vdir=`echo $dir | sed -e 's,[-+.@],_,g'` |
echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new |
if test -f "$dir/configure.in"; then |
echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new |
echo " AC_CONFIG_SUBDIRS($dir)" >> configure.in.new |
echo "fi" >> configure.in.new |
fi |
done |
fi |
echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new |
if test -f inst-apps; then |
topleveldirs=`cat inst-apps` |
else |
topleveldirs= |
for dir in `ls -1d * | sort`; do |
if test "$dir" != "debian" && test -d $dir; then |
topleveldirs="$topleveldirs $dir" |
fi |
done |
fi |
for topleveldir in $topleveldirs; do |
if test -f $topleveldir/configure.in; then |
continue |
fi |
if test -f $topleveldir/Makefile.am; then :; else |
continue |
fi |
mfs=`find $topleveldir -follow -name Makefile.am -print | fgrep -v "/." | \ |
sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'` |
for i in $mfs; do |
echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new |
done |
done |
files=`cat configure.files` |
list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"` |
for file in $list; do |
echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new |
done |
midfiles=`cat configure.files | fgrep "configure.in.mid"` |
test -n "$midfiles" && cat $midfiles >> configure.in.new |
echo "AC_OUTPUT" >> configure.in.new |
modulename= |
if test -f configure.in.in; then |
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then |
kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"` |
fi |
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then |
line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in` |
if test -n "$line"; then |
modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"` |
VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"` |
fi |
sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \ |
configure.in.new > configure.in && mv configure.in configure.in.new |
fi |
fi |
if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then |
VERSION="\"3.5.7\"" |
fi |
if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then |
modulename=`pwd`; |
modulename=`basename $modulename` |
esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"` |
modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"` |
fi |
if test -n "$kde_use_qt_param"; then |
sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \ |
configure.in.new > configure.in && mv configure.in configure.in.new |
fi |
sed -e "s#@MODULENAME@#$modulename#" configure.in.new | |
sed -e "s#@VERSION@#$VERSION#" > configure.in |
botfiles=`cat configure.files | egrep "configure.in.bot"` |
test -n "$botfiles" && cat $botfiles >> configure.in |
cat $admindir/configure.in.bot.end >> configure.in |
rm -f configure.in.new |
} |
configure_files() |
{ |
echo "*** Creating configure.files" |
admindir=NO |
for i in . .. ../.. ../../..; do |
if test -x $i/admin; then admindir=$i/admin; break; fi |
done |
rm -f configure.files |
touch configure.files |
if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then |
echo $admindir/configure.in.min >> configure.files |
fi |
test -f configure.in.in && echo configure.in.in >> configure.files |
# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs |
if test -f inst-apps; then |
inst=`cat inst-apps` |
list="" |
for i in $inst; do |
list="$list `find $i/ -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \ |
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`" |
done |
else |
list=`find . -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \ |
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"` |
fi |
for i in $list; do if test -f $i && test `dirname $i` != "." ; then |
echo $i >> configure.files |
fi; done |
test -f configure.in.mid && echo configure.in.mid >> configure.files |
test -f configure.in.bot && echo configure.in.bot >> configure.files |
if test ! -s configure.files; then |
echo "There are no files to build a configure. Please check your checkout." |
exit 1 |
fi |
} |
create_subdirs() |
{ |
if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then |
# as many modules contain rules to create subdirs without any |
# dependencies make won't create it unless there is no file. |
# so we check if that's a dummy rule or one that works |
rm -f subdirs.cvs.sh.$$ |
if test -f subdirs; then |
mv subdirs subdirs.cvs.sh.$$ |
fi |
strip_makefile |
$MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1 |
if test -f subdirs.cvs.sh.$$; then |
if test -s subdirs; then |
rm subdirs.cvs.sh.$$ |
else |
mv subdirs.cvs.sh.$$ subdirs |
fi |
fi |
else |
subdirs |
fi |
} |
subdirs() |
{ |
dirs= |
idirs= |
if test -f inst-apps; then |
idirs=`cat inst-apps` |
else |
idirs=`ls -1 | sort` |
fi |
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1` |
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1` |
for i in $idirs; do |
if test -f $i/Makefile.am; then |
case " $compilefirst $compilelast " in |
*" $i "*) ;; |
*) dirs="$dirs $i" |
esac |
fi |
done |
: > ./_SUBDIRS |
for d in $compilefirst; do |
echo $d >> ./_SUBDIRS |
done |
(for d in $dirs; do |
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` |
for s in $list; do |
echo $s $d |
done |
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` |
for s in $list; do |
echo $d $s |
done |
echo $d $d |
done ) | tsort >> ./_SUBDIRS |
for d in $compilelast; do |
echo $d >> ./_SUBDIRS |
done |
if test -r subdirs && cmp -s subdirs _SUBDIRS; then |
rm -f _SUBDIRS |
fi |
test -r _SUBDIRS && mv _SUBDIRS subdirs || true |
} |
Makefile_am() |
{ |
if test -f Makefile.am.in; then |
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1` |
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1` |
idirs= |
dirs= |
if test -f inst-apps; then |
idirs=`cat inst-apps` |
else |
idirs=`cat subdirs` |
fi |
for i in $idirs; do |
case " $compilefirst $compilelast " in |
*" $i "*) ;; |
*) dirs="$dirs $i" |
esac |
done |
adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'` |
if echo "$adds" | fgrep "*" >/dev/null ; then |
adds=`ls -d -1 $adds 2>/dev/null` |
fgrep -v '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds |
str='$(top_srcdir)/acinclude.m4:' |
for add in $adds; do |
str="$str \$(top_srcdir)/$add" |
done |
echo $str >> Makefile.am.in.adds |
else |
cat Makefile.am.in > Makefile.am.in.adds |
fi |
cat Makefile.am.in.adds | \ |
sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \ |
sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am |
echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am |
rm Makefile.am.in.adds |
fi |
} |
acinclude_m4() |
{ |
echo "*** Creating acinclude.m4" |
adds= |
if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then |
strip_makefile |
rm -f acinclude.m4 |
adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'` |
if echo $adds | fgrep "*" >/dev/null ; then |
adds=`ls -d -1 $adds 2>/dev/null` |
else |
$MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1 |
fi |
else |
rm -f acinclude.m4 |
fi |
# if it wasn't created up to now, then we do it better |
if test ! -f acinclude.m4; then |
cat admin/acinclude.m4.in admin/libtool.m4.in admin/pkg.m4.in $adds > acinclude.m4 |
fi |
} |
package_merge() |
{ |
catalogs=$POFILES |
for cat in $catalogs; do |
msgmerge -o $cat.new $cat $PACKAGE.pot |
if test -s $cat.new; then |
grep -v "\"POT-Creation" $cat.new > $cat.new.2 |
grep -v "\"POT-Creation" $cat >> $cat.new.1 |
if diff $cat.new.1 $cat.new.2; then |
rm $cat.new |
else |
mv $cat.new $cat |
fi |
rm -f $cat.new.1 $cat.new.2 |
fi |
done |
} |
extract_messages() |
{ |
podir=${podir:-$PWD/po} |
files=`find . -name Makefile.am | xargs egrep -l '^messages:' ` |
dirs=`for i in $files; do echo \`dirname $i\`; done` |
tmpname="$PWD/messages.log" |
if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi |
if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi |
export EXTRACTRC PREPARETIPS |
for subdir in $dirs; do |
test -z "$VERBOSE" || echo "Making messages in $subdir" |
(cd $subdir |
if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then |
$EXTRACTRC *.rc *.ui *.kcfg > rc.cpp |
else |
candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null` |
if test -n "$candidates"; then |
echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line" |
fi |
fi |
if find . -name \*.c\* -o -name \*.h\* | fgrep -v ".svn" | xargs fgrep -s -q KAboutData ; then |
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp |
else echo " " > _translatorinfo.cpp |
fi |
perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile |
kdepotpath=${includedir:-`kde-config --expandvars --install include`}/kde.pot |
if ! test -f $kdepotpath; then |
kdepotpath=`kde-config --expandvars --prefix`/include/kde.pot |
fi |
$MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" srcdir=. \ |
XGETTEXT="${XGETTEXT:-xgettext} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x $kdepotpath" messages |
exit_code=$? |
if test "$exit_code" != 0; then |
echo "make exit code: $exit_code" |
fi |
) 2>&1 | grep -v '^make\[1\]' > $tmpname |
test -s $tmpname && { echo $subdir ; cat "$tmpname"; } |
test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp |
rm -f $subdir/_translatorinfo.cpp |
rm -f $subdir/_transMakefile |
done |
rm -f $tmpname |
} |
package_messages() |
{ |
rm -rf po.backup |
mkdir po.backup |
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do |
egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i |
cat po/$i > po.backup/backup_$i |
touch -r po/$i po.backup/backup_$i |
rm po/$i |
done |
extract_messages |
for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do |
test -f po/$i || echo "disappeared: $i" |
done |
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do |
sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i |
#msgmerge -q -o po/$i po/$i po/$i |
egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot |
if test -f po.backup/$i && ! cmp -s temp.pot po.backup/$i; then |
echo "will update $i" |
else |
if test -f po.backup/backup_$i; then |
test -z "$VERBOSE" || echo "I'm restoring $i" |
mv po.backup/backup_$i po/$i |
rm po.backup/$i |
else |
echo "will add $i" |
fi |
fi |
done |
rm -f temp.pot |
rm -rf po.backup |
} |
# Make sure that sorting is always done the same way |
LC_ALL=C |
export LC_ALL |
unset LANG || : |
unset LC_CTYPE || : |
unset LANGUAGE || : |
unset CDPATH || : |
admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` |
test "x$admindir" = "x$0" && admindir=. |
test "x$MAKE" = x && MAKE=make |
makefile_am=Makefile.am |
makefile_wo=Makefile.am.wo |
if test -f Makefile.am.in; then |
makefile_am=Makefile.am.in |
makefile_wo=Makefile.am.in.wo |
rm -f $makefile_wo |
fi |
# Call script to find autoconf and friends. Uses eval since the script outputs |
# sh-compatible code. |
eval `$admindir/detect-autoconf.pl` |
### |
### Main |
### |
arg=`echo $1 | tr .- __` |
case $arg in |
cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \ |
cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 | extract_messages ) $arg ;; |
configure ) call_and_fix_autoconf ;; |
* ) echo "Usage: cvs.sh <target>" |
echo "Target can be one of:" |
echo " cvs svn dist" |
echo " configure.in configure.files" |
echo " package-merge package-messages" |
echo "" |
echo "Usage: anything but $1" |
exit 1 ;; |
esac |
if test -f $makefile_wo; then |
rm $makefile_wo |
fi |
exit 0 |
/tilgungsplan/trunk/admin/Makefile.common |
---|
0,0 → 1,37 |
### Makefile.common |
### |
### Copyright (C) 2002 by the KDE developers |
### All the real work is done by the shellscript cvs.sh |
SHELL=/bin/sh |
cvs dist configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4 extract-messages: |
@admindir=$(admindir); \ |
if test "x$$admindir" = x; then \ |
admindir=.; until test -f $$admindir/admin/cvs.sh; do \ |
admindir=$$admindir/..; \ |
if test `cd $$admindir && pwd` = / ; then break; fi; \ |
done; \ |
admindir=$$admindir/admin; \ |
if test -f $$admindir/cvs.sh; then :; else \ |
echo "Can't find the admin/ directory in any parent of the"; \ |
echo "current directory. Please set it with admindir=..."; \ |
exit 1; \ |
fi; \ |
fi; \ |
if test "$@" = "package-merge"; then \ |
MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \ |
$(SHELL) $$admindir/cvs.sh package-merge ;\ |
else \ |
MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\ |
fi |
configure.in: configure.files subdirs |
configure.files: subdirs |
svn: cvs |
.SILENT: |
.PHONY: svn cvs dist package-merge package-messages |
/tilgungsplan/trunk/admin/pkg.m4.in |
---|
0,0 → 1,57 |
dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) |
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page |
dnl also defines GSTUFF_PKG_ERRORS on error |
AC_DEFUN([PKG_CHECK_MODULES], [ |
succeeded=no |
if test -z "$PKG_CONFIG"; then |
AC_PATH_PROG(PKG_CONFIG, pkg-config, no) |
fi |
if test "$PKG_CONFIG" = "no" ; then |
echo "*** The pkg-config script could not be found. Make sure it is" |
echo "*** in your path, or set the PKG_CONFIG environment variable" |
echo "*** to the full path to pkg-config." |
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." |
else |
PKG_CONFIG_MIN_VERSION=0.9.0 |
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then |
AC_MSG_CHECKING(for $2) |
if $PKG_CONFIG --exists "$2" ; then |
AC_MSG_RESULT(yes) |
succeeded=yes |
AC_MSG_CHECKING($1_CFLAGS) |
$1_CFLAGS=`$PKG_CONFIG --cflags "$2"` |
AC_MSG_RESULT($$1_CFLAGS) |
AC_MSG_CHECKING($1_LIBS) |
$1_LIBS=`$PKG_CONFIG --libs "$2"` |
AC_MSG_RESULT($$1_LIBS) |
else |
$1_CFLAGS="" |
$1_LIBS="" |
## If we have a custom action on failure, don't print errors, but |
## do set a variable so people can do so. |
$1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` |
ifelse([$4], ,echo $$1_PKG_ERRORS,) |
fi |
AC_SUBST($1_CFLAGS) |
AC_SUBST($1_LIBS) |
else |
echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." |
echo "*** See http://www.freedesktop.org/software/pkgconfig" |
fi |
fi |
if test $succeeded = yes; then |
ifelse([$3], , :, [$3]) |
else |
ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) |
fi |
]) |
/tilgungsplan/trunk/admin/oldinclude.m4.in |
---|
0,0 → 1,192 |
### -*- autoconf -*- |
dnl This file is part of the KDE libraries/packages |
dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu) |
dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org) |
dnl This file is free software; you can redistribute it and/or |
dnl modify it under the terms of the GNU Library General Public |
dnl License as published by the Free Software Foundation; either |
dnl version 2 of the License, or (at your option) any later version. |
dnl This library is distributed in the hope that it will be useful, |
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of |
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
dnl Library General Public License for more details. |
dnl You should have received a copy of the GNU Library General Public License |
dnl along with this library; see the file COPYING.LIB. If not, write to |
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
dnl Boston, MA 02110-1301, USA. |
AC_DEFUN([KDE_CHECK_MICO], |
[ |
AC_REQUIRE([KDE_CHECK_LIBDL]) |
AC_REQUIRE([KDE_MISC_TESTS]) |
AC_MSG_CHECKING(for MICO) |
if test -z "$MICODIR"; then |
kde_micodir=/usr/local |
else |
kde_micodir="$MICODIR" |
fi |
AC_ARG_WITH(micodir, |
[ --with-micodir=micodir where mico is installed ], |
kde_micodir=$withval, |
kde_micodir=$kde_micodir |
) |
AC_CACHE_VAL(kde_cv_mico_incdir, |
[ |
mico_incdirs="$kde_micodir/include /usr/include /usr/local/include /usr/local/include /opt/local/include $kde_extra_includes" |
AC_FIND_FILE(CORBA.h, $mico_incdirs, kde_cv_mico_incdir) |
]) |
kde_micodir=`echo $kde_cv_mico_incdir | sed -e 's#/include##'` |
if test ! -r $kde_micodir/include/CORBA.h; then |
AC_MSG_ERROR([No CORBA.h found, specify another micodir]) |
fi |
AC_MSG_RESULT($kde_micodir) |
MICO_INCLUDES=-I$kde_micodir/include |
AC_SUBST(MICO_INCLUDES) |
MICO_LDFLAGS=-L$kde_micodir/lib |
AC_SUBST(MICO_LDFLAGS) |
micodir=$kde_micodir |
AC_SUBST(micodir) |
AC_MSG_CHECKING([for MICO version]) |
AC_CACHE_VAL(kde_cv_mico_version, |
[ |
AC_LANG_C |
cat >conftest.$ac_ext <<EOF |
#include <stdio.h> |
#include <mico/version.h> |
int main() { |
printf("MICO_VERSION=%s\n",MICO_VERSION); |
return (0); |
} |
EOF |
ac_compile='${CC-gcc} $CFLAGS $MICO_INCLUDES conftest.$ac_ext -o conftest' |
if AC_TRY_EVAL(ac_compile); then |
if eval `./conftest 2>&5`; then |
kde_cv_mico_version=$MICO_VERSION |
else |
AC_MSG_ERROR([your system is not able to execute a small application to |
find MICO version! Check $kde_micodir/include/mico/version.h]) |
fi |
else |
AC_MSG_ERROR([your system is not able to compile a small application to |
find MICO version! Check $kde_micodir/include/mico/version.h]) |
fi |
]) |
dnl installed MICO version |
mico_v_maj=`echo $kde_cv_mico_version | sed -e 's/^\(.*\)\..*\..*$/\1/'` |
mico_v_mid=`echo $kde_cv_mico_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'` |
mico_v_min=`echo $kde_cv_mico_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'` |
if test "x$1" = "x"; then |
req_version="2.3.0" |
else |
req_version=$1 |
fi |
dnl required MICO version |
req_v_maj=`echo $req_version | sed -e 's/^\(.*\)\..*\..*$/\1/'` |
req_v_mid=`echo $req_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'` |
req_v_min=`echo $req_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'` |
if test "$mico_v_maj" -lt "$req_v_maj" || \ |
( test "$mico_v_maj" -eq "$req_v_maj" && \ |
test "$mico_v_mid" -lt "$req_v_mid" ) || \ |
( test "$mico_v_mid" -eq "$req_v_mid" && \ |
test "$mico_v_min" -lt "$req_v_min" ) |
then |
AC_MSG_ERROR([found MICO version $kde_cv_mico_version but version $req_version \ |
at least is required. You should upgrade MICO.]) |
else |
AC_MSG_RESULT([$kde_cv_mico_version (minimum version $req_version, ok)]) |
fi |
LIBMICO="-lmico$kde_cv_mico_version $LIBCRYPT $LIBSOCKET $LIBDL" |
AC_SUBST(LIBMICO) |
if test -z "$IDL"; then |
IDL='$(kde_bindir)/cuteidl' |
fi |
AC_SUBST(IDL) |
IDL_DEPENDENCIES='$(kde_includes)/CUTE.h' |
AC_SUBST(IDL_DEPENDENCIES) |
idldir="\$(includedir)/idl" |
AC_SUBST(idldir) |
]) |
AC_DEFUN([KDE_CHECK_MINI_STL], |
[ |
AC_REQUIRE([KDE_CHECK_MICO]) |
AC_MSG_CHECKING(if we use mico's mini-STL) |
AC_CACHE_VAL(kde_cv_have_mini_stl, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
kde_save_cxxflags="$CXXFLAGS" |
CXXFLAGS="$CXXFLAGS $MICO_INCLUDES" |
AC_TRY_COMPILE( |
[ |
#include <mico/config.h> |
], |
[ |
#ifdef HAVE_MINI_STL |
#error "nothing" |
#endif |
], |
kde_cv_have_mini_stl=no, |
kde_cv_have_mini_stl=yes) |
CXXFLAGS="$kde_save_cxxflags" |
AC_LANG_RESTORE |
]) |
if test "x$kde_cv_have_mini_stl" = "xyes"; then |
AC_MSG_RESULT(yes) |
$1 |
else |
AC_MSG_RESULT(no) |
$2 |
fi |
]) |
]) |
AC_DEFUN([KDE_CHECK_ANSI], |
[ |
]) |
AC_DEFUN([KDE_CHECK_INSURE], |
[ |
AC_ARG_ENABLE(insure, [ --enable-insure use insure++ for debugging [default=no]], |
[ |
if test $enableval = "no"; dnl |
then ac_use_insure="no" |
else ac_use_insure="yes" |
fi |
], [ac_use_insure="no"]) |
AC_MSG_CHECKING(if we will use Insure++ to debug) |
AC_MSG_RESULT($ac_use_insure) |
if test "$ac_use_insure" = "yes"; dnl |
then CC="insure"; CXX="insure"; dnl CFLAGS="$CLAGS -fno-rtti -fno-exceptions "???? |
fi |
]) |
AC_DEFUN([KDE_CHECK_NEWLIBS], |
[ |
]) |
/tilgungsplan/trunk/admin/nmcheck |
---|
0,0 → 1,371 |
#!/usr/bin/perl -w |
# Check namespace cleanness of a library. |
# Allowed symbols are passed as arguments. |
# They may have trailing * = wildcard. |
# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes) |
# Symbols are listed as full function unmangled names without arguments, |
# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar() |
# and all symbols in namespace/class nspace. |
# If an argument has comma in it, it's a filename of a file containing |
# allowed symbols, one per line. |
$thisProg = "$0"; # This programs name |
$library = ""; |
$allowed_symbols = ""; |
$debug = 0; |
$allowed_weak = ""; |
$weak_specified = 0; |
while( defined( $ARGV[ 0 ] )) |
{ |
$_ = shift; |
if( /^--verbose$|^-v$/ ) |
{ |
$debug = 1; |
} |
elsif( /^--help$|^-h$/ ) |
{ |
print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n", |
"\n", |
"Check if the given library has only allowed public symbols.\n", |
"\n", |
" --allowweak=[symbol] allow only these weak symbols\n", |
" -v, --verbose verbosely list files processed\n", |
" -h, --help print this help, then exit\n"; |
exit 0; |
} |
elsif( /^--allowweak=(.*)$/ ) |
{ |
$allowed_weak .= " " . $1; |
$weak_specified = 1; |
} |
elsif( /^--allowweak$/ ) # simply list all weak |
{ |
$allowed_weak .= " "; |
$weak_specified = 1; |
} |
elsif( /^--*/ ) |
{ |
die "Invalid argument!\n"; |
} |
else |
{ |
if( ! $library ) |
{ |
$library = $_; |
} |
else |
{ |
$allowed_symbols .= " " . $_; |
} |
} |
} |
if( ! $weak_specified ) |
{ |
$allowed_weak = "*"; |
# allow all weak symbols by default |
# instances of templates and similar stuff - unfortunately includes also things from other libraries, |
# so it cannot be on by default |
} |
print STDERR "library:" . $library . "\n" if $debug; |
print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug; |
print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug; |
$default_symbols = "_fini _init"; # system symbols |
# on my system, every .so has : |
# A _DYNAMIC |
# A _GLOBAL_OFFSET_TABLE_ |
# A __bss_start |
# A _edata |
# A _end |
# T _fini |
# T _init |
# no need to list A symbols in $default_symbols |
print STDERR "default_symbols: " . $default_symbols . "\n" if $debug; |
print STDOUT "Namespace cleanness check for " . $library . " :\n"; |
$lib_file = ""; |
if( $library =~ /\.la$/ ) |
{ |
# get the real library file from .la |
open( FILEIN, $library ) || die "Couldn't open $! !\n"; |
while( $line = <FILEIN> ) |
{ |
if( $line =~ /library_names=\'([^ ]*).*/o ) |
{ |
$lib_file = $1; |
} |
} |
close( FILEIN ); |
if( ! $lib_file ) |
{ |
print STDERR "Library file not found in .la file!\n"; |
exit 1; |
} |
my $libpath = $library; |
$libpath =~ s%[^/]*$%%; |
if( -e $libpath . ".libs/" . $lib_file ) |
{ |
$lib_file = $libpath . ".libs/" . $lib_file; |
} |
else |
{ |
$lib_file = $libpath . $lib_file; |
} |
} |
else |
{ |
$lib_file = $library; |
} |
print STDERR "libfile: ". $lib_file . "\n" if $debug; |
$allowed_symbols .= " " . $default_symbols; |
sub process_symbols($\@\%\@); |
@wildcards = (); |
%exacts = (); |
@regwildcards = (); |
process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards ); |
@weak_wildcards = (); |
%weak_exacts = (); |
@weak_regwildcards = (); |
process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards ); |
# grep is for stripping not exported symbols, which don't have address (=first column) |
$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |"; |
# TODO how portable is this nmcheck stuff? |
print STDERR "nm command:" . $nm_command . "\n" if $debug; |
open( FILEIN, $nm_command ) || die "nm command failed\n"; |
my $exit_code = 0; |
while( $line = <FILEIN> ) |
{ |
my $type; |
my $symbol; |
if( $line =~ /^[^ ]* (.) (.*)$/o ) |
{ |
$type = $1; |
$symbol = $2; |
} |
else |
{ |
die "Invalid line: " . $line . "\n"; |
} |
print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug; |
if( $type eq "A" ) |
{ # these should be system symbols, so ignore them |
next; |
} |
my $orig_symbol = $symbol; |
if( $symbol =~ /\(anonymous namespace\)/o ) |
{ # TODO tell to prefer named namespaces? (shorter symbols) |
next; |
} |
# strip prefixes |
# the :: appending is to make "CLASS::*" work also for "vtable for CLASS" |
$symbol =~ s/^typeinfo for (.*)$/$1::/o; |
$symbol =~ s/^typeinfo fn for (.*)$/$1::/o; |
$symbol =~ s/^typeinfo name for (.*)$/$1::/o; |
$symbol =~ s/^vtable for (.*)$/$1::/o; |
$symbol =~ s/^guard variable for (.*)$/$1::/o; |
$symbol =~ s/^reference temporary for (.*)$/$1::/o; |
$symbol =~ s/^VTT for (.*)$/$1::/o; |
$symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o; |
$symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o; |
$symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o; |
$symbol =~ s/^construction vtable thunk for (.*)$/$1::/o; |
$symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o; |
# templates seem to have also return types mangled in their name, and nm prints it too |
# they have also template arguments in the symbol |
# get rid of both of those |
while( $symbol =~ /<.*>/o ) |
{ |
$symbol =~ s/<[^<>]*>//o; # strip innermost <> |
} |
if( $symbol !~ /operator\(\)/o ) |
{ |
$symbol =~ s/ ?\(.*\).*$//o; # strip () and all after it |
} |
else |
{ |
$symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o; # strip () and all after it |
} |
$symbol =~ s/\[.*\] *$//o; # strip [in-charge] etc. |
if( $symbol =~ /(^|:| )operator /o ) |
{ |
$symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah' |
} |
else |
{ |
$symbol =~ s/.* ([^\s]+) *$/$1/o; # get last word (strip return type) |
} |
# print STDERR "Processed symbol: " . $symbol . "\n" if $debug; |
my $found = 0; |
if( $exacts{ $symbol } ) |
{ |
$found = 1; |
} |
if( ! $found ) |
{ |
for my $wild ( @wildcards ) |
{ |
if( index( $symbol, $wild ) == 0 ) |
{ |
$found = 1; |
last; |
} |
} |
} |
if( ! $found ) |
{ |
for my $wild ( @regwildcards ) |
{ |
if( $symbol =~ /^$wild$/ ) |
{ |
$found = 1; |
last; |
} |
} |
} |
if( ( ! $found ) && ( $type eq "W" || $type eq "V" )) |
{ |
if( $weak_exacts{ $symbol } ) |
{ |
$found = 1; |
} |
if( ! $found ) |
{ |
for my $wild ( @weak_wildcards ) |
{ |
if( index( $symbol, $wild ) == 0 ) |
{ |
$found = 1; |
last; |
} |
} |
} |
if( ! $found ) |
{ |
for my $wild ( @weak_regwildcards ) |
{ |
if( $symbol =~ /^$wild$/ ) |
{ |
$found = 1; |
last; |
} |
} |
} |
} |
if( ! $found ) |
{ |
print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n"; |
$exit_code = 1; |
} |
} |
close( FILEIN ); |
print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n"; |
exit $exit_code; |
sub process_symbols($\@\%\@) |
{ |
my $allowed_symbols = $_[ 0 ]; |
my $wildcards_ref = $_[ 1 ]; |
my $exacts_ref = $_[ 2 ]; |
my $regwildcards_ref = $_[ 3 ]; |
$allowed_symbols =~ s/^ *//o; # strip whitespace |
$allowed_symbols =~ s/ *$//o; |
if( $allowed_symbols eq "NONE" ) |
{ |
$allowed_symbols = ""; |
} |
my @symbols1 = split( ' ', $allowed_symbols ); |
my $i = 0; |
my @symbols2 = (); |
while( defined( $symbols1[ $i ] )) |
{ |
my $symbol = $symbols1[ $i ]; |
if( $symbol =~ /\./ ) # dot in name -> file |
{ |
open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" ); |
while( $line = <SYMIN> ) |
{ |
$line =~ s/^\s*//o; # strip whitespace |
$line =~ s/\s*$//o; |
if( $line !~ /^$/o # empty line |
&& $line !~ /^\s*#/ ) # comment line starting with # |
{ |
$symbols2[ $#symbols2 + 1 ] = $line; |
} |
} |
close( SYMIN ); |
} |
else |
{ |
$symbols2[ $#symbols2 + 1 ] = $symbol; |
} |
$i++; |
} |
$i = 0; |
while( defined( $symbols2[ $i ] )) |
{ |
my $symbol = $symbols2[ $i ]; |
if( $symbol =~ /__/ |
|| $symbol =~ /^_[A-Z]/ ) |
{ # ISO C++ 2.10.2 |
die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n"; |
} |
elsif( $symbol eq "main" |
|| $symbol eq "main*" ) |
{ |
die "Symbol main is not allowed!\n"; |
} |
if( $symbol =~ /^([^\*]*)\*$/o # trailing * without any * before it |
&& $symbol !~ /operator\*$/o ) |
{ |
print STDERR "wildcard:" . $symbol . "\n" if $debug; |
$wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1; |
} |
elsif( $symbol =~ /\*$/o |
&& ( $symbol =~ /\*::/o || $symbol =~ /::\*/o ) |
&& $symbol !~ /^\*/o |
&& $symbol !~ /operator\*$/o ) |
{ |
print STDERR "regwildcard:" . $symbol . "\n" if $debug; |
$symbol =~ s/\*/\.\*/go; # change * to .* (regexp) |
$regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol; |
} |
else |
{ |
print STDERR "exact:" . $symbol . "\n" if $debug; |
$exacts_ref->{ $symbol } = 1; |
} |
$i++; |
} |
} |
/tilgungsplan/trunk/admin/configure.in.min |
---|
0,0 → 1,57 |
dnl This file is part of the KDE libraries/packages |
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org) |
dnl This file is free software; you can redistribute it and/or |
dnl modify it under the terms of the GNU Library General Public |
dnl License as published by the Free Software Foundation; either |
dnl version 2 of the License, or (at your option) any later version. |
dnl This library is distributed in the hope that it will be useful, |
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of |
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
dnl Library General Public License for more details. |
dnl You should have received a copy of the GNU Library General Public License |
dnl along with this library; see the file COPYING.LIB. If not, write to |
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
dnl Boston, MA 02110-1301, USA. |
# Original Author was Kalle@kde.org |
# I lifted it in some mater. (Stephan Kulow) |
# I used much code from Janos Farkas |
dnl Process this file with autoconf to produce a configure script. |
AC_INIT(acinclude.m4) dnl a source file from your sub dir |
dnl This is so we can use kde-common |
AC_CONFIG_AUX_DIR(admin) |
dnl This ksh/zsh feature conflicts with `cd blah ; pwd` |
unset CDPATH |
dnl Checking host/target/build systems, for make, install etc. |
AC_CANONICAL_SYSTEM |
dnl Perform program name transformation |
AC_ARG_PROGRAM |
dnl Automake doc recommends to do this only here. (Janos) |
AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs |
KDE_SET_PREFIX |
dnl generate the config header |
AM_CONFIG_HEADER(config.h) dnl at the distribution this done |
dnl Checks for programs. |
AC_CHECK_COMPILERS |
AC_ENABLE_SHARED(yes) |
AC_ENABLE_STATIC(no) |
KDE_PROG_LIBTOOL |
dnl for NLS support. Call them in this order! |
dnl WITH_NLS is for the po files |
AM_KDE_WITH_NLS |
dnl KDE_USE_QT |
AC_PATH_KDE |
/tilgungsplan/trunk/admin/missing |
---|
0,0 → 1,353 |
#! /bin/sh |
# Common stub for a few missing GNU programs while installing. |
scriptversion=2004-09-07.08 |
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004 |
# Free Software Foundation, Inc. |
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 2, or (at your option) |
# any later version. |
# This program 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 General Public License for more details. |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
# 02111-1307, USA. |
# As a special exception to the GNU General Public License, if you |
# distribute this file as part of a program that contains a |
# configuration script generated by Autoconf, you may include it under |
# the same distribution terms that you use for the rest of that program. |
if test $# -eq 0; then |
echo 1>&2 "Try \`$0 --help' for more information" |
exit 1 |
fi |
run=: |
# In the cases where this matters, `missing' is being run in the |
# srcdir already. |
if test -f configure.ac; then |
configure_ac=configure.ac |
else |
configure_ac=configure.in |
fi |
msg="missing on your system" |
case "$1" in |
--run) |
# Try to run requested program, and just exit if it succeeds. |
run= |
shift |
"$@" && exit 0 |
# Exit code 63 means version mismatch. This often happens |
# when the user try to use an ancient version of a tool on |
# a file that requires a minimum version. In this case we |
# we should proceed has if the program had been absent, or |
# if --run hadn't been passed. |
if test $? = 63; then |
run=: |
msg="probably too old" |
fi |
;; |
-h|--h|--he|--hel|--help) |
echo "\ |
$0 [OPTION]... PROGRAM [ARGUMENT]... |
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an |
error status if there is no known handling for PROGRAM. |
Options: |
-h, --help display this help and exit |
-v, --version output version information and exit |
--run try to run the given command, and emulate it if it fails |
Supported PROGRAM values: |
aclocal touch file \`aclocal.m4' |
autoconf touch file \`configure' |
autoheader touch file \`config.h.in' |
automake touch all \`Makefile.in' files |
bison create \`y.tab.[ch]', if possible, from existing .[ch] |
flex create \`lex.yy.c', if possible, from existing .c |
help2man touch the output file |
lex create \`lex.yy.c', if possible, from existing .c |
makeinfo touch the output file |
tar try tar, gnutar, gtar, then tar without non-portable flags |
yacc create \`y.tab.[ch]', if possible, from existing .[ch] |
Send bug reports to <bug-automake@gnu.org>." |
exit 0 |
;; |
-v|--v|--ve|--ver|--vers|--versi|--versio|--version) |
echo "missing $scriptversion (GNU Automake)" |
exit 0 |
;; |
-*) |
echo 1>&2 "$0: Unknown \`$1' option" |
echo 1>&2 "Try \`$0 --help' for more information" |
exit 1 |
;; |
esac |
# Now exit if we have it, but it failed. Also exit now if we |
# don't have it and --version was passed (most likely to detect |
# the program). |
case "$1" in |
lex|yacc) |
# Not GNU programs, they don't have --version. |
;; |
tar) |
if test -n "$run"; then |
echo 1>&2 "ERROR: \`tar' requires --run" |
exit 1 |
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then |
exit 1 |
fi |
;; |
*) |
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
# We have it, but it failed. |
exit 1 |
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then |
# Could not run --version or --help. This is probably someone |
# running `$TOOL --version' or `$TOOL --help' to check whether |
# $TOOL exists and not knowing $TOOL uses missing. |
exit 1 |
fi |
;; |
esac |
# If it does not exist, or fails to run (possibly an outdated version), |
# try to emulate it. |
case "$1" in |
aclocal*) |
echo 1>&2 "\ |
WARNING: \`$1' is $msg. You should only need it if |
you modified \`acinclude.m4' or \`${configure_ac}'. You might want |
to install the \`Automake' and \`Perl' packages. Grab them from |
any GNU archive site." |
touch aclocal.m4 |
;; |
autoconf) |
echo 1>&2 "\ |
WARNING: \`$1' is $msg. You should only need it if |
you modified \`${configure_ac}'. You might want to install the |
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU |
archive site." |
touch configure |
;; |
autoheader) |
echo 1>&2 "\ |
WARNING: \`$1' is $msg. You should only need it if |
you modified \`acconfig.h' or \`${configure_ac}'. You might want |
to install the \`Autoconf' and \`GNU m4' packages. Grab them |
from any GNU archive site." |
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` |
test -z "$files" && files="config.h" |
touch_files= |
for f in $files; do |
case "$f" in |
*:*) touch_files="$touch_files "`echo "$f" | |
sed -e 's/^[^:]*://' -e 's/:.*//'`;; |
*) touch_files="$touch_files $f.in";; |
esac |
done |
touch $touch_files |
;; |
automake*) |
echo 1>&2 "\ |
WARNING: \`$1' is $msg. You should only need it if |
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. |
You might want to install the \`Automake' and \`Perl' packages. |
Grab them from any GNU archive site." |
find . -type f -name Makefile.am -print | |
sed 's/\.am$/.in/' | |
while read f; do touch "$f"; done |
;; |
autom4te) |
echo 1>&2 "\ |
WARNING: \`$1' is needed, but is $msg. |
You might have modified some files without having the |
proper tools for further handling them. |
You can get \`$1' as part of \`Autoconf' from any GNU |
archive site." |
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` |
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` |
if test -f "$file"; then |
touch $file |
else |
test -z "$file" || exec >$file |
echo "#! /bin/sh" |
echo "# Created by GNU Automake missing as a replacement of" |
echo "# $ $@" |
echo "exit 0" |
chmod +x $file |
exit 1 |
fi |
;; |
bison|yacc) |
echo 1>&2 "\ |
WARNING: \`$1' $msg. You should only need it if |
you modified a \`.y' file. You may need the \`Bison' package |
in order for those modifications to take effect. You can get |
\`Bison' from any GNU archive site." |
rm -f y.tab.c y.tab.h |
if [ $# -ne 1 ]; then |
eval LASTARG="\${$#}" |
case "$LASTARG" in |
*.y) |
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` |
if [ -f "$SRCFILE" ]; then |
cp "$SRCFILE" y.tab.c |
fi |
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` |
if [ -f "$SRCFILE" ]; then |
cp "$SRCFILE" y.tab.h |
fi |
;; |
esac |
fi |
if [ ! -f y.tab.h ]; then |
echo >y.tab.h |
fi |
if [ ! -f y.tab.c ]; then |
echo 'main() { return 0; }' >y.tab.c |
fi |
;; |
lex|flex) |
echo 1>&2 "\ |
WARNING: \`$1' is $msg. You should only need it if |
you modified a \`.l' file. You may need the \`Flex' package |
in order for those modifications to take effect. You can get |
\`Flex' from any GNU archive site." |
rm -f lex.yy.c |
if [ $# -ne 1 ]; then |
eval LASTARG="\${$#}" |
case "$LASTARG" in |
*.l) |
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` |
if [ -f "$SRCFILE" ]; then |
cp "$SRCFILE" lex.yy.c |
fi |
;; |
esac |
fi |
if [ ! -f lex.yy.c ]; then |
echo 'main() { return 0; }' >lex.yy.c |
fi |
;; |
help2man) |
echo 1>&2 "\ |
WARNING: \`$1' is $msg. You should only need it if |
you modified a dependency of a manual page. You may need the |
\`Help2man' package in order for those modifications to take |
effect. You can get \`Help2man' from any GNU archive site." |
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` |
if test -z "$file"; then |
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` |
fi |
if [ -f "$file" ]; then |
touch $file |
else |
test -z "$file" || exec >$file |
echo ".ab help2man is required to generate this page" |
exit 1 |
fi |
;; |
makeinfo) |
echo 1>&2 "\ |
WARNING: \`$1' is $msg. You should only need it if |
you modified a \`.texi' or \`.texinfo' file, or any other file |
indirectly affecting the aspect of the manual. The spurious |
call might also be the consequence of using a buggy \`make' (AIX, |
DU, IRIX). You might want to install the \`Texinfo' package or |
the \`GNU make' package. Grab either from any GNU archive site." |
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` |
if test -z "$file"; then |
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` |
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` |
fi |
touch $file |
;; |
tar) |
shift |
# We have already tried tar in the generic part. |
# Look for gnutar/gtar before invocation to avoid ugly error |
# messages. |
if (gnutar --version > /dev/null 2>&1); then |
gnutar "$@" && exit 0 |
fi |
if (gtar --version > /dev/null 2>&1); then |
gtar "$@" && exit 0 |
fi |
firstarg="$1" |
if shift; then |
case "$firstarg" in |
*o*) |
firstarg=`echo "$firstarg" | sed s/o//` |
tar "$firstarg" "$@" && exit 0 |
;; |
esac |
case "$firstarg" in |
*h*) |
firstarg=`echo "$firstarg" | sed s/h//` |
tar "$firstarg" "$@" && exit 0 |
;; |
esac |
fi |
echo 1>&2 "\ |
WARNING: I can't seem to be able to run \`tar' with the given arguments. |
You may want to install GNU tar or Free paxutils, or check the |
command line arguments." |
exit 1 |
;; |
*) |
echo 1>&2 "\ |
WARNING: \`$1' is needed, and is $msg. |
You might have modified some files without having the |
proper tools for further handling them. Check the \`README' file, |
it often tells you about the needed prerequisites for installing |
this package. You may also peek at any GNU archive site, in case |
some other package would contain this missing \`$1' program." |
exit 1 |
;; |
esac |
exit 0 |
# Local variables: |
# eval: (add-hook 'write-file-hooks 'time-stamp) |
# time-stamp-start: "scriptversion=" |
# time-stamp-format: "%:y-%02m-%02d.%02H" |
# time-stamp-end: "$" |
# End: |
/tilgungsplan/trunk/admin/acinclude.m4.in |
---|
0,0 → 1,5972 |
## -*- autoconf -*- |
dnl This file is part of the KDE libraries/packages |
dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu) |
dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org) |
dnl This file is free software; you can redistribute it and/or |
dnl modify it under the terms of the GNU Library General Public |
dnl License as published by the Free Software Foundation; either |
dnl version 2 of the License, or (at your option) any later version. |
dnl This library is distributed in the hope that it will be useful, |
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of |
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
dnl Library General Public License for more details. |
dnl You should have received a copy of the GNU Library General Public License |
dnl along with this library; see the file COPYING.LIB. If not, write to |
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
dnl Boston, MA 02110-1301, USA. |
dnl IMPORTANT NOTE: |
dnl Please do not modify this file unless you expect your modifications to be |
dnl carried into every other module in the repository. |
dnl |
dnl Single-module modifications are best placed in configure.in for kdelibs |
dnl and kdebase or configure.in.in if present. |
# KDE_PATH_X_DIRECT |
dnl Internal subroutine of AC_PATH_X. |
dnl Set ac_x_includes and/or ac_x_libraries. |
AC_DEFUN([KDE_PATH_X_DIRECT], |
[ |
AC_REQUIRE([KDE_CHECK_LIB64]) |
if test "$ac_x_includes" = NO; then |
# Guess where to find include files, by looking for this one X11 .h file. |
test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h |
# First, try using that file with no special directory specified. |
AC_TRY_CPP([#include <$x_direct_test_include>], |
[# We can compile using X headers with no special include directory. |
ac_x_includes=], |
[# Look for the header file in a standard set of common directories. |
# Check X11 before X11Rn because it is often a symlink to the current release. |
for ac_dir in \ |
/usr/X11/include \ |
/usr/X11R6/include \ |
/usr/X11R5/include \ |
/usr/X11R4/include \ |
\ |
/usr/include/X11 \ |
/usr/include/X11R6 \ |
/usr/include/X11R5 \ |
/usr/include/X11R4 \ |
\ |
/usr/local/X11/include \ |
/usr/local/X11R6/include \ |
/usr/local/X11R5/include \ |
/usr/local/X11R4/include \ |
\ |
/usr/local/include/X11 \ |
/usr/local/include/X11R6 \ |
/usr/local/include/X11R5 \ |
/usr/local/include/X11R4 \ |
\ |
/usr/X386/include \ |
/usr/x386/include \ |
/usr/XFree86/include/X11 \ |
\ |
/usr/include \ |
/usr/local/include \ |
/usr/unsupported/include \ |
/usr/athena/include \ |
/usr/local/x11r5/include \ |
/usr/lpp/Xamples/include \ |
\ |
/usr/openwin/include \ |
/usr/openwin/share/include \ |
; \ |
do |
if test -r "$ac_dir/$x_direct_test_include"; then |
ac_x_includes=$ac_dir |
break |
fi |
done]) |
fi # $ac_x_includes = NO |
if test "$ac_x_libraries" = NO; then |
# Check for the libraries. |
test -z "$x_direct_test_library" && x_direct_test_library=Xt |
test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc |
# See if we find them without any special options. |
# Don't add to $LIBS permanently. |
ac_save_LIBS="$LIBS" |
LIBS="-l$x_direct_test_library $LIBS" |
AC_TRY_LINK([#include <X11/Intrinsic.h>], [${x_direct_test_function}(1)], |
[LIBS="$ac_save_LIBS" |
# We can link X programs with no special library path. |
ac_x_libraries=], |
[LIBS="$ac_save_LIBS" |
# First see if replacing the include by lib works. |
# Check X11 before X11Rn because it is often a symlink to the current release. |
for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \ |
/usr/X11/lib${kdelibsuff} \ |
/usr/X11R6/lib${kdelibsuff} \ |
/usr/X11R5/lib${kdelibsuff} \ |
/usr/X11R4/lib${kdelibsuff} \ |
\ |
/usr/lib${kdelibsuff}/X11 \ |
/usr/lib${kdelibsuff}/X11R6 \ |
/usr/lib${kdelibsuff}/X11R5 \ |
/usr/lib${kdelibsuff}/X11R4 \ |
\ |
/usr/local/X11/lib${kdelibsuff} \ |
/usr/local/X11R6/lib${kdelibsuff} \ |
/usr/local/X11R5/lib${kdelibsuff} \ |
/usr/local/X11R4/lib${kdelibsuff} \ |
\ |
/usr/local/lib${kdelibsuff}/X11 \ |
/usr/local/lib${kdelibsuff}/X11R6 \ |
/usr/local/lib${kdelibsuff}/X11R5 \ |
/usr/local/lib${kdelibsuff}/X11R4 \ |
\ |
/usr/X386/lib${kdelibsuff} \ |
/usr/x386/lib${kdelibsuff} \ |
/usr/XFree86/lib${kdelibsuff}/X11 \ |
\ |
/usr/lib${kdelibsuff} \ |
/usr/local/lib${kdelibsuff} \ |
/usr/unsupported/lib${kdelibsuff} \ |
/usr/athena/lib${kdelibsuff} \ |
/usr/local/x11r5/lib${kdelibsuff} \ |
/usr/lpp/Xamples/lib${kdelibsuff} \ |
/lib/usr/lib${kdelibsuff}/X11 \ |
\ |
/usr/openwin/lib${kdelibsuff} \ |
/usr/openwin/share/lib${kdelibsuff} \ |
; \ |
do |
dnl Don't even attempt the hair of trying to link an X program! |
for ac_extension in a so sl; do |
if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then |
ac_x_libraries=$ac_dir |
break 2 |
fi |
done |
done]) |
fi # $ac_x_libraries = NO |
]) |
dnl ------------------------------------------------------------------------ |
dnl Find a file (or one of more files in a list of dirs) |
dnl ------------------------------------------------------------------------ |
dnl |
AC_DEFUN([AC_FIND_FILE], |
[ |
$3=NO |
for i in $2; |
do |
for j in $1; |
do |
echo "configure: __oline__: $i/$j" >&AC_FD_CC |
if test -r "$i/$j"; then |
echo "taking that" >&AC_FD_CC |
$3=$i |
break 2 |
fi |
done |
done |
]) |
dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs, |
dnl if-not-found, test-parameter, prepend-path) |
dnl |
dnl Look for program-name in list-of-dirs+$PATH. |
dnl If prepend-path is set, look in $PATH+list-of-dirs instead. |
dnl If found, $variable-name is set. If not, if-not-found is evaluated. |
dnl test-parameter: if set, the program is executed with this arg, |
dnl and only a successful exit code is required. |
AC_DEFUN([KDE_FIND_PATH], |
[ |
AC_MSG_CHECKING([for $1]) |
if test -n "$$2"; then |
kde_cv_path="$$2"; |
else |
kde_cache=`echo $1 | sed 'y%./+-%__p_%'` |
AC_CACHE_VAL(kde_cv_path_$kde_cache, |
[ |
kde_cv_path="NONE" |
kde_save_IFS=$IFS |
IFS=':' |
dirs="" |
for dir in $PATH; do |
dirs="$dirs $dir" |
done |
if test -z "$6"; then dnl Append dirs in PATH (default) |
dirs="$3 $dirs" |
else dnl Prepend dirs in PATH (if 6th arg is set) |
dirs="$dirs $3" |
fi |
IFS=$kde_save_IFS |
for dir in $dirs; do |
if test -x "$dir/$1"; then |
if test -n "$5" |
then |
evalstr="$dir/$1 $5 2>&1 " |
if eval $evalstr; then |
kde_cv_path="$dir/$1" |
break |
fi |
else |
kde_cv_path="$dir/$1" |
break |
fi |
fi |
done |
eval "kde_cv_path_$kde_cache=$kde_cv_path" |
]) |
eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" |
fi |
if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then |
AC_MSG_RESULT(not found) |
$4 |
else |
AC_MSG_RESULT($kde_cv_path) |
$2=$kde_cv_path |
fi |
]) |
AC_DEFUN([KDE_MOC_ERROR_MESSAGE], |
[ |
AC_MSG_ERROR([No Qt meta object compiler (moc) found! |
Please check whether you installed Qt correctly. |
You need to have a running moc binary. |
configure tried to run $ac_cv_path_moc and the test didn't |
succeed. If configure shouldn't have tried this one, set |
the environment variable MOC to the right one before running |
configure. |
]) |
]) |
AC_DEFUN([KDE_UIC_ERROR_MESSAGE], |
[ |
AC_MSG_WARN([No Qt ui compiler (uic) found! |
Please check whether you installed Qt correctly. |
You need to have a running uic binary. |
configure tried to run $ac_cv_path_uic and the test didn't |
succeed. If configure shouldn't have tried this one, set |
the environment variable UIC to the right one before running |
configure. |
]) |
]) |
AC_DEFUN([KDE_CHECK_UIC_FLAG], |
[ |
AC_MSG_CHECKING([whether uic supports -$1 ]) |
kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'` |
AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache, |
[ |
cat >conftest.ui <<EOT |
<!DOCTYPE UI><UI version="3" stdsetdef="1"></UI> |
EOT |
ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null" |
if AC_TRY_EVAL(ac_uic_testrun); then |
eval "kde_cv_prog_uic_$kde_cache=yes" |
else |
eval "kde_cv_prog_uic_$kde_cache=no" |
fi |
rm -f conftest* |
]) |
if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then |
AC_MSG_RESULT([yes]) |
: |
$3 |
else |
AC_MSG_RESULT([no]) |
: |
$4 |
fi |
]) |
dnl ------------------------------------------------------------------------ |
dnl Find the meta object compiler and the ui compiler in the PATH, |
dnl in $QTDIR/bin, and some more usual places |
dnl ------------------------------------------------------------------------ |
dnl |
AC_DEFUN([AC_PATH_QT_MOC_UIC], |
[ |
AC_REQUIRE([KDE_CHECK_PERL]) |
qt_bindirs="" |
for dir in $kde_qt_dirs; do |
qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc" |
done |
qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin" |
if test ! "$ac_qt_bindir" = "NO"; then |
qt_bindirs="$ac_qt_bindir $qt_bindirs" |
fi |
KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE]) |
if test -z "$UIC_NOT_NEEDED"; then |
KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""]) |
if test -z "$UIC_PATH" ; then |
KDE_UIC_ERROR_MESSAGE |
exit 1 |
else |
UIC=$UIC_PATH |
if test $kde_qtver = 3; then |
KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no) |
KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no) |
if test x$ac_uic_supports_libpath = xyes; then |
UIC="$UIC -L \$(kde_widgetdir)" |
fi |
if test x$ac_uic_supports_nounload = xyes; then |
UIC="$UIC -nounload" |
fi |
fi |
fi |
else |
UIC="echo uic not available: " |
fi |
AC_SUBST(MOC) |
AC_SUBST(UIC) |
UIC_TR="i18n" |
if test $kde_qtver = 3; then |
UIC_TR="tr2i18n" |
fi |
AC_SUBST(UIC_TR) |
]) |
AC_DEFUN([KDE_1_CHECK_PATHS], |
[ |
KDE_1_CHECK_PATH_HEADERS |
KDE_TEST_RPATH= |
if test -n "$USE_RPATH"; then |
if test -n "$kde_libraries"; then |
KDE_TEST_RPATH="-R $kde_libraries" |
fi |
if test -n "$qt_libraries"; then |
KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries" |
fi |
if test -n "$x_libraries"; then |
KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries" |
fi |
KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH" |
fi |
AC_MSG_CHECKING([for KDE libraries installed]) |
ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5' |
if AC_TRY_EVAL(ac_link) && test -s conftest; then |
AC_MSG_RESULT(yes) |
else |
AC_MSG_ERROR([your system fails at linking a small KDE application! |
Check, if your compiler is installed correctly and if you have used the |
same compiler to compile Qt and kdelibs as you did use now. |
For more details about this problem, look at the end of config.log.]) |
fi |
if eval `KDEDIR= ./conftest 2>&5`; then |
kde_result=done |
else |
kde_result=problems |
fi |
KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log |
kde_have_all_paths=yes |
KDE_SET_PATHS($kde_result) |
]) |
AC_DEFUN([KDE_SET_PATHS], |
[ |
kde_cv_all_paths="kde_have_all_paths=\"yes\" \ |
kde_htmldir=\"$kde_htmldir\" \ |
kde_appsdir=\"$kde_appsdir\" \ |
kde_icondir=\"$kde_icondir\" \ |
kde_sounddir=\"$kde_sounddir\" \ |
kde_datadir=\"$kde_datadir\" \ |
kde_locale=\"$kde_locale\" \ |
kde_cgidir=\"$kde_cgidir\" \ |
kde_confdir=\"$kde_confdir\" \ |
kde_kcfgdir=\"$kde_kcfgdir\" \ |
kde_mimedir=\"$kde_mimedir\" \ |
kde_toolbardir=\"$kde_toolbardir\" \ |
kde_wallpaperdir=\"$kde_wallpaperdir\" \ |
kde_templatesdir=\"$kde_templatesdir\" \ |
kde_bindir=\"$kde_bindir\" \ |
kde_servicesdir=\"$kde_servicesdir\" \ |
kde_servicetypesdir=\"$kde_servicetypesdir\" \ |
kde_moduledir=\"$kde_moduledir\" \ |
kde_styledir=\"$kde_styledir\" \ |
kde_widgetdir=\"$kde_widgetdir\" \ |
xdg_appsdir=\"$xdg_appsdir\" \ |
xdg_menudir=\"$xdg_menudir\" \ |
xdg_directorydir=\"$xdg_directorydir\" \ |
kde_result=$1" |
]) |
AC_DEFUN([KDE_SET_DEFAULT_PATHS], |
[ |
if test "$1" = "default"; then |
if test -z "$kde_htmldir"; then |
kde_htmldir='\${datadir}/doc/HTML' |
fi |
if test -z "$kde_appsdir"; then |
kde_appsdir='\${datadir}/applnk' |
fi |
if test -z "$kde_icondir"; then |
kde_icondir='\${datadir}/icons' |
fi |
if test -z "$kde_sounddir"; then |
kde_sounddir='\${datadir}/sounds' |
fi |
if test -z "$kde_datadir"; then |
kde_datadir='\${datadir}/apps' |
fi |
if test -z "$kde_locale"; then |
kde_locale='\${datadir}/locale' |
fi |
if test -z "$kde_cgidir"; then |
kde_cgidir='\${exec_prefix}/cgi-bin' |
fi |
if test -z "$kde_confdir"; then |
kde_confdir='\${datadir}/config' |
fi |
if test -z "$kde_kcfgdir"; then |
kde_kcfgdir='\${datadir}/config.kcfg' |
fi |
if test -z "$kde_mimedir"; then |
kde_mimedir='\${datadir}/mimelnk' |
fi |
if test -z "$kde_toolbardir"; then |
kde_toolbardir='\${datadir}/toolbar' |
fi |
if test -z "$kde_wallpaperdir"; then |
kde_wallpaperdir='\${datadir}/wallpapers' |
fi |
if test -z "$kde_templatesdir"; then |
kde_templatesdir='\${datadir}/templates' |
fi |
if test -z "$kde_bindir"; then |
kde_bindir='\${exec_prefix}/bin' |
fi |
if test -z "$kde_servicesdir"; then |
kde_servicesdir='\${datadir}/services' |
fi |
if test -z "$kde_servicetypesdir"; then |
kde_servicetypesdir='\${datadir}/servicetypes' |
fi |
if test -z "$kde_moduledir"; then |
if test "$kde_qtver" = "2"; then |
kde_moduledir='\${libdir}/kde2' |
else |
kde_moduledir='\${libdir}/kde3' |
fi |
fi |
if test -z "$kde_styledir"; then |
kde_styledir='\${libdir}/kde3/plugins/styles' |
fi |
if test -z "$kde_widgetdir"; then |
kde_widgetdir='\${libdir}/kde3/plugins/designer' |
fi |
if test -z "$xdg_appsdir"; then |
xdg_appsdir='\${datadir}/applications/kde' |
fi |
if test -z "$xdg_menudir"; then |
xdg_menudir='\${sysconfdir}/xdg/menus' |
fi |
if test -z "$xdg_directorydir"; then |
xdg_directorydir='\${datadir}/desktop-directories' |
fi |
KDE_SET_PATHS(defaults) |
else |
if test $kde_qtver = 1; then |
AC_MSG_RESULT([compiling]) |
KDE_1_CHECK_PATHS |
else |
AC_MSG_ERROR([path checking not yet supported for KDE 2]) |
fi |
fi |
]) |
AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS], |
[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" || |
test -z "$kde_icondir" || test -z "$kde_sounddir" || |
test -z "$kde_datadir" || test -z "$kde_locale" || |
test -z "$kde_cgidir" || test -z "$kde_confdir" || |
test -z "$kde_kcfgdir" || |
test -z "$kde_mimedir" || test -z "$kde_toolbardir" || |
test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" || |
test -z "$kde_bindir" || test -z "$kde_servicesdir" || |
test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" || |
test -z "$kde_styledir" || test -z "kde_widgetdir" || |
test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" || |
test "x$kde_have_all_paths" != "xyes"; then |
kde_have_all_paths=no |
fi |
]) |
AC_DEFUN([KDE_MISSING_PROG_ERROR], |
[ |
AC_MSG_ERROR([The important program $1 was not found! |
Please check whether you installed KDE correctly. |
]) |
]) |
AC_DEFUN([KDE_MISSING_ARTS_ERROR], |
[ |
AC_MSG_ERROR([The important program $1 was not found! |
Please check whether you installed aRts correctly or use |
--without-arts to compile without aRts support (this will remove functionality). |
]) |
]) |
AC_DEFUN([KDE_SET_DEFAULT_BINDIRS], |
[ |
kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin" |
test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs" |
if test -n "$KDEDIRS"; then |
kde_save_IFS=$IFS |
IFS=: |
for dir in $KDEDIRS; do |
kde_default_bindirs="$dir/bin $kde_default_bindirs " |
done |
IFS=$kde_save_IFS |
fi |
]) |
AC_DEFUN([KDE_SUBST_PROGRAMS], |
[ |
AC_ARG_WITH(arts, |
AC_HELP_STRING([--without-arts],[build without aRts [default=no]]), |
[build_arts=$withval], |
[build_arts=yes] |
) |
AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no") |
if test "$build_arts" = "no"; then |
AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts]) |
fi |
KDE_SET_DEFAULT_BINDIRS |
kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs" |
KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)]) |
KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)]) |
if test "$build_arts" '!=' "no"; then |
KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)]) |
KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)]) |
fi |
KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs]) |
kde32ornewer=1 |
kde33ornewer=1 |
if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then |
kde32ornewer= |
kde33ornewer= |
else |
if test "$kde_qtver" = "3"; then |
if test "$kde_qtsubver" -le 1; then |
kde32ornewer= |
fi |
if test "$kde_qtsubver" -le 2; then |
kde33ornewer= |
fi |
if test "$KDECONFIG" != "compiled"; then |
if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then |
kde33ornewer= |
fi |
fi |
fi |
fi |
if test -n "$kde32ornewer"; then |
KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)]) |
KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)]) |
fi |
if test -n "$kde33ornewer"; then |
KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)]) |
AC_SUBST(MAKEKDEWIDGETS) |
fi |
KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""]) |
if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then |
kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share" |
test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs" |
AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET) |
if test "$KDE_XSL_STYLESHEET" = "NO"; then |
KDE_XSL_STYLESHEET="" |
else |
KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl" |
fi |
fi |
DCOP_DEPENDENCIES='$(DCOPIDL)' |
if test -n "$kde32ornewer"; then |
KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)' |
DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)' |
AC_SUBST(KCONFIG_COMPILER) |
AC_SUBST(KCFG_DEPENDENCIES) |
AC_SUBST(DCOPIDLNG) |
fi |
AC_SUBST(DCOPIDL) |
AC_SUBST(DCOPIDL2CPP) |
AC_SUBST(DCOP_DEPENDENCIES) |
AC_SUBST(MCOPIDL) |
AC_SUBST(ARTSCCONFIG) |
AC_SUBST(MEINPROC) |
AC_SUBST(KDE_XSL_STYLESHEET) |
AC_SUBST(XMLLINT) |
])dnl |
AC_DEFUN([AC_CREATE_KFSSTND], |
[ |
AC_REQUIRE([AC_CHECK_RPATH]) |
AC_MSG_CHECKING([for KDE paths]) |
kde_result="" |
kde_cached_paths=yes |
AC_CACHE_VAL(kde_cv_all_paths, |
[ |
KDE_SET_DEFAULT_PATHS($1) |
kde_cached_paths=no |
]) |
eval "$kde_cv_all_paths" |
KDE_CHECK_PATHS_FOR_COMPLETENESS |
if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then |
# wrong values were cached, may be, we can set better ones |
kde_result= |
kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir= |
kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir= |
kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir= |
kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir= |
kde_have_all_paths= |
kde_styledir= |
kde_widgetdir= |
xdg_appsdir = xdg_menudir= xdg_directorydir= |
KDE_SET_DEFAULT_PATHS($1) |
eval "$kde_cv_all_paths" |
KDE_CHECK_PATHS_FOR_COMPLETENESS |
kde_result="$kde_result (cache overridden)" |
fi |
if test "$kde_have_all_paths" = "no"; then |
AC_MSG_ERROR([configure could not run a little KDE program to test the environment. |
Since it had compiled and linked before, it must be a strange problem on your system. |
Look at config.log for details. If you are not able to fix this, look at |
http://www.kde.org/faq/installation.html or any www.kde.org mirror. |
(If you're using an egcs version on Linux, you may update binutils!) |
]) |
else |
rm -f conftest* |
AC_MSG_RESULT($kde_result) |
fi |
bindir=$kde_bindir |
KDE_SUBST_PROGRAMS |
]) |
AC_DEFUN([AC_SUBST_KFSSTND], |
[ |
AC_SUBST(kde_htmldir) |
AC_SUBST(kde_appsdir) |
AC_SUBST(kde_icondir) |
AC_SUBST(kde_sounddir) |
AC_SUBST(kde_datadir) |
AC_SUBST(kde_locale) |
AC_SUBST(kde_confdir) |
AC_SUBST(kde_kcfgdir) |
AC_SUBST(kde_mimedir) |
AC_SUBST(kde_wallpaperdir) |
AC_SUBST(kde_bindir) |
dnl X Desktop Group standards |
AC_SUBST(xdg_appsdir) |
AC_SUBST(xdg_menudir) |
AC_SUBST(xdg_directorydir) |
dnl for KDE 2 |
AC_SUBST(kde_templatesdir) |
AC_SUBST(kde_servicesdir) |
AC_SUBST(kde_servicetypesdir) |
AC_SUBST(kde_moduledir) |
AC_SUBST(kdeinitdir, '$(kde_moduledir)') |
AC_SUBST(kde_styledir) |
AC_SUBST(kde_widgetdir) |
if test "$kde_qtver" = 1; then |
kde_minidir="$kde_icondir/mini" |
else |
# for KDE 1 - this breaks KDE2 apps using minidir, but |
# that's the plan ;-/ |
kde_minidir="/dev/null" |
fi |
dnl AC_SUBST(kde_minidir) |
dnl AC_SUBST(kde_cgidir) |
dnl AC_SUBST(kde_toolbardir) |
]) |
AC_DEFUN([KDE_MISC_TESTS], |
[ |
dnl Checks for libraries. |
AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD |
AC_SUBST(LIBUTIL) |
AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD |
AC_SUBST(LIBCOMPAT) |
kde_have_crypt= |
AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes], |
AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [ |
AC_MSG_WARN([you have no crypt in either libcrypt or libc. |
You should install libcrypt from another source or configure with PAM |
support]) |
kde_have_crypt=no |
])) |
AC_SUBST(LIBCRYPT) |
if test $kde_have_crypt = yes; then |
AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function]) |
fi |
AC_CHECK_SOCKLEN_T |
AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"]) |
if test $ac_cv_lib_dnet_dnet_ntoa = no; then |
AC_CHECK_LIB(dnet_stub, dnet_ntoa, |
[X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"]) |
fi |
AC_CHECK_FUNC(inet_ntoa) |
if test $ac_cv_func_inet_ntoa = no; then |
AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl") |
fi |
AC_CHECK_FUNC(connect) |
if test $ac_cv_func_connect = no; then |
AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", , |
$X_EXTRA_LIBS) |
fi |
AC_CHECK_FUNC(remove) |
if test $ac_cv_func_remove = no; then |
AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix") |
fi |
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. |
AC_CHECK_FUNC(shmat, , |
AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc")) |
# more headers that need to be explicitly included on darwin |
AC_CHECK_HEADERS(sys/types.h stdint.h) |
# sys/bitypes.h is needed for uint32_t and friends on Tru64 |
AC_CHECK_HEADERS(sys/bitypes.h) |
# darwin requires a poll emulation library |
AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll") |
# for some image handling on Mac OS X |
AC_CHECK_HEADERS(Carbon/Carbon.h) |
# CoreAudio framework |
AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [ |
AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API]) |
FRAMEWORK_COREAUDIO="-Wl,-framework,CoreAudio" |
]) |
AC_CHECK_RES_INIT |
AC_SUBST(LIB_POLL) |
AC_SUBST(FRAMEWORK_COREAUDIO) |
LIBSOCKET="$X_EXTRA_LIBS" |
AC_SUBST(LIBSOCKET) |
AC_SUBST(X_EXTRA_LIBS) |
AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4 |
AC_SUBST(LIBUCB) |
case $host in dnl this *is* LynxOS specific |
*-*-lynxos* ) |
AC_MSG_CHECKING([LynxOS header file wrappers]) |
[CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"] |
AC_MSG_RESULT(disabled) |
AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS |
;; |
esac |
KDE_CHECK_TYPES |
KDE_CHECK_LIBDL |
KDE_CHECK_STRLCPY |
KDE_CHECK_PIE_SUPPORT |
# darwin needs this to initialize the environment |
AC_CHECK_HEADERS(crt_externs.h) |
AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])]) |
AH_VERBATIM(_DARWIN_ENVIRON, |
[ |
#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) |
# include <sys/time.h> |
# include <crt_externs.h> |
# define environ (*_NSGetEnviron()) |
#endif |
]) |
AH_VERBATIM(_AIX_STRINGS_H_BZERO, |
[ |
/* |
* AIX defines FD_SET in terms of bzero, but fails to include <strings.h> |
* that defines bzero. |
*/ |
#if defined(_AIX) |
#include <strings.h> |
#endif |
]) |
AC_CHECK_FUNCS([vsnprintf snprintf]) |
AH_VERBATIM(_TRU64,[ |
/* |
* On HP-UX, the declaration of vsnprintf() is needed every time ! |
*/ |
#if !defined(HAVE_VSNPRINTF) || defined(hpux) |
#if __STDC__ |
#include <stdarg.h> |
#include <stdlib.h> |
#else |
#include <varargs.h> |
#endif |
#ifdef __cplusplus |
extern "C" |
#endif |
int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); |
#ifdef __cplusplus |
extern "C" |
#endif |
int snprintf(char *str, size_t n, char const *fmt, ...); |
#endif |
]) |
]) |
dnl ------------------------------------------------------------------------ |
dnl Find the header files and libraries for X-Windows. Extended the |
dnl macro AC_PATH_X |
dnl ------------------------------------------------------------------------ |
dnl |
AC_DEFUN([K_PATH_X], |
[ |
AC_REQUIRE([KDE_MISC_TESTS])dnl |
AC_REQUIRE([KDE_CHECK_LIB64]) |
AC_ARG_ENABLE( |
embedded, |
AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]), |
kde_use_qt_emb=$enableval, |
kde_use_qt_emb=no |
) |
AC_ARG_ENABLE( |
qtopia, |
AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]), |
kde_use_qt_emb_palm=$enableval, |
kde_use_qt_emb_palm=no |
) |
AC_ARG_ENABLE( |
mac, |
AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]), |
kde_use_qt_mac=$enableval, |
kde_use_qt_mac=no |
) |
# used to disable x11-specific stuff on special platforms |
AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no") |
if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then |
AC_MSG_CHECKING(for X) |
AC_CACHE_VAL(kde_cv_have_x, |
[# One or both of the vars are not set, and there is no cached value. |
if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then |
kde_x_includes=NO |
else |
kde_x_includes=$x_includes |
fi |
if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then |
kde_x_libraries=NO |
else |
kde_x_libraries=$x_libraries |
fi |
# below we use the standard autoconf calls |
ac_x_libraries=$kde_x_libraries |
ac_x_includes=$kde_x_includes |
KDE_PATH_X_DIRECT |
dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries. |
dnl Unfortunately, if compiling with the N32 ABI, this is not the correct |
dnl location. The correct location is /usr/lib32 or an undefined value |
dnl (the linker is smart enough to pick the correct default library). |
dnl Things work just fine if you use just AC_PATH_X_DIRECT. |
dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to |
dnl /usr/openwin/include, which doesn't work. /usr/include does work, so |
dnl x_includes should be left alone. |
case "$host" in |
mips-sgi-irix6*) |
;; |
*-*-solaris*) |
;; |
*) |
_AC_PATH_X_XMKMF |
if test -z "$ac_x_includes"; then |
ac_x_includes="." |
fi |
if test -z "$ac_x_libraries"; then |
ac_x_libraries="/usr/lib${kdelibsuff}" |
fi |
esac |
#from now on we use our own again |
# when the user already gave --x-includes, we ignore |
# what the standard autoconf macros told us. |
if test "$kde_x_includes" = NO; then |
kde_x_includes=$ac_x_includes |
fi |
# for --x-libraries too |
if test "$kde_x_libraries" = NO; then |
kde_x_libraries=$ac_x_libraries |
fi |
if test "$kde_x_includes" = NO; then |
AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!]) |
fi |
if test "$kde_x_libraries" = NO; then |
AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!]) |
fi |
# Record where we found X for the cache. |
kde_cv_have_x="have_x=yes \ |
kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries" |
])dnl |
eval "$kde_cv_have_x" |
if test "$have_x" != yes; then |
AC_MSG_RESULT($have_x) |
no_x=yes |
else |
AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes]) |
fi |
if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then |
X_INCLUDES="" |
x_includes="."; dnl better than nothing :- |
else |
x_includes=$kde_x_includes |
X_INCLUDES="-I$x_includes" |
fi |
if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE || test "$kde_x_libraries" = "/usr/lib"; then |
X_LDFLAGS="" |
x_libraries="/usr/lib"; dnl better than nothing :- |
else |
x_libraries=$kde_x_libraries |
X_LDFLAGS="-L$x_libraries" |
fi |
all_includes="$X_INCLUDES" |
all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS" |
# Check for libraries that X11R6 Xt/Xaw programs need. |
ac_save_LDFLAGS="$LDFLAGS" |
LDFLAGS="$LDFLAGS $X_LDFLAGS" |
# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to |
# check for ICE first), but we must link in the order -lSM -lICE or |
# we get undefined symbols. So assume we have SM if we have ICE. |
# These have to be linked with before -lX11, unlike the other |
# libraries we check for below, so use a different variable. |
# --interran@uluru.Stanford.EDU, kb@cs.umb.edu. |
AC_CHECK_LIB(ICE, IceConnectionNumber, |
[LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS) |
LDFLAGS="$ac_save_LDFLAGS" |
LIB_X11='-lX11 $(LIBSOCKET)' |
AC_MSG_CHECKING(for libXext) |
AC_CACHE_VAL(kde_cv_have_libXext, |
[ |
kde_ldflags_safe="$LDFLAGS" |
kde_libs_safe="$LIBS" |
LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS" |
LIBS="-lXext -lX11 $LIBSOCKET" |
AC_TRY_LINK([ |
#include <stdio.h> |
#ifdef STDC_HEADERS |
# include <stdlib.h> |
#endif |
], |
[ |
printf("hello Xext\n"); |
], |
kde_cv_have_libXext=yes, |
kde_cv_have_libXext=no |
) |
LDFLAGS=$kde_ldflags_safe |
LIBS=$kde_libs_safe |
]) |
AC_MSG_RESULT($kde_cv_have_libXext) |
if test "$kde_cv_have_libXext" = "no"; then |
AC_MSG_ERROR([We need a working libXext to proceed. Since configure |
can't find it itself, we stop here assuming that make wouldn't find |
them either.]) |
fi |
LIB_XEXT="-lXext" |
QTE_NORTTI="" |
elif test "$kde_use_qt_emb" = "yes"; then |
dnl We're using QT Embedded |
CPPFLAGS=-DQWS |
CXXFLAGS="$CXXFLAGS -fno-rtti" |
QTE_NORTTI="-fno-rtti -DQWS" |
X_PRE_LIBS="" |
LIB_X11="" |
LIB_XEXT="" |
LIB_XRENDER="" |
LIBSM="" |
X_INCLUDES="" |
X_LDFLAGS="" |
x_includes="" |
x_libraries="" |
elif test "$kde_use_qt_mac" = "yes"; then |
dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to |
dnl be included to get the information) --Sam |
CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp" |
CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp" |
X_PRE_LIBS="" |
LIB_X11="" |
LIB_XEXT="" |
LIB_XRENDER="" |
LIBSM="" |
X_INCLUDES="" |
X_LDFLAGS="" |
x_includes="" |
x_libraries="" |
fi |
AC_SUBST(X_PRE_LIBS) |
AC_SUBST(LIB_X11) |
AC_SUBST(LIB_XRENDER) |
AC_SUBST(LIBSM) |
AC_SUBST(X_INCLUDES) |
AC_SUBST(X_LDFLAGS) |
AC_SUBST(x_includes) |
AC_SUBST(x_libraries) |
AC_SUBST(QTE_NORTTI) |
AC_SUBST(LIB_XEXT) |
]) |
AC_DEFUN([KDE_PRINT_QT_PROGRAM], |
[ |
AC_REQUIRE([KDE_USE_QT]) |
cat > conftest.$ac_ext <<EOF |
#include "confdefs.h" |
#include <qglobal.h> |
#include <qapplication.h> |
EOF |
if test "$kde_qtver" = "2"; then |
cat >> conftest.$ac_ext <<EOF |
#include <qevent.h> |
#include <qstring.h> |
#include <qstyle.h> |
EOF |
if test $kde_qtsubver -gt 0; then |
cat >> conftest.$ac_ext <<EOF |
#if QT_VERSION < 210 |
#error 1 |
#endif |
EOF |
fi |
fi |
if test "$kde_qtver" = "3"; then |
cat >> conftest.$ac_ext <<EOF |
#include <qcursor.h> |
#include <qstylefactory.h> |
#include <private/qucomextra_p.h> |
EOF |
fi |
echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext |
cat >> conftest.$ac_ext <<EOF |
#error 1 |
#endif |
int main() { |
EOF |
if test "$kde_qtver" = "2"; then |
cat >> conftest.$ac_ext <<EOF |
QStringList *t = new QStringList(); |
Q_UNUSED(t); |
EOF |
if test $kde_qtsubver -gt 0; then |
cat >> conftest.$ac_ext <<EOF |
QString s; |
s.setLatin1("Elvis is alive", 14); |
EOF |
fi |
fi |
if test "$kde_qtver" = "3"; then |
cat >> conftest.$ac_ext <<EOF |
(void)QStyleFactory::create(QString::null); |
QCursor c(Qt::WhatsThisCursor); |
EOF |
fi |
cat >> conftest.$ac_ext <<EOF |
return 0; |
} |
EOF |
]) |
AC_DEFUN([KDE_USE_QT], |
[ |
if test -z "$1"; then |
# Current default Qt version: 3.3 |
kde_qtver=3 |
kde_qtsubver=3 |
else |
kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'` |
# following is the check if subversion isnt found in passed argument |
if test "$kde_qtsubver" = "$1"; then |
kde_qtsubver=1 |
fi |
kde_qtver=`echo "$1" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'` |
if test "$kde_qtver" = "1"; then |
kde_qtsubver=42 |
fi |
fi |
if test -z "$2"; then |
if test "$kde_qtver" = "2"; then |
if test $kde_qtsubver -gt 0; then |
kde_qt_minversion=">= Qt 2.2.2" |
else |
kde_qt_minversion=">= Qt 2.0.2" |
fi |
fi |
if test "$kde_qtver" = "3"; then |
if test $kde_qtsubver -gt 0; then |
if test $kde_qtsubver -gt 1; then |
if test $kde_qtsubver -gt 2; then |
kde_qt_minversion=">= Qt 3.3 and < 4.0" |
else |
kde_qt_minversion=">= Qt 3.2 and < 4.0" |
fi |
else |
kde_qt_minversion=">= Qt 3.1 (20021021) and < 4.0" |
fi |
else |
kde_qt_minversion=">= Qt 3.0 and < 4.0" |
fi |
fi |
if test "$kde_qtver" = "1"; then |
kde_qt_minversion=">= 1.42 and < 2.0" |
fi |
else |
kde_qt_minversion="$2" |
fi |
if test -z "$3"; then |
if test $kde_qtver = 3; then |
if test $kde_qtsubver -gt 0; then |
kde_qt_verstring="QT_VERSION >= 0x03@VER@00 && QT_VERSION < 0x040000" |
qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'` |
kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s,@VER@,$qtsubver,"` |
else |
kde_qt_verstring="QT_VERSION >= 300 && QT_VERSION < 0x040000" |
fi |
fi |
if test $kde_qtver = 2; then |
if test $kde_qtsubver -gt 0; then |
kde_qt_verstring="QT_VERSION >= 222" |
else |
kde_qt_verstring="QT_VERSION >= 200" |
fi |
fi |
if test $kde_qtver = 1; then |
kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200" |
fi |
else |
kde_qt_verstring="$3" |
fi |
if test $kde_qtver = 4; then |
kde_qt_dirs="$QTDIR /usr/lib/qt4 /usr/lib/qt /usr/share/qt4" |
fi |
if test $kde_qtver = 3; then |
kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3" |
fi |
if test $kde_qtver = 2; then |
kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt" |
fi |
if test $kde_qtver = 1; then |
kde_qt_dirs="$QTDIR /usr/lib/qt" |
fi |
]) |
AC_DEFUN([KDE_CHECK_QT_DIRECT], |
[ |
AC_REQUIRE([KDE_USE_QT]) |
AC_MSG_CHECKING([if Qt compiles without flags]) |
AC_CACHE_VAL(kde_cv_qt_direct, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH |
ac_LIBRARY_PATH="$LIBRARY_PATH" |
ac_cxxflags_safe="$CXXFLAGS" |
ac_ldflags_safe="$LDFLAGS" |
ac_libs_safe="$LIBS" |
CXXFLAGS="$CXXFLAGS -I$qt_includes" |
LDFLAGS="$LDFLAGS $X_LDFLAGS" |
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
LIBS="$LIBQT -lXext -lX11 $LIBSOCKET" |
else |
LIBS="$LIBQT $LIBSOCKET" |
fi |
LD_LIBRARY_PATH= |
export LD_LIBRARY_PATH |
LIBRARY_PATH= |
export LIBRARY_PATH |
KDE_PRINT_QT_PROGRAM |
if AC_TRY_EVAL(ac_link) && test -s conftest; then |
kde_cv_qt_direct="yes" |
else |
kde_cv_qt_direct="no" |
echo "configure: failed program was:" >&AC_FD_CC |
cat conftest.$ac_ext >&AC_FD_CC |
fi |
rm -f conftest* |
CXXFLAGS="$ac_cxxflags_safe" |
LDFLAGS="$ac_ldflags_safe" |
LIBS="$ac_libs_safe" |
LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" |
export LD_LIBRARY_PATH |
LIBRARY_PATH="$ac_LIBRARY_PATH" |
export LIBRARY_PATH |
AC_LANG_RESTORE |
]) |
if test "$kde_cv_qt_direct" = "yes"; then |
AC_MSG_RESULT(yes) |
$1 |
else |
AC_MSG_RESULT(no) |
$2 |
fi |
]) |
dnl ------------------------------------------------------------------------ |
dnl Try to find the Qt headers and libraries. |
dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed) |
dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed) |
dnl ------------------------------------------------------------------------ |
dnl |
AC_DEFUN([AC_PATH_QT_1_3], |
[ |
AC_REQUIRE([K_PATH_X]) |
AC_REQUIRE([KDE_USE_QT]) |
AC_REQUIRE([KDE_CHECK_LIB64]) |
dnl ------------------------------------------------------------------------ |
dnl Add configure flag to enable linking to MT version of Qt library. |
dnl ------------------------------------------------------------------------ |
AC_ARG_ENABLE( |
mt, |
AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]), |
kde_use_qt_mt=$enableval, |
[ |
if test $kde_qtver = 3; then |
kde_use_qt_mt=yes |
else |
kde_use_qt_mt=no |
fi |
] |
) |
USING_QT_MT="" |
dnl ------------------------------------------------------------------------ |
dnl If we not get --disable-qt-mt then adjust some vars for the host. |
dnl ------------------------------------------------------------------------ |
KDE_MT_LDFLAGS= |
KDE_MT_LIBS= |
if test "x$kde_use_qt_mt" = "xyes"; then |
KDE_CHECK_THREADING |
if test "x$kde_use_threading" = "xyes"; then |
CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS" |
KDE_MT_LDFLAGS="$USE_THREADS" |
KDE_MT_LIBS="$LIBPTHREAD" |
else |
kde_use_qt_mt=no |
fi |
fi |
AC_SUBST(KDE_MT_LDFLAGS) |
AC_SUBST(KDE_MT_LIBS) |
kde_qt_was_given=yes |
dnl ------------------------------------------------------------------------ |
dnl If we haven't been told how to link to Qt, we work it out for ourselves. |
dnl ------------------------------------------------------------------------ |
if test -z "$LIBQT_GLOB"; then |
if test "x$kde_use_qt_emb" = "xyes"; then |
LIBQT_GLOB="libqte.*" |
else |
LIBQT_GLOB="libqt.*" |
fi |
fi |
dnl ------------------------------------------------------------ |
dnl If we got --enable-embedded then adjust the Qt library name. |
dnl ------------------------------------------------------------ |
if test "x$kde_use_qt_emb" = "xyes"; then |
qtlib="qte" |
else |
qtlib="qt" |
fi |
kde_int_qt="-l$qtlib" |
if test -z "$LIBQPE"; then |
dnl ------------------------------------------------------------ |
dnl If we got --enable-palmtop then add -lqpe to the link line |
dnl ------------------------------------------------------------ |
if test "x$kde_use_qt_emb" = "xyes"; then |
if test "x$kde_use_qt_emb_palm" = "xyes"; then |
LIB_QPE="-lqpe" |
else |
LIB_QPE="" |
fi |
else |
LIB_QPE="" |
fi |
fi |
dnl ------------------------------------------------------------------------ |
dnl If we got --enable-qt-mt then adjust the Qt library name for the host. |
dnl ------------------------------------------------------------------------ |
if test "x$kde_use_qt_mt" = "xyes"; then |
LIBQT="-l$qtlib-mt" |
kde_int_qt="-l$qtlib-mt" |
LIBQT_GLOB="lib$qtlib-mt.*" |
USING_QT_MT="using -mt" |
else |
LIBQT="-l$qtlib" |
fi |
if test $kde_qtver != 1; then |
AC_REQUIRE([AC_FIND_PNG]) |
AC_REQUIRE([AC_FIND_JPEG]) |
LIBQT="$LIBQT $LIBPNG $LIBJPEG" |
fi |
if test $kde_qtver = 3; then |
AC_REQUIRE([KDE_CHECK_LIBDL]) |
LIBQT="$LIBQT $LIBDL" |
fi |
AC_MSG_CHECKING([for Qt]) |
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET" |
fi |
ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO |
qt_libraries="" |
qt_includes="" |
AC_ARG_WITH(qt-dir, |
AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]), |
[ ac_qt_includes="$withval"/include |
ac_qt_libraries="$withval"/lib${kdelibsuff} |
ac_qt_bindir="$withval"/bin |
]) |
AC_ARG_WITH(qt-includes, |
AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]), |
[ |
ac_qt_includes="$withval" |
]) |
kde_qt_libs_given=no |
AC_ARG_WITH(qt-libraries, |
AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]), |
[ ac_qt_libraries="$withval" |
kde_qt_libs_given=yes |
]) |
AC_CACHE_VAL(ac_cv_have_qt, |
[#try to guess Qt locations |
qt_incdirs="" |
for dir in $kde_qt_dirs; do |
qt_incdirs="$qt_incdirs $dir/include $dir" |
done |
qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes" |
if test ! "$ac_qt_includes" = "NO"; then |
qt_incdirs="$ac_qt_includes $qt_incdirs" |
fi |
if test "$kde_qtver" != "1"; then |
kde_qt_header=qstyle.h |
else |
kde_qt_header=qglobal.h |
fi |
AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir) |
ac_qt_includes="$qt_incdir" |
qt_libdirs="" |
for dir in $kde_qt_dirs; do |
qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir" |
done |
qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries" |
if test ! "$ac_qt_libraries" = "NO"; then |
qt_libdir=$ac_qt_libraries |
else |
qt_libdirs="$ac_qt_libraries $qt_libdirs" |
# if the Qt was given, the chance is too big that libqt.* doesn't exist |
qt_libdir=NONE |
for dir in $qt_libdirs; do |
try="ls -1 $dir/${LIBQT_GLOB}" |
if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi |
done |
fi |
for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do |
if test -e "$a"; then |
LIBQT="$LIBQT ${kde_int_qt}_incremental" |
break |
fi |
done |
ac_qt_libraries="$qt_libdir" |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
ac_cxxflags_safe="$CXXFLAGS" |
ac_ldflags_safe="$LDFLAGS" |
ac_libs_safe="$LIBS" |
CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" |
LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" |
LIBS="$LIBS $LIBQT $KDE_MT_LIBS" |
KDE_PRINT_QT_PROGRAM |
if AC_TRY_EVAL(ac_link) && test -s conftest; then |
rm -f conftest* |
else |
echo "configure: failed program was:" >&AC_FD_CC |
cat conftest.$ac_ext >&AC_FD_CC |
ac_qt_libraries="NO" |
fi |
rm -f conftest* |
CXXFLAGS="$ac_cxxflags_safe" |
LDFLAGS="$ac_ldflags_safe" |
LIBS="$ac_libs_safe" |
AC_LANG_RESTORE |
if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then |
ac_cv_have_qt="have_qt=no" |
ac_qt_notfound="" |
missing_qt_mt="" |
if test "$ac_qt_includes" = NO; then |
if test "$ac_qt_libraries" = NO; then |
ac_qt_notfound="(headers and libraries)"; |
else |
ac_qt_notfound="(headers)"; |
fi |
else |
if test "x$kde_use_qt_mt" = "xyes"; then |
missing_qt_mt=" |
Make sure that you have compiled Qt with thread support!" |
ac_qt_notfound="(library $qtlib-mt)"; |
else |
ac_qt_notfound="(library $qtlib)"; |
fi |
fi |
AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation! |
For more details about this problem, look at the end of config.log.$missing_qt_mt]) |
else |
have_qt="yes" |
fi |
]) |
eval "$ac_cv_have_qt" |
if test "$have_qt" != yes; then |
AC_MSG_RESULT([$have_qt]); |
else |
ac_cv_have_qt="have_qt=yes \ |
ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries" |
AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT]) |
qt_libraries="$ac_qt_libraries" |
qt_includes="$ac_qt_includes" |
fi |
if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then |
KDE_CHECK_QT_DIRECT(qt_libraries= ,[]) |
fi |
AC_SUBST(qt_libraries) |
AC_SUBST(qt_includes) |
if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then |
QT_INCLUDES="" |
else |
QT_INCLUDES="-I$qt_includes" |
all_includes="$QT_INCLUDES $all_includes" |
fi |
if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then |
QT_LDFLAGS="" |
else |
QT_LDFLAGS="-L$qt_libraries" |
all_libraries="$QT_LDFLAGS $all_libraries" |
fi |
test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS" |
AC_SUBST(QT_INCLUDES) |
AC_SUBST(QT_LDFLAGS) |
AC_PATH_QT_MOC_UIC |
KDE_CHECK_QT_JPEG |
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)' |
else |
LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)' |
fi |
test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS" |
for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do |
if test -e "$a"; then |
LIB_QT="$LIB_QT ${kde_int_qt}_incremental" |
break |
fi |
done |
AC_SUBST(LIB_QT) |
AC_SUBST(LIB_QPE) |
AC_SUBST(kde_qtver) |
]) |
AC_DEFUN([AC_PATH_QT], |
[ |
AC_PATH_QT_1_3 |
]) |
AC_DEFUN([KDE_CHECK_UIC_PLUGINS], |
[ |
AC_REQUIRE([AC_PATH_QT_MOC_UIC]) |
if test x$ac_uic_supports_libpath = xyes; then |
AC_MSG_CHECKING([if UIC has KDE plugins available]) |
AC_CACHE_VAL(kde_cv_uic_plugins, |
[ |
cat > actest.ui << EOF |
<!DOCTYPE UI><UI version="3.0" stdsetdef="1"> |
<class>NewConnectionDialog</class> |
<widget class="QDialog"> |
<widget class="KLineEdit"> |
<property name="name"> |
<cstring>testInput</cstring> |
</property> |
</widget> |
</widget> |
</UI> |
EOF |
kde_cv_uic_plugins=no |
kde_line="$UIC_PATH -L $kde_widgetdir" |
if test x$ac_uic_supports_nounload = xyes; then |
kde_line="$kde_line -nounload" |
fi |
kde_line="$kde_line -impl actest.h actest.ui > actest.cpp" |
if AC_TRY_EVAL(kde_line); then |
# if you're trying to debug this check and think it's incorrect, |
# better check your installation. The check _is_ correct - your |
# installation is not. |
if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then |
kde_cv_uic_plugins=yes |
fi |
fi |
rm -f actest.ui actest.cpp |
]) |
AC_MSG_RESULT([$kde_cv_uic_plugins]) |
if test "$kde_cv_uic_plugins" != yes; then |
AC_MSG_ERROR([ |
you need to install kdelibs first. |
If you did install kdelibs, then the Qt version that is picked up by |
this configure is not the same version you used to compile kdelibs. |
The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the |
_same Qt version_, compiled with the _same compiler_ and the same Qt |
configuration settings. |
]) |
fi |
fi |
]) |
AC_DEFUN([KDE_CHECK_FINAL], |
[ |
AC_ARG_ENABLE(final, |
AC_HELP_STRING([--enable-final], |
[build size optimized apps (experimental - needs lots of memory)]), |
kde_use_final=$enableval, kde_use_final=no) |
if test "x$kde_use_final" = "xyes"; then |
KDE_USE_FINAL_TRUE="" |
KDE_USE_FINAL_FALSE="#" |
else |
KDE_USE_FINAL_TRUE="#" |
KDE_USE_FINAL_FALSE="" |
fi |
AC_SUBST(KDE_USE_FINAL_TRUE) |
AC_SUBST(KDE_USE_FINAL_FALSE) |
]) |
AC_DEFUN([KDE_CHECK_CLOSURE], |
[ |
AC_ARG_ENABLE(closure, |
AC_HELP_STRING([--enable-closure],[delay template instantiation]), |
kde_use_closure=$enableval, kde_use_closure=no) |
KDE_NO_UNDEFINED="" |
if test "x$kde_use_closure" = "xyes"; then |
KDE_USE_CLOSURE_TRUE="" |
KDE_USE_CLOSURE_FALSE="#" |
# CXXFLAGS="$CXXFLAGS $REPO" |
else |
KDE_USE_CLOSURE_TRUE="#" |
KDE_USE_CLOSURE_FALSE="" |
KDE_NO_UNDEFINED="" |
case $host in |
*-*-linux-gnu) |
KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined], |
[KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined], |
[KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"], |
[KDE_NO_UNDEFINED=""])], |
[KDE_NO_UNDEFINED=""]) |
;; |
esac |
fi |
AC_SUBST(KDE_USE_CLOSURE_TRUE) |
AC_SUBST(KDE_USE_CLOSURE_FALSE) |
AC_SUBST(KDE_NO_UNDEFINED) |
]) |
dnl Check if the linker supports --enable-new-dtags and --as-needed |
AC_DEFUN([KDE_CHECK_NEW_LDFLAGS], |
[ |
AC_ARG_ENABLE(new_ldflags, |
AC_HELP_STRING([--enable-new-ldflags], |
[enable the new linker flags]), |
kde_use_new_ldflags=$enableval, |
kde_use_new_ldflags=no) |
LDFLAGS_AS_NEEDED="" |
LDFLAGS_NEW_DTAGS="" |
if test "x$kde_use_new_ldflags" = "xyes"; then |
LDFLAGS_NEW_DTAGS="" |
KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags], |
[LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],) |
KDE_CHECK_COMPILER_FLAG([Wl,--as-needed], |
[LDFLAGS_AS_NEEDED="-Wl,--as-needed"],) |
fi |
AC_SUBST(LDFLAGS_AS_NEEDED) |
AC_SUBST(LDFLAGS_NEW_DTAGS) |
]) |
AC_DEFUN([KDE_CHECK_NMCHECK], |
[ |
AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]), |
kde_use_nmcheck=$enableval, kde_use_nmcheck=no) |
if test "$kde_use_nmcheck" = "yes"; then |
KDE_USE_NMCHECK_TRUE="" |
KDE_USE_NMCHECK_FALSE="#" |
else |
KDE_USE_NMCHECK_TRUE="#" |
KDE_USE_NMCHECK_FALSE="" |
fi |
AC_SUBST(KDE_USE_NMCHECK_TRUE) |
AC_SUBST(KDE_USE_NMCHECK_FALSE) |
]) |
AC_DEFUN([KDE_EXPAND_MAKEVAR], [ |
savex=$exec_prefix |
test "x$exec_prefix" = xNONE && exec_prefix=$prefix |
tmp=$$2 |
while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done |
exec_prefix=$savex |
]) |
dnl ------------------------------------------------------------------------ |
dnl Now, the same with KDE |
dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed) |
dnl and $(kde_includes) will be the kdehdrlocation (if needed) |
dnl ------------------------------------------------------------------------ |
dnl |
AC_DEFUN([AC_BASE_PATH_KDE], |
[ |
AC_REQUIRE([KDE_CHECK_STL]) |
AC_REQUIRE([AC_PATH_QT])dnl |
AC_REQUIRE([KDE_CHECK_LIB64]) |
AC_CHECK_RPATH |
AC_MSG_CHECKING([for KDE]) |
if test "${prefix}" != NONE; then |
kde_includes=${includedir} |
KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir) |
kde_libraries=${libdir} |
KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir) |
else |
ac_kde_includes= |
ac_kde_libraries= |
kde_libraries="" |
kde_includes="" |
fi |
AC_CACHE_VAL(ac_cv_have_kde, |
[#try to guess kde locations |
if test "$kde_qtver" = 1; then |
kde_check_header="ksock.h" |
kde_check_lib="libkdecore.la" |
else |
kde_check_header="ksharedptr.h" |
kde_check_lib="libkio.la" |
fi |
if test -z "$1"; then |
kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes" |
test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs" |
kde_incdirs="$ac_kde_includes $kde_incdirs" |
AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir) |
ac_kde_includes="$kde_incdir" |
if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then |
AC_MSG_ERROR([ |
in the prefix, you've chosen, are no KDE headers installed. This will fail. |
So, check this please and use another prefix!]) |
fi |
kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}" |
test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs" |
kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs" |
AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir) |
ac_kde_libraries="$kde_libdir" |
kde_widgetdir=NO |
dnl this might be somewhere else |
AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir) |
if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then |
AC_MSG_ERROR([ |
in the prefix, you've chosen, are no KDE libraries installed. This will fail. |
So, check this please and use another prefix!]) |
fi |
if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then |
AC_MSG_ERROR([ |
I can't find the designer plugins. These are required and should have been installed |
by kdelibs]) |
fi |
if test -n "$kde_widgetdir"; then |
kde_widgetdir="$kde_widgetdir/kde3/plugins/designer" |
fi |
if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then |
ac_cv_have_kde="have_kde=no" |
else |
ac_cv_have_kde="have_kde=yes \ |
ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" |
fi |
else dnl test -z $1, e.g. from kdelibs |
ac_cv_have_kde="have_kde=no" |
fi |
])dnl |
eval "$ac_cv_have_kde" |
if test "$have_kde" != "yes"; then |
if test "${prefix}" = NONE; then |
ac_kde_prefix="$ac_default_prefix" |
else |
ac_kde_prefix="$prefix" |
fi |
if test "$exec_prefix" = NONE; then |
ac_kde_exec_prefix="$ac_kde_prefix" |
AC_MSG_RESULT([will be installed in $ac_kde_prefix]) |
else |
ac_kde_exec_prefix="$exec_prefix" |
AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix]) |
fi |
kde_libraries="${libdir}" |
kde_includes="${includedir}" |
else |
ac_cv_have_kde="have_kde=yes \ |
ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" |
AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes]) |
kde_libraries="$ac_kde_libraries" |
kde_includes="$ac_kde_includes" |
fi |
AC_SUBST(kde_libraries) |
AC_SUBST(kde_includes) |
if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then |
KDE_INCLUDES="" |
else |
KDE_INCLUDES="-I$kde_includes" |
all_includes="$KDE_INCLUDES $all_includes" |
fi |
KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION" |
KDE_LDFLAGS="-L$kde_libraries" |
if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then |
all_libraries="$KDE_LDFLAGS $all_libraries" |
fi |
AC_SUBST(KDE_LDFLAGS) |
AC_SUBST(KDE_INCLUDES) |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
all_libraries="$all_libraries $USER_LDFLAGS" |
all_includes="$all_includes $USER_INCLUDES" |
AC_SUBST(all_includes) |
AC_SUBST(all_libraries) |
if test -z "$1"; then |
KDE_CHECK_UIC_PLUGINS |
fi |
ac_kde_libraries="$kde_libdir" |
AC_SUBST(AUTODIRS) |
]) |
AC_DEFUN([KDE_CHECK_EXTRA_LIBS], |
[ |
AC_MSG_CHECKING(for extra includes) |
AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]), |
kde_use_extra_includes="$withval", |
kde_use_extra_includes=NONE |
) |
kde_extra_includes= |
if test -n "$kde_use_extra_includes" && \ |
test "$kde_use_extra_includes" != "NONE"; then |
ac_save_ifs=$IFS |
IFS=':' |
for dir in $kde_use_extra_includes; do |
kde_extra_includes="$kde_extra_includes $dir" |
USER_INCLUDES="$USER_INCLUDES -I$dir" |
done |
IFS=$ac_save_ifs |
kde_use_extra_includes="added" |
else |
kde_use_extra_includes="no" |
fi |
AC_SUBST(USER_INCLUDES) |
AC_MSG_RESULT($kde_use_extra_includes) |
kde_extra_libs= |
AC_MSG_CHECKING(for extra libs) |
AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]), |
kde_use_extra_libs=$withval, |
kde_use_extra_libs=NONE |
) |
if test -n "$kde_use_extra_libs" && \ |
test "$kde_use_extra_libs" != "NONE"; then |
ac_save_ifs=$IFS |
IFS=':' |
for dir in $kde_use_extra_libs; do |
kde_extra_libs="$kde_extra_libs $dir" |
KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir" |
USER_LDFLAGS="$USER_LDFLAGS -L$dir" |
done |
IFS=$ac_save_ifs |
kde_use_extra_libs="added" |
else |
kde_use_extra_libs="no" |
fi |
AC_SUBST(USER_LDFLAGS) |
AC_MSG_RESULT($kde_use_extra_libs) |
]) |
AC_DEFUN([KDE_1_CHECK_PATH_HEADERS], |
[ |
AC_MSG_CHECKING([for KDE headers installed]) |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
cat > conftest.$ac_ext <<EOF |
#ifdef STDC_HEADERS |
# include <stdlib.h> |
#endif |
#include <stdio.h> |
#include "confdefs.h" |
#include <kapp.h> |
int main() { |
printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data()); |
printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data()); |
printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data()); |
printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data()); |
printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data()); |
printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data()); |
printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data()); |
printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data()); |
printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data()); |
printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data()); |
printf("kde_wallpaperdir=\\"%s\\"\n", |
KApplication::kde_wallpaperdir().data()); |
printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data()); |
printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data()); |
printf("kde_servicesdir=\\"/tmp/dummy\\"\n"); |
printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n"); |
printf("kde_moduledir=\\"/tmp/dummy\\"\n"); |
printf("kde_styledir=\\"/tmp/dummy\\"\n"); |
printf("kde_widgetdir=\\"/tmp/dummy\\"\n"); |
printf("xdg_appsdir=\\"/tmp/dummy\\"\n"); |
printf("xdg_menudir=\\"/tmp/dummy\\"\n"); |
printf("xdg_directorydir=\\"/tmp/dummy\\"\n"); |
printf("kde_kcfgdir=\\"/tmp/dummy\\"\n"); |
return 0; |
} |
EOF |
ac_save_CPPFLAGS=$CPPFLAGS |
CPPFLAGS="$all_includes $CPPFLAGS" |
if AC_TRY_EVAL(ac_compile); then |
AC_MSG_RESULT(yes) |
else |
AC_MSG_ERROR([your system is not able to compile a small KDE application! |
Check, if you installed the KDE header files correctly. |
For more details about this problem, look at the end of config.log.]) |
fi |
CPPFLAGS=$ac_save_CPPFLAGS |
AC_LANG_RESTORE |
]) |
AC_DEFUN([KDE_CHECK_KDEQTADDON], |
[ |
AC_MSG_CHECKING(for kde-qt-addon) |
AC_CACHE_VAL(kde_cv_have_kdeqtaddon, |
[ |
kde_ldflags_safe="$LDFLAGS" |
kde_libs_safe="$LIBS" |
kde_cxxflags_safe="$CXXFLAGS" |
LIBS="-lkde-qt-addon $LIBQT $LIBS" |
CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes" |
LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS" |
AC_TRY_LINK([ |
#include <qdom.h> |
], |
[ |
QDomDocument doc; |
], |
kde_cv_have_kdeqtaddon=yes, |
kde_cv_have_kdeqtaddon=no |
) |
LDFLAGS=$kde_ldflags_safe |
LIBS=$kde_libs_safe |
CXXFLAGS=$kde_cxxflags_safe |
]) |
AC_MSG_RESULT($kde_cv_have_kdeqtaddon) |
if test "$kde_cv_have_kdeqtaddon" = "no"; then |
AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first. |
It is a separate package (and CVS module) named kde-qt-addon.]) |
fi |
]) |
AC_DEFUN([KDE_CREATE_LIBS_ALIASES], |
[ |
AC_REQUIRE([KDE_MISC_TESTS]) |
AC_REQUIRE([KDE_CHECK_LIBDL]) |
AC_REQUIRE([K_PATH_X]) |
if test $kde_qtver = 3; then |
case $host in |
*cygwin*) lib_kded="-lkdeinit_kded" ;; |
*) lib_kded="" ;; |
esac |
AC_SUBST(LIB_KDED, $lib_kded) |
AC_SUBST(LIB_KDECORE, "-lkdecore") |
AC_SUBST(LIB_KDEUI, "-lkdeui") |
AC_SUBST(LIB_KIO, "-lkio") |
AC_SUBST(LIB_KJS, "-lkjs") |
AC_SUBST(LIB_SMB, "-lsmb") |
AC_SUBST(LIB_KAB, "-lkab") |
AC_SUBST(LIB_KABC, "-lkabc") |
AC_SUBST(LIB_KHTML, "-lkhtml") |
AC_SUBST(LIB_KSPELL, "-lkspell") |
AC_SUBST(LIB_KPARTS, "-lkparts") |
AC_SUBST(LIB_KDEPRINT, "-lkdeprint") |
AC_SUBST(LIB_KUTILS, "-lkutils") |
AC_SUBST(LIB_KDEPIM, "-lkdepim") |
AC_SUBST(LIB_KIMPROXY, "-lkimproxy") |
AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff") |
AC_SUBST(LIB_KDNSSD, "-lkdnssd") |
AC_SUBST(LIB_KUNITTEST, "-lkunittest") |
# these are for backward compatibility |
AC_SUBST(LIB_KSYCOCA, "-lkio") |
AC_SUBST(LIB_KFILE, "-lkio") |
elif test $kde_qtver = 2; then |
AC_SUBST(LIB_KDECORE, "-lkdecore") |
AC_SUBST(LIB_KDEUI, "-lkdeui") |
AC_SUBST(LIB_KIO, "-lkio") |
AC_SUBST(LIB_KSYCOCA, "-lksycoca") |
AC_SUBST(LIB_SMB, "-lsmb") |
AC_SUBST(LIB_KFILE, "-lkfile") |
AC_SUBST(LIB_KAB, "-lkab") |
AC_SUBST(LIB_KHTML, "-lkhtml") |
AC_SUBST(LIB_KSPELL, "-lkspell") |
AC_SUBST(LIB_KPARTS, "-lkparts") |
AC_SUBST(LIB_KDEPRINT, "-lkdeprint") |
else |
AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)") |
AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)") |
AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)") |
AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)") |
AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)") |
fi |
]) |
AC_DEFUN([AC_PATH_KDE], |
[ |
AC_BASE_PATH_KDE |
AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]), |
[ |
if test "$enableval" = "no"; |
then ac_use_path_checking="default" |
else ac_use_path_checking="" |
fi |
], |
[ |
if test "$kde_qtver" = 1; |
then ac_use_path_checking="" |
else ac_use_path_checking="default" |
fi |
] |
) |
AC_CREATE_KFSSTND($ac_use_path_checking) |
AC_SUBST_KFSSTND |
KDE_CREATE_LIBS_ALIASES |
]) |
dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found]) |
AC_DEFUN([KDE_CHECK_FUNC_EXT], |
[ |
AC_MSG_CHECKING(for $1) |
AC_CACHE_VAL(kde_cv_func_$1, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
save_CXXFLAGS="$CXXFLAGS" |
kde_safe_LIBS="$LIBS" |
LIBS="$LIBS $X_EXTRA_LIBS" |
if test "$GXX" = "yes"; then |
CXXFLAGS="$CXXFLAGS -pedantic-errors" |
fi |
AC_TRY_COMPILE([ |
$2 |
], |
[ |
$3 |
], |
kde_cv_func_$1=yes, |
kde_cv_func_$1=no) |
CXXFLAGS="$save_CXXFLAGS" |
LIBS="$kde_safe_LIBS" |
AC_LANG_RESTORE |
]) |
AC_MSG_RESULT($kde_cv_func_$1) |
AC_MSG_CHECKING([if $1 needs custom prototype]) |
AC_CACHE_VAL(kde_cv_proto_$1, |
[ |
if test "x$kde_cv_func_$1" = xyes; then |
kde_cv_proto_$1=no |
else |
case "$1" in |
setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) |
kde_cv_proto_$1="yes - in libkdefakes" |
;; |
*) |
kde_cv_proto_$1=unknown |
;; |
esac |
fi |
if test "x$kde_cv_proto_$1" = xunknown; then |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
kde_safe_libs=$LIBS |
LIBS="$LIBS $X_EXTRA_LIBS" |
AC_TRY_LINK([ |
$2 |
extern "C" $4; |
], |
[ |
$3 |
], |
[ kde_cv_func_$1=yes |
kde_cv_proto_$1=yes ], |
[kde_cv_proto_$1="$1 unavailable"] |
) |
LIBS=$kde_safe_libs |
AC_LANG_RESTORE |
fi |
]) |
AC_MSG_RESULT($kde_cv_proto_$1) |
if test "x$kde_cv_func_$1" = xyes; then |
AC_DEFINE(HAVE_$5, 1, [Define if you have $1]) |
$6 |
fi |
if test "x$kde_cv_proto_$1" = xno; then |
AC_DEFINE(HAVE_$5_PROTO, 1, |
[Define if you have the $1 prototype]) |
fi |
AH_VERBATIM([_HAVE_$5_PROTO], |
[ |
#if !defined(HAVE_$5_PROTO) |
#ifdef __cplusplus |
extern "C" { |
#endif |
$4; |
#ifdef __cplusplus |
} |
#endif |
#endif |
]) |
]) |
AC_DEFUN([AC_CHECK_SETENV], |
[ |
KDE_CHECK_FUNC_EXT(setenv, [ |
#include <stdlib.h> |
], |
[setenv("VAR", "VALUE", 1);], |
[int setenv (const char *, const char *, int)], |
[SETENV]) |
]) |
AC_DEFUN([AC_CHECK_UNSETENV], |
[ |
KDE_CHECK_FUNC_EXT(unsetenv, [ |
#include <stdlib.h> |
], |
[unsetenv("VAR");], |
[void unsetenv (const char *)], |
[UNSETENV]) |
]) |
AC_DEFUN([AC_CHECK_GETDOMAINNAME], |
[ |
KDE_CHECK_FUNC_EXT(getdomainname, [ |
#include <stdlib.h> |
#include <unistd.h> |
#include <netdb.h> |
], |
[ |
char buffer[200]; |
getdomainname(buffer, 200); |
], |
[#include <sys/types.h> |
int getdomainname (char *, size_t)], |
[GETDOMAINNAME]) |
]) |
AC_DEFUN([AC_CHECK_GETHOSTNAME], |
[ |
KDE_CHECK_FUNC_EXT(gethostname, [ |
#include <stdlib.h> |
#include <unistd.h> |
], |
[ |
char buffer[200]; |
gethostname(buffer, 200); |
], |
[int gethostname (char *, unsigned int)], |
[GETHOSTNAME]) |
]) |
AC_DEFUN([AC_CHECK_USLEEP], |
[ |
KDE_CHECK_FUNC_EXT(usleep, [ |
#include <unistd.h> |
], |
[ |
usleep(200); |
], |
[int usleep (unsigned int)], |
[USLEEP]) |
]) |
AC_DEFUN([AC_CHECK_RANDOM], |
[ |
KDE_CHECK_FUNC_EXT(random, [ |
#include <stdlib.h> |
], |
[ |
random(); |
], |
[long int random(void)], |
[RANDOM]) |
KDE_CHECK_FUNC_EXT(srandom, [ |
#include <stdlib.h> |
], |
[ |
srandom(27); |
], |
[void srandom(unsigned int)], |
[SRANDOM]) |
]) |
AC_DEFUN([AC_CHECK_INITGROUPS], |
[ |
KDE_CHECK_FUNC_EXT(initgroups, [ |
#include <sys/types.h> |
#include <unistd.h> |
#include <grp.h> |
], |
[ |
char buffer[200]; |
initgroups(buffer, 27); |
], |
[int initgroups(const char *, gid_t)], |
[INITGROUPS]) |
]) |
AC_DEFUN([AC_CHECK_MKSTEMPS], |
[ |
KDE_CHECK_FUNC_EXT(mkstemps, [ |
#include <stdlib.h> |
#include <unistd.h> |
], |
[ |
mkstemps("/tmp/aaaXXXXXX", 6); |
], |
[int mkstemps(char *, int)], |
[MKSTEMPS]) |
]) |
AC_DEFUN([AC_CHECK_MKSTEMP], |
[ |
KDE_CHECK_FUNC_EXT(mkstemp, [ |
#include <stdlib.h> |
#include <unistd.h> |
], |
[ |
mkstemp("/tmp/aaaXXXXXX"); |
], |
[int mkstemp(char *)], |
[MKSTEMP]) |
]) |
AC_DEFUN([AC_CHECK_MKDTEMP], |
[ |
KDE_CHECK_FUNC_EXT(mkdtemp, [ |
#include <stdlib.h> |
#include <unistd.h> |
], |
[ |
mkdtemp("/tmp/aaaXXXXXX"); |
], |
[char *mkdtemp(char *)], |
[MKDTEMP]) |
]) |
AC_DEFUN([AC_CHECK_RES_INIT], |
[ |
AC_MSG_CHECKING([if res_init needs -lresolv]) |
kde_libs_safe="$LIBS" |
LIBS="$LIBS $X_EXTRA_LIBS -lresolv" |
AC_TRY_LINK( |
[ |
#include <sys/types.h> |
#include <netinet/in.h> |
#include <arpa/nameser.h> |
#include <resolv.h> |
], |
[ |
res_init(); |
], |
[ |
LIBRESOLV="-lresolv" |
AC_MSG_RESULT(yes) |
AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function]) |
], |
[ AC_MSG_RESULT(no) ] |
) |
LIBS=$kde_libs_safe |
AC_SUBST(LIBRESOLV) |
KDE_CHECK_FUNC_EXT(res_init, |
[ |
#include <sys/types.h> |
#include <netinet/in.h> |
#include <arpa/nameser.h> |
#include <resolv.h> |
], |
[res_init()], |
[int res_init(void)], |
[RES_INIT]) |
]) |
AC_DEFUN([AC_CHECK_STRLCPY], |
[ |
KDE_CHECK_FUNC_EXT(strlcpy, [ |
#include <string.h> |
], |
[ char buf[20]; |
strlcpy(buf, "KDE function test", sizeof(buf)); |
], |
[unsigned long strlcpy(char*, const char*, unsigned long)], |
[STRLCPY]) |
]) |
AC_DEFUN([AC_CHECK_STRLCAT], |
[ |
KDE_CHECK_FUNC_EXT(strlcat, [ |
#include <string.h> |
], |
[ char buf[20]; |
buf[0]='\0'; |
strlcat(buf, "KDE function test", sizeof(buf)); |
], |
[unsigned long strlcat(char*, const char*, unsigned long)], |
[STRLCAT]) |
]) |
AC_DEFUN([AC_CHECK_RES_QUERY], |
[ |
KDE_CHECK_FUNC_EXT(res_query, [ |
#include <sys/types.h> |
#include <netinet/in.h> |
#include <arpa/nameser.h> |
#include <resolv.h> |
#include <netdb.h> |
], |
[ |
res_query(NULL, 0, 0, NULL, 0); |
], |
[int res_query(const char *, int, int, unsigned char *, int)], |
[RES_QUERY]) |
]) |
AC_DEFUN([AC_CHECK_DN_SKIPNAME], |
[ |
KDE_CHECK_FUNC_EXT(dn_skipname, [ |
#include <sys/types.h> |
#include <netinet/in.h> |
#include <arpa/nameser.h> |
#include <resolv.h> |
], |
[ |
dn_skipname (NULL, NULL); |
], |
[int dn_skipname (unsigned char *, unsigned char *)], |
[DN_SKIPNAME]) |
]) |
AC_DEFUN([AC_FIND_GIF], |
[AC_MSG_CHECKING([for giflib]) |
AC_CACHE_VAL(ac_cv_lib_gif, |
[ac_save_LIBS="$LIBS" |
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
LIBS="$all_libraries -lgif -lX11 $LIBSOCKET" |
else |
LIBS="$all_libraries -lgif" |
fi |
AC_TRY_LINK(dnl |
[ |
#ifdef __cplusplus |
extern "C" { |
#endif |
int GifLastError(void); |
#ifdef __cplusplus |
} |
#endif |
/* We use char because int might match the return type of a gcc2 |
builtin and then its argument prototype would still apply. */ |
], |
[return GifLastError();], |
eval "ac_cv_lib_gif=yes", |
eval "ac_cv_lib_gif=no") |
LIBS="$ac_save_LIBS" |
])dnl |
if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then |
AC_MSG_RESULT(yes) |
AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif]) |
else |
AC_MSG_ERROR(You need giflib30. Please install the kdesupport package) |
fi |
]) |
AC_DEFUN([KDE_FIND_JPEG_HELPER], |
[ |
AC_MSG_CHECKING([for libjpeg$2]) |
AC_CACHE_VAL(ac_cv_lib_jpeg_$1, |
[ |
ac_save_LIBS="$LIBS" |
LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm" |
ac_save_CFLAGS="$CFLAGS" |
CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" |
AC_TRY_LINK( |
[ |
#ifdef __cplusplus |
extern "C" { |
#endif |
void jpeg_CreateDecompress(); |
#ifdef __cplusplus |
} |
#endif |
], |
[jpeg_CreateDecompress();], |
eval "ac_cv_lib_jpeg_$1=-ljpeg$2", |
eval "ac_cv_lib_jpeg_$1=no") |
LIBS="$ac_save_LIBS" |
CFLAGS="$ac_save_CFLAGS" |
]) |
if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then |
LIBJPEG="$ac_cv_lib_jpeg_$1" |
AC_MSG_RESULT($ac_cv_lib_jpeg_$1) |
else |
AC_MSG_RESULT(no) |
$3 |
fi |
]) |
AC_DEFUN([AC_FIND_JPEG], |
[ |
dnl first look for libraries |
KDE_FIND_JPEG_HELPER(6b, 6b, |
KDE_FIND_JPEG_HELPER(normal, [], |
[ |
LIBJPEG= |
] |
) |
) |
dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h |
dnl requires system dependent includes loaded before it) |
jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes" |
AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir) |
test "x$jpeg_incdir" = xNO && jpeg_incdir= |
dnl if headers _and_ libraries are missing, this is no error, and we |
dnl continue with a warning (the user will get no jpeg support in khtml) |
dnl if only one is missing, it means a configuration error, but we still |
dnl only warn |
if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then |
AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg]) |
else |
if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then |
AC_MSG_WARN([ |
There is an installation error in jpeg support. You seem to have only one |
of either the headers _or_ the libraries installed. You may need to either |
provide correct --with-extra-... options, or the development package of |
libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/ |
Disabling JPEG support. |
]) |
else |
AC_MSG_WARN([libjpeg not found. disable JPEG support.]) |
fi |
jpeg_incdir= |
LIBJPEG= |
fi |
AC_SUBST(LIBJPEG) |
AH_VERBATIM(_AC_CHECK_JPEG, |
[/* |
* jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system |
* headers and I'm too lazy to write a configure test as long as only |
* unixware is related |
*/ |
#ifdef _UNIXWARE |
#define HAVE_BOOLEAN |
#endif |
]) |
]) |
AC_DEFUN([KDE_CHECK_QT_JPEG], |
[ |
if test -n "$LIBJPEG"; then |
AC_MSG_CHECKING([if Qt needs $LIBJPEG]) |
AC_CACHE_VAL(kde_cv_qt_jpeg, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
ac_save_LIBS="$LIBS" |
LIBS="$all_libraries $USER_LDFLAGS $LIBQT" |
LIBS=`echo $LIBS | sed "s/$LIBJPEG//"` |
ac_save_CXXFLAGS="$CXXFLAGS" |
CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" |
AC_TRY_LINK( |
[#include <qapplication.h>], |
[ |
int argc; |
char** argv; |
QApplication app(argc, argv);], |
eval "kde_cv_qt_jpeg=no", |
eval "kde_cv_qt_jpeg=yes") |
LIBS="$ac_save_LIBS" |
CXXFLAGS="$ac_save_CXXFLAGS" |
AC_LANG_RESTORE |
fi |
]) |
if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then |
AC_MSG_RESULT(yes) |
LIBJPEG_QT='$(LIBJPEG)' |
else |
AC_MSG_RESULT(no) |
LIBJPEG_QT= |
fi |
]) |
AC_DEFUN([AC_FIND_ZLIB], |
[ |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
AC_MSG_CHECKING([for libz]) |
AC_CACHE_VAL(ac_cv_lib_z, |
[ |
kde_save_LIBS="$LIBS" |
LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET" |
kde_save_CFLAGS="$CFLAGS" |
CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" |
AC_TRY_LINK(dnl |
[ |
#include<zlib.h> |
], |
[ |
char buf[42]; |
gzFile f = (gzFile) 0; |
/* this would segfault.. but we only link, don't run */ |
(void) gzgets(f, buf, sizeof(buf)); |
return (zlibVersion() == ZLIB_VERSION); |
], |
eval "ac_cv_lib_z='-lz'", |
eval "ac_cv_lib_z=no") |
LIBS="$kde_save_LIBS" |
CFLAGS="$kde_save_CFLAGS" |
])dnl |
if test ! "$ac_cv_lib_z" = no; then |
AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz]) |
LIBZ="$ac_cv_lib_z" |
AC_MSG_RESULT($ac_cv_lib_z) |
else |
AC_MSG_ERROR(not found. |
Possibly configure picks up an outdated version |
installed by XFree86. Remove it from your system. |
Check your installation and look into config.log) |
LIBZ="" |
fi |
AC_SUBST(LIBZ) |
]) |
AC_DEFUN([KDE_TRY_TIFFLIB], |
[ |
AC_MSG_CHECKING([for libtiff $1]) |
AC_CACHE_VAL(kde_cv_libtiff_$1, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
kde_save_LIBS="$LIBS" |
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm" |
else |
LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm" |
fi |
kde_save_CXXFLAGS="$CXXFLAGS" |
CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" |
AC_TRY_LINK(dnl |
[ |
#include<tiffio.h> |
], |
[return (TIFFOpen( "", "r") == 0); ], |
[ |
kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ" |
], [ |
kde_cv_libtiff_$1=no |
]) |
LIBS="$kde_save_LIBS" |
CXXFLAGS="$kde_save_CXXFLAGS" |
AC_LANG_RESTORE |
]) |
if test "$kde_cv_libtiff_$1" = "no"; then |
AC_MSG_RESULT(no) |
LIBTIFF="" |
$3 |
else |
LIBTIFF="$kde_cv_libtiff_$1" |
AC_MSG_RESULT(yes) |
AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff]) |
$2 |
fi |
]) |
AC_DEFUN([AC_FIND_TIFF], |
[ |
AC_REQUIRE([K_PATH_X]) |
AC_REQUIRE([AC_FIND_ZLIB]) |
AC_REQUIRE([AC_FIND_JPEG]) |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
KDE_TRY_TIFFLIB(tiff, [], |
KDE_TRY_TIFFLIB(tiff34)) |
AC_SUBST(LIBTIFF) |
]) |
AC_DEFUN([KDE_FIND_LIBEXR], |
[ |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
AC_REQUIRE([AC_FIND_ZLIB]) |
AC_CACHE_VAL(ac_cv_libexr, |
[ |
if test -z "$PKG_CONFIG"; then |
AC_PATH_PROG(PKG_CONFIG, pkg-config, no) |
fi |
AC_MSG_CHECKING([for OpenEXR libraries]) |
if test "$PKG_CONFIG" = "no" ; then |
AC_MSG_RESULT(no) |
echo "*** The pkg-config script could not be found. Make sure it is" |
echo "*** in your path, or set the PKG_CONFIG environment variable" |
echo "*** to the full path to pkg-config." |
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." |
else |
if !(`$PKG_CONFIG --exists OpenEXR`) ; then |
AC_MSG_RESULT(no) |
EXRSTATUS=no |
else |
if !(`$PKG_CONFIG --atleast-version="1.1.1" OpenEXR`) ; then |
AC_MSG_RESULT(no) |
EXRSTATUS=old |
else |
kde_save_LIBS="$LIBS" |
LIBS="$LIBS $all_libraries $USER_LDFLAGS `pkg-config --libs OpenEXR` $LIBZ" |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
kde_save_CXXFLAGS="$CXXFLAGS" |
EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR` |
CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS" |
AC_TRY_LINK(dnl |
[ |
#include <ImfRgbaFile.h> |
], |
[ |
using namespace Imf; |
RgbaInputFile file ("dummy"); |
return 0; |
], |
eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'", |
eval "ac_cv_libexr=no" |
) |
LIBS="$kde_save_LIBS" |
CXXFLAGS="$kde_save_CXXFLAGS" |
AC_LANG_RESTORE |
])dnl |
if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then |
AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR]) |
LIB_EXR="$ac_cv_libexr" |
AC_MSG_RESULT($ac_cv_libexr) |
else |
AC_MSG_RESULT(no) |
LIB_EXR="" |
fi |
fi |
fi |
fi |
AC_SUBST(LIB_EXR) |
AC_SUBST(EXR_FLAGS) |
]) |
AC_DEFUN([AC_FIND_PNG], |
[ |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
AC_REQUIRE([AC_FIND_ZLIB]) |
AC_MSG_CHECKING([for libpng]) |
AC_CACHE_VAL(ac_cv_lib_png, |
[ |
kde_save_LIBS="$LIBS" |
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET" |
else |
LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm" |
fi |
kde_save_CFLAGS="$CFLAGS" |
CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" |
AC_TRY_LINK(dnl |
[ |
#include<png.h> |
], |
[ |
png_structp png_ptr = png_create_read_struct( /* image ptr */ |
PNG_LIBPNG_VER_STRING, 0, 0, 0 ); |
return( png_ptr != 0 ); |
], |
eval "ac_cv_lib_png='-lpng $LIBZ -lm'", |
eval "ac_cv_lib_png=no" |
) |
LIBS="$kde_save_LIBS" |
CFLAGS="$kde_save_CFLAGS" |
])dnl |
if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then |
AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng]) |
LIBPNG="$ac_cv_lib_png" |
AC_SUBST(LIBPNG) |
AC_MSG_RESULT($ac_cv_lib_png) |
else |
AC_MSG_RESULT(no) |
LIBPNG="" |
AC_SUBST(LIBPNG) |
fi |
]) |
AC_DEFUN([AC_FIND_JASPER], |
[ |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
AC_REQUIRE([AC_FIND_JPEG]) |
AC_MSG_CHECKING([for jasper]) |
AC_CACHE_VAL(ac_cv_jasper, |
[ |
kde_save_LIBS="$LIBS" |
LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm" |
kde_save_CFLAGS="$CFLAGS" |
CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" |
AC_TRY_LINK(dnl |
[ |
#include<jasper/jasper.h> |
], |
[ |
return( jas_init() ); |
], |
eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'", |
eval "ac_cv_jasper=no" |
) |
LIBS="$kde_save_LIBS" |
CFLAGS="$kde_save_CFLAGS" |
])dnl |
if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then |
AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper]) |
LIB_JASPER="$ac_cv_jasper" |
AC_MSG_RESULT($ac_cv_jasper) |
else |
AC_MSG_RESULT(no) |
LIB_JASPER="" |
fi |
AC_SUBST(LIB_JASPER) |
]) |
AC_DEFUN([AC_CHECK_BOOL], |
[ |
AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool]) |
]) |
AC_DEFUN([AC_CHECK_GNU_EXTENSIONS], |
[ |
AC_MSG_CHECKING(if you need GNU extensions) |
AC_CACHE_VAL(ac_cv_gnu_extensions, |
[ |
cat > conftest.c << EOF |
#include <features.h> |
#ifdef __GNU_LIBRARY__ |
yes |
#endif |
EOF |
if (eval "$ac_cpp conftest.c") 2>&5 | |
egrep "yes" >/dev/null 2>&1; then |
rm -rf conftest* |
ac_cv_gnu_extensions=yes |
else |
ac_cv_gnu_extensions=no |
fi |
]) |
AC_MSG_RESULT($ac_cv_gnu_extensions) |
if test "$ac_cv_gnu_extensions" = "yes"; then |
AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions]) |
fi |
]) |
AC_DEFUN([KDE_CHECK_COMPILER_FLAG], |
[ |
AC_MSG_CHECKING([whether $CXX supports -$1]) |
kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` |
AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
save_CXXFLAGS="$CXXFLAGS" |
CXXFLAGS="$CXXFLAGS -$1" |
AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], []) |
CXXFLAGS="$save_CXXFLAGS" |
AC_LANG_RESTORE |
]) |
if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then |
AC_MSG_RESULT(yes) |
: |
$2 |
else |
AC_MSG_RESULT(no) |
: |
$3 |
fi |
]) |
AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG], |
[ |
AC_MSG_CHECKING([whether $CC supports -$1]) |
kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` |
AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache, |
[ |
AC_LANG_SAVE |
AC_LANG_C |
save_CFLAGS="$CFLAGS" |
CFLAGS="$CFLAGS -$1" |
AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], []) |
CFLAGS="$save_CFLAGS" |
AC_LANG_RESTORE |
]) |
if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then |
AC_MSG_RESULT(yes) |
: |
$2 |
else |
AC_MSG_RESULT(no) |
: |
$3 |
fi |
]) |
dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables |
dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever]) |
dnl it's all white-space separated |
AC_DEFUN([AC_REMOVE_FORBIDDEN], |
[ __val=$$1 |
__forbid=" $2 " |
if test -n "$__val"; then |
__new="" |
ac_save_IFS=$IFS |
IFS=" " |
for i in $__val; do |
case "$__forbid" in |
*" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;; |
*) # Careful to not add spaces, where there were none, because otherwise |
# libtool gets confused, if we change e.g. CXX |
if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; |
esac |
done |
IFS=$ac_save_IFS |
$1=$__new |
fi |
]) |
AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER], |
[ |
AC_MSG_CHECKING([whether $CC is blacklisted]) |
dnl In theory we have tu run this test against $CC and $CXX |
dnl in C and in C++ mode, because its perfectly legal for |
dnl the user to mix compiler versions, since C has a defined |
dnl ABI. |
dnl |
dnl For now, we assume the user is not on crack. |
AC_TRY_COMPILE([ |
#ifdef __GNUC__ |
#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0 |
choke me |
#endif |
#endif |
], , |
kde_bad_compiler=no, |
kde_bad_compiler=yes |
) |
AC_MSG_RESULT($kde_bad_compiler) |
if test "$kde_bad_compiler" = "yes"; then |
AC_MSG_ERROR([ |
This particular compiler version is blacklisted because it |
is known to miscompile KDE. Please use a newer version, or |
if that is not yet available, choose an older version. |
Please do not report a bug or bother us reporting this |
configure error. We know about it, and we introduced |
it by intention to avoid untraceable bugs or crashes in KDE. |
]) |
fi |
]) |
AC_DEFUN([KDE_CHECK_FOR_OPT_NOINLINE_MATCH], |
[ |
AC_CACHE_CHECK([whether system headers can cope with -O2 -fno-inline], |
kde_cv_opt_noinline_match, |
[ |
kde_cv_opt_noinline_match=irrelevant |
dnl if we don't use both -O2 and -fno-inline, this check is moot |
if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \ |
&& echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then |
ac_cflags_save="$CFLAGS" |
CFLAGS="$CFLAGS -D_USE_GNU" |
AC_TRY_LINK([ |
#include <string.h> |
], [ const char *pt, *et; |
et = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p ( ";," ) && ((size_t)(const void *)(( ";," )+ 1) - (size_t)(const void *)( ";," ) == 1) ? ((__a0 =((__const char *) ( ";," ))[0], __a0 == '\0') ? ((void) ( pt ),((void *)0) ) : ((__a1 = ((__const char *) ( ";," ))[1], __a1== '\0') ? (__extension__ (__builtin_constant_p ( __a0 ) && ( __a0 ) == '\0' ? (char *) __rawmemchr ( pt , __a0) : strchr( pt , __a0 ))) : ((__a2 = ((__const char *) ( ";," ))[2], __a2 == '\0') ? __strpbrk_c2 ( pt , __a0, __a1) :(((__const char *) ( ";," ))[3] == '\0' ? __strpbrk_c3 ( pt ,__a0, __a1, __a2): strpbrk ( pt , ";," ))))) : strpbrk ( pt , ";," )); }) ; |
], |
kde_cv_opt_noinline_match=yes, |
kde_cv_opt_noinline_match=no |
) |
CFLAGS="$ac_cflags_save" |
fi |
]) |
]) |
dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given |
AC_DEFUN([AC_VALIDIFY_CXXFLAGS], |
[dnl |
if test "x$kde_use_qt_emb" != "xyes"; then |
AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath]) |
AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath]) |
else |
AC_REMOVE_FORBIDDEN(CXX, [-rpath]) |
AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath]) |
fi |
]) |
AC_DEFUN([AC_CHECK_COMPILERS], |
[ |
AC_ARG_ENABLE(debug, |
AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]), |
[ |
case $enableval in |
yes) |
kde_use_debug_code="yes" |
kde_use_debug_define=no |
;; |
full) |
kde_use_debug_code="full" |
kde_use_debug_define=no |
;; |
*) |
kde_use_debug_code="no" |
kde_use_debug_define=yes |
;; |
esac |
], |
[kde_use_debug_code="no" |
kde_use_debug_define=no |
]) |
dnl Just for configure --help |
AC_ARG_ENABLE(dummyoption, |
AC_HELP_STRING([--disable-debug], |
[disables debug output and debug symbols [default=no]]), |
[],[]) |
AC_ARG_ENABLE(strict, |
AC_HELP_STRING([--enable-strict], |
[compiles with strict compiler options (may not work!)]), |
[ |
if test $enableval = "no"; then |
kde_use_strict_options="no" |
else |
kde_use_strict_options="yes" |
fi |
], [kde_use_strict_options="no"]) |
AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]), |
[ |
if test $enableval = "no"; then |
kde_use_warnings="no" |
else |
kde_use_warnings="yes" |
fi |
], [kde_use_warnings="yes"]) |
dnl enable warnings for debug build |
if test "$kde_use_debug_code" != "no"; then |
kde_use_warnings=yes |
fi |
AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]), |
[kde_use_profiling=$enableval], |
[kde_use_profiling="no"] |
) |
dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS |
CFLAGS=" $CFLAGS" |
AC_PROG_CC |
AC_PROG_CPP |
if test "$GCC" = "yes"; then |
if test "$kde_use_debug_code" != "no"; then |
if test $kde_use_debug_code = "full"; then |
CFLAGS="-g3 -fno-inline $CFLAGS" |
else |
CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS" |
fi |
else |
CFLAGS="-O2 $CFLAGS" |
fi |
fi |
if test "$kde_use_debug_define" = "yes"; then |
CFLAGS="-DNDEBUG $CFLAGS" |
fi |
case "$host" in |
*-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";; |
*-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";; |
esac |
if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then |
LDFLAGS="" |
fi |
CXXFLAGS=" $CXXFLAGS" |
AC_PROG_CXX |
KDE_CHECK_FOR_BAD_COMPILER |
if test "$GXX" = "yes" || test "$CXX" = "KCC"; then |
if test "$kde_use_debug_code" != "no"; then |
if test "$CXX" = "KCC"; then |
CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" |
else |
if test "$kde_use_debug_code" = "full"; then |
CXXFLAGS="-g3 -fno-inline $CXXFLAGS" |
else |
CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS" |
fi |
fi |
KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"]) |
dnl convenience compiler flags |
KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""]) |
AC_SUBST(WOVERLOADED_VIRTUAL) |
else |
if test "$CXX" = "KCC"; then |
CXXFLAGS="+K3 $CXXFLAGS" |
else |
CXXFLAGS="-O2 $CXXFLAGS" |
fi |
fi |
fi |
if test "$kde_use_debug_define" = "yes"; then |
CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS" |
fi |
if test "$kde_use_profiling" = "yes"; then |
KDE_CHECK_COMPILER_FLAG(pg, |
[ |
CFLAGS="-pg $CFLAGS" |
CXXFLAGS="-pg $CXXFLAGS" |
]) |
fi |
if test "$kde_use_warnings" = "yes"; then |
if test "$GCC" = "yes"; then |
CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS" |
case $host in |
*-*-linux-gnu) |
CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS" |
CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS" |
KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"]) |
KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"]) |
;; |
esac |
KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"]) |
KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"]) |
dnl ### FIXME: revert for KDE 4 |
KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"]) |
fi |
fi |
if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then |
CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS" |
fi |
AC_ARG_ENABLE(pch, |
AC_HELP_STRING([--enable-pch], |
[enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]), |
[ kde_use_pch=$enableval ],[ kde_use_pch=no ]) |
HAVE_GCC_VISIBILITY=0 |
AC_SUBST([HAVE_GCC_VISIBILITY]) |
if test "$GXX" = "yes"; then |
gcc_no_reorder_blocks=NO |
KDE_CHECK_COMPILER_FLAG(fno-reorder-blocks,[gcc_no_reorder_blocks=YES]) |
if test $kde_use_debug_code != "no" && \ |
test $kde_use_debug_code != "full" && \ |
test "YES" = "$gcc_no_reorder_blocks" ; then |
CXXFLAGS="$CXXFLAGS -fno-reorder-blocks" |
CFLAGS="$CFLAGS -fno-reorder-blocks" |
fi |
KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"]) |
KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"]) |
KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"]) |
KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= ) |
ENABLE_PERMISSIVE_FLAG="-fpermissive" |
if test "$kde_use_pch" = "yes"; then |
AC_MSG_CHECKING(whether gcc supports precompiling c header files) |
echo >conftest.h |
if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then |
kde_gcc_supports_pch=yes |
AC_MSG_RESULT(yes) |
else |
kde_gcc_supports_pch=no |
AC_MSG_RESULT(no) |
fi |
if test "$kde_gcc_supports_pch" = "yes"; then |
AC_MSG_CHECKING(whether gcc supports precompiling c++ header files) |
if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then |
kde_gcc_supports_pch=yes |
AC_MSG_RESULT(yes) |
else |
kde_gcc_supports_pch=no |
AC_MSG_RESULT(no) |
fi |
fi |
rm -f conftest.h conftest.h.gch |
fi |
KDE_CHECK_FOR_OPT_NOINLINE_MATCH |
if test "x$kde_cv_opt_noinline_match" = "xno" ; then |
CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`" |
fi |
fi |
AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes") |
if test "$CXX" = "KCC"; then |
dnl unfortunately we currently cannot disable exception support in KCC |
dnl because doing so is binary incompatible and Qt by default links with exceptions :-( |
dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"]) |
dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= ) |
if test "$kde_use_pch" = "yes"; then |
dnl TODO: support --pch-dir! |
KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"]) |
dnl the below works (but the dir must exist), but it's |
dnl useless for a whole package. |
dnl The are precompiled headers for each source file, so when compiling |
dnl from scratch, it doesn't make a difference, and they take up |
dnl around ~5Mb _per_ sourcefile. |
dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp, |
dnl [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"]) |
fi |
dnl this flag controls inlining. by default KCC inlines in optimisation mode |
dnl all implementations that are defined inside the class {} declaration. |
dnl because of templates-compatibility with broken gcc compilers, this |
dnl can cause excessive inlining. This flag limits it to a sane level |
KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"]) |
KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"]) |
KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"]) |
KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"]) |
dnl Some source files are shared between multiple executables |
dnl (or libraries) and some of those need template instantiations. |
dnl In that case KCC needs to compile those sources with |
dnl --one_instantiation_per_object. To make it easy for us we compile |
dnl _all_ objects with that flag (--one_per is a shorthand). |
KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"]) |
fi |
AC_SUBST(USE_EXCEPTIONS) |
dnl obsolete macro - provided to keep things going |
USE_RTTI= |
AC_SUBST(USE_RTTI) |
case "$host" in |
*-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;; |
*-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";; |
*-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";; |
*-*-solaris*) |
if test "$GXX" = yes; then |
libstdcpp=`$CXX -print-file-name=libstdc++.so` |
if test ! -f $libstdcpp; then |
AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so]) |
fi |
fi |
;; |
esac |
AC_VALIDIFY_CXXFLAGS |
AC_PROG_CXXCPP |
if test "$GCC" = yes; then |
NOOPT_CFLAGS=-O0 |
fi |
KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0]) |
AC_ARG_ENABLE(coverage, |
AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [ |
if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then |
ac_coverage_compiler="-fprofile-arcs -ftest-coverage" |
ac_coverage_linker="-lgcc" |
elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then |
ac_coverage_compiler="-fprofile-arcs -ftest-coverage" |
ac_coverage_linker="" |
else |
AC_MSG_ERROR([coverage with your compiler is not supported]) |
fi |
CFLAGS="$CFLAGS $ac_coverage_compiler" |
CXXFLAGS="$CXXFLAGS $ac_coverage_compiler" |
LDFLAGS="$LDFLAGS $ac_coverage_linker" |
]) |
AC_SUBST(NOOPT_CXXFLAGS) |
AC_SUBST(NOOPT_CFLAGS) |
AC_SUBST(ENABLE_PERMISSIVE_FLAG) |
KDE_CHECK_NEW_LDFLAGS |
KDE_CHECK_FINAL |
KDE_CHECK_CLOSURE |
KDE_CHECK_NMCHECK |
ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), []) |
]) |
AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG], |
[ |
AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
safe_CXXFLAGS=$CXXFLAGS |
safe_LDFLAGS=$LDFLAGS |
CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0" |
LDFLAGS="$LDFLAGS -shared -fPIC" |
AC_TRY_LINK( |
[ |
/* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */ |
#include <string> |
int some_function( void ) __attribute__ ((visibility("default"))); |
int some_function( void ) |
{ |
std::string s("blafasel"); |
return 0; |
} |
], [/* elvis is alive */], |
kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes) |
CXXFLAGS=$safe_CXXFLAGS |
LDFLAGS=$safe_LDFLAGS |
AC_LANG_RESTORE |
] |
) |
if test x$kde_cv_val_gcc_visibility_bug = xno; then |
CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" |
fi |
] |
) |
AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY], |
[ |
AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY]) |
AC_MSG_CHECKING([grepping for visibility push/pop in headers]) |
if test "x$GXX" = "xyes"; then |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
AC_EGREP_CPP( |
[GCC visibility push], |
[ #include <exception> |
], |
[ |
AC_MSG_RESULT(yes) |
kde_stdc_visibility_patched=yes ], |
[ |
AC_MSG_RESULT(no) |
AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for |
visibility support. Disabling -fvisibility=hidden]) |
kde_stdc_visibility_patched=no ]) |
AC_LANG_RESTORE |
kde_have_gcc_visibility=no |
KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, |
[ |
kde_have_gcc_visibility=yes |
dnl the whole toolchain is just a mess, gcc is just too buggy |
dnl to handle STL with visibility enabled. Lets reconsider |
dnl when gcc 4.2 is out or when things get fixed in the compiler. |
dnl Contact mueller@kde.org for details. |
AC_ARG_ENABLE(gcc-hidden-visibility, |
AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]), |
[kde_have_gcc_visibility=$enableval], |
[kde_have_gcc_visibility=no]) |
AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
safe_CXXFLAGS=$CXXFLAGS |
CXXFLAGS="$CXXFLAGS $all_includes" |
AC_TRY_COMPILE( |
[ |
#include <qglobal.h> |
#if Q_EXPORT - 0 != 0 |
/* if this compiles, then Q_EXPORT is undefined */ |
/* if Q_EXPORT is nonempty, this will break compilation */ |
#endif |
], [/* elvis is alive */], |
kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes) |
CXXFLAGS=$safe_CXXFLAGS |
AC_LANG_RESTORE |
] |
) |
if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then |
CXXFLAGS="$CXXFLAGS -fvisibility=hidden" |
KDE_CHECK_VISIBILITY_GCC_BUG |
HAVE_GCC_VISIBILITY=1 |
AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported]) |
fi |
]) |
fi |
]) |
AC_DEFUN([KDE_ADD_DEPENDENCIES], |
[ |
[A]M_DEPENDENCIES(CC) |
[A]M_DEPENDENCIES(CXX) |
]) |
dnl just a wrapper to clean up configure.in |
AC_DEFUN([KDE_PROG_LIBTOOL], |
[ |
AC_REQUIRE([AC_CHECK_COMPILERS]) |
AC_REQUIRE([AC_ENABLE_SHARED]) |
AC_REQUIRE([AC_ENABLE_STATIC]) |
AC_REQUIRE([AC_LIBTOOL_DLOPEN]) |
AC_REQUIRE([KDE_CHECK_LIB64]) |
AC_OBJEXT |
AC_EXEEXT |
AM_PROG_LIBTOOL |
AC_LIBTOOL_CXX |
LIBTOOL_SHELL="/bin/sh ./libtool" |
# LIBTOOL="$LIBTOOL --silent" |
KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)" |
AC_SUBST(KDE_PLUGIN) |
# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs. |
KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)" |
AC_SUBST(KDE_CHECK_PLUGIN) |
# we patch configure quite some so we better keep that consistent for incremental runs |
AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure') |
]) |
AC_DEFUN([KDE_CHECK_LIB64], |
[ |
AC_ARG_ENABLE(libsuffix, |
AC_HELP_STRING([--enable-libsuffix], |
[/lib directory suffix (64,32,none,auto[=default])]), |
kdelibsuff=$enableval, kdelibsuff="auto") |
if test "$kdelibsuff" = "auto"; then |
cat > conftest.c << EOF |
#include <stdio.h> |
int main() { |
return 0; |
} |
EOF |
kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{ |
s,.*/lib\([[^\/]]*\)/.*,\1, |
p |
}'` |
rm -rf conftest.* |
fi |
if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; then |
kdelibsuff= |
fi |
if test -z "$kdelibsuff"; then |
AC_MSG_RESULT([not using lib directory suffix]) |
AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories) |
else |
if test "$libdir" = '${exec_prefix}/lib'; then |
libdir="$libdir${kdelibsuff}" |
AC_SUBST([libdir], ["$libdir"]) dnl ugly hack for lib64 platforms |
fi |
AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories) |
AC_MSG_RESULT([using lib directory suffix $kdelibsuff]) |
fi |
]) |
AC_DEFUN([KDE_CHECK_TYPES], |
[ AC_CHECK_SIZEOF(int, 4)dnl |
AC_CHECK_SIZEOF(short)dnl |
AC_CHECK_SIZEOF(long, 4)dnl |
AC_CHECK_SIZEOF(char *, 4)dnl |
])dnl |
dnl Not used - kept for compat only? |
AC_DEFUN([KDE_DO_IT_ALL], |
[ |
AC_CANONICAL_SYSTEM |
AC_ARG_PROGRAM |
AM_INIT_AUTOMAKE($1, $2) |
AM_DISABLE_LIBRARIES |
AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) |
AC_CHECK_COMPILERS |
KDE_PROG_LIBTOOL |
AM_KDE_WITH_NLS |
AC_PATH_KDE |
]) |
AC_DEFUN([AC_CHECK_RPATH], |
[ |
AC_MSG_CHECKING(for rpath) |
AC_ARG_ENABLE(rpath, |
AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]), |
USE_RPATH=$enableval, USE_RPATH=yes) |
if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then |
KDE_RPATH="-R \$(libdir)" |
if test "$kde_libraries" != "$libdir"; then |
KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)" |
fi |
if test -n "$qt_libraries"; then |
KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)" |
fi |
dnl $x_libraries is set to /usr/lib in case |
if test -n "$X_LDFLAGS"; then |
X_RPATH="-R \$(x_libraries)" |
KDE_RPATH="$KDE_RPATH $X_RPATH" |
fi |
if test -n "$KDE_EXTRA_RPATH"; then |
KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)" |
fi |
fi |
AC_SUBST(KDE_EXTRA_RPATH) |
AC_SUBST(KDE_RPATH) |
AC_SUBST(X_RPATH) |
AC_MSG_RESULT($USE_RPATH) |
]) |
dnl Check for the type of the third argument of getsockname |
AC_DEFUN([AC_CHECK_SOCKLEN_T], |
[ |
AC_MSG_CHECKING(for socklen_t) |
AC_CACHE_VAL(kde_cv_socklen_t, |
[ |
AC_LANG_PUSH(C++) |
kde_cv_socklen_t=no |
AC_TRY_COMPILE([ |
#include <sys/types.h> |
#include <sys/socket.h> |
], |
[ |
socklen_t len; |
getpeername(0,0,&len); |
], |
[ |
kde_cv_socklen_t=yes |
kde_cv_socklen_t_equiv=socklen_t |
]) |
AC_LANG_POP(C++) |
]) |
AC_MSG_RESULT($kde_cv_socklen_t) |
if test $kde_cv_socklen_t = no; then |
AC_MSG_CHECKING([for socklen_t equivalent for socket functions]) |
AC_CACHE_VAL(kde_cv_socklen_t_equiv, |
[ |
kde_cv_socklen_t_equiv=int |
AC_LANG_PUSH(C++) |
for t in int size_t unsigned long "unsigned long"; do |
AC_TRY_COMPILE([ |
#include <sys/types.h> |
#include <sys/socket.h> |
], |
[ |
$t len; |
getpeername(0,0,&len); |
], |
[ |
kde_cv_socklen_t_equiv="$t" |
break |
]) |
done |
AC_LANG_POP(C++) |
]) |
AC_MSG_RESULT($kde_cv_socklen_t_equiv) |
fi |
AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv, |
[type to use in place of socklen_t if not defined]) |
AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv, |
[type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)]) |
]) |
dnl This is a merge of some macros out of the gettext aclocal.m4 |
dnl since we don't need anything, I took the things we need |
dnl the copyright for them is: |
dnl > |
dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. |
dnl This Makefile.in is free software; the Free Software Foundation |
dnl gives unlimited permission to copy and/or distribute it, |
dnl with or without modifications, as long as this notice is preserved. |
dnl This program is distributed in the hope that it will be useful, |
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
dnl PARTICULAR PURPOSE. |
dnl > |
dnl for this file it is relicensed under LGPL |
AC_DEFUN([AM_KDE_WITH_NLS], |
[ |
dnl If we use NLS figure out what method |
AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt, |
[test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt) |
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) |
if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then |
AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it]) |
GMSGFMT=":" |
fi |
MSGFMT=$GMSGFMT |
AC_SUBST(GMSGFMT) |
AC_SUBST(MSGFMT) |
AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext, |
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) |
dnl Test whether we really found GNU xgettext. |
if test "$XGETTEXT" != ":"; then |
dnl If it is no GNU xgettext we define it as : so that the |
dnl Makefiles still can work. |
if $XGETTEXT --omit-header /dev/null 2> /dev/null; then |
: ; |
else |
AC_MSG_RESULT( |
[found xgettext programs is not GNU xgettext; ignore it]) |
XGETTEXT=":" |
fi |
fi |
AC_SUBST(XGETTEXT) |
]) |
# Search path for a program which passes the given test. |
# Ulrich Drepper <drepper@cygnus.com>, 1996. |
# serial 1 |
# Stephan Kulow: I appended a _KDE against name conflicts |
dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR, |
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) |
AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE], |
[# Extract the first word of "$2", so it can be a program name with args. |
set dummy $2; ac_word=[$]2 |
AC_MSG_CHECKING([for $ac_word]) |
AC_CACHE_VAL(ac_cv_path_$1, |
[case "[$]$1" in |
/*) |
ac_cv_path_$1="[$]$1" # Let the user override the test with a path. |
;; |
*) |
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" |
for ac_dir in ifelse([$5], , $PATH, [$5]); do |
test -z "$ac_dir" && ac_dir=. |
if test -f $ac_dir/$ac_word; then |
if [$3]; then |
ac_cv_path_$1="$ac_dir/$ac_word" |
break |
fi |
fi |
done |
IFS="$ac_save_ifs" |
dnl If no 4th arg is given, leave the cache variable unset, |
dnl so AC_PATH_PROGS will keep looking. |
ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" |
])dnl |
;; |
esac])dnl |
$1="$ac_cv_path_$1" |
if test -n "[$]$1"; then |
AC_MSG_RESULT([$]$1) |
else |
AC_MSG_RESULT(no) |
fi |
AC_SUBST($1)dnl |
]) |
# Check whether LC_MESSAGES is available in <locale.h>. |
# Ulrich Drepper <drepper@cygnus.com>, 1995. |
# serial 1 |
AC_DEFUN([AM_LC_MESSAGES], |
[if test $ac_cv_header_locale_h = yes; then |
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, |
[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], |
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) |
if test $am_cv_val_LC_MESSAGES = yes; then |
AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES]) |
fi |
fi]) |
dnl From Jim Meyering. |
dnl FIXME: migrate into libit. |
AC_DEFUN([AM_FUNC_OBSTACK], |
[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack, |
[AC_TRY_LINK([#include "obstack.h"], |
[struct obstack *mem;obstack_free(mem,(char *) 0)], |
am_cv_func_obstack=yes, |
am_cv_func_obstack=no)]) |
if test $am_cv_func_obstack = yes; then |
AC_DEFINE(HAVE_OBSTACK) |
else |
LIBOBJS="$LIBOBJS obstack.o" |
fi |
]) |
dnl From Jim Meyering. Use this if you use the GNU error.[ch]. |
dnl FIXME: Migrate into libit |
AC_DEFUN([AM_FUNC_ERROR_AT_LINE], |
[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line, |
[AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");], |
am_cv_lib_error_at_line=yes, |
am_cv_lib_error_at_line=no)]) |
if test $am_cv_lib_error_at_line = no; then |
LIBOBJS="$LIBOBJS error.o" |
fi |
AC_SUBST(LIBOBJS)dnl |
]) |
# Macro to add for using GNU gettext. |
# Ulrich Drepper <drepper@cygnus.com>, 1995. |
# serial 1 |
# Stephan Kulow: I put a KDE in it to avoid name conflicts |
AC_DEFUN([AM_KDE_GNU_GETTEXT], |
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl |
AC_REQUIRE([AC_PROG_RANLIB])dnl |
AC_REQUIRE([AC_HEADER_STDC])dnl |
AC_REQUIRE([AC_TYPE_OFF_T])dnl |
AC_REQUIRE([AC_TYPE_SIZE_T])dnl |
AC_REQUIRE([AC_FUNC_ALLOCA])dnl |
AC_REQUIRE([AC_FUNC_MMAP])dnl |
AC_REQUIRE([AM_KDE_WITH_NLS])dnl |
AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h]) |
AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \ |
__argz_count __argz_stringify __argz_next]) |
AC_MSG_CHECKING(for stpcpy) |
AC_CACHE_VAL(kde_cv_func_stpcpy, |
[ |
kde_safe_cxxflags=$CXXFLAGS |
CXXFLAGS="-Werror" |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
AC_TRY_COMPILE([ |
#include <string.h> |
], |
[ |
char buffer[200]; |
stpcpy(buffer, buffer); |
], |
kde_cv_func_stpcpy=yes, |
kde_cv_func_stpcpy=no) |
AC_LANG_RESTORE |
CXXFLAGS=$kde_safe_cxxflags |
]) |
AC_MSG_RESULT($kde_cv_func_stpcpy) |
if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then |
AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy]) |
fi |
AM_LC_MESSAGES |
if test "x$CATOBJEXT" != "x"; then |
if test "x$ALL_LINGUAS" = "x"; then |
LINGUAS= |
else |
AC_MSG_CHECKING(for catalogs to be installed) |
NEW_LINGUAS= |
for lang in ${LINGUAS=$ALL_LINGUAS}; do |
case "$ALL_LINGUAS" in |
*$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; |
esac |
done |
LINGUAS=$NEW_LINGUAS |
AC_MSG_RESULT($LINGUAS) |
fi |
dnl Construct list of names of catalog files to be constructed. |
if test -n "$LINGUAS"; then |
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done |
fi |
fi |
]) |
AC_DEFUN([AC_HAVE_XPM], |
[AC_REQUIRE_CPP()dnl |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
test -z "$XPM_LDFLAGS" && XPM_LDFLAGS= |
test -z "$XPM_INCLUDE" && XPM_INCLUDE= |
AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]), |
xpm_test=$withval, xpm_test="yes") |
if test "x$xpm_test" = xno; then |
ac_cv_have_xpm=no |
else |
AC_MSG_CHECKING(for XPM) |
AC_CACHE_VAL(ac_cv_have_xpm, |
[ |
ac_save_ldflags="$LDFLAGS" |
ac_save_cflags="$CFLAGS" |
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET" |
else |
LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET" |
fi |
CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES" |
test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS" |
AC_TRY_LINK([#include <X11/xpm.h>],[], |
ac_cv_have_xpm="yes",ac_cv_have_xpm="no") |
LDFLAGS="$ac_save_ldflags" |
CFLAGS="$ac_save_cflags" |
])dnl |
if test "$ac_cv_have_xpm" = no; then |
AC_MSG_RESULT(no) |
XPM_LDFLAGS="" |
XPMINC="" |
$2 |
else |
AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support]) |
if test "$XPM_LDFLAGS" = ""; then |
XPMLIB='-lXpm $(LIB_X11)' |
else |
XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)' |
fi |
if test "$XPM_INCLUDE" = ""; then |
XPMINC="" |
else |
XPMINC="-I$XPM_INCLUDE" |
fi |
AC_MSG_RESULT(yes) |
$1 |
fi |
fi |
AC_SUBST(XPMINC) |
AC_SUBST(XPMLIB) |
]) |
AC_DEFUN([AC_HAVE_DPMS], |
[AC_REQUIRE_CPP()dnl |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS= |
test -z "$DPMS_INCLUDE" && DPMS_INCLUDE= |
DPMS_LIB= |
AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]), |
dpms_test=$withval, dpms_test="yes") |
if test "x$dpms_test" = xno; then |
ac_cv_have_dpms=no |
else |
AC_MSG_CHECKING(for DPMS) |
dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms. |
dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms". |
AC_CACHE_VAL(ac_cv_have_dpms, |
[ |
if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then |
AC_MSG_RESULT(no) |
ac_cv_have_dpms="no" |
else |
ac_save_ldflags="$LDFLAGS" |
ac_save_cflags="$CFLAGS" |
ac_save_libs="$LIBS" |
LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries" |
LIBS="-lX11 -lXext $LIBSOCKET" |
CFLAGS="$CFLAGS $X_INCLUDES" |
test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" |
AC_TRY_LINK([ |
#include <X11/Xproto.h> |
#include <X11/X.h> |
#include <X11/Xlib.h> |
#include <X11/extensions/dpms.h> |
int foo_test_dpms() |
{ return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], |
ac_cv_have_dpms="yes", [ |
LIBS="-lXdpms $LIBS" |
AC_TRY_LINK([ |
#include <X11/Xproto.h> |
#include <X11/X.h> |
#include <X11/Xlib.h> |
#include <X11/extensions/dpms.h> |
int foo_test_dpms() |
{ return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], |
[ |
ac_cv_have_dpms="-lXdpms" |
],ac_cv_have_dpms="no") |
]) |
LDFLAGS="$ac_save_ldflags" |
CFLAGS="$ac_save_cflags" |
LIBS="$ac_save_libs" |
fi |
])dnl |
if test "$ac_cv_have_dpms" = no; then |
AC_MSG_RESULT(no) |
DPMS_LDFLAGS="" |
DPMSINC="" |
$2 |
else |
AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support]) |
if test "$ac_cv_have_dpms" = "-lXdpms"; then |
DPMS_LIB="-lXdpms" |
fi |
if test "$DPMS_LDFLAGS" = ""; then |
DPMSLIB="$DPMS_LIB "'$(LIB_X11)' |
else |
DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)' |
fi |
if test "$DPMS_INCLUDE" = ""; then |
DPMSINC="" |
else |
DPMSINC="-I$DPMS_INCLUDE" |
fi |
AC_MSG_RESULT(yes) |
$1 |
fi |
fi |
ac_save_cflags="$CFLAGS" |
CFLAGS="$CFLAGS $X_INCLUDES" |
test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" |
AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO, |
[Define if you have the DPMSCapable prototype in <X11/extensions/dpms.h>]) |
AC_CHECK_DECL(DPMSCapable, |
AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),, |
[#include <X11/Xlib.h> |
#include <X11/extensions/dpms.h>]) |
AH_TEMPLATE(HAVE_DPMSINFO_PROTO, |
[Define if you have the DPMSInfo prototype in <X11/extensions/dpms.h>]) |
AC_CHECK_DECL(DPMSInfo, |
AC_DEFINE(HAVE_DPMSINFO_PROTO),, |
[#include <X11/Xlib.h> |
#include <X11/extensions/dpms.h>]) |
CFLAGS="$ac_save_cflags" |
AC_SUBST(DPMSINC) |
AC_SUBST(DPMSLIB) |
]) |
AC_DEFUN([AC_HAVE_GL], |
[AC_REQUIRE_CPP()dnl |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
test -z "$GL_LDFLAGS" && GL_LDFLAGS= |
test -z "$GL_INCLUDE" && GL_INCLUDE= |
AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]), |
gl_test=$withval, gl_test="yes") |
if test "x$kde_use_qt_emb" = "xyes"; then |
# GL and Qt Embedded is a no-go for now. |
ac_cv_have_gl=no |
elif test "x$gl_test" = xno; then |
ac_cv_have_gl=no |
else |
AC_MSG_CHECKING(for GL) |
AC_CACHE_VAL(ac_cv_have_gl, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
ac_save_ldflags=$LDFLAGS |
ac_save_cxxflags=$CXXFLAGS |
ac_save_libs=$LIBS |
LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries" |
LIBS="$LIBS -lGL -lGLU" |
test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11" |
LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET" |
CXXFLAGS="$CFLAGS $X_INCLUDES" |
test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS" |
AC_TRY_LINK([#include <GL/gl.h> |
#include <GL/glu.h> |
], [], |
ac_cv_have_gl="yes", ac_cv_have_gl="no") |
AC_LANG_RESTORE |
LDFLAGS=$ac_save_ldflags |
CXXFLAGS=$ac_save_cxxflags |
LIBS=$ac_save_libs |
])dnl |
if test "$ac_cv_have_gl" = "no"; then |
AC_MSG_RESULT(no) |
GL_LDFLAGS="" |
GLINC="" |
$2 |
else |
AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)]) |
if test "$GL_LDFLAGS" = ""; then |
GLLIB='-lGLU -lGL $(LIB_X11)' |
else |
GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)' |
fi |
if test "$GL_INCLUDE" = ""; then |
GLINC="" |
else |
GLINC="-I$GL_INCLUDE" |
fi |
AC_MSG_RESULT($ac_cv_have_gl) |
$1 |
fi |
fi |
AC_SUBST(GLINC) |
AC_SUBST(GLLIB) |
]) |
dnl shadow password and PAM magic - maintained by ossi@kde.org |
AC_DEFUN([KDE_PAM], [ |
AC_REQUIRE([KDE_CHECK_LIBDL]) |
want_pam= |
AC_ARG_WITH(pam, |
AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]), |
[ if test "x$withval" = "xyes"; then |
want_pam=yes |
pam_service=kde |
elif test "x$withval" = "xno"; then |
want_pam=no |
else |
want_pam=yes |
pam_service=$withval |
fi |
], [ pam_service=kde ]) |
use_pam= |
PAMLIBS= |
if test "x$want_pam" != xno; then |
AC_CHECK_LIB(pam, pam_start, [ |
AC_CHECK_HEADER(security/pam_appl.h, |
[ pam_header=security/pam_appl.h ], |
[ AC_CHECK_HEADER(pam/pam_appl.h, |
[ pam_header=pam/pam_appl.h ], |
[ |
AC_MSG_WARN([PAM detected, but no headers found! |
Make sure you have the necessary development packages installed.]) |
] |
) |
] |
) |
], , $LIBDL) |
if test -z "$pam_header"; then |
if test "x$want_pam" = xyes; then |
AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!]) |
fi |
else |
AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)]) |
PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL" |
use_pam=yes |
dnl darwin claims to be something special |
if test "$pam_header" = "pam/pam_appl.h"; then |
AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/]) |
fi |
dnl test whether struct pam_message is const (Linux) or not (Sun) |
AC_MSG_CHECKING(for const pam_message) |
AC_EGREP_HEADER([struct pam_message], $pam_header, |
[ AC_EGREP_HEADER([const struct pam_message], $pam_header, |
[AC_MSG_RESULT([const: Linux-type PAM])], |
[AC_MSG_RESULT([nonconst: Sun-type PAM]) |
AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])] |
)], |
[AC_MSG_RESULT([not found - assume const, Linux-type PAM])]) |
fi |
fi |
AC_SUBST(PAMLIBS) |
]) |
dnl DEF_PAM_SERVICE(arg name, full name, define name) |
AC_DEFUN([DEF_PAM_SERVICE], [ |
AC_ARG_WITH($1-pam, |
AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]), |
[ if test "x$use_pam" = xyes; then |
$3_PAM_SERVICE=$withval |
else |
AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected. |
You may want to enforce it by using --with-pam.]) |
fi |
], |
[ if test "x$use_pam" = xyes; then |
$3_PAM_SERVICE="$pam_service" |
fi |
]) |
if test -n "$$3_PAM_SERVICE"; then |
AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE]) |
AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2]) |
fi |
AC_SUBST($3_PAM_SERVICE) |
]) |
AC_DEFUN([KDE_SHADOWPASSWD], [ |
AC_REQUIRE([KDE_PAM]) |
AC_CHECK_LIB(shadow, getspent, |
[ LIBSHADOW="-lshadow" |
ac_use_shadow=yes |
], |
[ dnl for UnixWare |
AC_CHECK_LIB(gen, getspent, |
[ LIBGEN="-lgen" |
ac_use_shadow=yes |
], |
[ AC_CHECK_FUNC(getspent, |
[ ac_use_shadow=yes ], |
[ ac_use_shadow=no ]) |
]) |
]) |
AC_SUBST(LIBSHADOW) |
AC_SUBST(LIBGEN) |
AC_MSG_CHECKING([for shadow passwords]) |
AC_ARG_WITH(shadow, |
AC_HELP_STRING([--with-shadow],[If you want shadow password support]), |
[ if test "x$withval" != "xno"; then |
use_shadow=yes |
else |
use_shadow=no |
fi |
], [ |
use_shadow="$ac_use_shadow" |
]) |
if test "x$use_shadow" = xyes; then |
AC_MSG_RESULT(yes) |
AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords]) |
else |
AC_MSG_RESULT(no) |
LIBSHADOW= |
LIBGEN= |
fi |
dnl finally make the relevant binaries setuid root, if we have shadow passwds. |
dnl this still applies, if we could use it indirectly through pam. |
if test "x$use_shadow" = xyes || |
( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then |
case $host in |
*-*-freebsd* | *-*-netbsd* | *-*-openbsd*) |
SETUIDFLAGS="-m 4755 -o root";; |
*) |
SETUIDFLAGS="-m 4755";; |
esac |
fi |
AC_SUBST(SETUIDFLAGS) |
]) |
AC_DEFUN([KDE_PASSWDLIBS], [ |
AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT |
AC_REQUIRE([KDE_PAM]) |
AC_REQUIRE([KDE_SHADOWPASSWD]) |
if test "x$use_pam" = "xyes"; then |
PASSWDLIBS="$PAMLIBS" |
else |
PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN" |
fi |
dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but |
dnl /etc/master.passwd holds the actual passwords. /etc/master.passwd requires |
dnl root to read, so kcheckpass needs to be root (even when using pam, since pam |
dnl may need to read /etc/master.passwd). |
case $host in |
*-*-freebsd*) |
SETUIDFLAGS="-m 4755 -o root" |
;; |
*) |
;; |
esac |
AC_SUBST(PASSWDLIBS) |
]) |
AC_DEFUN([KDE_CHECK_LIBDL], |
[ |
AC_CHECK_LIB(dl, dlopen, [ |
LIBDL="-ldl" |
ac_cv_have_dlfcn=yes |
]) |
AC_CHECK_LIB(dld, shl_unload, [ |
LIBDL="-ldld" |
ac_cv_have_shload=yes |
]) |
AC_SUBST(LIBDL) |
]) |
AC_DEFUN([KDE_CHECK_DLOPEN], |
[ |
KDE_CHECK_LIBDL |
AC_CHECK_HEADERS(dlfcn.h dl.h) |
if test "$ac_cv_header_dlfcn_h" = "no"; then |
ac_cv_have_dlfcn=no |
fi |
if test "$ac_cv_header_dl_h" = "no"; then |
ac_cv_have_shload=no |
fi |
dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE |
dnl (MM) |
AC_ARG_ENABLE(dlopen, |
AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]), |
enable_dlopen=$enableval, |
enable_dlopen=yes) |
# override the user's opinion, if we know it better ;) |
if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then |
enable_dlopen=no |
fi |
if test "$ac_cv_have_dlfcn" = "yes"; then |
AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn]) |
fi |
if test "$ac_cv_have_shload" = "yes"; then |
AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload]) |
fi |
if test "$enable_dlopen" = no ; then |
test -n "$1" && eval $1 |
else |
test -n "$2" && eval $2 |
fi |
]) |
AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING], |
[ |
KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no) |
KDE_PROG_LIBTOOL |
AC_MSG_CHECKING([dynamic loading]) |
eval "`egrep '^build_libtool_libs=' libtool`" |
if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then |
dynamic_loading=yes |
AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING) |
else |
dynamic_loading=no |
fi |
AC_MSG_RESULT($dynamic_loading) |
if test "$dynamic_loading" = "yes"; then |
$1 |
else |
$2 |
fi |
]) |
AC_DEFUN([KDE_ADD_INCLUDES], |
[ |
if test -z "$1"; then |
test_include="Pix.h" |
else |
test_include="$1" |
fi |
AC_MSG_CHECKING([for libg++ ($test_include)]) |
AC_CACHE_VAL(kde_cv_libgpp_includes, |
[ |
kde_cv_libgpp_includes=no |
for ac_dir in \ |
\ |
/usr/include/g++ \ |
/usr/include \ |
/usr/unsupported/include \ |
/opt/include \ |
$extra_include \ |
; \ |
do |
if test -r "$ac_dir/$test_include"; then |
kde_cv_libgpp_includes=$ac_dir |
break |
fi |
done |
]) |
AC_MSG_RESULT($kde_cv_libgpp_includes) |
if test "$kde_cv_libgpp_includes" != "no"; then |
all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES" |
fi |
]) |
]) |
AC_DEFUN([KDE_CHECK_LIBPTHREAD], |
[ |
dnl This code is here specifically to handle the |
dnl various flavors of threading library on FreeBSD |
dnl 4-, 5-, and 6-, and the (weird) rules around it. |
dnl There may be an environment PTHREAD_LIBS that |
dnl specifies what to use; otherwise, search for it. |
dnl -pthread is special cased and unsets LIBPTHREAD |
dnl below if found. |
LIBPTHREAD="" |
if test -n "$PTHREAD_LIBS"; then |
if test "x$PTHREAD_LIBS" = "x-pthread" ; then |
LIBPTHREAD="PTHREAD" |
else |
PTHREAD_LIBS_save="$PTHREAD_LIBS" |
PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'` |
AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS]) |
KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [ |
LIBPTHREAD="$PTHREAD_LIBS_save"]) |
PTHREAD_LIBS="$PTHREAD_LIBS_save" |
fi |
fi |
dnl Is this test really needed, in the face of the Tru64 test below? |
if test -z "$LIBPTHREAD"; then |
AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"]) |
fi |
dnl This is a special Tru64 check, see BR 76171 issue #18. |
if test -z "$LIBPTHREAD" ; then |
AC_MSG_CHECKING([for pthread_create in -lpthread]) |
kde_safe_libs=$LIBS |
LIBS="$LIBS -lpthread" |
AC_TRY_LINK([#include <pthread.h>],[(void)pthread_create(0,0,0,0);],[ |
AC_MSG_RESULT(yes) |
LIBPTHREAD="-lpthread"],[ |
AC_MSG_RESULT(no)]) |
LIBS=$kde_safe_libs |
fi |
dnl Un-special-case for FreeBSD. |
if test "x$LIBPTHREAD" = "xPTHREAD" ; then |
LIBPTHREAD="" |
fi |
AC_SUBST(LIBPTHREAD) |
]) |
AC_DEFUN([KDE_CHECK_PTHREAD_OPTION], |
[ |
USE_THREADS="" |
if test -z "$LIBPTHREAD"; then |
KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"]) |
fi |
AH_VERBATIM(__svr_define, [ |
#if defined(__SVR4) && !defined(__svr4__) |
#define __svr4__ 1 |
#endif |
]) |
case $host_os in |
solaris*) |
KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"]) |
CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4" |
;; |
freebsd*) |
CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS" |
;; |
aix*) |
CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" |
LIBPTHREAD="$LIBPTHREAD -lc_r" |
;; |
linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" |
if test "$CXX" = "KCC"; then |
CXXFLAGS="$CXXFLAGS --thread_safe" |
NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe" |
fi |
;; |
*) |
;; |
esac |
AC_SUBST(USE_THREADS) |
AC_SUBST(LIBPTHREAD) |
]) |
AC_DEFUN([KDE_CHECK_THREADING], |
[ |
AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) |
AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION]) |
dnl default is yes if libpthread is found and no if no libpthread is available |
if test -z "$LIBPTHREAD"; then |
if test -z "$USE_THREADS"; then |
kde_check_threading_default=no |
else |
kde_check_threading_default=yes |
fi |
else |
kde_check_threading_default=yes |
fi |
AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]), |
kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default) |
if test "x$kde_use_threading" = "xyes"; then |
AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)]) |
fi |
]) |
AC_DEFUN([KDE_TRY_LINK_PYTHON], |
[ |
if test "$kde_python_link_found" = no; then |
if test "$1" = normal; then |
AC_MSG_CHECKING(if a Python application links) |
else |
AC_MSG_CHECKING(if Python depends on $2) |
fi |
AC_CACHE_VAL(kde_cv_try_link_python_$1, |
[ |
kde_save_cflags="$CFLAGS" |
CFLAGS="$CFLAGS $PYTHONINC" |
kde_save_libs="$LIBS" |
LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET" |
kde_save_ldflags="$LDFLAGS" |
LDFLAGS="$LDFLAGS $PYTHONLIB" |
AC_TRY_LINK( |
[ |
#include <Python.h> |
],[ |
PySys_SetArgv(1, 0); |
], |
[kde_cv_try_link_python_$1=yes], |
[kde_cv_try_link_python_$1=no] |
) |
CFLAGS="$kde_save_cflags" |
LIBS="$kde_save_libs" |
LDFLAGS="$kde_save_ldflags" |
]) |
if test "$kde_cv_try_link_python_$1" = "yes"; then |
AC_MSG_RESULT(yes) |
kde_python_link_found=yes |
if test ! "$1" = normal; then |
LIBPYTHON="$LIBPYTHON $2" |
fi |
$3 |
else |
AC_MSG_RESULT(no) |
$4 |
fi |
fi |
]) |
AC_DEFUN([KDE_CHECK_PYTHON_DIR], |
[ |
AC_MSG_CHECKING([for Python directory]) |
AC_CACHE_VAL(kde_cv_pythondir, |
[ |
if test -z "$PYTHONDIR"; then |
kde_cv_pythondir=/usr/local |
else |
kde_cv_pythondir="$PYTHONDIR" |
fi |
]) |
AC_ARG_WITH(pythondir, |
AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]), |
[ |
ac_python_dir=$withval |
], ac_python_dir=$kde_cv_pythondir |
) |
AC_MSG_RESULT($ac_python_dir) |
]) |
AC_DEFUN([KDE_CHECK_PYTHON_INTERN], |
[ |
AC_REQUIRE([KDE_CHECK_LIBDL]) |
AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) |
AC_REQUIRE([KDE_CHECK_PYTHON_DIR]) |
if test -z "$1"; then |
version="1.5" |
else |
version="$1" |
fi |
AC_MSG_CHECKING([for Python$version]) |
python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes" |
AC_FIND_FILE(Python.h, $python_incdirs, python_incdir) |
if test ! -r $python_incdir/Python.h; then |
AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir) |
python_incdir=$python_incdir/python$version |
if test ! -r $python_incdir/Python.h; then |
python_incdir=no |
fi |
fi |
PYTHONINC=-I$python_incdir |
python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs" |
AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir) |
if test ! -r $python_libdir/libpython$version.so; then |
AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir) |
if test ! -r $python_libdir/libpython$version.a; then |
AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir) |
python_libdir=$python_libdir/python$version/config |
if test ! -r $python_libdir/libpython$version.a; then |
python_libdir=no |
fi |
fi |
fi |
PYTHONLIB=-L$python_libdir |
kde_orig_LIBPYTHON=$LIBPYTHON |
if test -z "$LIBPYTHON"; then |
LIBPYTHON=-lpython$version |
fi |
AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir) |
python_moddir=$python_moddir/python$version |
if test ! -r $python_moddir/copy.py; then |
python_moddir=no |
fi |
PYTHONMODDIR=$python_moddir |
AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir) |
if test x$python_incdir = xno || test x$python_libdir = xno || test x$python_moddir = xno; then |
LIBPYTHON=$kde_orig_LIBPYTHON |
test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB="" |
test "x$PYTHONINC" = "x-Ino" && PYTHONINC="" |
$2 |
else |
dnl Note: this test is very weak |
kde_python_link_found=no |
KDE_TRY_LINK_PYTHON(normal) |
KDE_TRY_LINK_PYTHON(m, -lm) |
KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD) |
KDE_TRY_LINK_PYTHON(tcl, -ltcl) |
KDE_TRY_LINK_PYTHON(db2, -ldb2) |
KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm]) |
KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil]) |
KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil]) |
KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3]) |
KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil]) |
KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm]) |
KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses]) |
KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [], |
[AC_MSG_WARN([it seems, Python depends on another library. |
Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this |
and contact the authors to let them know about this problem]) |
]) |
LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET" |
AC_SUBST(PYTHONINC) |
AC_SUBST(PYTHONLIB) |
AC_SUBST(LIBPYTHON) |
AC_SUBST(PYTHONMODDIR) |
AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python]) |
fi |
]) |
AC_DEFUN([KDE_CHECK_PYTHON], |
[ |
KDE_CHECK_PYTHON_INTERN("2.5", |
[KDE_CHECK_PYTHON_INTERN("2.4", |
[KDE_CHECK_PYTHON_INTERN("2.3", |
[KDE_CHECK_PYTHON_INTERN("2.2", |
[KDE_CHECK_PYTHON_INTERN("2.1", |
[KDE_CHECK_PYTHON_INTERN("2.0", |
[KDE_CHECK_PYTHON_INTERN($1, $2) ]) |
]) |
]) |
]) |
]) |
]) |
]) |
AC_DEFUN([KDE_CHECK_STL], |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
ac_save_CXXFLAGS="$CXXFLAGS" |
CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`" |
AC_MSG_CHECKING([if C++ programs can be compiled]) |
AC_CACHE_VAL(kde_cv_stl_works, |
[ |
AC_TRY_COMPILE([ |
#include <string> |
using namespace std; |
],[ |
string astring="Hallo Welt."; |
astring.erase(0, 6); // now astring is "Welt" |
return 0; |
], kde_cv_stl_works=yes, |
kde_cv_stl_works=no) |
]) |
AC_MSG_RESULT($kde_cv_stl_works) |
if test "$kde_cv_stl_works" = "yes"; then |
# back compatible |
AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI]) |
else |
AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs. |
Check config.log for details - if you're using a Linux distribution you might miss |
a package named similar to libstdc++-dev.]) |
fi |
CXXFLAGS="$ac_save_CXXFLAGS" |
AC_LANG_RESTORE |
]) |
AC_DEFUN([AC_FIND_QIMGIO], |
[AC_REQUIRE([AC_FIND_JPEG]) |
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
AC_MSG_CHECKING([for qimgio]) |
AC_CACHE_VAL(ac_cv_lib_qimgio, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
ac_save_LIBS="$LIBS" |
ac_save_CXXFLAGS="$CXXFLAGS" |
LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT" |
CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" |
AC_TRY_RUN(dnl |
[ |
#include <qimageio.h> |
#include <qstring.h> |
int main() { |
QString t = "hallo"; |
t.fill('t'); |
qInitImageIO(); |
} |
], |
ac_cv_lib_qimgio=yes, |
ac_cv_lib_qimgio=no, |
ac_cv_lib_qimgio=no) |
LIBS="$ac_save_LIBS" |
CXXFLAGS="$ac_save_CXXFLAGS" |
AC_LANG_RESTORE |
])dnl |
if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then |
LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG" |
AC_MSG_RESULT(yes) |
AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available]) |
AC_SUBST(LIBQIMGIO) |
else |
AC_MSG_RESULT(not found) |
fi |
]) |
AC_DEFUN([AM_DISABLE_LIBRARIES], |
[ |
AC_PROVIDE([AM_ENABLE_STATIC]) |
AC_PROVIDE([AM_ENABLE_SHARED]) |
enable_static=no |
enable_shared=yes |
]) |
AC_DEFUN([AC_CHECK_UTMP_FILE], |
[ |
AC_MSG_CHECKING([for utmp file]) |
AC_CACHE_VAL(kde_cv_utmp_file, |
[ |
kde_cv_utmp_file=no |
for ac_file in \ |
\ |
/var/run/utmp \ |
/var/adm/utmp \ |
/etc/utmp \ |
; \ |
do |
if test -r "$ac_file"; then |
kde_cv_utmp_file=$ac_file |
break |
fi |
done |
]) |
if test "$kde_cv_utmp_file" != "no"; then |
AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries]) |
$1 |
AC_MSG_RESULT($kde_cv_utmp_file) |
else |
$2 |
AC_MSG_RESULT([non found]) |
fi |
]) |
AC_DEFUN([KDE_CREATE_SUBDIRSLIST], |
[ |
DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin" |
TOPSUBDIRS="" |
if test ! -s $srcdir/subdirs; then |
dnl Note: Makefile.common creates subdirs, so this is just a fallback |
files=`cd $srcdir && ls -1` |
dirs=`for i in $files; do if test -d $i; then echo $i; fi; done` |
for i in $dirs; do |
echo $i >> $srcdir/subdirs |
done |
fi |
ac_topsubdirs= |
if test -s $srcdir/inst-apps; then |
ac_topsubdirs="`cat $srcdir/inst-apps`" |
elif test -s $srcdir/subdirs; then |
ac_topsubdirs="`cat $srcdir/subdirs`" |
fi |
for i in $ac_topsubdirs; do |
AC_MSG_CHECKING([if $i should be compiled]) |
if test -d $srcdir/$i; then |
install_it="yes" |
for j in $DO_NOT_COMPILE; do |
if test $i = $j; then |
install_it="no" |
fi |
done |
else |
install_it="no" |
fi |
AC_MSG_RESULT($install_it) |
vari=`echo $i | sed -e 's,[[-+.@]],_,g'` |
if test $install_it = "yes"; then |
TOPSUBDIRS="$TOPSUBDIRS $i" |
eval "$vari""_SUBDIR_included=yes" |
else |
eval "$vari""_SUBDIR_included=no" |
fi |
done |
AC_SUBST(TOPSUBDIRS) |
]) |
AC_DEFUN([KDE_CHECK_NAMESPACES], |
[ |
AC_MSG_CHECKING(whether C++ compiler supports namespaces) |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
AC_TRY_COMPILE([ |
], |
[ |
namespace Foo { |
extern int i; |
namespace Bar { |
extern int i; |
} |
} |
int Foo::i = 0; |
int Foo::Bar::i = 1; |
],[ |
AC_MSG_RESULT(yes) |
AC_DEFINE(HAVE_NAMESPACES) |
], [ |
AC_MSG_RESULT(no) |
]) |
AC_LANG_RESTORE |
]) |
dnl ------------------------------------------------------------------------ |
dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org |
dnl ------------------------------------------------------------------------ |
dnl |
AC_DEFUN([AC_CHECK_S_ISSOCK], |
[ |
AC_MSG_CHECKING(for S_ISSOCK) |
AC_CACHE_VAL(ac_cv_have_s_issock, |
[ |
AC_TRY_LINK( |
[ |
#include <sys/stat.h> |
], |
[ |
struct stat buff; |
int b = S_ISSOCK( buff.st_mode ); |
], |
ac_cv_have_s_issock=yes, |
ac_cv_have_s_issock=no) |
]) |
AC_MSG_RESULT($ac_cv_have_s_issock) |
if test "$ac_cv_have_s_issock" = "yes"; then |
AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.]) |
fi |
AH_VERBATIM(_ISSOCK, |
[ |
#ifndef HAVE_S_ISSOCK |
#define HAVE_S_ISSOCK |
#define S_ISSOCK(mode) (1==0) |
#endif |
]) |
]) |
dnl ------------------------------------------------------------------------ |
dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org |
dnl ------------------------------------------------------------------------ |
dnl |
AC_DEFUN([AC_CHECK_KDEMAXPATHLEN], |
[ |
AC_MSG_CHECKING(for MAXPATHLEN) |
AC_CACHE_VAL(ac_cv_maxpathlen, |
[ |
cat > conftest.$ac_ext <<EOF |
#ifdef STDC_HEADERS |
# include <stdlib.h> |
#endif |
#include <stdio.h> |
#include <sys/param.h> |
#ifndef MAXPATHLEN |
#define MAXPATHLEN 1024 |
#endif |
KDE_HELLO MAXPATHLEN |
EOF |
ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out" |
if AC_TRY_EVAL(ac_try) && test -s conftest.out; then |
ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out` |
else |
ac_cv_maxpathlen=1024 |
fi |
rm conftest.* |
]) |
AC_MSG_RESULT($ac_cv_maxpathlen) |
AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] ) |
]) |
AC_DEFUN([KDE_CHECK_HEADER], |
[ |
kde_safe_cppflags=$CPPFLAGS |
CPPFLAGS="$CPPFLAGS $all_includes" |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
AC_CHECK_HEADER([$1], [$2], [$3], [$4]) |
AC_LANG_RESTORE |
CPPFLAGS=$kde_safe_cppflags |
]) |
AC_DEFUN([KDE_CHECK_HEADERS], |
[ |
AH_CHECK_HEADERS([$1]) |
AC_LANG_SAVE |
kde_safe_cppflags=$CPPFLAGS |
CPPFLAGS="$CPPFLAGS $all_includes" |
AC_LANG_CPLUSPLUS |
AC_CHECK_HEADERS([$1], [$2], [$3], [$4]) |
CPPFLAGS=$kde_safe_cppflags |
AC_LANG_RESTORE |
]) |
AC_DEFUN([KDE_FAST_CONFIGURE], |
[ |
dnl makes configure fast (needs perl) |
AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]), |
with_fast_perl=$enableval, with_fast_perl=yes) |
]) |
AC_DEFUN([KDE_CONF_FILES], |
[ |
val= |
if test -f $srcdir/configure.files ; then |
val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files` |
fi |
CONF_FILES= |
if test -n "$val" ; then |
for i in $val ; do |
CONF_FILES="$CONF_FILES $i" |
done |
fi |
AC_SUBST(CONF_FILES) |
])dnl |
dnl This sets the prefix, for arts and kdelibs |
dnl Do NOT use in any other module. |
dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde |
AC_DEFUN([KDE_SET_PREFIX_CORE], |
[ |
unset CDPATH |
dnl make $KDEDIR the default for the installation |
AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) |
if test "x$prefix" = "xNONE"; then |
prefix=$ac_default_prefix |
ac_configure_args="$ac_configure_args --prefix=$prefix" |
fi |
# And delete superfluous '/' to make compares easier |
prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` |
exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` |
kde_libs_prefix='$(prefix)' |
kde_libs_htmldir='$(kde_htmldir)' |
AC_SUBST(kde_libs_prefix) |
AC_SUBST(kde_libs_htmldir) |
KDE_FAST_CONFIGURE |
KDE_CONF_FILES |
]) |
AC_DEFUN([KDE_SET_PREFIX], |
[ |
unset CDPATH |
dnl We can't give real code to that macro, only a value. |
dnl It only matters for --help, since we set the prefix in this function anyway. |
AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix}) |
KDE_SET_DEFAULT_BINDIRS |
if test "x$prefix" = "xNONE"; then |
dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it |
KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) |
else |
dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH |
kde_save_PATH="$PATH" |
PATH="$exec_prefix/bin:$prefix/bin:$PATH" |
KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) |
PATH="$kde_save_PATH" |
fi |
kde_libs_prefix=`$KDECONFIG --prefix` |
if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then |
AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. |
This means it has been moved since you installed it. |
This won't work. Please recompile kdelibs for the new prefix. |
]) |
fi |
kde_libs_htmldir=`$KDECONFIG --install html --expandvars` |
AC_MSG_CHECKING([where to install]) |
if test "x$prefix" = "xNONE"; then |
prefix=$kde_libs_prefix |
AC_MSG_RESULT([$prefix (as returned by kde-config)]) |
else |
dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different |
given_prefix=$prefix |
AC_MSG_RESULT([$prefix (as requested)]) |
fi |
# And delete superfluous '/' to make compares easier |
prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` |
exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` |
given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` |
AC_SUBST(KDECONFIG) |
AC_SUBST(kde_libs_prefix) |
AC_SUBST(kde_libs_htmldir) |
KDE_FAST_CONFIGURE |
KDE_CONF_FILES |
]) |
pushdef([AC_PROG_INSTALL], |
[ |
dnl our own version, testing for a -p flag |
popdef([AC_PROG_INSTALL]) |
dnl as AC_PROG_INSTALL works as it works we first have |
dnl to save if the user didn't specify INSTALL, as the |
dnl autoconf one overwrites INSTALL and we have no chance to find |
dnl out afterwards |
test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL |
test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM |
test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT |
AC_PROG_INSTALL |
if test -z "$kde_save_INSTALL_given" ; then |
# OK, user hasn't given any INSTALL, autoconf found one for us |
# now we test, if it supports the -p flag |
AC_MSG_CHECKING(for -p flag to install) |
rm -f confinst.$$.* > /dev/null 2>&1 |
echo "Testtest" > confinst.$$.orig |
ac_res=no |
if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then |
if test -f confinst.$$.new ; then |
# OK, -p seems to do no harm to install |
INSTALL="${INSTALL} -p" |
ac_res=yes |
fi |
fi |
rm -f confinst.$$.* |
AC_MSG_RESULT($ac_res) |
fi |
dnl the following tries to resolve some signs and wonders coming up |
dnl with different autoconf/automake versions |
dnl e.g.: |
dnl *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s |
dnl and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS) |
dnl it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s |
dnl *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has |
dnl INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the |
dnl install-@DIR@PROGRAMS targets to explicitly use that flag |
dnl *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as |
dnl INSTALL_SCRIPT, which breaks with automake <= 1.4 |
dnl *autoconf >2.13 (since 10.Apr 1999) has not that failure |
dnl *sometimes KDE does not use the install-@DIR@PROGRAM targets from |
dnl automake (due to broken Makefile.am or whatever) to install programs, |
dnl and so does not see the -s flag in automake > 1.4 |
dnl to clean up that mess we: |
dnl +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG |
dnl which cleans KDE's program with automake > 1.4; |
dnl +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems |
dnl with automake<=1.4 |
dnl note that dues to this sometimes two '-s' flags are used (if KDE |
dnl properly uses install-@DIR@PROGRAMS, but I don't care |
dnl |
dnl And to all this comes, that I even can't write in comments variable |
dnl names used by automake, because it is so stupid to think I wanted to |
dnl _use_ them, therefor I have written A_M_... instead of AM_ |
dnl hmm, I wanted to say something ... ahh yes: Arghhh. |
if test -z "$kde_save_INSTALL_PROGRAM_given" ; then |
INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)' |
fi |
if test -z "$kde_save_INSTALL_SCRIPT_given" ; then |
INSTALL_SCRIPT='${INSTALL}' |
fi |
])dnl |
AC_DEFUN([KDE_LANG_CPLUSPLUS], |
[AC_LANG_CPLUSPLUS |
ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC' |
pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS]) |
]) |
pushdef([AC_LANG_CPLUSPLUS], |
[popdef([AC_LANG_CPLUSPLUS]) |
KDE_LANG_CPLUSPLUS |
]) |
AC_DEFUN([KDE_CHECK_LONG_LONG], |
[ |
AC_MSG_CHECKING(for long long) |
AC_CACHE_VAL(kde_cv_c_long_long, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
AC_TRY_LINK([], [ |
long long foo = 0; |
foo = foo+1; |
], |
kde_cv_c_long_long=yes, kde_cv_c_long_long=no) |
AC_LANG_RESTORE |
]) |
AC_MSG_RESULT($kde_cv_c_long_long) |
if test "$kde_cv_c_long_long" = yes; then |
AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype]) |
fi |
]) |
AC_DEFUN([KDE_CHECK_LIB], |
[ |
kde_save_LDFLAGS="$LDFLAGS" |
dnl AC_CHECK_LIB modifies LIBS, so save it here |
kde_save_LIBS="$LIBS" |
LDFLAGS="$LDFLAGS $all_libraries" |
case $host_os in |
aix*) LDFLAGS="-brtl $LDFLAGS" |
test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS" |
;; |
esac |
AC_CHECK_LIB($1, $2, $3, $4, $5) |
LDFLAGS="$kde_save_LDFLAGS" |
LIBS="$kde_save_LIBS" |
]) |
AC_DEFUN([KDE_JAVA_PREFIX], |
[ |
dir=`dirname "$1"` |
base=`basename "$1"` |
list=`ls -1 $dir 2> /dev/null` |
for entry in $list; do |
if test -d $dir/$entry/bin; then |
case $entry in |
$base) |
javadirs="$javadirs $dir/$entry/bin" |
;; |
esac |
elif test -d $dir/$entry/jre/bin; then |
case $entry in |
$base) |
javadirs="$javadirs $dir/$entry/jre/bin" |
;; |
esac |
fi |
done |
]) |
dnl KDE_CHEC_JAVA_DIR(onlyjre) |
AC_DEFUN([KDE_CHECK_JAVA_DIR], |
[ |
AC_ARG_WITH(java, |
AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]), |
[ ac_java_dir=$withval |
], ac_java_dir="" |
) |
AC_MSG_CHECKING([for Java]) |
dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH |
if test "x$ac_java_dir" = "xno"; then |
kde_java_bindir=no |
kde_java_includedir=no |
kde_java_libjvmdir=no |
kde_java_libgcjdir=no |
kde_java_libhpidir=no |
else |
if test "x$ac_java_dir" = "x"; then |
dnl No option set -> collect list of candidate paths |
if test -n "$JAVA_HOME"; then |
KDE_JAVA_PREFIX($JAVA_HOME) |
fi |
KDE_JAVA_PREFIX(/usr/j2se) |
KDE_JAVA_PREFIX(/usr/lib/j2se) |
KDE_JAVA_PREFIX(/usr/j*dk*) |
KDE_JAVA_PREFIX(/usr/lib/j*dk*) |
KDE_JAVA_PREFIX(/opt/j*sdk*) |
KDE_JAVA_PREFIX(/usr/lib/java*) |
KDE_JAVA_PREFIX(/usr/java*) |
KDE_JAVA_PREFIX(/usr/java/j*dk*) |
KDE_JAVA_PREFIX(/usr/java/j*re*) |
KDE_JAVA_PREFIX(/usr/lib/SunJava2*) |
KDE_JAVA_PREFIX(/usr/lib/SunJava*) |
KDE_JAVA_PREFIX(/usr/lib/IBMJava2*) |
KDE_JAVA_PREFIX(/usr/lib/IBMJava*) |
KDE_JAVA_PREFIX(/opt/java*) |
kde_cv_path="NONE" |
kde_save_IFS=$IFS |
IFS=':' |
for dir in $PATH; do |
if test -d "$dir"; then |
javadirs="$javadirs $dir" |
fi |
done |
IFS=$kde_save_IFS |
jredirs= |
dnl Now javadirs contains a list of paths that exist, all ending with bin/ |
for dir in $javadirs; do |
dnl Check for the java executable |
if test -x "$dir/java"; then |
sane_path=$(cd $dir; /bin/pwd) |
dnl And also check for a libjvm.so somewhere under there |
dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big. |
if test "$sane_path" != "/usr/bin"; then |
libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` |
if test ! -f $libjvmdir/libjvm.so; then continue; fi |
jredirs="$jredirs $dir" |
fi |
fi |
done |
dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found |
JAVAC= |
JAVA= |
kde_java_bindir=no |
for dir in $jredirs; do |
JAVA="$dir/java" |
kde_java_bindir=$dir |
if test -x "$dir/javac"; then |
JAVAC="$dir/javac" |
break |
fi |
done |
if test -n "$JAVAC"; then |
dnl this substitution might not work - well, we test for jni.h below |
kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'` |
else |
kde_java_includedir=no |
fi |
else |
dnl config option set |
kde_java_bindir=$ac_java_dir/bin |
if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then |
kde_java_includedir=no |
else |
kde_java_includedir=$ac_java_dir/include |
fi |
fi |
fi |
dnl At this point kde_java_bindir and kde_java_includedir are either set or "no" |
if test "x$kde_java_bindir" != "xno"; then |
dnl Look for libjvm.so |
kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` |
dnl Look for libgcj.so |
kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1` |
dnl Look for libhpi.so and avoid green threads |
kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1` |
dnl Now check everything's fine under there |
dnl the include dir is our flag for having the JDK |
if test -d "$kde_java_includedir"; then |
if test ! -x "$kde_java_bindir/javac"; then |
AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.]) |
fi |
if test ! -x "$kde_java_bindir/javah"; then |
AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) |
fi |
if test ! -x "$kde_java_bindir/jar"; then |
AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) |
fi |
if test ! -r "$kde_java_includedir/jni.h"; then |
AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.]) |
fi |
jni_includes="-I$kde_java_includedir" |
dnl Strange thing, jni.h requires jni_md.h which is under genunix here.. |
dnl and under linux here.. |
dnl not needed for gcj |
if test "x$kde_java_libgcjdir" = "x"; then |
test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux" |
test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris" |
test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix" |
fi |
else |
JAVAC= |
jni_includes= |
fi |
if test "x$kde_java_libgcjdir" = "x"; then |
if test ! -r "$kde_java_libjvmdir/libjvm.so"; then |
AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.]) |
fi |
else |
if test ! -r "$kde_java_libgcjdir/libgcj.so"; then |
AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.]) |
fi |
fi |
if test ! -x "$kde_java_bindir/java"; then |
AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) |
fi |
dnl not needed for gcj compile |
if test "x$kde_java_libgcjdir" = "x"; then |
if test ! -r "$kde_java_libhpidir/libhpi.so"; then |
AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.]) |
fi |
fi |
if test -n "$jni_includes"; then |
dnl Check for JNI version |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
ac_cxxflags_safe="$CXXFLAGS" |
CXXFLAGS="$CXXFLAGS $all_includes $jni_includes" |
AC_TRY_COMPILE([ |
#include <jni.h> |
], |
[ |
#ifndef JNI_VERSION_1_2 |
Syntax Error |
#endif |
],[ kde_jni_works=yes ], |
[ kde_jni_works=no ]) |
if test $kde_jni_works = no; then |
AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h. |
You need to have Java Development Kit (JDK) version 1.2. |
Use --with-java to specify another location. |
Use --without-java to configure without java support. |
Or download a newer JDK and try again. |
See e.g. http://java.sun.com/products/jdk/1.2 ]) |
fi |
CXXFLAGS="$ac_cxxflags_safe" |
AC_LANG_RESTORE |
dnl All tests ok, inform and subst the variables |
JAVAC=$kde_java_bindir/javac |
JAVAH=$kde_java_bindir/javah |
JAR=$kde_java_bindir/jar |
AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) |
if test "x$kde_java_libgcjdir" = "x"; then |
JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi" |
else |
JVMLIBS="-L$kde_java_libgcjdir -lgcj" |
fi |
AC_MSG_RESULT([java JDK in $kde_java_bindir]) |
else |
AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) |
AC_MSG_RESULT([java JRE in $kde_java_bindir]) |
fi |
elif test -d "/Library/Java/Home"; then |
kde_java_bindir="/Library/Java/Home/bin" |
jni_includes="-I/Library/Java/Home/include" |
JAVAC=$kde_java_bindir/javac |
JAVAH=$kde_java_bindir/javah |
JAR=$kde_java_bindir/jar |
JVMLIBS="-Wl,-framework,JavaVM" |
AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) |
AC_MSG_RESULT([Apple Java Framework]) |
else |
AC_MSG_RESULT([none found]) |
fi |
AC_SUBST(JAVAC) |
AC_SUBST(JAVAH) |
AC_SUBST(JAR) |
AC_SUBST(JVMLIBS) |
AC_SUBST(jni_includes) |
# for backward compat |
kde_cv_java_includedir=$kde_java_includedir |
kde_cv_java_bindir=$kde_java_bindir |
]) |
dnl this is a redefinition of autoconf 2.5x's AC_FOREACH. |
dnl When the argument list becomes big, as in KDE for AC_OUTPUT in |
dnl big packages, m4_foreach is dog-slow. So use our own version of |
dnl it. (matz@kde.org) |
m4_define([mm_foreach], |
[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])]) |
m4_define([mm_car], [[$1]]) |
m4_define([mm_car2], [[$@]]) |
m4_define([_mm_foreach], |
[m4_if(m4_quote($2), [], [], |
[m4_define([$1], mm_car($2))$3[]_mm_foreach([$1], |
mm_car2(m4_shift($2)), |
[$3])])]) |
m4_define([AC_FOREACH], |
[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])]) |
AC_DEFUN([KDE_NEED_FLEX], |
[ |
kde_libs_safe=$LIBS |
LIBS="$LIBS $USER_LDFLAGS" |
AM_PROG_LEX |
LIBS=$kde_libs_safe |
if test -z "$LEXLIB"; then |
AC_MSG_ERROR([You need to have flex installed.]) |
fi |
AC_SUBST(LEXLIB) |
]) |
AC_DEFUN([AC_PATH_QTOPIA], |
[ |
dnl TODO: use AC_CACHE_VAL |
if test -z "$1"; then |
qtopia_minver_maj=1 |
qtopia_minver_min=5 |
qtopia_minver_pat=0 |
else |
qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"` |
qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"` |
qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"` |
fi |
qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat" |
qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat" |
AC_REQUIRE([AC_PATH_QT]) |
AC_MSG_CHECKING([for Qtopia]) |
LIB_QTOPIA="-lqpe" |
AC_SUBST(LIB_QTOPIA) |
kde_qtopia_dirs="$QPEDIR /opt/Qtopia" |
ac_qtopia_incdir=NO |
AC_ARG_WITH(qtopia-dir, |
AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]), |
[ ac_qtopia_incdir="$withval"/include] ) |
qtopia_incdirs="" |
for dir in $kde_qtopia_dirs; do |
qtopia_incdirs="$qtopia_incdirs $dir/include" |
done |
if test ! "$ac_qtopia_incdir" = "NO"; then |
qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs" |
fi |
qtopia_incdir="" |
AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir) |
ac_qtopia_incdir="$qtopia_incdir" |
if test -z "$qtopia_incdir"; then |
AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.]) |
fi |
qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`; |
qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`; |
qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`; |
qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat" |
qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat" |
if test "$qtopia_ver" -lt "$qtopia_minver"; then |
AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr |
is required.]) |
fi |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
ac_cxxflags_safe="$CXXFLAGS" |
ac_ldflags_safe="$LDFLAGS" |
ac_libs_safe="$LIBS" |
CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes" |
LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" |
LIBS="$LIBS $LIB_QTOPIA $LIBQT" |
cat > conftest.$ac_ext <<EOF |
#include "confdefs.h" |
#include <qpe/qpeapplication.h> |
#include <qpe/version.h> |
int main( int argc, char **argv ) |
{ |
QPEApplication app( argc, argv ); |
return 0; |
} |
EOF |
if AC_TRY_EVAL(ac_link) && test -s conftest; then |
rm -f conftest* |
else |
rm -f conftest* |
AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at |
the end of config.log]) |
fi |
CXXFLAGS="$ac_cxxflags_safe" |
LDFLAGS="$ac_ldflags_safe" |
LIBS="$ac_libs_safe" |
AC_LANG_RESTORE |
QTOPIA_INCLUDES="-I$qtopia_incdir" |
AC_SUBST(QTOPIA_INCLUDES) |
AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir]) |
]) |
AC_DEFUN([KDE_INIT_DOXYGEN], |
[ |
AC_MSG_CHECKING([for Qt docs]) |
kde_qtdir= |
if test "${with_qt_dir+set}" = set; then |
kde_qtdir="$with_qt_dir" |
fi |
AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR) |
AC_MSG_RESULT($QTDOCDIR) |
AC_SUBST(QTDOCDIR) |
KDE_FIND_PATH(dot, DOT, [], []) |
if test -n "$DOT"; then |
KDE_HAVE_DOT="YES" |
else |
KDE_HAVE_DOT="NO" |
fi |
AC_SUBST(KDE_HAVE_DOT) |
KDE_FIND_PATH(doxygen, DOXYGEN, [], []) |
AC_SUBST(DOXYGEN) |
DOXYGEN_PROJECT_NAME="$1" |
DOXYGEN_PROJECT_NUMBER="$2" |
AC_SUBST(DOXYGEN_PROJECT_NAME) |
AC_SUBST(DOXYGEN_PROJECT_NUMBER) |
KDE_HAS_DOXYGEN=no |
if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then |
KDE_HAS_DOXYGEN=yes |
fi |
AC_SUBST(KDE_HAS_DOXYGEN) |
]) |
AC_DEFUN([AC_FIND_BZIP2], |
[ |
AC_MSG_CHECKING([for bzDecompress in libbz2]) |
AC_CACHE_VAL(ac_cv_lib_bzip2, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
kde_save_LIBS="$LIBS" |
LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET" |
kde_save_CXXFLAGS="$CXXFLAGS" |
CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" |
AC_TRY_LINK(dnl |
[ |
#define BZ_NO_STDIO |
#include<bzlib.h> |
], |
[ bz_stream s; (void) bzDecompress(&s); ], |
eval "ac_cv_lib_bzip2='-lbz2'", |
eval "ac_cv_lib_bzip2=no") |
LIBS="$kde_save_LIBS" |
CXXFLAGS="$kde_save_CXXFLAGS" |
AC_LANG_RESTORE |
])dnl |
AC_MSG_RESULT($ac_cv_lib_bzip2) |
if test ! "$ac_cv_lib_bzip2" = no; then |
BZIP2DIR=bzip2 |
LIBBZ2="$ac_cv_lib_bzip2" |
AC_SUBST(LIBBZ2) |
else |
cxx_shared_flag= |
ld_shared_flag= |
KDE_CHECK_COMPILER_FLAG(shared, [ |
ld_shared_flag="-shared" |
]) |
KDE_CHECK_COMPILER_FLAG(fPIC, [ |
cxx_shared_flag="-fPIC" |
]) |
AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2]) |
AC_CACHE_VAL(ac_cv_lib_bzip2_prefix, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
kde_save_LIBS="$LIBS" |
LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET" |
kde_save_CXXFLAGS="$CXXFLAGS" |
CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES" |
AC_TRY_LINK(dnl |
[ |
#define BZ_NO_STDIO |
#include<bzlib.h> |
], |
[ bz_stream s; (void) BZ2_bzDecompress(&s); ], |
eval "ac_cv_lib_bzip2_prefix='-lbz2'", |
eval "ac_cv_lib_bzip2_prefix=no") |
LIBS="$kde_save_LIBS" |
CXXFLAGS="$kde_save_CXXFLAGS" |
AC_LANG_RESTORE |
])dnl |
AC_MSG_RESULT($ac_cv_lib_bzip2_prefix) |
if test ! "$ac_cv_lib_bzip2_prefix" = no; then |
BZIP2DIR=bzip2 |
LIBBZ2="$ac_cv_lib_bzip2_prefix" |
AC_SUBST(LIBBZ2) |
AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix]) |
dnl else, we just ignore this |
fi |
fi |
AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR") |
]) |
dnl ------------------------------------------------------------------------ |
dnl Try to find the SSL headers and libraries. |
dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed) |
dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed) |
dnl ------------------------------------------------------------------------ |
dnl |
AC_DEFUN([KDE_CHECK_SSL], |
[ |
LIBSSL="-lssl -lcrypto" |
AC_REQUIRE([KDE_CHECK_LIB64]) |
ac_ssl_includes=NO ac_ssl_libraries=NO |
ssl_libraries="" |
ssl_includes="" |
AC_ARG_WITH(ssl-dir, |
AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]), |
[ ac_ssl_includes="$withval"/include |
ac_ssl_libraries="$withval"/lib$kdelibsuff |
]) |
want_ssl=yes |
AC_ARG_WITH(ssl, |
AC_HELP_STRING([--without-ssl],[disable SSL checks]), |
[want_ssl=$withval]) |
if test $want_ssl = yes; then |
AC_MSG_CHECKING(for OpenSSL) |
AC_CACHE_VAL(ac_cv_have_ssl, |
[#try to guess OpenSSL locations |
ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes" |
ssl_incdirs="$ac_ssl_includes $ssl_incdirs" |
AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir) |
ac_ssl_includes="$ssl_incdir" |
ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs" |
if test ! "$ac_ssl_libraries" = "NO"; then |
ssl_libdirs="$ac_ssl_libraries $ssl_libdirs" |
fi |
test=NONE |
ssl_libdir=NONE |
for dir in $ssl_libdirs; do |
try="ls -1 $dir/libssl*" |
if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi |
done |
ac_ssl_libraries="$ssl_libdir" |
ac_ldflags_safe="$LDFLAGS" |
ac_libs_safe="$LIBS" |
LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries" |
LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref" |
AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();, |
ac_ssl_rsaref="yes" |
, |
ac_ssl_rsaref="no" |
) |
LDFLAGS="$ac_ldflags_safe" |
LIBS="$ac_libs_safe" |
if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then |
have_ssl=no |
else |
have_ssl=yes; |
fi |
]) |
eval "$ac_cv_have_ssl" |
AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes]) |
AC_MSG_CHECKING([whether OpenSSL uses rsaref]) |
AC_MSG_RESULT($ac_ssl_rsaref) |
AC_MSG_CHECKING([for easter eggs]) |
AC_MSG_RESULT([none found]) |
else |
have_ssl=no |
fi |
if test "$have_ssl" = yes; then |
AC_MSG_CHECKING(for OpenSSL version) |
dnl Check for SSL version |
AC_CACHE_VAL(ac_cv_ssl_version, |
[ |
cat >conftest.$ac_ext <<EOF |
#include <openssl/opensslv.h> |
#include <stdio.h> |
int main() { |
#ifndef OPENSSL_VERSION_NUMBER |
printf("ssl_version=\\"error\\"\n"); |
#else |
if (OPENSSL_VERSION_NUMBER < 0x00906000) |
printf("ssl_version=\\"old\\"\n"); |
else |
printf("ssl_version=\\"ok\\"\n"); |
#endif |
return (0); |
} |
EOF |
ac_save_CPPFLAGS=$CPPFLAGS |
if test "$ac_ssl_includes" != "/usr/include"; then |
CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes" |
fi |
if AC_TRY_EVAL(ac_link); then |
if eval `./conftest 2>&5`; then |
if test $ssl_version = error; then |
AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !]) |
else |
if test $ssl_version = old; then |
AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.]) |
have_ssl=no |
fi |
fi |
ac_cv_ssl_version="ssl_version=$ssl_version" |
else |
AC_MSG_ERROR([Your system couldn't run a small SSL test program. |
Check config.log, and if you can't figure it out, send a mail to |
David Faure <faure@kde.org>, attaching your config.log]) |
fi |
else |
AC_MSG_ERROR([Your system couldn't link a small SSL test program. |
Check config.log, and if you can't figure it out, send a mail to |
David Faure <faure@kde.org>, attaching your config.log]) |
fi |
CPPFLAGS=$ac_save_CPPFLAGS |
]) |
eval "$ac_cv_ssl_version" |
AC_MSG_RESULT($ssl_version) |
fi |
if test "$have_ssl" != yes; then |
LIBSSL=""; |
else |
AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL]) |
ac_cv_have_ssl="have_ssl=yes \ |
ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref" |
ssl_libraries="$ac_ssl_libraries" |
ssl_includes="$ac_ssl_includes" |
if test "$ac_ssl_rsaref" = yes; then |
LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" |
fi |
if test $ssl_version = "old"; then |
AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6]) |
fi |
fi |
SSL_INCLUDES= |
if test "$ssl_includes" = "/usr/include"; then |
if test -f /usr/kerberos/include/krb5.h; then |
SSL_INCLUDES="-I/usr/kerberos/include" |
fi |
elif test "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then |
SSL_INCLUDES="-I$ssl_includes" |
fi |
if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then |
SSL_LDFLAGS="" |
else |
SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries" |
fi |
AC_SUBST(SSL_INCLUDES) |
AC_SUBST(SSL_LDFLAGS) |
AC_SUBST(LIBSSL) |
]) |
AC_DEFUN([KDE_CHECK_STRLCPY], |
[ |
AC_REQUIRE([AC_CHECK_STRLCAT]) |
AC_REQUIRE([AC_CHECK_STRLCPY]) |
AC_CHECK_SIZEOF(size_t) |
AC_CHECK_SIZEOF(unsigned long) |
AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long]) |
AC_TRY_COMPILE(,[ |
#if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG |
choke me |
#endif |
],AC_MSG_RESULT([yes]),[ |
AC_MSG_RESULT(no) |
AC_MSG_ERROR([ |
Apparently on your system our assumption sizeof size_t == sizeof unsigned long |
does not apply. Please mail kde-devel@kde.org with a description of your system! |
]) |
]) |
]) |
AC_DEFUN([KDE_CHECK_BINUTILS], |
[ |
AC_MSG_CHECKING([if ld supports unversioned version maps]) |
kde_save_LDFLAGS="$LDFLAGS" |
LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" |
echo "{ local: extern \"C++\" { foo }; };" > conftest.map |
AC_TRY_LINK([int foo;], |
[ |
#ifdef __INTEL_COMPILER |
icc apparently does not support libtools version-info and version-script |
at the same time. Dunno where the bug is, but until somebody figured out, |
better disable the optional version scripts. |
#endif |
foo = 42; |
], kde_supports_versionmaps=yes, kde_supports_versionmaps=no) |
LDFLAGS="$kde_save_LDFLAGS" |
rm -f conftest.map |
AM_CONDITIONAL(include_VERSION_SCRIPT, |
[test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"]) |
AC_MSG_RESULT($kde_supports_versionmaps) |
]) |
AC_DEFUN([AM_PROG_OBJC],[ |
AC_CHECK_PROGS(OBJC, gcc, gcc) |
test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH]) |
if test "x${OBJCFLAGS-unset}" = xunset; then |
OBJCFLAGS="-g -O2" |
fi |
AC_SUBST(OBJCFLAGS) |
_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)]) |
]) |
AC_DEFUN([KDE_CHECK_PERL], |
[ |
KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [ |
AC_MSG_ERROR([No Perl found in your $PATH. |
We need perl to generate some code.]) |
]) |
AC_SUBST(PERL) |
]) |
AC_DEFUN([KDE_CHECK_LARGEFILE], |
[ |
AC_SYS_LARGEFILE |
if test "$ac_cv_sys_file_offset_bits" != no; then |
CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" |
fi |
if test "x$ac_cv_sys_large_files" != "xno"; then |
CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1" |
fi |
]) |
dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in) |
dnl which allows to search for libs that get installed into the KDE prefix. |
dnl |
dnl Syntax: KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not) |
dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page |
dnl also defines KSTUFF_PKG_ERRORS on error |
AC_DEFUN([KDE_PKG_CHECK_MODULES], [ |
PKG_CONFIG_PATH="$prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH" |
if test "$prefix" != "$kde_libs_prefix"; then |
PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH" |
fi |
export PKG_CONFIG_PATH |
PKG_CHECK_MODULES([$1],[$2],[$3],[$4]) |
]) |
dnl Check for PIE support in the compiler and linker |
AC_DEFUN([KDE_CHECK_PIE_SUPPORT], |
[ |
AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support, |
[ |
AC_LANG_SAVE |
AC_LANG_CPLUSPLUS |
safe_CXXFLAGS=$CXXFLAGS |
safe_LDFLAGS=$LDFLAGS |
CXXFLAGS="$CXXFLAGS -fPIE" |
LDFLAGS="$LDFLAGS -pie" |
AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no]) |
CXXFLAGS=$safe_CXXFLAGS |
LDFLAGS=$safe_LDFLAGS |
AC_LANG_RESTORE |
]) |
AC_MSG_CHECKING(if enabling -pie/fPIE support) |
AC_ARG_ENABLE(pie, |
AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]), |
[kde_has_pie_support=$enableval], |
[kde_has_pie_support=detect]) |
if test "$kde_has_pie_support" = "detect"; then |
kde_has_pie_support=$kde_cv_val_pie_support |
fi |
AC_MSG_RESULT([$kde_has_pie_support]) |
KDE_USE_FPIE="" |
KDE_USE_PIE="" |
AC_SUBST([KDE_USE_FPIE]) |
AC_SUBST([KDE_USE_PIE]) |
if test "$kde_has_pie_support" = "yes"; then |
KDE_USE_FPIE="-fPIE" |
KDE_USE_PIE="-pie" |
fi |
]) |
/tilgungsplan/trunk/admin/configure.in.bot.end |
---|
0,0 → 1,45 |
# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure |
if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then |
# And if so, warn when they don't match |
if test "$kde_libs_prefix" != "$given_prefix"; then |
# And if kde doesn't know about the prefix yet |
echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null |
if test $? -ne 0; then |
echo "" |
echo "Warning: you chose to install this package in $given_prefix," |
echo "but KDE was found in $kde_libs_prefix." |
echo "For this to work, you will need to tell KDE about the new prefix, by ensuring" |
echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix" |
echo "Then restart KDE." |
echo "" |
fi |
fi |
fi |
if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then |
echo "" |
echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility" |
echo "was not included. Therefore, GCC symbol visibility support remains disabled." |
echo "" |
echo "For better performance, consider including the Qt visibility supporting patch" |
echo "located at:" |
echo "" |
echo "http://bugs.kde.org/show_bug.cgi?id=109386" |
echo "" |
echo "and recompile all of Qt and KDE. Note, this is entirely optional and" |
echo "everything will continue to work just fine without it." |
echo "" |
fi |
if test "$all_tests" = "bad"; then |
if test ! "$cache_file" = "/dev/null"; then |
echo "" |
echo "Please remove the file $cache_file after changing your setup" |
echo "so that configure will find the changes next time." |
echo "" |
fi |
else |
echo "" |
echo "Good - your configure finished. Start make now" |
echo "" |
fi |
/tilgungsplan/trunk/admin/install-sh |
---|
0,0 → 1,401 |
#!/bin/sh |
# install - install a program, script, or datafile |
scriptversion=2005-11-07.23 |
# This originates from X11R5 (mit/util/scripts/install.sh), which was |
# later released in X11R6 (xc/config/util/install.sh) with the |
# following copyright and license. |
# |
# Copyright (C) 1994 X Consortium |
# |
# Permission is hereby granted, free of charge, to any person obtaining a copy |
# of this software and associated documentation files (the "Software"), to |
# deal in the Software without restriction, including without limitation the |
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
# sell copies of the Software, and to permit persons to whom the Software is |
# furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice shall be included in |
# all copies or substantial portions of the Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN |
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- |
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
# |
# Except as contained in this notice, the name of the X Consortium shall not |
# be used in advertising or otherwise to promote the sale, use or other deal- |
# ings in this Software without prior written authorization from the X Consor- |
# tium. |
# |
# |
# FSF changes to this file are in the public domain. |
# |
# Calling this script install-sh is preferred over install.sh, to prevent |
# `make' implicit rules from creating a file called install from it |
# when there is no Makefile. |
# |
# This script is compatible with the BSD install script, but was written |
# from scratch. It can only install one file at a time, a restriction |
# shared with many OS's install programs. |
# set DOITPROG to echo to test this script |
# Don't use :- since 4.3BSD and earlier shells don't like it. |
doit="${DOITPROG-}" |
# put in absolute paths if you don't have them in your path; or use env. vars. |
mvprog="${MVPROG-mv}" |
cpprog="${CPPROG-cp}" |
chmodprog="${CHMODPROG-chmod}" |
chownprog="${CHOWNPROG-chown}" |
chgrpprog="${CHGRPPROG-chgrp}" |
stripprog="${STRIPPROG-strip}" |
rmprog="${RMPROG-rm}" |
mkdirprog="${MKDIRPROG-mkdir}" |
posix_glob= |
posix_mkdir= |
# Symbolic mode for testing mkdir with directories. |
# It is the same as 755, but also tests that "u+" works. |
test_mode=u=rwx,g=rx,o=rx,u+wx |
# Desired mode of installed file. |
mode=0755 |
# Desired mode of newly created intermediate directories. |
# It is empty if not known yet. |
intermediate_mode= |
chmodcmd=$chmodprog |
chowncmd= |
chgrpcmd= |
stripcmd= |
rmcmd="$rmprog -f" |
mvcmd="$mvprog" |
src= |
dst= |
dir_arg= |
dstarg= |
no_target_directory= |
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE |
or: $0 [OPTION]... SRCFILES... DIRECTORY |
or: $0 [OPTION]... -t DIRECTORY SRCFILES... |
or: $0 [OPTION]... -d DIRECTORIES... |
In the 1st form, copy SRCFILE to DSTFILE. |
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. |
In the 4th, create DIRECTORIES. |
Options: |
-c (ignored) |
-d create directories instead of installing files. |
-g GROUP $chgrpprog installed files to GROUP. |
-m MODE $chmodprog installed files to MODE. |
-o USER $chownprog installed files to USER. |
-s $stripprog installed files. |
-t DIRECTORY install into DIRECTORY. |
-T report an error if DSTFILE is a directory. |
--help display this help and exit. |
--version display version info and exit. |
Environment variables override the default commands: |
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG |
" |
while test -n "$1"; do |
case $1 in |
-c) shift |
continue;; |
-d) dir_arg=true |
shift |
continue;; |
-g) chgrpcmd="$chgrpprog $2" |
shift |
shift |
continue;; |
--help) echo "$usage"; exit $?;; |
-m) mode=$2 |
shift |
shift |
continue;; |
-o) chowncmd="$chownprog $2" |
shift |
shift |
continue;; |
-s) stripcmd=$stripprog |
shift |
continue;; |
-t) dstarg=$2 |
shift |
shift |
continue;; |
-T) no_target_directory=true |
shift |
continue;; |
--version) echo "$0 $scriptversion"; exit $?;; |
*) # When -d is used, all remaining arguments are directories to create. |
# When -t is used, the destination is already specified. |
test -n "$dir_arg$dstarg" && break |
# Otherwise, the last argument is the destination. Remove it from $@. |
for arg |
do |
if test -n "$dstarg"; then |
# $@ is not empty: it contains at least $arg. |
set fnord "$@" "$dstarg" |
shift # fnord |
fi |
shift # arg |
dstarg=$arg |
done |
break;; |
esac |
done |
if test -z "$1"; then |
if test -z "$dir_arg"; then |
echo "$0: no input file specified." >&2 |
exit 1 |
fi |
# It's OK to call `install-sh -d' without argument. |
# This can happen when creating conditional directories. |
exit 0 |
fi |
test -n "$dir_arg" || trap '(exit $?); exit' 1 2 13 15 |
for src |
do |
# Protect names starting with `-'. |
case $src in |
-*) src=./$src ;; |
esac |
if test -n "$dir_arg"; then |
dst=$src |
dstdir=$dst |
test -d "$dstdir" |
dstdir_status=$? |
else |
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command |
# might cause directories to be created, which would be especially bad |
# if $src (and thus $dsttmp) contains '*'. |
if test ! -f "$src" && test ! -d "$src"; then |
echo "$0: $src does not exist." >&2 |
exit 1 |
fi |
if test -z "$dstarg"; then |
echo "$0: no destination specified." >&2 |
exit 1 |
fi |
dst=$dstarg |
# Protect names starting with `-'. |
case $dst in |
-*) dst=./$dst ;; |
esac |
# If destination is a directory, append the input filename; won't work |
# if double slashes aren't ignored. |
if test -d "$dst"; then |
if test -n "$no_target_directory"; then |
echo "$0: $dstarg: Is a directory" >&2 |
exit 1 |
fi |
dstdir=$dst |
dst=$dstdir/`basename "$src"` |
dstdir_status=0 |
else |
# Prefer dirname, but fall back on a substitute if dirname fails. |
dstdir=` |
(dirname "$dst") 2>/dev/null || |
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ |
X"$dst" : 'X\(//\)[^/]' \| \ |
X"$dst" : 'X\(//\)$' \| \ |
X"$dst" : 'X\(/\)' \| \ |
. : '\(.\)' 2>/dev/null || |
echo X"$dst" | |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } |
/^X\(\/\/\)[^/].*/{ s//\1/; q; } |
/^X\(\/\/\)$/{ s//\1/; q; } |
/^X\(\/\).*/{ s//\1/; q; } |
s/.*/./; q' |
` |
test -d "$dstdir" |
dstdir_status=$? |
fi |
fi |
obsolete_mkdir_used=false |
if test $dstdir_status != 0; then |
case $posix_mkdir in |
'') |
posix_mkdir=false |
if $mkdirprog -m $test_mode -p -- / >/dev/null 2>&1; then |
posix_mkdir=true |
else |
# Remove any dirs left behind by ancient mkdir implementations. |
rmdir ./-m "$test_mode" ./-p ./-- 2>/dev/null |
fi ;; |
esac |
if |
$posix_mkdir && { |
# With -d, create the new directory with the user-specified mode. |
# Otherwise, create it using the same intermediate mode that |
# mkdir -p would use when creating intermediate directories. |
# POSIX says that this mode is "$(umask -S),u+wx", so use that |
# if umask -S works. |
if test -n "$dir_arg"; then |
mkdir_mode=$mode |
else |
case $intermediate_mode in |
'') |
if umask_S=`(umask -S) 2>/dev/null`; then |
intermediate_mode=$umask_S,u+wx |
else |
intermediate_mode=$test_mode |
fi ;; |
esac |
mkdir_mode=$intermediate_mode |
fi |
$mkdirprog -m "$mkdir_mode" -p -- "$dstdir" |
} |
then : |
else |
# mkdir does not conform to POSIX, or it failed possibly due to |
# a race condition. Create the directory the slow way, step by |
# step, checking for races as we go. |
case $dstdir in |
/*) pathcomp=/ ;; |
-*) pathcomp=./ ;; |
*) pathcomp= ;; |
esac |
case $posix_glob in |
'') |
if (set -f) 2>/dev/null; then |
posix_glob=true |
else |
posix_glob=false |
fi ;; |
esac |
oIFS=$IFS |
IFS=/ |
$posix_glob && set -f |
set fnord $dstdir |
shift |
$posix_glob && set +f |
IFS=$oIFS |
for d |
do |
test "x$d" = x && continue |
pathcomp=$pathcomp$d |
if test ! -d "$pathcomp"; then |
$mkdirprog "$pathcomp" |
# Don't fail if two instances are running concurrently. |
test -d "$pathcomp" || exit 1 |
fi |
pathcomp=$pathcomp/ |
done |
obsolete_mkdir_used=true |
fi |
fi |
if test -n "$dir_arg"; then |
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } && |
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && |
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || |
test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dst"; } || exit 1 |
else |
# Make a couple of temp file names in the proper directory. |
dsttmp=$dstdir/_inst.$$_ |
rmtmp=$dstdir/_rm.$$_ |
# Trap to clean up those temp files at exit. |
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 |
# Copy the file name to the temp name. |
$doit $cpprog "$src" "$dsttmp" && |
# and set any options; do chmod last to preserve setuid bits. |
# |
# If any of these fail, we abort the whole thing. If we want to |
# ignore errors from any of these, just make sure not to ignore |
# errors from the above "$doit $cpprog $src $dsttmp" command. |
# |
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ |
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ |
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ |
&& { test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dsttmp"; } && |
# Now rename the file to the real destination. |
{ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \ |
|| { |
# The rename failed, perhaps because mv can't rename something else |
# to itself, or perhaps because mv is so ancient that it does not |
# support -f. |
# Now remove or move aside any old file at destination location. |
# We try this two ways since rm can't unlink itself on some |
# systems and the destination file might be busy for other |
# reasons. In this case, the final cleanup might fail but the new |
# file should still install successfully. |
{ |
if test -f "$dst"; then |
$doit $rmcmd -f "$dst" 2>/dev/null \ |
|| { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \ |
&& { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\ |
|| { |
echo "$0: cannot unlink or rename $dst" >&2 |
(exit 1); exit 1 |
} |
else |
: |
fi |
} && |
# Now rename the file to the real destination. |
$doit $mvcmd "$dsttmp" "$dst" |
} |
} || exit 1 |
trap '' 0 |
fi |
done |
# Local variables: |
# eval: (add-hook 'write-file-hooks 'time-stamp) |
# time-stamp-start: "scriptversion=" |
# time-stamp-format: "%:y-%02m-%02d.%02H" |
# time-stamp-end: "$" |
# End: |
/tilgungsplan/trunk/admin/ylwrap |
---|
0,0 → 1,223 |
#! /bin/sh |
# ylwrap - wrapper for lex/yacc invocations. |
scriptversion=2005-05-14.22 |
# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005 |
# Free Software Foundation, Inc. |
# |
# Written by Tom Tromey <tromey@cygnus.com>. |
# |
# This program is free software; you can redistribute it and/or modify |
# it under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 2, or (at your option) |
# any later version. |
# |
# This program 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 General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with this program; if not, write to the Free Software |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
# 02110-1301, USA. |
# As a special exception to the GNU General Public License, if you |
# distribute this file as part of a program that contains a |
# configuration script generated by Autoconf, you may include it under |
# the same distribution terms that you use for the rest of that program. |
# This file is maintained in Automake, please report |
# bugs to <bug-automake@gnu.org> or send patches to |
# <automake-patches@gnu.org>. |
case "$1" in |
'') |
echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 |
exit 1 |
;; |
--basedir) |
basedir=$2 |
shift 2 |
;; |
-h|--h*) |
cat <<\EOF |
Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... |
Wrapper for lex/yacc invocations, renaming files as desired. |
INPUT is the input file |
OUTPUT is one file PROG generates |
DESIRED is the file we actually want instead of OUTPUT |
PROGRAM is program to run |
ARGS are passed to PROG |
Any number of OUTPUT,DESIRED pairs may be used. |
Report bugs to <bug-automake@gnu.org>. |
EOF |
exit $? |
;; |
-v|--v*) |
echo "ylwrap $scriptversion" |
exit $? |
;; |
esac |
# The input. |
input="$1" |
shift |
case "$input" in |
[\\/]* | ?:[\\/]*) |
# Absolute path; do nothing. |
;; |
*) |
# Relative path. Make it absolute. |
input="`pwd`/$input" |
;; |
esac |
pairlist= |
while test "$#" -ne 0; do |
if test "$1" = "--"; then |
shift |
break |
fi |
pairlist="$pairlist $1" |
shift |
done |
# The program to run. |
prog="$1" |
shift |
# Make any relative path in $prog absolute. |
case "$prog" in |
[\\/]* | ?:[\\/]*) ;; |
*[\\/]*) prog="`pwd`/$prog" ;; |
esac |
# FIXME: add hostname here for parallel makes that run commands on |
# other machines. But that might take us over the 14-char limit. |
dirname=ylwrap$$ |
trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15 |
mkdir $dirname || exit 1 |
cd $dirname |
case $# in |
0) $prog "$input" ;; |
*) $prog "$@" "$input" ;; |
esac |
ret=$? |
if test $ret -eq 0; then |
set X $pairlist |
shift |
first=yes |
# Since DOS filename conventions don't allow two dots, |
# the DOS version of Bison writes out y_tab.c instead of y.tab.c |
# and y_tab.h instead of y.tab.h. Test to see if this is the case. |
y_tab_nodot="no" |
if test -f y_tab.c || test -f y_tab.h; then |
y_tab_nodot="yes" |
fi |
# The directory holding the input. |
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` |
# Quote $INPUT_DIR so we can use it in a regexp. |
# FIXME: really we should care about more than `.' and `\'. |
input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` |
while test "$#" -ne 0; do |
from="$1" |
# Handle y_tab.c and y_tab.h output by DOS |
if test $y_tab_nodot = "yes"; then |
if test $from = "y.tab.c"; then |
from="y_tab.c" |
else |
if test $from = "y.tab.h"; then |
from="y_tab.h" |
fi |
fi |
fi |
if test -f "$from"; then |
# If $2 is an absolute path name, then just use that, |
# otherwise prepend `../'. |
case "$2" in |
[\\/]* | ?:[\\/]*) target="$2";; |
*) target="../$2";; |
esac |
# We do not want to overwrite a header file if it hasn't |
# changed. This avoid useless recompilations. However the |
# parser itself (the first file) should always be updated, |
# because it is the destination of the .y.c rule in the |
# Makefile. Divert the output of all other files to a temporary |
# file so we can compare them to existing versions. |
if test $first = no; then |
realtarget="$target" |
target="tmp-`echo $target | sed s/.*[\\/]//g`" |
fi |
# Edit out `#line' or `#' directives. |
# |
# We don't want the resulting debug information to point at |
# an absolute srcdir; it is better for it to just mention the |
# .y file with no path. |
# |
# We want to use the real output file name, not yy.lex.c for |
# instance. |
# |
# We want the include guards to be adjusted too. |
FROM=`echo "$from" | sed \ |
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ |
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` |
TARGET=`echo "$2" | sed \ |
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ |
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` |
sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ |
-e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? |
# Check whether header files must be updated. |
if test $first = no; then |
if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then |
echo "$2" is unchanged |
rm -f "$target" |
else |
echo updating "$2" |
mv -f "$target" "$realtarget" |
fi |
fi |
else |
# A missing file is only an error for the first file. This |
# is a blatant hack to let us support using "yacc -d". If -d |
# is not specified, we don't want an error when the header |
# file is "missing". |
if test $first = yes; then |
ret=1 |
fi |
fi |
shift |
shift |
first=no |
done |
else |
ret=$? |
fi |
# Remove the directory. |
cd .. |
rm -rf $dirname |
exit $ret |
# Local Variables: |
# mode: shell-script |
# sh-indentation: 2 |
# eval: (add-hook 'write-file-hooks 'time-stamp) |
# time-stamp-start: "scriptversion=" |
# time-stamp-format: "%:y-%02m-%02d.%02H" |
# time-stamp-end: "$" |
# End: |