From f270973a6cf5da672a6ceaf81bfc6f04c4acf9f4e5b2165588b842a5662879dc Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Mon, 17 Jan 2011 16:43:05 +0000 Subject: [PATCH] Accepting request 57745 from security:apparmor:factory Accepted submit request 57745 from user jeff_mahoney OBS-URL: https://build.opensuse.org/request/show/57745 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/apparmor?expand=0&rev=1 --- .gitattributes | 23 + .gitignore | 1 + apparmor-2.5.1-edirectory-profile | 45 + apparmor-2.5.1-firefox-proc-fix | 26 + apparmor-2.5.1-fix-parser-use-after-free | 43 + apparmor-2.5.1-ldapclient-profile | 59 + apparmor-2.5.1-ntpd-proc-fixes | 28 + apparmor-2.5.1-rpmlint-asprintf | 82 + apparmor-2.5.1-unconfined-fixes | 57 + apparmor-2.5.1-unified-build | 27492 ++++++++++++++++ apparmor-2.5.1.tar.bz2 | 3 + apparmor-docs-techdoc-grammar-fixes | 22 + apparmor-no-caching-test | 15 + apparmor-parser-string-fixes | 19 + apparmor-perl | 16 + apparmor-profile-editor.desktop | 10 + apparmor-profile-editor.png | 3 + apparmor-profiles-cupsd-fix | 59 + apparmor-profiles-sshd-fix | 38 + apparmor-profiles-syslog-ng-fix | 33 + apparmor-scripts | 119 + apparmor-startproc.patch | 18 + apparmor-swig-build-fix | 15 + apparmor-translation-fixes | 24 + apparmor-utils-SubDomain | 107 + apparmor-utils-add-log-types | 26 + apparmor-utils-cleanup-on-abort | 29 + apparmor-utils-filenames-in-slash | 36 + apparmor-utils-null-path-fix | 25 + apparmor-utils-string-split | 24 + ...ls-support-newer-auditd-formatted-messages | 24 + apparmor-utils-translation-unification | 54 + apparmor.changes | 95 + apparmor.spec | 809 + apparmorapplet-gnome-build-fix | 14 + baselibs.conf | 5 + fix-two-x-transition-conflict-bugs | 277 + mod_apparmor-includes | 35 + pam-apparmor-include | 42 + rpmlintrc | 3 + testsuite-build-fix | 23 + tomcat-build-fixes | 77 + update-trans.sh | 71 + 43 files changed, 30026 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 apparmor-2.5.1-edirectory-profile create mode 100644 apparmor-2.5.1-firefox-proc-fix create mode 100644 apparmor-2.5.1-fix-parser-use-after-free create mode 100644 apparmor-2.5.1-ldapclient-profile create mode 100644 apparmor-2.5.1-ntpd-proc-fixes create mode 100644 apparmor-2.5.1-rpmlint-asprintf create mode 100644 apparmor-2.5.1-unconfined-fixes create mode 100644 apparmor-2.5.1-unified-build create mode 100644 apparmor-2.5.1.tar.bz2 create mode 100644 apparmor-docs-techdoc-grammar-fixes create mode 100644 apparmor-no-caching-test create mode 100644 apparmor-parser-string-fixes create mode 100644 apparmor-perl create mode 100644 apparmor-profile-editor.desktop create mode 100644 apparmor-profile-editor.png create mode 100644 apparmor-profiles-cupsd-fix create mode 100644 apparmor-profiles-sshd-fix create mode 100644 apparmor-profiles-syslog-ng-fix create mode 100644 apparmor-scripts create mode 100644 apparmor-startproc.patch create mode 100644 apparmor-swig-build-fix create mode 100644 apparmor-translation-fixes create mode 100644 apparmor-utils-SubDomain create mode 100644 apparmor-utils-add-log-types create mode 100644 apparmor-utils-cleanup-on-abort create mode 100644 apparmor-utils-filenames-in-slash create mode 100644 apparmor-utils-null-path-fix create mode 100644 apparmor-utils-string-split create mode 100644 apparmor-utils-support-newer-auditd-formatted-messages create mode 100644 apparmor-utils-translation-unification create mode 100644 apparmor.changes create mode 100644 apparmor.spec create mode 100644 apparmorapplet-gnome-build-fix create mode 100644 baselibs.conf create mode 100644 fix-two-x-transition-conflict-bugs create mode 100644 mod_apparmor-includes create mode 100644 pam-apparmor-include create mode 100644 rpmlintrc create mode 100644 testsuite-build-fix create mode 100644 tomcat-build-fixes create mode 100644 update-trans.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/apparmor-2.5.1-edirectory-profile b/apparmor-2.5.1-edirectory-profile new file mode 100644 index 0000000..3e3380f --- /dev/null +++ b/apparmor-2.5.1-edirectory-profile @@ -0,0 +1,45 @@ +From: Jeff Mahoney +Subject: apparmor-profiles: Add support for eDirectory calls from nscd +References: bnc#621394 + + eDirectory hooks into nscd and provides its own libraries. In order for + this to operate properly with AppArmor, it needs to be told about these + libraries. + + This patch adds a new abstract profile and includes it in the nameservice + profile. + +Signed-off-by: Jeff Mahoney +--- + profiles/apparmor.d/abstractions/nameservice | 3 +++ + profiles/apparmor.d/abstractions/novell-edirectory | 13 +++++++++++++ + 2 files changed, 16 insertions(+) + +--- a/profiles/apparmor.d/abstractions/nameservice ++++ b/profiles/apparmor.d/abstractions/nameservice +@@ -71,6 +71,9 @@ + # kerberos + #include + ++ # Novell eDirectory ++ #include ++ + # TCP/UDP network access + network inet stream, + network inet6 stream, +--- /dev/null ++++ b/profiles/apparmor.d/abstractions/novell-edirectory +@@ -0,0 +1,13 @@ ++# $Id$ ++# ------------------------------------------------------------------ ++# ++# Copyright (C) 2010 Novell/SUSE ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of version 2 of the GNU General Public ++# License published by the Free Software Foundation. ++# ++# ------------------------------------------------------------------ ++ ++ /opt/novell/eDirectory/lib/lib*so* r, ++ /opt/novell/eDirectory/lib64/lib*so* r, diff --git a/apparmor-2.5.1-firefox-proc-fix b/apparmor-2.5.1-firefox-proc-fix new file mode 100644 index 0000000..df8956b --- /dev/null +++ b/apparmor-2.5.1-firefox-proc-fix @@ -0,0 +1,26 @@ +From: Jeff Mahoney +Subject: apparmor-profiles: Fix proc usage in firefox profile +References: bnc#436262 + + This patch corrects the use of the {proc} macro. It should be {PROC}. + +Signed-off-by: Jeff Mahoney +--- + profiles/apparmor/profiles/extras/usr.lib.firefox.firefox | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/profiles/apparmor/profiles/extras/usr.lib.firefox.firefox ++++ b/profiles/apparmor/profiles/extras/usr.lib.firefox.firefox +@@ -32,9 +32,9 @@ + /opt/kde3/share/applications/ r, + /opt/kde3/share/applications/mimeinfo.cache r, + +- owner @{proc}/*/mounts r, +- @{proc}/meminfo r, +- @{proc}/sys/kernel/ngroups_max r, ++ owner @{PROC}/*/mounts r, ++ @{PROC}/meminfo r, ++ @{PROC}/sys/kernel/ngroups_max r, + + /usr/lib/**.so mr, + diff --git a/apparmor-2.5.1-fix-parser-use-after-free b/apparmor-2.5.1-fix-parser-use-after-free new file mode 100644 index 0000000..c5110cc --- /dev/null +++ b/apparmor-2.5.1-fix-parser-use-after-free @@ -0,0 +1,43 @@ +From: Jeff Mahoney +Subject: apparmor: Fix use after free in regexp parser + + There are two cases of use-after-free in the simply_tree_base code. It + worked in the past because there aren't any allocations between the + free and the use, so it was still around. + + With glibc's memory perturbing feature (set _MALLOC_PERTURB to anything), + the freed memory is poisoned. This causes crashes in e.g. apparmor_parser + while parsing certain profiles. + + This patch addresses it by saving a pointer to the node to free after + the node is advanced. + +Signed-off-by: Jeff Mahoney +--- + parser/libapparmor_re/regexp.yy | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/parser/libapparmor_re/regexp.yy ++++ b/parser/libapparmor_re/regexp.yy +@@ -720,17 +720,19 @@ Node *simplify_tree_base(Node *t, int di + Node *i = t->child[!dir]; + for (;dynamic_cast(i); p = i, i = i->child[!dir]) { + if (t->child[dir]->eq(i->child[dir])) { ++ Node *old = t; + t->child[!dir]->dup(); +- t->release(); + t = t->child[!dir]; ++ old->release(); + continue; + } + } + // last altnode of chain check other dir as well + if (t->child[dir]->eq(p->child[!dir])) { ++ Node *old = t; + t->child[!dir]->dup(); +- t->release(); + t = t->child[!dir]; ++ old->release(); + continue; + } + diff --git a/apparmor-2.5.1-ldapclient-profile b/apparmor-2.5.1-ldapclient-profile new file mode 100644 index 0000000..9ff380e --- /dev/null +++ b/apparmor-2.5.1-ldapclient-profile @@ -0,0 +1,59 @@ +Index: apparmor-2.5.1/profiles/apparmor.d/abstractions/ldapclient +=================================================================== +--- /dev/null ++++ apparmor-2.5.1/profiles/apparmor.d/abstractions/ldapclient +@@ -0,0 +1,21 @@ ++# ------------------------------------------------------------------ ++# ++# Copyright (C) 2011 Novell/SUSE ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of version 2 of the GNU General Public ++# License published by the Free Software Foundation. ++# ++# ------------------------------------------------------------------ ++ ++ # files required by LDAP clients (e.g. nss_ldap/pam_ldap) ++ /etc/ldap.conf r, ++ /etc/ldap.secret r, ++ /etc/openldap/* r, ++ /etc/openldap/cacerts/* r, ++ ++ # SASL plugins and config ++ /etc/sasl2/* r, ++ /usr/lib{,32,64}/sasl2/* r, ++ ++ #include +Index: apparmor-2.5.1/profiles/apparmor.d/abstractions/nameservice +=================================================================== +--- apparmor-2.5.1.orig/profiles/apparmor.d/abstractions/nameservice ++++ apparmor-2.5.1/profiles/apparmor.d/abstractions/nameservice +@@ -17,8 +17,6 @@ + /etc/group r, + /etc/host.conf r, + /etc/hosts r, +- /etc/ldap.conf r, +- /etc/ldap.secret r, + /etc/nsswitch.conf r, + /etc/gai.conf r, + /etc/passwd r, +@@ -33,9 +31,6 @@ + + /etc/samba/lmhosts r, + /etc/services r, +- # all openldap config +- /etc/openldap/* r, +- /etc/ldap/** r, + # db backend + /var/lib/misc/*.db r, + # The Name Service Cache Daemon can cache lookups, sometimes leading +@@ -59,6 +54,9 @@ + # nis + #include + ++ # ldap ++ #include ++ + # winbind + #include + diff --git a/apparmor-2.5.1-ntpd-proc-fixes b/apparmor-2.5.1-ntpd-proc-fixes new file mode 100644 index 0000000..dbeceed --- /dev/null +++ b/apparmor-2.5.1-ntpd-proc-fixes @@ -0,0 +1,28 @@ +From: Jeff Mahoney +Subject: apparmor: Fix incorrect /proc/*/sys usage in usr.sbin.ntpd +References: bnc#634801 + + /proc/sys/kernel exists, but /proc/*/sys/kernel doesn't. This patch + fixes the profile. + +Signed-off-by: Jeff Mahoney +--- + profiles/apparmor.d/usr.sbin.ntpd | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/profiles/apparmor.d/usr.sbin.ntpd ++++ b/profiles/apparmor.d/usr.sbin.ntpd +@@ -59,11 +59,11 @@ + /var/run/ntpd.pid w, + /var/tmp/ntp* rwl, + @{PROC}/*/net/if_inet6 r, +- @{PROC}/*/sys/kernel/ngroups_max r, ++ @{PROC}/sys/kernel/ngroups_max r, + + # allow access for when chrooted + /var/lib/ntp/@{PROC}/*/net/if_inet6 r, +- /var/lib/ntp/@{PROC}/*/sys/kernel/ngroups_max r, ++ /var/lib/ntp/@{PROC}/sys/kernel/ngroups_max r, + + @{NTPD_DEVICE} rw, + } diff --git a/apparmor-2.5.1-rpmlint-asprintf b/apparmor-2.5.1-rpmlint-asprintf new file mode 100644 index 0000000..8db123a --- /dev/null +++ b/apparmor-2.5.1-rpmlint-asprintf @@ -0,0 +1,82 @@ +From: Jeff Mahoney +Subject: apparmor: Use _GNU_SOURCE when asprintf is used + + There are a few places in the parser that use asprintf but don't actually + get the prototype from stdio.h. _GNU_SOURCE is needed for that. + + It works as-is but rpmlint in the openSUSE Build Service complains about it. + +Signed-off-by: Jeff Mahoney +--- + parser/Makefile.am | 1 + + parser/parser_include.c | 2 ++ + parser/parser_interface.c | 1 + + parser/parser_lex.l | 4 ++++ + parser/parser_main.c | 1 + + parser/parser_variable.c | 1 + + 6 files changed, 10 insertions(+) + +--- a/parser/Makefile.am ++++ b/parser/Makefile.am +@@ -14,6 +14,7 @@ dist_man_MANS = apparmor.d.5 apparmor.7 + BUILT_SOURCES = parser_lex.c parser_yacc.c af_names.h cap_names.h + AM_YFLAGS = -d + AM_CFLAGS = -DLOCALEDIR=\"$(localedir)\" ++AM_LFLAGS = -D_GNU_SOURCE + apparmor_parser_SOURCES = parser_yacc.y parser_lex.l parser_include.c \ + parser_interface.c parser_main.c parser_misc.c \ + parser_merge.c parser_symtab.c parser_regex.c \ +--- a/parser/parser_include.c ++++ b/parser/parser_include.c +@@ -35,6 +35,8 @@ + + */ + ++#define _GNU_SOURCE /* for asprintf in stdio.h */ ++ + #include + #include + #include +--- a/parser/parser_interface.c ++++ b/parser/parser_interface.c +@@ -17,6 +17,7 @@ + * along with this program; if not, contact Novell, Inc. + */ + ++#define _GNU_SOURCE /* for asprintf in stdio.h */ + #include + #include + #include +--- a/parser/parser_lex.l ++++ b/parser/parser_lex.l +@@ -20,6 +20,10 @@ + /* Definitions section */ + /* %option main */ + ++%{ ++#define _GNU_SOURCE /* for asprintf in stdio.h */ ++%} ++ + /* eliminates need to link with libfl */ + %option noyywrap + +--- a/parser/parser_main.c ++++ b/parser/parser_main.c +@@ -17,6 +17,7 @@ + * along with this program; if not, contact Novell, Inc. + */ + ++#define _GNU_SOURCE /* for asprintf in stdio.h */ + #include + #include + #include +--- a/parser/parser_variable.c ++++ b/parser/parser_variable.c +@@ -17,6 +17,7 @@ + * along with this program; if not, contact Novell, Inc. + */ + ++#define _GNU_SOURCE /* for asprintf in stdio.h */ + #include + #include + #include diff --git a/apparmor-2.5.1-unconfined-fixes b/apparmor-2.5.1-unconfined-fixes new file mode 100644 index 0000000..57f8030 --- /dev/null +++ b/apparmor-2.5.1-unconfined-fixes @@ -0,0 +1,57 @@ +From: Jeff Mahoney +Subject: apparmor: Subdomain.pm: Fix handling of audits of unconfined processes + + The version of AppArmor that was accepted into the mainline kernel + issues audit events for things like change_hat while unconfined. + Previous versions just returned -EPERM without the audit. + + This results in logprof and friends spewing uninitialized value errors + when it hits events like: + type=AVC msg=audit(1291742101.899:220): apparmor="DENIED" operation="change_hat" info="unconfined" error=-1 pid=28005 comm="cron + + ... which happen any time an unconfined process does something with pam + when pam_apparmor is installed. + + This patch skips those events. + +Signed-off-by: Jeff Mahoney +--- + utils/SubDomain.pm | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +--- a/utils/SubDomain.pm ++++ b/utils/SubDomain.pm +@@ -2735,6 +2735,13 @@ sub add_event_to_tree ($) { + return if ($e->{operation} =~ /profile_set/); + + my ($profile, $hat); ++ ++ # The version of AppArmor that was accepted into the mainline kernel ++ # issues audit events for things like change_hat while unconfined. ++ # Previous versions just returned -EPERM without the audit so the ++ # events wouldn't have been picked up here. ++ return if (!$e->{profile}); ++ + # just convert new null profile style names to old before we begin processing + # profile and name can contain multiple layers of null- but all we care about + # currently is single level. +@@ -6625,10 +6632,15 @@ sub parse_event($) { + LibAppArmor::free_record($event); + + #map new c and d to w as logprof doesn't support them yet +- $rmask =~ s/c/w/g; +- $rmask =~ s/d/w/g; +- $dmask =~ s/c/w/g; +- $dmask =~ s/d/w/g; ++ if ($rmask) { ++ $rmask =~ s/c/w/g; ++ $rmask =~ s/d/w/g; ++ } ++ ++ if ($dmask) { ++ $dmask =~ s/c/w/g; ++ $dmask =~ s/d/w/g; ++ } + + if ($rmask && !validate_log_mode(hide_log_mode($rmask))) { + fatal_error(sprintf(gettext('Log contains unknown mode %s.'), diff --git a/apparmor-2.5.1-unified-build b/apparmor-2.5.1-unified-build new file mode 100644 index 0000000..9e4a071 --- /dev/null +++ b/apparmor-2.5.1-unified-build @@ -0,0 +1,27492 @@ + + AUTHORS | 1 + ChangeLog | 1 + INSTALL | 365 + Makefile.am | 2 + NEWS | 1 + README | 1 + changehat/Makefile.am | 1 + changehat/mod_apparmor/Makefile.am | 19 + changehat/mod_apparmor/apache2-mod_apparmor.spec.in | 216 + changehat/pam_apparmor/COPYING | 39 + changehat/pam_apparmor/Makefile.am | 9 + changehat/pam_apparmor/pam_apparmor.changes | 49 + changehat/pam_apparmor/pam_apparmor.spec.in | 83 + changehat/tomcat_apparmor/Makefile.am | 1 + changehat/tomcat_apparmor/tomcat_5_0/Makefile.am | 2 + changehat/tomcat_apparmor/tomcat_5_5/Makefile.am | 13 + changehat/tomcat_apparmor/tomcat_5_5/build.xml | 11 + changehat/tomcat_apparmor/tomcat_5_5/src/Makefile.am | 1 + changehat/tomcat_apparmor/tomcat_5_5/src/jni_src/Makefile.am | 17 + config.rpath | 666 + configure.in | 220 + deprecated/Makefile.am | 2 + deprecated/management/Makefile.am | 1 + deprecated/management/apparmor-dbus/Makefile.am | 2 + deprecated/management/apparmor-dbus/src/Makefile.am | 3 + deprecated/management/applets/Makefile.am | 1 + deprecated/management/applets/apparmorapplet-gnome/Makefile.am | 4 + deprecated/management/applets/apparmorapplet-gnome/po/Makefile | 30 + deprecated/management/applets/apparmorapplet-gnome/po/Makefile.in.in | 258 + deprecated/management/applets/apparmorapplet-gnome/src/Makefile.am | 8 + deprecated/management/profile-editor/Makefile.am | 2 + deprecated/management/profile-editor/src/Makefile.am | 6 + deprecated/management/profile-editor/src/wxStyledTextCtrl/Makefile.am | 4 + libraries/Makefile.am | 1 + libraries/libapparmor/AUTHORS | 2 + libraries/libapparmor/ChangeLog | 1 + libraries/libapparmor/INSTALL | 236 + libraries/libapparmor/NEWS | 1 + libraries/libapparmor/README | 1 + libraries/libapparmor/autogen.sh | 42 + libraries/libapparmor/compile | 143 + libraries/libapparmor/config.guess | 1502 - + libraries/libapparmor/config.sub | 1714 - + libraries/libapparmor/configure |13962 ---------- + libraries/libapparmor/doc/Makefile.am | 14 + libraries/libapparmor/install-sh | 520 + libraries/libapparmor/libapparmor1.spec | 178 + libraries/libapparmor/m4/ac_pod2man.m4 | 16 + libraries/libapparmor/m4/ac_python_devel.m4 | 193 + libraries/libapparmor/src/Makefile.am | 4 + libraries/libapparmor/swig/perl/Makefile.PL.in | 17 + libraries/libapparmor/swig/perl/Makefile.am | 37 + libraries/libapparmor/swig/python/Makefile.am | 2 + libraries/libapparmor/swig/python/setup.py.in | 2 + libraries/libapparmor/swig/ruby/Makefile.am | 29 + libraries/libapparmor/swig/ruby/extconf.rb | 37 + libraries/libapparmor/testsuite/Makefile.am | 2 + m4/ac_pod2man.m4 | 16 + m4/ac_python_devel.m4 | 209 + m4/am_path_apxs.m4 | 12 + m4/am_path_perl.m4 | 25 + m4/am_path_ruby.m4 | 115 + m4/wxwidgets.m4 | 37 + parser/Makefile.am | 81 + parser/libapparmor_re/Makefile.am | 4 + parser/libapparmor_re/regexp.y | 2800 -- + parser/libapparmor_re/regexp.yy | 2800 ++ + parser/parser_alias.c | 1 + parser/parser_main.c | 3 + parser/parser_policy.c | 1 + parser/parser_regex.c | 2 + parser/parser_symtab.c | 1 + parser/po/Makefile | 8 + po/Makefile.am | 2 + profiles/Makefile | 11 + tests/Makefile.am | 1 + tests/regression/Makefile.am | 1 + tests/regression/subdomain/Makefile.am | 109 + utils/Makefile.PL | 15 + utils/Makefile.am | 39 + utils/po/Makefile | 8 + 81 files changed, 4902 insertions(+), 22094 deletions(-) + +--- /dev/null ++++ b/AUTHORS +@@ -0,0 +1 @@ ++ +--- /dev/null ++++ b/ChangeLog +@@ -0,0 +1 @@ ++ +--- /dev/null ++++ b/INSTALL +@@ -0,0 +1,365 @@ ++Installation Instructions ++************************* ++ ++Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, ++2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++ ++ Copying and distribution of this file, with or without modification, ++are permitted in any medium without royalty provided the copyright ++notice and this notice are preserved. This file is offered as-is, ++without warranty of any kind. ++ ++Basic Installation ++================== ++ ++ Briefly, the shell commands `./configure; make; make install' should ++configure, build, and install this package. The following ++more-detailed instructions are generic; see the `README' file for ++instructions specific to this package. Some packages provide this ++`INSTALL' file but do not implement all of the features documented ++below. The lack of an optional feature in a given package is not ++necessarily a bug. More recommendations for GNU packages can be found ++in *note Makefile Conventions: (standards)Makefile Conventions. ++ ++ The `configure' shell script attempts to guess correct values for ++various system-dependent variables used during compilation. It uses ++those values to create a `Makefile' in each directory of the package. ++It may also create one or more `.h' files containing system-dependent ++definitions. Finally, it creates a shell script `config.status' that ++you can run in the future to recreate the current configuration, and a ++file `config.log' containing compiler output (useful mainly for ++debugging `configure'). ++ ++ It can also use an optional file (typically called `config.cache' ++and enabled with `--cache-file=config.cache' or simply `-C') that saves ++the results of its tests to speed up reconfiguring. Caching is ++disabled by default to prevent problems with accidental use of stale ++cache files. ++ ++ If you need to do unusual things to compile the package, please try ++to figure out how `configure' could check whether to do them, and mail ++diffs or instructions to the address given in the `README' so they can ++be considered for the next release. If you are using the cache, and at ++some point `config.cache' contains results you don't want to keep, you ++may remove or edit it. ++ ++ The file `configure.ac' (or `configure.in') is used to create ++`configure' by a program called `autoconf'. You need `configure.ac' if ++you want to change it or regenerate `configure' using a newer version ++of `autoconf'. ++ ++ The simplest way to compile this package is: ++ ++ 1. `cd' to the directory containing the package's source code and type ++ `./configure' to configure the package for your system. ++ ++ Running `configure' might take a while. While running, it prints ++ some messages telling which features it is checking for. ++ ++ 2. Type `make' to compile the package. ++ ++ 3. Optionally, type `make check' to run any self-tests that come with ++ the package, generally using the just-built uninstalled binaries. ++ ++ 4. Type `make install' to install the programs and any data files and ++ documentation. When installing into a prefix owned by root, it is ++ recommended that the package be configured and built as a regular ++ user, and only the `make install' phase executed with root ++ privileges. ++ ++ 5. Optionally, type `make installcheck' to repeat any self-tests, but ++ this time using the binaries in their final installed location. ++ This target does not install anything. Running this target as a ++ regular user, particularly if the prior `make install' required ++ root privileges, verifies that the installation completed ++ correctly. ++ ++ 6. You can remove the program binaries and object files from the ++ source code directory by typing `make clean'. To also remove the ++ files that `configure' created (so you can compile the package for ++ a different kind of computer), type `make distclean'. There is ++ also a `make maintainer-clean' target, but that is intended mainly ++ for the package's developers. If you use it, you may have to get ++ all sorts of other programs in order to regenerate files that came ++ with the distribution. ++ ++ 7. Often, you can also type `make uninstall' to remove the installed ++ files again. In practice, not all packages have tested that ++ uninstallation works correctly, even though it is required by the ++ GNU Coding Standards. ++ ++ 8. Some packages, particularly those that use Automake, provide `make ++ distcheck', which can by used by developers to test that all other ++ targets like `make install' and `make uninstall' work correctly. ++ This target is generally not run by end users. ++ ++Compilers and Options ++===================== ++ ++ Some systems require unusual options for compilation or linking that ++the `configure' script does not know about. Run `./configure --help' ++for details on some of the pertinent environment variables. ++ ++ You can give `configure' initial values for configuration parameters ++by setting variables in the command line or in the environment. Here ++is an example: ++ ++ ./configure CC=c99 CFLAGS=-g LIBS=-lposix ++ ++ *Note Defining Variables::, for more details. ++ ++Compiling For Multiple Architectures ++==================================== ++ ++ You can compile the package for more than one kind of computer at the ++same time, by placing the object files for each architecture in their ++own directory. To do this, you can use GNU `make'. `cd' to the ++directory where you want the object files and executables to go and run ++the `configure' script. `configure' automatically checks for the ++source code in the directory that `configure' is in and in `..'. This ++is known as a "VPATH" build. ++ ++ With a non-GNU `make', it is safer to compile the package for one ++architecture at a time in the source code directory. After you have ++installed the package for one architecture, use `make distclean' before ++reconfiguring for another architecture. ++ ++ On MacOS X 10.5 and later systems, you can create libraries and ++executables that work on multiple system types--known as "fat" or ++"universal" binaries--by specifying multiple `-arch' options to the ++compiler but only a single `-arch' option to the preprocessor. Like ++this: ++ ++ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ ++ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ ++ CPP="gcc -E" CXXCPP="g++ -E" ++ ++ This is not guaranteed to produce working output in all cases, you ++may have to build one architecture at a time and combine the results ++using the `lipo' tool if you have problems. ++ ++Installation Names ++================== ++ ++ By default, `make install' installs the package's commands under ++`/usr/local/bin', include files under `/usr/local/include', etc. You ++can specify an installation prefix other than `/usr/local' by giving ++`configure' the option `--prefix=PREFIX', where PREFIX must be an ++absolute file name. ++ ++ You can specify separate installation prefixes for ++architecture-specific files and architecture-independent files. If you ++pass the option `--exec-prefix=PREFIX' to `configure', the package uses ++PREFIX as the prefix for installing programs and libraries. ++Documentation and other data files still use the regular prefix. ++ ++ In addition, if you use an unusual directory layout you can give ++options like `--bindir=DIR' to specify different values for particular ++kinds of files. Run `configure --help' for a list of the directories ++you can set and what kinds of files go in them. In general, the ++default for these options is expressed in terms of `${prefix}', so that ++specifying just `--prefix' will affect all of the other directory ++specifications that were not explicitly provided. ++ ++ The most portable way to affect installation locations is to pass the ++correct locations to `configure'; however, many packages provide one or ++both of the following shortcuts of passing variable assignments to the ++`make install' command line to change installation locations without ++having to reconfigure or recompile. ++ ++ The first method involves providing an override variable for each ++affected directory. For example, `make install ++prefix=/alternate/directory' will choose an alternate location for all ++directory configuration variables that were expressed in terms of ++`${prefix}'. Any directories that were specified during `configure', ++but not in terms of `${prefix}', must each be overridden at install ++time for the entire installation to be relocated. The approach of ++makefile variable overrides for each directory variable is required by ++the GNU Coding Standards, and ideally causes no recompilation. ++However, some platforms have known limitations with the semantics of ++shared libraries that end up requiring recompilation when using this ++method, particularly noticeable in packages that use GNU Libtool. ++ ++ The second method involves providing the `DESTDIR' variable. For ++example, `make install DESTDIR=/alternate/directory' will prepend ++`/alternate/directory' before all installation names. The approach of ++`DESTDIR' overrides is not required by the GNU Coding Standards, and ++does not work on platforms that have drive letters. On the other hand, ++it does better at avoiding recompilation issues, and works well even ++when some directory options were not specified in terms of `${prefix}' ++at `configure' time. ++ ++Optional Features ++================= ++ ++ If the package supports it, you can cause programs to be installed ++with an extra prefix or suffix on their names by giving `configure' the ++option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. ++ ++ Some packages pay attention to `--enable-FEATURE' options to ++`configure', where FEATURE indicates an optional part of the package. ++They may also pay attention to `--with-PACKAGE' options, where PACKAGE ++is something like `gnu-as' or `x' (for the X Window System). The ++`README' should mention any `--enable-' and `--with-' options that the ++package recognizes. ++ ++ For packages that use the X Window System, `configure' can usually ++find the X include and library files automatically, but if it doesn't, ++you can use the `configure' options `--x-includes=DIR' and ++`--x-libraries=DIR' to specify their locations. ++ ++ Some packages offer the ability to configure how verbose the ++execution of `make' will be. For these packages, running `./configure ++--enable-silent-rules' sets the default to minimal output, which can be ++overridden with `make V=1'; while running `./configure ++--disable-silent-rules' sets the default to verbose, which can be ++overridden with `make V=0'. ++ ++Particular systems ++================== ++ ++ On HP-UX, the default C compiler is not ANSI C compatible. If GNU ++CC is not installed, it is recommended to use the following options in ++order to use an ANSI C compiler: ++ ++ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" ++ ++and if that doesn't work, install pre-built binaries of GCC for HP-UX. ++ ++ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot ++parse its `' header file. The option `-nodtk' can be used as ++a workaround. If GNU CC is not installed, it is therefore recommended ++to try ++ ++ ./configure CC="cc" ++ ++and if that doesn't work, try ++ ++ ./configure CC="cc -nodtk" ++ ++ On Solaris, don't put `/usr/ucb' early in your `PATH'. This ++directory contains several dysfunctional programs; working variants of ++these programs are available in `/usr/bin'. So, if you need `/usr/ucb' ++in your `PATH', put it _after_ `/usr/bin'. ++ ++ On Haiku, software installed for all users goes in `/boot/common', ++not `/usr/local'. It is recommended to use the following options: ++ ++ ./configure --prefix=/boot/common ++ ++Specifying the System Type ++========================== ++ ++ There may be some features `configure' cannot figure out ++automatically, but needs to determine by the type of machine the package ++will run on. Usually, assuming the package is built to be run on the ++_same_ architectures, `configure' can figure that out, but if it prints ++a message saying it cannot guess the machine type, give it the ++`--build=TYPE' option. TYPE can either be a short name for the system ++type, such as `sun4', or a canonical name which has the form: ++ ++ CPU-COMPANY-SYSTEM ++ ++where SYSTEM can have one of these forms: ++ ++ OS ++ KERNEL-OS ++ ++ See the file `config.sub' for the possible values of each field. If ++`config.sub' isn't included in this package, then this package doesn't ++need to know the machine type. ++ ++ If you are _building_ compiler tools for cross-compiling, you should ++use the option `--target=TYPE' to select the type of system they will ++produce code for. ++ ++ If you want to _use_ a cross compiler, that generates code for a ++platform different from the build platform, you should specify the ++"host" platform (i.e., that on which the generated programs will ++eventually be run) with `--host=TYPE'. ++ ++Sharing Defaults ++================ ++ ++ If you want to set default values for `configure' scripts to share, ++you can create a site shell script called `config.site' that gives ++default values for variables like `CC', `cache_file', and `prefix'. ++`configure' looks for `PREFIX/share/config.site' if it exists, then ++`PREFIX/etc/config.site' if it exists. Or, you can set the ++`CONFIG_SITE' environment variable to the location of the site script. ++A warning: not all `configure' scripts look for a site script. ++ ++Defining Variables ++================== ++ ++ Variables not defined in a site shell script can be set in the ++environment passed to `configure'. However, some packages may run ++configure again during the build, and the customized values of these ++variables may be lost. In order to avoid this problem, you should set ++them in the `configure' command line, using `VAR=value'. For example: ++ ++ ./configure CC=/usr/local2/bin/gcc ++ ++causes the specified `gcc' to be used as the C compiler (unless it is ++overridden in the site shell script). ++ ++Unfortunately, this technique does not work for `CONFIG_SHELL' due to ++an Autoconf bug. Until the bug is fixed you can use this workaround: ++ ++ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash ++ ++`configure' Invocation ++====================== ++ ++ `configure' recognizes the following options to control how it ++operates. ++ ++`--help' ++`-h' ++ Print a summary of all of the options to `configure', and exit. ++ ++`--help=short' ++`--help=recursive' ++ Print a summary of the options unique to this package's ++ `configure', and exit. The `short' variant lists options used ++ only in the top level, while the `recursive' variant lists options ++ also present in any nested packages. ++ ++`--version' ++`-V' ++ Print the version of Autoconf used to generate the `configure' ++ script, and exit. ++ ++`--cache-file=FILE' ++ Enable the cache: use and save the results of the tests in FILE, ++ traditionally `config.cache'. FILE defaults to `/dev/null' to ++ disable caching. ++ ++`--config-cache' ++`-C' ++ Alias for `--cache-file=config.cache'. ++ ++`--quiet' ++`--silent' ++`-q' ++ Do not print messages saying which checks are being made. To ++ suppress all normal output, redirect it to `/dev/null' (any error ++ messages will still be shown). ++ ++`--srcdir=DIR' ++ Look for the package's source code in directory DIR. Usually ++ `configure' can determine that directory automatically. ++ ++`--prefix=DIR' ++ Use DIR as the installation prefix. *note Installation Names:: ++ for more details, including other options available for fine-tuning ++ the installation locations. ++ ++`--no-create' ++`-n' ++ Run the configure checks, but stop before creating any output ++ files. ++ ++`configure' also accepts some other, not widely useful, options. Run ++`configure --help' for more details. ++ +--- /dev/null ++++ b/Makefile.am +@@ -0,0 +1,2 @@ ++ACLOCAL_AMFLAGS = -Im4 ++SUBDIRS = libraries parser changehat deprecated profiles tests utils po +--- /dev/null ++++ b/NEWS +@@ -0,0 +1 @@ ++ +--- /dev/null ++++ b/README +@@ -0,0 +1 @@ ++ +--- /dev/null ++++ b/changehat/Makefile.am +@@ -0,0 +1 @@ ++SUBDIRS = mod_apparmor pam_apparmor tomcat_apparmor +--- /dev/null ++++ b/changehat/mod_apparmor/Makefile.am +@@ -0,0 +1,19 @@ ++if HAVE_APACHE ++apache_module_LTLIBRARIES = mod_apparmor.la ++mod_apparmor_la_SOURCES = mod_apparmor.la ++mod_apparmor_la_LDFLAGS = -module -avoid-version ++mod_apparmor_la_LIBADD = ../../libraries/libapparmor/src/libapparmor.la ++ ++man_MANS = mod_apparmor.8 ++INCLUDES = "-I../../libraries/libapparmor/src" ++ ++#.c.so: ++# $(APXS) $(APXS_FLAGS) -c $< ++ ++PODARGS = --center=AppArmor --release=NOVELL/SUSE ++ ++pod2man = pod2man $(PODARGS) --section $(subst .,,$(suffix $<)) $< > $@ ++ ++.pod.8: ++ $(pod2man) ++endif +--- a/changehat/mod_apparmor/apache2-mod_apparmor.spec.in ++++ /dev/null +@@ -1,216 +0,0 @@ +-# $Id$ +-# ---------------------------------------------------------------------- +-# Copyright (c) 2004, 2005 NOVELL (All rights reserved) +-# +-# This program is free software; you can redistribute it and/or +-# modify it under the terms of version 2 of the GNU General Public +-# License published by the Free Software Foundation. +-# +-# 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, contact Novell, Inc. +-# ---------------------------------------------------------------------- +-# norootforbuild +- +-# Check first to see if distro is already defined. +-# I hate rpm macros +-%if ! %{?distro:1}0 +-%if %{?suse_version:1}0 +- %define distro suse +-%endif +-%if %{?fedora_version:1}0 +- %define distro redhat +-%endif +-%endif +-%if ! %{?distro:1}0 +- %define distro suse +-%endif +- +-# this is required to be underscore +-%define module_name mod_apparmor +- +-Summary: AppArmor module for apache2. +-Name: apache2-mod_apparmor +-Version: @@immunix_version@@ +-Release: @@repo_version@@ +-Group: Applications/System +-Source0: %{name}-%{version}-@@repo_version@@.tar.gz +-License: LGPL +-BuildRoot: %{?_tmppath:}%{!?_tmppath:/var/tmp}/%{name}-%{version}-build +-Url: http://forge.novell.com/modules/xfmod/project/?apparmor +-Obsoletes: mod_change_hat mod-change-hat mod-apparmor apache2-mod-apparmor +-Provides: mod_change_hat mod-change-hat mod-apparmor apache2-mod-apparmor +- +-%if %{distro} == "suse" +-%if 0%{?suse_version} < 1010 +-BuildRequires: libimmunix +-%else +-%if 0%{?suse_version} < 1030 +-BuildRequires: libapparmor +-%else +-BuildRequires: libapparmor-devel +-%endif +-%endif +-%else +-BuildRequires: libapparmor-devel +-%endif +- +-%if %{distro} == "suse" +-%define apxs /usr/sbin/apxs2 +-%define apache_mmn %(MMN=$(%{apxs} -q LIBEXECDIR)_MMN; test -x $MMN && $MMN) +-Prereq: apache2-prefork +-Prereq: apparmor-parser +-BuildRequires: apache2-devel +-Requires: apache2 %{apache_mmn} +-%else +-%if %{distro} == "redhat" || %{distro} == "rhel4" +-%define apxs /usr/sbin/apxs +-Prereq: httpd +-BuildRequires: httpd-devel +-%endif +-%endif +-%define module_path %(%{apxs} -q LIBEXECDIR) +-%define apache_sysconfdir %(%{apxs} -q SYSCONFDIR) +- +-%description +-apache2-mod_apparmor adds support to apache2 to provide AppArmor confinement +-to individual cgi scripts handled by apache modules like mod_php and +-mod_perl. +-This package is part of a suite of tools that used to be named SubDomain. +- +-%prep +- +-%setup -q +- +-%build +-make APXS=%{apxs} +- +-%install +-make install DESTDIR=${RPM_BUILD_ROOT} DISTRO=%{distro} MANDIR=%{_mandir} +- +-%if %{distro} == "suse" +- mkdir -p ${RPM_BUILD_ROOT}%{_libdir}/apache2-prefork/ +- ln -s %{module_path}/%{module_name}.so ${RPM_BUILD_ROOT}%{_libdir}/apache2-prefork/%{module_name}.so +-%else +- %if %{distro} == "redhat" || %{distro} == "rhel4" +- mkdir -p ${RPM_BUILD_ROOT}/%{apache_sysconfdir}.d/ +- install -m 644 %{module_name}.conf ${RPM_BUILD_ROOT}/%{apache_sysconfdir}.d/ +- %endif +-%endif +- +-%clean +-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT +- +-%files +-%defattr(-,root,root) +-%{module_path} +-%if %{distro} == "suse" +- %{_libdir}/apache2-prefork/%{module_name}.so +-%else +- %if %{distro} == "redhat" || %{distro} == "rhel4" +- %{apache_sysconfdir}.d/%{module_name}.conf +- %endif +-%endif +-%doc COPYING.LGPL +-%{_mandir}/man*/* +-%doc *.[0-9].html +-%doc common/apparmor.css +- +-%post +-%if %{distro} == "suse" +- /usr/sbin/a2enmod apparmor +-%endif +- +-%preun +-%if %{distro} == "suse" +- if [ $1 = 0 ] ; then +- /usr/sbin/a2dismod apparmor +- fi +-%endif +- +-%triggerpostun -- mod_change_hat mod-change-hat +-%if %{distro} == "suse" +- /usr/sbin/a2enmod apparmor +-%endif +- +-%changelog +-* Sun Jul 29 2007 - sbeattie@suse.de +-- Convert builddep on libapparmor to libapparmor-devel +-* Tue Apr 3 2007 - sbeattie@suse.de +-- Add mod_apparmor manpage to package +-* Wed Sep 06 2006 - poeml@suse.de +-- rename to apache2-mod_apparmor +-- use a2enmod instead of frob_sysconfig +-- remove SuSEconfig calls +-* Fri May 26 2006 - schwab@suse.de +-- Don't strip binaries. +-* Wed Apr 12 2006 - Steve Beattie +-- Move to novell forge svn repo; fix build issue with new layout +-* Thu Mar 30 2006 - Seth Arnold 2.0-7.2 +-- Relicense to LGPL +-* Mon Jan 30 2006 - Steve Beattie 2.0-7.1 +-- Renamed apache config options: +- ImmhatName -> AAHatName +- ImmDefaultHatName -> AADefaultHatName +-* Mon Jan 30 2006 - poeml@suse.de +-- removed libapr-util1-devel from BuildRequires (apache2-devel does +- require it) +-* Fri Jan 27 2006 Steve Beattie 2.0-6.1 +-- No more neededforbuild in STABLE +-* Wed Jan 25 2006 Steve Beattie 2.0-6 +-- Fix linking against libapparmor.so +-* Sun Jan 8 2006 Steve Beattie 2.0-5 +-- More SUSE autobuild fixups. +-* Wed Jan 4 2006 Steve Beattie 2.0-4 +-- Fixup SUSE autobuild require on apache-devel-packages +-- Add svn revision to the source tarball +-* Sun Dec 18 2005 Steve Beattie 2.0-3 +-- Include symlink in %{_libdir}/apache2-prefork/ +-* Thu Dec 8 2005 Steve Beattie 2.0-2 +-- Rename to apache2-mod-apparmor for consistency w/SUSE packages +-- Rename module to mod_apparmor.so +-* Wed Dec 7 2005 Steve Beattie 2.0-1 +-- Reset version for inclusion in SUSE autobuild +-* Mon Dec 5 2005 Steve Beattie 1.99-9 +-- Rename package to mod-apparmor +-* Wed Nov 30 2005 Steve Beattie 1.99-8 +-- Minor packaging cleanups +-* Wed Nov 30 2005 Steve Beattie 1.99-7_imnx +-- Convert license to GPL +-* Thu Jun 23 2005 Steve Beattie 1.99-6_imnx +-- Add trigger for mod_change_hat => mod-change-hat upgrades +-- Don't run SuSEconfig on SuSE 9.3 or newer +-* Mon May 23 2005 Steve Beattie 1.99-5_imnx +-- Fix package uninstall on RHEL4. +-* Fri Mar 11 2005 Steve Beattie 1.99-4_imnx +-- Rename to be consistent with other packages +-* Fri Feb 18 2005 Steve Beattie 1.99-3_imnx +-- Cleanup some non-64bit clean code, sigh. +-- Fix install locations on 64-bit platform. +-* Fri Feb 4 2005 Seth Arnold 1.99-1_imnx +-- Reversion to 1.99 +-* Fri Nov 12 2004 Steve Beattie 1.2-2_imnx +-- Add configuration file for redhat build +-* Tue Oct 12 2004 Steve Beattie 1.2-1_imnx +-- Bump version after shass-1.1 branched off +-* Mon Sep 20 2004 Dominic Reynolds 1.0-7_imnx_(redhat|suse) +-- Modified to build separate versions for suse/redhat (EL3). +-- Note:RH version does not currently setup the module configuraiton +-- in apache. +-* Tue Aug 31 2004 Steve Beattie 1.0-6_imnx +-- Got location and per server config directives working somewhat +- correctly :-) +-- copyright fixups. +-* Fri Aug 20 2004 Steve Beattie 1.0-5_imnx +-- added support for hatname +-* Wed Jul 21 2004 Steve Beattie 1.0-4_imnx +-- reduced loglevel of some debug messages +-- add change_hat to list of apache modules +-* Tue Jul 20 2004 Steve Beattie 1.0-2_imnx +-- got module actually working, at least in simple cases. +-* Thu Jul 15 2004 Steve Beattie 1.0-1_imnx +-- Initial package creation. +--- a/changehat/pam_apparmor/COPYING ++++ /dev/null +@@ -1,39 +0,0 @@ +-The pam_apparmor package is licensed under the same license as Linux-PAM +-, quoted below: +- +-------------------------------------------------------------------------- +-Redistribution and use in source and binary forms of Linux-PAM, with +-or without modification, are permitted provided that the following +-conditions are met: +- +-1. Redistributions of source code must retain any existing copyright +- notice, and this entire permission notice in its entirety, +- including the disclaimer of warranties. +- +-2. Redistributions in binary form must reproduce all prior and current +- copyright notices, this list of conditions, and the following +- disclaimer in the documentation and/or other materials provided +- with the distribution. +- +-3. The name of any author may not be used to endorse or promote +- products derived from this software without their specific prior +- written permission. +- +-ALTERNATIVELY, this product may be distributed under the terms of the +-GNU General Public License, in which case the provisions of the GNU +-GPL are required INSTEAD OF the above restrictions. (This clause is +-necessary due to a potential conflict between the GNU GPL and the +-restrictions contained in a BSD-style copyright.) +- +-THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED +-WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +-IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, +-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +-OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +-USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +-DAMAGE. +-------------------------------------------------------------------------- +--- /dev/null ++++ b/changehat/pam_apparmor/Makefile.am +@@ -0,0 +1,9 @@ ++if HAVE_PAM ++securitydir = $(libdir)/security ++security_LTLIBRARIES = pam_apparmor.la ++pam_apparmor_la_SOURCES = pam_apparmor.c get_options.c ++pam_apparmor_la_LDFLAGS = -module -avoid-version ++pam_apparmor_la_LIBADD = ../../libraries/libapparmor/src/libapparmor.la ++ ++INCLUDES = "-I../../libraries/libapparmor/src" ++endif +--- a/changehat/pam_apparmor/pam_apparmor.changes ++++ /dev/null +@@ -1,49 +0,0 @@ +-------------------------------------------------------------------- +-Mon Jul 30 08:16:39 CEST 2007 - sbeattie@suse.de +- +-- Convert libapparmor builddep to libapparmor-devel +- +-------------------------------------------------------------------- +-Tue Mar 13 10:27:34 PDT 2007 - jmichael@suse.de +- +-- Use pam_modutil_* wrapper functions when possible +- +-------------------------------------------------------------------- +-Tue Oct 31 12:00:00 UTC 2006 - jmichael@suse.de +- +-- Add debug option +- +-------------------------------------------------------------------- +-Tue Oct 31 12:00:00 UTC 2006 - sbeattie@suse.de +- +-- Add configuration options to order attempted hat changes +- +-------------------------------------------------------------------- +-Wed Oct 25 12:00:00 UTC 2006 - sbeattie@suse.de +- +-- remove auto-editing of pam's common-session +-- honor RPM's CFLAGS when building +-- add license (same as Linux PAM package). +- +-------------------------------------------------------------------- +-Thu Sep 14 12:00:00 UTC 2006 - jmichael@suse.de +- +-- header comment was incorrect +-- use pam_get_user() instead of pam_get_item() +-- fix read from urandom if 0 +- +-------------------------------------------------------------------- +-Fri Jan 13 12:00:00 UTC 2006 - sbeattie@suse.de +- +-- Add svn repo number to tarball +- +-------------------------------------------------------------------- +-Fri Jan 13 12:00:00 UTC 2006 - jmichael@suse.de +- +-- Make magic tokens harder to guess by pulling them from /dev/urandom +- +-------------------------------------------------------------------- +-Wed Dec 21 10:31:40 PST 2005 - jmichael@suse.de +- +-- initial +- +--- a/changehat/pam_apparmor/pam_apparmor.spec.in ++++ /dev/null +@@ -1,83 +0,0 @@ +-# +-# spec file for package pam_apparmor (Version 2) +-# +-# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany. +-# This file and all modifications and additions to the pristine +-# package are under the same license as the package itself. +-# +-# Please submit bugfixes or comments via http://www.suse.de/feedback/ +-# +- +-# norootforbuild +- +-Name: pam_apparmor +-License: GPL +-Group: Productivity/Security +-Autoreqprov: on +-Version: @@immunix_version@@ +-Release: @@repo_version@@ +-Summary: Pam module to add AppArmor change_hat functionality +-URL: http://forge.novell.com/modules/xfmod/project/?apparmor +-Source: pam_apparmor-%{version}-@@repo_version@@.tar.gz +-BuildRoot: %{_tmppath}/%{name}-%{version}-build +-BuildRequires: pam-devel +-Requires: pam +-Prereq: pam +- +-%if %{?suse_version:1}0 +-%if 0%{?suse_version} < 1030 +-BuildRequires: libapparmor +-%else +-BuildRequires: libapparmor-devel +-%endif +-%else +-BuildRequires: libapparmor-devel +-%endif +- +-%description +-The pam_apparmor module provides the means for any pam applications that +-call pam_open_session() to automatically perform an AppArmor change_hat +-operation in order to switch to a user-specific security policy. +- +- +-Authors: +--------- +- Jesse Michael jmichael@suse.de +- +-%prep +-%setup -q +- +-%build +-make CFLAGS="${RPM_OPT_FLAGS}" +- +-%install +-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT +-make install DESTDIR=${RPM_BUILD_ROOT} SECDIR=${RPM_BUILD_ROOT}/%{_lib}/security +- +-%clean +-[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} +- +-%files +-%defattr(444,root,root,755) +-%doc README COPYING +-%attr(555,root,root) /%{_lib}/security/pam_apparmor.so +- +-%changelog -n pam_apparmor +-* Tue Oct 31 2006 Jesse Michael +-- Add debug option +-* Tue Oct 31 2006 Steve Beattie +-- Add configuration options to order attempted hat changes +-* Wed Oct 25 2006 Steve Beattie +-- remove auto-editing of pam's common-session +-- honor RPM's CFLAGS when building +-- add license (same as Linux PAM package). +-* Thu Sep 14 2006 Jesse Michael +-- header comment was incorrect +-- use pam_get_user() instead of pam_get_item() +-- fix read from urandom if 0 +-* Fri Jan 13 2006 Steve Beattie +-- Add svn repo number to tarball +-* Fri Jan 13 2006 Jesse Michael +-- Make magic tokens harder to guess by pulling them from /dev/urandom +-* Wed Dec 21 2005 - jmichael@suse.de +-- initial +--- /dev/null ++++ b/changehat/tomcat_apparmor/Makefile.am +@@ -0,0 +1 @@ ++SUBDIRS = tomcat_5_0 tomcat_5_5 +--- /dev/null ++++ b/changehat/tomcat_apparmor/tomcat_5_0/Makefile.am +@@ -0,0 +1,2 @@ ++ ++ +--- /dev/null ++++ b/changehat/tomcat_apparmor/tomcat_5_5/Makefile.am +@@ -0,0 +1,13 @@ ++ ++changeHatValve.jar: $(srcdir)/src/com/novell/apparmor/JNIChangeHat.java \ ++ $(srcdir)/src/com/novell/apparmor/catalina/valves/ChangeHatValve.java ++ ant -Dinstall_lib=$(libdir) -Ddist=$(abs_srcdir) \ ++ -Dant.build.javac.source=1.5 jar ++ ++catalinadir = $(datadir)/tomcat6/lib ++ ++catalina_DATA = changeHatValve.jar ++ ++CLEANFILES = $(catalina_DATA) ++ ++SUBDIRS = . src +--- a/changehat/tomcat_apparmor/tomcat_5_5/build.xml ++++ b/changehat/tomcat_apparmor/tomcat_5_5/build.xml +@@ -38,9 +38,16 @@ + + + ++ + + +- + +@@ -81,6 +88,8 @@ + + + ++ ++ + + + +--- /dev/null ++++ b/changehat/tomcat_apparmor/tomcat_5_5/src/Makefile.am +@@ -0,0 +1 @@ ++SUBDIRS = jni_src +--- /dev/null ++++ b/changehat/tomcat_apparmor/tomcat_5_5/src/jni_src/Makefile.am +@@ -0,0 +1,17 @@ ++lib_LTLIBRARIES = libJNIChangeHat.la ++ ++INCLUDES = -I$(top_srcdir)/libraries/libapparmor/src -I$(JAVA_HOME)/include \ ++ -I$(JAVA_HOME)/include/linux ++ ++CLASSPATH = $(builddir)/../../build/ ++CLASSFILE = $(CLASSPATH)/com/novell/apparmor/JNIChangeHat.class ++ ++com_novell_apparmor_JNIChangeHat.h: ++ javah -jni -classpath $(CLASSPATH) com.novell.apparmor.JNIChangeHat ++ ++JNIChangeHat.c : com_novell_apparmor_JNIChangeHat.h ++ ++libJNIChangeHat_la_SOURCES = JNIChangeHat.c ++libJNIChangeHat_la_LIBADD = $(top_builddir)/libraries/libapparmor/src/.libs/libapparmor.la ++ ++CLEANFILES = com_novell_apparmor_JNIChangeHat.h +--- /dev/null ++++ b/config.rpath +@@ -0,0 +1,666 @@ ++#! /bin/sh ++# Output a system dependent set of variables, describing how to set the ++# run time search path of shared libraries in an executable. ++# ++# Copyright 1996-2007 Free Software Foundation, Inc. ++# Taken from GNU libtool, 2001 ++# Originally by Gordon Matzigkeit , 1996 ++# ++# This file is free software; the Free Software Foundation gives ++# unlimited permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++# ++# The first argument passed to this file is the canonical host specification, ++# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM ++# or ++# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM ++# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld ++# should be set by the caller. ++# ++# The set of defined variables is at the end of this script. ++ ++# Known limitations: ++# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer ++# than 256 bytes, otherwise the compiler driver will dump core. The only ++# known workaround is to choose shorter directory names for the build ++# directory and/or the installation directory. ++ ++# All known linkers require a `.a' archive for static linking (except MSVC, ++# which needs '.lib'). ++libext=a ++shrext=.so ++ ++host="$1" ++host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` ++host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` ++host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ++ ++# Code taken from libtool.m4's _LT_CC_BASENAME. ++ ++for cc_temp in $CC""; do ++ case $cc_temp in ++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ++ \-*) ;; ++ *) break;; ++ esac ++done ++cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` ++ ++# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. ++ ++wl= ++if test "$GCC" = yes; then ++ wl='-Wl,' ++else ++ case "$host_os" in ++ aix*) ++ wl='-Wl,' ++ ;; ++ darwin*) ++ case $cc_basename in ++ xlc*) ++ wl='-Wl,' ++ ;; ++ esac ++ ;; ++ mingw* | cygwin* | pw32* | os2*) ++ ;; ++ hpux9* | hpux10* | hpux11*) ++ wl='-Wl,' ++ ;; ++ irix5* | irix6* | nonstopux*) ++ wl='-Wl,' ++ ;; ++ newsos6) ++ ;; ++ linux* | k*bsd*-gnu) ++ case $cc_basename in ++ icc* | ecc*) ++ wl='-Wl,' ++ ;; ++ pgcc | pgf77 | pgf90) ++ wl='-Wl,' ++ ;; ++ ccc*) ++ wl='-Wl,' ++ ;; ++ como) ++ wl='-lopt=' ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ wl='-Wl,' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ osf3* | osf4* | osf5*) ++ wl='-Wl,' ++ ;; ++ rdos*) ++ ;; ++ solaris*) ++ wl='-Wl,' ++ ;; ++ sunos4*) ++ wl='-Qoption ld ' ++ ;; ++ sysv4 | sysv4.2uw2* | sysv4.3*) ++ wl='-Wl,' ++ ;; ++ sysv4*MP*) ++ ;; ++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ++ wl='-Wl,' ++ ;; ++ unicos*) ++ wl='-Wl,' ++ ;; ++ uts4*) ++ ;; ++ esac ++fi ++ ++# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. ++ ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++ ++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 ++ ;; ++ interix*) ++ # we just hope/assume this is gcc and not c89 (= MSVC++) ++ with_gnu_ld=yes ++ ;; ++ openbsd*) ++ with_gnu_ld=no ++ ;; ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # Set some defaults for GNU ld with shared library support. These ++ # are reset later if shared libraries are not supported. Putting them ++ # here allows them to be overridden if necessary. ++ # Unlike libtool, we use -rpath here, not --rpath, since the documented ++ # option of GNU ld is called -rpath, not --rpath. ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ case "$host_os" in ++ aix3* | aix4* | aix5*) ++ # On AIX/PPC, the GNU linker is very broken ++ if test "$host_cpu" != ia64; then ++ ld_shlibs=no ++ fi ++ ;; ++ amigaos*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # Samuel A. Falvo II 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 cannot use ++ # them. ++ ld_shlibs=no ++ ;; ++ beos*) ++ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ++ : ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ cygwin* | mingw* | pw32*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then ++ : ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ interix[3-9]*) ++ hardcode_direct=no ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ gnu* | linux* | k*bsd*-gnu) ++ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ++ : ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ netbsd*) ++ ;; ++ solaris*) ++ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ++ : ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) ++ case `$LD -v 2>&1` in ++ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ++ ld_shlibs=no ++ ;; ++ *) ++ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ++ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ;; ++ sunos4*) ++ hardcode_direct=yes ++ ;; ++ *) ++ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ++ : ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ if test "$ld_shlibs" = no; then ++ hardcode_libdir_flag_spec= ++ fi ++else ++ case "$host_os" in ++ aix3*) ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=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 ++ else ++ aix_use_runtimelinking=no ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[23]|aix4.[23].*|aix5*) ++ for ld_flag in $LDFLAGS; do ++ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then ++ aix_use_runtimelinking=yes ++ break ++ fi ++ done ++ ;; ++ esac ++ fi ++ hardcode_direct=yes ++ hardcode_libdir_separator=':' ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[012]|aix4.[012].*) ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ : ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ ;; ++ esac ++ fi ++ # Begin _LT_AC_SYS_LIBPATH_AIX. ++ echo 'int main () { return 0; }' > conftest.c ++ ${CC} ${LDFLAGS} conftest.c -o conftest ++ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } ++}'` ++ if test -z "$aix_libpath"; then ++ aix_libpath=`dump -HX64 conftest 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 ++ rm -f conftest.c conftest ++ # End _LT_AC_SYS_LIBPATH_AIX. ++ if test "$aix_use_runtimelinking" = yes; then ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ else ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" ++ fi ++ fi ++ ;; ++ amigaos*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ bsdi[45]*) ++ ;; ++ 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. ++ hardcode_libdir_flag_spec=' ' ++ libext=lib ++ ;; ++ darwin* | rhapsody*) ++ hardcode_direct=no ++ if test "$GCC" = yes ; then ++ : ++ else ++ case $cc_basename in ++ xlc*) ++ ;; ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++ fi ++ ;; ++ dgux*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ ;; ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ freebsd2.2*) ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ ;; ++ freebsd2*) ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ ;; ++ freebsd* | dragonfly*) ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ ;; ++ hpux9*) ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ hardcode_minus_L=yes ++ ;; ++ hpux10*) ++ if test "$with_gnu_ld" = no; then ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ hardcode_minus_L=yes ++ fi ++ ;; ++ hpux11*) ++ if test "$with_gnu_ld" = no; then ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ case $host_cpu in ++ hppa*64*|ia64*) ++ hardcode_direct=no ++ ;; ++ *) ++ hardcode_direct=yes ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ hardcode_minus_L=yes ++ ;; ++ esac ++ fi ++ ;; ++ irix5* | irix6* | nonstopux*) ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ netbsd*) ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ ;; ++ newsos6) ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ openbsd*) ++ if test -f /usr/libexec/ld.so; then ++ hardcode_direct=yes ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ else ++ case "$host_os" in ++ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ;; ++ osf3*) ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ osf4* | osf5*) ++ if test "$GCC" = yes; then ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ # Both cc and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ ;; ++ solaris*) ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ sunos4*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ ;; ++ sysv4) ++ case $host_vendor in ++ sni) ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ hardcode_direct=no ++ ;; ++ motorola) ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ ;; ++ sysv4.3*) ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ ld_shlibs=yes ++ fi ++ ;; ++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ++ ;; ++ sysv5* | sco3.2v5* | sco5v6*) ++ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' ++ hardcode_libdir_separator=':' ++ ;; ++ uts4*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ ;; ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++ ++# Check dynamic linker characteristics ++# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. ++# Unlike libtool.m4, here we don't care about _all_ names of the library, but ++# only about the one the linker finds when passed -lNAME. This is the last ++# element of library_names_spec in libtool.m4, or possibly two of them if the ++# linker has special search rules. ++library_names_spec= # the last element of library_names_spec in libtool.m4 ++libname_spec='lib$name' ++case "$host_os" in ++ aix3*) ++ library_names_spec='$libname.a' ++ ;; ++ aix4* | aix5*) ++ library_names_spec='$libname$shrext' ++ ;; ++ amigaos*) ++ library_names_spec='$libname.a' ++ ;; ++ beos*) ++ library_names_spec='$libname$shrext' ++ ;; ++ bsdi[45]*) ++ library_names_spec='$libname$shrext' ++ ;; ++ cygwin* | mingw* | pw32*) ++ shrext=.dll ++ library_names_spec='$libname.dll.a $libname.lib' ++ ;; ++ darwin* | rhapsody*) ++ shrext=.dylib ++ library_names_spec='$libname$shrext' ++ ;; ++ dgux*) ++ library_names_spec='$libname$shrext' ++ ;; ++ freebsd1*) ++ ;; ++ freebsd* | dragonfly*) ++ case "$host_os" in ++ freebsd[123]*) ++ library_names_spec='$libname$shrext$versuffix' ;; ++ *) ++ library_names_spec='$libname$shrext' ;; ++ esac ++ ;; ++ gnu*) ++ library_names_spec='$libname$shrext' ++ ;; ++ hpux9* | hpux10* | hpux11*) ++ case $host_cpu in ++ ia64*) ++ shrext=.so ++ ;; ++ hppa*64*) ++ shrext=.sl ++ ;; ++ *) ++ shrext=.sl ++ ;; ++ esac ++ library_names_spec='$libname$shrext' ++ ;; ++ interix[3-9]*) ++ library_names_spec='$libname$shrext' ++ ;; ++ irix5* | irix6* | nonstopux*) ++ library_names_spec='$libname$shrext' ++ case "$host_os" in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in ++ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; ++ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; ++ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; ++ *) libsuff= shlibsuff= ;; ++ esac ++ ;; ++ esac ++ ;; ++ linux*oldld* | linux*aout* | linux*coff*) ++ ;; ++ linux* | k*bsd*-gnu) ++ library_names_spec='$libname$shrext' ++ ;; ++ knetbsd*-gnu) ++ library_names_spec='$libname$shrext' ++ ;; ++ netbsd*) ++ library_names_spec='$libname$shrext' ++ ;; ++ newsos6) ++ library_names_spec='$libname$shrext' ++ ;; ++ nto-qnx*) ++ library_names_spec='$libname$shrext' ++ ;; ++ openbsd*) ++ library_names_spec='$libname$shrext$versuffix' ++ ;; ++ os2*) ++ libname_spec='$name' ++ shrext=.dll ++ library_names_spec='$libname.a' ++ ;; ++ osf3* | osf4* | osf5*) ++ library_names_spec='$libname$shrext' ++ ;; ++ rdos*) ++ ;; ++ solaris*) ++ library_names_spec='$libname$shrext' ++ ;; ++ sunos4*) ++ library_names_spec='$libname$shrext$versuffix' ++ ;; ++ sysv4 | sysv4.3*) ++ library_names_spec='$libname$shrext' ++ ;; ++ sysv4*MP*) ++ library_names_spec='$libname$shrext' ++ ;; ++ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ library_names_spec='$libname$shrext' ++ ;; ++ uts4*) ++ library_names_spec='$libname$shrext' ++ ;; ++esac ++ ++sed_quote_subst='s/\(["`$\\]\)/\\\1/g' ++escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` ++shlibext=`echo "$shrext" | sed -e 's,^\.,,'` ++escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` ++escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` ++escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` ++ ++LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < AppArmor_Monitor_Factory.server +- ++endif +--- /dev/null ++++ b/deprecated/management/applets/apparmorapplet-gnome/po/Makefile +@@ -0,0 +1,30 @@ ++# $Id$ ++# ---------------------------------------------------------------------- ++# Copyright (c) 2004, 2005 NOVELL (All rights reserved) ++# ++# This program is free software; you can redistribute it and/or ++# modify it under the terms of version 2 of the GNU General Public ++# License published by the Free Software Foundation. ++# ++# 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, contact Novell, Inc. ++# ---------------------------------------------------------------------- ++all: ++ ++# As translations get added, they will automatically be included, unless ++# the lang is explicitly added to DISABLED_LANGS; e.g. DISABLED_LANGS=en es ++ ++DISABLED_LANGS= ++ ++NAME="apparmorapplet-gnome" ++ ++include ../../../../../common/Make-po.rules ++../../../../../common/Make-po.rules: ++ make -C ../../../../.. common/Make.rules ++ ++XGETTEXT_ARGS+=--language=perl +--- a/deprecated/management/applets/apparmorapplet-gnome/po/Makefile.in.in ++++ /dev/null +@@ -1,258 +0,0 @@ +-# Makefile for program source directory in GNU NLS utilities package. +-# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper +-# +-# This file file be copied and used freely without restrictions. It can +-# be used in projects which are not available under the GNU Public License +-# but which still want to provide support for the GNU gettext functionality. +-# Please note that the actual code is *not* freely available. +-# +-# - Modified by Owen Taylor to use GETTEXT_PACKAGE +-# instead of PACKAGE and to look for po2tbl in ./ not in intl/ +-# +-# - Modified by jacob berkman to install +-# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize +- +-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +-PACKAGE = @PACKAGE@ +-VERSION = @VERSION@ +- +-SHELL = /bin/sh +-@SET_MAKE@ +- +-srcdir = @srcdir@ +-top_srcdir = @top_srcdir@ +-VPATH = @srcdir@ +- +-prefix = @prefix@ +-exec_prefix = @exec_prefix@ +-datarootdir = @datarootdir@ +-datadir = @datadir@ +-libdir = @libdir@ +-localedir = $(libdir)/locale +-gnulocaledir = $(datadir)/locale +-gettextsrcdir = $(datadir)/glib-2.0/gettext/po +-subdir = po +- +-INSTALL = @INSTALL@ +-INSTALL_DATA = @INSTALL_DATA@ +- +-CC = @CC@ +-GENCAT = @GENCAT@ +-GMSGFMT = @GMSGFMT@ +-MSGFMT = @MSGFMT@ +-MSGFMT_OPTS = @MSGFMT_OPTS@ +-XGETTEXT = @XGETTEXT@ +-MSGMERGE = msgmerge +- +-DEFS = @DEFS@ +-CFLAGS = @CFLAGS@ +-CPPFLAGS = @CPPFLAGS@ +- +-INCLUDES = -I.. -I$(top_srcdir)/intl +- +-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) +- +-SOURCES = +-POFILES = @POFILES@ +-GMOFILES = @GMOFILES@ +-DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \ +-$(POFILES) $(GMOFILES) $(SOURCES) +- +-POTFILES = \ +- +-CATALOGS = @CATALOGS@ +-CATOBJEXT = @CATOBJEXT@ +-INSTOBJEXT = @INSTOBJEXT@ +- +-.SUFFIXES: +-.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat +- +-.c.o: +- $(COMPILE) $< +- +-.po.pox: +- $(MAKE) $(GETTEXT_PACKAGE).pot +- $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox +- +-.po.mo: +- $(MSGFMT) -o $@ $< +- +-.po.gmo: +- file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ +- && rm -f $$file && $(GMSGFMT) $(MSGFMT_OPTS) -o $$file $< +- +-.po.cat: +- sed -f ../intl/po2msg.sed < $< > $*.msg \ +- && rm -f $@ && $(GENCAT) $@ $*.msg +- +- +-all: all-@USE_NLS@ +- +-all-yes: $(CATALOGS) +-all-no: +- +-$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) +- $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \ +- --add-comments --keyword=_ --keyword=N_ \ +- --flag=g_strdup_printf:1:c-format \ +- --flag=g_string_printf:2:c-format \ +- --flag=g_string_append_printf:2:c-format \ +- --flag=g_error_new:3:c-format \ +- --flag=g_set_error:4:c-format \ +- --flag=g_markup_printf_escaped:1:c-format \ +- --flag=g_log:3:c-format \ +- --flag=g_print:1:c-format \ +- --flag=g_printerr:1:c-format \ +- --flag=g_printf:1:c-format \ +- --flag=g_fprintf:2:c-format \ +- --flag=g_sprintf:2:c-format \ +- --flag=g_snprintf:3:c-format \ +- --flag=g_scanner_error:2:c-format \ +- --flag=g_scanner_warn:2:c-format \ +- --files-from=$(srcdir)/POTFILES.in \ +- && test ! -f $(GETTEXT_PACKAGE).po \ +- || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ +- && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) +- +-install: install-exec install-data +-install-exec: +-install-data: install-data-@USE_NLS@ +-install-data-no: all +-install-data-yes: all +- @mkdir_p@ $(DESTDIR)$(datadir) +- @catalogs='$(CATALOGS)'; \ +- for cat in $$catalogs; do \ +- cat=`basename $$cat`; \ +- case "$$cat" in \ +- *.gmo) destdir=$(gnulocaledir);; \ +- *) destdir=$(localedir);; \ +- esac; \ +- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ +- dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ +- @mkdir_p@ $$dir; \ +- if test -r $$cat; then \ +- $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ +- echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ +- else \ +- $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ +- echo "installing $(srcdir)/$$cat as" \ +- "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \ +- fi; \ +- if test -r $$cat.m; then \ +- $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ +- echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ +- else \ +- if test -r $(srcdir)/$$cat.m ; then \ +- $(INSTALL_DATA) $(srcdir)/$$cat.m \ +- $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ +- echo "installing $(srcdir)/$$cat as" \ +- "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \ +- else \ +- true; \ +- fi; \ +- fi; \ +- done +- if test "$(PACKAGE)" = "glib"; then \ +- @mkdir_p@ $(DESTDIR)$(gettextsrcdir); \ +- $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ +- $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ +- else \ +- : ; \ +- fi +- +-# Define this as empty until I found a useful application. +-installcheck: +- +-uninstall: +- catalogs='$(CATALOGS)'; \ +- for cat in $$catalogs; do \ +- cat=`basename $$cat`; \ +- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ +- rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ +- rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ +- rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \ +- rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \ +- done +- if test "$(PACKAGE)" = "glib"; then \ +- rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ +- fi +- +-check: all +- +-dvi info tags TAGS ID: +- +-mostlyclean: +- rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp +- rm -fr *.o +- +-clean: mostlyclean +- +-distclean: clean +- rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m +- +-maintainer-clean: distclean +- @echo "This command is intended for maintainers to use;" +- @echo "it deletes files that may require special tools to rebuild." +- rm -f $(GMOFILES) +- +-distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir) +-dist distdir: update-po $(DISTFILES) +- dists="$(DISTFILES)"; \ +- for file in $$dists; do \ +- ln $(srcdir)/$$file $(distdir) 2> /dev/null \ +- || cp -p $(srcdir)/$$file $(distdir); \ +- done +- +-update-po: Makefile +- $(MAKE) $(GETTEXT_PACKAGE).pot +- tmpdir=`pwd`; \ +- cd $(srcdir); \ +- catalogs='$(CATALOGS)'; \ +- for cat in $$catalogs; do \ +- cat=`basename $$cat`; \ +- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ +- echo "$$lang:"; \ +- if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \ +- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ +- rm -f $$tmpdir/$$lang.new.po; \ +- else \ +- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ +- :; \ +- else \ +- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ +- rm -f $$tmpdir/$$lang.new.po; \ +- exit 1; \ +- fi; \ +- fi; \ +- else \ +- echo "msgmerge for $$cat failed!"; \ +- rm -f $$tmpdir/$$lang.new.po; \ +- fi; \ +- done +- +-# POTFILES is created from POTFILES.in by stripping comments, empty lines +-# and Intltool tags (enclosed in square brackets), and appending a full +-# relative path to them +-POTFILES: POTFILES.in +- ( if test 'x$(srcdir)' != 'x.'; then \ +- posrcprefix='$(top_srcdir)/'; \ +- else \ +- posrcprefix="../"; \ +- fi; \ +- rm -f $@-t $@ \ +- && (sed -e '/^#/d' \ +- -e "s/^\[.*\] +//" \ +- -e '/^[ ]*$$/d' \ +- -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ +- | sed -e '$$s/\\$$//') > $@-t \ +- && chmod a-w $@-t \ +- && mv $@-t $@ ) +- +-Makefile: Makefile.in.in ../config.status POTFILES +- cd .. \ +- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ +- $(SHELL) ./config.status +- +-# Tell versions [3.59,3.63) of GNU make not to export all variables. +-# Otherwise a system limit (for SysV at least) may be exceeded. +-.NOEXPORT: +--- a/deprecated/management/applets/apparmorapplet-gnome/src/Makefile.am ++++ b/deprecated/management/applets/apparmorapplet-gnome/src/Makefile.am +@@ -7,12 +7,13 @@ INCLUDES = \ + -DDBUS_API_SUBJECT_TO_CHANGE \ + `$(PKG_CONFIG) --cflags libpanelapplet-2.0` \ + `$(PKG_CONFIG) --cflags dbus-1` \ +- @PACKAGE_CFLAGS@ ++ $(GNOME_CFLAGS) + + LIBS = \ + `$(PKG_CONFIG) --libs libpanelapplet-2.0` \ + `$(PKG_CONFIG) --libs dbus-1` \ +- @PACKAGE_LIBS@ ++ $(GNOME_LIBS) ++ + + libexec_PROGRAMS = apparmorapplet + +@@ -21,5 +22,6 @@ apparmorapplet_SOURCES = \ + preferences_dialog.c preferences_dialog.h \ + reject_list.c reject_list.h + +-apparmorapplet_LDADD = @PACKAGE_LIBS@ $(INTLLIBS) ++apparmorapplet_CFLAGS = -DGETTEXT_PACKAGE=\"apparmorapplet\" ++apparmorapplet_LDADD = $(GNOME_LIBS) $(INTLLIBS) + +--- a/deprecated/management/profile-editor/Makefile.am ++++ b/deprecated/management/profile-editor/Makefile.am +@@ -1,2 +1,4 @@ ++if HAVE_PROFILEEDITOR + SUBDIRS = src doc ++endif + +--- a/deprecated/management/profile-editor/src/Makefile.am ++++ b/deprecated/management/profile-editor/src/Makefile.am +@@ -12,13 +12,15 @@ bin_PROGRAMS = profileeditor + # the application source, library search path, and link libraries + profileeditor_SOURCES = ProfileTextCtrl.cpp Preferences.cpp AboutDialog.cpp \ + SearchAllProfiles.cpp Configuration.cpp profileeditor.cpp +-profileeditor_LDFLAGS = $(WX_LIBS) ++profileeditor_LDFLAGS = $(WX_LIBS) + + + + SUBDIRS = wxStyledTextCtrl ++profileeditor_CPPFLAGS = $(WX_CPPFLAGS) ++profileeditor_CXXFLAGS = $(WX_CXXFLAGS) + profileeditor_LDADD =\ +- $(top_builddir)/src/wxStyledTextCtrl/libAppArmorStyledTextCtrl.a ++ $(builddir)/wxStyledTextCtrl/libAppArmorStyledTextCtrl.a + + AM_CXXFLAGS = \ + -DHELP_FILE_LOCATION=\"$(datadir)/doc/@PACKAGE@/AppArmorProfileEditor.htb\" +--- a/deprecated/management/profile-editor/src/wxStyledTextCtrl/Makefile.am ++++ b/deprecated/management/profile-editor/src/wxStyledTextCtrl/Makefile.am +@@ -15,5 +15,5 @@ noinst_HEADERS = Accessor.h AutoComplete + UniConversion.h ViewStyle.h WindowAccessor.h XPM.h + + AM_CFLAGS = -DSCI_LEXER -DLINK_LEXERS -fPIC -DPIC -DWX_PRECOMP -DNO_GCC_PRAGMA \ +- -D__WXGTK__ -D__WX__ +-AM_CXXFLAGS = -DSCI_LEXER -DLINK_LEXERS -fPIC -DPIC -DWX_PRECOMP -DNO_GCC_PRAGMA ++ -D__WXGTK__ -D__WX__ $(WX_CPPFLAGS) ++AM_CXXFLAGS = -DSCI_LEXER -DLINK_LEXERS -fPIC -DPIC -DWX_PRECOMP -DNO_GCC_PRAGMA $(WX_CXXFLAGS) +--- /dev/null ++++ b/libraries/Makefile.am +@@ -0,0 +1 @@ ++SUBDIRS = libapparmor +--- a/libraries/libapparmor/AUTHORS ++++ /dev/null +@@ -1,2 +0,0 @@ +-Steve Beattie +-Matt Barringer +--- a/libraries/libapparmor/ChangeLog ++++ /dev/null +@@ -1 +0,0 @@ +- +--- a/libraries/libapparmor/INSTALL ++++ /dev/null +@@ -1,236 +0,0 @@ +-Installation Instructions +-************************* +- +-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free +-Software Foundation, Inc. +- +-This file is free documentation; the Free Software Foundation gives +-unlimited permission to copy, distribute and modify it. +- +-Basic Installation +-================== +- +-These are generic installation instructions. +- +- The `configure' shell script attempts to guess correct values for +-various system-dependent variables used during compilation. It uses +-those values to create a `Makefile' in each directory of the package. +-It may also create one or more `.h' files containing system-dependent +-definitions. Finally, it creates a shell script `config.status' that +-you can run in the future to recreate the current configuration, and a +-file `config.log' containing compiler output (useful mainly for +-debugging `configure'). +- +- It can also use an optional file (typically called `config.cache' +-and enabled with `--cache-file=config.cache' or simply `-C') that saves +-the results of its tests to speed up reconfiguring. (Caching is +-disabled by default to prevent problems with accidental use of stale +-cache files.) +- +- If you need to do unusual things to compile the package, please try +-to figure out how `configure' could check whether to do them, and mail +-diffs or instructions to the address given in the `README' so they can +-be considered for the next release. If you are using the cache, and at +-some point `config.cache' contains results you don't want to keep, you +-may remove or edit it. +- +- The file `configure.ac' (or `configure.in') is used to create +-`configure' by a program called `autoconf'. You only need +-`configure.ac' if you want to change it or regenerate `configure' using +-a newer version of `autoconf'. +- +-The simplest way to compile this package is: +- +- 1. `cd' to the directory containing the package's source code and type +- `./configure' to configure the package for your system. If you're +- using `csh' on an old version of System V, you might need to type +- `sh ./configure' instead to prevent `csh' from trying to execute +- `configure' itself. +- +- Running `configure' takes awhile. While running, it prints some +- messages telling which features it is checking for. +- +- 2. Type `make' to compile the package. +- +- 3. Optionally, type `make check' to run any self-tests that come with +- the package. +- +- 4. Type `make install' to install the programs and any data files and +- documentation. +- +- 5. You can remove the program binaries and object files from the +- source code directory by typing `make clean'. To also remove the +- files that `configure' created (so you can compile the package for +- a different kind of computer), type `make distclean'. There is +- also a `make maintainer-clean' target, but that is intended mainly +- for the package's developers. If you use it, you may have to get +- all sorts of other programs in order to regenerate files that came +- with the distribution. +- +-Compilers and Options +-===================== +- +-Some systems require unusual options for compilation or linking that the +-`configure' script does not know about. Run `./configure --help' for +-details on some of the pertinent environment variables. +- +- You can give `configure' initial values for configuration parameters +-by setting variables in the command line or in the environment. Here +-is an example: +- +- ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix +- +- *Note Defining Variables::, for more details. +- +-Compiling For Multiple Architectures +-==================================== +- +-You can compile the package for more than one kind of computer at the +-same time, by placing the object files for each architecture in their +-own directory. To do this, you must use a version of `make' that +-supports the `VPATH' variable, such as GNU `make'. `cd' to the +-directory where you want the object files and executables to go and run +-the `configure' script. `configure' automatically checks for the +-source code in the directory that `configure' is in and in `..'. +- +- If you have to use a `make' that does not support the `VPATH' +-variable, you have to compile the package for one architecture at a +-time in the source code directory. After you have installed the +-package for one architecture, use `make distclean' before reconfiguring +-for another architecture. +- +-Installation Names +-================== +- +-By default, `make install' installs the package's commands under +-`/usr/local/bin', include files under `/usr/local/include', etc. You +-can specify an installation prefix other than `/usr/local' by giving +-`configure' the option `--prefix=PREFIX'. +- +- You can specify separate installation prefixes for +-architecture-specific files and architecture-independent files. If you +-pass the option `--exec-prefix=PREFIX' to `configure', the package uses +-PREFIX as the prefix for installing programs and libraries. +-Documentation and other data files still use the regular prefix. +- +- In addition, if you use an unusual directory layout you can give +-options like `--bindir=DIR' to specify different values for particular +-kinds of files. Run `configure --help' for a list of the directories +-you can set and what kinds of files go in them. +- +- If the package supports it, you can cause programs to be installed +-with an extra prefix or suffix on their names by giving `configure' the +-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. +- +-Optional Features +-================= +- +-Some packages pay attention to `--enable-FEATURE' options to +-`configure', where FEATURE indicates an optional part of the package. +-They may also pay attention to `--with-PACKAGE' options, where PACKAGE +-is something like `gnu-as' or `x' (for the X Window System). The +-`README' should mention any `--enable-' and `--with-' options that the +-package recognizes. +- +- For packages that use the X Window System, `configure' can usually +-find the X include and library files automatically, but if it doesn't, +-you can use the `configure' options `--x-includes=DIR' and +-`--x-libraries=DIR' to specify their locations. +- +-Specifying the System Type +-========================== +- +-There may be some features `configure' cannot figure out automatically, +-but needs to determine by the type of machine the package will run on. +-Usually, assuming the package is built to be run on the _same_ +-architectures, `configure' can figure that out, but if it prints a +-message saying it cannot guess the machine type, give it the +-`--build=TYPE' option. TYPE can either be a short name for the system +-type, such as `sun4', or a canonical name which has the form: +- +- CPU-COMPANY-SYSTEM +- +-where SYSTEM can have one of these forms: +- +- OS KERNEL-OS +- +- See the file `config.sub' for the possible values of each field. If +-`config.sub' isn't included in this package, then this package doesn't +-need to know the machine type. +- +- If you are _building_ compiler tools for cross-compiling, you should +-use the option `--target=TYPE' to select the type of system they will +-produce code for. +- +- If you want to _use_ a cross compiler, that generates code for a +-platform different from the build platform, you should specify the +-"host" platform (i.e., that on which the generated programs will +-eventually be run) with `--host=TYPE'. +- +-Sharing Defaults +-================ +- +-If you want to set default values for `configure' scripts to share, you +-can create a site shell script called `config.site' that gives default +-values for variables like `CC', `cache_file', and `prefix'. +-`configure' looks for `PREFIX/share/config.site' if it exists, then +-`PREFIX/etc/config.site' if it exists. Or, you can set the +-`CONFIG_SITE' environment variable to the location of the site script. +-A warning: not all `configure' scripts look for a site script. +- +-Defining Variables +-================== +- +-Variables not defined in a site shell script can be set in the +-environment passed to `configure'. However, some packages may run +-configure again during the build, and the customized values of these +-variables may be lost. In order to avoid this problem, you should set +-them in the `configure' command line, using `VAR=value'. For example: +- +- ./configure CC=/usr/local2/bin/gcc +- +-causes the specified `gcc' to be used as the C compiler (unless it is +-overridden in the site shell script). Here is a another example: +- +- /bin/bash ./configure CONFIG_SHELL=/bin/bash +- +-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent +-configuration-related scripts to be executed by `/bin/bash'. +- +-`configure' Invocation +-====================== +- +-`configure' recognizes the following options to control how it operates. +- +-`--help' +-`-h' +- Print a summary of the options to `configure', and exit. +- +-`--version' +-`-V' +- Print the version of Autoconf used to generate the `configure' +- script, and exit. +- +-`--cache-file=FILE' +- Enable the cache: use and save the results of the tests in FILE, +- traditionally `config.cache'. FILE defaults to `/dev/null' to +- disable caching. +- +-`--config-cache' +-`-C' +- Alias for `--cache-file=config.cache'. +- +-`--quiet' +-`--silent' +-`-q' +- Do not print messages saying which checks are being made. To +- suppress all normal output, redirect it to `/dev/null' (any error +- messages will still be shown). +- +-`--srcdir=DIR' +- Look for the package's source code in directory DIR. Usually +- `configure' can determine that directory automatically. +- +-`configure' also accepts some other, not widely useful, options. Run +-`configure --help' for more details. +- +--- a/libraries/libapparmor/NEWS ++++ /dev/null +@@ -1 +0,0 @@ +-- 2007-06-24 - Initial release, version 0.6 +--- a/libraries/libapparmor/README ++++ /dev/null +@@ -1 +0,0 @@ +-What little documentation exists is in src/aalogparse.h. Please file bugs using http://bugzilla.novell.com under the AppArmor product. +--- a/libraries/libapparmor/autogen.sh ++++ /dev/null +@@ -1,42 +0,0 @@ +-#!/bin/sh +- +-DIE=0 +- +-(autoconf --version) < /dev/null > /dev/null 2>&1 || { +- echo +- echo "You must have autoconf installed to compile $package." +- echo "Download the appropriate package for your distribution," +- echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" +- DIE=1 +-} +- +-(automake --version) < /dev/null > /dev/null 2>&1 || { +- echo +- echo "You must have automake installed to compile $package." +- echo "Download the appropriate package for your system," +- echo "or get the source from one of the GNU ftp sites" +- echo "listed in http://www.gnu.org/order/ftp.html" +- DIE=1 +-} +- +-(libtool --version) < /dev/null > /dev/null 2>&1 || { +- echo +- echo "You must have libtool installed to compile $package." +- echo "Download the appropriate package for your system," +- echo "or get the source from one of the GNU ftp sites" +- echo "listed in http://www.gnu.org/order/ftp.html" +- DIE=1 +-} +- +-if test "$DIE" -eq 1; then +- exit 1 +-fi +- +-echo "Running aclocal" +-aclocal +-echo "Running autoconf" +-autoconf --force +-echo "Running libtoolize" +-libtoolize --automake +-echo "Running automake -ac" +-automake -ac +--- a/libraries/libapparmor/compile ++++ /dev/null +@@ -1,143 +0,0 @@ +-#! /bin/sh +-# Wrapper for compilers which do not understand `-c -o'. +- +-scriptversion=2009-10-06.20; # UTC +- +-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software +-# Foundation, Inc. +-# Written by Tom Tromey . +-# +-# 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, see . +- +-# 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 or send patches to +-# . +- +-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 . +-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 's|^.*[\\/]||; s|^[a-zA-Z]:||; 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 +- test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +-elif test -f "${cofile}bj"; then +- test "${cofile}bj" = "$ofile" || 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-time-zone: "UTC" +-# time-stamp-end: "; # UTC" +-# End: +--- a/libraries/libapparmor/config.guess ++++ /dev/null +@@ -1,1502 +0,0 @@ +-#! /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, 2007, 2008, 2009, 2010 +-# Free Software Foundation, Inc. +- +-timestamp='2009-12-30' +- +-# 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. Please send patches (context +-# diff format) to and include a 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. +-# +-# You can get the latest version of this script from: +-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +- +-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 ." +- +-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, 2006, 2007, 2008, 2009, 2010 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 -q __ELF__ +- 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 ;; +- s390x:SunOS:*:*) +- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit ;; +- 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:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) +- echo i386-pc-auroraux${UNAME_RELEASE} +- exit ;; +- i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) +- eval $set_cc_for_build +- SUN_ARCH="i386" +- # If there is a compiler, see if it is configured for 64-bit objects. +- # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. +- # This test works for both compilers. +- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +- if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ +- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ +- grep IS_64BIT_ARCH >/dev/null +- then +- SUN_ARCH="x86_64" +- fi +- fi +- echo ${SUN_ARCH}-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 /* 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 +- +- 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:*:[456]) +- 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 +- #include +- +- 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 -q __LP64__ +- 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 +- 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*:*) +- case ${UNAME_MACHINE} in +- x86) +- echo i586-pc-interix${UNAME_RELEASE} +- exit ;; +- authenticamd | genuineintel | EM64T) +- echo x86_64-unknown-interix${UNAME_RELEASE} +- exit ;; +- IA64) +- echo ia64-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 ;; +- 8664:Windows_NT:*) +- echo x86_64-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 ;; +- 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 -q ld.so.1 +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} +- exit ;; +- arm*:Linux:*:*) +- eval $set_cc_for_build +- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ +- | grep -q __ARM_EABI__ +- then +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- else +- echo ${UNAME_MACHINE}-unknown-linux-gnueabi +- fi +- 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 ;; +- i*86:Linux:*:*) +- LIBC=gnu +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #ifdef __dietlibc__ +- LIBC=dietlibc +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` +- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" +- 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:*:* | mips64:Linux:*:*) +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #undef CPU +- #undef ${UNAME_MACHINE} +- #undef ${UNAME_MACHINE}el +- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) +- CPU=${UNAME_MACHINE}el +- #else +- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) +- CPU=${UNAME_MACHINE} +- #else +- CPU= +- #endif +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } +- ;; +- or32:Linux:*:*) +- echo or32-unknown-linux-gnu +- exit ;; +- padre:Linux:*:*) +- echo sparc-unknown-linux-gnu +- exit ;; +- parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu +- 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 ;; +- ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu +- exit ;; +- ppc:Linux:*:*) +- echo powerpc-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 ${UNAME_MACHINE}-unknown-linux-gnu +- 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.[02]*:*) +- 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' /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 i586. +- # Note: whatever this is, it MUST be the same as what config.sub +- # prints for the "djgpp" host, or else GDB configury will decide that +- # this is a cross-build. +- echo i586-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; } ;; +- NCR*:*:4.2:* | MPRAS*:*:4.2:*) +- OS_REL='.3' +- 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; } +- /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ +- && { echo i586-ncr-sysv4.3${OS_REL}; 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.[02]*:*) +- 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 +- echo i586-unisys-sysv4 +- exit ;; +- *:UNIX_System_V:4*:FTX*) +- # From Gerald Hewes . +- # 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 ;; +- BePC:Haiku:*:*) # Haiku running on Intel PC compatible. +- echo i586-pc-haiku +- 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 +- i386) +- eval $set_cc_for_build +- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then +- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ +- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ +- grep IS_64BIT_ARCH >/dev/null +- then +- UNAME_PROCESSOR="x86_64" +- fi +- fi ;; +- 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 ;; +- i*86:AROS:*:*) +- echo ${UNAME_MACHINE}-pc-aros +- 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 < +-# include +-#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 +- 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 +-# 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 < 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: +--- a/libraries/libapparmor/config.sub ++++ /dev/null +@@ -1,1714 +0,0 @@ +-#! /bin/sh +-# Configuration validation subroutine script. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +-# Free Software Foundation, Inc. +- +-timestamp='2010-01-22' +- +-# 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 . Submit a context +-# diff and a properly formatted GNU 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. +- +-# You can get the latest version of this script from: +-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +- +-# 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 ." +- +-version="\ +-GNU config.sub ($timestamp) +- +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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* | \ +- kopensolaris*-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 | -microblaze) +- os= +- basic_machine=$1 +- ;; +- -bluegene*) +- os=-cnk +- ;; +- -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 \ +- | lm32 \ +- | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | mcore | mep | metag \ +- | mips | mipsbe | mipseb | mipsel | mipsle \ +- | mips16 \ +- | mips64 | mips64el \ +- | mips64octeon | mips64octeonel \ +- | mips64orion | mips64orionel \ +- | mips64r5900 | mips64r5900el \ +- | mips64vr | mips64vrel \ +- | mips64vr4100 | mips64vr4100el \ +- | mips64vr4300 | mips64vr4300el \ +- | mips64vr5000 | mips64vr5000el \ +- | mips64vr5900 | mips64vr5900el \ +- | mipsisa32 | mipsisa32el \ +- | mipsisa32r2 | mipsisa32r2el \ +- | mipsisa64 | mipsisa64el \ +- | mipsisa64r2 | mipsisa64r2el \ +- | mipsisa64sb1 | mipsisa64sb1el \ +- | mipsisa64sr71k | mipsisa64sr71kel \ +- | mipstx39 | mipstx39el \ +- | mn10200 | mn10300 \ +- | moxie \ +- | mt \ +- | msp430 \ +- | nios | nios2 \ +- | ns16k | ns32k \ +- | or32 \ +- | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ +- | pyramid \ +- | rx \ +- | score \ +- | sh | sh[1234] | sh[24]a | sh[24]aeb | 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 \ +- | ubicom32 \ +- | v850 | v850e \ +- | we32k \ +- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ +- | z8k | z80) +- basic_machine=$basic_machine-unknown +- ;; +- m6811 | m68hc11 | m6812 | m68hc12 | picochip) +- # 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-* \ +- | lm32-* \ +- | m32c-* | m32r-* | m32rle-* \ +- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ +- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ +- | mips16-* \ +- | mips64-* | mips64el-* \ +- | mips64octeon-* | mips64octeonel-* \ +- | mips64orion-* | mips64orionel-* \ +- | mips64r5900-* | mips64r5900el-* \ +- | mips64vr-* | mips64vrel-* \ +- | 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-* | rx-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | 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-* \ +- | tile-* | tilegx-* \ +- | tron-* \ +- | ubicom32-* \ +- | v850-* | v850e-* | vax-* \ +- | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ +- | xstormy16-* | xtensa*-* \ +- | ymp-* \ +- | z8k-* | z80-*) +- ;; +- # Recognize the basic CPU types without company name, with glob match. +- xtensa*) +- basic_machine=$basic_machine-unknown +- ;; +- # 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 +- ;; +- aros) +- basic_machine=i386-pc +- os=-aros +- ;; +- aux) +- basic_machine=m68k-apple +- os=-aux +- ;; +- balance) +- basic_machine=ns32k-sequent +- os=-dynix +- ;; +- blackfin) +- basic_machine=bfin-unknown +- os=-linux +- ;; +- blackfin-*) +- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- bluegene*) +- basic_machine=powerpc-ibm +- os=-cnk +- ;; +- c90) +- basic_machine=c90-cray +- os=-unicos +- ;; +- cegcc) +- basic_machine=arm-unknown +- os=-cegcc +- ;; +- 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 +- ;; +- cr16) +- basic_machine=cr16-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 +- ;; +- dicos) +- basic_machine=i686-pc +- os=-dicos +- ;; +- 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 +- ;; +- m68knommu) +- basic_machine=m68k-unknown +- os=-linux +- ;; +- m68knommu-*) +- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- m88k-omron*) +- basic_machine=m88k-omron +- ;; +- magnum | m3230) +- basic_machine=mips-mips +- os=-sysv +- ;; +- merlin) +- basic_machine=ns32k-utek +- os=-sysv +- ;; +- microblaze) +- basic_machine=microblaze-xilinx +- ;; +- mingw32) +- basic_machine=i386-pc +- os=-mingw32 +- ;; +- mingw32ce) +- basic_machine=arm-unknown +- os=-mingw32ce +- ;; +- 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 +- ;; +- parisc) +- basic_machine=hppa-unknown +- os=-linux +- ;; +- parisc-*) +- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- 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 +- ;; +- # This must be matched before tile*. +- tilegx*) +- basic_machine=tilegx-unknown +- os=-linux-gnu +- ;; +- tile*) +- basic_machine=tile-unknown +- os=-linux-gnu +- ;; +- 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 +- ;; +- z80-*-coff) +- basic_machine=z80-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[24]aeb | 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. +- -auroraux) +- os=-auroraux +- ;; +- -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* | -cnk* | -sunos | -sunos[34]*\ +- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ +- | -sym* | -kopensolaris* \ +- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ +- | -aos* | -aros* \ +- | -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* | -cegcc* \ +- | -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* | -es*) +- # 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 +- ;; +- -dicos*) +- os=-dicos +- ;; +- -nacl*) +- ;; +- -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 +- ;; +- -cnk*|-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: +--- a/libraries/libapparmor/configure ++++ /dev/null +@@ -1,13962 +0,0 @@ +-#! /bin/sh +-# Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.67. +-# +-# +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +-# Foundation, Inc. +-# +-# +-# This configure script is free software; the Free Software Foundation +-# gives unlimited permission to copy, distribute and modify it. +-## -------------------- ## +-## M4sh Initialization. ## +-## -------------------- ## +- +-# Be more Bourne compatible +-DUALCASE=1; export DUALCASE # for MKS sh +-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +- emulate sh +- NULLCMD=: +- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which +- # is contrary to our usage. Disable this feature. +- alias -g '${1+"$@"}'='"$@"' +- setopt NO_GLOB_SUBST +-else +- case `(set -o) 2>/dev/null` in #( +- *posix*) : +- set -o posix ;; #( +- *) : +- ;; +-esac +-fi +- +- +-as_nl=' +-' +-export as_nl +-# Printing a long string crashes Solaris 7 /usr/bin/printf. +-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +-# Prefer a ksh shell builtin over an external printf program on Solaris, +-# but without wasting forks for bash or zsh. +-if test -z "$BASH_VERSION$ZSH_VERSION" \ +- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then +- as_echo='print -r --' +- as_echo_n='print -rn --' +-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +- as_echo='printf %s\n' +- as_echo_n='printf %s' +-else +- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then +- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' +- as_echo_n='/usr/ucb/echo -n' +- else +- as_echo_body='eval expr "X$1" : "X\\(.*\\)"' +- as_echo_n_body='eval +- arg=$1; +- case $arg in #( +- *"$as_nl"*) +- expr "X$arg" : "X\\(.*\\)$as_nl"; +- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; +- esac; +- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" +- ' +- export as_echo_n_body +- as_echo_n='sh -c $as_echo_n_body as_echo' +- fi +- export as_echo_body +- as_echo='sh -c $as_echo_body as_echo' +-fi +- +-# The user is always right. +-if test "${PATH_SEPARATOR+set}" != set; then +- PATH_SEPARATOR=: +- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { +- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || +- PATH_SEPARATOR=';' +- } +-fi +- +- +-# IFS +-# We need space, tab and new line, in precisely that order. Quoting is +-# there to prevent editors from complaining about space-tab. +-# (If _AS_PATH_WALK were called with IFS unset, it would disable word +-# splitting by setting IFS to empty value.) +-IFS=" "" $as_nl" +- +-# Find who we are. Look in the path if we contain no directory separator. +-case $0 in #(( +- *[\\/]* ) as_myself=$0 ;; +- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-# We did not find ourselves, most probably we were run as `sh COMMAND' +-# in which case we are not to be found in the path. +-if test "x$as_myself" = x; then +- as_myself=$0 +-fi +-if test ! -f "$as_myself"; then +- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 +- exit 1 +-fi +- +-# Unset variables that we do not need and which cause bugs (e.g. in +-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +-# suppresses any "Segmentation fault" message there. '((' could +-# trigger a bug in pdksh 5.2.14. +-for as_var in BASH_ENV ENV MAIL MAILPATH +-do eval test x\${$as_var+set} = xset \ +- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +-done +-PS1='$ ' +-PS2='> ' +-PS4='+ ' +- +-# NLS nuisances. +-LC_ALL=C +-export LC_ALL +-LANGUAGE=C +-export LANGUAGE +- +-# CDPATH. +-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +- +-if test "x$CONFIG_SHELL" = x; then +- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : +- emulate sh +- NULLCMD=: +- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which +- # is contrary to our usage. Disable this feature. +- alias -g '\${1+\"\$@\"}'='\"\$@\"' +- setopt NO_GLOB_SUBST +-else +- case \`(set -o) 2>/dev/null\` in #( +- *posix*) : +- set -o posix ;; #( +- *) : +- ;; +-esac +-fi +-" +- as_required="as_fn_return () { (exit \$1); } +-as_fn_success () { as_fn_return 0; } +-as_fn_failure () { as_fn_return 1; } +-as_fn_ret_success () { return 0; } +-as_fn_ret_failure () { return 1; } +- +-exitcode=0 +-as_fn_success || { exitcode=1; echo as_fn_success failed.; } +-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : +- +-else +- exitcode=1; echo positional parameters were not saved. +-fi +-test x\$exitcode = x0 || exit 1" +- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO +- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO +- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && +- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +-test \$(( 1 + 1 )) = 2 || exit 1" +- if (eval "$as_required") 2>/dev/null; then : +- as_have_required=yes +-else +- as_have_required=no +-fi +- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : +- +-else +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-as_found=false +-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- as_found=: +- case $as_dir in #( +- /*) +- for as_base in sh bash ksh sh5; do +- # Try only shells that exist, to save several forks. +- as_shell=$as_dir/$as_base +- if { test -f "$as_shell" || test -f "$as_shell.exe"; } && +- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : +- CONFIG_SHELL=$as_shell as_have_required=yes +- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : +- break 2 +-fi +-fi +- done;; +- esac +- as_found=false +-done +-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && +- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : +- CONFIG_SHELL=$SHELL as_have_required=yes +-fi; } +-IFS=$as_save_IFS +- +- +- if test "x$CONFIG_SHELL" != x; then : +- # We cannot yet assume a decent shell, so we have to provide a +- # neutralization value for shells without unset; and this also +- # works around shells that cannot unset nonexistent variables. +- BASH_ENV=/dev/null +- ENV=/dev/null +- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +- export CONFIG_SHELL +- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +-fi +- +- if test x$as_have_required = xno; then : +- $as_echo "$0: This script requires a shell more modern than all" +- $as_echo "$0: the shells that I found on your system." +- if test x${ZSH_VERSION+set} = xset ; then +- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" +- $as_echo "$0: be upgraded to zsh 4.3.4 or later." +- else +- $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +-$0: including any error possibly output before this +-$0: message. Then install a modern shell, or manually run +-$0: the script under such a shell if you do have one." +- fi +- exit 1 +-fi +-fi +-fi +-SHELL=${CONFIG_SHELL-/bin/sh} +-export SHELL +-# Unset more variables known to interfere with behavior of common tools. +-CLICOLOR_FORCE= GREP_OPTIONS= +-unset CLICOLOR_FORCE GREP_OPTIONS +- +-## --------------------- ## +-## M4sh Shell Functions. ## +-## --------------------- ## +-# as_fn_unset VAR +-# --------------- +-# Portably unset VAR. +-as_fn_unset () +-{ +- { eval $1=; unset $1;} +-} +-as_unset=as_fn_unset +- +-# as_fn_set_status STATUS +-# ----------------------- +-# Set $? to STATUS, without forking. +-as_fn_set_status () +-{ +- return $1 +-} # as_fn_set_status +- +-# as_fn_exit STATUS +-# ----------------- +-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +-as_fn_exit () +-{ +- set +e +- as_fn_set_status $1 +- exit $1 +-} # as_fn_exit +- +-# as_fn_mkdir_p +-# ------------- +-# Create "$as_dir" as a directory, including parents if necessary. +-as_fn_mkdir_p () +-{ +- +- case $as_dir in #( +- -*) as_dir=./$as_dir;; +- esac +- test -d "$as_dir" || eval $as_mkdir_p || { +- as_dirs= +- while :; do +- case $as_dir in #( +- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( +- *) as_qdir=$as_dir;; +- esac +- as_dirs="'$as_qdir' $as_dirs" +- as_dir=`$as_dirname -- "$as_dir" || +-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_dir" : 'X\(//\)[^/]' \| \ +- X"$as_dir" : 'X\(//\)$' \| \ +- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +-$as_echo X"$as_dir" | +- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)[^/].*/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)$/{ +- s//\1/ +- q +- } +- /^X\(\/\).*/{ +- s//\1/ +- q +- } +- s/.*/./; q'` +- test -d "$as_dir" && break +- done +- test -z "$as_dirs" || eval "mkdir $as_dirs" +- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" +- +- +-} # as_fn_mkdir_p +-# as_fn_append VAR VALUE +-# ---------------------- +-# Append the text in VALUE to the end of the definition contained in VAR. Take +-# advantage of any shell optimizations that allow amortized linear growth over +-# repeated appends, instead of the typical quadratic growth present in naive +-# implementations. +-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +- eval 'as_fn_append () +- { +- eval $1+=\$2 +- }' +-else +- as_fn_append () +- { +- eval $1=\$$1\$2 +- } +-fi # as_fn_append +- +-# as_fn_arith ARG... +-# ------------------ +-# Perform arithmetic evaluation on the ARGs, and store the result in the +-# global $as_val. Take advantage of shells that can avoid forks. The arguments +-# must be portable across $(()) and expr. +-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +- eval 'as_fn_arith () +- { +- as_val=$(( $* )) +- }' +-else +- as_fn_arith () +- { +- as_val=`expr "$@" || test $? -eq 1` +- } +-fi # as_fn_arith +- +- +-# as_fn_error STATUS ERROR [LINENO LOG_FD] +-# ---------------------------------------- +-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +-# script with STATUS, using 1 if that was 0. +-as_fn_error () +-{ +- as_status=$1; test $as_status -eq 0 && as_status=1 +- if test "$4"; then +- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 +- fi +- $as_echo "$as_me: error: $2" >&2 +- as_fn_exit $as_status +-} # as_fn_error +- +-if expr a : '\(a\)' >/dev/null 2>&1 && +- test "X`expr 00001 : '.*\(...\)'`" = X001; then +- as_expr=expr +-else +- as_expr=false +-fi +- +-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then +- as_basename=basename +-else +- as_basename=false +-fi +- +-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then +- as_dirname=dirname +-else +- as_dirname=false +-fi +- +-as_me=`$as_basename -- "$0" || +-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ +- X"$0" : 'X\(//\)$' \| \ +- X"$0" : 'X\(/\)' \| . 2>/dev/null || +-$as_echo X/"$0" | +- sed '/^.*\/\([^/][^/]*\)\/*$/{ +- s//\1/ +- q +- } +- /^X\/\(\/\/\)$/{ +- s//\1/ +- q +- } +- /^X\/\(\/\).*/{ +- s//\1/ +- q +- } +- s/.*/./; q'` +- +-# Avoid depending upon Character Ranges. +-as_cr_letters='abcdefghijklmnopqrstuvwxyz' +-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +-as_cr_Letters=$as_cr_letters$as_cr_LETTERS +-as_cr_digits='0123456789' +-as_cr_alnum=$as_cr_Letters$as_cr_digits +- +- +- as_lineno_1=$LINENO as_lineno_1a=$LINENO +- as_lineno_2=$LINENO as_lineno_2a=$LINENO +- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && +- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { +- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) +- sed -n ' +- p +- /[$]LINENO/= +- ' <$as_myself | +- sed ' +- s/[$]LINENO.*/&-/ +- t lineno +- b +- :lineno +- N +- :loop +- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ +- t loop +- s/-\n.*// +- ' >$as_me.lineno && +- chmod +x "$as_me.lineno" || +- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } +- +- # Don't try to exec as it changes $[0], causing all sort of problems +- # (the dirname of $[0] is not the place where we might find the +- # original and so on. Autoconf is especially sensitive to this). +- . "./$as_me.lineno" +- # Exit status is that of the last command. +- exit +-} +- +-ECHO_C= ECHO_N= ECHO_T= +-case `echo -n x` in #((((( +--n*) +- case `echo 'xy\c'` in +- *c*) ECHO_T=' ';; # ECHO_T is single tab character. +- xy) ECHO_C='\c';; +- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null +- ECHO_T=' ';; +- esac;; +-*) +- ECHO_N='-n';; +-esac +- +-rm -f conf$$ conf$$.exe conf$$.file +-if test -d conf$$.dir; then +- rm -f conf$$.dir/conf$$.file +-else +- rm -f conf$$.dir +- mkdir conf$$.dir 2>/dev/null +-fi +-if (echo >conf$$.file) 2>/dev/null; then +- if ln -s conf$$.file conf$$ 2>/dev/null; then +- as_ln_s='ln -s' +- # ... but there are two gotchas: +- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. +- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. +- # In both cases, we have to default to `cp -p'. +- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +- as_ln_s='cp -p' +- elif ln conf$$.file conf$$ 2>/dev/null; then +- as_ln_s=ln +- else +- as_ln_s='cp -p' +- fi +-else +- as_ln_s='cp -p' +-fi +-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +-rmdir conf$$.dir 2>/dev/null +- +-if mkdir -p . 2>/dev/null; then +- as_mkdir_p='mkdir -p "$as_dir"' +-else +- test -d ./-p && rmdir ./-p +- as_mkdir_p=false +-fi +- +-if test -x / >/dev/null 2>&1; then +- as_test_x='test -x' +-else +- if ls -dL / >/dev/null 2>&1; then +- as_ls_L_option=L +- else +- as_ls_L_option= +- fi +- as_test_x=' +- eval sh -c '\'' +- if test -d "$1"; then +- test -d "$1/."; +- else +- case $1 in #( +- -*)set "./$1";; +- esac; +- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( +- ???[sx]*):;;*)false;;esac;fi +- '\'' sh +- ' +-fi +-as_executable_p=$as_test_x +- +-# Sed expression to map a string onto a valid CPP name. +-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +- +-# Sed expression to map a string onto a valid variable name. +-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +- +- +- +-# Check that we are running under the correct shell. +-SHELL=${CONFIG_SHELL-/bin/sh} +- +-case X$lt_ECHO in +-X*--fallback-echo) +- # Remove one level of quotation (which was required for Make). +- ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` +- ;; +-esac +- +-ECHO=${lt_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 <<_LT_EOF +-$* +-_LT_EOF +- exit 0 +-fi +- +-# 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 +- +-if test -z "$lt_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 && +- { 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. +-lt_ECHO=$ECHO +-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then +- lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +-fi +- +- +- +- +-test -n "$DJDIR" || exec 7<&0 &1 +- +-# Name of the host. +-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +-# so uname gets run too. +-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` +- +-# +-# Initializations. +-# +-ac_default_prefix=/usr/local +-ac_clean_files= +-ac_config_libobj_dir=. +-LIBOBJS= +-cross_compiling=no +-subdirs= +-MFLAGS= +-MAKEFLAGS= +- +-# Identity of this package. +-PACKAGE_NAME= +-PACKAGE_TARNAME= +-PACKAGE_VERSION= +-PACKAGE_STRING= +-PACKAGE_BUGREPORT= +-PACKAGE_URL= +- +-ac_unique_file="configure.in" +-# Factoring default headers for most tests. +-ac_includes_default="\ +-#include +-#ifdef HAVE_SYS_TYPES_H +-# include +-#endif +-#ifdef HAVE_SYS_STAT_H +-# include +-#endif +-#ifdef STDC_HEADERS +-# include +-# include +-#else +-# ifdef HAVE_STDLIB_H +-# include +-# endif +-#endif +-#ifdef HAVE_STRING_H +-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +-# include +-# endif +-# include +-#endif +-#ifdef HAVE_STRINGS_H +-# include +-#endif +-#ifdef HAVE_INTTYPES_H +-# include +-#endif +-#ifdef HAVE_STDINT_H +-# include +-#endif +-#ifdef HAVE_UNISTD_H +-# include +-#endif" +- +-ac_subst_vars='am__EXEEXT_FALSE +-am__EXEEXT_TRUE +-LTLIBOBJS +-LIBOBJS +-OTOOL64 +-OTOOL +-LIPO +-NMEDIT +-DSYMUTIL +-lt_ECHO +-RANLIB +-AR +-OBJDUMP +-LN_S +-NM +-ac_ct_DUMPBIN +-DUMPBIN +-LD +-FGREP +-host_os +-host_vendor +-host_cpu +-host +-build_os +-build_vendor +-build_cpu +-build +-LIBTOOL +-EGREP +-GREP +-CPP +-BUILD_ROOTLIB_FALSE +-BUILD_ROOTLIB_TRUE +-HAVE_RUBY_FALSE +-HAVE_RUBY_TRUE +-HAVE_PERL_FALSE +-HAVE_PERL_TRUE +-HAVE_PYTHON_FALSE +-HAVE_PYTHON_TRUE +-RUBY +-PERL +-pkgpyexecdir +-pyexecdir +-pkgpythondir +-pythondir +-PYTHON_PLATFORM +-PYTHON_EXEC_PREFIX +-PYTHON_PREFIX +-PYTHON_EXTRA_LDFLAGS +-PYTHON_EXTRA_LIBS +-PYTHON_SITE_PKG +-PYTHON_LDFLAGS +-PYTHON_CPPFLAGS +-PYTHON_VERSION +-PYTHON +-POD2MAN +-SWIG +-SED +-YFLAGS +-YACC +-LEXLIB +-am__fastdepCC_FALSE +-am__fastdepCC_TRUE +-CCDEPMODE +-AMDEPBACKSLASH +-AMDEP_FALSE +-AMDEP_TRUE +-am__quote +-am__include +-DEPDIR +-OBJEXT +-EXEEXT +-ac_ct_CC +-CPPFLAGS +-LDFLAGS +-CFLAGS +-CC +-LEX_OUTPUT_ROOT +-LEX +-am__untar +-am__tar +-AMTAR +-am__leading_dot +-SET_MAKE +-AWK +-mkdir_p +-MKDIR_P +-INSTALL_STRIP_PROGRAM +-STRIP +-install_sh +-MAKEINFO +-AUTOHEADER +-AUTOMAKE +-AUTOCONF +-ACLOCAL +-VERSION +-PACKAGE +-CYGPATH_W +-am__isrc +-INSTALL_DATA +-INSTALL_SCRIPT +-INSTALL_PROGRAM +-target_alias +-host_alias +-build_alias +-LIBS +-ECHO_T +-ECHO_N +-ECHO_C +-DEFS +-mandir +-localedir +-libdir +-psdir +-pdfdir +-dvidir +-htmldir +-infodir +-docdir +-oldincludedir +-includedir +-localstatedir +-sharedstatedir +-sysconfdir +-datadir +-datarootdir +-libexecdir +-sbindir +-bindir +-program_transform_name +-prefix +-exec_prefix +-PACKAGE_URL +-PACKAGE_BUGREPORT +-PACKAGE_STRING +-PACKAGE_VERSION +-PACKAGE_TARNAME +-PACKAGE_NAME +-PATH_SEPARATOR +-SHELL' +-ac_subst_files='' +-ac_user_opts=' +-enable_option_checking +-enable_dependency_tracking +-with_python +-with_perl +-with_ruby +-enable_shared +-enable_static +-with_pic +-enable_fast_install +-with_gnu_ld +-enable_libtool_lock +-' +- ac_precious_vars='build_alias +-host_alias +-target_alias +-CC +-CFLAGS +-LDFLAGS +-LIBS +-CPPFLAGS +-YACC +-YFLAGS +-PYTHON_VERSION +-CPP' +- +- +-# Initialize some variables set by options. +-ac_init_help= +-ac_init_version=false +-ac_unrecognized_opts= +-ac_unrecognized_sep= +-# The variables have the same names as the options, with +-# dashes changed to underlines. +-cache_file=/dev/null +-exec_prefix=NONE +-no_create= +-no_recursion= +-prefix=NONE +-program_prefix=NONE +-program_suffix=NONE +-program_transform_name=s,x,x, +-silent= +-site= +-srcdir= +-verbose= +-x_includes=NONE +-x_libraries=NONE +- +-# Installation directory options. +-# These are left unexpanded so users can "make install exec_prefix=/foo" +-# and all the variables that are supposed to be based on exec_prefix +-# by default will actually change. +-# Use braces instead of parens because sh, perl, etc. also accept them. +-# (The list follows the same order as the GNU Coding Standards.) +-bindir='${exec_prefix}/bin' +-sbindir='${exec_prefix}/sbin' +-libexecdir='${exec_prefix}/libexec' +-datarootdir='${prefix}/share' +-datadir='${datarootdir}' +-sysconfdir='${prefix}/etc' +-sharedstatedir='${prefix}/com' +-localstatedir='${prefix}/var' +-includedir='${prefix}/include' +-oldincludedir='/usr/include' +-docdir='${datarootdir}/doc/${PACKAGE}' +-infodir='${datarootdir}/info' +-htmldir='${docdir}' +-dvidir='${docdir}' +-pdfdir='${docdir}' +-psdir='${docdir}' +-libdir='${exec_prefix}/lib' +-localedir='${datarootdir}/locale' +-mandir='${datarootdir}/man' +- +-ac_prev= +-ac_dashdash= +-for ac_option +-do +- # If the previous option needs an argument, assign it. +- if test -n "$ac_prev"; then +- eval $ac_prev=\$ac_option +- ac_prev= +- continue +- fi +- +- case $ac_option in +- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; +- *=) ac_optarg= ;; +- *) ac_optarg=yes ;; +- esac +- +- # Accept the important Cygnus configure options, so we can diagnose typos. +- +- case $ac_dashdash$ac_option in +- --) +- ac_dashdash=yes ;; +- +- -bindir | --bindir | --bindi | --bind | --bin | --bi) +- ac_prev=bindir ;; +- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) +- bindir=$ac_optarg ;; +- +- -build | --build | --buil | --bui | --bu) +- ac_prev=build_alias ;; +- -build=* | --build=* | --buil=* | --bui=* | --bu=*) +- build_alias=$ac_optarg ;; +- +- -cache-file | --cache-file | --cache-fil | --cache-fi \ +- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) +- ac_prev=cache_file ;; +- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ +- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) +- cache_file=$ac_optarg ;; +- +- --config-cache | -C) +- cache_file=config.cache ;; +- +- -datadir | --datadir | --datadi | --datad) +- ac_prev=datadir ;; +- -datadir=* | --datadir=* | --datadi=* | --datad=*) +- datadir=$ac_optarg ;; +- +- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ +- | --dataroo | --dataro | --datar) +- ac_prev=datarootdir ;; +- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ +- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) +- datarootdir=$ac_optarg ;; +- +- -disable-* | --disable-*) +- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` +- # Reject names that are not valid shell variable names. +- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && +- as_fn_error $? "invalid feature name: $ac_useropt" +- ac_useropt_orig=$ac_useropt +- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` +- case $ac_user_opts in +- *" +-"enable_$ac_useropt" +-"*) ;; +- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" +- ac_unrecognized_sep=', ';; +- esac +- eval enable_$ac_useropt=no ;; +- +- -docdir | --docdir | --docdi | --doc | --do) +- ac_prev=docdir ;; +- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) +- docdir=$ac_optarg ;; +- +- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) +- ac_prev=dvidir ;; +- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) +- dvidir=$ac_optarg ;; +- +- -enable-* | --enable-*) +- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` +- # Reject names that are not valid shell variable names. +- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && +- as_fn_error $? "invalid feature name: $ac_useropt" +- ac_useropt_orig=$ac_useropt +- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` +- case $ac_user_opts in +- *" +-"enable_$ac_useropt" +-"*) ;; +- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" +- ac_unrecognized_sep=', ';; +- esac +- eval enable_$ac_useropt=\$ac_optarg ;; +- +- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ +- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ +- | --exec | --exe | --ex) +- ac_prev=exec_prefix ;; +- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ +- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ +- | --exec=* | --exe=* | --ex=*) +- exec_prefix=$ac_optarg ;; +- +- -gas | --gas | --ga | --g) +- # Obsolete; use --with-gas. +- with_gas=yes ;; +- +- -help | --help | --hel | --he | -h) +- ac_init_help=long ;; +- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) +- ac_init_help=recursive ;; +- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) +- ac_init_help=short ;; +- +- -host | --host | --hos | --ho) +- ac_prev=host_alias ;; +- -host=* | --host=* | --hos=* | --ho=*) +- host_alias=$ac_optarg ;; +- +- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) +- ac_prev=htmldir ;; +- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ +- | --ht=*) +- htmldir=$ac_optarg ;; +- +- -includedir | --includedir | --includedi | --included | --include \ +- | --includ | --inclu | --incl | --inc) +- ac_prev=includedir ;; +- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ +- | --includ=* | --inclu=* | --incl=* | --inc=*) +- includedir=$ac_optarg ;; +- +- -infodir | --infodir | --infodi | --infod | --info | --inf) +- ac_prev=infodir ;; +- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) +- infodir=$ac_optarg ;; +- +- -libdir | --libdir | --libdi | --libd) +- ac_prev=libdir ;; +- -libdir=* | --libdir=* | --libdi=* | --libd=*) +- libdir=$ac_optarg ;; +- +- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ +- | --libexe | --libex | --libe) +- ac_prev=libexecdir ;; +- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ +- | --libexe=* | --libex=* | --libe=*) +- libexecdir=$ac_optarg ;; +- +- -localedir | --localedir | --localedi | --localed | --locale) +- ac_prev=localedir ;; +- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) +- localedir=$ac_optarg ;; +- +- -localstatedir | --localstatedir | --localstatedi | --localstated \ +- | --localstate | --localstat | --localsta | --localst | --locals) +- ac_prev=localstatedir ;; +- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ +- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) +- localstatedir=$ac_optarg ;; +- +- -mandir | --mandir | --mandi | --mand | --man | --ma | --m) +- ac_prev=mandir ;; +- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) +- mandir=$ac_optarg ;; +- +- -nfp | --nfp | --nf) +- # Obsolete; use --without-fp. +- with_fp=no ;; +- +- -no-create | --no-create | --no-creat | --no-crea | --no-cre \ +- | --no-cr | --no-c | -n) +- no_create=yes ;; +- +- -no-recursion | --no-recursion | --no-recursio | --no-recursi \ +- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) +- no_recursion=yes ;; +- +- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ +- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ +- | --oldin | --oldi | --old | --ol | --o) +- ac_prev=oldincludedir ;; +- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ +- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ +- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) +- oldincludedir=$ac_optarg ;; +- +- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) +- ac_prev=prefix ;; +- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) +- prefix=$ac_optarg ;; +- +- -program-prefix | --program-prefix | --program-prefi | --program-pref \ +- | --program-pre | --program-pr | --program-p) +- ac_prev=program_prefix ;; +- -program-prefix=* | --program-prefix=* | --program-prefi=* \ +- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) +- program_prefix=$ac_optarg ;; +- +- -program-suffix | --program-suffix | --program-suffi | --program-suff \ +- | --program-suf | --program-su | --program-s) +- ac_prev=program_suffix ;; +- -program-suffix=* | --program-suffix=* | --program-suffi=* \ +- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) +- program_suffix=$ac_optarg ;; +- +- -program-transform-name | --program-transform-name \ +- | --program-transform-nam | --program-transform-na \ +- | --program-transform-n | --program-transform- \ +- | --program-transform | --program-transfor \ +- | --program-transfo | --program-transf \ +- | --program-trans | --program-tran \ +- | --progr-tra | --program-tr | --program-t) +- ac_prev=program_transform_name ;; +- -program-transform-name=* | --program-transform-name=* \ +- | --program-transform-nam=* | --program-transform-na=* \ +- | --program-transform-n=* | --program-transform-=* \ +- | --program-transform=* | --program-transfor=* \ +- | --program-transfo=* | --program-transf=* \ +- | --program-trans=* | --program-tran=* \ +- | --progr-tra=* | --program-tr=* | --program-t=*) +- program_transform_name=$ac_optarg ;; +- +- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) +- ac_prev=pdfdir ;; +- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) +- pdfdir=$ac_optarg ;; +- +- -psdir | --psdir | --psdi | --psd | --ps) +- ac_prev=psdir ;; +- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) +- psdir=$ac_optarg ;; +- +- -q | -quiet | --quiet | --quie | --qui | --qu | --q \ +- | -silent | --silent | --silen | --sile | --sil) +- silent=yes ;; +- +- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) +- ac_prev=sbindir ;; +- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ +- | --sbi=* | --sb=*) +- sbindir=$ac_optarg ;; +- +- -sharedstatedir | --sharedstatedir | --sharedstatedi \ +- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ +- | --sharedst | --shareds | --shared | --share | --shar \ +- | --sha | --sh) +- ac_prev=sharedstatedir ;; +- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ +- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ +- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ +- | --sha=* | --sh=*) +- sharedstatedir=$ac_optarg ;; +- +- -site | --site | --sit) +- ac_prev=site ;; +- -site=* | --site=* | --sit=*) +- site=$ac_optarg ;; +- +- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) +- ac_prev=srcdir ;; +- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) +- srcdir=$ac_optarg ;; +- +- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ +- | --syscon | --sysco | --sysc | --sys | --sy) +- ac_prev=sysconfdir ;; +- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ +- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) +- sysconfdir=$ac_optarg ;; +- +- -target | --target | --targe | --targ | --tar | --ta | --t) +- ac_prev=target_alias ;; +- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) +- target_alias=$ac_optarg ;; +- +- -v | -verbose | --verbose | --verbos | --verbo | --verb) +- verbose=yes ;; +- +- -version | --version | --versio | --versi | --vers | -V) +- ac_init_version=: ;; +- +- -with-* | --with-*) +- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` +- # Reject names that are not valid shell variable names. +- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && +- as_fn_error $? "invalid package name: $ac_useropt" +- ac_useropt_orig=$ac_useropt +- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` +- case $ac_user_opts in +- *" +-"with_$ac_useropt" +-"*) ;; +- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" +- ac_unrecognized_sep=', ';; +- esac +- eval with_$ac_useropt=\$ac_optarg ;; +- +- -without-* | --without-*) +- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` +- # Reject names that are not valid shell variable names. +- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && +- as_fn_error $? "invalid package name: $ac_useropt" +- ac_useropt_orig=$ac_useropt +- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` +- case $ac_user_opts in +- *" +-"with_$ac_useropt" +-"*) ;; +- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" +- ac_unrecognized_sep=', ';; +- esac +- eval with_$ac_useropt=no ;; +- +- --x) +- # Obsolete; use --with-x. +- with_x=yes ;; +- +- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ +- | --x-incl | --x-inc | --x-in | --x-i) +- ac_prev=x_includes ;; +- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ +- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) +- x_includes=$ac_optarg ;; +- +- -x-libraries | --x-libraries | --x-librarie | --x-librari \ +- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) +- ac_prev=x_libraries ;; +- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ +- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) +- x_libraries=$ac_optarg ;; +- +- -*) as_fn_error $? "unrecognized option: \`$ac_option' +-Try \`$0 --help' for more information" +- ;; +- +- *=*) +- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` +- # Reject names that are not valid shell variable names. +- case $ac_envvar in #( +- '' | [0-9]* | *[!_$as_cr_alnum]* ) +- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; +- esac +- eval $ac_envvar=\$ac_optarg +- export $ac_envvar ;; +- +- *) +- # FIXME: should be removed in autoconf 3.0. +- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 +- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && +- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 +- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} +- ;; +- +- esac +-done +- +-if test -n "$ac_prev"; then +- ac_option=--`echo $ac_prev | sed 's/_/-/g'` +- as_fn_error $? "missing argument to $ac_option" +-fi +- +-if test -n "$ac_unrecognized_opts"; then +- case $enable_option_checking in +- no) ;; +- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; +- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; +- esac +-fi +- +-# Check all directory arguments for consistency. +-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ +- datadir sysconfdir sharedstatedir localstatedir includedir \ +- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ +- libdir localedir mandir +-do +- eval ac_val=\$$ac_var +- # Remove trailing slashes. +- case $ac_val in +- */ ) +- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` +- eval $ac_var=\$ac_val;; +- esac +- # Be sure to have absolute directory names. +- case $ac_val in +- [\\/$]* | ?:[\\/]* ) continue;; +- NONE | '' ) case $ac_var in *prefix ) continue;; esac;; +- esac +- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +-done +- +-# There might be people who depend on the old broken behavior: `$host' +-# used to hold the argument of --host etc. +-# FIXME: To remove some day. +-build=$build_alias +-host=$host_alias +-target=$target_alias +- +-# FIXME: To remove some day. +-if test "x$host_alias" != x; then +- if test "x$build_alias" = x; then +- cross_compiling=maybe +- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. +- If a cross compiler is detected then cross compile mode will be used" >&2 +- elif test "x$build_alias" != "x$host_alias"; then +- cross_compiling=yes +- fi +-fi +- +-ac_tool_prefix= +-test -n "$host_alias" && ac_tool_prefix=$host_alias- +- +-test "$silent" = yes && exec 6>/dev/null +- +- +-ac_pwd=`pwd` && test -n "$ac_pwd" && +-ac_ls_di=`ls -di .` && +-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || +- as_fn_error $? "working directory cannot be determined" +-test "X$ac_ls_di" = "X$ac_pwd_ls_di" || +- as_fn_error $? "pwd does not report name of working directory" +- +- +-# Find the source files, if location was not specified. +-if test -z "$srcdir"; then +- ac_srcdir_defaulted=yes +- # Try the directory containing this script, then the parent directory. +- ac_confdir=`$as_dirname -- "$as_myself" || +-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_myself" : 'X\(//\)[^/]' \| \ +- X"$as_myself" : 'X\(//\)$' \| \ +- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +-$as_echo X"$as_myself" | +- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)[^/].*/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)$/{ +- s//\1/ +- q +- } +- /^X\(\/\).*/{ +- s//\1/ +- q +- } +- s/.*/./; q'` +- srcdir=$ac_confdir +- if test ! -r "$srcdir/$ac_unique_file"; then +- srcdir=.. +- fi +-else +- ac_srcdir_defaulted=no +-fi +-if test ! -r "$srcdir/$ac_unique_file"; then +- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." +- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +-fi +-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +-ac_abs_confdir=`( +- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" +- pwd)` +-# When building in place, set srcdir=. +-if test "$ac_abs_confdir" = "$ac_pwd"; then +- srcdir=. +-fi +-# Remove unnecessary trailing slashes from srcdir. +-# Double slashes in file names in object file debugging info +-# mess up M-x gdb in Emacs. +-case $srcdir in +-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +-esac +-for ac_var in $ac_precious_vars; do +- eval ac_env_${ac_var}_set=\${${ac_var}+set} +- eval ac_env_${ac_var}_value=\$${ac_var} +- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} +- eval ac_cv_env_${ac_var}_value=\$${ac_var} +-done +- +-# +-# Report the --help message. +-# +-if test "$ac_init_help" = "long"; then +- # Omit some internal or obsolete options to make the list less imposing. +- # This message is too long to be a string in the A/UX 3.1 sh. +- cat <<_ACEOF +-\`configure' configures this package to adapt to many kinds of systems. +- +-Usage: $0 [OPTION]... [VAR=VALUE]... +- +-To assign environment variables (e.g., CC, CFLAGS...), specify them as +-VAR=VALUE. See below for descriptions of some of the useful variables. +- +-Defaults for the options are specified in brackets. +- +-Configuration: +- -h, --help display this help and exit +- --help=short display options specific to this package +- --help=recursive display the short help of all the included packages +- -V, --version display version information and exit +- -q, --quiet, --silent do not print \`checking ...' messages +- --cache-file=FILE cache test results in FILE [disabled] +- -C, --config-cache alias for \`--cache-file=config.cache' +- -n, --no-create do not create output files +- --srcdir=DIR find the sources in DIR [configure dir or \`..'] +- +-Installation directories: +- --prefix=PREFIX install architecture-independent files in PREFIX +- [$ac_default_prefix] +- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX +- [PREFIX] +- +-By default, \`make install' will install all the files in +-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +-an installation prefix other than \`$ac_default_prefix' using \`--prefix', +-for instance \`--prefix=\$HOME'. +- +-For better control, use the options below. +- +-Fine tuning of the installation directories: +- --bindir=DIR user executables [EPREFIX/bin] +- --sbindir=DIR system admin executables [EPREFIX/sbin] +- --libexecdir=DIR program executables [EPREFIX/libexec] +- --sysconfdir=DIR read-only single-machine data [PREFIX/etc] +- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] +- --localstatedir=DIR modifiable single-machine data [PREFIX/var] +- --libdir=DIR object code libraries [EPREFIX/lib] +- --includedir=DIR C header files [PREFIX/include] +- --oldincludedir=DIR C header files for non-gcc [/usr/include] +- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] +- --datadir=DIR read-only architecture-independent data [DATAROOTDIR] +- --infodir=DIR info documentation [DATAROOTDIR/info] +- --localedir=DIR locale-dependent data [DATAROOTDIR/locale] +- --mandir=DIR man documentation [DATAROOTDIR/man] +- --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] +- --htmldir=DIR html documentation [DOCDIR] +- --dvidir=DIR dvi documentation [DOCDIR] +- --pdfdir=DIR pdf documentation [DOCDIR] +- --psdir=DIR ps documentation [DOCDIR] +-_ACEOF +- +- cat <<\_ACEOF +- +-Program names: +- --program-prefix=PREFIX prepend PREFIX to installed program names +- --program-suffix=SUFFIX append SUFFIX to installed program names +- --program-transform-name=PROGRAM run sed PROGRAM on installed program names +- +-System types: +- --build=BUILD configure for building on BUILD [guessed] +- --host=HOST cross-compile to build programs to run on HOST [BUILD] +-_ACEOF +-fi +- +-if test -n "$ac_init_help"; then +- +- cat <<\_ACEOF +- +-Optional Features: +- --disable-option-checking ignore unrecognized --enable/--with options +- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) +- --enable-FEATURE[=ARG] include FEATURE [ARG=yes] +- --disable-dependency-tracking speeds up one-time build +- --enable-dependency-tracking do not reject slow dependency extractors +- --enable-shared[=PKGS] build shared libraries [default=yes] +- --enable-static[=PKGS] build static libraries [default=yes] +- --enable-fast-install[=PKGS] +- optimize for fast installation [default=yes] +- --disable-libtool-lock avoid locking (might break parallel builds) +- +-Optional Packages: +- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] +- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) +- --with-python enable the python wrapper [default=no] +- --with-perl enable the perl wrapper [default=no] +- --with-ruby enable the ruby wrapper [default=no] +- --with-pic try to use only PIC/non-PIC objects [default=use +- both] +- --with-gnu-ld assume the C compiler uses GNU ld [default=no] +- +-Some influential environment variables: +- CC C compiler command +- CFLAGS C compiler flags +- LDFLAGS linker flags, e.g. -L if you have libraries in a +- nonstandard directory +- LIBS libraries to pass to the linker, e.g. -l +- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if +- you have headers in a nonstandard directory +- YACC The `Yet Another C Compiler' implementation to use. Defaults to +- the first program found out of: `bison -y', `byacc', `yacc'. +- YFLAGS The list of arguments that will be passed by default to $YACC. +- This script will default YFLAGS to the empty string to avoid a +- default value of `-d' given by some make applications. +- PYTHON_VERSION +- The installed Python version to use, for example '2.3'. This +- string will be appended to the Python interpreter canonical +- name. +- CPP C preprocessor +- +-Use these variables to override the choices made by `configure' or to help +-it to find libraries and programs with nonstandard names/locations. +- +-Report bugs to the package provider. +-_ACEOF +-ac_status=$? +-fi +- +-if test "$ac_init_help" = "recursive"; then +- # If there are subdirs, report their specific --help. +- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue +- test -d "$ac_dir" || +- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || +- continue +- ac_builddir=. +- +-case "$ac_dir" in +-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +-*) +- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` +- # A ".." for each directory in $ac_dir_suffix. +- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` +- case $ac_top_builddir_sub in +- "") ac_top_builddir_sub=. ac_top_build_prefix= ;; +- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; +- esac ;; +-esac +-ac_abs_top_builddir=$ac_pwd +-ac_abs_builddir=$ac_pwd$ac_dir_suffix +-# for backward compatibility: +-ac_top_builddir=$ac_top_build_prefix +- +-case $srcdir in +- .) # We are building in place. +- ac_srcdir=. +- ac_top_srcdir=$ac_top_builddir_sub +- ac_abs_top_srcdir=$ac_pwd ;; +- [\\/]* | ?:[\\/]* ) # Absolute name. +- ac_srcdir=$srcdir$ac_dir_suffix; +- ac_top_srcdir=$srcdir +- ac_abs_top_srcdir=$srcdir ;; +- *) # Relative name. +- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix +- ac_top_srcdir=$ac_top_build_prefix$srcdir +- ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +-esac +-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix +- +- cd "$ac_dir" || { ac_status=$?; continue; } +- # Check for guested configure. +- if test -f "$ac_srcdir/configure.gnu"; then +- echo && +- $SHELL "$ac_srcdir/configure.gnu" --help=recursive +- elif test -f "$ac_srcdir/configure"; then +- echo && +- $SHELL "$ac_srcdir/configure" --help=recursive +- else +- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 +- fi || ac_status=$? +- cd "$ac_pwd" || { ac_status=$?; break; } +- done +-fi +- +-test -n "$ac_init_help" && exit $ac_status +-if $ac_init_version; then +- cat <<\_ACEOF +-configure +-generated by GNU Autoconf 2.67 +- +-Copyright (C) 2010 Free Software Foundation, Inc. +-This configure script is free software; the Free Software Foundation +-gives unlimited permission to copy, distribute and modify it. +-_ACEOF +- exit +-fi +- +-## ------------------------ ## +-## Autoconf initialization. ## +-## ------------------------ ## +- +-# ac_fn_c_try_compile LINENO +-# -------------------------- +-# Try to compile conftest.$ac_ext, and return whether this succeeded. +-ac_fn_c_try_compile () +-{ +- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- rm -f conftest.$ac_objext +- if { { ac_try="$ac_compile" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_compile") 2>conftest.err +- ac_status=$? +- if test -s conftest.err; then +- grep -v '^ *+' conftest.err >conftest.er1 +- cat conftest.er1 >&5 +- mv -f conftest.er1 conftest.err +- fi +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } && { +- test -z "$ac_c_werror_flag" || +- test ! -s conftest.err +- } && test -s conftest.$ac_objext; then : +- ac_retval=0 +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_retval=1 +-fi +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- as_fn_set_status $ac_retval +- +-} # ac_fn_c_try_compile +- +-# ac_fn_c_try_link LINENO +-# ----------------------- +-# Try to link conftest.$ac_ext, and return whether this succeeded. +-ac_fn_c_try_link () +-{ +- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- rm -f conftest.$ac_objext conftest$ac_exeext +- if { { ac_try="$ac_link" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_link") 2>conftest.err +- ac_status=$? +- if test -s conftest.err; then +- grep -v '^ *+' conftest.err >conftest.er1 +- cat conftest.er1 >&5 +- mv -f conftest.er1 conftest.err +- fi +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } && { +- test -z "$ac_c_werror_flag" || +- test ! -s conftest.err +- } && test -s conftest$ac_exeext && { +- test "$cross_compiling" = yes || +- $as_test_x conftest$ac_exeext +- }; then : +- ac_retval=0 +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_retval=1 +-fi +- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information +- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would +- # interfere with the next link command; also delete a directory that is +- # left behind by Apple's compiler. We do this before executing the actions. +- rm -rf conftest.dSYM conftest_ipa8_conftest.oo +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- as_fn_set_status $ac_retval +- +-} # ac_fn_c_try_link +- +-# ac_fn_c_try_cpp LINENO +-# ---------------------- +-# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +-ac_fn_c_try_cpp () +-{ +- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- if { { ac_try="$ac_cpp conftest.$ac_ext" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err +- ac_status=$? +- if test -s conftest.err; then +- grep -v '^ *+' conftest.err >conftest.er1 +- cat conftest.er1 >&5 +- mv -f conftest.er1 conftest.err +- fi +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } > conftest.i && { +- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || +- test ! -s conftest.err +- }; then : +- ac_retval=0 +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_retval=1 +-fi +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- as_fn_set_status $ac_retval +- +-} # ac_fn_c_try_cpp +- +-# ac_fn_c_try_run LINENO +-# ---------------------- +-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +-# that executables *can* be run. +-ac_fn_c_try_run () +-{ +- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- if { { ac_try="$ac_link" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_link") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' +- { { case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_try") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; }; then : +- ac_retval=0 +-else +- $as_echo "$as_me: program exited with status $ac_status" >&5 +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_retval=$ac_status +-fi +- rm -rf conftest.dSYM conftest_ipa8_conftest.oo +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- as_fn_set_status $ac_retval +- +-} # ac_fn_c_try_run +- +-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +-# ------------------------------------------------------- +-# Tests whether HEADER exists, giving a warning if it cannot be compiled using +-# the include files in INCLUDES and setting the cache variable VAR +-# accordingly. +-ac_fn_c_check_header_mongrel () +-{ +- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- if eval "test \"\${$3+set}\"" = set; then : +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +-$as_echo_n "checking for $2... " >&6; } +-if eval "test \"\${$3+set}\"" = set; then : +- $as_echo_n "(cached) " >&6 +-fi +-eval ac_res=\$$3 +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-else +- # Is the header compilable? +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +-$as_echo_n "checking $2 usability... " >&6; } +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-$4 +-#include <$2> +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- ac_header_compiler=yes +-else +- ac_header_compiler=no +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +-$as_echo "$ac_header_compiler" >&6; } +- +-# Is the header present? +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +-$as_echo_n "checking $2 presence... " >&6; } +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <$2> +-_ACEOF +-if ac_fn_c_try_cpp "$LINENO"; then : +- ac_header_preproc=yes +-else +- ac_header_preproc=no +-fi +-rm -f conftest.err conftest.i conftest.$ac_ext +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +-$as_echo "$ac_header_preproc" >&6; } +- +-# So? What about this header? +-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( +- yes:no: ) +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +- ;; +- no:yes:* ) +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +- ;; +-esac +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +-$as_echo_n "checking for $2... " >&6; } +-if eval "test \"\${$3+set}\"" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- eval "$3=\$ac_header_compiler" +-fi +-eval ac_res=\$$3 +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-fi +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- +-} # ac_fn_c_check_header_mongrel +- +-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +-# ------------------------------------------------------- +-# Tests whether HEADER exists and can be compiled using the include files in +-# INCLUDES, setting the cache variable VAR accordingly. +-ac_fn_c_check_header_compile () +-{ +- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +-$as_echo_n "checking for $2... " >&6; } +-if eval "test \"\${$3+set}\"" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-$4 +-#include <$2> +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- eval "$3=yes" +-else +- eval "$3=no" +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +-eval ac_res=\$$3 +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- +-} # ac_fn_c_check_header_compile +- +-# ac_fn_c_check_func LINENO FUNC VAR +-# ---------------------------------- +-# Tests whether FUNC exists, setting the cache variable VAR accordingly +-ac_fn_c_check_func () +-{ +- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +-$as_echo_n "checking for $2... " >&6; } +-if eval "test \"\${$3+set}\"" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-/* Define $2 to an innocuous variant, in case declares $2. +- For example, HP-UX 11i declares gettimeofday. */ +-#define $2 innocuous_$2 +- +-/* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $2 (); below. +- Prefer to if __STDC__ is defined, since +- exists even on freestanding compilers. */ +- +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- +-#undef $2 +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char $2 (); +-/* The GNU C library defines this for functions which it implements +- to always fail with ENOSYS. Some functions are actually named +- something starting with __ and the normal name is an alias. */ +-#if defined __stub_$2 || defined __stub___$2 +-choke me +-#endif +- +-int +-main () +-{ +-return $2 (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- eval "$3=yes" +-else +- eval "$3=no" +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-fi +-eval ac_res=\$$3 +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} +- +-} # ac_fn_c_check_func +-cat >config.log <<_ACEOF +-This file contains any messages produced by compilers while +-running configure, to aid debugging if configure makes a mistake. +- +-It was created by $as_me, which was +-generated by GNU Autoconf 2.67. Invocation command line was +- +- $ $0 $@ +- +-_ACEOF +-exec 5>>config.log +-{ +-cat <<_ASUNAME +-## --------- ## +-## Platform. ## +-## --------- ## +- +-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +-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 || echo unknown` +-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` +- +-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` +- +-_ASUNAME +- +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- $as_echo "PATH: $as_dir" +- done +-IFS=$as_save_IFS +- +-} >&5 +- +-cat >&5 <<_ACEOF +- +- +-## ----------- ## +-## Core tests. ## +-## ----------- ## +- +-_ACEOF +- +- +-# Keep a trace of the command line. +-# Strip out --no-create and --no-recursion so they do not pile up. +-# Strip out --silent because we don't want to record it for future runs. +-# Also quote any args containing shell meta-characters. +-# Make two passes to allow for proper duplicate-argument suppression. +-ac_configure_args= +-ac_configure_args0= +-ac_configure_args1= +-ac_must_keep_next=false +-for ac_pass in 1 2 +-do +- for ac_arg +- do +- case $ac_arg in +- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; +- -q | -quiet | --quiet | --quie | --qui | --qu | --q \ +- | -silent | --silent | --silen | --sile | --sil) +- continue ;; +- *\'*) +- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; +- esac +- case $ac_pass in +- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; +- 2) +- as_fn_append ac_configure_args1 " '$ac_arg'" +- if test $ac_must_keep_next = true; then +- ac_must_keep_next=false # Got value, back to normal. +- else +- case $ac_arg in +- *=* | --config-cache | -C | -disable-* | --disable-* \ +- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ +- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ +- | -with-* | --with-* | -without-* | --without-* | --x) +- case "$ac_configure_args0 " in +- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; +- esac +- ;; +- -* ) ac_must_keep_next=true ;; +- esac +- fi +- as_fn_append ac_configure_args " '$ac_arg'" +- ;; +- esac +- done +-done +-{ ac_configure_args0=; unset ac_configure_args0;} +-{ ac_configure_args1=; unset ac_configure_args1;} +- +-# When interrupted or exit'd, cleanup temporary files, and complete +-# config.log. We remove comments because anyway the quotes in there +-# would cause problems or look ugly. +-# WARNING: Use '\'' to represent an apostrophe within the trap. +-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +-trap 'exit_status=$? +- # Save into config.log some information that might help in debugging. +- { +- echo +- +- $as_echo "## ---------------- ## +-## Cache variables. ## +-## ---------------- ##" +- echo +- # The following way of writing the cache mishandles newlines in values, +-( +- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do +- eval ac_val=\$$ac_var +- case $ac_val in #( +- *${as_nl}*) +- case $ac_var in #( +- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; +- esac +- case $ac_var in #( +- _ | IFS | as_nl) ;; #( +- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( +- *) { eval $ac_var=; unset $ac_var;} ;; +- esac ;; +- esac +- done +- (set) 2>&1 | +- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( +- *${as_nl}ac_space=\ *) +- sed -n \ +- "s/'\''/'\''\\\\'\'''\''/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" +- ;; #( +- *) +- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" +- ;; +- esac | +- sort +-) +- echo +- +- $as_echo "## ----------------- ## +-## Output variables. ## +-## ----------------- ##" +- echo +- for ac_var in $ac_subst_vars +- do +- eval ac_val=\$$ac_var +- case $ac_val in +- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; +- esac +- $as_echo "$ac_var='\''$ac_val'\''" +- done | sort +- echo +- +- if test -n "$ac_subst_files"; then +- $as_echo "## ------------------- ## +-## File substitutions. ## +-## ------------------- ##" +- echo +- for ac_var in $ac_subst_files +- do +- eval ac_val=\$$ac_var +- case $ac_val in +- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; +- esac +- $as_echo "$ac_var='\''$ac_val'\''" +- done | sort +- echo +- fi +- +- if test -s confdefs.h; then +- $as_echo "## ----------- ## +-## confdefs.h. ## +-## ----------- ##" +- echo +- cat confdefs.h +- echo +- fi +- test "$ac_signal" != 0 && +- $as_echo "$as_me: caught signal $ac_signal" +- $as_echo "$as_me: exit $exit_status" +- } >&5 +- rm -f core *.core core.conftest.* && +- rm -f -r conftest* confdefs* conf$$* $ac_clean_files && +- exit $exit_status +-' 0 +-for ac_signal in 1 2 13 15; do +- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +-done +-ac_signal=0 +- +-# confdefs.h avoids OS command line length limits that DEFS can exceed. +-rm -f -r conftest* confdefs.h +- +-$as_echo "/* confdefs.h */" > confdefs.h +- +-# Predefined preprocessor variables. +- +-cat >>confdefs.h <<_ACEOF +-#define PACKAGE_NAME "$PACKAGE_NAME" +-_ACEOF +- +-cat >>confdefs.h <<_ACEOF +-#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +-_ACEOF +- +-cat >>confdefs.h <<_ACEOF +-#define PACKAGE_VERSION "$PACKAGE_VERSION" +-_ACEOF +- +-cat >>confdefs.h <<_ACEOF +-#define PACKAGE_STRING "$PACKAGE_STRING" +-_ACEOF +- +-cat >>confdefs.h <<_ACEOF +-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +-_ACEOF +- +-cat >>confdefs.h <<_ACEOF +-#define PACKAGE_URL "$PACKAGE_URL" +-_ACEOF +- +- +-# Let the site file select an alternate cache file if it wants to. +-# Prefer an explicitly selected file to automatically selected ones. +-ac_site_file1=NONE +-ac_site_file2=NONE +-if test -n "$CONFIG_SITE"; then +- # We do not want a PATH search for config.site. +- case $CONFIG_SITE in #(( +- -*) ac_site_file1=./$CONFIG_SITE;; +- */*) ac_site_file1=$CONFIG_SITE;; +- *) ac_site_file1=./$CONFIG_SITE;; +- esac +-elif test "x$prefix" != xNONE; then +- ac_site_file1=$prefix/share/config.site +- ac_site_file2=$prefix/etc/config.site +-else +- ac_site_file1=$ac_default_prefix/share/config.site +- ac_site_file2=$ac_default_prefix/etc/config.site +-fi +-for ac_site_file in "$ac_site_file1" "$ac_site_file2" +-do +- test "x$ac_site_file" = xNONE && continue +- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +-$as_echo "$as_me: loading site script $ac_site_file" >&6;} +- sed 's/^/| /' "$ac_site_file" >&5 +- . "$ac_site_file" \ +- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "failed to load site script $ac_site_file +-See \`config.log' for more details" "$LINENO" 5 ; } +- fi +-done +- +-if test -r "$cache_file"; then +- # Some versions of bash will fail to source /dev/null (special files +- # actually), so we avoid doing that. DJGPP emulates it as a regular file. +- if test /dev/null != "$cache_file" && test -f "$cache_file"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +-$as_echo "$as_me: loading cache $cache_file" >&6;} +- case $cache_file in +- [\\/]* | ?:[\\/]* ) . "$cache_file";; +- *) . "./$cache_file";; +- esac +- fi +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +-$as_echo "$as_me: creating cache $cache_file" >&6;} +- >$cache_file +-fi +- +-# Check that the precious variables saved in the cache have kept the same +-# value. +-ac_cache_corrupted=false +-for ac_var in $ac_precious_vars; do +- eval ac_old_set=\$ac_cv_env_${ac_var}_set +- eval ac_new_set=\$ac_env_${ac_var}_set +- eval ac_old_val=\$ac_cv_env_${ac_var}_value +- eval ac_new_val=\$ac_env_${ac_var}_value +- case $ac_old_set,$ac_new_set in +- set,) +- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} +- ac_cache_corrupted=: ;; +- ,set) +- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} +- ac_cache_corrupted=: ;; +- ,);; +- *) +- if test "x$ac_old_val" != "x$ac_new_val"; then +- # differences in whitespace do not lead to failure. +- ac_old_val_w=`echo x $ac_old_val` +- ac_new_val_w=`echo x $ac_new_val` +- if test "$ac_old_val_w" != "$ac_new_val_w"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} +- ac_cache_corrupted=: +- else +- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} +- eval $ac_var=\$ac_old_val +- fi +- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} +- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} +- fi;; +- esac +- # Pass precious variables to config.status. +- if test "$ac_new_set" = set; then +- case $ac_new_val in +- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; +- *) ac_arg=$ac_var=$ac_new_val ;; +- esac +- case " $ac_configure_args " in +- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. +- *) as_fn_append ac_configure_args " '$ac_arg'" ;; +- esac +- fi +-done +-if $ac_cache_corrupted; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} +- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +-fi +-## -------------------- ## +-## Main body of script. ## +-## -------------------- ## +- +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- +- +-am__api_version='1.11' +- +-ac_aux_dir= +-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do +- if test -f "$ac_dir/install-sh"; then +- ac_aux_dir=$ac_dir +- ac_install_sh="$ac_aux_dir/install-sh -c" +- break +- elif test -f "$ac_dir/install.sh"; then +- ac_aux_dir=$ac_dir +- ac_install_sh="$ac_aux_dir/install.sh -c" +- break +- elif test -f "$ac_dir/shtool"; then +- ac_aux_dir=$ac_dir +- ac_install_sh="$ac_aux_dir/shtool install -c" +- break +- fi +-done +-if test -z "$ac_aux_dir"; then +- as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +-fi +- +-# These three variables are undocumented and unsupported, +-# and are intended to be withdrawn in a future Autoconf release. +-# They can cause serious problems if a builder's source tree is in a directory +-# whose full name contains unusual characters. +-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. +- +- +-# Find a good install program. We prefer a C program (faster), +-# so one script is as good as another. But avoid the broken or +-# incompatible versions: +-# SysV /etc/install, /usr/sbin/install +-# SunOS /usr/etc/install +-# IRIX /sbin/install +-# AIX /bin/install +-# AmigaOS /C/install, which installs bootblocks on floppy discs +-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +-# AFS /usr/afsws/bin/install, which mishandles nonexistent args +-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +-# OS/2's system install, which has a completely different semantic +-# ./install, which can be erroneously created by make from ./install.sh. +-# Reject install programs that cannot install multiple files. +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +-$as_echo_n "checking for a BSD-compatible install... " >&6; } +-if test -z "$INSTALL"; then +-if test "${ac_cv_path_install+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- # Account for people who put trailing slashes in PATH elements. +-case $as_dir/ in #(( +- ./ | .// | /[cC]/* | \ +- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ +- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ +- /usr/ucb/* ) ;; +- *) +- # OSF1 and SCO ODT 3.0 have their own names for install. +- # Don't use installbsd from OSF since it installs stuff as root +- # by default. +- for ac_prog in ginstall scoinst install; do +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then +- if test $ac_prog = install && +- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # AIX install. It has an incompatible calling convention. +- : +- elif test $ac_prog = install && +- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # program-specific install script used by HP pwplus--don't use. +- : +- else +- rm -rf conftest.one conftest.two conftest.dir +- echo one > conftest.one +- echo two > conftest.two +- mkdir conftest.dir +- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && +- test -s conftest.one && test -s conftest.two && +- test -s conftest.dir/conftest.one && +- test -s conftest.dir/conftest.two +- then +- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" +- break 3 +- fi +- fi +- fi +- done +- done +- ;; +-esac +- +- done +-IFS=$as_save_IFS +- +-rm -rf conftest.one conftest.two conftest.dir +- +-fi +- if test "${ac_cv_path_install+set}" = set; then +- INSTALL=$ac_cv_path_install +- else +- # As a last resort, use the slow shell script. Don't cache a +- # value for INSTALL within a source directory, because that will +- # break other packages using the cache if that directory is +- # removed, or if the value is a relative name. +- INSTALL=$ac_install_sh +- fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +-$as_echo "$INSTALL" >&6; } +- +-# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +-# It thinks the first close brace ends the variable substitution. +-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' +- +-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' +- +-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +-$as_echo_n "checking whether build environment is sane... " >&6; } +-# Just in case +-sleep 1 +-echo timestamp > conftest.file +-# Reject unsafe characters in $srcdir or the absolute working directory +-# name. Accept space and tab only in the latter. +-am_lf=' +-' +-case `pwd` in +- *[\\\"\#\$\&\'\`$am_lf]*) +- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; +-esac +-case $srcdir in +- *[\\\"\#\$\&\'\`$am_lf\ \ ]*) +- as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; +-esac +- +-# Do `set' in a subshell so we don't clobber the current shell's +-# arguments. Must try -L first in case configure is actually a +-# symlink; some systems play weird games with the mod time of symlinks +-# (eg FreeBSD returns the mod time of the symlink's containing +-# directory). +-if ( +- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` +- if test "$*" = "X"; then +- # -L didn't work. +- set X `ls -t "$srcdir/configure" conftest.file` +- fi +- rm -f conftest.file +- if test "$*" != "X $srcdir/configure conftest.file" \ +- && test "$*" != "X conftest.file $srcdir/configure"; then +- +- # If neither matched, then we have a broken ls. This can happen +- # if, for instance, CONFIG_SHELL is bash and it inherits a +- # broken ls alias from the environment. This has actually +- # happened. Such a system could not be considered "sane". +- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +-alias in your environment" "$LINENO" 5 +- fi +- +- test "$2" = conftest.file +- ) +-then +- # Ok. +- : +-else +- as_fn_error $? "newly created file is older than distributed files! +-Check your system clock" "$LINENO" 5 +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +-test "$program_prefix" != NONE && +- program_transform_name="s&^&$program_prefix&;$program_transform_name" +-# Use a double $ so make ignores it. +-test "$program_suffix" != NONE && +- program_transform_name="s&\$&$program_suffix&;$program_transform_name" +-# Double any \ or $. +-# By default was `s,x,x', remove it if useless. +-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` +- +-# expand $ac_aux_dir to an absolute path +-am_aux_dir=`cd $ac_aux_dir && pwd` +- +-if test x"${MISSING+set}" != xset; then +- case $am_aux_dir in +- *\ * | *\ *) +- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; +- *) +- MISSING="\${SHELL} $am_aux_dir/missing" ;; +- esac +-fi +-# Use eval to expand $SHELL +-if eval "$MISSING --run true"; then +- am_missing_run="$MISSING --run " +-else +- am_missing_run= +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +-fi +- +-if test x"${install_sh}" != xset; then +- case $am_aux_dir in +- *\ * | *\ *) +- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; +- *) +- install_sh="\${SHELL} $am_aux_dir/install-sh" +- esac +-fi +- +-# Installed binaries are usually stripped using `strip' when the user +-# run `make install-strip'. However `strip' might not be the right +-# tool to use in cross-compilation environments, therefore Automake +-# will honor the `STRIP' environment variable to overrule this program. +-if test "$cross_compiling" != no; then +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +-set dummy ${ac_tool_prefix}strip; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_STRIP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$STRIP"; then +- ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_STRIP="${ac_tool_prefix}strip" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-STRIP=$ac_cv_prog_STRIP +-if test -n "$STRIP"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +-$as_echo "$STRIP" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_STRIP"; then +- ac_ct_STRIP=$STRIP +- # Extract the first word of "strip", so it can be a program name with args. +-set dummy strip; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_STRIP"; then +- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_STRIP="strip" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +-if test -n "$ac_ct_STRIP"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +-$as_echo "$ac_ct_STRIP" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_STRIP" = x; then +- STRIP=":" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- STRIP=$ac_ct_STRIP +- fi +-else +- STRIP="$ac_cv_prog_STRIP" +-fi +- +-fi +-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +-if test -z "$MKDIR_P"; then +- if test "${ac_cv_path_mkdir+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_prog in mkdir gmkdir; do +- for ac_exec_ext in '' $ac_executable_extensions; do +- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue +- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( +- 'mkdir (GNU coreutils) '* | \ +- 'mkdir (coreutils) '* | \ +- 'mkdir (fileutils) '4.1*) +- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext +- break 3;; +- esac +- done +- done +- done +-IFS=$as_save_IFS +- +-fi +- +- test -d ./--version && rmdir ./--version +- if test "${ac_cv_path_mkdir+set}" = set; then +- MKDIR_P="$ac_cv_path_mkdir -p" +- else +- # As a last resort, use the slow shell script. Don't cache a +- # value for MKDIR_P within a source directory, because that will +- # break other packages using the cache if that directory is +- # removed, or if the value is a relative name. +- MKDIR_P="$ac_install_sh -d" +- fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +-$as_echo "$MKDIR_P" >&6; } +- +-mkdir_p="$MKDIR_P" +-case $mkdir_p in +- [\\/$]* | ?:[\\/]*) ;; +- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +-esac +- +-for ac_prog in gawk mawk nawk awk +-do +- # Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_AWK+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$AWK"; then +- ac_cv_prog_AWK="$AWK" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_AWK="$ac_prog" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-AWK=$ac_cv_prog_AWK +-if test -n "$AWK"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +-$as_echo "$AWK" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- test -n "$AWK" && break +-done +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +-set x ${MAKE-make} +-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- cat >conftest.make <<\_ACEOF +-SHELL = /bin/sh +-all: +- @echo '@@@%%%=$(MAKE)=@@@%%%' +-_ACEOF +-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +-case `${MAKE-make} -f conftest.make 2>/dev/null` in +- *@@@%%%=?*=@@@%%%*) +- eval ac_cv_prog_make_${ac_make}_set=yes;; +- *) +- eval ac_cv_prog_make_${ac_make}_set=no;; +-esac +-rm -f conftest.make +-fi +-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +- SET_MAKE= +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- SET_MAKE="MAKE=${MAKE-make}" +-fi +- +-rm -rf .tst 2>/dev/null +-mkdir .tst 2>/dev/null +-if test -d .tst; then +- am__leading_dot=. +-else +- am__leading_dot=_ +-fi +-rmdir .tst 2>/dev/null +- +-if test "`cd $srcdir && pwd`" != "`pwd`"; then +- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output +- # is not polluted with repeated "-I." +- am__isrc=' -I$(srcdir)' +- # test to see if srcdir already configured +- if test -f $srcdir/config.status; then +- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 +- fi +-fi +- +-# test whether we have cygpath +-if test -z "$CYGPATH_W"; then +- if (cygpath --version) >/dev/null 2>/dev/null; then +- CYGPATH_W='cygpath -w' +- else +- CYGPATH_W=echo +- fi +-fi +- +- +-# Define the identity of the package. +- PACKAGE=libapparmor1 +- VERSION=2.5.1 +- +- +-cat >>confdefs.h <<_ACEOF +-#define PACKAGE "$PACKAGE" +-_ACEOF +- +- +-cat >>confdefs.h <<_ACEOF +-#define VERSION "$VERSION" +-_ACEOF +- +-# Some tools Automake needs. +- +-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} +- +- +-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} +- +- +-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} +- +- +-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} +- +- +-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} +- +-# We need awk for the "check" target. The system "awk" is bad on +-# some platforms. +-# Always define AMTAR for backward compatibility. +- +-AMTAR=${AMTAR-"${am_missing_run}tar"} +- +-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' +- +- +- +- +- +- +-DEPDIR="${am__leading_dot}deps" +- +-ac_config_commands="$ac_config_commands depfiles" +- +- +-am_make=${MAKE-make} +-cat > confinc << 'END' +-am__doit: +- @echo this is the am__doit target +-.PHONY: am__doit +-END +-# If we don't find an include directive, just comment out the code. +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +-$as_echo_n "checking for style of include used by $am_make... " >&6; } +-am__include="#" +-am__quote= +-_am_result=none +-# First try GNU make style include. +-echo "include confinc" > confmf +-# Ignore all kinds of additional output from `make'. +-case `$am_make -s -f confmf 2> /dev/null` in #( +-*the\ am__doit\ target*) +- am__include=include +- am__quote= +- _am_result=GNU +- ;; +-esac +-# Now try BSD make style include. +-if test "$am__include" = "#"; then +- echo '.include "confinc"' > confmf +- case `$am_make -s -f confmf 2> /dev/null` in #( +- *the\ am__doit\ target*) +- am__include=.include +- am__quote="\"" +- _am_result=BSD +- ;; +- esac +-fi +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +-$as_echo "$_am_result" >&6; } +-rm -f confinc confmf +- +-# Check whether --enable-dependency-tracking was given. +-if test "${enable_dependency_tracking+set}" = set; then : +- enableval=$enable_dependency_tracking; +-fi +- +-if test "x$enable_dependency_tracking" != xno; then +- am_depcomp="$ac_aux_dir/depcomp" +- AMDEPBACKSLASH='\' +-fi +- if test "x$enable_dependency_tracking" != xno; then +- AMDEP_TRUE= +- AMDEP_FALSE='#' +-else +- AMDEP_TRUE='#' +- AMDEP_FALSE= +-fi +- +- +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +-if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +-set dummy ${ac_tool_prefix}gcc; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_CC+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_CC="${ac_tool_prefix}gcc" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-$as_echo "$CC" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_CC"; then +- ac_ct_CC=$CC +- # Extract the first word of "gcc", so it can be a program name with args. +-set dummy gcc; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_CC"; then +- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_CC="gcc" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_CC=$ac_cv_prog_ac_ct_CC +-if test -n "$ac_ct_CC"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +-$as_echo "$ac_ct_CC" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_CC" = x; then +- CC="" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- CC=$ac_ct_CC +- fi +-else +- CC="$ac_cv_prog_CC" +-fi +- +-if test -z "$CC"; then +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +-set dummy ${ac_tool_prefix}cc; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_CC+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_CC="${ac_tool_prefix}cc" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-$as_echo "$CC" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- fi +-fi +-if test -z "$CC"; then +- # Extract the first word of "cc", so it can be a program name with args. +-set dummy cc; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_CC+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. +-else +- ac_prog_rejected=no +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then +- ac_prog_rejected=yes +- continue +- fi +- ac_cv_prog_CC="cc" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-if test $ac_prog_rejected = yes; then +- # We found a bogon in the path, so make sure we never use it. +- set dummy $ac_cv_prog_CC +- shift +- if test $# != 0; then +- # We chose a different compiler from the bogus one. +- # However, it has the same basename, so the bogon will be chosen +- # first if we set CC to just the basename; use the full file name. +- shift +- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" +- fi +-fi +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-$as_echo "$CC" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$CC"; then +- if test -n "$ac_tool_prefix"; then +- for ac_prog in cl.exe +- do +- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +-set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_CC+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_CC="$ac_tool_prefix$ac_prog" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-CC=$ac_cv_prog_CC +-if test -n "$CC"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-$as_echo "$CC" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- test -n "$CC" && break +- done +-fi +-if test -z "$CC"; then +- ac_ct_CC=$CC +- for ac_prog in cl.exe +-do +- # Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_CC"; then +- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_CC="$ac_prog" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_CC=$ac_cv_prog_ac_ct_CC +-if test -n "$ac_ct_CC"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +-$as_echo "$ac_ct_CC" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- test -n "$ac_ct_CC" && break +-done +- +- if test "x$ac_ct_CC" = x; then +- CC="" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- CC=$ac_ct_CC +- fi +-fi +- +-fi +- +- +-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "no acceptable C compiler found in \$PATH +-See \`config.log' for more details" "$LINENO" 5 ; } +- +-# Provide some information about the compiler. +-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +-set X $ac_compile +-ac_compiler=$2 +-for ac_option in --version -v -V -qversion; do +- { { ac_try="$ac_compiler $ac_option >&5" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_compiler $ac_option >&5") 2>conftest.err +- ac_status=$? +- if test -s conftest.err; then +- sed '10a\ +-... rest of stderr output deleted ... +- 10q' conftest.err >conftest.er1 +- cat conftest.er1 >&5 +- fi +- rm -f conftest.er1 conftest.err +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } +-done +- +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-ac_clean_files_save=$ac_clean_files +-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +-# Try to create an executable without -o first, disregard a.out. +-# It will help us diagnose broken compilers, and finding out an intuition +-# of exeext. +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +-$as_echo_n "checking whether the C compiler works... " >&6; } +-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +- +-# The possible output files: +-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" +- +-ac_rmfiles= +-for ac_file in $ac_files +-do +- case $ac_file in +- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; +- * ) ac_rmfiles="$ac_rmfiles $ac_file";; +- esac +-done +-rm -f $ac_rmfiles +- +-if { { ac_try="$ac_link_default" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_link_default") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then : +- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +-# in a Makefile. We should not override ac_cv_exeext if it was cached, +-# so that the user can short-circuit this test for compilers unknown to +-# Autoconf. +-for ac_file in $ac_files '' +-do +- test -f "$ac_file" || continue +- case $ac_file in +- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) +- ;; +- [ab].out ) +- # We found the default executable, but exeext='' is most +- # certainly right. +- break;; +- *.* ) +- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; +- then :; else +- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` +- fi +- # We set ac_cv_exeext here because the later test for it is not +- # safe: cross compilers may not add the suffix if given an `-o' +- # argument, so we may need to know it at that point already. +- # Even if this section looks crufty: it has the advantage of +- # actually working. +- break;; +- * ) +- break;; +- esac +-done +-test "$ac_cv_exeext" = no && ac_cv_exeext= +- +-else +- ac_file='' +-fi +-if test -z "$ac_file"; then : +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-$as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error 77 "C compiler cannot create executables +-See \`config.log' for more details" "$LINENO" 5 ; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +-$as_echo_n "checking for C compiler default output file name... " >&6; } +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +-$as_echo "$ac_file" >&6; } +-ac_exeext=$ac_cv_exeext +- +-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +-ac_clean_files=$ac_clean_files_save +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +-$as_echo_n "checking for suffix of executables... " >&6; } +-if { { ac_try="$ac_link" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_link") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then : +- # If both `conftest.exe' and `conftest' are `present' (well, observable) +-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +-# work properly (i.e., refer to `conftest.exe'), while it won't with +-# `rm'. +-for ac_file in conftest.exe conftest conftest.*; do +- test -f "$ac_file" || continue +- case $ac_file in +- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; +- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` +- break;; +- * ) break;; +- esac +-done +-else +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "cannot compute suffix of executables: cannot compile and link +-See \`config.log' for more details" "$LINENO" 5 ; } +-fi +-rm -f conftest conftest$ac_cv_exeext +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +-$as_echo "$ac_cv_exeext" >&6; } +- +-rm -f conftest.$ac_ext +-EXEEXT=$ac_cv_exeext +-ac_exeext=$EXEEXT +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +-int +-main () +-{ +-FILE *f = fopen ("conftest.out", "w"); +- return ferror (f) || fclose (f) != 0; +- +- ; +- return 0; +-} +-_ACEOF +-ac_clean_files="$ac_clean_files conftest.out" +-# Check that the compiler produces executables we can run. If not, either +-# the compiler is broken, or we cross compile. +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +-$as_echo_n "checking whether we are cross compiling... " >&6; } +-if test "$cross_compiling" != yes; then +- { { ac_try="$ac_link" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_link") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } +- if { ac_try='./conftest$ac_cv_exeext' +- { { case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_try") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; }; then +- cross_compiling=no +- else +- if test "$cross_compiling" = maybe; then +- cross_compiling=yes +- else +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "cannot run C compiled programs. +-If you meant to cross compile, use \`--host'. +-See \`config.log' for more details" "$LINENO" 5 ; } +- fi +- fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +-$as_echo "$cross_compiling" >&6; } +- +-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +-ac_clean_files=$ac_clean_files_save +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +-$as_echo_n "checking for suffix of object files... " >&6; } +-if test "${ac_cv_objext+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.o conftest.obj +-if { { ac_try="$ac_compile" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_compile") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then : +- for ac_file in conftest.o conftest.obj conftest.*; do +- test -f "$ac_file" || continue; +- case $ac_file in +- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; +- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` +- break;; +- esac +-done +-else +- $as_echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "cannot compute suffix of object files: cannot compile +-See \`config.log' for more details" "$LINENO" 5 ; } +-fi +-rm -f conftest.$ac_cv_objext conftest.$ac_ext +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +-$as_echo "$ac_cv_objext" >&6; } +-OBJEXT=$ac_cv_objext +-ac_objext=$OBJEXT +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +-if test "${ac_cv_c_compiler_gnu+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +-#ifndef __GNUC__ +- choke me +-#endif +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- ac_compiler_gnu=yes +-else +- ac_compiler_gnu=no +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-ac_cv_c_compiler_gnu=$ac_compiler_gnu +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +-$as_echo "$ac_cv_c_compiler_gnu" >&6; } +-if test $ac_compiler_gnu = yes; then +- GCC=yes +-else +- GCC= +-fi +-ac_test_CFLAGS=${CFLAGS+set} +-ac_save_CFLAGS=$CFLAGS +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +-$as_echo_n "checking whether $CC accepts -g... " >&6; } +-if test "${ac_cv_prog_cc_g+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_save_c_werror_flag=$ac_c_werror_flag +- ac_c_werror_flag=yes +- ac_cv_prog_cc_g=no +- CFLAGS="-g" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- ac_cv_prog_cc_g=yes +-else +- CFLAGS="" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- +-else +- ac_c_werror_flag=$ac_save_c_werror_flag +- CFLAGS="-g" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- ac_cv_prog_cc_g=yes +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- ac_c_werror_flag=$ac_save_c_werror_flag +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +-$as_echo "$ac_cv_prog_cc_g" >&6; } +-if test "$ac_test_CFLAGS" = set; then +- CFLAGS=$ac_save_CFLAGS +-elif test $ac_cv_prog_cc_g = yes; then +- if test "$GCC" = yes; then +- CFLAGS="-g -O2" +- else +- CFLAGS="-g" +- fi +-else +- if test "$GCC" = yes; then +- CFLAGS="-O2" +- else +- CFLAGS= +- fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +-if test "${ac_cv_prog_cc_c89+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_cv_prog_cc_c89=no +-ac_save_CC=$CC +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +-#include +-#include +-#include +-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +-struct buf { int x; }; +-FILE * (*rcsopen) (struct buf *, struct stat *, int); +-static char *e (p, i) +- char **p; +- int i; +-{ +- return p[i]; +-} +-static char *f (char * (*g) (char **, int), char **p, ...) +-{ +- char *s; +- va_list v; +- va_start (v,p); +- s = g (p, va_arg (v,int)); +- va_end (v); +- return s; +-} +- +-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has +- function prototypes and stuff, but not '\xHH' hex character constants. +- These don't provoke an error unfortunately, instead are silently treated +- as 'x'. The following induces an error, until -std is added to get +- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an +- array size at least. It's necessary to write '\x00'==0 to get something +- that's true only with -std. */ +-int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +- +-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters +- inside strings and character constants. */ +-#define FOO(x) 'x' +-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; +- +-int test (int i, double x); +-struct s1 {int (*f) (int a);}; +-struct s2 {int (*f) (double a);}; +-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +-int argc; +-char **argv; +-int +-main () +-{ +-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +- ; +- return 0; +-} +-_ACEOF +-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ +- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +-do +- CC="$ac_save_CC $ac_arg" +- if ac_fn_c_try_compile "$LINENO"; then : +- ac_cv_prog_cc_c89=$ac_arg +-fi +-rm -f core conftest.err conftest.$ac_objext +- test "x$ac_cv_prog_cc_c89" != "xno" && break +-done +-rm -f conftest.$ac_ext +-CC=$ac_save_CC +- +-fi +-# AC_CACHE_VAL +-case "x$ac_cv_prog_cc_c89" in +- x) +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +-$as_echo "none needed" >&6; } ;; +- xno) +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +-$as_echo "unsupported" >&6; } ;; +- *) +- CC="$CC $ac_cv_prog_cc_c89" +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +-esac +-if test "x$ac_cv_prog_cc_c89" != xno; then : +- +-fi +- +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +-depcc="$CC" am_compiler_list= +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +-$as_echo_n "checking dependency style of $depcc... " >&6; } +-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then +- # We make a subdir and do the tests there. Otherwise we can end up +- # making bogus files that we don't know about and never remove. For +- # instance it was reported that on HP-UX the gcc test will end up +- # making a dummy file named `D' -- because `-MD' means `put the output +- # in D'. +- mkdir conftest.dir +- # Copy depcomp to subdir because otherwise we won't find it if we're +- # using a relative directory. +- cp "$am_depcomp" conftest.dir +- cd conftest.dir +- # We will build objects and dependencies in a subdirectory because +- # it helps to detect inapplicable dependency modes. For instance +- # both Tru64's cc and ICC support -MD to output dependencies as a +- # side effect of compilation, but ICC will put the dependencies in +- # the current directory while Tru64 will put them in the object +- # directory. +- mkdir sub +- +- am_cv_CC_dependencies_compiler_type=none +- if test "$am_compiler_list" = ""; then +- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` +- fi +- am__universal=false +- case " $depcc " in #( +- *\ -arch\ *\ -arch\ *) am__universal=true ;; +- esac +- +- for depmode in $am_compiler_list; do +- # Setup a source with many dependencies, because some compilers +- # like to wrap large dependency lists on column 80 (with \), and +- # we should not choose a depcomp mode which is confused by this. +- # +- # We need to recreate these files for each test, as the compiler may +- # overwrite some of them when testing with obscure command lines. +- # This happens at least with the AIX C compiler. +- : > sub/conftest.c +- for i in 1 2 3 4 5 6; do +- echo '#include "conftst'$i'.h"' >> sub/conftest.c +- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with +- # Solaris 8's {/usr,}/bin/sh. +- touch sub/conftst$i.h +- done +- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf +- +- # We check with `-c' and `-o' for the sake of the "dashmstdout" +- # mode. It turns out that the SunPro C++ compiler does not properly +- # handle `-M -o', and we need to detect this. Also, some Intel +- # versions had trouble with output in subdirs +- am__obj=sub/conftest.${OBJEXT-o} +- am__minus_obj="-o $am__obj" +- case $depmode in +- gcc) +- # This depmode causes a compiler race in universal mode. +- test "$am__universal" = false || continue +- ;; +- nosideeffect) +- # after this tag, mechanisms are not by side-effect, so they'll +- # only be used when explicitly requested +- if test "x$enable_dependency_tracking" = xyes; then +- continue +- else +- break +- fi +- ;; +- msvisualcpp | msvcmsys) +- # This compiler won't grok `-c -o', but also, the minuso test has +- # not run yet. These depmodes are late enough in the game, and +- # so weak that their functioning should not be impacted. +- am__obj=conftest.${OBJEXT-o} +- am__minus_obj= +- ;; +- none) break ;; +- esac +- if depmode=$depmode \ +- source=sub/conftest.c object=$am__obj \ +- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ +- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ +- >/dev/null 2>conftest.err && +- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && +- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && +- grep $am__obj sub/conftest.Po > /dev/null 2>&1 && +- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then +- # icc doesn't choke on unknown options, it will just issue warnings +- # or remarks (even with -Werror). So we grep stderr for any message +- # that says an option was ignored or not supported. +- # When given -MP, icc 7.0 and 7.1 complain thusly: +- # icc: Command line warning: ignoring option '-M'; no argument required +- # The diagnosis changed in icc 8.0: +- # icc: Command line remark: option '-MP' not supported +- if (grep 'ignoring option' conftest.err || +- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else +- am_cv_CC_dependencies_compiler_type=$depmode +- break +- fi +- fi +- done +- +- cd .. +- rm -rf conftest.dir +-else +- am_cv_CC_dependencies_compiler_type=none +-fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type +- +- if +- test "x$enable_dependency_tracking" != xno \ +- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then +- am__fastdepCC_TRUE= +- am__fastdepCC_FALSE='#' +-else +- am__fastdepCC_TRUE='#' +- am__fastdepCC_FALSE= +-fi +- +- +- +-for ac_prog in flex lex +-do +- # Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_LEX+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$LEX"; then +- ac_cv_prog_LEX="$LEX" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_LEX="$ac_prog" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-LEX=$ac_cv_prog_LEX +-if test -n "$LEX"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 +-$as_echo "$LEX" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- test -n "$LEX" && break +-done +-test -n "$LEX" || LEX=":" +- +-if test "x$LEX" != "x:"; then +- cat >conftest.l <<_ACEOF +-%% +-a { ECHO; } +-b { REJECT; } +-c { yymore (); } +-d { yyless (1); } +-e { yyless (input () != 0); } +-f { unput (yytext[0]); } +-. { BEGIN INITIAL; } +-%% +-#ifdef YYTEXT_POINTER +-extern char *yytext; +-#endif +-int +-main (void) +-{ +- return ! yylex () + ! yywrap (); +-} +-_ACEOF +-{ { ac_try="$LEX conftest.l" +-case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$LEX conftest.l") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 +-$as_echo_n "checking lex output file root... " >&6; } +-if test "${ac_cv_prog_lex_root+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- +-if test -f lex.yy.c; then +- ac_cv_prog_lex_root=lex.yy +-elif test -f lexyy.c; then +- ac_cv_prog_lex_root=lexyy +-else +- as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 +-fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 +-$as_echo "$ac_cv_prog_lex_root" >&6; } +-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root +- +-if test -z "${LEXLIB+set}"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 +-$as_echo_n "checking lex library... " >&6; } +-if test "${ac_cv_lib_lex+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- +- ac_save_LIBS=$LIBS +- ac_cv_lib_lex='none needed' +- for ac_lib in '' -lfl -ll; do +- LIBS="$ac_lib $ac_save_LIBS" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-`cat $LEX_OUTPUT_ROOT.c` +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_lex=$ac_lib +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- test "$ac_cv_lib_lex" != 'none needed' && break +- done +- LIBS=$ac_save_LIBS +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 +-$as_echo "$ac_cv_lib_lex" >&6; } +- test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex +-fi +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 +-$as_echo_n "checking whether yytext is a pointer... " >&6; } +-if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- # POSIX says lex can declare yytext either as a pointer or an array; the +-# default is implementation-dependent. Figure out which it is, since +-# not all implementations provide the %pointer and %array declarations. +-ac_cv_prog_lex_yytext_pointer=no +-ac_save_LIBS=$LIBS +-LIBS="$LEXLIB $ac_save_LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#define YYTEXT_POINTER 1 +-`cat $LEX_OUTPUT_ROOT.c` +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_prog_lex_yytext_pointer=yes +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_save_LIBS +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 +-$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } +-if test $ac_cv_prog_lex_yytext_pointer = yes; then +- +-$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h +- +-fi +-rm -f conftest.l $LEX_OUTPUT_ROOT.c +- +-fi +-if test "$LEX" = :; then +- LEX=${am_missing_run}flex +-fi +-for ac_prog in 'bison -y' byacc +-do +- # Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_YACC+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$YACC"; then +- ac_cv_prog_YACC="$YACC" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_YACC="$ac_prog" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-YACC=$ac_cv_prog_YACC +-if test -n "$YACC"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 +-$as_echo "$YACC" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- test -n "$YACC" && break +-done +-test -n "$YACC" || YACC="yacc" +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +-$as_echo_n "checking for a sed that does not truncate output... " >&6; } +-if test "${ac_cv_path_SED+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ +- for ac_i in 1 2 3 4 5 6 7; do +- ac_script="$ac_script$as_nl$ac_script" +- done +- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed +- { ac_script=; unset ac_script;} +- if test -z "$SED"; then +- ac_path_SED_found=false +- # Loop through the user's path and test for each of PROGNAME-LIST +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_prog in sed gsed; do +- for ac_exec_ext in '' $ac_executable_extensions; do +- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" +- { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +-# Check for GNU ac_path_SED and select it if it is found. +- # Check for GNU $ac_path_SED +-case `"$ac_path_SED" --version 2>&1` in +-*GNU*) +- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +-*) +- ac_count=0 +- $as_echo_n 0123456789 >"conftest.in" +- while : +- do +- cat "conftest.in" "conftest.in" >"conftest.tmp" +- mv "conftest.tmp" "conftest.in" +- cp "conftest.in" "conftest.nl" +- $as_echo '' >> "conftest.nl" +- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break +- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break +- as_fn_arith $ac_count + 1 && ac_count=$as_val +- if test $ac_count -gt ${ac_path_SED_max-0}; then +- # Best one so far, save it but keep looking for a better one +- ac_cv_path_SED="$ac_path_SED" +- ac_path_SED_max=$ac_count +- fi +- # 10*(2^10) chars as input seems more than enough +- test $ac_count -gt 10 && break +- done +- rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +-esac +- +- $ac_path_SED_found && break 3 +- done +- done +- done +-IFS=$as_save_IFS +- if test -z "$ac_cv_path_SED"; then +- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 +- fi +-else +- ac_cv_path_SED=$SED +-fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +-$as_echo "$ac_cv_path_SED" >&6; } +- SED="$ac_cv_path_SED" +- rm -f conftest.sed +- +- +-# Extract the first word of "swig", so it can be a program name with args. +-set dummy swig; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_SWIG+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- case $SWIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-fi +-SWIG=$ac_cv_path_SWIG +-if test -n "$SWIG"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5 +-$as_echo "$SWIG" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- +- +- +- +- # Extract the first word of "pod2man", so it can be a program name with args. +-set dummy pod2man; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_POD2MAN+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$POD2MAN"; then +- ac_cv_prog_POD2MAN="$POD2MAN" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_POD2MAN="pod2man" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- test -z "$ac_cv_prog_POD2MAN" && ac_cv_prog_POD2MAN="no" +-fi +-fi +-POD2MAN=$ac_cv_prog_POD2MAN +-if test -n "$POD2MAN"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POD2MAN" >&5 +-$as_echo "$POD2MAN" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- if test "$POD2MAN" = "no"; then +- as_fn_error $? " +-The pod2man program was not found in the default path. pod2man is part of +-Perl, which can be retrieved from: +- +- http://www.perl.com/ +- +-The latest version at this time is 5.6.1; it is available packaged as the +-following archive: +- +- http://www.perl.com/CPAN/src/stable.tar.gz +-" "$LINENO" 5 +- fi +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for Python" >&5 +-$as_echo_n "checking Checking for Python... " >&6; } +- +-# Check whether --with-python was given. +-if test "${with_python+set}" = set; then : +- withval=$with_python; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +-$as_echo "$withval" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +-if test "$with_python" = "yes"; then +- # Extract the first word of "python", so it can be a program name with args. +-set dummy python; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_PYTHON+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- case $PYTHON in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="no" +- ;; +-esac +-fi +-PYTHON=$ac_cv_path_PYTHON +-if test -n "$PYTHON"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +-$as_echo "$PYTHON" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- if test x$PYTHON = xno; then +- enable_python = no +- else +- +- +- +- # +- # Allow the use of a (user set) custom python version +- # +- +- +- # Extract the first word of "python[$PYTHON_VERSION]", so it can be a program name with args. +-set dummy python$PYTHON_VERSION; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_PYTHON+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- case $PYTHON in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-fi +-PYTHON=$ac_cv_path_PYTHON +-if test -n "$PYTHON"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +-$as_echo "$PYTHON" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- if test -z "$PYTHON"; then +- as_fn_error $? "Cannot find python$PYTHON_VERSION in your system path" "$LINENO" 5 +- PYTHON_VERSION="" +- fi +- +- # +- # Check for a version of Python >= 2.1.0 +- # +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python >= '2.1.0'" >&5 +-$as_echo_n "checking for a version of Python >= '2.1.0'... " >&6; } +- ac_supports_python_ver=`$PYTHON -c "import sys, string; \ +- ver = string.split(sys.version)[0]; \ +- print ver >= '2.1.0'"` +- if test "$ac_supports_python_ver" != "True"; then +- if test -z "$PYTHON_NOVERSIONCHECK"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? " +-This version of the AC_PYTHON_DEVEL macro +-doesn't work properly with versions of Python before +-2.1.0. You may need to re-run configure, setting the +-variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG, +-PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. +-Moreover, to disable this check, set PYTHON_NOVERSIONCHECK +-to something else than an empty string. +- +-See \`config.log' for more details" "$LINENO" 5 ; } +- else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: skip at user request" >&5 +-$as_echo "skip at user request" >&6; } +- fi +- else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +- fi +- +- # +- # if the macro parameter ``version'' is set, honour it +- # +- if test -n ""; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python " >&5 +-$as_echo_n "checking for a version of Python ... " >&6; } +- ac_supports_python_ver=`$PYTHON -c "import sys, string; \ +- ver = string.split(sys.version)[0]; \ +- print ver "` +- if test "$ac_supports_python_ver" = "True"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +- else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- as_fn_error $? "this package requires Python . +-If you have it installed, but it isn't the default Python +-interpreter in your system path, please pass the PYTHON_VERSION +-variable to configure. See \`\`configure --help'' for reference. +-" "$LINENO" 5 +- PYTHON_VERSION="" +- fi +- fi +- +- # +- # Check if you have distutils, else fail +- # +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5 +-$as_echo_n "checking for the distutils Python package... " >&6; } +- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` +- if test -z "$ac_distutils_result"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +- else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- as_fn_error $? "cannot import Python module \"distutils\". +-Please check your Python installation. The error was: +-$ac_distutils_result" "$LINENO" 5 +- PYTHON_VERSION="" +- fi +- +- # +- # Check for Python include path +- # +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 +-$as_echo_n "checking for Python include path... " >&6; } +- if test -z "$PYTHON_CPPFLAGS"; then +- python_path=`$PYTHON -c "import distutils.sysconfig; \ +- print distutils.sysconfig.get_python_inc();"` +- if test -n "${python_path}"; then +- python_path="-I$python_path" +- fi +- PYTHON_CPPFLAGS=$python_path +- fi +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CPPFLAGS" >&5 +-$as_echo "$PYTHON_CPPFLAGS" >&6; } +- +- +- # +- # Check for Python library path +- # +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5 +-$as_echo_n "checking for Python library path... " >&6; } +- if test -z "$PYTHON_LDFLAGS"; then +- # (makes two attempts to ensure we've got a version number +- # from the interpreter) +- py_version=`$PYTHON -c "from distutils.sysconfig import *; \ +- from string import join; \ +- print join(get_config_vars('VERSION'))"` +- if test "$py_version" == "None"; then +- if test -n "$PYTHON_VERSION"; then +- py_version=$PYTHON_VERSION +- else +- py_version=`$PYTHON -c "import sys; \ +- print sys.version[:3]"` +- fi +- fi +- +- PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \ +- from string import join; \ +- print '-L' + get_python_lib(0,1), \ +- '-lpython';"`$py_version +- fi +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_LDFLAGS" >&5 +-$as_echo "$PYTHON_LDFLAGS" >&6; } +- +- +- # +- # Check for site packages +- # +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5 +-$as_echo_n "checking for Python site-packages path... " >&6; } +- if test -z "$PYTHON_SITE_PKG"; then +- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ +- print distutils.sysconfig.get_python_lib(0,0);"` +- fi +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5 +-$as_echo "$PYTHON_SITE_PKG" >&6; } +- +- +- # +- # libraries which must be linked in when embedding +- # +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra libraries" >&5 +-$as_echo_n "checking python extra libraries... " >&6; } +- if test -z "$PYTHON_EXTRA_LIBS"; then +- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ +- conf = distutils.sysconfig.get_config_var; \ +- print conf('LOCALMODLIBS'), conf('LIBS')"` +- fi +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5 +-$as_echo "$PYTHON_EXTRA_LIBS" >&6; } +- +- +- # +- # linking flags needed when embedding +- # +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra linking flags" >&5 +-$as_echo_n "checking python extra linking flags... " >&6; } +- if test -z "$PYTHON_EXTRA_LDFLAGS"; then +- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ +- conf = distutils.sysconfig.get_config_var; \ +- print conf('LINKFORSHARED')"` +- fi +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LDFLAGS" >&5 +-$as_echo "$PYTHON_EXTRA_LDFLAGS" >&6; } +- +- +- # +- # final check to see if everything compiles alright +- # +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking consistency of all components of python development environment" >&5 +-$as_echo_n "checking consistency of all components of python development environment... " >&6; } +- ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- # save current global flags +- LIBS="$ac_save_LIBS $PYTHON_LDFLAGS" +- CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +- #include +- +-int +-main () +-{ +- +- Py_Initialize(); +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- pythonexists=yes +-else +- pythonexists=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pythonexists" >&5 +-$as_echo "$pythonexists" >&6; } +- +- if test ! "$pythonexists" = "yes"; then +- as_fn_error $? " +- Could not link test program to Python. Maybe the main Python library has been +- installed in some non-standard library path. If so, pass it to configure, +- via the LDFLAGS environment variable. +- Example: ./configure LDFLAGS=\"-L/usr/non-standard-path/python/lib\" +- ============================================================================ +- ERROR! +- You probably have to install the development version of the Python package +- for your distribution. The exact name of this package varies among them. +- ============================================================================ +- " "$LINENO" 5 +- PYTHON_VERSION="" +- fi +- ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- # turn back to default flags +- CPPFLAGS="$ac_save_CPPFLAGS" +- LIBS="$ac_save_LIBS" +- +- # +- # all done! +- # +- +- +- +- +- +- # Find any Python interpreter. +- if test -z "$PYTHON"; then +- for ac_prog in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 +-do +- # Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_PYTHON+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- case $PYTHON in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-fi +-PYTHON=$ac_cv_path_PYTHON +-if test -n "$PYTHON"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +-$as_echo "$PYTHON" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- test -n "$PYTHON" && break +-done +-test -n "$PYTHON" || PYTHON=":" +- +- fi +- am_display_PYTHON=python +- +- +- if test "$PYTHON" = :; then +- as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 +- else +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 +-$as_echo_n "checking for $am_display_PYTHON version... " >&6; } +-if test "${am_cv_python_version+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"` +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 +-$as_echo "$am_cv_python_version" >&6; } +- PYTHON_VERSION=$am_cv_python_version +- +- +- +- PYTHON_PREFIX='${prefix}' +- +- PYTHON_EXEC_PREFIX='${exec_prefix}' +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 +-$as_echo_n "checking for $am_display_PYTHON platform... " >&6; } +-if test "${am_cv_python_platform+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 +-$as_echo "$am_cv_python_platform" >&6; } +- PYTHON_PLATFORM=$am_cv_python_platform +- +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 +-$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } +-if test "${am_cv_python_pythondir+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test "x$prefix" = xNONE +- then +- am_py_prefix=$ac_default_prefix +- else +- am_py_prefix=$prefix +- fi +- am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null || +- echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` +- case $am_cv_python_pythondir in +- $am_py_prefix*) +- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` +- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` +- ;; +- *) +- case $am_py_prefix in +- /usr|/System*) ;; +- *) +- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages +- ;; +- esac +- ;; +- esac +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 +-$as_echo "$am_cv_python_pythondir" >&6; } +- pythondir=$am_cv_python_pythondir +- +- +- +- pkgpythondir=\${pythondir}/$PACKAGE +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 +-$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } +-if test "${am_cv_python_pyexecdir+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test "x$exec_prefix" = xNONE +- then +- am_py_exec_prefix=$am_py_prefix +- else +- am_py_exec_prefix=$exec_prefix +- fi +- am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null || +- echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"` +- case $am_cv_python_pyexecdir in +- $am_py_exec_prefix*) +- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` +- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` +- ;; +- *) +- case $am_py_exec_prefix in +- /usr|/System*) ;; +- *) +- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages +- ;; +- esac +- ;; +- esac +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 +-$as_echo "$am_cv_python_pyexecdir" >&6; } +- pyexecdir=$am_cv_python_pyexecdir +- +- +- +- pkgpyexecdir=\${pyexecdir}/$PACKAGE +- +- +- +- fi +- +- +- fi +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for perl" >&5 +-$as_echo_n "checking Checking for perl... " >&6; } +- +-# Check whether --with-perl was given. +-if test "${with_perl+set}" = set; then : +- withval=$with_perl; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +-$as_echo "$withval" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +-if test "$with_perl" = "yes"; then +- # Extract the first word of "perl", so it can be a program name with args. +-set dummy perl; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_PERL+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- case $PERL in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_PERL="$PERL" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no" +- ;; +-esac +-fi +-PERL=$ac_cv_path_PERL +-if test -n "$PERL"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 +-$as_echo "$PERL" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- if test x$PERL = xno; then +- enable_perl=no +- else +- perl_includedir="`$PERL -e 'use Config; print $Config{archlib}'`/CORE" +- as_ac_File=`$as_echo "ac_cv_file_$perl_includedir/perl.h" | $as_tr_sh` +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $perl_includedir/perl.h" >&5 +-$as_echo_n "checking for $perl_includedir/perl.h... " >&6; } +-if eval "test \"\${$as_ac_File+set}\"" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- test "$cross_compiling" = yes && +- as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 +-if test -r "$perl_includedir/perl.h"; then +- eval "$as_ac_File=yes" +-else +- eval "$as_ac_File=no" +-fi +-fi +-eval ac_res=\$$as_ac_File +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-$as_echo "$ac_res" >&6; } +-if eval test \"x\$"$as_ac_File"\" = x"yes"; then : +- enable_perl=yes +-else +- enable_perl=no +-fi +- +- fi +-fi +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ruby" >&5 +-$as_echo_n "checking Checking for ruby... " >&6; } +- +-# Check whether --with-ruby was given. +-if test "${with_ruby+set}" = set; then : +- withval=$with_ruby; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +-$as_echo "$withval" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +-if test "$with_ruby" = "yes"; then +- # Extract the first word of "ruby", so it can be a program name with args. +-set dummy ruby; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_RUBY+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- case $RUBY in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_RUBY="$RUBY" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_path_RUBY="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-fi +-RUBY=$ac_cv_path_RUBY +-if test -n "$RUBY"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY" >&5 +-$as_echo "$RUBY" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +- +- +- if test x$with_python = xyes; then +- HAVE_PYTHON_TRUE= +- HAVE_PYTHON_FALSE='#' +-else +- HAVE_PYTHON_TRUE='#' +- HAVE_PYTHON_FALSE= +-fi +- +- if test x$with_perl = xyes; then +- HAVE_PERL_TRUE= +- HAVE_PERL_FALSE='#' +-else +- HAVE_PERL_TRUE='#' +- HAVE_PERL_FALSE= +-fi +- +- if test x$with_ruby = xyes; then +- HAVE_RUBY_TRUE= +- HAVE_RUBY_FALSE='#' +-else +- HAVE_RUBY_TRUE='#' +- HAVE_RUBY_FALSE= +-fi +- +- if test x$enable_rootlib = xyes; then +- BUILD_ROOTLIB_TRUE= +- BUILD_ROOTLIB_FALSE='#' +-else +- BUILD_ROOTLIB_TRUE='#' +- BUILD_ROOTLIB_FALSE= +-fi +- +- +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +-$as_echo_n "checking how to run the C preprocessor... " >&6; } +-# On Suns, sometimes $CPP names a directory. +-if test -n "$CPP" && test -d "$CPP"; then +- CPP= +-fi +-if test -z "$CPP"; then +- if test "${ac_cv_prog_CPP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- # Double quotes because CPP needs to be expanded +- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" +- do +- ac_preproc_ok=false +-for ac_c_preproc_warn_flag in '' yes +-do +- # Use a header file that comes with gcc, so configuring glibc +- # with a fresh cross-compiler works. +- # Prefer to if __STDC__ is defined, since +- # exists even on freestanding compilers. +- # On the NeXT, cc -E runs the code through the compiler's parser, +- # not just through cpp. "Syntax error" is here to catch this case. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- Syntax error +-_ACEOF +-if ac_fn_c_try_cpp "$LINENO"; then : +- +-else +- # Broken: fails on valid input. +-continue +-fi +-rm -f conftest.err conftest.i conftest.$ac_ext +- +- # OK, works on sane cases. Now check whether nonexistent headers +- # can be detected and how. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +-_ACEOF +-if ac_fn_c_try_cpp "$LINENO"; then : +- # Broken: success on invalid input. +-continue +-else +- # Passes both tests. +-ac_preproc_ok=: +-break +-fi +-rm -f conftest.err conftest.i conftest.$ac_ext +- +-done +-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +-rm -f conftest.i conftest.err conftest.$ac_ext +-if $ac_preproc_ok; then : +- break +-fi +- +- done +- ac_cv_prog_CPP=$CPP +- +-fi +- CPP=$ac_cv_prog_CPP +-else +- ac_cv_prog_CPP=$CPP +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +-$as_echo "$CPP" >&6; } +-ac_preproc_ok=false +-for ac_c_preproc_warn_flag in '' yes +-do +- # Use a header file that comes with gcc, so configuring glibc +- # with a fresh cross-compiler works. +- # Prefer to if __STDC__ is defined, since +- # exists even on freestanding compilers. +- # On the NeXT, cc -E runs the code through the compiler's parser, +- # not just through cpp. "Syntax error" is here to catch this case. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#ifdef __STDC__ +-# include +-#else +-# include +-#endif +- Syntax error +-_ACEOF +-if ac_fn_c_try_cpp "$LINENO"; then : +- +-else +- # Broken: fails on valid input. +-continue +-fi +-rm -f conftest.err conftest.i conftest.$ac_ext +- +- # OK, works on sane cases. Now check whether nonexistent headers +- # can be detected and how. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +-_ACEOF +-if ac_fn_c_try_cpp "$LINENO"; then : +- # Broken: success on invalid input. +-continue +-else +- # Passes both tests. +-ac_preproc_ok=: +-break +-fi +-rm -f conftest.err conftest.i conftest.$ac_ext +- +-done +-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +-rm -f conftest.i conftest.err conftest.$ac_ext +-if $ac_preproc_ok; then : +- +-else +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +-See \`config.log' for more details" "$LINENO" 5 ; } +-fi +- +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +-$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +-if test "${ac_cv_path_GREP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -z "$GREP"; then +- ac_path_GREP_found=false +- # Loop through the user's path and test for each of PROGNAME-LIST +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_prog in grep ggrep; do +- for ac_exec_ext in '' $ac_executable_extensions; do +- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" +- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +-# Check for GNU ac_path_GREP and select it if it is found. +- # Check for GNU $ac_path_GREP +-case `"$ac_path_GREP" --version 2>&1` in +-*GNU*) +- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +-*) +- ac_count=0 +- $as_echo_n 0123456789 >"conftest.in" +- while : +- do +- cat "conftest.in" "conftest.in" >"conftest.tmp" +- mv "conftest.tmp" "conftest.in" +- cp "conftest.in" "conftest.nl" +- $as_echo 'GREP' >> "conftest.nl" +- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break +- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break +- as_fn_arith $ac_count + 1 && ac_count=$as_val +- if test $ac_count -gt ${ac_path_GREP_max-0}; then +- # Best one so far, save it but keep looking for a better one +- ac_cv_path_GREP="$ac_path_GREP" +- ac_path_GREP_max=$ac_count +- fi +- # 10*(2^10) chars as input seems more than enough +- test $ac_count -gt 10 && break +- done +- rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +-esac +- +- $ac_path_GREP_found && break 3 +- done +- done +- done +-IFS=$as_save_IFS +- if test -z "$ac_cv_path_GREP"; then +- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 +- fi +-else +- ac_cv_path_GREP=$GREP +-fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +-$as_echo "$ac_cv_path_GREP" >&6; } +- GREP="$ac_cv_path_GREP" +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +-$as_echo_n "checking for egrep... " >&6; } +-if test "${ac_cv_path_EGREP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 +- then ac_cv_path_EGREP="$GREP -E" +- else +- if test -z "$EGREP"; then +- ac_path_EGREP_found=false +- # Loop through the user's path and test for each of PROGNAME-LIST +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_prog in egrep; do +- for ac_exec_ext in '' $ac_executable_extensions; do +- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" +- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +-# Check for GNU ac_path_EGREP and select it if it is found. +- # Check for GNU $ac_path_EGREP +-case `"$ac_path_EGREP" --version 2>&1` in +-*GNU*) +- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +-*) +- ac_count=0 +- $as_echo_n 0123456789 >"conftest.in" +- while : +- do +- cat "conftest.in" "conftest.in" >"conftest.tmp" +- mv "conftest.tmp" "conftest.in" +- cp "conftest.in" "conftest.nl" +- $as_echo 'EGREP' >> "conftest.nl" +- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break +- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break +- as_fn_arith $ac_count + 1 && ac_count=$as_val +- if test $ac_count -gt ${ac_path_EGREP_max-0}; then +- # Best one so far, save it but keep looking for a better one +- ac_cv_path_EGREP="$ac_path_EGREP" +- ac_path_EGREP_max=$ac_count +- fi +- # 10*(2^10) chars as input seems more than enough +- test $ac_count -gt 10 && break +- done +- rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +-esac +- +- $ac_path_EGREP_found && break 3 +- done +- done +- done +-IFS=$as_save_IFS +- if test -z "$ac_cv_path_EGREP"; then +- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 +- fi +-else +- ac_cv_path_EGREP=$EGREP +-fi +- +- fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +-$as_echo "$ac_cv_path_EGREP" >&6; } +- EGREP="$ac_cv_path_EGREP" +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +-$as_echo_n "checking for ANSI C header files... " >&6; } +-if test "${ac_cv_header_stdc+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +-#include +-#include +-#include +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- ac_cv_header_stdc=yes +-else +- ac_cv_header_stdc=no +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- +-if test $ac_cv_header_stdc = yes; then +- # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +- +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "memchr" >/dev/null 2>&1; then : +- +-else +- ac_cv_header_stdc=no +-fi +-rm -f conftest* +- +-fi +- +-if test $ac_cv_header_stdc = yes; then +- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +- +-_ACEOF +-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "free" >/dev/null 2>&1; then : +- +-else +- ac_cv_header_stdc=no +-fi +-rm -f conftest* +- +-fi +- +-if test $ac_cv_header_stdc = yes; then +- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +- if test "$cross_compiling" = yes; then : +- : +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +-#include +-#if ((' ' & 0x0FF) == 0x020) +-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +-#else +-# define ISLOWER(c) \ +- (('a' <= (c) && (c) <= 'i') \ +- || ('j' <= (c) && (c) <= 'r') \ +- || ('s' <= (c) && (c) <= 'z')) +-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +-#endif +- +-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +-int +-main () +-{ +- int i; +- for (i = 0; i < 256; i++) +- if (XOR (islower (i), ISLOWER (i)) +- || toupper (i) != TOUPPER (i)) +- return 2; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_run "$LINENO"; then : +- +-else +- ac_cv_header_stdc=no +-fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +- +-fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +-$as_echo "$ac_cv_header_stdc" >&6; } +-if test $ac_cv_header_stdc = yes; then +- +-$as_echo "#define STDC_HEADERS 1" >>confdefs.h +- +-fi +- +-# On IRIX 5.3, sys/types and inttypes.h are conflicting. +-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ +- inttypes.h stdint.h unistd.h +-do : +- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +-" +-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-_ACEOF +- +-fi +- +-done +- +- +-for ac_header in unistd.h stdint.h +-do : +- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : +- cat >>confdefs.h <<_ACEOF +-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +-_ACEOF +- +-fi +- +-done +- +- +-for ac_func in asprintf +-do : +- ac_fn_c_check_func "$LINENO" "asprintf" "ac_cv_func_asprintf" +-if test "x$ac_cv_func_asprintf" = x""yes; then : +- cat >>confdefs.h <<_ACEOF +-#define HAVE_ASPRINTF 1 +-_ACEOF +- +-fi +-done +- +- +-if test "x$CC" != xcc; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 +-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 +-$as_echo_n "checking whether cc understands -c and -o together... " >&6; } +-fi +-set dummy $CC; ac_cc=`$as_echo "$2" | +- sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +-if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-# Make sure it works both with $CC and with simple cc. +-# We do the test twice because some compilers refuse to overwrite an +-# existing .o file with -o, though they will create one. +-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' +-rm -f conftest2.* +-if { { case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_try") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } && +- test -f conftest2.$ac_objext && { { case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_try") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; +-then +- eval ac_cv_prog_cc_${ac_cc}_c_o=yes +- if test "x$CC" != xcc; then +- # Test first that cc exists at all. +- if { ac_try='cc -c conftest.$ac_ext >&5' +- { { case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_try") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; }; then +- ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' +- rm -f conftest2.* +- if { { case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_try") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } && +- test -f conftest2.$ac_objext && { { case "(($ac_try" in +- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +- *) ac_try_echo=$ac_try;; +-esac +-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-$as_echo "$ac_try_echo"; } >&5 +- (eval "$ac_try") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; +- then +- # cc works too. +- : +- else +- # cc exists but doesn't like -o. +- eval ac_cv_prog_cc_${ac_cc}_c_o=no +- fi +- fi +- fi +-else +- eval ac_cv_prog_cc_${ac_cc}_c_o=no +-fi +-rm -f core conftest* +- +-fi +-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- +-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h +- +-fi +- +-# FIXME: we rely on the cache variable name because +-# there is no other way. +-set dummy $CC +-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +-if test "$am_t" != yes; then +- # Losing compiler, so override with the script. +- # FIXME: It is wrong to rewrite CC. +- # But if we don't then we get into trouble of one sort or another. +- # A longer-term fix would be to have automake use am__CC in this case, +- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" +- CC="$am_aux_dir/compile $CC" +-fi +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +-$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +-if test "${ac_cv_c_const+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +-/* FIXME: Include the comments suggested by Paul. */ +-#ifndef __cplusplus +- /* Ultrix mips cc rejects this. */ +- typedef int charset[2]; +- const charset cs; +- /* SunOS 4.1.1 cc rejects this. */ +- char const *const *pcpcc; +- char **ppc; +- /* NEC SVR4.0.2 mips cc rejects this. */ +- struct point {int x, y;}; +- static struct point const zero = {0,0}; +- /* AIX XL C 1.02.0.0 rejects this. +- It does not let you subtract one const X* pointer from another in +- an arm of an if-expression whose if-part is not a constant +- expression */ +- const char *g = "string"; +- pcpcc = &g + (g ? g-g : 0); +- /* HPUX 7.0 cc rejects these. */ +- ++pcpcc; +- ppc = (char**) pcpcc; +- pcpcc = (char const *const *) ppc; +- { /* SCO 3.2v4 cc rejects this. */ +- char *t; +- char const *s = 0 ? (char *) 0 : (char const *) 0; +- +- *t++ = 0; +- if (s) return 0; +- } +- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ +- int x[] = {25, 17}; +- const int *foo = &x[0]; +- ++foo; +- } +- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ +- typedef const int *iptr; +- iptr p = 0; +- ++p; +- } +- { /* AIX XL C 1.02.0.0 rejects this saying +- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ +- struct s { int j; const int *ap[3]; }; +- struct s *b; b->j = 5; +- } +- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ +- const int foo = 10; +- if (!foo) return 0; +- } +- return !cs[0] && !zero.x; +-#endif +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- ac_cv_c_const=yes +-else +- ac_cv_c_const=no +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +-$as_echo "$ac_cv_c_const" >&6; } +-if test $ac_cv_c_const = no; then +- +-$as_echo "#define const /**/" >>confdefs.h +- +-fi +- +-case `pwd` in +- *\ * | *\ *) +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +-esac +- +- +- +-macro_version='2.2.6b' +-macro_revision='1.3017' +- +- +- +- +- +- +- +- +- +- +- +- +- +-ltmain="$ac_aux_dir/ltmain.sh" +- +-# Make sure we can run config.sub. +-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || +- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +-$as_echo_n "checking build system type... " >&6; } +-if test "${ac_cv_build+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_build_alias=$build_alias +-test "x$ac_build_alias" = x && +- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +-test "x$ac_build_alias" = x && +- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || +- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +-$as_echo "$ac_cv_build" >&6; } +-case $ac_cv_build in +-*-*-*) ;; +-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; +-esac +-build=$ac_cv_build +-ac_save_IFS=$IFS; IFS='-' +-set x $ac_cv_build +-shift +-build_cpu=$1 +-build_vendor=$2 +-shift; shift +-# Remember, the first character of IFS is used to create $*, +-# except with old shells: +-build_os=$* +-IFS=$ac_save_IFS +-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +-$as_echo_n "checking host system type... " >&6; } +-if test "${ac_cv_host+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test "x$host_alias" = x; then +- ac_cv_host=$ac_cv_build +-else +- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || +- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +-fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +-$as_echo "$ac_cv_host" >&6; } +-case $ac_cv_host in +-*-*-*) ;; +-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +-esac +-host=$ac_cv_host +-ac_save_IFS=$IFS; IFS='-' +-set x $ac_cv_host +-shift +-host_cpu=$1 +-host_vendor=$2 +-shift; shift +-# Remember, the first character of IFS is used to create $*, +-# except with old shells: +-host_os=$* +-IFS=$ac_save_IFS +-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +-$as_echo_n "checking for a sed that does not truncate output... " >&6; } +-if test "${ac_cv_path_SED+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ +- for ac_i in 1 2 3 4 5 6 7; do +- ac_script="$ac_script$as_nl$ac_script" +- done +- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed +- { ac_script=; unset ac_script;} +- if test -z "$SED"; then +- ac_path_SED_found=false +- # Loop through the user's path and test for each of PROGNAME-LIST +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_prog in sed gsed; do +- for ac_exec_ext in '' $ac_executable_extensions; do +- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" +- { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +-# Check for GNU ac_path_SED and select it if it is found. +- # Check for GNU $ac_path_SED +-case `"$ac_path_SED" --version 2>&1` in +-*GNU*) +- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +-*) +- ac_count=0 +- $as_echo_n 0123456789 >"conftest.in" +- while : +- do +- cat "conftest.in" "conftest.in" >"conftest.tmp" +- mv "conftest.tmp" "conftest.in" +- cp "conftest.in" "conftest.nl" +- $as_echo '' >> "conftest.nl" +- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break +- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break +- as_fn_arith $ac_count + 1 && ac_count=$as_val +- if test $ac_count -gt ${ac_path_SED_max-0}; then +- # Best one so far, save it but keep looking for a better one +- ac_cv_path_SED="$ac_path_SED" +- ac_path_SED_max=$ac_count +- fi +- # 10*(2^10) chars as input seems more than enough +- test $ac_count -gt 10 && break +- done +- rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +-esac +- +- $ac_path_SED_found && break 3 +- done +- done +- done +-IFS=$as_save_IFS +- if test -z "$ac_cv_path_SED"; then +- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 +- fi +-else +- ac_cv_path_SED=$SED +-fi +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +-$as_echo "$ac_cv_path_SED" >&6; } +- SED="$ac_cv_path_SED" +- rm -f conftest.sed +- +-test -z "$SED" && SED=sed +-Xsed="$SED -e 1s/^X//" +- +- +- +- +- +- +- +- +- +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +-$as_echo_n "checking for fgrep... " >&6; } +-if test "${ac_cv_path_FGREP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 +- then ac_cv_path_FGREP="$GREP -F" +- else +- if test -z "$FGREP"; then +- ac_path_FGREP_found=false +- # Loop through the user's path and test for each of PROGNAME-LIST +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_prog in fgrep; do +- for ac_exec_ext in '' $ac_executable_extensions; do +- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" +- { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +-# Check for GNU ac_path_FGREP and select it if it is found. +- # Check for GNU $ac_path_FGREP +-case `"$ac_path_FGREP" --version 2>&1` in +-*GNU*) +- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +-*) +- ac_count=0 +- $as_echo_n 0123456789 >"conftest.in" +- while : +- do +- cat "conftest.in" "conftest.in" >"conftest.tmp" +- mv "conftest.tmp" "conftest.in" +- cp "conftest.in" "conftest.nl" +- $as_echo 'FGREP' >> "conftest.nl" +- "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break +- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break +- as_fn_arith $ac_count + 1 && ac_count=$as_val +- if test $ac_count -gt ${ac_path_FGREP_max-0}; then +- # Best one so far, save it but keep looking for a better one +- ac_cv_path_FGREP="$ac_path_FGREP" +- ac_path_FGREP_max=$ac_count +- fi +- # 10*(2^10) chars as input seems more than enough +- test $ac_count -gt 10 && break +- done +- rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +-esac +- +- $ac_path_FGREP_found && break 3 +- done +- done +- done +-IFS=$as_save_IFS +- if test -z "$ac_cv_path_FGREP"; then +- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 +- fi +-else +- ac_cv_path_FGREP=$FGREP +-fi +- +- fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +-$as_echo "$ac_cv_path_FGREP" >&6; } +- FGREP="$ac_cv_path_FGREP" +- +- +-test -z "$GREP" && GREP=grep +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-# Check whether --with-gnu-ld was given. +-if test "${with_gnu_ld+set}" = set; then : +- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +-else +- with_gnu_ld=no +-fi +- +-ac_prog=ld +-if test "$GCC" = yes; then +- # Check if gcc -print-prog-name=ld gives a path. +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +-$as_echo_n "checking for ld used by $CC... " >&6; } +- 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 +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +-$as_echo_n "checking for GNU ld... " >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +-$as_echo_n "checking for non-GNU ld... " >&6; } +-fi +-if test "${lt_cv_path_LD+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- 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 variants of GNU ld only accept -v. +- # Break only if it was the GNU/non-GNU ld that we prefer. +- case `"$lt_cv_path_LD" -v 2>&1 &5 +-$as_echo "$LD" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +-if test "${lt_cv_prog_gnu_ld+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- # I'd rather use --version here, but apparently some GNU lds only accept -v. +-case `$LD -v 2>&1 &5 +-$as_echo "$lt_cv_prog_gnu_ld" >&6; } +-with_gnu_ld=$lt_cv_prog_gnu_ld +- +- +- +- +- +- +- +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +-if test "${lt_cv_path_NM+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$NM"; then +- # Let the user override the test. +- lt_cv_path_NM="$NM" +-else +- lt_nm_to_check="${ac_tool_prefix}nm" +- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then +- lt_nm_to_check="$lt_nm_to_check nm" +- fi +- for lt_tmp_nm in $lt_nm_to_check; do +- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do +- IFS="$lt_save_ifs" +- test -z "$ac_dir" && ac_dir=. +- tmp_nm="$ac_dir/$lt_tmp_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" +- done +- : ${lt_cv_path_NM=no} +-fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +-$as_echo "$lt_cv_path_NM" >&6; } +-if test "$lt_cv_path_NM" != "no"; then +- NM="$lt_cv_path_NM" +-else +- # Didn't find any BSD compatible name lister, look for dumpbin. +- if test -n "$ac_tool_prefix"; then +- for ac_prog in "dumpbin -symbols" "link -dump -symbols" +- do +- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +-set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_DUMPBIN+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$DUMPBIN"; then +- ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-DUMPBIN=$ac_cv_prog_DUMPBIN +-if test -n "$DUMPBIN"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +-$as_echo "$DUMPBIN" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- test -n "$DUMPBIN" && break +- done +-fi +-if test -z "$DUMPBIN"; then +- ac_ct_DUMPBIN=$DUMPBIN +- for ac_prog in "dumpbin -symbols" "link -dump -symbols" +-do +- # Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_DUMPBIN"; then +- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +-if test -n "$ac_ct_DUMPBIN"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +-$as_echo "$ac_ct_DUMPBIN" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- test -n "$ac_ct_DUMPBIN" && break +-done +- +- if test "x$ac_ct_DUMPBIN" = x; then +- DUMPBIN=":" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- DUMPBIN=$ac_ct_DUMPBIN +- fi +-fi +- +- +- if test "$DUMPBIN" != ":"; then +- NM="$DUMPBIN" +- fi +-fi +-test -z "$NM" && NM=nm +- +- +- +- +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +-$as_echo_n "checking the name lister ($NM) interface... " >&6; } +-if test "${lt_cv_nm_interface+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- lt_cv_nm_interface="BSD nm" +- echo "int some_variable = 0;" > conftest.$ac_ext +- (eval echo "\"\$as_me:6072: $ac_compile\"" >&5) +- (eval "$ac_compile" 2>conftest.err) +- cat conftest.err >&5 +- (eval echo "\"\$as_me:6075: $NM \\\"conftest.$ac_objext\\\"\"" >&5) +- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) +- cat conftest.err >&5 +- (eval echo "\"\$as_me:6078: output\"" >&5) +- cat conftest.out >&5 +- if $GREP 'External.*some_variable' conftest.out > /dev/null; then +- lt_cv_nm_interface="MS dumpbin" +- fi +- rm -f conftest* +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +-$as_echo "$lt_cv_nm_interface" >&6; } +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +-$as_echo_n "checking whether ln -s works... " >&6; } +-LN_S=$as_ln_s +-if test "$LN_S" = "ln -s"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +-$as_echo "no, using $LN_S" >&6; } +-fi +- +-# find the maximum length of command line arguments +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +-$as_echo_n "checking the maximum length of command line arguments... " >&6; } +-if test "${lt_cv_sys_max_cmd_len+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- i=0 +- teststring="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* | cegcc*) +- # 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; +- ;; +- +- amigaos*) +- # On AmigaOS with pdksh, this test takes hours, literally. +- # So we just punt and use a minimum line length of 8192. +- lt_cv_sys_max_cmd_len=8192; +- ;; +- +- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) +- # This has been around since 386BSD, at least. Likely further. +- if test -x /sbin/sysctl; then +- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` +- elif test -x /usr/sbin/sysctl; then +- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` +- else +- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs +- fi +- # And add a safety zone +- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` +- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` +- ;; +- +- interix*) +- # We know the value 262144 and hardcode it with a safety zone (like BSD) +- lt_cv_sys_max_cmd_len=196608 +- ;; +- +- osf*) +- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure +- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not +- # nice to cause kernel panics so lets avoid the loop below. +- # First set a reasonable default. +- lt_cv_sys_max_cmd_len=16384 +- # +- if test -x /sbin/sysconfig; then +- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in +- *1*) lt_cv_sys_max_cmd_len=-1 ;; +- esac +- fi +- ;; +- sco3.2v5*) +- lt_cv_sys_max_cmd_len=102400 +- ;; +- sysv5* | sco5v6* | sysv4.2uw2*) +- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` +- if test -n "$kargmax"; then +- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` +- else +- lt_cv_sys_max_cmd_len=32768 +- fi +- ;; +- *) +- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` +- if test -n "$lt_cv_sys_max_cmd_len"; then +- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` +- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` +- else +- # Make teststring a little bigger before we do anything with it. +- # a 1K string should be a reasonable start. +- for i in 1 2 3 4 5 6 7 8 ; do +- teststring=$teststring$teststring +- done +- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} +- # 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"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ +- = "XX$teststring$teststring"; } >/dev/null 2>&1 && +- test $i != 17 # 1/2 MB should be enough +- do +- i=`expr $i + 1` +- teststring=$teststring$teststring +- done +- # Only check the string length outside the loop. +- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` +- teststring= +- # 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` +- fi +- ;; +- esac +- +-fi +- +-if test -n $lt_cv_sys_max_cmd_len ; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +-$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +-$as_echo "none" >&6; } +-fi +-max_cmd_len=$lt_cv_sys_max_cmd_len +- +- +- +- +- +- +-: ${CP="cp -f"} +-: ${MV="mv -f"} +-: ${RM="rm -f"} +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +-# Try some XSI features +-xsi_shell=no +-( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ +- && eval 'test $(( 1 + 1 )) -eq 2 \ +- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ +- && xsi_shell=yes +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +-$as_echo "$xsi_shell" >&6; } +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +-lt_shell_append=no +-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ +- >/dev/null 2>&1 \ +- && lt_shell_append=yes +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +-$as_echo "$lt_shell_append" >&6; } +- +- +-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then +- lt_unset=unset +-else +- lt_unset=false +-fi +- +- +- +- +- +-# 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 +- lt_SP2NL='tr \040 \012' +- lt_NL2SP='tr \015\012 \040\040' +- ;; +- *) # EBCDIC based system +- lt_SP2NL='tr \100 \n' +- lt_NL2SP='tr \r\n \100\100' +- ;; +-esac +- +- +- +- +- +- +- +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +-$as_echo_n "checking for $LD option to reload object files... " >&6; } +-if test "${lt_cv_ld_reload_flag+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- lt_cv_ld_reload_flag='-r' +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +-$as_echo "$lt_cv_ld_reload_flag" >&6; } +-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' +-case $host_os in +- darwin*) +- if test "$GCC" = yes; then +- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +- else +- reload_cmds='$LD$reload_flag -o $output$reload_objs' +- fi +- ;; +-esac +- +- +- +- +- +- +- +- +- +-if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +-set dummy ${ac_tool_prefix}objdump; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_OBJDUMP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$OBJDUMP"; then +- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-OBJDUMP=$ac_cv_prog_OBJDUMP +-if test -n "$OBJDUMP"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +-$as_echo "$OBJDUMP" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_OBJDUMP"; then +- ac_ct_OBJDUMP=$OBJDUMP +- # Extract the first word of "objdump", so it can be a program name with args. +-set dummy objdump; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_OBJDUMP"; then +- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_OBJDUMP="objdump" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +-if test -n "$ac_ct_OBJDUMP"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +-$as_echo "$ac_ct_OBJDUMP" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_OBJDUMP" = x; then +- OBJDUMP="false" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- OBJDUMP=$ac_ct_OBJDUMP +- fi +-else +- OBJDUMP="$ac_cv_prog_OBJDUMP" +-fi +- +-test -z "$OBJDUMP" && OBJDUMP=objdump +- +- +- +- +- +- +- +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +-$as_echo_n "checking how to recognize dependent libraries... " >&6; } +-if test "${lt_cv_deplibs_check_method+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- 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 +-aix[4-9]*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-beos*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-bsdi[45]*) +- 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*) +- # func_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='func_win32_libid' +- ;; +- +-mingw* | pw32*) +- # Base MSYS/MinGW do not provide the 'file' command needed by +- # func_win32_libid shell function, so use a weaker test based on 'objdump', +- # unless we find 'file', for example because we are cross-compiling. +- if ( file / ) >/dev/null 2>&1; then +- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' +- lt_cv_file_magic_cmd='func_win32_libid' +- else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' +- lt_cv_file_magic_cmd='$OBJDUMP -f' +- fi +- ;; +- +-cegcc) +- # use the weaker test based on 'objdump'. See mingw*. +- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' +- lt_cv_file_magic_cmd='$OBJDUMP -f' +- ;; +- +-darwin* | rhapsody*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-freebsd* | dragonfly*) +- 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|DragonFly)/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 +- ;; +- +-interix[3-9]*) +- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here +- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' +- ;; +- +-irix5* | irix6* | nonstopux*) +- case $LD in +- *-32|*"-32 ") libmagic=32-bit;; +- *-n32|*"-n32 ") libmagic=N32;; +- *-64|*"-64 ") libmagic=64-bit;; +- *) libmagic=never-match;; +- esac +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-# This must be Linux ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-netbsd* | netbsdelf*-gnu) +- 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=pass_all +- ;; +- +-openbsd*) +- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then +- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' +- else +- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' +- fi +- ;; +- +-osf3* | osf4* | osf5*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-rdos*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-solaris*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) +- lt_cv_deplibs_check_method=pass_all +- ;; +- +-sysv4 | sysv4.3*) +- 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 +- ;; +- pc) +- lt_cv_deplibs_check_method=pass_all +- ;; +- esac +- ;; +- +-tpf*) +- lt_cv_deplibs_check_method=pass_all +- ;; +-esac +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +-$as_echo "$lt_cv_deplibs_check_method" >&6; } +-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 +- +- +- +- +- +- +- +- +- +- +- +- +-if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_AR+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$AR"; then +- ac_cv_prog_AR="$AR" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-AR=$ac_cv_prog_AR +-if test -n "$AR"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +-$as_echo "$AR" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_AR"; then +- ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_AR"; then +- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_AR="ar" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_AR=$ac_cv_prog_ac_ct_AR +-if test -n "$ac_ct_AR"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +-$as_echo "$ac_ct_AR" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_AR" = x; then +- AR="false" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- AR=$ac_ct_AR +- fi +-else +- AR="$ac_cv_prog_AR" +-fi +- +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru +- +- +- +- +- +- +- +- +- +- +- +-if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +-set dummy ${ac_tool_prefix}strip; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_STRIP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$STRIP"; then +- ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_STRIP="${ac_tool_prefix}strip" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-STRIP=$ac_cv_prog_STRIP +-if test -n "$STRIP"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +-$as_echo "$STRIP" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_STRIP"; then +- ac_ct_STRIP=$STRIP +- # Extract the first word of "strip", so it can be a program name with args. +-set dummy strip; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_STRIP"; then +- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_STRIP="strip" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +-if test -n "$ac_ct_STRIP"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +-$as_echo "$ac_ct_STRIP" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_STRIP" = x; then +- STRIP=":" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- STRIP=$ac_ct_STRIP +- fi +-else +- STRIP="$ac_cv_prog_STRIP" +-fi +- +-test -z "$STRIP" && STRIP=: +- +- +- +- +- +- +-if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_RANLIB+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$RANLIB"; then +- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-RANLIB=$ac_cv_prog_RANLIB +-if test -n "$RANLIB"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +-$as_echo "$RANLIB" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_RANLIB"; then +- ac_ct_RANLIB=$RANLIB +- # Extract the first word of "ranlib", so it can be a program name with args. +-set dummy ranlib; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_RANLIB"; then +- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_RANLIB="ranlib" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +-if test -n "$ac_ct_RANLIB"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +-$as_echo "$ac_ct_RANLIB" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_RANLIB" = x; then +- RANLIB=":" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- RANLIB=$ac_ct_RANLIB +- fi +-else +- RANLIB="$ac_cv_prog_RANLIB" +-fi +- +-test -z "$RANLIB" && RANLIB=: +- +- +- +- +- +- +-# Determine commands to create old-style static archives. +-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +-old_postinstall_cmds='chmod 644 $oldlib' +-old_postuninstall_cmds= +- +-if test -n "$RANLIB"; then +- case $host_os in +- openbsd*) +- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" +- ;; +- *) +- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" +- ;; +- esac +- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +-fi +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-# If no C compiler was specified, use CC. +-LTCC=${LTCC-"$CC"} +- +-# If no C compiler flags were specified, use CFLAGS. +-LTCFLAGS=${LTCFLAGS-"$CFLAGS"} +- +-# Allow CC to be a program name with arguments. +-compiler=$CC +- +- +-# Check for command to grab the raw symbol name followed by C symbol from nm. +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- +-# 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]*\)' +- +-# Define system-specific variables. +-case $host_os in +-aix*) +- symcode='[BCDT]' +- ;; +-cygwin* | mingw* | pw32* | cegcc*) +- symcode='[ABCDGISTW]' +- ;; +-hpux*) +- if test "$host_cpu" = ia64; then +- symcode='[ABCDEGRST]' +- fi +- ;; +-irix* | nonstopux*) +- symcode='[BCDEGRST]' +- ;; +-osf*) +- symcode='[BCDEGQRST]' +- ;; +-solaris*) +- symcode='[BDRT]' +- ;; +-sco3.2v5*) +- symcode='[DT]' +- ;; +-sysv4.2uw2*) +- symcode='[DT]' +- ;; +-sysv5* | sco5v6* | unixware* | OpenUNIX*) +- symcode='[ABDT]' +- ;; +-sysv4) +- symcode='[DFNSTU]' +- ;; +-esac +- +-# If we're using GNU nm, then use its standard symbol codes. +-case `$NM -V 2>&1` in +-*GNU* | *'with BFD'*) +- symcode='[ABCDGIRSTW]' ;; +-esac +- +-# Transform an extracted symbol line into a proper C declaration. +-# Some systems (esp. on ia64) link data and code symbols differently, +-# so use this general approach. +-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \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\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +- +-# 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 +- +-# Try without a prefix underscore, then with it. +-for ac_symprfx in "" "_"; do +- +- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. +- symxfrm="\\1 $ac_symprfx\\2 \\2" +- +- # Write the raw and C identifiers. +- if test "$lt_cv_nm_interface" = "MS dumpbin"; then +- # Fake it for dumpbin and say T for any non-static function +- # and D for any global variable. +- # Also find C++ and __fastcall symbols from MSVC++, +- # which start with @ or ?. +- lt_cv_sys_global_symbol_pipe="$AWK '"\ +-" {last_section=section; section=\$ 3};"\ +-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +-" \$ 0!~/External *\|/{next};"\ +-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +-" {if(hide[section]) next};"\ +-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +-" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +-" ' prfx=^$ac_symprfx" +- else +- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" +- fi +- +- # Check to see that the pipe works correctly. +- pipe_works=no +- +- rm -f conftest* +- cat > conftest.$ac_ext <<_LT_EOF +-#ifdef __cplusplus +-extern "C" { +-#endif +-char nm_test_var; +-void nm_test_func(void); +-void nm_test_func(void){} +-#ifdef __cplusplus +-} +-#endif +-int main(){nm_test_var='a';nm_test_func();return(0);} +-_LT_EOF +- +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- # Now try to grab the symbols. +- nlist=conftest.nm +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 +- (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } && 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 <<_LT_EOF > conftest.$ac_ext +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-_LT_EOF +- # Now generate the symbol file. +- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' +- +- cat <<_LT_EOF >> conftest.$ac_ext +- +-/* The mapping between symbol names and symbols. */ +-const struct { +- const char *name; +- void *address; +-} +-lt__PROGRAM__LTX_preloaded_symbols[] = +-{ +- { "@PROGRAM@", (void *) 0 }, +-_LT_EOF +- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext +- cat <<\_LT_EOF >> conftest.$ac_ext +- {0, (void *) 0} +-}; +- +-/* This works around a problem in FreeBSD linker */ +-#ifdef FREEBSD_WORKAROUND +-static const void *lt_preloaded_setup() { +- return lt__PROGRAM__LTX_preloaded_symbols; +-} +-#endif +- +-#ifdef __cplusplus +-} +-#endif +-_LT_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_prog_compiler_no_builtin_flag" +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } && 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" >&5 +- fi +- else +- echo "cannot find nm_test_var in $nlist" >&5 +- fi +- else +- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 +- fi +- else +- echo "$progname: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- fi +- rm -rf 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 +- +-fi +- +-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 +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +-$as_echo "failed" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +-$as_echo "ok" >&6; } +-fi +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-# Check whether --enable-libtool-lock was given. +-if test "${enable_libtool_lock+set}" = set; then : +- enableval=$enable_libtool_lock; +-fi +- +-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 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; 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 7283 "configure"' > conftest.$ac_ext +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; 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-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +-s390*-*linux*|s390*-*tpf*|sparc*-*linux*) +- # Find out which ABI we are using. +- echo 'int i;' > conftest.$ac_ext +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- case `/usr/bin/file conftest.o` in +- *32-bit*) +- case $host in +- x86_64-*kfreebsd*-gnu) +- LD="${LD-ld} -m elf_i386_fbsd" +- ;; +- x86_64-*linux*) +- LD="${LD-ld} -m elf_i386" +- ;; +- ppc64-*linux*|powerpc64-*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*) +- case $host in +- x86_64-*kfreebsd*-gnu) +- LD="${LD-ld} -m elf_x86_64_fbsd" +- ;; +- x86_64-*linux*) +- LD="${LD-ld} -m elf_x86_64" +- ;; +- ppc*-*linux*|powerpc*-*linux*) +- LD="${LD-ld} -m elf64ppc" +- ;; +- s390*-*linux*|s390*-*tpf*) +- 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" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +-$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +-if test "${lt_cv_cc_needs_belf+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- lt_cv_cc_needs_belf=yes +-else +- lt_cv_cc_needs_belf=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +-$as_echo "$lt_cv_cc_needs_belf" >&6; } +- 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 +- ;; +-sparc*-*solaris*) +- # Find out which ABI we are using. +- echo 'int i;' > conftest.$ac_ext +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- case `/usr/bin/file conftest.o` in +- *64-bit*) +- case $lt_cv_prog_gnu_ld in +- yes*) LD="${LD-ld} -m elf64_sparc" ;; +- *) +- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then +- LD="${LD-ld} -64" +- fi +- ;; +- esac +- ;; +- esac +- fi +- rm -rf conftest* +- ;; +-esac +- +-need_locks="$enable_libtool_lock" +- +- +- case $host_os in +- rhapsody* | darwin*) +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$DSYMUTIL"; then +- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-DSYMUTIL=$ac_cv_prog_DSYMUTIL +-if test -n "$DSYMUTIL"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +-$as_echo "$DSYMUTIL" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_DSYMUTIL"; then +- ac_ct_DSYMUTIL=$DSYMUTIL +- # Extract the first word of "dsymutil", so it can be a program name with args. +-set dummy dsymutil; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_DSYMUTIL"; then +- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +-if test -n "$ac_ct_DSYMUTIL"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +-$as_echo "$ac_ct_DSYMUTIL" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_DSYMUTIL" = x; then +- DSYMUTIL=":" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- DSYMUTIL=$ac_ct_DSYMUTIL +- fi +-else +- DSYMUTIL="$ac_cv_prog_DSYMUTIL" +-fi +- +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +-set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_NMEDIT+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$NMEDIT"; then +- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-NMEDIT=$ac_cv_prog_NMEDIT +-if test -n "$NMEDIT"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +-$as_echo "$NMEDIT" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_NMEDIT"; then +- ac_ct_NMEDIT=$NMEDIT +- # Extract the first word of "nmedit", so it can be a program name with args. +-set dummy nmedit; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_NMEDIT"; then +- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_NMEDIT="nmedit" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +-if test -n "$ac_ct_NMEDIT"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +-$as_echo "$ac_ct_NMEDIT" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_NMEDIT" = x; then +- NMEDIT=":" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- NMEDIT=$ac_ct_NMEDIT +- fi +-else +- NMEDIT="$ac_cv_prog_NMEDIT" +-fi +- +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +-set dummy ${ac_tool_prefix}lipo; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_LIPO+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$LIPO"; then +- ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_LIPO="${ac_tool_prefix}lipo" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-LIPO=$ac_cv_prog_LIPO +-if test -n "$LIPO"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +-$as_echo "$LIPO" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_LIPO"; then +- ac_ct_LIPO=$LIPO +- # Extract the first word of "lipo", so it can be a program name with args. +-set dummy lipo; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_LIPO"; then +- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_LIPO="lipo" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +-if test -n "$ac_ct_LIPO"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +-$as_echo "$ac_ct_LIPO" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_LIPO" = x; then +- LIPO=":" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- LIPO=$ac_ct_LIPO +- fi +-else +- LIPO="$ac_cv_prog_LIPO" +-fi +- +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +-set dummy ${ac_tool_prefix}otool; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_OTOOL+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$OTOOL"; then +- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_OTOOL="${ac_tool_prefix}otool" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-OTOOL=$ac_cv_prog_OTOOL +-if test -n "$OTOOL"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +-$as_echo "$OTOOL" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_OTOOL"; then +- ac_ct_OTOOL=$OTOOL +- # Extract the first word of "otool", so it can be a program name with args. +-set dummy otool; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_OTOOL"; then +- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_OTOOL="otool" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +-if test -n "$ac_ct_OTOOL"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +-$as_echo "$ac_ct_OTOOL" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_OTOOL" = x; then +- OTOOL=":" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- OTOOL=$ac_ct_OTOOL +- fi +-else +- OTOOL="$ac_cv_prog_OTOOL" +-fi +- +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +-set dummy ${ac_tool_prefix}otool64; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_OTOOL64+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$OTOOL64"; then +- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-OTOOL64=$ac_cv_prog_OTOOL64 +-if test -n "$OTOOL64"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +-$as_echo "$OTOOL64" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_prog_OTOOL64"; then +- ac_ct_OTOOL64=$OTOOL64 +- # Extract the first word of "otool64", so it can be a program name with args. +-set dummy otool64; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test -n "$ac_ct_OTOOL64"; then +- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +-else +-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_prog_ac_ct_OTOOL64="otool64" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +-fi +-fi +-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +-if test -n "$ac_ct_OTOOL64"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +-$as_echo "$ac_ct_OTOOL64" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_ct_OTOOL64" = x; then +- OTOOL64=":" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- OTOOL64=$ac_ct_OTOOL64 +- fi +-else +- OTOOL64="$ac_cv_prog_OTOOL64" +-fi +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +-$as_echo_n "checking for -single_module linker flag... " >&6; } +-if test "${lt_cv_apple_cc_single_mod+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- lt_cv_apple_cc_single_mod=no +- if test -z "${LT_MULTI_MODULE}"; then +- # By default we will add the -single_module flag. You can override +- # by either setting the environment variable LT_MULTI_MODULE +- # non-empty at configure time, or by adding -multi_module to the +- # link flags. +- rm -rf libconftest.dylib* +- echo "int foo(void){return 1;}" > conftest.c +- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +--dynamiclib -Wl,-single_module conftest.c" >&5 +- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err +- _lt_result=$? +- if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then +- lt_cv_apple_cc_single_mod=yes +- else +- cat conftest.err >&5 +- fi +- rm -rf libconftest.dylib* +- rm -f conftest.* +- fi +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +-$as_echo "$lt_cv_apple_cc_single_mod" >&6; } +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- lt_cv_ld_exported_symbols_list=no +- save_LDFLAGS=$LDFLAGS +- echo "_main" > conftest.sym +- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- lt_cv_ld_exported_symbols_list=yes +-else +- lt_cv_ld_exported_symbols_list=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } +- case $host_os in +- rhapsody* | darwin1.[012]) +- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; +- darwin1.*) +- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; +- darwin*) # darwin 5.x on +- # if running on 10.5 or later, the deployment target defaults +- # to the OS version, if on x86, and 10.4, the deployment +- # target defaults to 10.4. Don't you love it? +- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in +- 10.0,*86*-darwin8*|10.0,*-darwin[91]*) +- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; +- 10.[012]*) +- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; +- 10.*) +- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; +- esac +- ;; +- esac +- if test "$lt_cv_apple_cc_single_mod" = "yes"; then +- _lt_dar_single_mod='$single_module' +- fi +- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then +- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' +- else +- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' +- fi +- if test "$DSYMUTIL" != ":"; then +- _lt_dsymutil='~$DSYMUTIL $lib || :' +- else +- _lt_dsymutil= +- fi +- ;; +- esac +- +-for ac_header in dlfcn.h +-do : +- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +-" +-if test "x$ac_cv_header_dlfcn_h" = x""yes; then : +- cat >>confdefs.h <<_ACEOF +-#define HAVE_DLFCN_H 1 +-_ACEOF +- +-fi +- +-done +- +- +- +-# Set options +- +- +- +- enable_dlopen=no +- +- +- enable_win32_dll=no +- +- +- # Check whether --enable-shared was given. +-if test "${enable_shared+set}" = set; then : +- enableval=$enable_shared; 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 +-else +- enable_shared=yes +-fi +- +- +- +- +- +- +- +- +- +- # Check whether --enable-static was given. +-if test "${enable_static+set}" = set; then : +- enableval=$enable_static; 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 +-else +- enable_static=yes +-fi +- +- +- +- +- +- +- +- +- +- +-# Check whether --with-pic was given. +-if test "${with_pic+set}" = set; then : +- withval=$with_pic; pic_mode="$withval" +-else +- pic_mode=default +-fi +- +- +-test -z "$pic_mode" && pic_mode=default +- +- +- +- +- +- +- +- # Check whether --enable-fast-install was given. +-if test "${enable_fast_install+set}" = set; then : +- enableval=$enable_fast_install; 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 +-else +- enable_fast_install=yes +-fi +- +- +- +- +- +- +- +- +- +- +- +-# This can be used to rebuild libtool when needed +-LIBTOOL_DEPS="$ltmain" +- +-# Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-test -z "$LN_S" && LN_S="ln -s" +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-if test -n "${ZSH_VERSION+set}" ; then +- setopt NO_GLOB_SUBST +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +-$as_echo_n "checking for objdir... " >&6; } +-if test "${lt_cv_objdir+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- 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 +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +-$as_echo "$lt_cv_objdir" >&6; } +-objdir=$lt_cv_objdir +- +- +- +- +- +-cat >>confdefs.h <<_ACEOF +-#define LT_OBJDIR "$lt_cv_objdir/" +-_ACEOF +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-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. +-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 delay expansion of an escaped single quote. +-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' +- +-# Sed substitution to avoid accidental globbing in evaled expressions +-no_glob_subst='s/\*/\\\*/g' +- +-# Global variables: +-ofile=libtool +-can_build_shared=yes +- +-# All known linkers require a `.a' archive for static linking (except MSVC, +-# which needs '.lib'). +-libext=a +- +-with_gnu_ld="$lt_cv_prog_gnu_ld" +- +-old_CC="$CC" +-old_CFLAGS="$CFLAGS" +- +-# Set sane defaults for various variables +-test -z "$CC" && CC=cc +-test -z "$LTCC" && LTCC=$CC +-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +-test -z "$LD" && LD=ld +-test -z "$ac_objext" && ac_objext=o +- +-for cc_temp in $compiler""; do +- case $cc_temp in +- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; +- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; +- \-*) ;; +- *) break;; +- esac +-done +-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +- +- +-# Only perform the check for file, if the check method requires it +-test -z "$MAGIC_CMD" && MAGIC_CMD=file +-case $deplibs_check_method in +-file_magic*) +- if test "$file_magic_cmd" = '$MAGIC_CMD'; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- 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 +- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" +- for ac_dir in $ac_dummy; do +- IFS="$lt_save_ifs" +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/${ac_tool_prefix}file; then +- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" +- 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 <<_LT_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 +- +-_LT_EOF +- fi ;; +- esac +- fi +- break +- fi +- done +- IFS="$lt_save_ifs" +- MAGIC_CMD="$lt_save_MAGIC_CMD" +- ;; +-esac +-fi +- +-MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +-if test -n "$MAGIC_CMD"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +-$as_echo "$MAGIC_CMD" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- +- +- +-if test -z "$lt_cv_path_MAGIC_CMD"; then +- if test -n "$ac_tool_prefix"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +-$as_echo_n "checking for file... " >&6; } +-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- 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 +- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" +- for ac_dir in $ac_dummy; do +- IFS="$lt_save_ifs" +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/file; then +- lt_cv_path_MAGIC_CMD="$ac_dir/file" +- 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 <<_LT_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 +- +-_LT_EOF +- fi ;; +- esac +- fi +- break +- fi +- done +- IFS="$lt_save_ifs" +- MAGIC_CMD="$lt_save_MAGIC_CMD" +- ;; +-esac +-fi +- +-MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +-if test -n "$MAGIC_CMD"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +-$as_echo "$MAGIC_CMD" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- else +- MAGIC_CMD=: +- fi +-fi +- +- fi +- ;; +-esac +- +-# Use C for the default configuration in the libtool script +- +-lt_save_CC="$CC" +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- +-# Source file extension for C test sources. +-ac_ext=c +- +-# Object file extension for compiled C test sources. +-objext=o +-objext=$objext +- +-# Code to be used in simple compile tests +-lt_simple_compile_test_code="int some_variable = 0;" +- +-# Code to be used in simple link tests +-lt_simple_link_test_code='int main(){return(0);}' +- +- +- +- +- +- +- +-# If no C compiler was specified, use CC. +-LTCC=${LTCC-"$CC"} +- +-# If no C compiler flags were specified, use CFLAGS. +-LTCFLAGS=${LTCFLAGS-"$CFLAGS"} +- +-# Allow CC to be a program name with arguments. +-compiler=$CC +- +-# Save the default compiler, since it gets overwritten when the other +-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +-compiler_DEFAULT=$CC +- +-# save warnings/boilerplate of simple test code +-ac_outfile=conftest.$ac_objext +-echo "$lt_simple_compile_test_code" >conftest.$ac_ext +-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +-_lt_compiler_boilerplate=`cat conftest.err` +-$RM conftest* +- +-ac_outfile=conftest.$ac_objext +-echo "$lt_simple_link_test_code" >conftest.$ac_ext +-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +-_lt_linker_boilerplate=`cat conftest.err` +-$RM -r conftest* +- +- +-if test -n "$compiler"; then +- +-lt_prog_compiler_no_builtin_flag= +- +-if test "$GCC" = yes; then +- lt_prog_compiler_no_builtin_flag=' -fno-builtin' +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- lt_cv_prog_compiler_rtti_exceptions=no +- ac_outfile=conftest.$ac_objext +- echo "$lt_simple_compile_test_code" > conftest.$ac_ext +- lt_compiler_flag="-fno-rtti -fno-exceptions" +- # 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}\{0,1\} :&$lt_compiler_flag :; t' \ +- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ +- -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:8541: $lt_compile\"" >&5) +- (eval "$lt_compile" 2>conftest.err) +- ac_status=$? +- cat conftest.err >&5 +- echo "$as_me:8545: \$? = $ac_status" >&5 +- 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 other than the usual output. +- $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp +- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 +- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then +- lt_cv_prog_compiler_rtti_exceptions=yes +- fi +- fi +- $RM conftest* +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } +- +-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then +- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +-else +- : +-fi +- +-fi +- +- +- +- +- +- +- lt_prog_compiler_wl= +-lt_prog_compiler_pic= +-lt_prog_compiler_static= +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +- +- if test "$GCC" = yes; then +- lt_prog_compiler_wl='-Wl,' +- lt_prog_compiler_static='-static' +- +- case $host_os in +- aix*) +- # All AIX code is PIC. +- if test "$host_cpu" = ia64; then +- # AIX 5 now supports IA64 processor +- lt_prog_compiler_static='-Bstatic' +- fi +- ;; +- +- amigaos*) +- case $host_cpu in +- powerpc) +- # see comment about AmigaOS4 .so support +- lt_prog_compiler_pic='-fPIC' +- ;; +- m68k) +- # 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_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' +- ;; +- esac +- ;; +- +- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) +- # PIC is the default for these OSes. +- ;; +- +- mingw* | cygwin* | pw32* | os2* | cegcc*) +- # 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). +- # Although the cygwin gcc ignores -fPIC, still need this for old-style +- # (--disable-auto-import) libraries +- lt_prog_compiler_pic='-DDLL_EXPORT' +- ;; +- +- darwin* | rhapsody*) +- # PIC is the default on this platform +- # Common symbols not allowed in MH_DYLIB files +- lt_prog_compiler_pic='-fno-common' +- ;; +- +- hpux*) +- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit +- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag +- # sets the default TLS model and affects inlining. +- case $host_cpu in +- hppa*64*) +- # +Z the default +- ;; +- *) +- lt_prog_compiler_pic='-fPIC' +- ;; +- esac +- ;; +- +- interix[3-9]*) +- # Interix 3.x gcc -fpic/-fPIC options generate broken code. +- # Instead, we relocate shared libraries at runtime. +- ;; +- +- msdosdjgpp*) +- # Just because we use GCC doesn't mean we suddenly get shared libraries +- # on systems that don't support them. +- lt_prog_compiler_can_build_shared=no +- enable_shared=no +- ;; +- +- *nto* | *qnx*) +- # QNX uses GNU C++, but need to define -shared option too, otherwise +- # it will coredump. +- lt_prog_compiler_pic='-fPIC -shared' +- ;; +- +- sysv4*MP*) +- if test -d /usr/nec; then +- lt_prog_compiler_pic=-Kconform_pic +- fi +- ;; +- +- *) +- lt_prog_compiler_pic='-fPIC' +- ;; +- esac +- else +- # PORTME Check for flag to pass linker flags through the system compiler. +- case $host_os in +- aix*) +- lt_prog_compiler_wl='-Wl,' +- if test "$host_cpu" = ia64; then +- # AIX 5 now supports IA64 processor +- lt_prog_compiler_static='-Bstatic' +- else +- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' +- fi +- ;; +- +- mingw* | cygwin* | pw32* | os2* | cegcc*) +- # 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_prog_compiler_pic='-DDLL_EXPORT' +- ;; +- +- hpux9* | hpux10* | hpux11*) +- lt_prog_compiler_wl='-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_prog_compiler_pic='+Z' +- ;; +- esac +- # Is there a better lt_prog_compiler_static that works with the bundled CC? +- lt_prog_compiler_static='${wl}-a ${wl}archive' +- ;; +- +- irix5* | irix6* | nonstopux*) +- lt_prog_compiler_wl='-Wl,' +- # PIC (with -KPIC) is the default. +- lt_prog_compiler_static='-non_shared' +- ;; +- +- linux* | k*bsd*-gnu | kopensolaris*-gnu) +- case $cc_basename in +- # old Intel for x86_64 which still supported -KPIC. +- ecc*) +- lt_prog_compiler_wl='-Wl,' +- lt_prog_compiler_pic='-KPIC' +- lt_prog_compiler_static='-static' +- ;; +- # icc used to be incompatible with GCC. +- # ICC 10 doesn't accept -KPIC any more. +- icc* | ifort*) +- lt_prog_compiler_wl='-Wl,' +- lt_prog_compiler_pic='-fPIC' +- lt_prog_compiler_static='-static' +- ;; +- # Lahey Fortran 8.1. +- lf95*) +- lt_prog_compiler_wl='-Wl,' +- lt_prog_compiler_pic='--shared' +- lt_prog_compiler_static='--static' +- ;; +- pgcc* | pgf77* | pgf90* | pgf95*) +- # Portland Group compilers (*not* the Pentium gcc compiler, +- # which looks to be a dead project) +- lt_prog_compiler_wl='-Wl,' +- lt_prog_compiler_pic='-fpic' +- lt_prog_compiler_static='-Bstatic' +- ;; +- ccc*) +- lt_prog_compiler_wl='-Wl,' +- # All Alpha code is PIC. +- lt_prog_compiler_static='-non_shared' +- ;; +- xl*) +- # IBM XL C 8.0/Fortran 10.1 on PPC +- lt_prog_compiler_wl='-Wl,' +- lt_prog_compiler_pic='-qpic' +- lt_prog_compiler_static='-qstaticlink' +- ;; +- *) +- case `$CC -V 2>&1 | sed 5q` in +- *Sun\ C*) +- # Sun C 5.9 +- lt_prog_compiler_pic='-KPIC' +- lt_prog_compiler_static='-Bstatic' +- lt_prog_compiler_wl='-Wl,' +- ;; +- *Sun\ F*) +- # Sun Fortran 8.3 passes all unrecognized flags to the linker +- lt_prog_compiler_pic='-KPIC' +- lt_prog_compiler_static='-Bstatic' +- lt_prog_compiler_wl='' +- ;; +- esac +- ;; +- esac +- ;; +- +- newsos6) +- lt_prog_compiler_pic='-KPIC' +- lt_prog_compiler_static='-Bstatic' +- ;; +- +- *nto* | *qnx*) +- # QNX uses GNU C++, but need to define -shared option too, otherwise +- # it will coredump. +- lt_prog_compiler_pic='-fPIC -shared' +- ;; +- +- osf3* | osf4* | osf5*) +- lt_prog_compiler_wl='-Wl,' +- # All OSF/1 code is PIC. +- lt_prog_compiler_static='-non_shared' +- ;; +- +- rdos*) +- lt_prog_compiler_static='-non_shared' +- ;; +- +- solaris*) +- lt_prog_compiler_pic='-KPIC' +- lt_prog_compiler_static='-Bstatic' +- case $cc_basename in +- f77* | f90* | f95*) +- lt_prog_compiler_wl='-Qoption ld ';; +- *) +- lt_prog_compiler_wl='-Wl,';; +- esac +- ;; +- +- sunos4*) +- lt_prog_compiler_wl='-Qoption ld ' +- lt_prog_compiler_pic='-PIC' +- lt_prog_compiler_static='-Bstatic' +- ;; +- +- sysv4 | sysv4.2uw2* | sysv4.3*) +- lt_prog_compiler_wl='-Wl,' +- lt_prog_compiler_pic='-KPIC' +- lt_prog_compiler_static='-Bstatic' +- ;; +- +- sysv4*MP*) +- if test -d /usr/nec ;then +- lt_prog_compiler_pic='-Kconform_pic' +- lt_prog_compiler_static='-Bstatic' +- fi +- ;; +- +- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) +- lt_prog_compiler_wl='-Wl,' +- lt_prog_compiler_pic='-KPIC' +- lt_prog_compiler_static='-Bstatic' +- ;; +- +- unicos*) +- lt_prog_compiler_wl='-Wl,' +- lt_prog_compiler_can_build_shared=no +- ;; +- +- uts4*) +- lt_prog_compiler_pic='-pic' +- lt_prog_compiler_static='-Bstatic' +- ;; +- +- *) +- lt_prog_compiler_can_build_shared=no +- ;; +- esac +- fi +- +-case $host_os in +- # For platforms which do not support PIC, -DPIC is meaningless: +- *djgpp*) +- lt_prog_compiler_pic= +- ;; +- *) +- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" +- ;; +-esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- +- +- +-# +-# Check to make sure the PIC flag actually works. +-# +-if test -n "$lt_prog_compiler_pic"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- lt_cv_prog_compiler_pic_works=no +- ac_outfile=conftest.$ac_objext +- echo "$lt_simple_compile_test_code" > conftest.$ac_ext +- lt_compiler_flag="$lt_prog_compiler_pic -DPIC" +- # 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}\{0,1\} :&$lt_compiler_flag :; t' \ +- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ +- -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:8880: $lt_compile\"" >&5) +- (eval "$lt_compile" 2>conftest.err) +- ac_status=$? +- cat conftest.err >&5 +- echo "$as_me:8884: \$? = $ac_status" >&5 +- 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 other than the usual output. +- $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp +- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 +- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then +- lt_cv_prog_compiler_pic_works=yes +- fi +- fi +- $RM conftest* +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } +- +-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then +- case $lt_prog_compiler_pic in +- "" | " "*) ;; +- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; +- esac +-else +- lt_prog_compiler_pic= +- lt_prog_compiler_can_build_shared=no +-fi +- +-fi +- +- +- +- +- +- +-# +-# Check to make sure the static flag actually works. +-# +-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +-if test "${lt_cv_prog_compiler_static_works+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- lt_cv_prog_compiler_static_works=no +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS $lt_tmp_static_flag" +- echo "$lt_simple_link_test_code" > conftest.$ac_ext +- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then +- # The linker 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>&5 +- $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp +- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 +- if diff conftest.exp conftest.er2 >/dev/null; then +- lt_cv_prog_compiler_static_works=yes +- fi +- else +- lt_cv_prog_compiler_static_works=yes +- fi +- fi +- $RM -r conftest* +- LDFLAGS="$save_LDFLAGS" +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +-$as_echo "$lt_cv_prog_compiler_static_works" >&6; } +- +-if test x"$lt_cv_prog_compiler_static_works" = xyes; then +- : +-else +- lt_prog_compiler_static= +-fi +- +- +- +- +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +-if test "${lt_cv_prog_compiler_c_o+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- lt_cv_prog_compiler_c_o=no +- $RM -r conftest 2>/dev/null +- mkdir conftest +- cd conftest +- mkdir out +- echo "$lt_simple_compile_test_code" > conftest.$ac_ext +- +- 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}\{0,1\} :&$lt_compiler_flag :; t' \ +- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ +- -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:8985: $lt_compile\"" >&5) +- (eval "$lt_compile" 2>out/conftest.err) +- ac_status=$? +- cat out/conftest.err >&5 +- echo "$as_me:8989: \$? = $ac_status" >&5 +- 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 +- $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp +- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 +- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then +- lt_cv_prog_compiler_c_o=yes +- fi +- fi +- chmod u+w . 2>&5 +- $RM conftest* +- # SGI C++ compiler will create directory out/ii_files/ for +- # template instantiation +- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files +- $RM out/* && rmdir out +- cd .. +- $RM -r conftest +- $RM conftest* +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +-$as_echo "$lt_cv_prog_compiler_c_o" >&6; } +- +- +- +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +-if test "${lt_cv_prog_compiler_c_o+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- lt_cv_prog_compiler_c_o=no +- $RM -r conftest 2>/dev/null +- mkdir conftest +- cd conftest +- mkdir out +- echo "$lt_simple_compile_test_code" > conftest.$ac_ext +- +- 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}\{0,1\} :&$lt_compiler_flag :; t' \ +- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ +- -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:9040: $lt_compile\"" >&5) +- (eval "$lt_compile" 2>out/conftest.err) +- ac_status=$? +- cat out/conftest.err >&5 +- echo "$as_me:9044: \$? = $ac_status" >&5 +- 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 +- $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp +- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 +- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then +- lt_cv_prog_compiler_c_o=yes +- fi +- fi +- chmod u+w . 2>&5 +- $RM conftest* +- # SGI C++ compiler will create directory out/ii_files/ for +- # template instantiation +- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files +- $RM out/* && rmdir out +- cd .. +- $RM -r conftest +- $RM conftest* +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +-$as_echo "$lt_cv_prog_compiler_c_o" >&6; } +- +- +- +- +-hard_links="nottested" +-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then +- # do not overwrite the value of need_locks provided by the user +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +-$as_echo_n "checking if we can lock with hard links... " >&6; } +- 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 +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +-$as_echo "$hard_links" >&6; } +- if test "$hard_links" = no; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} +- need_locks=warn +- fi +-else +- need_locks=no +-fi +- +- +- +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } +- +- runpath_var= +- allow_undefined_flag= +- always_export_symbols=no +- archive_cmds= +- archive_expsym_cmds= +- compiler_needs_object=no +- enable_shared_with_static_runtimes=no +- export_dynamic_flag_spec= +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +- hardcode_automatic=no +- hardcode_direct=no +- hardcode_direct_absolute=no +- hardcode_libdir_flag_spec= +- hardcode_libdir_flag_spec_ld= +- hardcode_libdir_separator= +- hardcode_minus_L=no +- hardcode_shlibpath_var=unsupported +- inherit_rpath=no +- link_all_deplibs=unknown +- module_cmds= +- module_expsym_cmds= +- old_archive_from_new_cmds= +- old_archive_from_expsyms_cmds= +- thread_safe_flag_spec= +- whole_archive_flag_spec= +- # include_expsyms should be a list of space-separated symbols to be *always* +- # included in the symbol list +- include_expsyms= +- # 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'. +- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' +- # 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. +- # Exclude shared library initialization/finalization symbols. +- extract_expsyms_cmds= +- +- case $host_os in +- cygwin* | mingw* | pw32* | cegcc*) +- # 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 +- ;; +- interix*) +- # we just hope/assume this is gcc and not c89 (= MSVC++) +- with_gnu_ld=yes +- ;; +- openbsd*) +- with_gnu_ld=no +- ;; +- linux* | k*bsd*-gnu) +- link_all_deplibs=no +- ;; +- esac +- +- ld_shlibs=yes +- if test "$with_gnu_ld" = yes; then +- # If archive_cmds runs LD, not CC, wlarc should be empty +- wlarc='${wl}' +- +- # Set some defaults for GNU ld with shared library support. These +- # are reset later if shared libraries are not supported. Putting them +- # here allows them to be overridden if necessary. +- runpath_var=LD_RUN_PATH +- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' +- export_dynamic_flag_spec='${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 +- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' +- else +- whole_archive_flag_spec= +- fi +- supports_anon_versioning=no +- case `$LD -v 2>&1` in +- *GNU\ gold*) supports_anon_versioning=yes ;; +- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 +- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... +- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... +- *\ 2.11.*) ;; # other 2.11 versions +- *) supports_anon_versioning=yes ;; +- esac +- +- # See if GNU ld supports shared libraries. +- case $host_os in +- aix[3-9]*) +- # On AIX/PPC, the GNU linker is very broken +- if test "$host_cpu" != ia64; then +- ld_shlibs=no +- cat <<_LT_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. +- +-_LT_EOF +- fi +- ;; +- +- amigaos*) +- case $host_cpu in +- powerpc) +- # see comment about AmigaOS4 .so support +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='' +- ;; +- m68k) +- archive_cmds='$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)' +- hardcode_libdir_flag_spec='-L$libdir' +- hardcode_minus_L=yes +- ;; +- esac +- ;; +- +- beos*) +- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- allow_undefined_flag=unsupported +- # Joseph Beckenbach says some releases of gcc +- # support --undefined. This deserves some investigation. FIXME +- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- else +- ld_shlibs=no +- fi +- ;; +- +- cygwin* | mingw* | pw32* | cegcc*) +- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, +- # as there is no search path for DLLs. +- hardcode_libdir_flag_spec='-L$libdir' +- allow_undefined_flag=unsupported +- always_export_symbols=no +- enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' +- +- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- # If the export-symbols file already is a .def file (1st line +- # is EXPORTS), use it as is; otherwise, prepend... +- archive_expsym_cmds='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 $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- else +- ld_shlibs=no +- fi +- ;; +- +- interix[3-9]*) +- hardcode_direct=no +- hardcode_shlibpath_var=no +- hardcode_libdir_flag_spec='${wl}-rpath,$libdir' +- export_dynamic_flag_spec='${wl}-E' +- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. +- # Instead, shared libraries are loaded at an image base (0x10000000 by +- # default) and relocated if they conflict, which is a slow very memory +- # consuming and fragmenting process. To avoid this, we pick a random, +- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link +- # time. Moving up from 0x10000000 also allows more sbrk(2) space. +- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' +- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' +- ;; +- +- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) +- tmp_diet=no +- if test "$host_os" = linux-dietlibc; then +- case $cc_basename in +- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) +- esac +- fi +- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ +- && test "$tmp_diet" = no +- then +- tmp_addflag= +- tmp_sharedflag='-shared' +- case $cc_basename,$host_cpu in +- pgcc*) # Portland Group C compiler +- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' +- tmp_addflag=' $pic_flag' +- ;; +- pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers +- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' +- tmp_addflag=' $pic_flag -Mnomain' ;; +- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 +- tmp_addflag=' -i_dynamic' ;; +- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 +- tmp_addflag=' -i_dynamic -nofor_main' ;; +- ifc* | ifort*) # Intel Fortran compiler +- tmp_addflag=' -nofor_main' ;; +- lf95*) # Lahey Fortran 8.1 +- whole_archive_flag_spec= +- tmp_sharedflag='--shared' ;; +- xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) +- tmp_sharedflag='-qmkshrobj' +- tmp_addflag= ;; +- esac +- case `$CC -V 2>&1 | sed 5q` in +- *Sun\ C*) # Sun C 5.9 +- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' +- compiler_needs_object=yes +- tmp_sharedflag='-G' ;; +- *Sun\ F*) # Sun Fortran 8.3 +- tmp_sharedflag='-G' ;; +- esac +- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- +- if test "x$supports_anon_versioning" = xyes; then +- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ +- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +- echo "local: *; };" >> $output_objdir/$libname.ver~ +- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' +- fi +- +- case $cc_basename in +- xlf*) +- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself +- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' +- hardcode_libdir_flag_spec= +- hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' +- if test "x$supports_anon_versioning" = xyes; then +- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ +- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +- echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' +- fi +- ;; +- esac +- else +- ld_shlibs=no +- fi +- ;; +- +- netbsd* | netbsdelf*-gnu) +- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then +- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' +- wlarc= +- else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' +- fi +- ;; +- +- solaris*) +- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then +- ld_shlibs=no +- cat <<_LT_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. +- +-_LT_EOF +- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' +- else +- ld_shlibs=no +- fi +- ;; +- +- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) +- case `$LD -v 2>&1` in +- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) +- ld_shlibs=no +- cat <<_LT_EOF 1>&2 +- +-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +-*** reliably create shared libraries on SCO systems. Therefore, libtool +-*** is disabling shared libraries support. We urge you to upgrade GNU +-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +-*** your PATH or compiler configuration so that the native linker is +-*** used, and then restart. +- +-_LT_EOF +- ;; +- *) +- # For security reasons, it is highly recommended that you always +- # use absolute paths for naming shared libraries, and exclude the +- # DT_RUNPATH tag from executables and libraries. But doing so +- # requires that you compile everything twice, which is a pain. +- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' +- else +- ld_shlibs=no +- fi +- ;; +- esac +- ;; +- +- sunos4*) +- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' +- wlarc= +- hardcode_direct=yes +- hardcode_shlibpath_var=no +- ;; +- +- *) +- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' +- else +- ld_shlibs=no +- fi +- ;; +- esac +- +- if test "$ld_shlibs" = no; then +- runpath_var= +- hardcode_libdir_flag_spec= +- export_dynamic_flag_spec= +- whole_archive_flag_spec= +- fi +- else +- # PORTME fill in a description of your system's linker (not GNU ld) +- case $host_os in +- aix3*) +- allow_undefined_flag=unsupported +- always_export_symbols=yes +- archive_expsym_cmds='$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. +- hardcode_minus_L=yes +- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then +- # Neither direct hardcoding nor static linking is supported with a +- # broken collect2. +- hardcode_direct=unsupported +- fi +- ;; +- +- aix[4-9]*) +- 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 +- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' +- else +- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' +- fi +- aix_use_runtimelinking=no +- +- # Test if we are trying to use run time linking or normal +- # AIX style linking. If -brtl is somewhere in LDFLAGS, we +- # need to do runtime linking. +- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) +- for ld_flag in $LDFLAGS; do +- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then +- aix_use_runtimelinking=yes +- break +- fi +- done +- ;; +- esac +- +- 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. +- +- archive_cmds='' +- hardcode_direct=yes +- hardcode_direct_absolute=yes +- hardcode_libdir_separator=':' +- link_all_deplibs=yes +- file_list_spec='${wl}-f,' +- +- 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 +- : +- else +- # We have old collect2 +- hardcode_direct=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 +- hardcode_minus_L=yes +- hardcode_libdir_flag_spec='-L$libdir' +- hardcode_libdir_separator= +- fi +- ;; +- esac +- shared_flag='-shared' +- if test "$aix_use_runtimelinking" = yes; then +- shared_flag="$shared_flag "'${wl}-G' +- fi +- link_all_deplibs=no +- 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='${wl}-G' +- else +- shared_flag='${wl}-bM:SRE' +- fi +- fi +- fi +- +- export_dynamic_flag_spec='${wl}-bexpall' +- # It seems that -bexpall does not export symbols beginning with +- # underscore (_), so it is better to generate a list of symbols to export. +- always_export_symbols=yes +- 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. +- allow_undefined_flag='-berok' +- # Determine the default libpath from the value encoded in an +- # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# 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 "$lt_aix_libpath_sed"` +-fi +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +- +- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" +- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +- else +- if test "$host_cpu" = ia64; then +- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' +- allow_undefined_flag="-z nodefs" +- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" +- else +- # Determine the default libpath from the value encoded in an +- # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# 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 "$lt_aix_libpath_sed"` +-fi +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +- +- hardcode_libdir_flag_spec='${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. +- no_undefined_flag=' ${wl}-bernotok' +- allow_undefined_flag=' ${wl}-berok' +- # Exported symbols can be pulled into shared objects from archives +- whole_archive_flag_spec='$convenience' +- archive_cmds_need_lc=yes +- # This is similar to how AIX traditionally builds its shared libraries. +- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' +- fi +- fi +- ;; +- +- amigaos*) +- case $host_cpu in +- powerpc) +- # see comment about AmigaOS4 .so support +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='' +- ;; +- m68k) +- archive_cmds='$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)' +- hardcode_libdir_flag_spec='-L$libdir' +- hardcode_minus_L=yes +- ;; +- esac +- ;; +- +- bsdi[45]*) +- export_dynamic_flag_spec=-rdynamic +- ;; +- +- cygwin* | mingw* | pw32* | cegcc*) +- # 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. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes +- ;; +- +- darwin* | rhapsody*) +- +- +- archive_cmds_need_lc=no +- hardcode_direct=no +- hardcode_automatic=yes +- hardcode_shlibpath_var=unsupported +- whole_archive_flag_spec='' +- link_all_deplibs=yes +- allow_undefined_flag="$_lt_dar_allow_undefined" +- case $cc_basename in +- ifort*) _lt_dar_can_shared=yes ;; +- *) _lt_dar_can_shared=$GCC ;; +- esac +- if test "$_lt_dar_can_shared" = "yes"; then +- output_verbose_link_cmd=echo +- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" +- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" +- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" +- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" +- +- else +- ld_shlibs=no +- fi +- +- ;; +- +- dgux*) +- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- hardcode_libdir_flag_spec='-L$libdir' +- hardcode_shlibpath_var=no +- ;; +- +- freebsd1*) +- ld_shlibs=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*) +- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' +- hardcode_libdir_flag_spec='-R$libdir' +- hardcode_direct=yes +- hardcode_shlibpath_var=no +- ;; +- +- # Unfortunately, older versions of FreeBSD 2 do not have this feature. +- freebsd2*) +- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' +- hardcode_direct=yes +- hardcode_minus_L=yes +- hardcode_shlibpath_var=no +- ;; +- +- # FreeBSD 3 and greater uses gcc -shared to do shared libraries. +- freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' +- hardcode_libdir_flag_spec='-R$libdir' +- hardcode_direct=yes +- hardcode_shlibpath_var=no +- ;; +- +- hpux9*) +- if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' +- else +- archive_cmds='$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 +- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' +- hardcode_libdir_separator=: +- hardcode_direct=yes +- +- # hardcode_minus_L: Not really in the search PATH, +- # but as the default location of the library. +- hardcode_minus_L=yes +- export_dynamic_flag_spec='${wl}-E' +- ;; +- +- hpux10*) +- if test "$GCC" = yes -a "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +- else +- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +- fi +- if test "$with_gnu_ld" = no; then +- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' +- hardcode_libdir_flag_spec_ld='+b $libdir' +- hardcode_libdir_separator=: +- hardcode_direct=yes +- hardcode_direct_absolute=yes +- export_dynamic_flag_spec='${wl}-E' +- # hardcode_minus_L: Not really in the search PATH, +- # but as the default location of the library. +- hardcode_minus_L=yes +- fi +- ;; +- +- hpux11*) +- if test "$GCC" = yes -a "$with_gnu_ld" = no; then +- case $host_cpu in +- hppa*64*) +- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' +- ;; +- ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' +- ;; +- *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +- ;; +- esac +- else +- case $host_cpu in +- hppa*64*) +- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' +- ;; +- ia64*) +- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' +- ;; +- *) +- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +- ;; +- esac +- fi +- if test "$with_gnu_ld" = no; then +- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' +- hardcode_libdir_separator=: +- +- case $host_cpu in +- hppa*64*|ia64*) +- hardcode_direct=no +- hardcode_shlibpath_var=no +- ;; +- *) +- hardcode_direct=yes +- hardcode_direct_absolute=yes +- export_dynamic_flag_spec='${wl}-E' +- +- # hardcode_minus_L: Not really in the search PATH, +- # but as the default location of the library. +- hardcode_minus_L=yes +- ;; +- esac +- fi +- ;; +- +- irix5* | irix6* | nonstopux*) +- if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' +- # Try to use the -exported_symbol ld option, if it does not +- # work, assume that -exports_file does not work either and +- # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-int foo(void) {} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" +- else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +- fi +- archive_cmds_need_lc='no' +- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' +- hardcode_libdir_separator=: +- inherit_rpath=yes +- link_all_deplibs=yes +- ;; +- +- netbsd* | netbsdelf*-gnu) +- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then +- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out +- else +- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF +- fi +- hardcode_libdir_flag_spec='-R$libdir' +- hardcode_direct=yes +- hardcode_shlibpath_var=no +- ;; +- +- newsos6) +- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- hardcode_direct=yes +- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' +- hardcode_libdir_separator=: +- hardcode_shlibpath_var=no +- ;; +- +- *nto* | *qnx*) +- ;; +- +- openbsd*) +- if test -f /usr/libexec/ld.so; then +- hardcode_direct=yes +- hardcode_shlibpath_var=no +- hardcode_direct_absolute=yes +- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then +- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' +- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' +- hardcode_libdir_flag_spec='${wl}-rpath,$libdir' +- export_dynamic_flag_spec='${wl}-E' +- else +- case $host_os in +- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) +- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' +- hardcode_libdir_flag_spec='-R$libdir' +- ;; +- *) +- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' +- hardcode_libdir_flag_spec='${wl}-rpath,$libdir' +- ;; +- esac +- fi +- else +- ld_shlibs=no +- fi +- ;; +- +- os2*) +- hardcode_libdir_flag_spec='-L$libdir' +- hardcode_minus_L=yes +- allow_undefined_flag=unsupported +- archive_cmds='$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 $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' +- old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' +- ;; +- +- osf3*) +- if test "$GCC" = yes; then +- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' +- else +- allow_undefined_flag=' -expect_unresolved \*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' +- fi +- archive_cmds_need_lc='no' +- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' +- hardcode_libdir_separator=: +- ;; +- +- osf4* | osf5*) # as osf3* with the addition of -msym flag +- if test "$GCC" = yes; then +- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' +- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' +- else +- allow_undefined_flag=' -expect_unresolved \*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' +- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ +- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' +- +- # Both c and cxx compiler support -rpath directly +- hardcode_libdir_flag_spec='-rpath $libdir' +- fi +- archive_cmds_need_lc='no' +- hardcode_libdir_separator=: +- ;; +- +- solaris*) +- no_undefined_flag=' -z defs' +- if test "$GCC" = yes; then +- wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' +- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' +- else +- case `$CC -V 2>&1` in +- *"Compilers 5.0"*) +- wlarc='' +- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' +- archive_expsym_cmds='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' +- ;; +- *) +- wlarc='${wl}' +- archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' +- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' +- ;; +- esac +- fi +- hardcode_libdir_flag_spec='-R$libdir' +- hardcode_shlibpath_var=no +- case $host_os in +- solaris2.[0-5] | solaris2.[0-5].*) ;; +- *) +- # The compiler driver will combine and reorder linker options, +- # but understands `-z linker_flag'. GCC discards it without `$wl', +- # but is careful enough not to reorder. +- # Supported since Solaris 2.6 (maybe 2.5.1?) +- if test "$GCC" = yes; then +- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' +- else +- whole_archive_flag_spec='-z allextract$convenience -z defaultextract' +- fi +- ;; +- esac +- link_all_deplibs=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. +- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' +- else +- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' +- fi +- hardcode_libdir_flag_spec='-L$libdir' +- hardcode_direct=yes +- hardcode_minus_L=yes +- hardcode_shlibpath_var=no +- ;; +- +- sysv4) +- case $host_vendor in +- sni) +- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- hardcode_direct=yes # is this really true??? +- ;; +- siemens) +- ## LD is ld it makes a PLAMLIB +- ## CC just makes a GrossModule. +- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' +- reload_cmds='$CC -r -o $output$reload_objs' +- hardcode_direct=no +- ;; +- motorola) +- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- hardcode_direct=no #Motorola manual says yes, but my tests say they lie +- ;; +- esac +- runpath_var='LD_RUN_PATH' +- hardcode_shlibpath_var=no +- ;; +- +- sysv4.3*) +- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- hardcode_shlibpath_var=no +- export_dynamic_flag_spec='-Bexport' +- ;; +- +- sysv4*MP*) +- if test -d /usr/nec; then +- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- hardcode_shlibpath_var=no +- runpath_var=LD_RUN_PATH +- hardcode_runpath_var=yes +- ld_shlibs=yes +- fi +- ;; +- +- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) +- no_undefined_flag='${wl}-z,text' +- archive_cmds_need_lc=no +- hardcode_shlibpath_var=no +- runpath_var='LD_RUN_PATH' +- +- if test "$GCC" = yes; then +- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' +- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' +- else +- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' +- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' +- fi +- ;; +- +- sysv5* | sco3.2v5* | sco5v6*) +- # Note: We can NOT use -z defs as we might desire, because we do not +- # link with -lc, and that would cause any symbols used from libc to +- # always be unresolved, which means just about no library would +- # ever link correctly. If we're not using GNU ld we use -z text +- # though, which does catch some bad symbols but isn't as heavy-handed +- # as -z defs. +- no_undefined_flag='${wl}-z,text' +- allow_undefined_flag='${wl}-z,nodefs' +- archive_cmds_need_lc=no +- hardcode_shlibpath_var=no +- hardcode_libdir_flag_spec='${wl}-R,$libdir' +- hardcode_libdir_separator=':' +- link_all_deplibs=yes +- export_dynamic_flag_spec='${wl}-Bexport' +- runpath_var='LD_RUN_PATH' +- +- if test "$GCC" = yes; then +- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' +- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' +- else +- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' +- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' +- fi +- ;; +- +- uts4*) +- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' +- hardcode_libdir_flag_spec='-L$libdir' +- hardcode_shlibpath_var=no +- ;; +- +- *) +- ld_shlibs=no +- ;; +- esac +- +- if test x$host_vendor = xsni; then +- case $host in +- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) +- export_dynamic_flag_spec='${wl}-Blargedynsym' +- ;; +- esac +- fi +- fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +-$as_echo "$ld_shlibs" >&6; } +-test "$ld_shlibs" = no && can_build_shared=no +- +-with_gnu_ld=$with_gnu_ld +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-# +-# Do we need to explicitly link libc? +-# +-case "x$archive_cmds_need_lc" in +-x|xyes) +- # Assume -lc should be added +- archive_cmds_need_lc=yes +- +- if test "$enable_shared" = yes && test "$GCC" = yes; then +- case $archive_cmds 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. +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +- $RM conftest* +- echo "$lt_simple_compile_test_code" > conftest.$ac_ext +- +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 +- (eval $ac_compile) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } 2>conftest.err; then +- soname=conftest +- lib=conftest +- libobjs=conftest.$ac_objext +- deplibs= +- wl=$lt_prog_compiler_wl +- pic_flag=$lt_prog_compiler_pic +- compiler_flags=-v +- linker_flags=-v +- verstring= +- output_objdir=. +- libname=conftest +- lt_save_allow_undefined_flag=$allow_undefined_flag +- allow_undefined_flag= +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 +- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } +- then +- archive_cmds_need_lc=no +- else +- archive_cmds_need_lc=yes +- fi +- allow_undefined_flag=$lt_save_allow_undefined_flag +- else +- cat conftest.err 1>&5 +- fi +- $RM conftest* +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 +-$as_echo "$archive_cmds_need_lc" >&6; } +- ;; +- esac +- fi +- ;; +-esac +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +-$as_echo_n "checking dynamic linker characteristics... " >&6; } +- +-if test "$GCC" = yes; then +- case $host_os in +- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; +- *) lt_awk_arg="/^libraries:/" ;; +- esac +- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` +- if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then +- # if the path contains ";" then we assume it to be the separator +- # otherwise default to the standard path separator (i.e. ":") - it is +- # assumed that no part of a normal pathname contains ";" but that should +- # okay in the real world where ";" in dirpaths is itself problematic. +- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` +- else +- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` +- fi +- # Ok, now we have the path, separated by spaces, we can step through it +- # and add multilib dir if necessary. +- lt_tmp_lt_search_path_spec= +- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` +- for lt_sys_path in $lt_search_path_spec; do +- if test -d "$lt_sys_path/$lt_multi_os_dir"; then +- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" +- else +- test -d "$lt_sys_path" && \ +- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" +- fi +- done +- lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +-BEGIN {RS=" "; FS="/|\n";} { +- lt_foo=""; +- lt_count=0; +- for (lt_i = NF; lt_i > 0; lt_i--) { +- if ($lt_i != "" && $lt_i != ".") { +- if ($lt_i == "..") { +- lt_count++; +- } else { +- if (lt_count == 0) { +- lt_foo="/" $lt_i lt_foo; +- } else { +- lt_count--; +- } +- } +- } +- } +- if (lt_foo != "") { lt_freq[lt_foo]++; } +- if (lt_freq[lt_foo] == 1) { print lt_foo; } +-}'` +- sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +-else +- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +-fi +-library_names_spec= +-libname_spec='lib$name' +-soname_spec= +-shrext_cmds=".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" +-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' +- ;; +- +-aix[4-9]*) +- 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.so +- # instead of lib.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*) +- case $host_cpu in +- powerpc) +- # Since July 2007 AmigaOS4 officially supports .so libraries. +- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. +- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' +- ;; +- m68k) +- 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' +- ;; +- esac +- ;; +- +-beos*) +- library_names_spec='${libname}${shared_ext}' +- dynamic_linker="$host_os ld.so" +- shlibpath_var=LIBRARY_PATH +- ;; +- +-bsdi[45]*) +- 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* | cegcc*) +- version_type=windows +- shrext_cmds=".dll" +- need_version=no +- need_lib_prefix=no +- +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) +- 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~ +- chmod a+x \$dldir/$dlname~ +- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then +- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; +- fi' +- 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* | cegcc*) +- # 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}${major}$shared_ext ${libname}$shared_ext' +- soname_spec='${libname}${release}${major}$shared_ext' +- shlibpath_overrides_runpath=yes +- shlibpath_var=DYLD_LIBRARY_PATH +- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +- +- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" +- 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 +- ;; +- +-freebsd* | dragonfly*) +- # DragonFly does not have aout. When/if they implement a new +- # versioning mechanism, adjust this. +- if test -x /usr/bin/objformat; then +- objformat=`/usr/bin/objformat` +- else +- case $host_os in +- freebsd[123]*) objformat=aout ;; +- *) objformat=elf ;; +- esac +- fi +- 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 +- ;; +- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ +- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) +- shlibpath_overrides_runpath=no +- hardcode_into_libs=yes +- ;; +- *) # from 4.6 on, and DragonFly +- shlibpath_overrides_runpath=yes +- 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_cmds='.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_cmds='.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_cmds='.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' +- ;; +- +-interix[3-9]*) +- 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' +- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' +- shlibpath_var=LD_LIBRARY_PATH +- shlibpath_overrides_runpath=no +- hardcode_into_libs=yes +- ;; +- +-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* | k*bsd*-gnu | kopensolaris*-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' +- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' +- shlibpath_var=LD_LIBRARY_PATH +- shlibpath_overrides_runpath=no +- # Some binutils ld are patched to set DT_RUNPATH +- save_LDFLAGS=$LDFLAGS +- save_libdir=$libdir +- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ +- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : +- shlibpath_overrides_runpath=yes +-fi +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- LDFLAGS=$save_LDFLAGS +- libdir=$save_libdir +- +- # 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 +- +- # Append ld.so.conf contents to the search path +- if test -f /etc/ld.so.conf; then +- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` +- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" +- fi +- +- # 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' +- ;; +- +-netbsdelf*-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='NetBSD ld.elf_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}${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=qnx +- 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='ldqnx.so' +- ;; +- +-openbsd*) +- version_type=sunos +- sys_lib_dlsearch_path_spec="/usr/lib" +- need_lib_prefix=no +- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. +- case $host_os in +- openbsd3.3 | openbsd3.3.*) need_version=yes ;; +- *) need_version=no ;; +- esac +- 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_cmds=".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" +- ;; +- +-rdos*) +- dynamic_linker=no +- ;; +- +-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.3*) +- 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 +- 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 +- ;; +- +-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) +- version_type=freebsd-elf +- need_lib_prefix=no +- need_version=no +- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' +- soname_spec='${libname}${release}${shared_ext}$major' +- shlibpath_var=LD_LIBRARY_PATH +- shlibpath_overrides_runpath=yes +- hardcode_into_libs=yes +- if test "$with_gnu_ld" = yes; then +- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' +- else +- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' +- case $host_os in +- sco3.2v5*) +- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" +- ;; +- esac +- fi +- sys_lib_dlsearch_path_spec='/usr/lib' +- ;; +- +-tpf*) +- # TPF is a cross-target only. Preferred cross-host = GNU/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}' +- shlibpath_var=LD_LIBRARY_PATH +- shlibpath_overrides_runpath=no +- hardcode_into_libs=yes +- ;; +- +-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 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +-$as_echo "$dynamic_linker" >&6; } +-test "$dynamic_linker" = 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 +- +-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then +- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +-fi +-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then +- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +-fi +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +-$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +-hardcode_action= +-if test -n "$hardcode_libdir_flag_spec" || +- test -n "$runpath_var" || +- test "X$hardcode_automatic" = "Xyes" ; then +- +- # We can hardcode non-existent directories. +- if test "$hardcode_direct" != 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_TAGVAR(hardcode_shlibpath_var, )" != no && +- test "$hardcode_minus_L" != no; then +- # Linking always hardcodes the temporary library directory. +- hardcode_action=relink +- else +- # We can link without hardcoding, and we can hardcode nonexisting dirs. +- hardcode_action=immediate +- fi +-else +- # We cannot hardcode anything, or else we can only hardcode existing +- # directories. +- hardcode_action=unsupported +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +-$as_echo "$hardcode_action" >&6; } +- +-if test "$hardcode_action" = relink || +- test "$inherit_rpath" = yes; 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 +- +- +- +- +- +- +- 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* | cegcc*) +- 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 +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +-$as_echo_n "checking for dlopen in -ldl... " >&6; } +-if test "${ac_cv_lib_dl_dlopen+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-ldl $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char dlopen (); +-int +-main () +-{ +-return dlopen (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_dl_dlopen=yes +-else +- ac_cv_lib_dl_dlopen=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +-$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : +- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +-else +- +- lt_cv_dlopen="dyld" +- lt_cv_dlopen_libs= +- lt_cv_dlopen_self=yes +- +-fi +- +- ;; +- +- *) +- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +-if test "x$ac_cv_func_shl_load" = x""yes; then : +- lt_cv_dlopen="shl_load" +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +-$as_echo_n "checking for shl_load in -ldld... " >&6; } +-if test "${ac_cv_lib_dld_shl_load+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-ldld $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char shl_load (); +-int +-main () +-{ +-return shl_load (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_dld_shl_load=yes +-else +- ac_cv_lib_dld_shl_load=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +-$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : +- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +-else +- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +-if test "x$ac_cv_func_dlopen" = x""yes; then : +- lt_cv_dlopen="dlopen" +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +-$as_echo_n "checking for dlopen in -ldl... " >&6; } +-if test "${ac_cv_lib_dl_dlopen+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-ldl $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char dlopen (); +-int +-main () +-{ +-return dlopen (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_dl_dlopen=yes +-else +- ac_cv_lib_dl_dlopen=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +-$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : +- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +-$as_echo_n "checking for dlopen in -lsvld... " >&6; } +-if test "${ac_cv_lib_svld_dlopen+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lsvld $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char dlopen (); +-int +-main () +-{ +-return dlopen (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_svld_dlopen=yes +-else +- ac_cv_lib_svld_dlopen=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +-$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : +- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +-$as_echo_n "checking for dld_link in -ldld... " >&6; } +-if test "${ac_cv_lib_dld_dld_link+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-ldld $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char dld_link (); +-int +-main () +-{ +-return dld_link (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_dld_dld_link=yes +-else +- ac_cv_lib_dld_dld_link=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +-$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : +- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +-fi +- +- +-fi +- +- +-fi +- +- +-fi +- +- +-fi +- +- +-fi +- +- ;; +- 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" +- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" +- +- save_LIBS="$LIBS" +- LIBS="$lt_cv_dlopen_libs $LIBS" +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +-$as_echo_n "checking whether a program can dlopen itself... " >&6; } +-if test "${lt_cv_dlopen_self+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test "$cross_compiling" = yes; then : +- lt_cv_dlopen_self=cross +-else +- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 +- lt_status=$lt_dlunknown +- cat > conftest.$ac_ext <<_LT_EOF +-#line 11424 "configure" +-#include "confdefs.h" +- +-#if HAVE_DLFCN_H +-#include +-#endif +- +-#include +- +-#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 +- +-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); */ +- } +- else +- puts (dlerror ()); +- +- return status; +-} +-_LT_EOF +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then +- (./conftest; exit; ) >&5 2>/dev/null +- lt_status=$? +- case x$lt_status in +- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; +- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; +- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; +- esac +- else : +- # compilation failed +- lt_cv_dlopen_self=no +- fi +-fi +-rm -fr conftest* +- +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +-$as_echo "$lt_cv_dlopen_self" >&6; } +- +- if test "x$lt_cv_dlopen_self" = xyes; then +- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +-if test "${lt_cv_dlopen_self_static+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- if test "$cross_compiling" = yes; then : +- lt_cv_dlopen_self_static=cross +-else +- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 +- lt_status=$lt_dlunknown +- cat > conftest.$ac_ext <<_LT_EOF +-#line 11520 "configure" +-#include "confdefs.h" +- +-#if HAVE_DLFCN_H +-#include +-#endif +- +-#include +- +-#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 +- +-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); */ +- } +- else +- puts (dlerror ()); +- +- return status; +-} +-_LT_EOF +- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then +- (./conftest; exit; ) >&5 2>/dev/null +- lt_status=$? +- case x$lt_status in +- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; +- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; +- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; +- esac +- else : +- # compilation failed +- lt_cv_dlopen_self_static=no +- fi +-fi +-rm -fr conftest* +- +- +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +-$as_echo "$lt_cv_dlopen_self_static" >&6; } +- 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 +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-striplib= +-old_striplib= +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +-$as_echo_n "checking whether stripping libraries is possible... " >&6; } +-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" +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +-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" +- old_striplib="$STRIP -S" +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +- else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- fi +- ;; +- *) +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- ;; +- esac +-fi +- +- +- +- +- +- +- +- +- +- +- +- +- # Report which library types will actually be built +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +-$as_echo_n "checking if libtool supports shared libraries... " >&6; } +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +-$as_echo "$can_build_shared" >&6; } +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +-$as_echo_n "checking whether to build shared libraries... " >&6; } +- 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 +- ;; +- +- aix[4-9]*) +- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then +- test "$enable_shared" = yes && enable_static=no +- fi +- ;; +- esac +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +-$as_echo "$enable_shared" >&6; } +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +-$as_echo_n "checking whether to build static libraries... " >&6; } +- # Make sure either enable_shared or enable_static is yes. +- test "$enable_shared" = yes || enable_static=yes +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +-$as_echo "$enable_static" >&6; } +- +- +- +- +-fi +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +-CC="$lt_save_CC" +- +- +- +- +- +- +- +- +- +- +- +- +- +- ac_config_commands="$ac_config_commands libtool" +- +- +- +- +-# Only expand once: +- +- +- +-ac_config_files="$ac_config_files Makefile doc/Makefile src/Makefile swig/Makefile swig/perl/Makefile swig/perl/Makefile.PL swig/python/Makefile swig/python/setup.py swig/ruby/Makefile testsuite/Makefile testsuite/config/Makefile testsuite/libaalogparse.test/Makefile testsuite/lib/Makefile" +- +-cat >confcache <<\_ACEOF +-# This file is a shell script that caches the results of configure +-# tests run on this system so they can be shared between configure +-# scripts and configure runs, see configure's option --config-cache. +-# It is not useful on other systems. If it contains results you don't +-# want to keep, you may remove or edit it. +-# +-# config.status only pays attention to the cache file if you give it +-# the --recheck option to rerun configure. +-# +-# `ac_cv_env_foo' variables (set or unset) will be overridden when +-# loading this file, other *unset* `ac_cv_foo' will be assigned the +-# following values. +- +-_ACEOF +- +-# The following way of writing the cache mishandles newlines in values, +-# but we know of no workaround that is simple, portable, and efficient. +-# So, we kill variables containing newlines. +-# Ultrix sh set writes to stderr and can't be redirected directly, +-# and sets the high bit in the cache file unless we assign to the vars. +-( +- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do +- eval ac_val=\$$ac_var +- case $ac_val in #( +- *${as_nl}*) +- case $ac_var in #( +- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; +- esac +- case $ac_var in #( +- _ | IFS | as_nl) ;; #( +- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( +- *) { eval $ac_var=; unset $ac_var;} ;; +- esac ;; +- esac +- done +- +- (set) 2>&1 | +- case $as_nl`(ac_space=' '; set) 2>&1` in #( +- *${as_nl}ac_space=\ *) +- # `set' does not quote correctly, so add quotes: double-quote +- # substitution turns \\\\ into \\, and sed turns \\ into \. +- sed -n \ +- "s/'/'\\\\''/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" +- ;; #( +- *) +- # `set' quotes correctly as required by POSIX, so do not add quotes. +- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" +- ;; +- esac | +- sort +-) | +- sed ' +- /^ac_cv_env_/b end +- t clear +- :clear +- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ +- t end +- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ +- :end' >>confcache +-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else +- if test -w "$cache_file"; then +- test "x$cache_file" != "x/dev/null" && +- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +-$as_echo "$as_me: updating cache $cache_file" >&6;} +- cat confcache >$cache_file +- else +- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} +- fi +-fi +-rm -f confcache +- +-test "x$prefix" = xNONE && prefix=$ac_default_prefix +-# Let make expand exec_prefix. +-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' +- +-# Transform confdefs.h into DEFS. +-# Protect against shell expansion while executing Makefile rules. +-# Protect against Makefile macro expansion. +-# +-# If the first sed substitution is executed (which looks for macros that +-# take arguments), then branch to the quote section. Otherwise, +-# look for a macro that doesn't take arguments. +-ac_script=' +-:mline +-/\\$/{ +- N +- s,\\\n,, +- b mline +-} +-t clear +-:clear +-s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g +-t quote +-s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g +-t quote +-b any +-:quote +-s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g +-s/\[/\\&/g +-s/\]/\\&/g +-s/\$/$$/g +-H +-:any +-${ +- g +- s/^\n// +- s/\n/ /g +- p +-} +-' +-DEFS=`sed -n "$ac_script" confdefs.h` +- +- +-ac_libobjs= +-ac_ltlibobjs= +-U= +-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue +- # 1. Remove the extension, and $U if already installed. +- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' +- ac_i=`$as_echo "$ac_i" | sed "$ac_script"` +- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR +- # will be set to the directory where LIBOBJS objects are built. +- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" +- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +-done +-LIBOBJS=$ac_libobjs +- +-LTLIBOBJS=$ac_ltlibobjs +- +- +- if test -n "$EXEEXT"; then +- am__EXEEXT_TRUE= +- am__EXEEXT_FALSE='#' +-else +- am__EXEEXT_TRUE='#' +- am__EXEEXT_FALSE= +-fi +- +-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then +- as_fn_error $? "conditional \"AMDEP\" was never defined. +-Usually this means the macro was only invoked conditionally." "$LINENO" 5 +-fi +-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then +- as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +-Usually this means the macro was only invoked conditionally." "$LINENO" 5 +-fi +-if test -z "${HAVE_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then +- as_fn_error $? "conditional \"HAVE_PYTHON\" was never defined. +-Usually this means the macro was only invoked conditionally." "$LINENO" 5 +-fi +-if test -z "${HAVE_PERL_TRUE}" && test -z "${HAVE_PERL_FALSE}"; then +- as_fn_error $? "conditional \"HAVE_PERL\" was never defined. +-Usually this means the macro was only invoked conditionally." "$LINENO" 5 +-fi +-if test -z "${HAVE_RUBY_TRUE}" && test -z "${HAVE_RUBY_FALSE}"; then +- as_fn_error $? "conditional \"HAVE_RUBY\" was never defined. +-Usually this means the macro was only invoked conditionally." "$LINENO" 5 +-fi +-if test -z "${BUILD_ROOTLIB_TRUE}" && test -z "${BUILD_ROOTLIB_FALSE}"; then +- as_fn_error $? "conditional \"BUILD_ROOTLIB\" was never defined. +-Usually this means the macro was only invoked conditionally." "$LINENO" 5 +-fi +- +-: ${CONFIG_STATUS=./config.status} +-ac_write_fail=0 +-ac_clean_files_save=$ac_clean_files +-ac_clean_files="$ac_clean_files $CONFIG_STATUS" +-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +-as_write_fail=0 +-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +-#! $SHELL +-# Generated by $as_me. +-# Run this file to recreate the current configuration. +-# Compiler output produced by configure, useful for debugging +-# configure, is in config.log if it exists. +- +-debug=false +-ac_cs_recheck=false +-ac_cs_silent=false +- +-SHELL=\${CONFIG_SHELL-$SHELL} +-export SHELL +-_ASEOF +-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +-## -------------------- ## +-## M4sh Initialization. ## +-## -------------------- ## +- +-# Be more Bourne compatible +-DUALCASE=1; export DUALCASE # for MKS sh +-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +- emulate sh +- NULLCMD=: +- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which +- # is contrary to our usage. Disable this feature. +- alias -g '${1+"$@"}'='"$@"' +- setopt NO_GLOB_SUBST +-else +- case `(set -o) 2>/dev/null` in #( +- *posix*) : +- set -o posix ;; #( +- *) : +- ;; +-esac +-fi +- +- +-as_nl=' +-' +-export as_nl +-# Printing a long string crashes Solaris 7 /usr/bin/printf. +-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +-# Prefer a ksh shell builtin over an external printf program on Solaris, +-# but without wasting forks for bash or zsh. +-if test -z "$BASH_VERSION$ZSH_VERSION" \ +- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then +- as_echo='print -r --' +- as_echo_n='print -rn --' +-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then +- as_echo='printf %s\n' +- as_echo_n='printf %s' +-else +- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then +- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' +- as_echo_n='/usr/ucb/echo -n' +- else +- as_echo_body='eval expr "X$1" : "X\\(.*\\)"' +- as_echo_n_body='eval +- arg=$1; +- case $arg in #( +- *"$as_nl"*) +- expr "X$arg" : "X\\(.*\\)$as_nl"; +- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; +- esac; +- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" +- ' +- export as_echo_n_body +- as_echo_n='sh -c $as_echo_n_body as_echo' +- fi +- export as_echo_body +- as_echo='sh -c $as_echo_body as_echo' +-fi +- +-# The user is always right. +-if test "${PATH_SEPARATOR+set}" != set; then +- PATH_SEPARATOR=: +- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { +- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || +- PATH_SEPARATOR=';' +- } +-fi +- +- +-# IFS +-# We need space, tab and new line, in precisely that order. Quoting is +-# there to prevent editors from complaining about space-tab. +-# (If _AS_PATH_WALK were called with IFS unset, it would disable word +-# splitting by setting IFS to empty value.) +-IFS=" "" $as_nl" +- +-# Find who we are. Look in the path if we contain no directory separator. +-case $0 in #(( +- *[\\/]* ) as_myself=$0 ;; +- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-# We did not find ourselves, most probably we were run as `sh COMMAND' +-# in which case we are not to be found in the path. +-if test "x$as_myself" = x; then +- as_myself=$0 +-fi +-if test ! -f "$as_myself"; then +- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 +- exit 1 +-fi +- +-# Unset variables that we do not need and which cause bugs (e.g. in +-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +-# suppresses any "Segmentation fault" message there. '((' could +-# trigger a bug in pdksh 5.2.14. +-for as_var in BASH_ENV ENV MAIL MAILPATH +-do eval test x\${$as_var+set} = xset \ +- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +-done +-PS1='$ ' +-PS2='> ' +-PS4='+ ' +- +-# NLS nuisances. +-LC_ALL=C +-export LC_ALL +-LANGUAGE=C +-export LANGUAGE +- +-# CDPATH. +-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +- +- +-# as_fn_error STATUS ERROR [LINENO LOG_FD] +-# ---------------------------------------- +-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +-# script with STATUS, using 1 if that was 0. +-as_fn_error () +-{ +- as_status=$1; test $as_status -eq 0 && as_status=1 +- if test "$4"; then +- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 +- fi +- $as_echo "$as_me: error: $2" >&2 +- as_fn_exit $as_status +-} # as_fn_error +- +- +-# as_fn_set_status STATUS +-# ----------------------- +-# Set $? to STATUS, without forking. +-as_fn_set_status () +-{ +- return $1 +-} # as_fn_set_status +- +-# as_fn_exit STATUS +-# ----------------- +-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +-as_fn_exit () +-{ +- set +e +- as_fn_set_status $1 +- exit $1 +-} # as_fn_exit +- +-# as_fn_unset VAR +-# --------------- +-# Portably unset VAR. +-as_fn_unset () +-{ +- { eval $1=; unset $1;} +-} +-as_unset=as_fn_unset +-# as_fn_append VAR VALUE +-# ---------------------- +-# Append the text in VALUE to the end of the definition contained in VAR. Take +-# advantage of any shell optimizations that allow amortized linear growth over +-# repeated appends, instead of the typical quadratic growth present in naive +-# implementations. +-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +- eval 'as_fn_append () +- { +- eval $1+=\$2 +- }' +-else +- as_fn_append () +- { +- eval $1=\$$1\$2 +- } +-fi # as_fn_append +- +-# as_fn_arith ARG... +-# ------------------ +-# Perform arithmetic evaluation on the ARGs, and store the result in the +-# global $as_val. Take advantage of shells that can avoid forks. The arguments +-# must be portable across $(()) and expr. +-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +- eval 'as_fn_arith () +- { +- as_val=$(( $* )) +- }' +-else +- as_fn_arith () +- { +- as_val=`expr "$@" || test $? -eq 1` +- } +-fi # as_fn_arith +- +- +-if expr a : '\(a\)' >/dev/null 2>&1 && +- test "X`expr 00001 : '.*\(...\)'`" = X001; then +- as_expr=expr +-else +- as_expr=false +-fi +- +-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then +- as_basename=basename +-else +- as_basename=false +-fi +- +-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then +- as_dirname=dirname +-else +- as_dirname=false +-fi +- +-as_me=`$as_basename -- "$0" || +-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ +- X"$0" : 'X\(//\)$' \| \ +- X"$0" : 'X\(/\)' \| . 2>/dev/null || +-$as_echo X/"$0" | +- sed '/^.*\/\([^/][^/]*\)\/*$/{ +- s//\1/ +- q +- } +- /^X\/\(\/\/\)$/{ +- s//\1/ +- q +- } +- /^X\/\(\/\).*/{ +- s//\1/ +- q +- } +- s/.*/./; q'` +- +-# Avoid depending upon Character Ranges. +-as_cr_letters='abcdefghijklmnopqrstuvwxyz' +-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +-as_cr_Letters=$as_cr_letters$as_cr_LETTERS +-as_cr_digits='0123456789' +-as_cr_alnum=$as_cr_Letters$as_cr_digits +- +-ECHO_C= ECHO_N= ECHO_T= +-case `echo -n x` in #((((( +--n*) +- case `echo 'xy\c'` in +- *c*) ECHO_T=' ';; # ECHO_T is single tab character. +- xy) ECHO_C='\c';; +- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null +- ECHO_T=' ';; +- esac;; +-*) +- ECHO_N='-n';; +-esac +- +-rm -f conf$$ conf$$.exe conf$$.file +-if test -d conf$$.dir; then +- rm -f conf$$.dir/conf$$.file +-else +- rm -f conf$$.dir +- mkdir conf$$.dir 2>/dev/null +-fi +-if (echo >conf$$.file) 2>/dev/null; then +- if ln -s conf$$.file conf$$ 2>/dev/null; then +- as_ln_s='ln -s' +- # ... but there are two gotchas: +- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. +- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. +- # In both cases, we have to default to `cp -p'. +- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +- as_ln_s='cp -p' +- elif ln conf$$.file conf$$ 2>/dev/null; then +- as_ln_s=ln +- else +- as_ln_s='cp -p' +- fi +-else +- as_ln_s='cp -p' +-fi +-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +-rmdir conf$$.dir 2>/dev/null +- +- +-# as_fn_mkdir_p +-# ------------- +-# Create "$as_dir" as a directory, including parents if necessary. +-as_fn_mkdir_p () +-{ +- +- case $as_dir in #( +- -*) as_dir=./$as_dir;; +- esac +- test -d "$as_dir" || eval $as_mkdir_p || { +- as_dirs= +- while :; do +- case $as_dir in #( +- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( +- *) as_qdir=$as_dir;; +- esac +- as_dirs="'$as_qdir' $as_dirs" +- as_dir=`$as_dirname -- "$as_dir" || +-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_dir" : 'X\(//\)[^/]' \| \ +- X"$as_dir" : 'X\(//\)$' \| \ +- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +-$as_echo X"$as_dir" | +- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)[^/].*/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)$/{ +- s//\1/ +- q +- } +- /^X\(\/\).*/{ +- s//\1/ +- q +- } +- s/.*/./; q'` +- test -d "$as_dir" && break +- done +- test -z "$as_dirs" || eval "mkdir $as_dirs" +- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" +- +- +-} # as_fn_mkdir_p +-if mkdir -p . 2>/dev/null; then +- as_mkdir_p='mkdir -p "$as_dir"' +-else +- test -d ./-p && rmdir ./-p +- as_mkdir_p=false +-fi +- +-if test -x / >/dev/null 2>&1; then +- as_test_x='test -x' +-else +- if ls -dL / >/dev/null 2>&1; then +- as_ls_L_option=L +- else +- as_ls_L_option= +- fi +- as_test_x=' +- eval sh -c '\'' +- if test -d "$1"; then +- test -d "$1/."; +- else +- case $1 in #( +- -*)set "./$1";; +- esac; +- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( +- ???[sx]*):;;*)false;;esac;fi +- '\'' sh +- ' +-fi +-as_executable_p=$as_test_x +- +-# Sed expression to map a string onto a valid CPP name. +-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +- +-# Sed expression to map a string onto a valid variable name. +-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +- +- +-exec 6>&1 +-## ----------------------------------- ## +-## Main body of $CONFIG_STATUS script. ## +-## ----------------------------------- ## +-_ASEOF +-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 +- +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +-# Save the log message, to keep $0 and so on meaningful, and to +-# report actual input values of CONFIG_FILES etc. instead of their +-# values after options handling. +-ac_log=" +-This file was extended by $as_me, which was +-generated by GNU Autoconf 2.67. Invocation command line was +- +- CONFIG_FILES = $CONFIG_FILES +- CONFIG_HEADERS = $CONFIG_HEADERS +- CONFIG_LINKS = $CONFIG_LINKS +- CONFIG_COMMANDS = $CONFIG_COMMANDS +- $ $0 $@ +- +-on `(hostname || uname -n) 2>/dev/null | sed 1q` +-" +- +-_ACEOF +- +-case $ac_config_files in *" +-"*) set x $ac_config_files; shift; ac_config_files=$*;; +-esac +- +- +- +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +-# Files that config.status was made for. +-config_files="$ac_config_files" +-config_commands="$ac_config_commands" +- +-_ACEOF +- +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +-ac_cs_usage="\ +-\`$as_me' instantiates files and other configuration actions +-from templates according to the current configuration. Unless the files +-and actions are specified as TAGs, all are instantiated by default. +- +-Usage: $0 [OPTION]... [TAG]... +- +- -h, --help print this help, then exit +- -V, --version print version number and configuration settings, then exit +- --config print configuration, then exit +- -q, --quiet, --silent +- do not print progress messages +- -d, --debug don't remove temporary files +- --recheck update $as_me by reconfiguring in the same conditions +- --file=FILE[:TEMPLATE] +- instantiate the configuration file FILE +- +-Configuration files: +-$config_files +- +-Configuration commands: +-$config_commands +- +-Report bugs to the package provider." +- +-_ACEOF +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +-ac_cs_version="\\ +-config.status +-configured by $0, generated by GNU Autoconf 2.67, +- with options \\"\$ac_cs_config\\" +- +-Copyright (C) 2010 Free Software Foundation, Inc. +-This config.status script is free software; the Free Software Foundation +-gives unlimited permission to copy, distribute and modify it." +- +-ac_pwd='$ac_pwd' +-srcdir='$srcdir' +-INSTALL='$INSTALL' +-MKDIR_P='$MKDIR_P' +-AWK='$AWK' +-test -n "\$AWK" || AWK=awk +-_ACEOF +- +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +-# The default lists apply if the user does not specify any file. +-ac_need_defaults=: +-while test $# != 0 +-do +- case $1 in +- --*=?*) +- ac_option=`expr "X$1" : 'X\([^=]*\)='` +- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` +- ac_shift=: +- ;; +- --*=) +- ac_option=`expr "X$1" : 'X\([^=]*\)='` +- ac_optarg= +- ac_shift=: +- ;; +- *) +- ac_option=$1 +- ac_optarg=$2 +- ac_shift=shift +- ;; +- esac +- +- case $ac_option in +- # Handling of the options. +- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) +- ac_cs_recheck=: ;; +- --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) +- $as_echo "$ac_cs_version"; exit ;; +- --config | --confi | --conf | --con | --co | --c ) +- $as_echo "$ac_cs_config"; exit ;; +- --debug | --debu | --deb | --de | --d | -d ) +- debug=: ;; +- --file | --fil | --fi | --f ) +- $ac_shift +- case $ac_optarg in +- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; +- '') as_fn_error $? "missing file argument" ;; +- esac +- as_fn_append CONFIG_FILES " '$ac_optarg'" +- ac_need_defaults=false;; +- --he | --h | --help | --hel | -h ) +- $as_echo "$ac_cs_usage"; exit ;; +- -q | -quiet | --quiet | --quie | --qui | --qu | --q \ +- | -silent | --silent | --silen | --sile | --sil | --si | --s) +- ac_cs_silent=: ;; +- +- # This is an error. +- -*) as_fn_error $? "unrecognized option: \`$1' +-Try \`$0 --help' for more information." ;; +- +- *) as_fn_append ac_config_targets " $1" +- ac_need_defaults=false ;; +- +- esac +- shift +-done +- +-ac_configure_extra_args= +- +-if $ac_cs_silent; then +- exec 6>/dev/null +- ac_configure_extra_args="$ac_configure_extra_args --silent" +-fi +- +-_ACEOF +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +-if \$ac_cs_recheck; then +- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +- shift +- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 +- CONFIG_SHELL='$SHELL' +- export CONFIG_SHELL +- exec "\$@" +-fi +- +-_ACEOF +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +-exec 5>>config.log +-{ +- echo +- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +-## Running $as_me. ## +-_ASBOX +- $as_echo "$ac_log" +-} >&5 +- +-_ACEOF +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +-# +-# INIT-COMMANDS +-# +-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +- +- +-# 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 +- +-sed_quote_subst='$sed_quote_subst' +-double_quote_subst='$double_quote_subst' +-delay_variable_subst='$delay_variable_subst' +-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' +-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' +-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' +-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' +-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' +-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' +-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' +-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' +-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' +-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' +-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' +-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' +-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' +-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' +-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' +-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' +-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' +-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' +-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' +-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' +-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' +-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' +-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' +-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' +-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' +-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' +-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' +-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' +-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' +-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' +-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' +-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' +-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' +-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' +-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' +-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' +-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' +-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' +-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' +-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' +-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' +-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' +-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' +-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' +-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' +-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' +-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' +-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' +-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' +-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' +-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' +-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' +-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' +-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' +-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' +-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' +-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' +-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' +-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' +-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' +-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' +-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' +-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' +-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' +-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' +-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' +-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' +-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' +-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' +-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' +-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' +-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' +-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' +-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' +-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' +-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' +-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' +- +-LTCC='$LTCC' +-LTCFLAGS='$LTCFLAGS' +-compiler='$compiler_DEFAULT' +- +-# Quote evaled strings. +-for var in SED \ +-GREP \ +-EGREP \ +-FGREP \ +-LD \ +-NM \ +-LN_S \ +-lt_SP2NL \ +-lt_NL2SP \ +-reload_flag \ +-OBJDUMP \ +-deplibs_check_method \ +-file_magic_cmd \ +-AR \ +-AR_FLAGS \ +-STRIP \ +-RANLIB \ +-CC \ +-CFLAGS \ +-compiler \ +-lt_cv_sys_global_symbol_pipe \ +-lt_cv_sys_global_symbol_to_cdecl \ +-lt_cv_sys_global_symbol_to_c_name_address \ +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +-SHELL \ +-ECHO \ +-lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ +-lt_prog_compiler_pic \ +-lt_prog_compiler_static \ +-lt_cv_prog_compiler_c_o \ +-need_locks \ +-DSYMUTIL \ +-NMEDIT \ +-LIPO \ +-OTOOL \ +-OTOOL64 \ +-shrext_cmds \ +-export_dynamic_flag_spec \ +-whole_archive_flag_spec \ +-compiler_needs_object \ +-with_gnu_ld \ +-allow_undefined_flag \ +-no_undefined_flag \ +-hardcode_libdir_flag_spec \ +-hardcode_libdir_flag_spec_ld \ +-hardcode_libdir_separator \ +-fix_srcfile_path \ +-exclude_expsyms \ +-include_expsyms \ +-file_list_spec \ +-variables_saved_for_relink \ +-libname_spec \ +-library_names_spec \ +-soname_spec \ +-finish_eval \ +-old_striplib \ +-striplib; do +- case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in +- *[\\\\\\\`\\"\\\$]*) +- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" +- ;; +- *) +- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" +- ;; +- esac +-done +- +-# Double-quote double-evaled strings. +-for var in reload_cmds \ +-old_postinstall_cmds \ +-old_postuninstall_cmds \ +-old_archive_cmds \ +-extract_expsyms_cmds \ +-old_archive_from_new_cmds \ +-old_archive_from_expsyms_cmds \ +-archive_cmds \ +-archive_expsym_cmds \ +-module_cmds \ +-module_expsym_cmds \ +-export_symbols_cmds \ +-prelink_cmds \ +-postinstall_cmds \ +-postuninstall_cmds \ +-finish_cmds \ +-sys_lib_search_path_spec \ +-sys_lib_dlsearch_path_spec; do +- case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in +- *[\\\\\\\`\\"\\\$]*) +- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" +- ;; +- *) +- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" +- ;; +- esac +-done +- +-# Fix-up fallback echo if it was mangled by the above quoting rules. +-case \$lt_ECHO in +-*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` +- ;; +-esac +- +-ac_aux_dir='$ac_aux_dir' +-xsi_shell='$xsi_shell' +-lt_shell_append='$lt_shell_append' +- +-# See if we are running on zsh, and set the options which allow our +-# commands through without removal of \ escapes INIT. +-if test -n "\${ZSH_VERSION+set}" ; then +- setopt NO_GLOB_SUBST +-fi +- +- +- PACKAGE='$PACKAGE' +- VERSION='$VERSION' +- TIMESTAMP='$TIMESTAMP' +- RM='$RM' +- ofile='$ofile' +- +- +- +- +-_ACEOF +- +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +- +-# Handling of arguments. +-for ac_config_target in $ac_config_targets +-do +- case $ac_config_target in +- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; +- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; +- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; +- "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; +- "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; +- "swig/Makefile") CONFIG_FILES="$CONFIG_FILES swig/Makefile" ;; +- "swig/perl/Makefile") CONFIG_FILES="$CONFIG_FILES swig/perl/Makefile" ;; +- "swig/perl/Makefile.PL") CONFIG_FILES="$CONFIG_FILES swig/perl/Makefile.PL" ;; +- "swig/python/Makefile") CONFIG_FILES="$CONFIG_FILES swig/python/Makefile" ;; +- "swig/python/setup.py") CONFIG_FILES="$CONFIG_FILES swig/python/setup.py" ;; +- "swig/ruby/Makefile") CONFIG_FILES="$CONFIG_FILES swig/ruby/Makefile" ;; +- "testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;; +- "testsuite/config/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/config/Makefile" ;; +- "testsuite/libaalogparse.test/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/libaalogparse.test/Makefile" ;; +- "testsuite/lib/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/lib/Makefile" ;; +- +- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; +- esac +-done +- +- +-# If the user did not use the arguments to specify the items to instantiate, +-# then the envvar interface is used. Set only those that are not. +-# We use the long form for the default assignment because of an extremely +-# bizarre bug on SunOS 4.1.3. +-if $ac_need_defaults; then +- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files +- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +-fi +- +-# Have a temporary directory for convenience. Make it in the build tree +-# simply because there is no reason against having it here, and in addition, +-# creating and moving files from /tmp can sometimes cause problems. +-# Hook for its removal unless debugging. +-# Note that there is a small window in which the directory will not be cleaned: +-# after its creation but before its name has been assigned to `$tmp'. +-$debug || +-{ +- tmp= +- trap 'exit_status=$? +- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +-' 0 +- trap 'as_fn_exit 1' 1 2 13 15 +-} +-# Create a (secure) tmp directory for tmp files. +- +-{ +- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && +- test -n "$tmp" && test -d "$tmp" +-} || +-{ +- tmp=./conf$$-$RANDOM +- (umask 077 && mkdir "$tmp") +-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +- +-# Set up the scripts for CONFIG_FILES section. +-# No need to generate them if there are no CONFIG_FILES. +-# This happens for instance with `./config.status config.h'. +-if test -n "$CONFIG_FILES"; then +- +- +-ac_cr=`echo X | tr X '\015'` +-# On cygwin, bash can eat \r inside `` if the user requested igncr. +-# But we know of no other shell where ac_cr would be empty at this +-# point, so we can use a bashism as a fallback. +-if test "x$ac_cr" = x; then +- eval ac_cr=\$\'\\r\' +-fi +-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then +- ac_cs_awk_cr='\\r' +-else +- ac_cs_awk_cr=$ac_cr +-fi +- +-echo 'BEGIN {' >"$tmp/subs1.awk" && +-_ACEOF +- +- +-{ +- echo "cat >conf$$subs.awk <<_ACEOF" && +- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && +- echo "_ACEOF" +-} >conf$$subs.sh || +- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +-ac_delim='%!_!# ' +-for ac_last_try in false false false false false :; do +- . ./conf$$subs.sh || +- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +- +- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` +- if test $ac_delim_n = $ac_delim_num; then +- break +- elif $ac_last_try; then +- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +- else +- ac_delim="$ac_delim!$ac_delim _$ac_delim!! " +- fi +-done +-rm -f conf$$subs.sh +- +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +-cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +-_ACEOF +-sed -n ' +-h +-s/^/S["/; s/!.*/"]=/ +-p +-g +-s/^[^!]*!// +-:repl +-t repl +-s/'"$ac_delim"'$// +-t delim +-:nl +-h +-s/\(.\{148\}\)..*/\1/ +-t more1 +-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +-p +-n +-b repl +-:more1 +-s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +-p +-g +-s/.\{148\}// +-t nl +-:delim +-h +-s/\(.\{148\}\)..*/\1/ +-t more2 +-s/["\\]/\\&/g; s/^/"/; s/$/"/ +-p +-b +-:more2 +-s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +-p +-g +-s/.\{148\}// +-t delim +-' >$CONFIG_STATUS || ac_write_fail=1 +-rm -f conf$$subs.awk +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +-_ACAWK +-cat >>"\$tmp/subs1.awk" <<_ACAWK && +- for (key in S) S_is_set[key] = 1 +- FS = "" +- +-} +-{ +- line = $ 0 +- nfields = split(line, field, "@") +- substed = 0 +- len = length(field[1]) +- for (i = 2; i < nfields; i++) { +- key = field[i] +- keylen = length(key) +- if (S_is_set[key]) { +- value = S[key] +- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) +- len += length(value) + length(field[++i]) +- substed = 1 +- } else +- len += 1 + keylen +- } +- +- print line +-} +- +-_ACAWK +-_ACEOF +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then +- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +-else +- cat +-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +-_ACEOF +- +-# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +-# trailing colons and then remove the whole line if VPATH becomes empty +-# (actually we leave an empty line to preserve line numbers). +-if test "x$srcdir" = x.; then +- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +-h +-s/// +-s/^/:/ +-s/[ ]*$/:/ +-s/:\$(srcdir):/:/g +-s/:\${srcdir}:/:/g +-s/:@srcdir@:/:/g +-s/^:*// +-s/:*$// +-x +-s/\(=[ ]*\).*/\1/ +-G +-s/\n// +-s/^[^=]*=[ ]*$// +-}' +-fi +- +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +-fi # test -n "$CONFIG_FILES" +- +- +-eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" +-shift +-for ac_tag +-do +- case $ac_tag in +- :[FHLC]) ac_mode=$ac_tag; continue;; +- esac +- case $ac_mode$ac_tag in +- :[FHL]*:*);; +- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; +- :[FH]-) ac_tag=-:-;; +- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; +- esac +- ac_save_IFS=$IFS +- IFS=: +- set x $ac_tag +- IFS=$ac_save_IFS +- shift +- ac_file=$1 +- shift +- +- case $ac_mode in +- :L) ac_source=$1;; +- :[FH]) +- ac_file_inputs= +- for ac_f +- do +- case $ac_f in +- -) ac_f="$tmp/stdin";; +- *) # Look for the file first in the build tree, then in the source tree +- # (if the path is not absolute). The absolute path cannot be DOS-style, +- # because $ac_f cannot contain `:'. +- test -f "$ac_f" || +- case $ac_f in +- [\\/$]*) false;; +- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; +- esac || +- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; +- esac +- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac +- as_fn_append ac_file_inputs " '$ac_f'" +- done +- +- # Let's still pretend it is `configure' which instantiates (i.e., don't +- # use $as_me), people would be surprised to read: +- # /* config.h. Generated by config.status. */ +- configure_input='Generated from '` +- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' +- `' by configure.' +- if test x"$ac_file" != x-; then +- configure_input="$ac_file. $configure_input" +- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +-$as_echo "$as_me: creating $ac_file" >&6;} +- fi +- # Neutralize special characters interpreted by sed in replacement strings. +- case $configure_input in #( +- *\&* | *\|* | *\\* ) +- ac_sed_conf_input=`$as_echo "$configure_input" | +- sed 's/[\\\\&|]/\\\\&/g'`;; #( +- *) ac_sed_conf_input=$configure_input;; +- esac +- +- case $ac_tag in +- *:-:* | *:-) cat >"$tmp/stdin" \ +- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; +- esac +- ;; +- esac +- +- ac_dir=`$as_dirname -- "$ac_file" || +-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_file" : 'X\(//\)[^/]' \| \ +- X"$ac_file" : 'X\(//\)$' \| \ +- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +-$as_echo X"$ac_file" | +- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)[^/].*/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)$/{ +- s//\1/ +- q +- } +- /^X\(\/\).*/{ +- s//\1/ +- q +- } +- s/.*/./; q'` +- as_dir="$ac_dir"; as_fn_mkdir_p +- ac_builddir=. +- +-case "$ac_dir" in +-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +-*) +- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` +- # A ".." for each directory in $ac_dir_suffix. +- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` +- case $ac_top_builddir_sub in +- "") ac_top_builddir_sub=. ac_top_build_prefix= ;; +- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; +- esac ;; +-esac +-ac_abs_top_builddir=$ac_pwd +-ac_abs_builddir=$ac_pwd$ac_dir_suffix +-# for backward compatibility: +-ac_top_builddir=$ac_top_build_prefix +- +-case $srcdir in +- .) # We are building in place. +- ac_srcdir=. +- ac_top_srcdir=$ac_top_builddir_sub +- ac_abs_top_srcdir=$ac_pwd ;; +- [\\/]* | ?:[\\/]* ) # Absolute name. +- ac_srcdir=$srcdir$ac_dir_suffix; +- ac_top_srcdir=$srcdir +- ac_abs_top_srcdir=$srcdir ;; +- *) # Relative name. +- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix +- ac_top_srcdir=$ac_top_build_prefix$srcdir +- ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +-esac +-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix +- +- +- case $ac_mode in +- :F) +- # +- # CONFIG_FILE +- # +- +- case $INSTALL in +- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; +- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; +- esac +- ac_MKDIR_P=$MKDIR_P +- case $MKDIR_P in +- [\\/$]* | ?:[\\/]* ) ;; +- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; +- esac +-_ACEOF +- +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +-# If the template does not know about datarootdir, expand it. +-# FIXME: This hack should be removed a few years after 2.60. +-ac_datarootdir_hack=; ac_datarootdir_seen= +-ac_sed_dataroot=' +-/datarootdir/ { +- p +- q +-} +-/@datadir@/p +-/@docdir@/p +-/@infodir@/p +-/@localedir@/p +-/@mandir@/p' +-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +-*datarootdir*) ac_datarootdir_seen=yes;; +-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +-_ACEOF +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +- ac_datarootdir_hack=' +- s&@datadir@&$datadir&g +- s&@docdir@&$docdir&g +- s&@infodir@&$infodir&g +- s&@localedir@&$localedir&g +- s&@mandir@&$mandir&g +- s&\\\${datarootdir}&$datarootdir&g' ;; +-esac +-_ACEOF +- +-# Neutralize VPATH when `$srcdir' = `.'. +-# Shell code in configure.ac might set extrasub. +-# FIXME: do we really want to maintain this feature? +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +-ac_sed_extra="$ac_vpsub +-$extrasub +-_ACEOF +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +-:t +-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +-s|@configure_input@|$ac_sed_conf_input|;t t +-s&@top_builddir@&$ac_top_builddir_sub&;t t +-s&@top_build_prefix@&$ac_top_build_prefix&;t t +-s&@srcdir@&$ac_srcdir&;t t +-s&@abs_srcdir@&$ac_abs_srcdir&;t t +-s&@top_srcdir@&$ac_top_srcdir&;t t +-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +-s&@builddir@&$ac_builddir&;t t +-s&@abs_builddir@&$ac_abs_builddir&;t t +-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +-s&@INSTALL@&$ac_INSTALL&;t t +-s&@MKDIR_P@&$ac_MKDIR_P&;t t +-$ac_datarootdir_hack +-" +-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ +- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +- +-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && +- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && +- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +-which seems to be undefined. Please make sure it is defined" >&5 +-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +-which seems to be undefined. Please make sure it is defined" >&2;} +- +- rm -f "$tmp/stdin" +- case $ac_file in +- -) cat "$tmp/out" && rm -f "$tmp/out";; +- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; +- esac \ +- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +- ;; +- +- +- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +-$as_echo "$as_me: executing $ac_file commands" >&6;} +- ;; +- esac +- +- +- case $ac_file$ac_mode in +- "depfiles":C) test x"$AMDEP_TRUE" != x"" || { +- # Autoconf 2.62 quotes --file arguments for eval, but not when files +- # are listed without --file. Let's play safe and only enable the eval +- # if we detect the quoting. +- case $CONFIG_FILES in +- *\'*) eval set x "$CONFIG_FILES" ;; +- *) set x $CONFIG_FILES ;; +- esac +- shift +- for mf +- do +- # Strip MF so we end up with the name of the file. +- mf=`echo "$mf" | sed -e 's/:.*$//'` +- # Check whether this is an Automake generated Makefile or not. +- # We used to match only the files named `Makefile.in', but +- # some people rename them; so instead we look at the file content. +- # Grep'ing the first line is not enough: some people post-process +- # each Makefile.in and add a new line on top of each file to say so. +- # Grep'ing the whole file is not good either: AIX grep has a line +- # limit of 2048, but all sed's we know have understand at least 4000. +- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then +- dirpart=`$as_dirname -- "$mf" || +-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$mf" : 'X\(//\)[^/]' \| \ +- X"$mf" : 'X\(//\)$' \| \ +- X"$mf" : 'X\(/\)' \| . 2>/dev/null || +-$as_echo X"$mf" | +- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)[^/].*/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)$/{ +- s//\1/ +- q +- } +- /^X\(\/\).*/{ +- s//\1/ +- q +- } +- s/.*/./; q'` +- else +- continue +- fi +- # Extract the definition of DEPDIR, am__include, and am__quote +- # from the Makefile without running `make'. +- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` +- test -z "$DEPDIR" && continue +- am__include=`sed -n 's/^am__include = //p' < "$mf"` +- test -z "am__include" && continue +- am__quote=`sed -n 's/^am__quote = //p' < "$mf"` +- # When using ansi2knr, U may be empty or an underscore; expand it +- U=`sed -n 's/^U = //p' < "$mf"` +- # Find all dependency output files, they are included files with +- # $(DEPDIR) in their names. We invoke sed twice because it is the +- # simplest approach to changing $(DEPDIR) to its actual value in the +- # expansion. +- for file in `sed -n " +- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ +- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do +- # Make sure the directory exists. +- test -f "$dirpart/$file" && continue +- fdir=`$as_dirname -- "$file" || +-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$file" : 'X\(//\)[^/]' \| \ +- X"$file" : 'X\(//\)$' \| \ +- X"$file" : 'X\(/\)' \| . 2>/dev/null || +-$as_echo X"$file" | +- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)[^/].*/{ +- s//\1/ +- q +- } +- /^X\(\/\/\)$/{ +- s//\1/ +- q +- } +- /^X\(\/\).*/{ +- s//\1/ +- q +- } +- s/.*/./; q'` +- as_dir=$dirpart/$fdir; as_fn_mkdir_p +- # echo "creating $dirpart/$file" +- echo '# dummy' > "$dirpart/$file" +- done +- done +-} +- ;; +- "libtool":C) +- +- # 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 +- +- cfgfile="${ofile}T" +- trap "$RM \"$cfgfile\"; exit 1" 1 2 15 +- $RM "$cfgfile" +- +- cat <<_LT_EOF >> "$cfgfile" +-#! $SHELL +- +-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +-# NOTE: Changes made to this file will be lost: look at ltmain.sh. +-# +-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008 Free Software Foundation, Inc. +-# Written by Gordon Matzigkeit, 1996 +-# +-# This file is part of GNU Libtool. +-# +-# GNU Libtool 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. +-# +-# As a special exception to the GNU General Public License, +-# if you distribute this file as part of a program or library that +-# is built using GNU Libtool, you may include this file under the +-# same distribution terms that you use for the rest of that program. +-# +-# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +-# obtained by writing to the Free Software Foundation, Inc., +-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +- +- +-# The names of the tagged configurations supported by this script. +-available_tags="" +- +-# ### BEGIN LIBTOOL CONFIG +- +-# Which release of libtool.m4 was used? +-macro_version=$macro_version +-macro_revision=$macro_revision +- +-# Whether or not to build shared libraries. +-build_libtool_libs=$enable_shared +- +-# Whether or not to build static libraries. +-build_old_libs=$enable_static +- +-# What type of objects to build. +-pic_mode=$pic_mode +- +-# Whether or not to optimize for fast installation. +-fast_install=$enable_fast_install +- +-# The host system. +-host_alias=$host_alias +-host=$host +-host_os=$host_os +- +-# The build system. +-build_alias=$build_alias +-build=$build +-build_os=$build_os +- +-# 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 1s/^X//" +- +-# A grep program that handles long lines. +-GREP=$lt_GREP +- +-# An ERE matcher. +-EGREP=$lt_EGREP +- +-# A literal string matcher. +-FGREP=$lt_FGREP +- +-# A BSD- or MS-compatible name lister. +-NM=$lt_NM +- +-# Whether we need soft or hard links. +-LN_S=$lt_LN_S +- +-# What is the maximum length of a command? +-max_cmd_len=$max_cmd_len +- +-# Object file suffix (normally "o"). +-objext=$ac_objext +- +-# Executable file suffix (normally ""). +-exeext=$exeext +- +-# whether the shell understands "unset". +-lt_unset=$lt_unset +- +-# turn spaces into newlines. +-SP2NL=$lt_lt_SP2NL +- +-# turn newlines into spaces. +-NL2SP=$lt_lt_NL2SP +- +-# How to create reloadable object files. +-reload_flag=$lt_reload_flag +-reload_cmds=$lt_reload_cmds +- +-# An object symbol dumper. +-OBJDUMP=$lt_OBJDUMP +- +-# 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 +- +-# The archiver. +-AR=$lt_AR +-AR_FLAGS=$lt_AR_FLAGS +- +-# A symbol stripping program. +-STRIP=$lt_STRIP +- +-# Commands used to install an old-style archive. +-RANLIB=$lt_RANLIB +-old_postinstall_cmds=$lt_old_postinstall_cmds +-old_postuninstall_cmds=$lt_old_postuninstall_cmds +- +-# A C compiler. +-LTCC=$lt_CC +- +-# LTCC compiler flags. +-LTCFLAGS=$lt_CFLAGS +- +-# 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 +- +-# Transform the output of nm in a C name address pair when lib prefix is needed. +-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix +- +-# The name of the directory that contains temporary libtool files. +-objdir=$objdir +- +-# Shell to use when invoking shell scripts. +-SHELL=$lt_SHELL +- +-# An echo program that does not interpret backslashes. +-ECHO=$lt_ECHO +- +-# Used to examine libraries when file_magic_cmd begins with "file". +-MAGIC_CMD=$MAGIC_CMD +- +-# Must we lock files when doing compilation? +-need_locks=$lt_need_locks +- +-# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +-DSYMUTIL=$lt_DSYMUTIL +- +-# Tool to change global to local symbols on Mac OS X. +-NMEDIT=$lt_NMEDIT +- +-# Tool to manipulate fat objects and archives on Mac OS X. +-LIPO=$lt_LIPO +- +-# ldd/readelf like tool for Mach-O binaries on Mac OS X. +-OTOOL=$lt_OTOOL +- +-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +-OTOOL64=$lt_OTOOL64 +- +-# Old archive suffix (normally "a"). +-libext=$libext +- +-# Shared library suffix (normally ".so"). +-shrext_cmds=$lt_shrext_cmds +- +-# The commands to extract the exported symbol list from a shared archive. +-extract_expsyms_cmds=$lt_extract_expsyms_cmds +- +-# Variables whose values should be saved in libtool wrapper scripts and +-# restored at link time. +-variables_saved_for_relink=$lt_variables_saved_for_relink +- +-# 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 +- +-# Library versioning type. +-version_type=$version_type +- +-# Shared library runtime path variable. +-runpath_var=$runpath_var +- +-# Shared library path variable. +-shlibpath_var=$shlibpath_var +- +-# Is shlibpath searched before the hard-coded library search path? +-shlibpath_overrides_runpath=$shlibpath_overrides_runpath +- +-# 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 +- +-# Command to use after installation of a shared archive. +-postinstall_cmds=$lt_postinstall_cmds +- +-# Command to use after uninstallation of a shared archive. +-postuninstall_cmds=$lt_postuninstall_cmds +- +-# Commands used to finish a libtool library installation in a directory. +-finish_cmds=$lt_finish_cmds +- +-# As "finish_cmds", except a single script fragment to be evaled but +-# not shown. +-finish_eval=$lt_finish_eval +- +-# Whether we should hardcode library paths into libraries. +-hardcode_into_libs=$hardcode_into_libs +- +-# 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 +- +-# 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 +- +-# Commands to strip libraries. +-old_striplib=$lt_old_striplib +-striplib=$lt_striplib +- +- +-# The linker used to build libraries. +-LD=$lt_LD +- +-# Commands used to build an old-style archive. +-old_archive_cmds=$lt_old_archive_cmds +- +-# A language specific compiler. +-CC=$lt_compiler +- +-# Is the compiler the GNU compiler? +-with_gcc=$GCC +- +-# Compiler flag to turn off builtin functions. +-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag +- +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- +-# Additional compiler flags for building library objects. +-pic_flag=$lt_lt_prog_compiler_pic +- +-# Compiler flag to prevent dynamic linking. +-link_static_flag=$lt_lt_prog_compiler_static +- +-# Does compiler simultaneously support -c and -o options? +-compiler_c_o=$lt_lt_cv_prog_compiler_c_o +- +-# Whether or not to add -lc for building shared libraries. +-build_libtool_need_lc=$archive_cmds_need_lc +- +-# Whether or not to disallow shared libs when runtime libs are static. +-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes +- +-# Compiler flag to allow reflexive dlopens. +-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec +- +-# Compiler flag to generate shared objects directly from archives. +-whole_archive_flag_spec=$lt_whole_archive_flag_spec +- +-# Whether the compiler copes with passing no objects directly. +-compiler_needs_object=$lt_compiler_needs_object +- +-# Create an old-style archive from a shared archive. +-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds +- +-# Create a temporary old-style archive to link instead of a shared archive. +-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds +- +-# Commands used to build a shared archive. +-archive_cmds=$lt_archive_cmds +-archive_expsym_cmds=$lt_archive_expsym_cmds +- +-# Commands used to build a loadable module if different from building +-# a shared archive. +-module_cmds=$lt_module_cmds +-module_expsym_cmds=$lt_module_expsym_cmds +- +-# Whether we are building with GNU ld or not. +-with_gnu_ld=$lt_with_gnu_ld +- +-# Flag that allows shared libraries with undefined symbols to be built. +-allow_undefined_flag=$lt_allow_undefined_flag +- +-# Flag that enforces no undefined symbols. +-no_undefined_flag=$lt_no_undefined_flag +- +-# Flag to hardcode \$libdir into a binary during linking. +-# This must work even if \$libdir does not exist +-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec +- +-# 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_hardcode_libdir_flag_spec_ld +- +-# Whether we need a single "-rpath" flag with a separated argument. +-hardcode_libdir_separator=$lt_hardcode_libdir_separator +- +-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +-# DIR into the resulting binary. +-hardcode_direct=$hardcode_direct +- +-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +-# DIR into the resulting binary and the resulting library dependency is +-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +-# library is relocated. +-hardcode_direct_absolute=$hardcode_direct_absolute +- +-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +-# into the resulting binary. +-hardcode_minus_L=$hardcode_minus_L +- +-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +-# into the resulting binary. +-hardcode_shlibpath_var=$hardcode_shlibpath_var +- +-# 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=$hardcode_automatic +- +-# Set to yes if linker adds runtime paths of dependent libraries +-# to runtime path list. +-inherit_rpath=$inherit_rpath +- +-# Whether libtool must link a program against all its dependency libraries. +-link_all_deplibs=$link_all_deplibs +- +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- +-# Set to "yes" if exported symbols are required. +-always_export_symbols=$always_export_symbols +- +-# The commands to list exported symbols. +-export_symbols_cmds=$lt_export_symbols_cmds +- +-# Symbols that should not be listed in the preloaded symbols. +-exclude_expsyms=$lt_exclude_expsyms +- +-# Symbols that must always be exported. +-include_expsyms=$lt_include_expsyms +- +-# Commands necessary for linking programs (against libraries) with templates. +-prelink_cmds=$lt_prelink_cmds +- +-# Specify filename containing input files. +-file_list_spec=$lt_file_list_spec +- +-# How to hardcode a shared library path into an executable. +-hardcode_action=$hardcode_action +- +-# ### END LIBTOOL CONFIG +- +-_LT_EOF +- +- case $host_os in +- aix3*) +- cat <<\_LT_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 +-_LT_EOF +- ;; +- esac +- +- +-ltmain="$ac_aux_dir/ltmain.sh" +- +- +- # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "X${3}" \ +- | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "X${3}" \ +- | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || +- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") +- chmod +x "$ofile" +- +- ;; +- +- esac +-done # for ac_tag +- +- +-as_fn_exit 0 +-_ACEOF +-ac_clean_files=$ac_clean_files_save +- +-test $ac_write_fail = 0 || +- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 +- +- +-# configure is writing to config.log, and then calls config.status. +-# config.status does its own redirection, appending to config.log. +-# Unfortunately, on DOS this fails, as config.log is still kept open +-# by configure, so config.status won't be able to write to it; its +-# output is simply discarded. So we exec the FD to /dev/null, +-# effectively closing config.log, so it can be properly (re)opened and +-# appended to by config.status. When coming back to configure, we +-# need to make the FD available again. +-if test "$no_create" != yes; then +- ac_cs_success=: +- ac_config_status_args= +- test "$silent" = yes && +- ac_config_status_args="$ac_config_status_args --quiet" +- exec 5>/dev/null +- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false +- exec 5>>config.log +- # Use ||, not &&, to avoid exiting from the if with $? = 1, which +- # would make configure fail if this is the last instruction. +- $ac_cs_success || as_fn_exit 1 +-fi +-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +-fi +- +--- a/libraries/libapparmor/doc/Makefile.am ++++ b/libraries/libapparmor/doc/Makefile.am +@@ -11,11 +11,9 @@ EXTRA_DIST = $(man_MANS) $(PODS) + ## delete man pages at maintainer-clean + BUILT_SOURCES = $(man_MANS) + +-%.2: %.pod +- $(POD2MAN) \ +- --section=2 \ +- --release="NOVELL/SUSE" \ +- --center="AppArmor" \ +- --date="2007-07-27" \ +- $< > $@ +-$ ++PODARGS = --center=AppArmor --release=NOVELL/SUSE ++ ++pod2man = pod2man $(PODARGS) --section $(subst .,,$(suffix $<)) $< > $@ ++ ++.pod.2: ++ $(pod2man) +--- a/libraries/libapparmor/install-sh ++++ /dev/null +@@ -1,520 +0,0 @@ +-#!/bin/sh +-# install - install a program, script, or datafile +- +-scriptversion=2009-04-28.21; # UTC +- +-# 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. +- +-nl=' +-' +-IFS=" "" $nl" +- +-# set DOITPROG to echo to test this script +- +-# Don't use :- since 4.3BSD and earlier shells don't like it. +-doit=${DOITPROG-} +-if test -z "$doit"; then +- doit_exec=exec +-else +- doit_exec=$doit +-fi +- +-# Put in absolute file names if you don't have them in your path; +-# or use environment vars. +- +-chgrpprog=${CHGRPPROG-chgrp} +-chmodprog=${CHMODPROG-chmod} +-chownprog=${CHOWNPROG-chown} +-cmpprog=${CMPPROG-cmp} +-cpprog=${CPPROG-cp} +-mkdirprog=${MKDIRPROG-mkdir} +-mvprog=${MVPROG-mv} +-rmprog=${RMPROG-rm} +-stripprog=${STRIPPROG-strip} +- +-posix_glob='?' +-initialize_posix_glob=' +- test "$posix_glob" != "?" || { +- if (set -f) 2>/dev/null; then +- posix_glob= +- else +- posix_glob=: +- fi +- } +-' +- +-posix_mkdir= +- +-# Desired mode of installed file. +-mode=0755 +- +-chgrpcmd= +-chmodcmd=$chmodprog +-chowncmd= +-mvcmd=$mvprog +-rmcmd="$rmprog -f" +-stripcmd= +- +-src= +-dst= +-dir_arg= +-dst_arg= +- +-copy_on_change=false +-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: +- --help display this help and exit. +- --version display version info and exit. +- +- -c (ignored) +- -C install only if different (preserve the last data modification time) +- -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. +- +-Environment variables override the default commands: +- CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG +- RMPROG STRIPPROG +-" +- +-while test $# -ne 0; do +- case $1 in +- -c) ;; +- +- -C) copy_on_change=true;; +- +- -d) dir_arg=true;; +- +- -g) chgrpcmd="$chgrpprog $2" +- shift;; +- +- --help) echo "$usage"; exit $?;; +- +- -m) mode=$2 +- case $mode in +- *' '* | *' '* | *' +-'* | *'*'* | *'?'* | *'['*) +- echo "$0: invalid mode: $mode" >&2 +- exit 1;; +- esac +- shift;; +- +- -o) chowncmd="$chownprog $2" +- shift;; +- +- -s) stripcmd=$stripprog;; +- +- -t) dst_arg=$2 +- shift;; +- +- -T) no_target_directory=true;; +- +- --version) echo "$0 $scriptversion"; exit $?;; +- +- --) shift +- break;; +- +- -*) echo "$0: invalid option: $1" >&2 +- exit 1;; +- +- *) break;; +- esac +- shift +-done +- +-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then +- # When -d is used, all remaining arguments are directories to create. +- # When -t is used, the destination is already specified. +- # Otherwise, the last argument is the destination. Remove it from $@. +- for arg +- do +- if test -n "$dst_arg"; then +- # $@ is not empty: it contains at least $arg. +- set fnord "$@" "$dst_arg" +- shift # fnord +- fi +- shift # arg +- dst_arg=$arg +- done +-fi +- +-if test $# -eq 0; 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 +- +-if test -z "$dir_arg"; then +- trap '(exit $?); exit' 1 2 13 15 +- +- # Set umask so as not to create temps with too-generous modes. +- # However, 'strip' requires both read and write access to temps. +- case $mode in +- # Optimize common cases. +- *644) cp_umask=133;; +- *755) cp_umask=22;; +- +- *[0-7]) +- if test -z "$stripcmd"; then +- u_plus_rw= +- else +- u_plus_rw='% 200' +- fi +- cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; +- *) +- if test -z "$stripcmd"; then +- u_plus_rw= +- else +- u_plus_rw=,u+rw +- fi +- cp_umask=$mode$u_plus_rw;; +- esac +-fi +- +-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 "$dst_arg"; then +- echo "$0: no destination specified." >&2 +- exit 1 +- fi +- +- dst=$dst_arg +- # 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: $dst_arg: 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 +- '') +- # Create intermediate dirs using mode 755 as modified by the umask. +- # This is like FreeBSD 'install' as of 1997-10-28. +- umask=`umask` +- case $stripcmd.$umask in +- # Optimize common cases. +- *[2367][2367]) mkdir_umask=$umask;; +- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; +- +- *[0-7]) +- mkdir_umask=`expr $umask + 22 \ +- - $umask % 100 % 40 + $umask % 20 \ +- - $umask % 10 % 4 + $umask % 2 +- `;; +- *) mkdir_umask=$umask,go-w;; +- esac +- +- # With -d, create the new directory with the user-specified mode. +- # Otherwise, rely on $mkdir_umask. +- if test -n "$dir_arg"; then +- mkdir_mode=-m$mode +- else +- mkdir_mode= +- fi +- +- posix_mkdir=false +- case $umask in +- *[123567][0-7][0-7]) +- # POSIX mkdir -p sets u+wx bits regardless of umask, which +- # is incompatible with FreeBSD 'install' when (umask & 300) != 0. +- ;; +- *) +- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ +- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 +- +- if (umask $mkdir_umask && +- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 +- then +- if test -z "$dir_arg" || { +- # Check for POSIX incompatibilities with -m. +- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or +- # other-writeable bit of parent directory when it shouldn't. +- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. +- ls_ld_tmpdir=`ls -ld "$tmpdir"` +- case $ls_ld_tmpdir in +- d????-?r-*) different_mode=700;; +- d????-?--*) different_mode=755;; +- *) false;; +- esac && +- $mkdirprog -m$different_mode -p -- "$tmpdir" && { +- ls_ld_tmpdir_1=`ls -ld "$tmpdir"` +- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" +- } +- } +- then posix_mkdir=: +- fi +- rmdir "$tmpdir/d" "$tmpdir" +- else +- # Remove any dirs left behind by ancient mkdir implementations. +- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null +- fi +- trap '' 0;; +- esac;; +- esac +- +- if +- $posix_mkdir && ( +- umask $mkdir_umask && +- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" +- ) +- then : +- else +- +- # The umask is ridiculous, or 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 +- /*) prefix='/';; +- -*) prefix='./';; +- *) prefix='';; +- esac +- +- eval "$initialize_posix_glob" +- +- oIFS=$IFS +- IFS=/ +- $posix_glob set -f +- set fnord $dstdir +- shift +- $posix_glob set +f +- IFS=$oIFS +- +- prefixes= +- +- for d +- do +- test -z "$d" && continue +- +- prefix=$prefix$d +- if test -d "$prefix"; then +- prefixes= +- else +- if $posix_mkdir; then +- (umask=$mkdir_umask && +- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break +- # Don't fail if two instances are running concurrently. +- test -d "$prefix" || exit 1 +- else +- case $prefix in +- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; +- *) qprefix=$prefix;; +- esac +- prefixes="$prefixes '$qprefix'" +- fi +- fi +- prefix=$prefix/ +- done +- +- if test -n "$prefixes"; then +- # Don't fail if two instances are running concurrently. +- (umask $mkdir_umask && +- eval "\$doit_exec \$mkdirprog $prefixes") || +- test -d "$dstdir" || exit 1 +- obsolete_mkdir_used=true +- fi +- 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. +- (umask $cp_umask && $doit_exec $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"; } && +- +- # If -C, don't bother to copy if it wouldn't change the file. +- if $copy_on_change && +- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && +- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && +- +- eval "$initialize_posix_glob" && +- $posix_glob set -f && +- set X $old && old=:$2:$4:$5:$6 && +- set X $new && new=:$2:$4:$5:$6 && +- $posix_glob set +f && +- +- test "$old" = "$new" && +- $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 +- then +- rm -f "$dsttmp" +- else +- # 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. +- { +- test ! -f "$dst" || +- $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 +- } +- } && +- +- # Now rename the file to the real destination. +- $doit $mvcmd "$dsttmp" "$dst" +- } +- fi || 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-time-zone: "UTC" +-# time-stamp-end: "; # UTC" +-# End: +--- a/libraries/libapparmor/libapparmor1.spec ++++ /dev/null +@@ -1,178 +0,0 @@ +-# +-# spec file for package libapparmor +-# +-# norootforbuild +-%define _unpackaged_files_terminate_build 0 +- +-Name: libapparmor1 +-Version: 2.5.1 +-Release: 3.20070916 +-License: LGPL +-Group: Development/Libraries/C and C++ +-BuildRoot: %{_tmppath}/%{name}-%{version}-build +-Source0: %{name}-%{version}.tar.bz2 +-BuildRequires: swig gcc perl +-Provides: libapparmor +-Provides: libimmunix +-Obsoletes: libapparmor +-Obsoletes: libimmunix +-Summary: A utility library for AppArmor +- +-%define aalibversion 1.0.2 +- +-%description +-- +- +-%package -n libapparmor-devel +-Requires: %{name} = %{version}-%{release} +-Group: Development/Libraries/C and C++ +-Provides: libapparmor:/usr/include/sys/apparmor.h +-Summary: - +- +-%description -n libapparmor-devel +-- +- +-%post -n libapparmor-devel +-/sbin/ldconfig +- +-%postun -n libapparmor-devel +-/sbin/ldconfig +- +-%package -n perl-libapparmor +-Requires: %{name} = %{version} +-Requires: perl = %{perl_version} +-Group: Development/Libraries/Perl +-Summary: - +- +-%description -n perl-libapparmor +-- +- +-%prep +-%setup -q +- +-%build +-./configure --prefix=%{_prefix} --libdir=%{_libdir} --with-perl +-make CFLAGS="${RPM_OPT_FLAGS}" +- +-%install +-make install DESTDIR="$RPM_BUILD_ROOT" +-mkdir ${RPM_BUILD_ROOT}/%{_lib} +-# this is really hacky +-rm ${RPM_BUILD_ROOT}/%{_libdir}/libapparmor.so +-rm ${RPM_BUILD_ROOT}/%{_libdir}/libimmunix.so +-cp ${RPM_BUILD_ROOT}/%{_libdir}/libapparmor.so.%{aalibversion} ${RPM_BUILD_ROOT}/%{_lib} +-cp ${RPM_BUILD_ROOT}/%{_libdir}/libimmunix.so.%{aalibversion} ${RPM_BUILD_ROOT}/%{_lib} +-ln -s /%{_lib}/libapparmor.so.%{aalibversion} ${RPM_BUILD_ROOT}/%{_libdir}/libapparmor.so +- +-find $RPM_BUILD_ROOT -name .packlist -exec rm -f {} \; +-find $RPM_BUILD_ROOT -name perllocal.pod -exec rm -f {} \; +- +-# create symlink for old change_hat(2) manpage +-ln -s aa_change_hat.2 ${RPM_BUILD_ROOT}/%{_mandir}/man2/change_hat.2 +-%clean +-rm -rf "$RPM_BUILD_ROOT" +- +-%post +-/sbin/ldconfig +- +-%postun +-/sbin/ldconfig +- +-%files +-%defattr(-,root,root) +-/%{_lib}/libapparmor.so.* +-/%{_lib}/libimmunix.so.* +- +-%files -n libapparmor-devel +-%defattr(-,root,root) +-%{_libdir}/libapparmor.so +-%{_libdir}/libapparmor.la +-%{_libdir}/libapparmor.a +-%{_libdir}/libimmunix.la +-%{_libdir}/libimmunix.a +-%doc %{_mandir}/man*/* +-%dir %{_includedir}/aalogparse +-%{_includedir}/sys/apparmor.h +-%{_includedir}/aalogparse/* +- +-%files -n perl-libapparmor +-%defattr(-,root,root) +-%dir %{perl_vendorarch}/auto/LibAppArmor +-%{perl_vendorarch}/auto/LibAppArmor/* +-%{perl_vendorarch}/LibAppArmor.pm +- +-%changelog +-* Sun Sep 16 2007 - sbeattie@suse.de +-- aalogparse: add support for type=15xx audit field +-- aalogparse: add support for audit messages thru syslog +-- aalogparse: reduce noise to stdout on syntax errors +-- aalogparse: add support for more missing message types +-- aalogparse: parse messages w/safe (hex) string encodings +-* Fri Aug 17 2007 - sbeattie@suse.de +-- Fix broken symlink for old change_hat(2) manpage +-* Wed Aug 15 2007 - sbeattie@suse.de +-- fix braindead symbol versioning issue with old version name +-- re-enable CFLAGS=RPM_OPT_FLAGS for build +-- convert change_hat(2) to aa_change_hat(2) +-- use 64bit magic token +-- add aa_change_profile(2) interface +-* Sat Jul 28 2007 - mbarringer@suse.de +-- Merged in libaalogparse to the library/package +-* Tue Apr 7 2007 - sbeattie@suse.de +-- Add change_hat manpage to package +-* Thu Jan 18 2007 - sbeattie@suse.de +-- Add a clean stage to remove buildroot to specfile +-* Fri Feb 17 2006 Seth Arnold 2.0-4.1 +-- use gettid() instead of /proc/self +-* Fri Feb 10 2006 Steve Beattie 2.0-3.2 +-- Use RPM_OPT_FLAGS +-- Fix installed library version to match specfile version +-* Wed Feb 1 2006 Steve Beattie 2.0-3.1 +-- Fix prototype to match change_hat(2) manpage +-* Mon Jan 23 2006 Steve Beattie 2.0-3 +-- Rename to libapparmor.so and apparmor.h +-* Thu Jan 5 2006 Steve Beattie 2.0-2 +-- Add svn repo number to tarball +-* Wed Dec 7 2005 Steve Beattie 2.0-1 +-- Reset version for inclusion is SUSE autobuild +-* Wed Dec 7 2005 Steve Beattie 1.99-8 +-- Disable 32bit builds on 64bit platforms for now +-* Mon Dec 5 2005 Steve Beattie 1.99-7 +-- Rename package to libapparmor +-* Wed Aug 10 2005 Steve Beattie 1.99-6_imnx +-- Cleanup some of the deprecated exported symbols +-* Thu Aug 4 2005 John Johansen 1.99-5_imnx +-- and -m31 flag for s390 +-* Mon Jul 11 2005 Steve Beattie 1.99-4_imnx +-- get rid of libimmunix_post_upgrade +-- Re-license to LGPL +-- update description +-* Fri May 27 2005 Steve Beattie 1.99-3_imnx +-- Clear token buffer before freeing. +-- Error handling cleanup. +-* Fri Feb 18 2005 Steve Beattie 1.99-2_imnx +-- Use the right command for the 32bit env on 64bit platforms +-- Support for 64bit builds on systems with combined 32/64 support +-* Fri Feb 4 2005 Seth Arnold 1.99-1_imnx +-- Reversion to 1.99 +-* Mon Nov 8 2004 Steve Beattie 1.2-3_imnx +-- Finish conversion to slack-capable infrastructure. +-* Thu Oct 28 2004 Steve Beattie 1.2-2_imnx +-- Added a 'make install' target for prelim slack support +-* Tue Oct 12 2004 Steve Beattie 1.2-1_imnx +-- Bump version after shass-1.1 branched off +-* Thu Sep 23 2004 Steve Beattie 1.0-13_imnx +-- Vastly simplify the string handling in change_hat(). +-* Thu Sep 9 2004 Steve Beattie 1.0-12_imnx +-- Conditionalize group the package shows up in. +-* Thu Sep 9 2004 Steve Beattie 1.0-11_imnx +-- Fix so change_hat functions correctly even when the token is zero. +-* Thu Sep 2 2004 Steve Beattie 1.0-10_imnx +-- Added that it provides %{_prefix}/sbin/libimmunix_post_upgrade, this +- was somehow breaking yast. +-* Mon Aug 30 2004 Steve Beattie 1.0-9_imnx +-- Copyright cleanups. +-* Wed Jul 21 2004 Steve Beattie 1.0-8_imnx +-- add basis for conditional distro support +-* Thu May 28 2004 Tony Jones 1.0-7_imnx +-- Add "changehat" command word to start of string written to /proc/pid/attr +--- a/libraries/libapparmor/m4/ac_pod2man.m4 ++++ /dev/null +@@ -1,16 +0,0 @@ +-AC_DEFUN([PROG_POD2MAN],[ +- AC_CHECK_PROG(POD2MAN,pod2man,pod2man,no) +- if test "$POD2MAN" = "no"; then +- AC_MSG_ERROR([ +-The pod2man program was not found in the default path. pod2man is part of +-Perl, which can be retrieved from: +- +- http://www.perl.com/ +- +-The latest version at this time is 5.6.1; it is available packaged as the +-following archive: +- +- http://www.perl.com/CPAN/src/stable.tar.gz +-]) +- fi +-]) +--- a/libraries/libapparmor/m4/ac_python_devel.m4 ++++ /dev/null +@@ -1,193 +0,0 @@ +-AC_DEFUN([AC_PYTHON_DEVEL],[ +- # +- # Allow the use of a (user set) custom python version +- # +- AC_ARG_VAR([PYTHON_VERSION],[The installed Python +- version to use, for example '2.3'. This string +- will be appended to the Python interpreter +- canonical name.]) +- +- AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]]) +- if test -z "$PYTHON"; then +- AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path]) +- PYTHON_VERSION="" +- fi +- +- # +- # Check for a version of Python >= 2.1.0 +- # +- AC_MSG_CHECKING([for a version of Python >= '2.1.0']) +- ac_supports_python_ver=`$PYTHON -c "import sys, string; \ +- ver = string.split(sys.version)[[0]]; \ +- print ver >= '2.1.0'"` +- if test "$ac_supports_python_ver" != "True"; then +- if test -z "$PYTHON_NOVERSIONCHECK"; then +- AC_MSG_RESULT([no]) +- AC_MSG_FAILURE([ +-This version of the AC@&t@_PYTHON_DEVEL macro +-doesn't work properly with versions of Python before +-2.1.0. You may need to re-run configure, setting the +-variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG, +-PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. +-Moreover, to disable this check, set PYTHON_NOVERSIONCHECK +-to something else than an empty string. +-]) +- else +- AC_MSG_RESULT([skip at user request]) +- fi +- else +- AC_MSG_RESULT([yes]) +- fi +- +- # +- # if the macro parameter ``version'' is set, honour it +- # +- if test -n "$1"; then +- AC_MSG_CHECKING([for a version of Python $1]) +- ac_supports_python_ver=`$PYTHON -c "import sys, string; \ +- ver = string.split(sys.version)[[0]]; \ +- print ver $1"` +- if test "$ac_supports_python_ver" = "True"; then +- AC_MSG_RESULT([yes]) +- else +- AC_MSG_RESULT([no]) +- AC_MSG_ERROR([this package requires Python $1. +-If you have it installed, but it isn't the default Python +-interpreter in your system path, please pass the PYTHON_VERSION +-variable to configure. See ``configure --help'' for reference. +-]) +- PYTHON_VERSION="" +- fi +- fi +- +- # +- # Check if you have distutils, else fail +- # +- AC_MSG_CHECKING([for the distutils Python package]) +- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` +- if test -z "$ac_distutils_result"; then +- AC_MSG_RESULT([yes]) +- else +- AC_MSG_RESULT([no]) +- AC_MSG_ERROR([cannot import Python module "distutils". +-Please check your Python installation. The error was: +-$ac_distutils_result]) +- PYTHON_VERSION="" +- fi +- +- # +- # Check for Python include path +- # +- AC_MSG_CHECKING([for Python include path]) +- if test -z "$PYTHON_CPPFLAGS"; then +- python_path=`$PYTHON -c "import distutils.sysconfig; \ +- print distutils.sysconfig.get_python_inc();"` +- if test -n "${python_path}"; then +- python_path="-I$python_path" +- fi +- PYTHON_CPPFLAGS=$python_path +- fi +- AC_MSG_RESULT([$PYTHON_CPPFLAGS]) +- AC_SUBST([PYTHON_CPPFLAGS]) +- +- # +- # Check for Python library path +- # +- AC_MSG_CHECKING([for Python library path]) +- if test -z "$PYTHON_LDFLAGS"; then +- # (makes two attempts to ensure we've got a version number +- # from the interpreter) +- py_version=`$PYTHON -c "from distutils.sysconfig import *; \ +- from string import join; \ +- print join(get_config_vars('VERSION'))"` +- if test "$py_version" == "[None]"; then +- if test -n "$PYTHON_VERSION"; then +- py_version=$PYTHON_VERSION +- else +- py_version=`$PYTHON -c "import sys; \ +- print sys.version[[:3]]"` +- fi +- fi +- +- PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \ +- from string import join; \ +- print '-L' + get_python_lib(0,1), \ +- '-lpython';"`$py_version +- fi +- AC_MSG_RESULT([$PYTHON_LDFLAGS]) +- AC_SUBST([PYTHON_LDFLAGS]) +- +- # +- # Check for site packages +- # +- AC_MSG_CHECKING([for Python site-packages path]) +- if test -z "$PYTHON_SITE_PKG"; then +- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ +- print distutils.sysconfig.get_python_lib(0,0);"` +- fi +- AC_MSG_RESULT([$PYTHON_SITE_PKG]) +- AC_SUBST([PYTHON_SITE_PKG]) +- +- # +- # libraries which must be linked in when embedding +- # +- AC_MSG_CHECKING(python extra libraries) +- if test -z "$PYTHON_EXTRA_LIBS"; then +- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ +- conf = distutils.sysconfig.get_config_var; \ +- print conf('LOCALMODLIBS'), conf('LIBS')"` +- fi +- AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) +- AC_SUBST(PYTHON_EXTRA_LIBS) +- +- # +- # linking flags needed when embedding +- # +- AC_MSG_CHECKING(python extra linking flags) +- if test -z "$PYTHON_EXTRA_LDFLAGS"; then +- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ +- conf = distutils.sysconfig.get_config_var; \ +- print conf('LINKFORSHARED')"` +- fi +- AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS]) +- AC_SUBST(PYTHON_EXTRA_LDFLAGS) +- +- # +- # final check to see if everything compiles alright +- # +- AC_MSG_CHECKING([consistency of all components of python development environment]) +- AC_LANG_PUSH([C]) +- # save current global flags +- LIBS="$ac_save_LIBS $PYTHON_LDFLAGS" +- CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS" +- AC_TRY_LINK([ +- #include +- ],[ +- Py_Initialize(); +- ],[pythonexists=yes],[pythonexists=no]) +- +- AC_MSG_RESULT([$pythonexists]) +- +- if test ! "$pythonexists" = "yes"; then +- AC_MSG_ERROR([ +- Could not link test program to Python. Maybe the main Python library has been +- installed in some non-standard library path. If so, pass it to configure, +- via the LDFLAGS environment variable. +- Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib" +- ============================================================================ +- ERROR! +- You probably have to install the development version of the Python package +- for your distribution. The exact name of this package varies among them. +- ============================================================================ +- ]) +- PYTHON_VERSION="" +- fi +- AC_LANG_POP +- # turn back to default flags +- CPPFLAGS="$ac_save_CPPFLAGS" +- LIBS="$ac_save_LIBS" +- +- # +- # all done! +- # +-]) +--- a/libraries/libapparmor/src/Makefile.am ++++ b/libraries/libapparmor/src/Makefile.am +@@ -23,10 +23,10 @@ noinst_HEADERS = grammar.h parser.h scan + + libapparmor_la_SOURCES = grammar.y libaalogparse.c change_hat.c scanner.c + libapparmor_la_LDFLAGS = -version-info 1:2:0 -XCClinker -dynamic \ +- -Wl,--version-script=$(top_srcdir)/src/libapparmor.map -Wl,-soname=libapparmor.so.1 ++ -Wl,--version-script=$(srcdir)/libapparmor.map -Wl,-soname=libapparmor.so.1 + + libimmunix_la_SOURCES = change_hat.c libimmunix_warning.c +-libimmunix_la_LDFLAGS = -version-info 1:2:0 -Wl,--version-script=$(top_srcdir)/src/libapparmor.map -Wl,-soname=libimmunix.so.1 ++libimmunix_la_LDFLAGS = -version-info 1:2:0 -Wl,--version-script=$(srcdir)/libapparmor.map -Wl,-soname=libimmunix.so.1 + + tst_aalogmisc_SOURCES = tst_aalogmisc.c + tst_aalogmisc_LDADD = .libs/libapparmor.a +--- a/libraries/libapparmor/swig/perl/Makefile.PL.in ++++ /dev/null +@@ -1,17 +0,0 @@ +-#!/usr/bin/perl -w +- +-use ExtUtils::MakeMaker; +- +-use vars qw($CFLAGS $OBJECT $VERSION $OPTIMIZE); +- +-WriteMakefile( +- 'NAME' => 'LibAppArmor', +- 'MAKEFILE' => 'Makefile.perl', +- 'FIRST_MAKEFILE' => 'Makefile.perl', +- 'ABSTRACT' => q[Perl interface to AppArmor] , +- 'VERSION' => q[@VERSION@], +- 'INC' => q[-I@top_srcdir@/src @CFLAGS@], +- 'LIBS' => q[-L@top_builddir@/src/.libs/ -lapparmor @LIBS@], +- 'OBJECT' => 'libapparmor_wrap.o', # $(OBJ_EXT) +-) ; +- +--- a/libraries/libapparmor/swig/perl/Makefile.am ++++ b/libraries/libapparmor/swig/perl/Makefile.am +@@ -1,32 +1,21 @@ +-EXTRA_DIST =Makefile.PL libapparmor_wrap.c LibAppArmor.pm examples/*.pl ++EXTRA_DIST = libapparmor_wrap.c LibAppArmor.pm examples/*.pl + + if HAVE_PERL +-noinst_DATA =LibAppArmor.so ++vendorarchdir = $(VENDOR_ARCH_PERL) ++vendorarch_DATA = LibAppArmor.pm ++ ++apparmordir = $(vendorarchdir)/auto/LibAppArmor ++apparmor_LTLIBRARIES = LibAppArmor.la ++ ++LibAppArmor_la_LDFLAGS = -module -no-undefined -avoid-version ++LibAppArmor_la_SOURCES = libapparmor_wrap.c ++LibAppArmor_la_LIBADD = $(top_builddir)/libraries/libapparmor/src/.libs/libapparmor.la ++ ++LibAppArmor_la_CFLAGS = -I$(top_srcdir)/libraries/libapparmor/src $(CFLAGS) $(PERL_CCFLAGS) + + libapparmor_wrap.c: $(srcdir)/../SWIG/libapparmor.i + $(SWIG) -perl -I$(srcdir)/../../src -module LibAppArmor -o $@ $(srcdir)/../SWIG/libapparmor.i ++LibAppArmor.pm: libapparmor_wrap.c + + MOSTLYCLEANFILES=libapparmor_wrap.c LibAppArmor.pm +- +-Makefile.perl: Makefile.PL +- $(PERL) $< PREFIX=$(prefix) MAKEFILE=$@ +- sed -ie 's/^LD_RUN_PATH.*//g' Makefile.perl +- +-LibAppArmor.so: libapparmor_wrap.c Makefile.perl +- if test ! -f libapparmor_wrap.c; then cp $(srcdir)/libapparmor_wrap.c . ; fi +- $(MAKE) -fMakefile.perl +- if test $(top_srcdir) != $(top_builddir) ; then rm -f libapparmor_wrap.c ; fi +- +-install-exec-local: Makefile.perl +- $(MAKE) -fMakefile.perl install_vendor +- +-# sadly there is no make uninstall for perl +-#uninstall-local: Makefile.perl +-#$(MAKE) -fMakefile.perl uninstall +- +-clean-local: +- if test -f Makefile.perl; then $(MAKE) -fMakefile.perl realclean; fi +-#rm -f Makefile.perl Makefile.perl.old +- rm -f *.so # *.o +- + endif +--- a/libraries/libapparmor/swig/python/Makefile.am ++++ b/libraries/libapparmor/swig/python/Makefile.am +@@ -9,7 +9,6 @@ libapparmor_wrap.c: $(srcdir)/../SWIG/li + MOSTLYCLEANFILES=libapparmor_wrap.c __init__.py + + all-local: libapparmor_wrap.c setup.py +- if test ! -f libapparmor_wrap.c; then cp $(srcdir)/libapparmor_wrap.c . ; fi + $(PYTHON) setup.py build + + install-exec-local: +@@ -18,6 +17,5 @@ install-exec-local: + clean-local: + if test -x "$(PYTHON)"; then $(PYTHON) setup.py clean; fi + rm -rf build +- if test $(top_srcdir) != $(top_builddir) ; then rm -f libapparmor_wrap.c ; fi + + endif +--- a/libraries/libapparmor/swig/python/setup.py.in ++++ b/libraries/libapparmor/swig/python/setup.py.in +@@ -12,7 +12,7 @@ setup(name = 'LibAppArmor', + packages = [ 'libapparmor1' ], + ext_package = 'libapparmor1', + ext_modules = [Extension('_libapparmor', ['libapparmor_wrap.c'], +- include_dirs=['@top_srcdir@/src'], ++ include_dirs=['@srcdir@/../../src'], + extra_link_args = string.split('-L@top_builddir@/src/.libs -lapparmor'), + # static: extra_link_args = string.split('@top_builddir@/src/.libs/libapparmor.a'), + )], +--- a/libraries/libapparmor/swig/ruby/Makefile.am ++++ b/libraries/libapparmor/swig/ruby/Makefile.am +@@ -1,28 +1,17 @@ + if HAVE_RUBY + +-EXTRA_DIST = extconf.rb LibAppArmor_wrap.c examples/*.rb +-noinst_DATA = LibAppArmor.so ++EXTRA_DIST = LibAppArmor_wrap.c examples/*.rb + +-LibAppArmor_wrap.c : $(srcdir)/../SWIG/libapparmor.i +- $(SWIG) -ruby -module LibAppArmor -I$(top_srcdir)/src -o $@ $(srcdir)/../SWIG/libapparmor.i +- +-MOSTLYCLEANFILES=LibAppArmor_wrap.c ++rbexec_LTLIBRARIES = LibAppArmor.la + +-Makefile.ruby: extconf.rb +- PREFIX=$(prefix) $(RUBY) $< --with-LibAppArmor-include=$(top_srcdir)/src ++LibAppArmor_la_LDFLAGS = -module -no-undefined -avoid-version ++LibAppArmor_la_SOURCES = LibAppArmor_wrap.c ++LibAppArmor_la_LIBADD = $(builddir)/../../src/.libs/libapparmor.la ++LibAppArmor_la_CFLAGS = -I$(top_srcdir)/libraries/libapparmor/src $(CFLAGS) + +-LibAppArmor.so: LibAppArmor_wrap.c Makefile.ruby +- $(MAKE) -fMakefile.ruby +- +-install-exec-local: Makefile.ruby +- $(MAKE) -fMakefile.ruby install ++LibAppArmor_wrap.c : $(srcdir)/../SWIG/libapparmor.i ++ $(SWIG) -ruby -module LibAppArmor -I$(srcdir)/../../src -o $@ $(srcdir)/../SWIG/libapparmor.i + +-#uninstall +-#./lib/ruby/site_ruby/1.8/i686-linux/LibAppArmor.so +- +-clean-local: +- if test -f Makefile.ruby; then $(MAKE) -fMakefile.ruby clean; fi +- rm -f Makefile.ruby Makefile.new +- rm -f *.o *.so *.log ++MOSTLYCLEANFILES=LibAppArmor_wrap.c + + endif +--- a/libraries/libapparmor/swig/ruby/extconf.rb ++++ /dev/null +@@ -1,37 +0,0 @@ +-#!/usr/bin/env ruby +- +-require 'mkmf' +- +-# hack 1: ruby black magic to write a Makefile.new instead of a Makefile +-alias open_orig open +-def open(path, mode=nil, perm=nil) +- path = 'Makefile.new' if path == 'Makefile' +- if block_given? +- open_orig(path, mode, perm) { |io| yield(io) } +- else +- open_orig(path, mode, perm) +- end +-end +- +-if ENV['PREFIX'] +- prefix = CONFIG['prefix'] +- %w[ prefix sitedir datadir infodir mandir oldincludedir ].each do |key| +- CONFIG[key] = CONFIG[key].sub(/#{prefix}/, ENV['PREFIX']) +- end +-end +- +-dir_config('LibAppArmor') +-if find_library('apparmor', 'parse_record', '../../src/.libs') and +- have_header('aalogparse.h') +- create_makefile('LibAppArmor') +- +- # hack 2: strip all rpath references +- open('Makefile.ruby', 'w') do |out| +- IO.foreach('Makefile.new') do |line| +- out.puts line.gsub(/-Wl,-R'[^']*'/, '') +- end +- end +-else +- puts 'apparmor lib not found' +-end +- +--- a/libraries/libapparmor/testsuite/Makefile.am ++++ b/libraries/libapparmor/testsuite/Makefile.am +@@ -2,7 +2,7 @@ SUBDIRS = lib config libaalogparse.test + PACKAGE = libaalogparse + AUTOMAKE_OPTIONS = dejagnu + +-INCLUDES = -I. -I$(top_srcdir)/src ++INCLUDES = -I. -I$(srcdir)/../src + + AM_CPPFLAGS = $(DEBUG_FLAGS) -DLOCALEDIR=\"${localedir}\" + AM_CFLAGS = -Wall +--- /dev/null ++++ b/m4/ac_pod2man.m4 +@@ -0,0 +1,16 @@ ++AC_DEFUN([PROG_POD2MAN],[ ++ AC_CHECK_PROG(POD2MAN,pod2man,pod2man,no) ++ if test "$POD2MAN" = "no"; then ++ AC_MSG_ERROR([ ++The pod2man program was not found in the default path. pod2man is part of ++Perl, which can be retrieved from: ++ ++ http://www.perl.com/ ++ ++The latest version at this time is 5.6.1; it is available packaged as the ++following archive: ++ ++ http://www.perl.com/CPAN/src/stable.tar.gz ++]) ++ fi ++]) +--- /dev/null ++++ b/m4/ac_python_devel.m4 +@@ -0,0 +1,209 @@ ++AC_DEFUN([AC_PYTHON_DEVEL],[ ++ # ++ # Allow the use of a (user set) custom python version ++ # ++ AC_ARG_VAR([PYTHON_VERSION],[The installed Python ++ version to use, for example '2.3'. This string ++ will be appended to the Python interpreter ++ canonical name.]) ++ ++ AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]]) ++ if test -z "$PYTHON"; then ++ AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path]) ++ PYTHON_VERSION="" ++ fi ++ ++ # ++ # Check for a version of Python >= 2.1.0 ++ # ++ AC_MSG_CHECKING([for a version of Python >= '2.1.0']) ++ ac_supports_python_ver=`$PYTHON -c "import sys, string; \ ++ ver = string.split(sys.version)[[0]]; \ ++ print ver >= '2.1.0'"` ++ if test "$ac_supports_python_ver" != "True"; then ++ if test -z "$PYTHON_NOVERSIONCHECK"; then ++ AC_MSG_RESULT([no]) ++ AC_MSG_FAILURE([ ++This version of the AC@&t@_PYTHON_DEVEL macro ++doesn't work properly with versions of Python before ++2.1.0. You may need to re-run configure, setting the ++variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG, ++PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. ++Moreover, to disable this check, set PYTHON_NOVERSIONCHECK ++to something else than an empty string. ++]) ++ else ++ AC_MSG_RESULT([skip at user request]) ++ fi ++ else ++ AC_MSG_RESULT([yes]) ++ fi ++ ++ # ++ # if the macro parameter ``version'' is set, honour it ++ # ++ if test -n "$1"; then ++ AC_MSG_CHECKING([for a version of Python $1]) ++ ac_supports_python_ver=`$PYTHON -c "import sys, string; \ ++ ver = string.split(sys.version)[[0]]; \ ++ print ver $1"` ++ if test "$ac_supports_python_ver" = "True"; then ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ AC_MSG_ERROR([this package requires Python $1. ++If you have it installed, but it isn't the default Python ++interpreter in your system path, please pass the PYTHON_VERSION ++variable to configure. See ``configure --help'' for reference. ++]) ++ PYTHON_VERSION="" ++ fi ++ fi ++ ++ # ++ # Check if you have distutils, else fail ++ # ++ AC_MSG_CHECKING([for the distutils Python package]) ++ ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` ++ if test -z "$ac_distutils_result"; then ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ AC_MSG_ERROR([cannot import Python module "distutils". ++Please check your Python installation. The error was: ++$ac_distutils_result]) ++ PYTHON_VERSION="" ++ fi ++ ++ # ++ # Check for Python include path ++ # ++ AC_MSG_CHECKING([for Python include path]) ++ if test -z "$PYTHON_CPPFLAGS"; then ++ python_path=`$PYTHON -c "import distutils.sysconfig; \ ++ print distutils.sysconfig.get_python_inc();"` ++ if test -n "${python_path}"; then ++ python_path="-I$python_path" ++ fi ++ PYTHON_CPPFLAGS=$python_path ++ fi ++ AC_MSG_RESULT([$PYTHON_CPPFLAGS]) ++ AC_SUBST([PYTHON_CPPFLAGS]) ++ ++ # ++ # Check for Python library path ++ # ++ AC_MSG_CHECKING([for Python library path]) ++ if test -z "$PYTHON_LDFLAGS"; then ++ # (makes two attempts to ensure we've got a version number ++ # from the interpreter) ++ py_version=`$PYTHON -c "from distutils.sysconfig import *; \ ++ from string import join; \ ++ print join(get_config_vars('VERSION'))"` ++ if test "$py_version" == "[None]"; then ++ if test -n "$PYTHON_VERSION"; then ++ py_version=$PYTHON_VERSION ++ else ++ py_version=`$PYTHON -c "import sys; \ ++ print sys.version[[:3]]"` ++ fi ++ fi ++ ++ PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \ ++ from string import join; \ ++ print '-L' + get_python_lib(0,1), \ ++ '-lpython';"`$py_version ++ fi ++ AC_MSG_RESULT([$PYTHON_LDFLAGS]) ++ AC_SUBST([PYTHON_LDFLAGS]) ++ ++ # ++ # Check for site packages ++ # ++ AC_MSG_CHECKING([for Python site-packages path]) ++ if test -z "$PYTHON_SITE_PKG"; then ++ PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ ++ print distutils.sysconfig.get_python_lib(0,0);"` ++ fi ++ AC_MSG_RESULT([$PYTHON_SITE_PKG]) ++ AC_SUBST([PYTHON_SITE_PKG]) ++ ++ # ++ # libraries which must be linked in when embedding ++ # ++ AC_MSG_CHECKING(python extra libraries) ++ if test -z "$PYTHON_EXTRA_LIBS"; then ++ PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ ++ conf = distutils.sysconfig.get_config_var; \ ++ print conf('LOCALMODLIBS'), conf('LIBS')"` ++ fi ++ AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) ++ AC_SUBST(PYTHON_EXTRA_LIBS) ++ ++ # ++ # linking flags needed when embedding ++ # ++ AC_MSG_CHECKING(python extra linking flags) ++ if test -z "$PYTHON_EXTRA_LDFLAGS"; then ++ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ ++ conf = distutils.sysconfig.get_config_var; \ ++ print conf('LINKFORSHARED')"` ++ fi ++ AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS]) ++ AC_SUBST(PYTHON_EXTRA_LDFLAGS) ++ ++ # ++ # final check to see if everything compiles alright ++ # ++ AC_MSG_CHECKING([consistency of all components of python development environment]) ++ AC_LANG_PUSH([C]) ++ # save current global flags ++ LIBS="$ac_save_LIBS $PYTHON_LDFLAGS" ++ CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS" ++ AC_TRY_LINK([ ++ #include ++ ],[ ++ Py_Initialize(); ++ ],[pythonexists=yes],[pythonexists=no]) ++ ++ AC_MSG_RESULT([$pythonexists]) ++ ++ if test ! "$pythonexists" = "yes"; then ++ AC_MSG_ERROR([ ++ Could not link test program to Python. Maybe the main Python library has been ++ installed in some non-standard library path. If so, pass it to configure, ++ via the LDFLAGS environment variable. ++ Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib" ++ ============================================================================ ++ ERROR! ++ You probably have to install the development version of the Python package ++ for your distribution. The exact name of this package varies among them. ++ ============================================================================ ++ ]) ++ PYTHON_VERSION="" ++ fi ++ AC_LANG_POP ++ # turn back to default flags ++ CPPFLAGS="$ac_save_CPPFLAGS" ++ LIBS="$ac_save_LIBS" ++ ++ # ++ # all done! ++ # ++]) ++ ++ ++AC_DEFUN([PROG_PYTHON],[ ++AC_ARG_WITH(python, ++[ --with-python enable python support for libapparmor [[default=auto]]], ++[with_python=$withval], [with_python=auto]) ++ ++if test "$with_python" != "no"; then ++ AM_PATH_PYTHON(,, [no]) ++ if test "$with_python" = "yes" -a "$PYTHON" = "no"; then ++ AC_MSG_ERROR([--with-python was given but python could not be found]) ++ elif test "$PYTHON" = "no"; then ++ AC_MSG_RESULT([ --- python support for libappamor not available]) ++ fi ++fi ++]) +--- /dev/null ++++ b/m4/am_path_apxs.m4 +@@ -0,0 +1,12 @@ ++AC_DEFUN([AM_PATH_APXS],[ ++ m4_define_default([_AM_APXS_LIST], [apxs2 apxs]) ++ ++ AC_PATH_PROGS(APXS, _AM_APXS_LIST, :, [PATH /usr/sbin /usr/bin]) ++ ++ if test "$APXS" = :; then ++ m4_default([$3], [AC_MSG_ERROR([no apache extension tool found])]) ++ else ++ echo -n ++ $2 ++ fi ++]) +--- /dev/null ++++ b/m4/am_path_perl.m4 +@@ -0,0 +1,25 @@ ++AC_DEFUN([AM_PATH_PERL],[ ++ m4_define_default([_AM_PERL_LIST], [perl perl6 perl5]) ++ ++ AC_PATH_PROGS(PERL, _AM_PERL_LIST, :,) ++ ++ if test "$PERL" = :; then ++ m4_default([$3], [AC_MSG_ERROR([no perl interpreter found])]) ++ else ++ VENDOR_PERL=`$PERL -V::vendorlib:` ++ VENDOR_PERL=`eval echo $VENDOR_PERL` ++ AC_MSG_RESULT([Perl vendirlib is $VENDOR_PERL]) ++ AC_SUBST(VENDOR_PERL) ++ ++ VENDOR_ARCH_PERL=`$PERL -V::vendorarch:` ++ VENDOR_ARCH_PERL=`eval echo $VENDOR_ARCH_PERL` ++ AC_MSG_RESULT([Perl vendorarch is $VENDOR_ARCH_PERL]) ++ AC_SUBST(VENDOR_ARCH_PERL) ++ ++ PERL_CCFLAGS=`$PERL -MExtUtils::Embed -e ccopts` ++ AC_SUBST(PERL_CCFLAGS) ++ ++ $2 ++ fi ++]) ++ +--- /dev/null ++++ b/m4/am_path_ruby.m4 +@@ -0,0 +1,115 @@ ++# ++# AM_PATH_RUBY([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) ++# --------------------------------------------------------------------------- ++# Adds support for distributing Ruby modules and packages. To ++# install modules, copy them to $(rubydir), using the ruby_RUBY ++# automake variable. To install a package with the same name as the ++# automake package, install to $(pkgrubydir), or use the ++# pkgruby_RUBY automake variable. ++# ++# The variables $(rbexecdir) and $(pkgrbexecdir) are provided as ++# locations to install ruby extension modules (shared libraries). ++# Another macro is required to find the appropriate flags to compile ++# extension modules. ++# ++AC_DEFUN([AM_PATH_RUBY], ++ [ ++ dnl Find a Ruby interpreter. ++ m4_define_default([_AM_RUBY_INTERPRETER_LIST], ++ [ruby ruby1.8 ruby1.7 ruby1.6]) ++ ++ m4_if([$1],[],[ ++ dnl No version check is needed. ++ # Find any Ruby interpreter. ++ if test -z "$RUBY"; then ++ AC_PATH_PROGS([RUBY], _AM_RUBY_INTERPRETER_LIST, :) ++ fi ++ am_display_RUBY=ruby ++ ], [ ++ dnl A version check is needed. ++ if test -n "$RUBY"; then ++ # If the user set $RUBY, use it and don't search something else. ++ #AC_MSG_CHECKING([whether $RUBY version >= $1]) ++ #AM_RUBY_CHECK_VERSION([$RUBY], [$1], ++ # [AC_MSG_RESULT(yes)], ++ # [AC_MSG_ERROR(too old)]) ++ am_display_RUBY=$RUBY ++ else ++ # Otherwise, try each interpreter until we find one that satisfies ++ # VERSION. ++ AC_CACHE_CHECK([for a Ruby interpreter with version >= $1], ++ [am_cv_pathless_RUBY],[ ++ for am_cv_pathless_RUBY in _AM_RUBY_INTERPRETER_LIST none; do ++ test "$am_cv_pathless_RUBY" = none && break ++ #AM_RUBY_CHECK_VERSION([$am_cv_pathless_RUBY], [$1], [break]) ++ [], [$1], [break]) ++ done]) ++ # Set $RUBY to the absolute path of $am_cv_pathless_RUBY. ++ if test "$am_cv_pathless_RUBY" = none; then ++ RUBY=: ++ else ++ AC_PATH_PROG([RUBY], [$am_cv_pathless_RUBY]) ++ fi ++ am_display_RUBY=$am_cv_pathless_RUBY ++ fi ++ ]) ++ ++ if test "$RUBY" = :; then ++ dnl Run any user-specified action, or abort. ++ m4_default([$3], [AC_MSG_ERROR([no suitable Ruby interpreter found])]) ++ else ++ ++ dnl Query Ruby for its version number. Getting [:3] seems to be ++ dnl the best way to do this; it's what "site.py" does in the standard ++ dnl library. ++ ++ AC_CACHE_CHECK([for $am_display_RUBY version], [am_cv_ruby_version], ++ [am_cv_ruby_version=`$RUBY -e "print RUBY_VERSION"`]) ++ AC_SUBST([RUBY_VERSION], [$am_cv_ruby_version]) ++ ++ dnl Use the values of $prefix and $exec_prefix for the corresponding ++ dnl values of RUBY_PREFIX and RUBY_EXEC_PREFIX. These are made ++ dnl distinct variables so they can be overridden if need be. However, ++ dnl general consensus is that you shouldn't need this ability. ++ ++ AC_SUBST([RUBY_PREFIX], ['${prefix}']) ++ AC_SUBST([RUBY_EXEC_PREFIX], ['${exec_prefix}']) ++ ++ dnl At times (like when building shared libraries) you may want ++ dnl to know which OS platform Ruby thinks this is. ++ ++ AC_CACHE_CHECK([for $am_display_RUBY platform], [am_cv_ruby_platform], ++ [am_cv_ruby_platform=`$RUBY -e "print RUBY_PLATFORM"`]) ++ AC_SUBST([RUBY_PLATFORM], [$am_cv_ruby_platform]) ++ ++ ++ dnl Set up 4 directories: ++ dnl rubydir -- where to install ruby scripts. ++ AC_CACHE_CHECK([for $am_display_RUBY script directory], ++ [am_cv_ruby_rubydir], ++ [am_cv_ruby_rubydir=`$RUBY -rrbconfig -e "drive = File::PATH_SEPARATOR == ';' ? /\A\w:/ : /\A/; prefix = Regexp.new('\\A' + Regexp.quote(Config::CONFIG[['prefix']])); \\$prefix = Config::CONFIG[['prefix']].sub(drive, ''); \\$archdir = Config::CONFIG[['archdir']].sub(prefix, '\\$(prefix)').sub(drive, ''); print \\$archdir;"`]) ++ AC_SUBST([rubydir], [$am_cv_ruby_rubydir]) ++ ++ dnl pkgrubydir -- $PACKAGE directory under rubydir. ++ AC_SUBST([pkgrubydir], [\${rubydir}/$PACKAGE]) ++ ++ dnl rbexecdir -- directory for installing ruby extension modules ++ dnl (shared libraries) ++ AC_CACHE_CHECK([for $am_display_RUBY extension module directory], ++ [am_cv_ruby_rbexecdir], ++ [am_cv_ruby_rbexecdir=`$RUBY -rrbconfig -e "drive = File::PATH_SEPARATOR == ';' ? /\A\w:/ : /\A/; prefix = Regexp.new('\\A' + Regexp.quote(Config::CONFIG[['prefix']])); \\$prefix = Config::CONFIG[['prefix']].sub(drive, ''); \\$sitearchdir = Config::CONFIG[['sitearchdir']].sub(prefix, '\\$(prefix)').sub(drive, ''); print \\$sitearchdir;" 2>/dev/null || echo "${RUBY_EXEC_PREFIX}/local/lib/site_ruby/${RUBY_VERSION}/${RUBY_PLATFORM}"`]) ++ AC_SUBST([rbexecdir], [$am_cv_ruby_rbexecdir]) ++ ++ RUBY_INCLUDE_DIR=`$RUBY -r rbconfig -e 'puts Config::CONFIG[["archdir"]]'` ++ RUBY_INCLUDES=" -I $RUBY_INCLUDE_DIR" ++ AC_SUBST([RUBY_INCLUDES]) ++ ++ dnl pkgrbexecdir -- $(rbexecdir)/$(PACKAGE) ++ ++ AC_SUBST([pkgrbexecdir], [\${rbexecdir}/$PACKAGE]) ++ ++ dnl Run any user-specified action. ++ $2 ++ fi ++ ++]) +--- /dev/null ++++ b/m4/wxwidgets.m4 +@@ -0,0 +1,37 @@ ++AC_DEFUN([WXTEST], ++[ ++ AC_REQUIRE([AC_PROG_AWK]) ++ WXCONFIG=wx-config ++ AC_ARG_WITH(wx-config, ++ [[ --with-wx-config=FILE Use the given path to wx-config when determining ++ wxWidgets configuration; defaults to "wx-config"]], ++ [ ++ if test "$withval" != "yes" -a "$withval" != ""; then ++ WXCONFIG=$withval ++ fi ++ ]) ++ ++ wxversion=0 ++ ++ ++ AC_MSG_CHECKING([wxWidgets version]) ++ if wxversion=`$WXCONFIG --version`; then ++ AC_MSG_RESULT([$wxversion]) ++ # Verify minimus requires ++ vers=[`echo $wxversion | $AWK 'BEGIN { FS = "."; } { printf "% d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`] ++ if test -n "$vers" && test "$vers" -ge 2006000; then ++ WX_CPPFLAGS="`$WXCONFIG --cppflags`" ++ WX_CXXFLAGS="`$WXCONFIG --cxxflags | sed -e 's/-fno-exceptions//'`" ++ WX_LIBS="`$WXCONFIG --libs`" ++ AC_SUBST(WX_CXXFLAGS) ++ AC_SUBST(WX_CPPFLAGS) ++ AC_SUBST(WX_LIBS) ++ else ++ AC_MSG_ERROR([wxWidgets 2.6.0 or newer is required]) ++ fi ++ ++ else ++ AC_MSG_RESULT([not found]) ++ AC_MSG_ERROR([wxWidgets is required. Try --with-wx-config.]) ++ fi]) ++ +--- /dev/null ++++ b/parser/Makefile.am +@@ -0,0 +1,81 @@ ++SUBDIRS = libapparmor_re po ++ ++lib_apparmor_DATA = rc.apparmor.functions ++etc_apparmor_DATA = subdomain.conf ++noinst_DATA = techdoc.pdf techdoc/techdoc.html techdoc/techdoc.css \ ++ techdoc.txt apparmor.d.5.html apparmor.7.html \ ++ apparmor_parser.8.html subdomain.conf.5.html \ ++ apparmor.vim.5.html ++ ++real_sbin_PROGRAMS = apparmor_parser ++dist_man_MANS = apparmor.d.5 apparmor.7 apparmor_parser.8 subdomain.conf.5 \ ++ apparmor.vim.5 ++ ++BUILT_SOURCES = parser_lex.c parser_yacc.c af_names.h cap_names.h ++AM_YFLAGS = -d ++AM_CFLAGS = -DLOCALEDIR=\"$(localedir)\" ++apparmor_parser_SOURCES = parser_yacc.y parser_lex.l parser_include.c \ ++ parser_interface.c parser_main.c parser_misc.c \ ++ parser_merge.c parser_symtab.c parser_regex.c \ ++ parser_variable.c parser_policy.c parser_alias.c ++ ++libstdc++.a: ++ ln -s `g++ -print-file-name=libstdc++.a` ++ ++apparmor_parser_LDFLAGS = -static-libgcc ++apparmor_parser_LDADD = $(top_srcdir)/libraries/libapparmor/src/libapparmor.la \ ++ $(srcdir)/libapparmor_re/libapparmor_re.la \ ++ libstdc++.a -lpcre ++ ++install-data-local: ++ $(mkinstalldirs) $(DESTDIR)/var/lib/apparmor ++ ++CLEANFILES = $(BUILT_SOURCES) $(doc_DATA) $(dist_man_MANS) ++ ++# These are the families that it doesn't make sense for apparmor to mediate. ++# We use PF_ here since that is what is required in bits/socket.h, but we will ++# rewrite these as AF_. ++FILTER_FAMILIES=PF_RXRPC PF_MAX PF_UNSPEC PF_UNIX PF_LOCAL PF_NETLINK PF_LLC PF_IUCV PF_TIPC PF_CAN PF_ISDN PF_PHONET ++ ++__FILTER=$(shell echo $(strip $(FILTER_FAMILIES)) | sed -e 's/ /\\\|/g') ++ ++af_names.h: /usr/include/bits/socket.h ++ LC_ALL=C sed -n -e '/$(__FILTER)/d' -e "s/^\#define[ \\t]\\+PF_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\\(.*\\)\$$/#ifndef AF_\\1\\n# define AF_\\1 \\2\\n#endif\\nAA_GEN_NET_ENT(\"\\L\\1\", \\UAF_\\1)\\n/p" $< > $@ ++ LC_ALL=C sed -n -e "s/^\#define[ \\t]\\+PF_MAX[ \\t]\\+\\([0-9]\\+\\)[ \\t]\\+.*/#define AA_AF_MAX \\1\n/p" $< >> $@ ++ cat $@ ++ ++cap_names.h: /usr/include/linux/capability.h ++ LC_ALL=C sed -n -e "/CAP_EMPTY_SET/d" -e "s/^\#define[ \\t]\\+CAP_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9xa-f]\\+\\)\\(.*\\)\$$/\{\"\\L\\1\", \\UCAP_\\1\},/p" $< > $@ ++ ++.tex.pdf: ++ while pdflatex $< || exit 1; \ ++ grep -q "Label(s) may have changed" techdoc.log; \ ++ do :; done ++ ++techdoc/techdoc.css : ++techdoc/%.html : %.tex ++#.tex.html: ++ latex2html -show_section_numbers -split 0 -noinfo -nonavigation -noaddress $< ++ ++%.txt : techdoc/%.html ++ w3m -dump $< > $@ ++ ++PODARGS = --center=AppArmor --release=NOVELL/SUSE ++ ++pod2man = pod2man $(PODARGS) --section $(subst .,,$(suffix $<)) $< > $@ ++ ++.pod.5: ++ $(pod2man) ++.pod.7: ++ $(pod2man) ++.pod.8: ++ $(pod2man) ++ ++pod2html = pod2html --header --css ../common/apparmor.css --infile=$< --outfile=$@ ++ ++%.5.html : %.pod ++ $(pod2html) ++%.7.html : %.pod ++ $(pod2html) ++%.8.html : %.pod ++ $(pod2html) +--- /dev/null ++++ b/parser/libapparmor_re/Makefile.am +@@ -0,0 +1,4 @@ ++ ++noinst_LTLIBRARIES = libapparmor_re.la ++ ++libapparmor_re_la_SOURCES = regexp.yy +--- a/parser/libapparmor_re/regexp.y ++++ /dev/null +@@ -1,2800 +0,0 @@ +-/* +- * regexp.y -- Regular Expression Matcher Generator +- * (C) 2006, 2007 Andreas Gruenbacher +- * +- * Implementation based on the Lexical Analysis chapter of: +- * Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: +- * Compilers: Principles, Techniques, and Tools (The "Dragon Book"), +- * Addison-Wesley, 1986. +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License version 2 as +- * published by the Free Software Foundation. +- * +- * See http://www.gnu.org for more details. +- */ +- +-%{ +- /* #define DEBUG_TREE */ +- +- #include +- #include +- #include +- #include +- #include +- #include +- #include +- +- using namespace std; +- +- typedef unsigned char uchar; +- typedef set Chars; +- +- ostream& operator<<(ostream& os, uchar c); +- +- /* Compute the union of two sets. */ +- template +- set operator+(const set& a, const set& b) +- { +- set c(a); +- c.insert(b.begin(), b.end()); +- return c; +- } +- +- /** +- * A DFA state is a set of important nodes in the syntax tree. This +- * includes AcceptNodes, which indicate that when a match ends in a +- * particular state, the regular expressions that the AcceptNode +- * belongs to match. +- */ +- class ImportantNode; +- typedef set State; +- +- /** +- * Out-edges from a state to another: we store the follow-state +- * for each input character that is not a default match in +- * cases (i.e., following a CharNode or CharSetNode), and default +- * matches in otherwise as well as in all matching explicit cases +- * (i.e., following an AnyCharNode or NotCharSetNode). This avoids +- * enumerating all the explicit tranitions for default matches. +- */ +- typedef struct Cases { +- typedef map::iterator iterator; +- iterator begin() { return cases.begin(); } +- iterator end() { return cases.end(); } +- +- Cases() : otherwise(0) { } +- map cases; +- State *otherwise; +- } Cases; +- +- +- /* An abstract node in the syntax tree. */ +- class Node { +- public: +- Node() : +- nullable(false), refcount(1) { child[0] = child[1] = 0; } +- Node(Node *left) : +- nullable(false), refcount(1) { child[0] = left; child[1] = 0; } +- Node(Node *left, Node *right) : +- nullable(false), refcount(1) { child[0] = left; child[1] = right; } +- virtual ~Node() +- { +- if (child[0]) +- child[0]->release(); +- if (child[1]) +- child[1]->release(); +- } +- +- /** +- * See the "Dragon Book" for an explanation of nullable, firstpos, +- * lastpos, and followpos. +- */ +- virtual void compute_nullable() { } +- virtual void compute_firstpos() = 0; +- virtual void compute_lastpos() = 0; +- virtual void compute_followpos() { } +- virtual int eq(Node *other) = 0; +- virtual ostream& dump(ostream& os) = 0; +- +- bool nullable; +- State firstpos, lastpos, followpos; +- /* child 0 is left, child 1 is right */ +- Node *child[2]; +- +- unsigned int label; /* unique number for debug etc */ +- /** +- * We need reference counting for AcceptNodes: sharing AcceptNodes +- * avoids introducing duplicate States with identical accept values. +- */ +- unsigned int refcount; +- Node *dup(void) +- { +- refcount++; +- return this; +- } +- void release(void) { +- if (--refcount == 0) { +- delete this; +- } +- } +- }; +- +- /* Match nothing (//). */ +- class EpsNode : public Node { +- public: +- EpsNode() +- { +- nullable = true; +- } +- void compute_firstpos() +- { +- } +- void compute_lastpos() +- { +- } +- int eq(Node *other) { +- if (dynamic_cast(other)) +- return 1; +- return 0; +- } +- ostream& dump(ostream& os) +- { +- return os << "[]"; +- } +- }; +- +- /** +- * Leaf nodes in the syntax tree are important to us: they describe the +- * characters that the regular expression matches. We also consider +- * AcceptNodes import: they indicate when a regular expression matches. +- */ +- class ImportantNode : public Node { +- public: +- ImportantNode() { } +- void compute_firstpos() +- { +- firstpos.insert(this); +- } +- void compute_lastpos() { +- lastpos.insert(this); +- } +- virtual void follow(Cases& cases) = 0; +- }; +- +- /* Match one specific character (/c/). */ +- class CharNode : public ImportantNode { +- public: +- CharNode(uchar c) : c(c) { } +- void follow(Cases& cases) +- { +- State **x = &cases.cases[c]; +- if (!*x) { +- if (cases.otherwise) +- *x = new State(*cases.otherwise); +- else +- *x = new State; +- } +- (*x)->insert(followpos.begin(), followpos.end()); +- } +- int eq(Node *other) { +- CharNode *o = dynamic_cast(other); +- if (o) { +- return c == o->c; +- } +- return 0; +- } +- ostream& dump(ostream& os) +- { +- return os << c; +- } +- +- uchar c; +- }; +- +- /* Match a set of characters (/[abc]/). */ +- class CharSetNode : public ImportantNode { +- public: +- CharSetNode(Chars& chars) : chars(chars) { } +- void follow(Cases& cases) +- { +- for (Chars::iterator i = chars.begin(); i != chars.end(); i++) { +- State **x = &cases.cases[*i]; +- if (!*x) { +- if (cases.otherwise) +- *x = new State(*cases.otherwise); +- else +- *x = new State; +- } +- (*x)->insert(followpos.begin(), followpos.end()); +- } +- } +- int eq(Node *other) { +- CharSetNode *o = dynamic_cast(other); +- if (!o || chars.size() != o->chars.size()) +- return 0; +- +- for (Chars::iterator i = chars.begin(), j = o->chars.begin(); +- i != chars.end() && j != o->chars.end(); +- i++, j++) { +- if (*i != *j) +- return 0; +- } +- return 1; +- } +- ostream& dump(ostream& os) +- { +- os << '['; +- for (Chars::iterator i = chars.begin(); i != chars.end(); i++) +- os << *i; +- return os << ']'; +- } +- +- Chars chars; +- }; +- +- /* Match all except one character (/[^abc]/). */ +- class NotCharSetNode : public ImportantNode { +- public: +- NotCharSetNode(Chars& chars) : chars(chars) { } +- void follow(Cases& cases) +- { +- if (!cases.otherwise) +- cases.otherwise = new State; +- for (Chars::iterator j = chars.begin(); j != chars.end(); j++) { +- State **x = &cases.cases[*j]; +- if (!*x) +- *x = new State(*cases.otherwise); +- } +- /** +- * Note: Add to the nonmatching characters after copying away the +- * old otherwise state for the matching characters. +- */ +- cases.otherwise->insert(followpos.begin(), followpos.end()); +- for (Cases::iterator i = cases.begin(); i != cases.end(); i++) { +- if (chars.find(i->first) == chars.end()) +- i->second->insert(followpos.begin(), followpos.end()); +- } +- } +- int eq(Node *other) { +- NotCharSetNode *o = dynamic_cast(other); +- if (!o || chars.size() != o->chars.size()) +- return 0; +- +- for (Chars::iterator i = chars.begin(), j = o->chars.begin(); +- i != chars.end() && j != o->chars.end(); +- i++, j++) { +- if (*i != *j) +- return 0; +- } +- return 1; +- } +- ostream& dump(ostream& os) +- { +- os << "[^"; +- for (Chars::iterator i = chars.begin(); i != chars.end(); i++) +- os << *i; +- return os << ']'; +- } +- +- Chars chars; +- }; +- +- /* Match any character (/./). */ +- class AnyCharNode : public ImportantNode { +- public: +- AnyCharNode() { } +- void follow(Cases& cases) +- { +- if (!cases.otherwise) +- cases.otherwise = new State; +- cases.otherwise->insert(followpos.begin(), followpos.end()); +- for (Cases::iterator i = cases.begin(); i != cases.end(); i++) +- i->second->insert(followpos.begin(), followpos.end()); +- } +- int eq(Node *other) { +- if (dynamic_cast(other)) +- return 1; +- return 0; +- } +- ostream& dump(ostream& os) { +- return os << "."; +- } +- }; +- +- /** +- * Indicate that a regular expression matches. An AcceptNode itself +- * doesn't match anything, so it will never generate any transitions. +- */ +- class AcceptNode : public ImportantNode { +- public: +- AcceptNode() {} +- void follow(Cases& cases) +- { +- /* Nothing to follow. */ +- } +- /* requires accept nodes to be common by pointer */ +- int eq(Node *other) { +- if (dynamic_cast(other)) +- return (this == other); +- return 0; +- } +- }; +- +- /* Match a pair of consecutive nodes. */ +- class CatNode : public Node { +- public: +- CatNode(Node *left, Node *right) : +- Node(left, right) { } +- void compute_nullable() +- { +- nullable = child[0]->nullable && child[1]->nullable; +- } +- void compute_firstpos() +- { +- if (child[0]->nullable) +- firstpos = child[0]->firstpos + child[1]->firstpos; +- else +- firstpos = child[0]->firstpos; +- } +- void compute_lastpos() +- { +- if (child[1]->nullable) +- lastpos = child[0]->lastpos + child[1]->lastpos; +- else +- lastpos = child[1]->lastpos; +- } +- void compute_followpos() +- { +- State from = child[0]->lastpos, to = child[1]->firstpos; +- for(State::iterator i = from.begin(); i != from.end(); i++) { +- (*i)->followpos.insert(to.begin(), to.end()); +- } +- } +- int eq(Node *other) { +- if (dynamic_cast(other)) { +- if (!child[0]->eq(other->child[0])) +- return 0; +- return child[1]->eq(other->child[1]); +- } +- return 0; +- } +- ostream& dump(ostream& os) +- { +- child[0]->dump(os); +- child[1]->dump(os); +- return os; +- //return os << ' '; +- } +- }; +- +- /* Match a node zero or more times. (This is a unary operator.) */ +- class StarNode : public Node { +- public: +- StarNode(Node *left) : +- Node(left) +- { +- nullable = true; +- } +- void compute_firstpos() +- { +- firstpos = child[0]->firstpos; +- } +- void compute_lastpos() +- { +- lastpos = child[0]->lastpos; +- } +- void compute_followpos() +- { +- State from = child[0]->lastpos, to = child[0]->firstpos; +- for(State::iterator i = from.begin(); i != from.end(); i++) { +- (*i)->followpos.insert(to.begin(), to.end()); +- } +- } +- int eq(Node *other) { +- if (dynamic_cast(other)) +- return child[0]->eq(other->child[0]); +- return 0; +- } +- ostream& dump(ostream& os) +- { +- os << '('; +- child[0]->dump(os); +- return os << ")*"; +- } +- }; +- +- /* Match a node one or more times. (This is a unary operator.) */ +- class PlusNode : public Node { +- public: +- PlusNode(Node *left) : +- Node(left) { } +- void compute_nullable() +- { +- nullable = child[0]->nullable; +- } +- void compute_firstpos() +- { +- firstpos = child[0]->firstpos; +- } +- void compute_lastpos() +- { +- lastpos = child[0]->lastpos; +- } +- void compute_followpos() +- { +- State from = child[0]->lastpos, to = child[0]->firstpos; +- for(State::iterator i = from.begin(); i != from.end(); i++) { +- (*i)->followpos.insert(to.begin(), to.end()); +- } +- } +- int eq(Node *other) { +- if (dynamic_cast(other)) +- return child[0]->eq(other->child[0]); +- return 0; +- } +- ostream& dump(ostream& os) +- { +- os << '('; +- child[0]->dump(os); +- return os << ")+"; +- } +- }; +- +- /* Match one of two alternative nodes. */ +- class AltNode : public Node { +- public: +- AltNode(Node *left, Node *right) : +- Node(left, right) { } +- void compute_nullable() +- { +- nullable = child[0]->nullable || child[1]->nullable; +- } +- void compute_lastpos() +- { +- lastpos = child[0]->lastpos + child[1]->lastpos; +- } +- void compute_firstpos() +- { +- firstpos = child[0]->firstpos + child[1]->firstpos; +- } +- int eq(Node *other) { +- if (dynamic_cast(other)) { +- if (!child[0]->eq(other->child[0])) +- return 0; +- return child[1]->eq(other->child[1]); +- } +- return 0; +- } +- ostream& dump(ostream& os) +- { +- os << '('; +- child[0]->dump(os); +- os << '|'; +- child[1]->dump(os); +- os << ')'; +- return os; +-// return os << '|'; +- } +- }; +- +-/* +- * Normalize the regex parse tree for factoring and cancelations +- * left normalization (dir == 0) uses these rules +- * (E | a) -> (a | E) +- * (a | b) | c -> a | (b | c) +- * (ab)c -> a(bc) +- * +- * right normalization (dir == 1) uses the same rules but reversed +- * (a | E) -> (E | a) +- * a | (b | c) -> (a | b) | c +- * a(bc) -> (ab)c +- */ +-void normalize_tree(Node *t, int dir) +-{ +- if (dynamic_cast(t)) +- return; +- +- for (;;) { +- if (!dynamic_cast(t->child[!dir]) && +- ((dynamic_cast(t) && +- dynamic_cast(t->child[dir])) || +- (dynamic_cast(t) && +- dynamic_cast(t->child[dir])))) { +- // (E | a) -> (a | E) +- // Ea -> aE +- Node *c = t->child[dir]; +- t->child[dir] = t->child[!dir]; +- t->child[!dir] = c; +- } else if ((dynamic_cast(t) && +- dynamic_cast(t->child[dir])) || +- (dynamic_cast(t) && +- dynamic_cast(t->child[dir]))) { +- // (a | b) | c -> a | (b | c) +- // (ab)c -> a(bc) +- Node *c = t->child[dir]; +- t->child[dir] = c->child[dir]; +- c->child[dir] = c->child[!dir]; +- c->child[!dir] = t->child[!dir]; +- t->child[!dir] = c; +- } else if (dynamic_cast(t) && +- dynamic_cast(t->child[dir]) && +- dynamic_cast(t->child[!dir])) { +- Node *c = t->child[dir]; +- t->child[dir] = t->child[!dir]; +- t->child[!dir] = c; +- } else { +- break; +- } +- } +- if (t->child[dir]) +- normalize_tree(t->child[dir], dir); +- if (t->child[!dir]) +- normalize_tree(t->child[!dir], dir); +-} +- +-//charset conversion is disabled for now, +-//it hinders tree optimization in some cases, so it need to be either +-//done post optimization, or have extra factoring rules added +-#if 0 +-static Node *merge_charset(Node *a, Node *b) +-{ +- if (dynamic_cast(a) && +- dynamic_cast(b)) { +- Chars chars; +- chars.insert(dynamic_cast(a)->c); +- chars.insert(dynamic_cast(b)->c); +- CharSetNode *n = new CharSetNode(chars); +- return n; +- } else if (dynamic_cast(a) && +- dynamic_cast(b)) { +- Chars *chars = &dynamic_cast(b)->chars; +- chars->insert(dynamic_cast(a)->c); +- return b->dup(); +- } else if (dynamic_cast(a) && +- dynamic_cast(b)) { +- Chars *from = &dynamic_cast(a)->chars; +- Chars *to = &dynamic_cast(b)->chars; +- for (Chars::iterator i = from->begin(); i != from->end(); i++) +- to->insert(*i); +- return b->dup(); +- } +- +- //return ???; +-} +- +-static Node *alt_to_charsets(Node *t, int dir) +-{ +-/* +- Node *first = NULL; +- Node *p = t; +- Node *i = t; +- for (;dynamic_cast(i);) { +- if (dynamic_cast(i->child[dir]) || +- dynamic_cast(i->child[dir])) { +- if (!first) { +- first = i; +- p = i; +- i = i->child[!dir]; +- } else { +- first->child[dir] = merge_charset(first->child[dir], +- i->child[dir]); +- p->child[!dir] = i->child[!dir]->dup(); +- Node *tmp = i; +- i = i->child[!dir]; +- tmp->release(); +- } +- } else { +- p = i; +- i = i->child[!dir]; +- } +- } +- // last altnode of chain check other dir as well +- if (first && (dynamic_cast(i) || +- dynamic_cast(i))) { +- +- } +-*/ +- +-/* +- if (dynamic_cast(t->child[dir]) || +- dynamic_cast(t->child[dir])) +- char_test = true; +- (char_test && +- (dynamic_cast(i->child[dir]) || +- dynamic_cast(i->child[dir])))) { +-*/ +- return t; +-} +-#endif +- +-static Node *basic_alt_factor(Node *t, int dir) +-{ +- if (!dynamic_cast(t)) +- return t; +- +- if (t->child[dir]->eq(t->child[!dir])) { +- // (a | a) -> a +- Node *tmp = t->child[dir]->dup(); +- t->release(); +- return tmp; +- } +- +- // (ab) | (ac) -> a(b|c) +- if (dynamic_cast(t->child[dir]) && +- dynamic_cast(t->child[!dir]) && +- t->child[dir]->child[dir]->eq(t->child[!dir]->child[dir])) { +- // (ab) | (ac) -> a(b|c) +- Node *left = t->child[dir]; +- Node *right = t->child[!dir]; +- t->child[dir] = left->child[!dir]; +- t->child[!dir] = right->child[!dir]->dup(); +- left->child[!dir] = t; +- right->release(); +- return left; +- } +- +- // a | (ab) -> a (E | b) -> a (b | E) +- if (dynamic_cast(t->child[!dir]) && +- t->child[dir]->eq(t->child[!dir]->child[dir])) { +- Node *c = t->child[!dir]; +- t->child[dir]->release(); +- t->child[dir] = c->child[!dir]; +- t->child[!dir] = new EpsNode(); +- c->child[!dir] = t; +- return c; +- } +- +- // ab | (a) -> a (b | E) +- if (dynamic_cast(t->child[dir]) && +- t->child[dir]->child[dir]->eq(t->child[!dir])) { +- Node *c = t->child[dir]; +- t->child[!dir]->release(); +- t->child[dir] = c->child[!dir]; +- t->child[!dir] = new EpsNode(); +- c->child[!dir] = t; +- return c; +- } +- +- return t; +-} +- +-static Node *basic_simplify(Node *t, int dir) +-{ +- if (dynamic_cast(t) && +- dynamic_cast(t->child[!dir])) { +- // aE -> a +- Node *tmp = t->child[dir]->dup(); +- t->release(); +- return tmp; +- } +- +- return basic_alt_factor(t, dir); +-} +- +-/* +- * assumes a normalized tree. reductions shown for left normalization +- * aE -> a +- * (a | a) -> a +- ** factoring patterns +- * a | (a | b) -> (a | b) +- * a | (ab) -> a (E | b) -> a (b | E) +- * (ab) | (ac) -> a(b|c) +- * +- * returns t - if no simplifications were made +- * a new root node - if simplifications were made +- */ +-Node *simplify_tree_base(Node *t, int dir, bool &mod) +-{ +- if (dynamic_cast(t)) +- return t; +- +- for (int i=0; i < 2; i++) { +- if (t->child[i]) { +- Node *c = simplify_tree_base(t->child[i], dir, mod); +- if (c != t->child[i]) { +- t->child[i] = c; +- mod = true; +- } +- } +- } +- +- // only iterate on loop if modification made +- for (;; mod = true) { +- +- Node *tmp = basic_simplify(t, dir); +- if (tmp != t) { +- t = tmp; +- continue; +- } +- +- +- /* all tests after this must meet 2 alt node condition */ +- if (!dynamic_cast(t) || +- !dynamic_cast(t->child[!dir])) +- break; +- +- // a | (a | b) -> (a | b) +- // a | (b | (c | a)) -> (b | (c | a)) +- Node *p = t; +- Node *i = t->child[!dir]; +- for (;dynamic_cast(i); p = i, i = i->child[!dir]) { +- if (t->child[dir]->eq(i->child[dir])) { +- t->child[!dir]->dup(); +- t->release(); +- t = t->child[!dir]; +- continue; +- } +- } +- // last altnode of chain check other dir as well +- if (t->child[dir]->eq(p->child[!dir])) { +- t->child[!dir]->dup(); +- t->release(); +- t = t->child[!dir]; +- continue; +- } +- +- //exact match didn't work, try factoring front +- //a | (ac | (ad | () -> (a (E | c)) | (...) +- //ab | (ac | (...)) -> (a (b | c)) | (...) +- //ab | (a | (...)) -> (a (b | E)) | (...) +- Node *pp; +- int count = 0; +- Node *subject = t->child[dir]; +- Node *a = subject; +- if (dynamic_cast(a)) +- a = a->child[dir]; +- a->dup(); +- +- for (pp = p = t, i = t->child[!dir]; +- dynamic_cast(i); ) { +- if ((dynamic_cast(i->child[dir]) && +- a->eq(i->child[dir]->child[dir])) || +- (a->eq(i->child[dir]))) { +- // extract matching alt node +- p->child[!dir] = i->child[!dir]; +- i->child[!dir] = subject; +- subject = basic_simplify(i, dir); +- +- i = p->child[!dir]; +- count++; +- } else { +- pp = p; p = i; i = i->child[!dir]; +- } +- } +- +- // last altnode in chain check other dir as well +- if ((dynamic_cast(i) && +- a->eq(i->child[dir])) || +- (a->eq(i))) { +- count++; +- if (t == p) { +- t->child[dir] = subject; +- t = basic_simplify(t, dir); +- } else { +- t->child[dir] = p->child[dir]; +- p->child[dir] = subject; +- pp->child[!dir] = basic_simplify(p, dir); +- } +- } else { +- t->child[dir] = i; +- p->child[!dir] = subject; +- } +- a->release(); +- +- if (count == 0) +- break; +- } +- return t; +-} +- +-int debug_tree(Node *t) +-{ +- int nodes = 1; +- +- if (t->refcount > 1 && !dynamic_cast(t)) { +- fprintf(stderr, "Node %p has a refcount of %d\n", t, t->refcount); +- } +- +- if (!dynamic_cast(t)) { +- if (t->child[0]) +- nodes += debug_tree(t->child[0]); +- if (t->child[1]) +- nodes += debug_tree(t->child[1]); +- } +- return nodes; +-} +- +-struct node_counts { +- int charnode; +- int charset; +- int notcharset; +- int alt; +- int plus; +- int star; +- int any; +- int cat; +-}; +- +- +-static void count_tree_nodes(Node *t, struct node_counts *counts) +-{ +- if (dynamic_cast(t)) { +- counts->alt++; +- count_tree_nodes(t->child[0], counts); +- count_tree_nodes(t->child[1], counts); +- } else if (dynamic_cast(t)) { +- counts->cat++; +- count_tree_nodes(t->child[0], counts); +- count_tree_nodes(t->child[1], counts); +- } else if (dynamic_cast(t)) { +- counts->plus++; +- count_tree_nodes(t->child[0], counts); +- } else if (dynamic_cast(t)) { +- counts->star++; +- count_tree_nodes(t->child[0], counts); +- } else if (dynamic_cast(t)) { +- counts->charnode++; +- } else if (dynamic_cast(t)) { +- counts->any++; +- } else if (dynamic_cast(t)) { +- counts->charset++; +- } else if (dynamic_cast(t)) { +- counts->notcharset++; +- } +-} +- +-#include "stdio.h" +-#include "stdint.h" +-#include "apparmor_re.h" +- +-Node *simplify_tree(Node *t, dfaflags_t flags) +-{ +- bool update; +- +- if (flags & DFA_DUMP_TREE_STATS) { +- struct node_counts counts = { }; +- count_tree_nodes(t, &counts); +- fprintf(stderr, "expr tree: c %d, [] %d, [^] %d, | %d, + %d, * %d, . %d, cat %d\n", counts.charnode, counts.charset, counts.notcharset, counts.alt, counts.plus, counts.star, counts.any, counts.cat); +- } +- do { +- update = false; +- //default to right normalize first as this reduces the number +- //of trailing nodes which might follow an internal * +- //or **, which is where state explosion can happen +- //eg. in one test this makes the difference between +- // the dfa having about 7 thousands states, +- // and it having about 1.25 million states +- int dir = 1; +- if (flags & DFA_CONTROL_TREE_LEFT) +- dir = 0; +- for (int count = 0; count < 2; count++) { +- bool modified; +- do { +- modified = false; +- if (!(flags & DFA_CONTROL_NO_TREE_NORMAL)) +- normalize_tree(t, dir); +- t = simplify_tree_base(t, dir, modified); +- if (modified) +- update = true; +- } while (modified); +- if (flags & DFA_CONTROL_TREE_LEFT) +- dir++; +- else +- dir--; +- } +- } while(update); +- if (flags & DFA_DUMP_TREE_STATS) { +- struct node_counts counts = { }; +- count_tree_nodes(t, &counts); +- fprintf(stderr, "simplified expr tree: c %d, [] %d, [^] %d, | %d, + %d, * %d, . %d, cat %d\n", counts.charnode, counts.charset, counts.notcharset, counts.alt, counts.plus, counts.star, counts.any, counts.cat); +- } +- return t; +-} +- +- +-%} +- +-%union { +- char c; +- Node *node; +- Chars *cset; +-} +- +-%{ +- void regexp_error(Node **, const char *, const char *); +-# define YYLEX_PARAM &text +- int regexp_lex(YYSTYPE *, const char **); +- +- static inline Chars* +- insert_char(Chars* cset, uchar a) +- { +- cset->insert(a); +- return cset; +- } +- +- static inline Chars* +- insert_char_range(Chars* cset, uchar a, uchar b) +- { +- if (a > b) +- swap(a, b); +- for (uchar i = a; i <= b; i++) +- cset->insert(i); +- return cset; +- } +-%} +- +-%pure-parser +-/* %error-verbose */ +-%parse-param {Node **root} +-%parse-param {const char *text} +-%name-prefix = "regexp_" +- +-%token CHAR +-%type regex_char cset_char1 cset_char cset_charN +-%type charset cset_chars +-%type regexp expr terms0 terms qterm term +- +-/** +- * Note: destroy all nodes upon failure, but *not* the start symbol once +- * parsing succeeds! +- */ +-%destructor { $$->release(); } expr terms0 terms qterm term +- +-%% +- +-/* FIXME: Does not parse "[--]", "[---]", "[^^-x]". I don't actually know +- which precise grammer Perl regexps use, and rediscovering that +- is proving to be painful. */ +- +-regexp : /* empty */ { *root = $$ = new EpsNode; } +- | expr { *root = $$ = $1; } +- ; +- +-expr : terms +- | expr '|' terms0 { $$ = new AltNode($1, $3); } +- | '|' terms0 { $$ = new AltNode(new EpsNode, $2); } +- ; +- +-terms0 : /* empty */ { $$ = new EpsNode; } +- | terms +- ; +- +-terms : qterm +- | terms qterm { $$ = new CatNode($1, $2); } +- ; +- +-qterm : term +- | term '*' { $$ = new StarNode($1); } +- | term '+' { $$ = new PlusNode($1); } +- ; +- +-term : '.' { $$ = new AnyCharNode; } +- | regex_char { $$ = new CharNode($1); } +- | '[' charset ']' { $$ = new CharSetNode(*$2); +- delete $2; } +- | '[' '^' charset ']' +- { $$ = new NotCharSetNode(*$3); +- delete $3; } +- | '[' '^' '^' cset_chars ']' +- { $4->insert('^'); +- $$ = new NotCharSetNode(*$4); +- delete $4; } +- | '(' regexp ')' { $$ = $2; } +- ; +- +-regex_char : CHAR +- | '^' { $$ = '^'; } +- | '-' { $$ = '-'; } +- | ']' { $$ = ']'; } +- ; +- +-charset : cset_char1 cset_chars +- { $$ = insert_char($2, $1); } +- | cset_char1 '-' cset_charN cset_chars +- { $$ = insert_char_range($4, $1, $3); } +- ; +- +-cset_chars : /* nothing */ { $$ = new Chars; } +- | cset_chars cset_charN +- { $$ = insert_char($1, $2); } +- | cset_chars cset_charN '-' cset_charN +- { $$ = insert_char_range($1, $2, $4); } +- ; +- +-cset_char1 : cset_char +- | ']' { $$ = ']'; } +- | '-' { $$ = '-'; } +- ; +- +-cset_charN : cset_char +- | '^' { $$ = '^'; } +- ; +- +-cset_char : CHAR +- | '[' { $$ = '['; } +- | '*' { $$ = '*'; } +- | '+' { $$ = '+'; } +- | '.' { $$ = '.'; } +- | '|' { $$ = '|'; } +- | '(' { $$ = '('; } +- | ')' { $$ = ')'; } +- ; +- +-%% +- +-#include +-#include +-#include +-#include +- +-#include +-#include +- +-#include "../immunix.h" +- +-/* Traverse the syntax tree depth-first in an iterator-like manner. */ +-class depth_first_traversal { +- vector stack; +- vector visited; +-public: +- depth_first_traversal(Node *node) { +- stack.push_back(node); +- while (node->child[0]) { +- visited.push_back(false); +- stack.push_back(node->child[0]); +- node = node->child[0]; +- } +- } +- Node *operator*() +- { +- return stack.back(); +- } +- Node* operator->() +- { +- return stack.back(); +- } +- operator bool() +- { +- return !stack.empty(); +- } +- void operator++(int) +- { +- stack.pop_back(); +- if (!stack.empty()) { +- if (!visited.back() && stack.back()->child[1]) { +- visited.pop_back(); +- visited.push_back(true); +- stack.push_back(stack.back()->child[1]); +- while (stack.back()->child[0]) { +- visited.push_back(false); +- stack.push_back(stack.back()->child[0]); +- } +- } else +- visited.pop_back(); +- } +- } +-}; +- +-ostream& operator<<(ostream& os, Node& node) +-{ +- node.dump(os); +- return os; +-} +- +-ostream& operator<<(ostream& os, uchar c) +-{ +- const char *search = "\a\033\f\n\r\t|*+[](). ", +- *replace = "aefnrt|*+[](). ", *s; +- +- if ((s = strchr(search, c)) && *s != '\0') +- os << '\\' << replace[s - search]; +- else if (c < 32 || c >= 127) +- os << '\\' << '0' << char('0' + (c >> 6)) +- << char('0' + ((c >> 3) & 7)) << char('0' + (c & 7)); +- else +- os << (char)c; +- return os; +-} +- +-int +-octdigit(char c) +-{ +- if (c >= '0' && c <= '7') +- return c - '0'; +- return -1; +-} +- +-int +-hexdigit(char c) +-{ +- if (c >= '0' && c <= '9') +- return c - '0'; +- else if (c >= 'A' && c <= 'F') +- return 10 + c - 'A'; +- else if (c >= 'a' && c <= 'f') +- return 10 + c - 'A'; +- else +- return -1; +-} +- +-int +-regexp_lex(YYSTYPE *val, const char **pos) +-{ +- int c; +- +- val->c = **pos; +- switch(*(*pos)++) { +- case '\0': +- (*pos)--; +- return 0; +- +- case '*': case '+': case '.': case '|': case '^': case '-': +- case '[': case ']': case '(' : case ')': +- return *(*pos - 1); +- +- case '\\': +- val->c = **pos; +- switch(*(*pos)++) { +- case '\0': +- (*pos)--; +- /* fall through */ +- case '\\': +- val->c = '\\'; +- break; +- +- case '0': +- val->c = 0; +- if ((c = octdigit(**pos)) >= 0) { +- val->c = c; +- (*pos)++; +- } +- if ((c = octdigit(**pos)) >= 0) { +- val->c = (val->c << 3) + c; +- (*pos)++; +- } +- if ((c = octdigit(**pos)) >= 0) { +- val->c = (val->c << 3) + c; +- (*pos)++; +- } +- break; +- +- case 'x': +- val->c = 0; +- if ((c = hexdigit(**pos)) >= 0) { +- val->c = c; +- (*pos)++; +- } +- if ((c = hexdigit(**pos)) >= 0) { +- val->c = (val->c << 4) + c; +- (*pos)++; +- } +- break; +- +- case 'a': +- val->c = '\a'; +- break; +- +- case 'e': +- val->c = 033 /* ESC */; +- break; +- +- case 'f': +- val->c = '\f'; +- break; +- +- case 'n': +- val->c = '\n'; +- break; +- +- case 'r': +- val->c = '\r'; +- break; +- +- case 't': +- val->c = '\t'; +- break; +- } +- } +- return CHAR; +-} +- +-void +-regexp_error(Node **, const char *text, const char *error) +-{ +- /* We don't want the library to print error messages. */ +-} +- +-/** +- * Assign a consecutive number to each node. This is only needed for +- * pretty-printing the debug output. +- */ +-void label_nodes(Node *root) +-{ +- int nodes = 0; +- for (depth_first_traversal i(root); i; i++) +- i->label = nodes++; +-} +- +-/** +- * Text-dump a state (for debugging). +- */ +-ostream& operator<<(ostream& os, const State& state) +-{ +- os << '{'; +- if (!state.empty()) { +- State::iterator i = state.begin(); +- for(;;) { +- os << (*i)->label; +- if (++i == state.end()) +- break; +- os << ','; +- } +- } +- os << '}'; +- return os; +-} +- +-/** +- * Text-dump the syntax tree (for debugging). +- */ +-void dump_syntax_tree(ostream& os, Node *node) { +- for (depth_first_traversal i(node); i; i++) { +- os << i->label << '\t'; +- if ((*i)->child[0] == 0) +- os << **i << '\t' << (*i)->followpos << endl; +- else { +- if ((*i)->child[1] == 0) +- os << (*i)->child[0]->label << **i; +- else +- os << (*i)->child[0]->label << **i +- << (*i)->child[1]->label; +- os << '\t' << (*i)->firstpos +- << (*i)->lastpos << endl; +- } +- } +- os << endl; +-} +- +-/* Comparison operator for sets of . */ +-template +-class deref_less_than { +-public: +- deref_less_than() { } +- bool operator()(T a, T b) +- { +- return *a < *b; +- } +-}; +- +-/** +- * States in the DFA. The pointer comparison allows us to tell sets we +- * have seen already from new ones when constructing the DFA. +- */ +-typedef set > States; +-typedef list Partition; +-/* Transitions in the DFA. */ +-typedef map Trans; +- +-class DFA { +-public: +- DFA(Node *root, dfaflags_t flags); +- virtual ~DFA(); +- void remove_unreachable(dfaflags_t flags); +- bool same_mappings(map &partition_map, State *s1, +- State *s2); +- size_t hash_trans(State *s); +- void minimize(dfaflags_t flags); +- void dump(ostream& os); +- void dump_dot_graph(ostream& os); +- map equivalence_classes(dfaflags_t flags); +- void apply_equivalence_classes(map& eq); +- State *verify_perms(void); +- Node *root; +- State *nonmatching, *start; +- States states; +- Trans trans; +-}; +- +-/** +- * Construct a DFA from a syntax tree. +- */ +-DFA::DFA(Node *root, dfaflags_t flags) : root(root) +-{ +- int i, match_count, nomatch_count; +- i = match_count = nomatch_count = 0; +- +- if (flags & DFA_DUMP_PROGRESS) +- fprintf(stderr, "Creating dfa:\r"); +- +- for (depth_first_traversal i(root); i; i++) { +- (*i)->compute_nullable(); +- (*i)->compute_firstpos(); +- (*i)->compute_lastpos(); +- } +- +- if (flags & DFA_DUMP_PROGRESS) +- fprintf(stderr, "Creating dfa: followpos\r"); +- for (depth_first_traversal i(root); i; i++) { +- (*i)->compute_followpos(); +- } +- +- nonmatching = new State; +- states.insert(nonmatching); +- +- start = new State(root->firstpos); +- states.insert(start); +- +- list work_queue; +- work_queue.push_back(start); +- while (!work_queue.empty()) { +- if (i % 1000 == 0 && (flags & DFA_DUMP_PROGRESS)) +- fprintf(stderr, "\033[2KCreating dfa: queue %ld\tstates %ld\tmatching %d\tnonmatching %d\r", work_queue.size(), states.size(), match_count, nomatch_count); +- i++; +- +- State *from = work_queue.front(); +- work_queue.pop_front(); +- Cases cases; +- for (State::iterator i = from->begin(); i != from->end(); i++) +- (*i)->follow(cases); +- if (cases.otherwise) { +- pair x = states.insert(cases.otherwise); +- if (x.second) { +- nomatch_count++; +- work_queue.push_back(cases.otherwise); +- } else { +- match_count++; +- delete cases.otherwise; +- cases.otherwise = *x.first; +- } +- } +- for (Cases::iterator j = cases.begin(); j != cases.end(); j++) { +- pair x = states.insert(j->second); +- if (x.second) { +- nomatch_count++; +- work_queue.push_back(*x.first); +- } else { +- match_count++; +- delete j->second; +- j->second = *x.first; +- } +- } +- Cases& here = trans.insert(make_pair(from, Cases())).first->second; +- here.otherwise = cases.otherwise; +- for (Cases::iterator j = cases.begin(); j != cases.end(); j++) { +- /** +- * Do not insert transitions that the default transition already +- * covers. +- */ +- if (j->second != cases.otherwise) +- here.cases.insert(*j); +- } +- } +- +- for (depth_first_traversal i(root); i; i++) { +- (*i)->firstpos.clear(); +- (*i)->lastpos.clear(); +- (*i)->followpos.clear(); +- } +- +- if (flags & (DFA_DUMP_STATS)) +- fprintf(stderr, "\033[2KCreated dfa: states %ld\tmatching %d\tnonmatching %d\n", states.size(), match_count, nomatch_count); +- +- if (!(flags & DFA_CONTROL_NO_MINIMIZE)) +- minimize(flags); +- +- if (!(flags & DFA_CONTROL_NO_UNREACHABLE)) +- remove_unreachable(flags); +- +-} +- +-DFA::~DFA() +-{ +- for (States::iterator i = states.begin(); i != states.end(); i++) +- delete *i; +-} +- +-class MatchFlag : public AcceptNode { +-public: +-MatchFlag(uint32_t flag, uint32_t audit) : flag(flag), audit(audit) {} +- ostream& dump(ostream& os) +- { +- return os << '<' << flag << '>'; +- } +- +- uint32_t flag; +- uint32_t audit; +- }; +- +-class ExactMatchFlag : public MatchFlag { +-public: +- ExactMatchFlag(uint32_t flag, uint32_t audit) : MatchFlag(flag, audit) {} +-}; +- +-class DenyMatchFlag : public MatchFlag { +-public: +- DenyMatchFlag(uint32_t flag, uint32_t quiet) : MatchFlag(flag, quiet) {} +-}; +- +-uint32_t accept_perms(State *state, uint32_t *audit_ctl, int *error); +- +-/** +- * verify that there are no conflicting X permissions on the dfa +- * return NULL - perms verified okay +- * State of 1st encountered with bad X perms +- */ +-State *DFA::verify_perms(void) +-{ +- int error = 0; +- for (States::iterator i = states.begin(); i != states.end(); i++) { +- uint32_t accept = accept_perms(*i, NULL, &error); +- if (*i == start || accept) { +- if (error) +- return *i; +- } +- } +- return NULL; +-} +- +-/* Remove dead or unreachable states */ +-void DFA::remove_unreachable(dfaflags_t flags) +-{ +- set reachable; +- list work_queue; +- +- /* find the set of reachable states */ +- reachable.insert(nonmatching); +- work_queue.push_back(start); +- while (!work_queue.empty()) { +- State *from = work_queue.front(); +- work_queue.pop_front(); +- reachable.insert(from); +- +- Trans::iterator i = trans.find(from); +- if (i == trans.end() && from != nonmatching) +- continue; +- +- if (i->second.otherwise && +- (reachable.find(i->second.otherwise) == reachable.end())) +- work_queue.push_back(i->second.otherwise); +- +- for (Cases::iterator j = i->second.begin(); +- j != i->second.end(); j++) { +- if (reachable.find(j->second) == reachable.end()) +- work_queue.push_back(j->second); +- } +- } +- +- /* walk the set of states and remove any that aren't reachable */ +- if (reachable.size() < states.size()) { +- int count = 0; +- States::iterator i; +- States::iterator next; +- for (i = states.begin(); i != states.end(); i = next) { +- next = i; +- next++; +- if (reachable.find(*i) == reachable.end()) { +- states.erase(*i); +- Trans::iterator t = trans.find(*i); +- if (t != trans.end()) +- trans.erase(t); +- if (flags & DFA_DUMP_UNREACHABLE) { +- uint32_t audit, accept = accept_perms(*i, &audit, NULL); +- cerr << "unreachable: "<< **i; +- if (*i == start) +- cerr << " <=="; +- if (accept) { +- cerr << " (0x" << hex << accept +- << " " << audit << dec << ')'; +- } +- cerr << endl; +- } +- } +- delete(*i); +- count++; +- } +- +- if (count && (flags & DFA_DUMP_STATS)) +- cerr << "DFA: states " << states.size() << " removed " +- << count << " unreachable states\n"; +- } +-} +- +-/* test if two states have the same transitions under partition_map */ +-bool DFA::same_mappings(map &partition_map, State *s1, +- State *s2) +-{ +- Trans::iterator i1 = trans.find(s1); +- Trans::iterator i2 = trans.find(s2); +- +- if (i1 == trans.end()) { +- if (i2 == trans.end()) { +- return true; +- } +- return false; +- } else if (i2 == trans.end()) { +- return false; +- } +- +- if (i1->second.otherwise) { +- if (!i2->second.otherwise) +- return false; +- Partition *p1 = partition_map.find(i1->second.otherwise)->second; +- Partition *p2 = partition_map.find(i2->second.otherwise)->second; +- if (p1 != p2) +- return false; +- } else if (i2->second.otherwise) { +- return false; +- } +- +- if (i1->second.cases.size() != i2->second.cases.size()) +- return false; +- for (Cases::iterator j1 = i1->second.begin(); j1 != i1->second.end(); +- j1++){ +- Cases::iterator j2 = i2->second.cases.find(j1->first); +- if (j2 == i2->second.end()) +- return false; +- Partition *p1 = partition_map.find(j1->second)->second; +- Partition *p2 = partition_map.find(j2->second)->second; +- if (p1 != p2) +- return false; +- } +- +- return true; +-} +- +-/* Do simple djb2 hashing against a States transition cases +- * this provides a rough initial guess at state equivalence as if a state +- * has a different number of transitions or has transitions on different +- * cases they will never be equivalent. +- * Note: this only hashes based off of the alphabet (not destination) +- * as different destinations could end up being equiv +- */ +-size_t DFA::hash_trans(State *s) +-{ +- unsigned long hash = 5381; +- +- Trans::iterator i = trans.find(s); +- if (i == trans.end()) +- return 0; +- +- for (Cases::iterator j = i->second.begin(); j != i->second.end(); j++){ +- hash = ((hash << 5) + hash) + j->first; +- Trans::iterator k = trans.find(j->second); +- hash = ((hash << 5) + hash) + k->second.cases.size(); +- } +- +- if (i->second.otherwise && i->second.otherwise != nonmatching) { +- hash = ((hash << 5) + hash) + 5381; +- Trans::iterator k = trans.find(i->second.otherwise); +- hash = ((hash << 5) + hash) + k->second.cases.size(); +- } +- +- hash = (hash << 8) | i->second.cases.size(); +- return hash; +-} +- +-/* minimize the number of dfa states */ +-void DFA::minimize(dfaflags_t flags) +-{ +- map , Partition *> perm_map; +- list partitions; +- map partition_map; +- +- /* Set up the initial partitions - 1 non accepting, and a +- * partion for each unique combination of permissions +- * +- * Save off accept value for State so we don't have to recompute +- * this should be fixed by updating State to store them but this +- * will work for now +- */ +- +- int accept_count = 0; +- for (States::iterator i = states.begin(); i != states.end(); i++) { +- uint32_t accept1, accept2; +- accept1 = accept_perms(*i, &accept2, NULL); +- uint64_t combined = ((uint64_t)accept2)<<32 | (uint64_t)accept1; +- size_t size = 0; +- if (!(flags & DFA_CONTROL_NO_HASH_PART)) +- size = hash_trans(*i); +- pair group = make_pair(combined, size); +- map , Partition *>::iterator p = perm_map.find(group); +- if (p == perm_map.end()) { +- Partition *part = new Partition(); +- part->push_back(*i); +- perm_map.insert(make_pair(group, part)); +- partitions.push_back(part); +- partition_map.insert(make_pair(*i, part)); +- if (combined) +- accept_count++; +- } else { +- partition_map.insert(make_pair(*i, p->second)); +- p->second->push_back(*i); +- } +- if ((flags & DFA_DUMP_PROGRESS) && +- (partitions.size() % 1000 == 0)) +- cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << partitions.size() << "\t(accept " << accept_count << ")\r"; +- } +- +- int init_count = partitions.size(); +- if (flags & DFA_DUMP_PROGRESS) +- cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << init_count << "\t(accept " << accept_count << ")\r"; +- +- /* Now do repartitioning until each partition contains the set of +- * states that are the same. This will happen when the partition +- * splitting stables. With a worse case of 1 state per partition +- * ie. already minimized. +- */ +- Partition *new_part; +- int new_part_count; +- do { +- new_part_count = 0; +- for (list ::iterator p = partitions.begin(); +- p != partitions.end(); p++) { +- new_part = NULL; +- State *rep = *((*p)->begin()); +- Partition::iterator next; +- for (Partition::iterator s = ++(*p)->begin(); +- s != (*p)->end(); ) { +- if (same_mappings(partition_map, rep, *s)) { +- ++s; +- continue; +- } +- if (!new_part) { +- new_part = new Partition; +- list ::iterator tmp = p; +- partitions.insert(++tmp, new_part); +- new_part_count++; +- } +- new_part->push_back(*s); +- s = (*p)->erase(s); +- } +- /* remapping partition_map for new_part entries +- * Do not do this above as it messes up same_mappings +- */ +- if (new_part) { +- for (Partition::iterator m = new_part->begin(); +- m != new_part->end(); m++) { +- partition_map.erase(*m); +- partition_map.insert(make_pair(*m, new_part)); +- } +- } +- if ((flags & DFA_DUMP_PROGRESS) && +- (partitions.size() % 100 == 0)) +- cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << init_count << "\t(accept " << accept_count << ")\r"; +- } +- } while(new_part_count); +- +- if (flags & DFA_DUMP_STATS) +- cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << init_count << "\t(accept " << accept_count << ")\n"; +- +- +- if (partitions.size() == states.size()) { +- goto out; +- } +- +- /* Remap the dfa so it uses the representative states +- * Use the first state of a partition as the representative state +- * At this point all states with in a partion have transitions +- * to same states within the same partitions +- */ +- for (list ::iterator p = partitions.begin(); +- p != partitions.end(); p++) { +- /* representative state for this partition */ +- State *rep = *((*p)->begin()); +- +- /* update representative state's transitions */ +- Trans::iterator i = trans.find(rep); +- if (i != trans.end()) { +- if (i->second.otherwise) { +- map ::iterator z = partition_map.find(i->second.otherwise); +- Partition *partition = partition_map.find(i->second.otherwise)->second; +- i->second.otherwise = *partition->begin(); +- } +- for (Cases::iterator c = i->second.begin(); +- c != i->second.end(); c++) { +- Partition *partition = partition_map.find(c->second)->second; +- c->second = *partition->begin(); +- } +- } +- } +- +- /* make sure nonmatching and start state are up to date with the +- * mappings */ +- { +- Partition *partition = partition_map.find(nonmatching)->second; +- if (*partition->begin() != nonmatching) { +- nonmatching = *partition->begin(); +- } +- +- partition = partition_map.find(start)->second; +- if (*partition->begin() != start) { +- start = *partition->begin(); +- } +- +- } +- /* Now that the states have been remapped, remove all states +- * that are not the representive states for their partition +- */ +- for (list ::iterator p = partitions.begin(); +- p != partitions.end(); p++) { +- for (Partition::iterator i = ++(*p)->begin(); i != (*p)->end(); i++) { +- Trans::iterator j = trans.find(*i); +- if (j != trans.end()) +- trans.erase(j); +- State *s = *i; +- states.erase(*i); +- delete(s); +- } +- } +- +-out: +- /* Cleanup */ +- while (!partitions.empty()) { +- Partition *p = partitions.front(); +- partitions.pop_front(); +- delete(p); +- } +-} +- +-/** +- * text-dump the DFA (for debugging). +- */ +-void DFA::dump(ostream& os) +-{ +- int error = 0; +- for (States::iterator i = states.begin(); i != states.end(); i++) { +- uint32_t accept, audit; +- accept = accept_perms(*i, &audit, &error); +- if (*i == start || accept) { +- os << **i; +- if (*i == start) +- os << " <=="; +- if (accept) { +- os << " (0x" << hex << accept << " " << audit << dec << ')'; +- } +- os << endl; +- } +- } +- os << endl; +- +- for (Trans::iterator i = trans.begin(); i != trans.end(); i++) { +- if (i->second.otherwise) +- os << *(i->first) << " -> " << *i->second.otherwise << endl; +- for (Cases::iterator j = i->second.begin(); j != i->second.end(); j++) { +- os << *(i->first) << " -> " << *(j->second) << ": " +- << j->first << endl; +- } +- } +- os << endl; +-} +- +-/** +- * Create a dot (graphviz) graph from the DFA (for debugging). +- */ +-void DFA::dump_dot_graph(ostream& os) +-{ +- os << "digraph \"dfa\" {" << endl; +- +- for (States::iterator i = states.begin(); i != states.end(); i++) { +- if (*i == nonmatching) +- continue; +- +- os << "\t\"" << **i << "\" [" << endl; +- if (*i == start) { +- os << "\t\tstyle=bold" << endl; +- } +- int error = 0; +- uint32_t perms = accept_perms(*i, NULL, &error); +- if (perms) { +- os << "\t\tlabel=\"" << **i << "\\n(" +- << perms << ")\"" << endl; +- } +- os << "\t]" << endl; +- } +- for (Trans::iterator i = trans.begin(); i != trans.end(); i++) { +- Cases& cases = i->second; +- Chars excluded; +- +- for (Cases::iterator j = cases.begin(); j != cases.end(); j++) { +- if (j->second == nonmatching) +- excluded.insert(j->first); +- else { +- os << "\t\"" << *i->first << "\" -> \""; +- os << *j->second << "\" [" << endl; +- os << "\t\tlabel=\"" << (char)j->first << "\"" << endl; +- os << "\t]" << endl; +- } +- } +- if (i->second.otherwise && i->second.otherwise != nonmatching) { +- os << "\t\"" << *i->first << "\" -> \"" << *i->second.otherwise +- << "\" [" << endl; +- if (!excluded.empty()) { +- os << "\t\tlabel=\"[^"; +- for (Chars::iterator i = excluded.begin(); +- i != excluded.end(); +- i++) { +- os << *i; +- } +- os << "]\"" << endl; +- } +- os << "\t]" << endl; +- } +- } +- os << '}' << endl; +-} +- +-/** +- * Compute character equivalence classes in the DFA to save space in the +- * transition table. +- */ +-map DFA::equivalence_classes(dfaflags_t flags) +-{ +- map classes; +- uchar next_class = 1; +- +- for (Trans::iterator i = trans.begin(); i != trans.end(); i++) { +- Cases& cases = i->second; +- +- /* Group edges to the same next state together */ +- map node_sets; +- for (Cases::iterator j = cases.begin(); j != cases.end(); j++) +- node_sets[j->second].insert(j->first); +- +- for (map::iterator j = node_sets.begin(); +- j != node_sets.end(); +- j++) { +- /* Group edges to the same next state together by class */ +- map node_classes; +- bool class_used = false; +- for (Chars::iterator k = j->second.begin(); +- k != j->second.end(); +- k++) { +- pair::iterator, bool> x = +- classes.insert(make_pair(*k, next_class)); +- if (x.second) +- class_used = true; +- pair::iterator, bool> y = +- node_classes.insert(make_pair(x.first->second, Chars())); +- y.first->second.insert(*k); +- } +- if (class_used) { +- next_class++; +- class_used = false; +- } +- for (map::iterator k = node_classes.begin(); +- k != node_classes.end(); +- k++) { +- /** +- * If any other characters are in the same class, move +- * the characters in this class into their own new class +- */ +- map::iterator l; +- for (l = classes.begin(); l != classes.end(); l++) { +- if (l->second == k->first && +- k->second.find(l->first) == k->second.end()) { +- class_used = true; +- break; +- } +- } +- if (class_used) { +- for (Chars::iterator l = k->second.begin(); +- l != k->second.end(); +- l++) { +- classes[*l] = next_class; +- } +- next_class++; +- class_used = false; +- } +- } +- } +- } +- +- if (flags & DFA_DUMP_EQUIV_STATS) +- fprintf(stderr, "Equiv class reduces to %d classes\n", next_class - 1); +- return classes; +-} +- +-/** +- * Text-dump the equivalence classes (for debugging). +- */ +-void dump_equivalence_classes(ostream& os, map& eq) +-{ +- map rev; +- +- for (map::iterator i = eq.begin(); i != eq.end(); i++) { +- Chars& chars = rev.insert(make_pair(i->second, +- Chars())).first->second; +- chars.insert(i->first); +- } +- os << "(eq):" << endl; +- for (map::iterator i = rev.begin(); i != rev.end(); i++) { +- os << (int)i->first << ':'; +- Chars& chars = i->second; +- for (Chars::iterator j = chars.begin(); j != chars.end(); j++) { +- os << ' ' << *j; +- } +- os << endl; +- } +-} +- +-/** +- * Replace characters with classes (which are also represented as +- * characters) in the DFA transition table. +- */ +-void DFA::apply_equivalence_classes(map& eq) +-{ +- /** +- * Note: We only transform the transition table; the nodes continue to +- * contain the original characters. +- */ +- for (Trans::iterator i = trans.begin(); i != trans.end(); i++) { +- map tmp; +- tmp.swap(i->second.cases); +- for (Cases::iterator j = tmp.begin(); j != tmp.end(); j++) +- i->second.cases.insert(make_pair(eq[j->first], j->second)); +- } +-} +- +-/** +- * Flip the children of all cat nodes. This causes strings to be matched +- * back-forth. +- */ +-void flip_tree(Node *node) +-{ +- for (depth_first_traversal i(node); i; i++) { +- if (CatNode *cat = dynamic_cast(*i)) { +- swap(cat->child[0], cat->child[1]); +- } +- } +-} +- +-class TransitionTable { +- typedef vector > DefaultBase; +- typedef vector > NextCheck; +-public: +- TransitionTable(DFA& dfa, map& eq, dfaflags_t flags); +- void dump(ostream& os); +- void flex_table(ostream& os, const char *name); +- void init_free_list(vector > &free_list, size_t prev, size_t start); +- bool fits_in(vector > &free_list, +- size_t base, Cases& cases); +- void insert_state(vector > &free_list, +- State *state, DFA& dfa); +- +-private: +- vector accept; +- vector accept2; +- DefaultBase default_base; +- NextCheck next_check; +- map num; +- map& eq; +- uchar max_eq; +- size_t first_free; +-}; +- +- +-void TransitionTable::init_free_list(vector > &free_list, +- size_t prev, size_t start) { +- for (size_t i = start; i < free_list.size(); i++) { +- if (prev) +- free_list[prev].second = i; +- free_list[i].first = prev; +- prev = i; +- } +- free_list[free_list.size() -1].second = 0; +-} +- +-/** +- * new Construct the transition table. +- */ +-TransitionTable::TransitionTable(DFA& dfa, map& eq, +- dfaflags_t flags) +- : eq(eq) +-{ +- +- if (flags & DFA_DUMP_TRANS_PROGRESS) +- fprintf(stderr, "Creating trans table:\r"); +- +- +- if (eq.empty()) +- max_eq = 255; +- else { +- max_eq = 0; +- for(map::iterator i = eq.begin(); i != eq.end(); i++) { +- if (i->second > max_eq) +- max_eq = i->second; +- } +- } +- +- /* Do initial setup adding up all the transitions and sorting by +- * transition count. +- */ +- size_t optimal = 2; +- multimap order; +- vector > free_list; +- +- for (Trans::iterator i = dfa.trans.begin(); i != dfa.trans.end(); i++) { +- if (i->first == dfa.start || i->first == dfa.nonmatching) +- continue; +- optimal += i->second.cases.size(); +- if (flags & DFA_CONTROL_TRANS_HIGH) { +- size_t range = 0; +- if (i->second.cases.size()) +- range = i->second.cases.rbegin()->first - i->second.begin()->first; +- size_t ord = ((256 - i->second.cases.size()) << 8) | +- (256 - range); +- /* reverse sort by entry count, most entries first */ +- order.insert(make_pair(ord, i->first)); +- } +- } +- +- /* Insert the dummy nonmatching transition by hand */ +- next_check.push_back(make_pair(dfa.nonmatching, dfa.nonmatching)); +- default_base.push_back(make_pair(dfa.nonmatching, 0)); +- num.insert(make_pair(dfa.nonmatching, num.size())); +- +- accept.resize(dfa.states.size()); +- accept2.resize(dfa.states.size()); +- next_check.resize(optimal); +- free_list.resize(optimal); +- +- accept[0] = 0; +- accept2[0] = 0; +- first_free = 1; +- init_free_list(free_list, 0, 1); +- +- insert_state(free_list, dfa.start, dfa); +- accept[1] = 0; +- accept2[1] = 0; +- num.insert(make_pair(dfa.start, num.size())); +- +- int count = 2; +- +- if (!(flags & DFA_CONTROL_TRANS_HIGH)) { +- for (States::iterator i = dfa.states.begin(); i != dfa.states.end(); +- i++) { +- if (*i != dfa.nonmatching && *i != dfa.start) { +- insert_state(free_list, *i, dfa); +- int error = 0; +- uint32_t audit_ctl; +- accept[num.size()] = accept_perms(*i, &audit_ctl, &error); +- accept2[num.size()] = audit_ctl; +- num.insert(make_pair(*i, num.size())); +- } +- if (flags & (DFA_DUMP_TRANS_PROGRESS)) { +- count++; +- if (count % 100 == 0) +- fprintf(stderr, "\033[2KCreating trans table: insert state: %d/%ld\r", count, dfa.states.size()); +- } +- } +- } else { +- for (multimap ::iterator i = order.begin(); +- i != order.end(); i++) { +- if (i->second != dfa.nonmatching && i->second != dfa.start) { +- insert_state(free_list, i->second, dfa); +- int error = 0; +- uint32_t audit_ctl; +- accept[num.size()] = accept_perms(i->second, &audit_ctl, &error); +- accept2[num.size()] = audit_ctl; +- num.insert(make_pair(i->second, num.size())); +- } +- if (flags & (DFA_DUMP_TRANS_PROGRESS)) { +- count++; +- if (count % 100 == 0) +- fprintf(stderr, "\033[2KCreating trans table: insert state: %d/%ld\r", count, dfa.states.size()); +- } +- } +- } +- +- if (flags & (DFA_DUMP_TRANS_STATS | DFA_DUMP_TRANS_PROGRESS)) { +- ssize_t size = 4 * next_check.size() + 6 * dfa.states.size(); +- fprintf(stderr, "\033[2KCreated trans table: states %ld, next/check %ld, optimal next/check %ld avg/state %.2f, compression %ld/%ld = %.2f %%\n", dfa.states.size(), next_check.size(), optimal, (float)next_check.size()/(float)dfa.states.size(), size, 512 * dfa.states.size(), 100.0 - ((float) size * 100.0 / (float)(512 * dfa.states.size()))); +- } +-} +- +- +-/** +- * Does fit into position of the transition table? +- */ +-bool TransitionTable::fits_in(vector > &free_list, +- size_t pos, Cases& cases) +-{ +- size_t c, base = pos - cases.begin()->first; +- for (Cases::iterator i = cases.begin(); i != cases.end(); i++) { +- c = base + i->first; +- /* if it overflows the next_check array it fits in as we will +- * resize */ +- if (c >= next_check.size()) +- return true; +- if (next_check[c].second) +- return false; +- } +- +- return true; +-} +- +-/** +- * Insert of into the transition table. +- */ +-void TransitionTable::insert_state(vector > &free_list, +- State *from, DFA& dfa) +-{ +- State *default_state = dfa.nonmatching; +- size_t base = 0; +- int resize; +- +- Trans::iterator i = dfa.trans.find(from); +- if (i == dfa.trans.end()) { +- return; +- } +- Cases& cases = i->second; +- size_t c = cases.begin()->first; +- size_t prev = 0; +- size_t x = first_free; +- +- if (cases.otherwise) +- default_state = cases.otherwise; +- if (cases.cases.empty()) +- goto do_insert; +- +-repeat: +- resize = 0; +- /* get the first free entry that won't underflow */ +- while (x && (x < c)) { +- prev = x; +- x = free_list[x].second; +- } +- +- /* try inserting until we succeed. */ +- while (x && !fits_in(free_list, x, cases)) { +- prev = x; +- x = free_list[x].second; +- } +- if (!x) { +- resize = 256 - cases.begin()->first; +- x = free_list.size(); +- /* set prev to last free */ +- } else if (x + 255 - cases.begin()->first >= next_check.size()) { +- resize = (255 - cases.begin()->first - (next_check.size() - 1 - x)); +- for (size_t y = x; y; y = free_list[y].second) +- prev = y; +- } +- if (resize) { +- /* expand next_check and free_list */ +- size_t old_size = free_list.size(); +- next_check.resize(next_check.size() + resize); +- free_list.resize(free_list.size() + resize); +- init_free_list(free_list, prev, old_size); +- if (!first_free) +- first_free = old_size;; +- if (x == old_size) +- goto repeat; +- } +- +- base = x - c; +- for (Cases::iterator j = cases.begin(); j != cases.end(); j++) { +- next_check[base + j->first] = make_pair(j->second, from); +- size_t prev = free_list[base + j->first].first; +- size_t next = free_list[base + j->first].second; +- if (prev) +- free_list[prev].second = next; +- if (next) +- free_list[next].first = prev; +- if (base + j->first == first_free) +- first_free = next; +- } +- +-do_insert: +- default_base.push_back(make_pair(default_state, base)); +-} +- +-/** +- * Text-dump the transition table (for debugging). +- */ +-void TransitionTable::dump(ostream& os) +-{ +- map st; +- for (map::iterator i = num.begin(); +- i != num.end(); +- i++) { +- st.insert(make_pair(i->second, i->first)); +- } +- +- os << "(accept, default, base):" << endl; +- for (size_t i = 0; i < default_base.size(); i++) { +- os << "(" << accept[i] << ", " +- << num[default_base[i].first] << ", " +- << default_base[i].second << ")"; +- if (st[i]) +- os << " " << *st[i]; +- if (default_base[i].first) +- os << " -> " << *default_base[i].first; +- os << endl; +- } +- +- os << "(next, check):" << endl; +- for (size_t i = 0; i < next_check.size(); i++) { +- if (!next_check[i].second) +- continue; +- +- os << i << ": "; +- if (next_check[i].second) { +- os << "(" << num[next_check[i].first] << ", " +- << num[next_check[i].second] << ")" << " " +- << *next_check[i].second << " -> " +- << *next_check[i].first << ": "; +- +- size_t offs = i - default_base[num[next_check[i].second]].second; +- if (eq.size()) +- os << offs; +- else +- os << (uchar)offs; +- } +- os << endl; +- } +-} +- +-#if 0 +-template +-class FirstIterator { +-public: +- FirstIterator(Iter pos) : pos(pos) { } +- typename Iter::value_type::first_type operator*() { return pos->first; } +- bool operator!=(FirstIterator& i) { return pos != i.pos; } +- void operator++() { ++pos; } +- ssize_t operator-(FirstIterator i) { return pos - i.pos; } +-private: +- Iter pos; +-}; +- +-template +-FirstIterator first_iterator(Iter iter) +-{ +- return FirstIterator(iter); +-} +- +-template +-class SecondIterator { +-public: +- SecondIterator(Iter pos) : pos(pos) { } +- typename Iter::value_type::second_type operator*() { return pos->second; } +- bool operator!=(SecondIterator& i) { return pos != i.pos; } +- void operator++() { ++pos; } +- ssize_t operator-(SecondIterator i) { return pos - i.pos; } +-private: +- Iter pos; +-}; +- +-template +-SecondIterator second_iterator(Iter iter) +-{ +- return SecondIterator(iter); +-} +-#endif +- +-/** +- * Create a flex-style binary dump of the DFA tables. The table format +- * was partly reverse engineered from the flex sources and from +- * examining the tables that flex creates with its --tables-file option. +- * (Only the -Cf and -Ce formats are currently supported.) +- */ +- +-#include "flex-tables.h" +-#include "regexp.h" +- +-static inline size_t pad64(size_t i) +-{ +- return (i + (size_t)7) & ~(size_t)7; +-} +- +-string fill64(size_t i) +-{ +- const char zeroes[8] = { }; +- string fill(zeroes, (i & 7) ? 8 - (i & 7) : 0); +- return fill; +-} +- +-template +-size_t flex_table_size(Iter pos, Iter end) +-{ +- return pad64(sizeof(struct table_header) + sizeof(*pos) * (end - pos)); +-} +- +-template +-void write_flex_table(ostream& os, int id, Iter pos, Iter end) +-{ +- struct table_header td = { }; +- size_t size = end - pos; +- +- td.td_id = htons(id); +- td.td_flags = htons(sizeof(*pos)); +- td.td_lolen = htonl(size); +- os.write((char *)&td, sizeof(td)); +- +- for (; pos != end; ++pos) { +- switch(sizeof(*pos)) { +- case 4: +- os.put((char)(*pos >> 24)); +- os.put((char)(*pos >> 16)); +- case 2: +- os.put((char)(*pos >> 8)); +- case 1: +- os.put((char)*pos); +- } +- } +- +- os << fill64(sizeof(td) + sizeof(*pos) * size); +-} +- +-void TransitionTable::flex_table(ostream& os, const char *name) +-{ +- const char th_version[] = "notflex"; +- struct table_set_header th = { }; +- +- /** +- * Change the following two data types to adjust the maximum flex +- * table size. +- */ +- typedef uint16_t state_t; +- typedef uint32_t trans_t; +- +- if (default_base.size() >= (state_t)-1) { +- cerr << "Too many states (" << default_base.size() << ") for " +- "type state_t" << endl; +- exit(1); +- } +- if (next_check.size() >= (trans_t)-1) { +- cerr << "Too many transitions (" << next_check.size() << ") for " +- "type trans_t" << endl; +- exit(1); +- } +- +- /** +- * Create copies of the data structures so that we can dump the tables +- * using the generic write_flex_table() routine. +- */ +- vector equiv_vec; +- if (eq.size()) { +- equiv_vec.resize(256); +- for (map::iterator i = eq.begin(); i != eq.end(); i++) { +- equiv_vec[i->first] = i->second; +- } +- } +- +- vector default_vec; +- vector base_vec; +- for (DefaultBase::iterator i = default_base.begin(); +- i != default_base.end(); +- i++) { +- default_vec.push_back(num[i->first]); +- base_vec.push_back(i->second); +- } +- +- vector next_vec; +- vector check_vec; +- for (NextCheck::iterator i = next_check.begin(); +- i != next_check.end(); +- i++) { +- next_vec.push_back(num[i->first]); +- check_vec.push_back(num[i->second]); +- } +- +- /* Write the actual flex parser table. */ +- +- size_t hsize = pad64(sizeof(th) + sizeof(th_version) + strlen(name) + 1); +- th.th_magic = htonl(YYTH_REGEXP_MAGIC); +- th.th_hsize = htonl(hsize); +- th.th_ssize = htonl(hsize + +- flex_table_size(accept.begin(), accept.end()) + +- flex_table_size(accept2.begin(), accept2.end()) + +- (eq.size() ? +- flex_table_size(equiv_vec.begin(), equiv_vec.end()) : 0) + +- flex_table_size(base_vec.begin(), base_vec.end()) + +- flex_table_size(default_vec.begin(), default_vec.end()) + +- flex_table_size(next_vec.begin(), next_vec.end()) + +- flex_table_size(check_vec.begin(), check_vec.end())); +- os.write((char *)&th, sizeof(th)); +- os << th_version << (char)0 << name << (char)0; +- os << fill64(sizeof(th) + sizeof(th_version) + strlen(name) + 1); +- +- +- write_flex_table(os, YYTD_ID_ACCEPT, accept.begin(), accept.end()); +- write_flex_table(os, YYTD_ID_ACCEPT2, accept2.begin(), accept2.end()); +- if (eq.size()) +- write_flex_table(os, YYTD_ID_EC, equiv_vec.begin(), equiv_vec.end()); +- write_flex_table(os, YYTD_ID_BASE, base_vec.begin(), base_vec.end()); +- write_flex_table(os, YYTD_ID_DEF, default_vec.begin(), default_vec.end()); +- write_flex_table(os, YYTD_ID_NXT, next_vec.begin(), next_vec.end()); +- write_flex_table(os, YYTD_ID_CHK, check_vec.begin(), check_vec.end()); +-} +- +-#if 0 +-typedef set AcceptNodes; +-map dominance(DFA& dfa) +-{ +- map is_dominated; +- +- for (States::iterator i = dfa.states.begin(); i != dfa.states.end(); i++) { +- AcceptNodes set1; +- for (State::iterator j = (*i)->begin(); j != (*i)->end(); j++) { +- if (AcceptNode *accept = dynamic_cast(*j)) +- set1.insert(accept); +- } +- for (AcceptNodes::iterator j = set1.begin(); j != set1.end(); j++) { +- pair::iterator, bool> x = +- is_dominated.insert(make_pair(*j, set1)); +- if (!x.second) { +- AcceptNodes &set2(x.first->second), set3; +- for (AcceptNodes::iterator l = set2.begin(); +- l != set2.end(); +- l++) { +- if (set1.find(*l) != set1.end()) +- set3.insert(*l); +- } +- set3.swap(set2); +- } +- } +- } +- return is_dominated; +-} +-#endif +- +-void dump_regexp_rec(ostream& os, Node *tree) +-{ +- if (tree->child[0]) +- dump_regexp_rec(os, tree->child[0]); +- os << *tree; +- if (tree->child[1]) +- dump_regexp_rec(os, tree->child[1]); +-} +- +-void dump_regexp(ostream& os, Node *tree) +-{ +- dump_regexp_rec(os, tree); +- os << endl; +-} +- +-#include +-#include +- +-struct aare_ruleset { +- int reverse; +- Node *root; +-}; +- +-extern "C" aare_ruleset_t *aare_new_ruleset(int reverse) +-{ +- aare_ruleset_t *container = (aare_ruleset_t *) malloc(sizeof(aare_ruleset_t)); +- if (!container) +- return NULL; +- +- container->root = NULL; +- container->reverse = reverse; +- +- return container; +-} +- +-extern "C" void aare_delete_ruleset(aare_ruleset_t *rules) +-{ +- if (rules) { +- if (rules->root) +- rules->root->release(); +- free(rules); +- } +-} +- +-static inline int diff_qualifiers(uint32_t perm1, uint32_t perm2) +-{ +- return ((perm1 & AA_EXEC_TYPE) && (perm2 & AA_EXEC_TYPE) && +- (perm1 & AA_EXEC_TYPE) != (perm2 & AA_EXEC_TYPE)); +-} +- +-/** +- * Compute the permission flags that this state corresponds to. If we +- * have any exact matches, then they override the execute and safe +- * execute flags. +- */ +-uint32_t accept_perms(State *state, uint32_t *audit_ctl, int *error) +-{ +- uint32_t perms = 0, exact_match_perms = 0, audit = 0, exact_audit = 0, +- quiet = 0, deny = 0; +- +- if (error) +- *error = 0; +- for (State::iterator i = state->begin(); i != state->end(); i++) { +- MatchFlag *match; +- if (!(match= dynamic_cast(*i))) +- continue; +- if (dynamic_cast(match)) { +- /* exact match only ever happens with x */ +- if (!is_merged_x_consistent(exact_match_perms, +- match->flag) && error) +- *error = 1;; +- exact_match_perms |= match->flag; +- exact_audit |= match->audit; +- } else if (dynamic_cast(match)) { +- deny |= match->flag; +- quiet |= match->audit; +- } else { +- if (!is_merged_x_consistent(perms, match->flag) && error) +- *error = 1; +- perms |= match->flag; +- audit |= match->audit; +- } +- } +- +-//if (audit || quiet) +-//fprintf(stderr, "perms: 0x%x, audit: 0x%x exact: 0x%x eaud: 0x%x deny: 0x%x quiet: 0x%x\n", perms, audit, exact_match_perms, exact_audit, deny, quiet); +- +- perms |= exact_match_perms & +- ~(AA_USER_EXEC_TYPE | AA_OTHER_EXEC_TYPE); +- +- if (exact_match_perms & AA_USER_EXEC_TYPE) { +- perms = (exact_match_perms & AA_USER_EXEC_TYPE) | +- (perms & ~AA_USER_EXEC_TYPE); +- audit = (exact_audit & AA_USER_EXEC_TYPE) | +- (audit & ~ AA_USER_EXEC_TYPE); +- } +- if (exact_match_perms & AA_OTHER_EXEC_TYPE) { +- perms = (exact_match_perms & AA_OTHER_EXEC_TYPE) | +- (perms & ~AA_OTHER_EXEC_TYPE); +- audit = (exact_audit & AA_OTHER_EXEC_TYPE) | +- (audit & ~AA_OTHER_EXEC_TYPE); +- } +- if (perms & AA_USER_EXEC & deny) +- perms &= ~AA_USER_EXEC_TYPE; +- +- if (perms & AA_OTHER_EXEC & deny) +- perms &= ~AA_OTHER_EXEC_TYPE; +- +- perms &= ~deny; +- +- if (audit_ctl) +- *audit_ctl = PACK_AUDIT_CTL(audit, quiet & deny); +- +-// if (perms & AA_ERROR_BIT) { +-// fprintf(stderr, "error bit 0x%x\n", perms); +-// exit(255); +-//} +- +- //if (perms & AA_EXEC_BITS) +- //fprintf(stderr, "accept perm: 0x%x\n", perms); +- /* +- if (perms & ~AA_VALID_PERMS) +- yyerror(_("Internal error accumulated invalid perm 0x%llx\n"), perms); +- */ +- +-//if (perms & AA_CHANGE_HAT) +-// fprintf(stderr, "change_hat 0x%x\n", perms); +- +- return perms; +-} +- +-extern "C" int aare_add_rule(aare_ruleset_t *rules, char *rule, int deny, +- uint32_t perms, uint32_t audit) +-{ +- return aare_add_rule_vec(rules, deny, perms, audit, 1, &rule); +-} +- +-#define FLAGS_WIDTH 2 +-#define MATCH_FLAGS_SIZE (sizeof(uint32_t) * 8 - 1) +-MatchFlag *match_flags[FLAGS_WIDTH][MATCH_FLAGS_SIZE]; +-DenyMatchFlag *deny_flags[FLAGS_WIDTH][MATCH_FLAGS_SIZE]; +-#define EXEC_MATCH_FLAGS_SIZE ((AA_EXEC_COUNT << 2) * 2) +-MatchFlag *exec_match_flags[FLAGS_WIDTH][EXEC_MATCH_FLAGS_SIZE]; /* mods + unsafe + ix *u::o*/ +-ExactMatchFlag *exact_match_flags[FLAGS_WIDTH][EXEC_MATCH_FLAGS_SIZE];/* mods + unsafe +ix *u::o*/ +- +-extern "C" void aare_reset_matchflags(void) +-{ +- uint32_t i, j; +-#define RESET_FLAGS(group, size) { \ +- for (i = 0; i < FLAGS_WIDTH; i++) { \ +- for (j = 0; j < size; j++) { \ +- if ((group)[i][j]) (group)[i][j]->release(); \ +- (group)[i][j] = NULL; \ +- } \ +- } \ +-} +- RESET_FLAGS(match_flags,MATCH_FLAGS_SIZE); +- RESET_FLAGS(deny_flags,MATCH_FLAGS_SIZE); +- RESET_FLAGS(exec_match_flags,EXEC_MATCH_FLAGS_SIZE); +- RESET_FLAGS(exact_match_flags,EXEC_MATCH_FLAGS_SIZE); +-#undef RESET_FLAGS +-} +- +-extern "C" int aare_add_rule_vec(aare_ruleset_t *rules, int deny, +- uint32_t perms, uint32_t audit, +- int count, char **rulev) +-{ +- Node *tree = NULL, *accept; +- int exact_match; +- +- assert(perms != 0); +- +- if (regexp_parse(&tree, rulev[0])) +- return 0; +- for (int i = 1; i < count; i++) { +- Node *subtree = NULL; +- Node *node = new CharNode(0); +- if (!node) +- return 0; +- tree = new CatNode(tree, node); +- if (regexp_parse(&subtree, rulev[i])) +- return 0; +- tree = new CatNode(tree, subtree); +- } +- +- /* +- * Check if we have an expression with or without wildcards. This +- * determines how exec modifiers are merged in accept_perms() based +- * on how we split permission bitmasks here. +- */ +- exact_match = 1; +- for (depth_first_traversal i(tree); i; i++) { +- if (dynamic_cast(*i) || +- dynamic_cast(*i) || +- dynamic_cast(*i) || +- dynamic_cast(*i) || +- dynamic_cast(*i)) +- exact_match = 0; +- } +- +- if (rules->reverse) +- flip_tree(tree); +- +- +-/* 0x3f == 4 bits x mods + 1 bit unsafe mask + 1 bit ix, after shift */ +-#define EXTRACT_X_INDEX(perm, shift) (((perm) >> (shift + 8)) & 0x3f) +- +-//if (perms & ALL_AA_EXEC_TYPE && (!perms & AA_EXEC_BITS)) +-// fprintf(stderr, "adding X rule without MAY_EXEC: 0x%x %s\n", perms, rulev[0]); +- +-//if (perms & ALL_EXEC_TYPE) +-// fprintf(stderr, "adding X rule %s 0x%x\n", rulev[0], perms); +- +-//if (audit) +-//fprintf(stderr, "adding rule with audit bits set: 0x%x %s\n", audit, rulev[0]); +- +-//if (perms & AA_CHANGE_HAT) +-// fprintf(stderr, "adding change_hat rule %s\n", rulev[0]); +- +-/* the permissions set is assumed to be non-empty if any audit +- * bits are specified */ +- accept = NULL; +- for (unsigned int n = 0; perms && n < (sizeof(perms) * 8) ; n++) { +- uint32_t mask = 1 << n; +- +- if (perms & mask) { +- int ai = audit & mask ? 1 : 0; +- perms &= ~mask; +- +- Node *flag; +- if (mask & ALL_AA_EXEC_TYPE) +- /* these cases are covered by EXEC_BITS */ +- continue; +- if (deny) { +- if (deny_flags[ai][n]) { +- flag = deny_flags[ai][n]->dup(); +- } else { +-//fprintf(stderr, "Adding deny ai %d mask 0x%x audit 0x%x\n", ai, mask, audit & mask); +- deny_flags[ai][n] = new DenyMatchFlag(mask, audit&mask); +- flag = deny_flags[ai][n]->dup(); +- } +- } else if (mask & AA_EXEC_BITS) { +- uint32_t eperm = 0; +- uint32_t index = 0; +- if (mask & AA_USER_EXEC) { +- eperm = mask | (perms & AA_USER_EXEC_TYPE); +- index = EXTRACT_X_INDEX(eperm, AA_USER_SHIFT); +- } else { +- eperm = mask | (perms & AA_OTHER_EXEC_TYPE); +- index = EXTRACT_X_INDEX(eperm, AA_OTHER_SHIFT) + (AA_EXEC_COUNT << 2); +- } +-//fprintf(stderr, "index %d eperm 0x%x\n", index, eperm); +- if (exact_match) { +- if (exact_match_flags[ai][index]) { +- flag = exact_match_flags[ai][index]->dup(); +- } else { +- exact_match_flags[ai][index] = new ExactMatchFlag(eperm, audit&mask); +- flag = exact_match_flags[ai][index]->dup(); +- } +- } else { +- if (exec_match_flags[ai][index]) { +- flag = exec_match_flags[ai][index]->dup(); +- } else { +- exec_match_flags[ai][index] = new MatchFlag(eperm, audit&mask); +- flag = exec_match_flags[ai][index]->dup(); +- } +- } +- } else { +- if (match_flags[ai][n]) { +- flag = match_flags[ai][n]->dup(); +- } else { +- match_flags[ai][n] = new MatchFlag(mask, audit&mask); +- flag = match_flags[ai][n]->dup(); +- } +- } +- if (accept) +- accept = new AltNode(accept, flag); +- else +- accept = flag; +- } +- } +- +- if (rules->root) +- rules->root = new AltNode(rules->root, new CatNode(tree, accept)); +- else +- rules->root = new CatNode(tree, accept); +- +- return 1; +- +-} +- +-/* create a dfa from the ruleset +- * returns: buffer contain dfa tables, @size set to the size of the tables +- * else NULL on failure +- */ +-extern "C" void *aare_create_dfa(aare_ruleset_t *rules, size_t *size, dfaflags_t flags) +-{ +- char *buffer = NULL; +- +- label_nodes(rules->root); +- if (flags & DFA_DUMP_TREE) { +- cerr << "\nDFA: Expression Tree\n"; +- rules->root->dump(cerr); +- cerr << "\n\n"; +- } +- +- if (!(flags & DFA_CONTROL_NO_TREE_SIMPLE)) { +- rules->root = simplify_tree(rules->root, flags); +- +- if (flags & DFA_DUMP_SIMPLE_TREE) { +- cerr << "\nDFA: Simplified Expression Tree\n"; +- rules->root->dump(cerr); +- cerr << "\n\n"; +- } +- } +- +- DFA dfa(rules->root, flags); +- +- if (flags & DFA_DUMP_STATES) +- dfa.dump(cerr); +- +- if (flags & DFA_DUMP_GRAPH) +- dfa.dump_dot_graph(cerr); +- +- map eq; +- if (flags & DFA_CONTROL_EQUIV) { +- eq = dfa.equivalence_classes(flags); +- dfa.apply_equivalence_classes(eq); +- +- if (flags & DFA_DUMP_EQUIV) { +- cerr << "\nDFA equivalence class\n"; +- dump_equivalence_classes(cerr, eq); +- } +- } else if (flags & DFA_DUMP_EQUIV) +- cerr << "\nDFA did not generate an equivalence class\n"; +- +- if (dfa.verify_perms()) { +- *size = 0; +- return NULL; +- } +- +- stringstream stream; +- TransitionTable transition_table(dfa, eq, flags); +- if (flags & DFA_DUMP_TRANS_TABLE) +- transition_table.dump(cerr); +- transition_table.flex_table(stream, ""); +- +- stringbuf *buf = stream.rdbuf(); +- +- buf->pubseekpos(0); +- *size = buf->in_avail(); +- +- buffer = (char *)malloc(*size); +- if (!buffer) +- return NULL; +- buf->sgetn(buffer, *size); +- return buffer; +-} +--- /dev/null ++++ b/parser/libapparmor_re/regexp.yy +@@ -0,0 +1,2800 @@ ++/* ++ * regexp.y -- Regular Expression Matcher Generator ++ * (C) 2006, 2007 Andreas Gruenbacher ++ * ++ * Implementation based on the Lexical Analysis chapter of: ++ * Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: ++ * Compilers: Principles, Techniques, and Tools (The "Dragon Book"), ++ * Addison-Wesley, 1986. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * See http://www.gnu.org for more details. ++ */ ++ ++%{ ++ /* #define DEBUG_TREE */ ++ ++ #include ++ #include ++ #include ++ #include ++ #include ++ #include ++ #include ++ ++ using namespace std; ++ ++ typedef unsigned char uchar; ++ typedef set Chars; ++ ++ ostream& operator<<(ostream& os, uchar c); ++ ++ /* Compute the union of two sets. */ ++ template ++ set operator+(const set& a, const set& b) ++ { ++ set c(a); ++ c.insert(b.begin(), b.end()); ++ return c; ++ } ++ ++ /** ++ * A DFA state is a set of important nodes in the syntax tree. This ++ * includes AcceptNodes, which indicate that when a match ends in a ++ * particular state, the regular expressions that the AcceptNode ++ * belongs to match. ++ */ ++ class ImportantNode; ++ typedef set State; ++ ++ /** ++ * Out-edges from a state to another: we store the follow-state ++ * for each input character that is not a default match in ++ * cases (i.e., following a CharNode or CharSetNode), and default ++ * matches in otherwise as well as in all matching explicit cases ++ * (i.e., following an AnyCharNode or NotCharSetNode). This avoids ++ * enumerating all the explicit tranitions for default matches. ++ */ ++ typedef struct Cases { ++ typedef map::iterator iterator; ++ iterator begin() { return cases.begin(); } ++ iterator end() { return cases.end(); } ++ ++ Cases() : otherwise(0) { } ++ map cases; ++ State *otherwise; ++ } Cases; ++ ++ ++ /* An abstract node in the syntax tree. */ ++ class Node { ++ public: ++ Node() : ++ nullable(false), refcount(1) { child[0] = child[1] = 0; } ++ Node(Node *left) : ++ nullable(false), refcount(1) { child[0] = left; child[1] = 0; } ++ Node(Node *left, Node *right) : ++ nullable(false), refcount(1) { child[0] = left; child[1] = right; } ++ virtual ~Node() ++ { ++ if (child[0]) ++ child[0]->release(); ++ if (child[1]) ++ child[1]->release(); ++ } ++ ++ /** ++ * See the "Dragon Book" for an explanation of nullable, firstpos, ++ * lastpos, and followpos. ++ */ ++ virtual void compute_nullable() { } ++ virtual void compute_firstpos() = 0; ++ virtual void compute_lastpos() = 0; ++ virtual void compute_followpos() { } ++ virtual int eq(Node *other) = 0; ++ virtual ostream& dump(ostream& os) = 0; ++ ++ bool nullable; ++ State firstpos, lastpos, followpos; ++ /* child 0 is left, child 1 is right */ ++ Node *child[2]; ++ ++ unsigned int label; /* unique number for debug etc */ ++ /** ++ * We need reference counting for AcceptNodes: sharing AcceptNodes ++ * avoids introducing duplicate States with identical accept values. ++ */ ++ unsigned int refcount; ++ Node *dup(void) ++ { ++ refcount++; ++ return this; ++ } ++ void release(void) { ++ if (--refcount == 0) { ++ delete this; ++ } ++ } ++ }; ++ ++ /* Match nothing (//). */ ++ class EpsNode : public Node { ++ public: ++ EpsNode() ++ { ++ nullable = true; ++ } ++ void compute_firstpos() ++ { ++ } ++ void compute_lastpos() ++ { ++ } ++ int eq(Node *other) { ++ if (dynamic_cast(other)) ++ return 1; ++ return 0; ++ } ++ ostream& dump(ostream& os) ++ { ++ return os << "[]"; ++ } ++ }; ++ ++ /** ++ * Leaf nodes in the syntax tree are important to us: they describe the ++ * characters that the regular expression matches. We also consider ++ * AcceptNodes import: they indicate when a regular expression matches. ++ */ ++ class ImportantNode : public Node { ++ public: ++ ImportantNode() { } ++ void compute_firstpos() ++ { ++ firstpos.insert(this); ++ } ++ void compute_lastpos() { ++ lastpos.insert(this); ++ } ++ virtual void follow(Cases& cases) = 0; ++ }; ++ ++ /* Match one specific character (/c/). */ ++ class CharNode : public ImportantNode { ++ public: ++ CharNode(uchar c) : c(c) { } ++ void follow(Cases& cases) ++ { ++ State **x = &cases.cases[c]; ++ if (!*x) { ++ if (cases.otherwise) ++ *x = new State(*cases.otherwise); ++ else ++ *x = new State; ++ } ++ (*x)->insert(followpos.begin(), followpos.end()); ++ } ++ int eq(Node *other) { ++ CharNode *o = dynamic_cast(other); ++ if (o) { ++ return c == o->c; ++ } ++ return 0; ++ } ++ ostream& dump(ostream& os) ++ { ++ return os << c; ++ } ++ ++ uchar c; ++ }; ++ ++ /* Match a set of characters (/[abc]/). */ ++ class CharSetNode : public ImportantNode { ++ public: ++ CharSetNode(Chars& chars) : chars(chars) { } ++ void follow(Cases& cases) ++ { ++ for (Chars::iterator i = chars.begin(); i != chars.end(); i++) { ++ State **x = &cases.cases[*i]; ++ if (!*x) { ++ if (cases.otherwise) ++ *x = new State(*cases.otherwise); ++ else ++ *x = new State; ++ } ++ (*x)->insert(followpos.begin(), followpos.end()); ++ } ++ } ++ int eq(Node *other) { ++ CharSetNode *o = dynamic_cast(other); ++ if (!o || chars.size() != o->chars.size()) ++ return 0; ++ ++ for (Chars::iterator i = chars.begin(), j = o->chars.begin(); ++ i != chars.end() && j != o->chars.end(); ++ i++, j++) { ++ if (*i != *j) ++ return 0; ++ } ++ return 1; ++ } ++ ostream& dump(ostream& os) ++ { ++ os << '['; ++ for (Chars::iterator i = chars.begin(); i != chars.end(); i++) ++ os << *i; ++ return os << ']'; ++ } ++ ++ Chars chars; ++ }; ++ ++ /* Match all except one character (/[^abc]/). */ ++ class NotCharSetNode : public ImportantNode { ++ public: ++ NotCharSetNode(Chars& chars) : chars(chars) { } ++ void follow(Cases& cases) ++ { ++ if (!cases.otherwise) ++ cases.otherwise = new State; ++ for (Chars::iterator j = chars.begin(); j != chars.end(); j++) { ++ State **x = &cases.cases[*j]; ++ if (!*x) ++ *x = new State(*cases.otherwise); ++ } ++ /** ++ * Note: Add to the nonmatching characters after copying away the ++ * old otherwise state for the matching characters. ++ */ ++ cases.otherwise->insert(followpos.begin(), followpos.end()); ++ for (Cases::iterator i = cases.begin(); i != cases.end(); i++) { ++ if (chars.find(i->first) == chars.end()) ++ i->second->insert(followpos.begin(), followpos.end()); ++ } ++ } ++ int eq(Node *other) { ++ NotCharSetNode *o = dynamic_cast(other); ++ if (!o || chars.size() != o->chars.size()) ++ return 0; ++ ++ for (Chars::iterator i = chars.begin(), j = o->chars.begin(); ++ i != chars.end() && j != o->chars.end(); ++ i++, j++) { ++ if (*i != *j) ++ return 0; ++ } ++ return 1; ++ } ++ ostream& dump(ostream& os) ++ { ++ os << "[^"; ++ for (Chars::iterator i = chars.begin(); i != chars.end(); i++) ++ os << *i; ++ return os << ']'; ++ } ++ ++ Chars chars; ++ }; ++ ++ /* Match any character (/./). */ ++ class AnyCharNode : public ImportantNode { ++ public: ++ AnyCharNode() { } ++ void follow(Cases& cases) ++ { ++ if (!cases.otherwise) ++ cases.otherwise = new State; ++ cases.otherwise->insert(followpos.begin(), followpos.end()); ++ for (Cases::iterator i = cases.begin(); i != cases.end(); i++) ++ i->second->insert(followpos.begin(), followpos.end()); ++ } ++ int eq(Node *other) { ++ if (dynamic_cast(other)) ++ return 1; ++ return 0; ++ } ++ ostream& dump(ostream& os) { ++ return os << "."; ++ } ++ }; ++ ++ /** ++ * Indicate that a regular expression matches. An AcceptNode itself ++ * doesn't match anything, so it will never generate any transitions. ++ */ ++ class AcceptNode : public ImportantNode { ++ public: ++ AcceptNode() {} ++ void follow(Cases& cases) ++ { ++ /* Nothing to follow. */ ++ } ++ /* requires accept nodes to be common by pointer */ ++ int eq(Node *other) { ++ if (dynamic_cast(other)) ++ return (this == other); ++ return 0; ++ } ++ }; ++ ++ /* Match a pair of consecutive nodes. */ ++ class CatNode : public Node { ++ public: ++ CatNode(Node *left, Node *right) : ++ Node(left, right) { } ++ void compute_nullable() ++ { ++ nullable = child[0]->nullable && child[1]->nullable; ++ } ++ void compute_firstpos() ++ { ++ if (child[0]->nullable) ++ firstpos = child[0]->firstpos + child[1]->firstpos; ++ else ++ firstpos = child[0]->firstpos; ++ } ++ void compute_lastpos() ++ { ++ if (child[1]->nullable) ++ lastpos = child[0]->lastpos + child[1]->lastpos; ++ else ++ lastpos = child[1]->lastpos; ++ } ++ void compute_followpos() ++ { ++ State from = child[0]->lastpos, to = child[1]->firstpos; ++ for(State::iterator i = from.begin(); i != from.end(); i++) { ++ (*i)->followpos.insert(to.begin(), to.end()); ++ } ++ } ++ int eq(Node *other) { ++ if (dynamic_cast(other)) { ++ if (!child[0]->eq(other->child[0])) ++ return 0; ++ return child[1]->eq(other->child[1]); ++ } ++ return 0; ++ } ++ ostream& dump(ostream& os) ++ { ++ child[0]->dump(os); ++ child[1]->dump(os); ++ return os; ++ //return os << ' '; ++ } ++ }; ++ ++ /* Match a node zero or more times. (This is a unary operator.) */ ++ class StarNode : public Node { ++ public: ++ StarNode(Node *left) : ++ Node(left) ++ { ++ nullable = true; ++ } ++ void compute_firstpos() ++ { ++ firstpos = child[0]->firstpos; ++ } ++ void compute_lastpos() ++ { ++ lastpos = child[0]->lastpos; ++ } ++ void compute_followpos() ++ { ++ State from = child[0]->lastpos, to = child[0]->firstpos; ++ for(State::iterator i = from.begin(); i != from.end(); i++) { ++ (*i)->followpos.insert(to.begin(), to.end()); ++ } ++ } ++ int eq(Node *other) { ++ if (dynamic_cast(other)) ++ return child[0]->eq(other->child[0]); ++ return 0; ++ } ++ ostream& dump(ostream& os) ++ { ++ os << '('; ++ child[0]->dump(os); ++ return os << ")*"; ++ } ++ }; ++ ++ /* Match a node one or more times. (This is a unary operator.) */ ++ class PlusNode : public Node { ++ public: ++ PlusNode(Node *left) : ++ Node(left) { } ++ void compute_nullable() ++ { ++ nullable = child[0]->nullable; ++ } ++ void compute_firstpos() ++ { ++ firstpos = child[0]->firstpos; ++ } ++ void compute_lastpos() ++ { ++ lastpos = child[0]->lastpos; ++ } ++ void compute_followpos() ++ { ++ State from = child[0]->lastpos, to = child[0]->firstpos; ++ for(State::iterator i = from.begin(); i != from.end(); i++) { ++ (*i)->followpos.insert(to.begin(), to.end()); ++ } ++ } ++ int eq(Node *other) { ++ if (dynamic_cast(other)) ++ return child[0]->eq(other->child[0]); ++ return 0; ++ } ++ ostream& dump(ostream& os) ++ { ++ os << '('; ++ child[0]->dump(os); ++ return os << ")+"; ++ } ++ }; ++ ++ /* Match one of two alternative nodes. */ ++ class AltNode : public Node { ++ public: ++ AltNode(Node *left, Node *right) : ++ Node(left, right) { } ++ void compute_nullable() ++ { ++ nullable = child[0]->nullable || child[1]->nullable; ++ } ++ void compute_lastpos() ++ { ++ lastpos = child[0]->lastpos + child[1]->lastpos; ++ } ++ void compute_firstpos() ++ { ++ firstpos = child[0]->firstpos + child[1]->firstpos; ++ } ++ int eq(Node *other) { ++ if (dynamic_cast(other)) { ++ if (!child[0]->eq(other->child[0])) ++ return 0; ++ return child[1]->eq(other->child[1]); ++ } ++ return 0; ++ } ++ ostream& dump(ostream& os) ++ { ++ os << '('; ++ child[0]->dump(os); ++ os << '|'; ++ child[1]->dump(os); ++ os << ')'; ++ return os; ++// return os << '|'; ++ } ++ }; ++ ++/* ++ * Normalize the regex parse tree for factoring and cancelations ++ * left normalization (dir == 0) uses these rules ++ * (E | a) -> (a | E) ++ * (a | b) | c -> a | (b | c) ++ * (ab)c -> a(bc) ++ * ++ * right normalization (dir == 1) uses the same rules but reversed ++ * (a | E) -> (E | a) ++ * a | (b | c) -> (a | b) | c ++ * a(bc) -> (ab)c ++ */ ++void normalize_tree(Node *t, int dir) ++{ ++ if (dynamic_cast(t)) ++ return; ++ ++ for (;;) { ++ if (!dynamic_cast(t->child[!dir]) && ++ ((dynamic_cast(t) && ++ dynamic_cast(t->child[dir])) || ++ (dynamic_cast(t) && ++ dynamic_cast(t->child[dir])))) { ++ // (E | a) -> (a | E) ++ // Ea -> aE ++ Node *c = t->child[dir]; ++ t->child[dir] = t->child[!dir]; ++ t->child[!dir] = c; ++ } else if ((dynamic_cast(t) && ++ dynamic_cast(t->child[dir])) || ++ (dynamic_cast(t) && ++ dynamic_cast(t->child[dir]))) { ++ // (a | b) | c -> a | (b | c) ++ // (ab)c -> a(bc) ++ Node *c = t->child[dir]; ++ t->child[dir] = c->child[dir]; ++ c->child[dir] = c->child[!dir]; ++ c->child[!dir] = t->child[!dir]; ++ t->child[!dir] = c; ++ } else if (dynamic_cast(t) && ++ dynamic_cast(t->child[dir]) && ++ dynamic_cast(t->child[!dir])) { ++ Node *c = t->child[dir]; ++ t->child[dir] = t->child[!dir]; ++ t->child[!dir] = c; ++ } else { ++ break; ++ } ++ } ++ if (t->child[dir]) ++ normalize_tree(t->child[dir], dir); ++ if (t->child[!dir]) ++ normalize_tree(t->child[!dir], dir); ++} ++ ++//charset conversion is disabled for now, ++//it hinders tree optimization in some cases, so it need to be either ++//done post optimization, or have extra factoring rules added ++#if 0 ++static Node *merge_charset(Node *a, Node *b) ++{ ++ if (dynamic_cast(a) && ++ dynamic_cast(b)) { ++ Chars chars; ++ chars.insert(dynamic_cast(a)->c); ++ chars.insert(dynamic_cast(b)->c); ++ CharSetNode *n = new CharSetNode(chars); ++ return n; ++ } else if (dynamic_cast(a) && ++ dynamic_cast(b)) { ++ Chars *chars = &dynamic_cast(b)->chars; ++ chars->insert(dynamic_cast(a)->c); ++ return b->dup(); ++ } else if (dynamic_cast(a) && ++ dynamic_cast(b)) { ++ Chars *from = &dynamic_cast(a)->chars; ++ Chars *to = &dynamic_cast(b)->chars; ++ for (Chars::iterator i = from->begin(); i != from->end(); i++) ++ to->insert(*i); ++ return b->dup(); ++ } ++ ++ //return ???; ++} ++ ++static Node *alt_to_charsets(Node *t, int dir) ++{ ++/* ++ Node *first = NULL; ++ Node *p = t; ++ Node *i = t; ++ for (;dynamic_cast(i);) { ++ if (dynamic_cast(i->child[dir]) || ++ dynamic_cast(i->child[dir])) { ++ if (!first) { ++ first = i; ++ p = i; ++ i = i->child[!dir]; ++ } else { ++ first->child[dir] = merge_charset(first->child[dir], ++ i->child[dir]); ++ p->child[!dir] = i->child[!dir]->dup(); ++ Node *tmp = i; ++ i = i->child[!dir]; ++ tmp->release(); ++ } ++ } else { ++ p = i; ++ i = i->child[!dir]; ++ } ++ } ++ // last altnode of chain check other dir as well ++ if (first && (dynamic_cast(i) || ++ dynamic_cast(i))) { ++ ++ } ++*/ ++ ++/* ++ if (dynamic_cast(t->child[dir]) || ++ dynamic_cast(t->child[dir])) ++ char_test = true; ++ (char_test && ++ (dynamic_cast(i->child[dir]) || ++ dynamic_cast(i->child[dir])))) { ++*/ ++ return t; ++} ++#endif ++ ++static Node *basic_alt_factor(Node *t, int dir) ++{ ++ if (!dynamic_cast(t)) ++ return t; ++ ++ if (t->child[dir]->eq(t->child[!dir])) { ++ // (a | a) -> a ++ Node *tmp = t->child[dir]->dup(); ++ t->release(); ++ return tmp; ++ } ++ ++ // (ab) | (ac) -> a(b|c) ++ if (dynamic_cast(t->child[dir]) && ++ dynamic_cast(t->child[!dir]) && ++ t->child[dir]->child[dir]->eq(t->child[!dir]->child[dir])) { ++ // (ab) | (ac) -> a(b|c) ++ Node *left = t->child[dir]; ++ Node *right = t->child[!dir]; ++ t->child[dir] = left->child[!dir]; ++ t->child[!dir] = right->child[!dir]->dup(); ++ left->child[!dir] = t; ++ right->release(); ++ return left; ++ } ++ ++ // a | (ab) -> a (E | b) -> a (b | E) ++ if (dynamic_cast(t->child[!dir]) && ++ t->child[dir]->eq(t->child[!dir]->child[dir])) { ++ Node *c = t->child[!dir]; ++ t->child[dir]->release(); ++ t->child[dir] = c->child[!dir]; ++ t->child[!dir] = new EpsNode(); ++ c->child[!dir] = t; ++ return c; ++ } ++ ++ // ab | (a) -> a (b | E) ++ if (dynamic_cast(t->child[dir]) && ++ t->child[dir]->child[dir]->eq(t->child[!dir])) { ++ Node *c = t->child[dir]; ++ t->child[!dir]->release(); ++ t->child[dir] = c->child[!dir]; ++ t->child[!dir] = new EpsNode(); ++ c->child[!dir] = t; ++ return c; ++ } ++ ++ return t; ++} ++ ++static Node *basic_simplify(Node *t, int dir) ++{ ++ if (dynamic_cast(t) && ++ dynamic_cast(t->child[!dir])) { ++ // aE -> a ++ Node *tmp = t->child[dir]->dup(); ++ t->release(); ++ return tmp; ++ } ++ ++ return basic_alt_factor(t, dir); ++} ++ ++/* ++ * assumes a normalized tree. reductions shown for left normalization ++ * aE -> a ++ * (a | a) -> a ++ ** factoring patterns ++ * a | (a | b) -> (a | b) ++ * a | (ab) -> a (E | b) -> a (b | E) ++ * (ab) | (ac) -> a(b|c) ++ * ++ * returns t - if no simplifications were made ++ * a new root node - if simplifications were made ++ */ ++Node *simplify_tree_base(Node *t, int dir, bool &mod) ++{ ++ if (dynamic_cast(t)) ++ return t; ++ ++ for (int i=0; i < 2; i++) { ++ if (t->child[i]) { ++ Node *c = simplify_tree_base(t->child[i], dir, mod); ++ if (c != t->child[i]) { ++ t->child[i] = c; ++ mod = true; ++ } ++ } ++ } ++ ++ // only iterate on loop if modification made ++ for (;; mod = true) { ++ ++ Node *tmp = basic_simplify(t, dir); ++ if (tmp != t) { ++ t = tmp; ++ continue; ++ } ++ ++ ++ /* all tests after this must meet 2 alt node condition */ ++ if (!dynamic_cast(t) || ++ !dynamic_cast(t->child[!dir])) ++ break; ++ ++ // a | (a | b) -> (a | b) ++ // a | (b | (c | a)) -> (b | (c | a)) ++ Node *p = t; ++ Node *i = t->child[!dir]; ++ for (;dynamic_cast(i); p = i, i = i->child[!dir]) { ++ if (t->child[dir]->eq(i->child[dir])) { ++ t->child[!dir]->dup(); ++ t->release(); ++ t = t->child[!dir]; ++ continue; ++ } ++ } ++ // last altnode of chain check other dir as well ++ if (t->child[dir]->eq(p->child[!dir])) { ++ t->child[!dir]->dup(); ++ t->release(); ++ t = t->child[!dir]; ++ continue; ++ } ++ ++ //exact match didn't work, try factoring front ++ //a | (ac | (ad | () -> (a (E | c)) | (...) ++ //ab | (ac | (...)) -> (a (b | c)) | (...) ++ //ab | (a | (...)) -> (a (b | E)) | (...) ++ Node *pp; ++ int count = 0; ++ Node *subject = t->child[dir]; ++ Node *a = subject; ++ if (dynamic_cast(a)) ++ a = a->child[dir]; ++ a->dup(); ++ ++ for (pp = p = t, i = t->child[!dir]; ++ dynamic_cast(i); ) { ++ if ((dynamic_cast(i->child[dir]) && ++ a->eq(i->child[dir]->child[dir])) || ++ (a->eq(i->child[dir]))) { ++ // extract matching alt node ++ p->child[!dir] = i->child[!dir]; ++ i->child[!dir] = subject; ++ subject = basic_simplify(i, dir); ++ ++ i = p->child[!dir]; ++ count++; ++ } else { ++ pp = p; p = i; i = i->child[!dir]; ++ } ++ } ++ ++ // last altnode in chain check other dir as well ++ if ((dynamic_cast(i) && ++ a->eq(i->child[dir])) || ++ (a->eq(i))) { ++ count++; ++ if (t == p) { ++ t->child[dir] = subject; ++ t = basic_simplify(t, dir); ++ } else { ++ t->child[dir] = p->child[dir]; ++ p->child[dir] = subject; ++ pp->child[!dir] = basic_simplify(p, dir); ++ } ++ } else { ++ t->child[dir] = i; ++ p->child[!dir] = subject; ++ } ++ a->release(); ++ ++ if (count == 0) ++ break; ++ } ++ return t; ++} ++ ++int debug_tree(Node *t) ++{ ++ int nodes = 1; ++ ++ if (t->refcount > 1 && !dynamic_cast(t)) { ++ fprintf(stderr, "Node %p has a refcount of %d\n", t, t->refcount); ++ } ++ ++ if (!dynamic_cast(t)) { ++ if (t->child[0]) ++ nodes += debug_tree(t->child[0]); ++ if (t->child[1]) ++ nodes += debug_tree(t->child[1]); ++ } ++ return nodes; ++} ++ ++struct node_counts { ++ int charnode; ++ int charset; ++ int notcharset; ++ int alt; ++ int plus; ++ int star; ++ int any; ++ int cat; ++}; ++ ++ ++static void count_tree_nodes(Node *t, struct node_counts *counts) ++{ ++ if (dynamic_cast(t)) { ++ counts->alt++; ++ count_tree_nodes(t->child[0], counts); ++ count_tree_nodes(t->child[1], counts); ++ } else if (dynamic_cast(t)) { ++ counts->cat++; ++ count_tree_nodes(t->child[0], counts); ++ count_tree_nodes(t->child[1], counts); ++ } else if (dynamic_cast(t)) { ++ counts->plus++; ++ count_tree_nodes(t->child[0], counts); ++ } else if (dynamic_cast(t)) { ++ counts->star++; ++ count_tree_nodes(t->child[0], counts); ++ } else if (dynamic_cast(t)) { ++ counts->charnode++; ++ } else if (dynamic_cast(t)) { ++ counts->any++; ++ } else if (dynamic_cast(t)) { ++ counts->charset++; ++ } else if (dynamic_cast(t)) { ++ counts->notcharset++; ++ } ++} ++ ++#include "stdio.h" ++#include "stdint.h" ++#include "apparmor_re.h" ++ ++Node *simplify_tree(Node *t, dfaflags_t flags) ++{ ++ bool update; ++ ++ if (flags & DFA_DUMP_TREE_STATS) { ++ struct node_counts counts = { }; ++ count_tree_nodes(t, &counts); ++ fprintf(stderr, "expr tree: c %d, [] %d, [^] %d, | %d, + %d, * %d, . %d, cat %d\n", counts.charnode, counts.charset, counts.notcharset, counts.alt, counts.plus, counts.star, counts.any, counts.cat); ++ } ++ do { ++ update = false; ++ //default to right normalize first as this reduces the number ++ //of trailing nodes which might follow an internal * ++ //or **, which is where state explosion can happen ++ //eg. in one test this makes the difference between ++ // the dfa having about 7 thousands states, ++ // and it having about 1.25 million states ++ int dir = 1; ++ if (flags & DFA_CONTROL_TREE_LEFT) ++ dir = 0; ++ for (int count = 0; count < 2; count++) { ++ bool modified; ++ do { ++ modified = false; ++ if (!(flags & DFA_CONTROL_NO_TREE_NORMAL)) ++ normalize_tree(t, dir); ++ t = simplify_tree_base(t, dir, modified); ++ if (modified) ++ update = true; ++ } while (modified); ++ if (flags & DFA_CONTROL_TREE_LEFT) ++ dir++; ++ else ++ dir--; ++ } ++ } while(update); ++ if (flags & DFA_DUMP_TREE_STATS) { ++ struct node_counts counts = { }; ++ count_tree_nodes(t, &counts); ++ fprintf(stderr, "simplified expr tree: c %d, [] %d, [^] %d, | %d, + %d, * %d, . %d, cat %d\n", counts.charnode, counts.charset, counts.notcharset, counts.alt, counts.plus, counts.star, counts.any, counts.cat); ++ } ++ return t; ++} ++ ++ ++%} ++ ++%union { ++ char c; ++ Node *node; ++ Chars *cset; ++} ++ ++%{ ++ void regexp_error(Node **, const char *, const char *); ++# define YYLEX_PARAM &text ++ int regexp_lex(YYSTYPE *, const char **); ++ ++ static inline Chars* ++ insert_char(Chars* cset, uchar a) ++ { ++ cset->insert(a); ++ return cset; ++ } ++ ++ static inline Chars* ++ insert_char_range(Chars* cset, uchar a, uchar b) ++ { ++ if (a > b) ++ swap(a, b); ++ for (uchar i = a; i <= b; i++) ++ cset->insert(i); ++ return cset; ++ } ++%} ++ ++%pure-parser ++/* %error-verbose */ ++%parse-param {Node **root} ++%parse-param {const char *text} ++%name-prefix = "regexp_" ++ ++%token CHAR ++%type regex_char cset_char1 cset_char cset_charN ++%type charset cset_chars ++%type regexp expr terms0 terms qterm term ++ ++/** ++ * Note: destroy all nodes upon failure, but *not* the start symbol once ++ * parsing succeeds! ++ */ ++%destructor { $$->release(); } expr terms0 terms qterm term ++ ++%% ++ ++/* FIXME: Does not parse "[--]", "[---]", "[^^-x]". I don't actually know ++ which precise grammer Perl regexps use, and rediscovering that ++ is proving to be painful. */ ++ ++regexp : /* empty */ { *root = $$ = new EpsNode; } ++ | expr { *root = $$ = $1; } ++ ; ++ ++expr : terms ++ | expr '|' terms0 { $$ = new AltNode($1, $3); } ++ | '|' terms0 { $$ = new AltNode(new EpsNode, $2); } ++ ; ++ ++terms0 : /* empty */ { $$ = new EpsNode; } ++ | terms ++ ; ++ ++terms : qterm ++ | terms qterm { $$ = new CatNode($1, $2); } ++ ; ++ ++qterm : term ++ | term '*' { $$ = new StarNode($1); } ++ | term '+' { $$ = new PlusNode($1); } ++ ; ++ ++term : '.' { $$ = new AnyCharNode; } ++ | regex_char { $$ = new CharNode($1); } ++ | '[' charset ']' { $$ = new CharSetNode(*$2); ++ delete $2; } ++ | '[' '^' charset ']' ++ { $$ = new NotCharSetNode(*$3); ++ delete $3; } ++ | '[' '^' '^' cset_chars ']' ++ { $4->insert('^'); ++ $$ = new NotCharSetNode(*$4); ++ delete $4; } ++ | '(' regexp ')' { $$ = $2; } ++ ; ++ ++regex_char : CHAR ++ | '^' { $$ = '^'; } ++ | '-' { $$ = '-'; } ++ | ']' { $$ = ']'; } ++ ; ++ ++charset : cset_char1 cset_chars ++ { $$ = insert_char($2, $1); } ++ | cset_char1 '-' cset_charN cset_chars ++ { $$ = insert_char_range($4, $1, $3); } ++ ; ++ ++cset_chars : /* nothing */ { $$ = new Chars; } ++ | cset_chars cset_charN ++ { $$ = insert_char($1, $2); } ++ | cset_chars cset_charN '-' cset_charN ++ { $$ = insert_char_range($1, $2, $4); } ++ ; ++ ++cset_char1 : cset_char ++ | ']' { $$ = ']'; } ++ | '-' { $$ = '-'; } ++ ; ++ ++cset_charN : cset_char ++ | '^' { $$ = '^'; } ++ ; ++ ++cset_char : CHAR ++ | '[' { $$ = '['; } ++ | '*' { $$ = '*'; } ++ | '+' { $$ = '+'; } ++ | '.' { $$ = '.'; } ++ | '|' { $$ = '|'; } ++ | '(' { $$ = '('; } ++ | ')' { $$ = ')'; } ++ ; ++ ++%% ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "../immunix.h" ++ ++/* Traverse the syntax tree depth-first in an iterator-like manner. */ ++class depth_first_traversal { ++ vector stack; ++ vector visited; ++public: ++ depth_first_traversal(Node *node) { ++ stack.push_back(node); ++ while (node->child[0]) { ++ visited.push_back(false); ++ stack.push_back(node->child[0]); ++ node = node->child[0]; ++ } ++ } ++ Node *operator*() ++ { ++ return stack.back(); ++ } ++ Node* operator->() ++ { ++ return stack.back(); ++ } ++ operator bool() ++ { ++ return !stack.empty(); ++ } ++ void operator++(int) ++ { ++ stack.pop_back(); ++ if (!stack.empty()) { ++ if (!visited.back() && stack.back()->child[1]) { ++ visited.pop_back(); ++ visited.push_back(true); ++ stack.push_back(stack.back()->child[1]); ++ while (stack.back()->child[0]) { ++ visited.push_back(false); ++ stack.push_back(stack.back()->child[0]); ++ } ++ } else ++ visited.pop_back(); ++ } ++ } ++}; ++ ++ostream& operator<<(ostream& os, Node& node) ++{ ++ node.dump(os); ++ return os; ++} ++ ++ostream& operator<<(ostream& os, uchar c) ++{ ++ const char *search = "\a\033\f\n\r\t|*+[](). ", ++ *replace = "aefnrt|*+[](). ", *s; ++ ++ if ((s = strchr(search, c)) && *s != '\0') ++ os << '\\' << replace[s - search]; ++ else if (c < 32 || c >= 127) ++ os << '\\' << '0' << char('0' + (c >> 6)) ++ << char('0' + ((c >> 3) & 7)) << char('0' + (c & 7)); ++ else ++ os << (char)c; ++ return os; ++} ++ ++int ++octdigit(char c) ++{ ++ if (c >= '0' && c <= '7') ++ return c - '0'; ++ return -1; ++} ++ ++int ++hexdigit(char c) ++{ ++ if (c >= '0' && c <= '9') ++ return c - '0'; ++ else if (c >= 'A' && c <= 'F') ++ return 10 + c - 'A'; ++ else if (c >= 'a' && c <= 'f') ++ return 10 + c - 'A'; ++ else ++ return -1; ++} ++ ++int ++regexp_lex(YYSTYPE *val, const char **pos) ++{ ++ int c; ++ ++ val->c = **pos; ++ switch(*(*pos)++) { ++ case '\0': ++ (*pos)--; ++ return 0; ++ ++ case '*': case '+': case '.': case '|': case '^': case '-': ++ case '[': case ']': case '(' : case ')': ++ return *(*pos - 1); ++ ++ case '\\': ++ val->c = **pos; ++ switch(*(*pos)++) { ++ case '\0': ++ (*pos)--; ++ /* fall through */ ++ case '\\': ++ val->c = '\\'; ++ break; ++ ++ case '0': ++ val->c = 0; ++ if ((c = octdigit(**pos)) >= 0) { ++ val->c = c; ++ (*pos)++; ++ } ++ if ((c = octdigit(**pos)) >= 0) { ++ val->c = (val->c << 3) + c; ++ (*pos)++; ++ } ++ if ((c = octdigit(**pos)) >= 0) { ++ val->c = (val->c << 3) + c; ++ (*pos)++; ++ } ++ break; ++ ++ case 'x': ++ val->c = 0; ++ if ((c = hexdigit(**pos)) >= 0) { ++ val->c = c; ++ (*pos)++; ++ } ++ if ((c = hexdigit(**pos)) >= 0) { ++ val->c = (val->c << 4) + c; ++ (*pos)++; ++ } ++ break; ++ ++ case 'a': ++ val->c = '\a'; ++ break; ++ ++ case 'e': ++ val->c = 033 /* ESC */; ++ break; ++ ++ case 'f': ++ val->c = '\f'; ++ break; ++ ++ case 'n': ++ val->c = '\n'; ++ break; ++ ++ case 'r': ++ val->c = '\r'; ++ break; ++ ++ case 't': ++ val->c = '\t'; ++ break; ++ } ++ } ++ return CHAR; ++} ++ ++void ++regexp_error(Node **, const char *text, const char *error) ++{ ++ /* We don't want the library to print error messages. */ ++} ++ ++/** ++ * Assign a consecutive number to each node. This is only needed for ++ * pretty-printing the debug output. ++ */ ++void label_nodes(Node *root) ++{ ++ int nodes = 0; ++ for (depth_first_traversal i(root); i; i++) ++ i->label = nodes++; ++} ++ ++/** ++ * Text-dump a state (for debugging). ++ */ ++ostream& operator<<(ostream& os, const State& state) ++{ ++ os << '{'; ++ if (!state.empty()) { ++ State::iterator i = state.begin(); ++ for(;;) { ++ os << (*i)->label; ++ if (++i == state.end()) ++ break; ++ os << ','; ++ } ++ } ++ os << '}'; ++ return os; ++} ++ ++/** ++ * Text-dump the syntax tree (for debugging). ++ */ ++void dump_syntax_tree(ostream& os, Node *node) { ++ for (depth_first_traversal i(node); i; i++) { ++ os << i->label << '\t'; ++ if ((*i)->child[0] == 0) ++ os << **i << '\t' << (*i)->followpos << endl; ++ else { ++ if ((*i)->child[1] == 0) ++ os << (*i)->child[0]->label << **i; ++ else ++ os << (*i)->child[0]->label << **i ++ << (*i)->child[1]->label; ++ os << '\t' << (*i)->firstpos ++ << (*i)->lastpos << endl; ++ } ++ } ++ os << endl; ++} ++ ++/* Comparison operator for sets of . */ ++template ++class deref_less_than { ++public: ++ deref_less_than() { } ++ bool operator()(T a, T b) ++ { ++ return *a < *b; ++ } ++}; ++ ++/** ++ * States in the DFA. The pointer comparison allows us to tell sets we ++ * have seen already from new ones when constructing the DFA. ++ */ ++typedef set > States; ++typedef list Partition; ++/* Transitions in the DFA. */ ++typedef map Trans; ++ ++class DFA { ++public: ++ DFA(Node *root, dfaflags_t flags); ++ virtual ~DFA(); ++ void remove_unreachable(dfaflags_t flags); ++ bool same_mappings(map &partition_map, State *s1, ++ State *s2); ++ size_t hash_trans(State *s); ++ void minimize(dfaflags_t flags); ++ void dump(ostream& os); ++ void dump_dot_graph(ostream& os); ++ map equivalence_classes(dfaflags_t flags); ++ void apply_equivalence_classes(map& eq); ++ State *verify_perms(void); ++ Node *root; ++ State *nonmatching, *start; ++ States states; ++ Trans trans; ++}; ++ ++/** ++ * Construct a DFA from a syntax tree. ++ */ ++DFA::DFA(Node *root, dfaflags_t flags) : root(root) ++{ ++ int i, match_count, nomatch_count; ++ i = match_count = nomatch_count = 0; ++ ++ if (flags & DFA_DUMP_PROGRESS) ++ fprintf(stderr, "Creating dfa:\r"); ++ ++ for (depth_first_traversal i(root); i; i++) { ++ (*i)->compute_nullable(); ++ (*i)->compute_firstpos(); ++ (*i)->compute_lastpos(); ++ } ++ ++ if (flags & DFA_DUMP_PROGRESS) ++ fprintf(stderr, "Creating dfa: followpos\r"); ++ for (depth_first_traversal i(root); i; i++) { ++ (*i)->compute_followpos(); ++ } ++ ++ nonmatching = new State; ++ states.insert(nonmatching); ++ ++ start = new State(root->firstpos); ++ states.insert(start); ++ ++ list work_queue; ++ work_queue.push_back(start); ++ while (!work_queue.empty()) { ++ if (i % 1000 == 0 && (flags & DFA_DUMP_PROGRESS)) ++ fprintf(stderr, "\033[2KCreating dfa: queue %ld\tstates %ld\tmatching %d\tnonmatching %d\r", work_queue.size(), states.size(), match_count, nomatch_count); ++ i++; ++ ++ State *from = work_queue.front(); ++ work_queue.pop_front(); ++ Cases cases; ++ for (State::iterator i = from->begin(); i != from->end(); i++) ++ (*i)->follow(cases); ++ if (cases.otherwise) { ++ pair x = states.insert(cases.otherwise); ++ if (x.second) { ++ nomatch_count++; ++ work_queue.push_back(cases.otherwise); ++ } else { ++ match_count++; ++ delete cases.otherwise; ++ cases.otherwise = *x.first; ++ } ++ } ++ for (Cases::iterator j = cases.begin(); j != cases.end(); j++) { ++ pair x = states.insert(j->second); ++ if (x.second) { ++ nomatch_count++; ++ work_queue.push_back(*x.first); ++ } else { ++ match_count++; ++ delete j->second; ++ j->second = *x.first; ++ } ++ } ++ Cases& here = trans.insert(make_pair(from, Cases())).first->second; ++ here.otherwise = cases.otherwise; ++ for (Cases::iterator j = cases.begin(); j != cases.end(); j++) { ++ /** ++ * Do not insert transitions that the default transition already ++ * covers. ++ */ ++ if (j->second != cases.otherwise) ++ here.cases.insert(*j); ++ } ++ } ++ ++ for (depth_first_traversal i(root); i; i++) { ++ (*i)->firstpos.clear(); ++ (*i)->lastpos.clear(); ++ (*i)->followpos.clear(); ++ } ++ ++ if (flags & (DFA_DUMP_STATS)) ++ fprintf(stderr, "\033[2KCreated dfa: states %ld\tmatching %d\tnonmatching %d\n", states.size(), match_count, nomatch_count); ++ ++ if (!(flags & DFA_CONTROL_NO_MINIMIZE)) ++ minimize(flags); ++ ++ if (!(flags & DFA_CONTROL_NO_UNREACHABLE)) ++ remove_unreachable(flags); ++ ++} ++ ++DFA::~DFA() ++{ ++ for (States::iterator i = states.begin(); i != states.end(); i++) ++ delete *i; ++} ++ ++class MatchFlag : public AcceptNode { ++public: ++MatchFlag(uint32_t flag, uint32_t audit) : flag(flag), audit(audit) {} ++ ostream& dump(ostream& os) ++ { ++ return os << '<' << flag << '>'; ++ } ++ ++ uint32_t flag; ++ uint32_t audit; ++ }; ++ ++class ExactMatchFlag : public MatchFlag { ++public: ++ ExactMatchFlag(uint32_t flag, uint32_t audit) : MatchFlag(flag, audit) {} ++}; ++ ++class DenyMatchFlag : public MatchFlag { ++public: ++ DenyMatchFlag(uint32_t flag, uint32_t quiet) : MatchFlag(flag, quiet) {} ++}; ++ ++uint32_t accept_perms(State *state, uint32_t *audit_ctl, int *error); ++ ++/** ++ * verify that there are no conflicting X permissions on the dfa ++ * return NULL - perms verified okay ++ * State of 1st encountered with bad X perms ++ */ ++State *DFA::verify_perms(void) ++{ ++ int error = 0; ++ for (States::iterator i = states.begin(); i != states.end(); i++) { ++ uint32_t accept = accept_perms(*i, NULL, &error); ++ if (*i == start || accept) { ++ if (error) ++ return *i; ++ } ++ } ++ return NULL; ++} ++ ++/* Remove dead or unreachable states */ ++void DFA::remove_unreachable(dfaflags_t flags) ++{ ++ set reachable; ++ list work_queue; ++ ++ /* find the set of reachable states */ ++ reachable.insert(nonmatching); ++ work_queue.push_back(start); ++ while (!work_queue.empty()) { ++ State *from = work_queue.front(); ++ work_queue.pop_front(); ++ reachable.insert(from); ++ ++ Trans::iterator i = trans.find(from); ++ if (i == trans.end() && from != nonmatching) ++ continue; ++ ++ if (i->second.otherwise && ++ (reachable.find(i->second.otherwise) == reachable.end())) ++ work_queue.push_back(i->second.otherwise); ++ ++ for (Cases::iterator j = i->second.begin(); ++ j != i->second.end(); j++) { ++ if (reachable.find(j->second) == reachable.end()) ++ work_queue.push_back(j->second); ++ } ++ } ++ ++ /* walk the set of states and remove any that aren't reachable */ ++ if (reachable.size() < states.size()) { ++ int count = 0; ++ States::iterator i; ++ States::iterator next; ++ for (i = states.begin(); i != states.end(); i = next) { ++ next = i; ++ next++; ++ if (reachable.find(*i) == reachable.end()) { ++ states.erase(*i); ++ Trans::iterator t = trans.find(*i); ++ if (t != trans.end()) ++ trans.erase(t); ++ if (flags & DFA_DUMP_UNREACHABLE) { ++ uint32_t audit, accept = accept_perms(*i, &audit, NULL); ++ cerr << "unreachable: "<< **i; ++ if (*i == start) ++ cerr << " <=="; ++ if (accept) { ++ cerr << " (0x" << hex << accept ++ << " " << audit << dec << ')'; ++ } ++ cerr << endl; ++ } ++ } ++ delete(*i); ++ count++; ++ } ++ ++ if (count && (flags & DFA_DUMP_STATS)) ++ cerr << "DFA: states " << states.size() << " removed " ++ << count << " unreachable states\n"; ++ } ++} ++ ++/* test if two states have the same transitions under partition_map */ ++bool DFA::same_mappings(map &partition_map, State *s1, ++ State *s2) ++{ ++ Trans::iterator i1 = trans.find(s1); ++ Trans::iterator i2 = trans.find(s2); ++ ++ if (i1 == trans.end()) { ++ if (i2 == trans.end()) { ++ return true; ++ } ++ return false; ++ } else if (i2 == trans.end()) { ++ return false; ++ } ++ ++ if (i1->second.otherwise) { ++ if (!i2->second.otherwise) ++ return false; ++ Partition *p1 = partition_map.find(i1->second.otherwise)->second; ++ Partition *p2 = partition_map.find(i2->second.otherwise)->second; ++ if (p1 != p2) ++ return false; ++ } else if (i2->second.otherwise) { ++ return false; ++ } ++ ++ if (i1->second.cases.size() != i2->second.cases.size()) ++ return false; ++ for (Cases::iterator j1 = i1->second.begin(); j1 != i1->second.end(); ++ j1++){ ++ Cases::iterator j2 = i2->second.cases.find(j1->first); ++ if (j2 == i2->second.end()) ++ return false; ++ Partition *p1 = partition_map.find(j1->second)->second; ++ Partition *p2 = partition_map.find(j2->second)->second; ++ if (p1 != p2) ++ return false; ++ } ++ ++ return true; ++} ++ ++/* Do simple djb2 hashing against a States transition cases ++ * this provides a rough initial guess at state equivalence as if a state ++ * has a different number of transitions or has transitions on different ++ * cases they will never be equivalent. ++ * Note: this only hashes based off of the alphabet (not destination) ++ * as different destinations could end up being equiv ++ */ ++size_t DFA::hash_trans(State *s) ++{ ++ unsigned long hash = 5381; ++ ++ Trans::iterator i = trans.find(s); ++ if (i == trans.end()) ++ return 0; ++ ++ for (Cases::iterator j = i->second.begin(); j != i->second.end(); j++){ ++ hash = ((hash << 5) + hash) + j->first; ++ Trans::iterator k = trans.find(j->second); ++ hash = ((hash << 5) + hash) + k->second.cases.size(); ++ } ++ ++ if (i->second.otherwise && i->second.otherwise != nonmatching) { ++ hash = ((hash << 5) + hash) + 5381; ++ Trans::iterator k = trans.find(i->second.otherwise); ++ hash = ((hash << 5) + hash) + k->second.cases.size(); ++ } ++ ++ hash = (hash << 8) | i->second.cases.size(); ++ return hash; ++} ++ ++/* minimize the number of dfa states */ ++void DFA::minimize(dfaflags_t flags) ++{ ++ map , Partition *> perm_map; ++ list partitions; ++ map partition_map; ++ ++ /* Set up the initial partitions - 1 non accepting, and a ++ * partion for each unique combination of permissions ++ * ++ * Save off accept value for State so we don't have to recompute ++ * this should be fixed by updating State to store them but this ++ * will work for now ++ */ ++ ++ int accept_count = 0; ++ for (States::iterator i = states.begin(); i != states.end(); i++) { ++ uint32_t accept1, accept2; ++ accept1 = accept_perms(*i, &accept2, NULL); ++ uint64_t combined = ((uint64_t)accept2)<<32 | (uint64_t)accept1; ++ size_t size = 0; ++ if (!(flags & DFA_CONTROL_NO_HASH_PART)) ++ size = hash_trans(*i); ++ pair group = make_pair(combined, size); ++ map , Partition *>::iterator p = perm_map.find(group); ++ if (p == perm_map.end()) { ++ Partition *part = new Partition(); ++ part->push_back(*i); ++ perm_map.insert(make_pair(group, part)); ++ partitions.push_back(part); ++ partition_map.insert(make_pair(*i, part)); ++ if (combined) ++ accept_count++; ++ } else { ++ partition_map.insert(make_pair(*i, p->second)); ++ p->second->push_back(*i); ++ } ++ if ((flags & DFA_DUMP_PROGRESS) && ++ (partitions.size() % 1000 == 0)) ++ cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << partitions.size() << "\t(accept " << accept_count << ")\r"; ++ } ++ ++ int init_count = partitions.size(); ++ if (flags & DFA_DUMP_PROGRESS) ++ cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << init_count << "\t(accept " << accept_count << ")\r"; ++ ++ /* Now do repartitioning until each partition contains the set of ++ * states that are the same. This will happen when the partition ++ * splitting stables. With a worse case of 1 state per partition ++ * ie. already minimized. ++ */ ++ Partition *new_part; ++ int new_part_count; ++ do { ++ new_part_count = 0; ++ for (list ::iterator p = partitions.begin(); ++ p != partitions.end(); p++) { ++ new_part = NULL; ++ State *rep = *((*p)->begin()); ++ Partition::iterator next; ++ for (Partition::iterator s = ++(*p)->begin(); ++ s != (*p)->end(); ) { ++ if (same_mappings(partition_map, rep, *s)) { ++ ++s; ++ continue; ++ } ++ if (!new_part) { ++ new_part = new Partition; ++ list ::iterator tmp = p; ++ partitions.insert(++tmp, new_part); ++ new_part_count++; ++ } ++ new_part->push_back(*s); ++ s = (*p)->erase(s); ++ } ++ /* remapping partition_map for new_part entries ++ * Do not do this above as it messes up same_mappings ++ */ ++ if (new_part) { ++ for (Partition::iterator m = new_part->begin(); ++ m != new_part->end(); m++) { ++ partition_map.erase(*m); ++ partition_map.insert(make_pair(*m, new_part)); ++ } ++ } ++ if ((flags & DFA_DUMP_PROGRESS) && ++ (partitions.size() % 100 == 0)) ++ cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << init_count << "\t(accept " << accept_count << ")\r"; ++ } ++ } while(new_part_count); ++ ++ if (flags & DFA_DUMP_STATS) ++ cerr << "\033[2KMinimize dfa: partitions " << partitions.size() << "\tinit " << init_count << "\t(accept " << accept_count << ")\n"; ++ ++ ++ if (partitions.size() == states.size()) { ++ goto out; ++ } ++ ++ /* Remap the dfa so it uses the representative states ++ * Use the first state of a partition as the representative state ++ * At this point all states with in a partion have transitions ++ * to same states within the same partitions ++ */ ++ for (list ::iterator p = partitions.begin(); ++ p != partitions.end(); p++) { ++ /* representative state for this partition */ ++ State *rep = *((*p)->begin()); ++ ++ /* update representative state's transitions */ ++ Trans::iterator i = trans.find(rep); ++ if (i != trans.end()) { ++ if (i->second.otherwise) { ++ map ::iterator z = partition_map.find(i->second.otherwise); ++ Partition *partition = partition_map.find(i->second.otherwise)->second; ++ i->second.otherwise = *partition->begin(); ++ } ++ for (Cases::iterator c = i->second.begin(); ++ c != i->second.end(); c++) { ++ Partition *partition = partition_map.find(c->second)->second; ++ c->second = *partition->begin(); ++ } ++ } ++ } ++ ++ /* make sure nonmatching and start state are up to date with the ++ * mappings */ ++ { ++ Partition *partition = partition_map.find(nonmatching)->second; ++ if (*partition->begin() != nonmatching) { ++ nonmatching = *partition->begin(); ++ } ++ ++ partition = partition_map.find(start)->second; ++ if (*partition->begin() != start) { ++ start = *partition->begin(); ++ } ++ ++ } ++ /* Now that the states have been remapped, remove all states ++ * that are not the representive states for their partition ++ */ ++ for (list ::iterator p = partitions.begin(); ++ p != partitions.end(); p++) { ++ for (Partition::iterator i = ++(*p)->begin(); i != (*p)->end(); i++) { ++ Trans::iterator j = trans.find(*i); ++ if (j != trans.end()) ++ trans.erase(j); ++ State *s = *i; ++ states.erase(*i); ++ delete(s); ++ } ++ } ++ ++out: ++ /* Cleanup */ ++ while (!partitions.empty()) { ++ Partition *p = partitions.front(); ++ partitions.pop_front(); ++ delete(p); ++ } ++} ++ ++/** ++ * text-dump the DFA (for debugging). ++ */ ++void DFA::dump(ostream& os) ++{ ++ int error = 0; ++ for (States::iterator i = states.begin(); i != states.end(); i++) { ++ uint32_t accept, audit; ++ accept = accept_perms(*i, &audit, &error); ++ if (*i == start || accept) { ++ os << **i; ++ if (*i == start) ++ os << " <=="; ++ if (accept) { ++ os << " (0x" << hex << accept << " " << audit << dec << ')'; ++ } ++ os << endl; ++ } ++ } ++ os << endl; ++ ++ for (Trans::iterator i = trans.begin(); i != trans.end(); i++) { ++ if (i->second.otherwise) ++ os << *(i->first) << " -> " << *i->second.otherwise << endl; ++ for (Cases::iterator j = i->second.begin(); j != i->second.end(); j++) { ++ os << *(i->first) << " -> " << *(j->second) << ": " ++ << j->first << endl; ++ } ++ } ++ os << endl; ++} ++ ++/** ++ * Create a dot (graphviz) graph from the DFA (for debugging). ++ */ ++void DFA::dump_dot_graph(ostream& os) ++{ ++ os << "digraph \"dfa\" {" << endl; ++ ++ for (States::iterator i = states.begin(); i != states.end(); i++) { ++ if (*i == nonmatching) ++ continue; ++ ++ os << "\t\"" << **i << "\" [" << endl; ++ if (*i == start) { ++ os << "\t\tstyle=bold" << endl; ++ } ++ int error = 0; ++ uint32_t perms = accept_perms(*i, NULL, &error); ++ if (perms) { ++ os << "\t\tlabel=\"" << **i << "\\n(" ++ << perms << ")\"" << endl; ++ } ++ os << "\t]" << endl; ++ } ++ for (Trans::iterator i = trans.begin(); i != trans.end(); i++) { ++ Cases& cases = i->second; ++ Chars excluded; ++ ++ for (Cases::iterator j = cases.begin(); j != cases.end(); j++) { ++ if (j->second == nonmatching) ++ excluded.insert(j->first); ++ else { ++ os << "\t\"" << *i->first << "\" -> \""; ++ os << *j->second << "\" [" << endl; ++ os << "\t\tlabel=\"" << (char)j->first << "\"" << endl; ++ os << "\t]" << endl; ++ } ++ } ++ if (i->second.otherwise && i->second.otherwise != nonmatching) { ++ os << "\t\"" << *i->first << "\" -> \"" << *i->second.otherwise ++ << "\" [" << endl; ++ if (!excluded.empty()) { ++ os << "\t\tlabel=\"[^"; ++ for (Chars::iterator i = excluded.begin(); ++ i != excluded.end(); ++ i++) { ++ os << *i; ++ } ++ os << "]\"" << endl; ++ } ++ os << "\t]" << endl; ++ } ++ } ++ os << '}' << endl; ++} ++ ++/** ++ * Compute character equivalence classes in the DFA to save space in the ++ * transition table. ++ */ ++map DFA::equivalence_classes(dfaflags_t flags) ++{ ++ map classes; ++ uchar next_class = 1; ++ ++ for (Trans::iterator i = trans.begin(); i != trans.end(); i++) { ++ Cases& cases = i->second; ++ ++ /* Group edges to the same next state together */ ++ map node_sets; ++ for (Cases::iterator j = cases.begin(); j != cases.end(); j++) ++ node_sets[j->second].insert(j->first); ++ ++ for (map::iterator j = node_sets.begin(); ++ j != node_sets.end(); ++ j++) { ++ /* Group edges to the same next state together by class */ ++ map node_classes; ++ bool class_used = false; ++ for (Chars::iterator k = j->second.begin(); ++ k != j->second.end(); ++ k++) { ++ pair::iterator, bool> x = ++ classes.insert(make_pair(*k, next_class)); ++ if (x.second) ++ class_used = true; ++ pair::iterator, bool> y = ++ node_classes.insert(make_pair(x.first->second, Chars())); ++ y.first->second.insert(*k); ++ } ++ if (class_used) { ++ next_class++; ++ class_used = false; ++ } ++ for (map::iterator k = node_classes.begin(); ++ k != node_classes.end(); ++ k++) { ++ /** ++ * If any other characters are in the same class, move ++ * the characters in this class into their own new class ++ */ ++ map::iterator l; ++ for (l = classes.begin(); l != classes.end(); l++) { ++ if (l->second == k->first && ++ k->second.find(l->first) == k->second.end()) { ++ class_used = true; ++ break; ++ } ++ } ++ if (class_used) { ++ for (Chars::iterator l = k->second.begin(); ++ l != k->second.end(); ++ l++) { ++ classes[*l] = next_class; ++ } ++ next_class++; ++ class_used = false; ++ } ++ } ++ } ++ } ++ ++ if (flags & DFA_DUMP_EQUIV_STATS) ++ fprintf(stderr, "Equiv class reduces to %d classes\n", next_class - 1); ++ return classes; ++} ++ ++/** ++ * Text-dump the equivalence classes (for debugging). ++ */ ++void dump_equivalence_classes(ostream& os, map& eq) ++{ ++ map rev; ++ ++ for (map::iterator i = eq.begin(); i != eq.end(); i++) { ++ Chars& chars = rev.insert(make_pair(i->second, ++ Chars())).first->second; ++ chars.insert(i->first); ++ } ++ os << "(eq):" << endl; ++ for (map::iterator i = rev.begin(); i != rev.end(); i++) { ++ os << (int)i->first << ':'; ++ Chars& chars = i->second; ++ for (Chars::iterator j = chars.begin(); j != chars.end(); j++) { ++ os << ' ' << *j; ++ } ++ os << endl; ++ } ++} ++ ++/** ++ * Replace characters with classes (which are also represented as ++ * characters) in the DFA transition table. ++ */ ++void DFA::apply_equivalence_classes(map& eq) ++{ ++ /** ++ * Note: We only transform the transition table; the nodes continue to ++ * contain the original characters. ++ */ ++ for (Trans::iterator i = trans.begin(); i != trans.end(); i++) { ++ map tmp; ++ tmp.swap(i->second.cases); ++ for (Cases::iterator j = tmp.begin(); j != tmp.end(); j++) ++ i->second.cases.insert(make_pair(eq[j->first], j->second)); ++ } ++} ++ ++/** ++ * Flip the children of all cat nodes. This causes strings to be matched ++ * back-forth. ++ */ ++void flip_tree(Node *node) ++{ ++ for (depth_first_traversal i(node); i; i++) { ++ if (CatNode *cat = dynamic_cast(*i)) { ++ swap(cat->child[0], cat->child[1]); ++ } ++ } ++} ++ ++class TransitionTable { ++ typedef vector > DefaultBase; ++ typedef vector > NextCheck; ++public: ++ TransitionTable(DFA& dfa, map& eq, dfaflags_t flags); ++ void dump(ostream& os); ++ void flex_table(ostream& os, const char *name); ++ void init_free_list(vector > &free_list, size_t prev, size_t start); ++ bool fits_in(vector > &free_list, ++ size_t base, Cases& cases); ++ void insert_state(vector > &free_list, ++ State *state, DFA& dfa); ++ ++private: ++ vector accept; ++ vector accept2; ++ DefaultBase default_base; ++ NextCheck next_check; ++ map num; ++ map& eq; ++ uchar max_eq; ++ size_t first_free; ++}; ++ ++ ++void TransitionTable::init_free_list(vector > &free_list, ++ size_t prev, size_t start) { ++ for (size_t i = start; i < free_list.size(); i++) { ++ if (prev) ++ free_list[prev].second = i; ++ free_list[i].first = prev; ++ prev = i; ++ } ++ free_list[free_list.size() -1].second = 0; ++} ++ ++/** ++ * new Construct the transition table. ++ */ ++TransitionTable::TransitionTable(DFA& dfa, map& eq, ++ dfaflags_t flags) ++ : eq(eq) ++{ ++ ++ if (flags & DFA_DUMP_TRANS_PROGRESS) ++ fprintf(stderr, "Creating trans table:\r"); ++ ++ ++ if (eq.empty()) ++ max_eq = 255; ++ else { ++ max_eq = 0; ++ for(map::iterator i = eq.begin(); i != eq.end(); i++) { ++ if (i->second > max_eq) ++ max_eq = i->second; ++ } ++ } ++ ++ /* Do initial setup adding up all the transitions and sorting by ++ * transition count. ++ */ ++ size_t optimal = 2; ++ multimap order; ++ vector > free_list; ++ ++ for (Trans::iterator i = dfa.trans.begin(); i != dfa.trans.end(); i++) { ++ if (i->first == dfa.start || i->first == dfa.nonmatching) ++ continue; ++ optimal += i->second.cases.size(); ++ if (flags & DFA_CONTROL_TRANS_HIGH) { ++ size_t range = 0; ++ if (i->second.cases.size()) ++ range = i->second.cases.rbegin()->first - i->second.begin()->first; ++ size_t ord = ((256 - i->second.cases.size()) << 8) | ++ (256 - range); ++ /* reverse sort by entry count, most entries first */ ++ order.insert(make_pair(ord, i->first)); ++ } ++ } ++ ++ /* Insert the dummy nonmatching transition by hand */ ++ next_check.push_back(make_pair(dfa.nonmatching, dfa.nonmatching)); ++ default_base.push_back(make_pair(dfa.nonmatching, 0)); ++ num.insert(make_pair(dfa.nonmatching, num.size())); ++ ++ accept.resize(dfa.states.size()); ++ accept2.resize(dfa.states.size()); ++ next_check.resize(optimal); ++ free_list.resize(optimal); ++ ++ accept[0] = 0; ++ accept2[0] = 0; ++ first_free = 1; ++ init_free_list(free_list, 0, 1); ++ ++ insert_state(free_list, dfa.start, dfa); ++ accept[1] = 0; ++ accept2[1] = 0; ++ num.insert(make_pair(dfa.start, num.size())); ++ ++ int count = 2; ++ ++ if (!(flags & DFA_CONTROL_TRANS_HIGH)) { ++ for (States::iterator i = dfa.states.begin(); i != dfa.states.end(); ++ i++) { ++ if (*i != dfa.nonmatching && *i != dfa.start) { ++ insert_state(free_list, *i, dfa); ++ int error = 0; ++ uint32_t audit_ctl; ++ accept[num.size()] = accept_perms(*i, &audit_ctl, &error); ++ accept2[num.size()] = audit_ctl; ++ num.insert(make_pair(*i, num.size())); ++ } ++ if (flags & (DFA_DUMP_TRANS_PROGRESS)) { ++ count++; ++ if (count % 100 == 0) ++ fprintf(stderr, "\033[2KCreating trans table: insert state: %d/%ld\r", count, dfa.states.size()); ++ } ++ } ++ } else { ++ for (multimap ::iterator i = order.begin(); ++ i != order.end(); i++) { ++ if (i->second != dfa.nonmatching && i->second != dfa.start) { ++ insert_state(free_list, i->second, dfa); ++ int error = 0; ++ uint32_t audit_ctl; ++ accept[num.size()] = accept_perms(i->second, &audit_ctl, &error); ++ accept2[num.size()] = audit_ctl; ++ num.insert(make_pair(i->second, num.size())); ++ } ++ if (flags & (DFA_DUMP_TRANS_PROGRESS)) { ++ count++; ++ if (count % 100 == 0) ++ fprintf(stderr, "\033[2KCreating trans table: insert state: %d/%ld\r", count, dfa.states.size()); ++ } ++ } ++ } ++ ++ if (flags & (DFA_DUMP_TRANS_STATS | DFA_DUMP_TRANS_PROGRESS)) { ++ ssize_t size = 4 * next_check.size() + 6 * dfa.states.size(); ++ fprintf(stderr, "\033[2KCreated trans table: states %ld, next/check %ld, optimal next/check %ld avg/state %.2f, compression %ld/%ld = %.2f %%\n", dfa.states.size(), next_check.size(), optimal, (float)next_check.size()/(float)dfa.states.size(), size, 512 * dfa.states.size(), 100.0 - ((float) size * 100.0 / (float)(512 * dfa.states.size()))); ++ } ++} ++ ++ ++/** ++ * Does fit into position of the transition table? ++ */ ++bool TransitionTable::fits_in(vector > &free_list, ++ size_t pos, Cases& cases) ++{ ++ size_t c, base = pos - cases.begin()->first; ++ for (Cases::iterator i = cases.begin(); i != cases.end(); i++) { ++ c = base + i->first; ++ /* if it overflows the next_check array it fits in as we will ++ * resize */ ++ if (c >= next_check.size()) ++ return true; ++ if (next_check[c].second) ++ return false; ++ } ++ ++ return true; ++} ++ ++/** ++ * Insert of into the transition table. ++ */ ++void TransitionTable::insert_state(vector > &free_list, ++ State *from, DFA& dfa) ++{ ++ State *default_state = dfa.nonmatching; ++ size_t base = 0; ++ int resize; ++ ++ Trans::iterator i = dfa.trans.find(from); ++ if (i == dfa.trans.end()) { ++ return; ++ } ++ Cases& cases = i->second; ++ size_t c = cases.begin()->first; ++ size_t prev = 0; ++ size_t x = first_free; ++ ++ if (cases.otherwise) ++ default_state = cases.otherwise; ++ if (cases.cases.empty()) ++ goto do_insert; ++ ++repeat: ++ resize = 0; ++ /* get the first free entry that won't underflow */ ++ while (x && (x < c)) { ++ prev = x; ++ x = free_list[x].second; ++ } ++ ++ /* try inserting until we succeed. */ ++ while (x && !fits_in(free_list, x, cases)) { ++ prev = x; ++ x = free_list[x].second; ++ } ++ if (!x) { ++ resize = 256 - cases.begin()->first; ++ x = free_list.size(); ++ /* set prev to last free */ ++ } else if (x + 255 - cases.begin()->first >= next_check.size()) { ++ resize = (255 - cases.begin()->first - (next_check.size() - 1 - x)); ++ for (size_t y = x; y; y = free_list[y].second) ++ prev = y; ++ } ++ if (resize) { ++ /* expand next_check and free_list */ ++ size_t old_size = free_list.size(); ++ next_check.resize(next_check.size() + resize); ++ free_list.resize(free_list.size() + resize); ++ init_free_list(free_list, prev, old_size); ++ if (!first_free) ++ first_free = old_size;; ++ if (x == old_size) ++ goto repeat; ++ } ++ ++ base = x - c; ++ for (Cases::iterator j = cases.begin(); j != cases.end(); j++) { ++ next_check[base + j->first] = make_pair(j->second, from); ++ size_t prev = free_list[base + j->first].first; ++ size_t next = free_list[base + j->first].second; ++ if (prev) ++ free_list[prev].second = next; ++ if (next) ++ free_list[next].first = prev; ++ if (base + j->first == first_free) ++ first_free = next; ++ } ++ ++do_insert: ++ default_base.push_back(make_pair(default_state, base)); ++} ++ ++/** ++ * Text-dump the transition table (for debugging). ++ */ ++void TransitionTable::dump(ostream& os) ++{ ++ map st; ++ for (map::iterator i = num.begin(); ++ i != num.end(); ++ i++) { ++ st.insert(make_pair(i->second, i->first)); ++ } ++ ++ os << "(accept, default, base):" << endl; ++ for (size_t i = 0; i < default_base.size(); i++) { ++ os << "(" << accept[i] << ", " ++ << num[default_base[i].first] << ", " ++ << default_base[i].second << ")"; ++ if (st[i]) ++ os << " " << *st[i]; ++ if (default_base[i].first) ++ os << " -> " << *default_base[i].first; ++ os << endl; ++ } ++ ++ os << "(next, check):" << endl; ++ for (size_t i = 0; i < next_check.size(); i++) { ++ if (!next_check[i].second) ++ continue; ++ ++ os << i << ": "; ++ if (next_check[i].second) { ++ os << "(" << num[next_check[i].first] << ", " ++ << num[next_check[i].second] << ")" << " " ++ << *next_check[i].second << " -> " ++ << *next_check[i].first << ": "; ++ ++ size_t offs = i - default_base[num[next_check[i].second]].second; ++ if (eq.size()) ++ os << offs; ++ else ++ os << (uchar)offs; ++ } ++ os << endl; ++ } ++} ++ ++#if 0 ++template ++class FirstIterator { ++public: ++ FirstIterator(Iter pos) : pos(pos) { } ++ typename Iter::value_type::first_type operator*() { return pos->first; } ++ bool operator!=(FirstIterator& i) { return pos != i.pos; } ++ void operator++() { ++pos; } ++ ssize_t operator-(FirstIterator i) { return pos - i.pos; } ++private: ++ Iter pos; ++}; ++ ++template ++FirstIterator first_iterator(Iter iter) ++{ ++ return FirstIterator(iter); ++} ++ ++template ++class SecondIterator { ++public: ++ SecondIterator(Iter pos) : pos(pos) { } ++ typename Iter::value_type::second_type operator*() { return pos->second; } ++ bool operator!=(SecondIterator& i) { return pos != i.pos; } ++ void operator++() { ++pos; } ++ ssize_t operator-(SecondIterator i) { return pos - i.pos; } ++private: ++ Iter pos; ++}; ++ ++template ++SecondIterator second_iterator(Iter iter) ++{ ++ return SecondIterator(iter); ++} ++#endif ++ ++/** ++ * Create a flex-style binary dump of the DFA tables. The table format ++ * was partly reverse engineered from the flex sources and from ++ * examining the tables that flex creates with its --tables-file option. ++ * (Only the -Cf and -Ce formats are currently supported.) ++ */ ++ ++#include "flex-tables.h" ++#include "regexp.h" ++ ++static inline size_t pad64(size_t i) ++{ ++ return (i + (size_t)7) & ~(size_t)7; ++} ++ ++string fill64(size_t i) ++{ ++ const char zeroes[8] = { }; ++ string fill(zeroes, (i & 7) ? 8 - (i & 7) : 0); ++ return fill; ++} ++ ++template ++size_t flex_table_size(Iter pos, Iter end) ++{ ++ return pad64(sizeof(struct table_header) + sizeof(*pos) * (end - pos)); ++} ++ ++template ++void write_flex_table(ostream& os, int id, Iter pos, Iter end) ++{ ++ struct table_header td = { }; ++ size_t size = end - pos; ++ ++ td.td_id = htons(id); ++ td.td_flags = htons(sizeof(*pos)); ++ td.td_lolen = htonl(size); ++ os.write((char *)&td, sizeof(td)); ++ ++ for (; pos != end; ++pos) { ++ switch(sizeof(*pos)) { ++ case 4: ++ os.put((char)(*pos >> 24)); ++ os.put((char)(*pos >> 16)); ++ case 2: ++ os.put((char)(*pos >> 8)); ++ case 1: ++ os.put((char)*pos); ++ } ++ } ++ ++ os << fill64(sizeof(td) + sizeof(*pos) * size); ++} ++ ++void TransitionTable::flex_table(ostream& os, const char *name) ++{ ++ const char th_version[] = "notflex"; ++ struct table_set_header th = { }; ++ ++ /** ++ * Change the following two data types to adjust the maximum flex ++ * table size. ++ */ ++ typedef uint16_t state_t; ++ typedef uint32_t trans_t; ++ ++ if (default_base.size() >= (state_t)-1) { ++ cerr << "Too many states (" << default_base.size() << ") for " ++ "type state_t" << endl; ++ exit(1); ++ } ++ if (next_check.size() >= (trans_t)-1) { ++ cerr << "Too many transitions (" << next_check.size() << ") for " ++ "type trans_t" << endl; ++ exit(1); ++ } ++ ++ /** ++ * Create copies of the data structures so that we can dump the tables ++ * using the generic write_flex_table() routine. ++ */ ++ vector equiv_vec; ++ if (eq.size()) { ++ equiv_vec.resize(256); ++ for (map::iterator i = eq.begin(); i != eq.end(); i++) { ++ equiv_vec[i->first] = i->second; ++ } ++ } ++ ++ vector default_vec; ++ vector base_vec; ++ for (DefaultBase::iterator i = default_base.begin(); ++ i != default_base.end(); ++ i++) { ++ default_vec.push_back(num[i->first]); ++ base_vec.push_back(i->second); ++ } ++ ++ vector next_vec; ++ vector check_vec; ++ for (NextCheck::iterator i = next_check.begin(); ++ i != next_check.end(); ++ i++) { ++ next_vec.push_back(num[i->first]); ++ check_vec.push_back(num[i->second]); ++ } ++ ++ /* Write the actual flex parser table. */ ++ ++ size_t hsize = pad64(sizeof(th) + sizeof(th_version) + strlen(name) + 1); ++ th.th_magic = htonl(YYTH_REGEXP_MAGIC); ++ th.th_hsize = htonl(hsize); ++ th.th_ssize = htonl(hsize + ++ flex_table_size(accept.begin(), accept.end()) + ++ flex_table_size(accept2.begin(), accept2.end()) + ++ (eq.size() ? ++ flex_table_size(equiv_vec.begin(), equiv_vec.end()) : 0) + ++ flex_table_size(base_vec.begin(), base_vec.end()) + ++ flex_table_size(default_vec.begin(), default_vec.end()) + ++ flex_table_size(next_vec.begin(), next_vec.end()) + ++ flex_table_size(check_vec.begin(), check_vec.end())); ++ os.write((char *)&th, sizeof(th)); ++ os << th_version << (char)0 << name << (char)0; ++ os << fill64(sizeof(th) + sizeof(th_version) + strlen(name) + 1); ++ ++ ++ write_flex_table(os, YYTD_ID_ACCEPT, accept.begin(), accept.end()); ++ write_flex_table(os, YYTD_ID_ACCEPT2, accept2.begin(), accept2.end()); ++ if (eq.size()) ++ write_flex_table(os, YYTD_ID_EC, equiv_vec.begin(), equiv_vec.end()); ++ write_flex_table(os, YYTD_ID_BASE, base_vec.begin(), base_vec.end()); ++ write_flex_table(os, YYTD_ID_DEF, default_vec.begin(), default_vec.end()); ++ write_flex_table(os, YYTD_ID_NXT, next_vec.begin(), next_vec.end()); ++ write_flex_table(os, YYTD_ID_CHK, check_vec.begin(), check_vec.end()); ++} ++ ++#if 0 ++typedef set AcceptNodes; ++map dominance(DFA& dfa) ++{ ++ map is_dominated; ++ ++ for (States::iterator i = dfa.states.begin(); i != dfa.states.end(); i++) { ++ AcceptNodes set1; ++ for (State::iterator j = (*i)->begin(); j != (*i)->end(); j++) { ++ if (AcceptNode *accept = dynamic_cast(*j)) ++ set1.insert(accept); ++ } ++ for (AcceptNodes::iterator j = set1.begin(); j != set1.end(); j++) { ++ pair::iterator, bool> x = ++ is_dominated.insert(make_pair(*j, set1)); ++ if (!x.second) { ++ AcceptNodes &set2(x.first->second), set3; ++ for (AcceptNodes::iterator l = set2.begin(); ++ l != set2.end(); ++ l++) { ++ if (set1.find(*l) != set1.end()) ++ set3.insert(*l); ++ } ++ set3.swap(set2); ++ } ++ } ++ } ++ return is_dominated; ++} ++#endif ++ ++void dump_regexp_rec(ostream& os, Node *tree) ++{ ++ if (tree->child[0]) ++ dump_regexp_rec(os, tree->child[0]); ++ os << *tree; ++ if (tree->child[1]) ++ dump_regexp_rec(os, tree->child[1]); ++} ++ ++void dump_regexp(ostream& os, Node *tree) ++{ ++ dump_regexp_rec(os, tree); ++ os << endl; ++} ++ ++#include ++#include ++ ++struct aare_ruleset { ++ int reverse; ++ Node *root; ++}; ++ ++extern "C" aare_ruleset_t *aare_new_ruleset(int reverse) ++{ ++ aare_ruleset_t *container = (aare_ruleset_t *) malloc(sizeof(aare_ruleset_t)); ++ if (!container) ++ return NULL; ++ ++ container->root = NULL; ++ container->reverse = reverse; ++ ++ return container; ++} ++ ++extern "C" void aare_delete_ruleset(aare_ruleset_t *rules) ++{ ++ if (rules) { ++ if (rules->root) ++ rules->root->release(); ++ free(rules); ++ } ++} ++ ++static inline int diff_qualifiers(uint32_t perm1, uint32_t perm2) ++{ ++ return ((perm1 & AA_EXEC_TYPE) && (perm2 & AA_EXEC_TYPE) && ++ (perm1 & AA_EXEC_TYPE) != (perm2 & AA_EXEC_TYPE)); ++} ++ ++/** ++ * Compute the permission flags that this state corresponds to. If we ++ * have any exact matches, then they override the execute and safe ++ * execute flags. ++ */ ++uint32_t accept_perms(State *state, uint32_t *audit_ctl, int *error) ++{ ++ uint32_t perms = 0, exact_match_perms = 0, audit = 0, exact_audit = 0, ++ quiet = 0, deny = 0; ++ ++ if (error) ++ *error = 0; ++ for (State::iterator i = state->begin(); i != state->end(); i++) { ++ MatchFlag *match; ++ if (!(match= dynamic_cast(*i))) ++ continue; ++ if (dynamic_cast(match)) { ++ /* exact match only ever happens with x */ ++ if (!is_merged_x_consistent(exact_match_perms, ++ match->flag) && error) ++ *error = 1;; ++ exact_match_perms |= match->flag; ++ exact_audit |= match->audit; ++ } else if (dynamic_cast(match)) { ++ deny |= match->flag; ++ quiet |= match->audit; ++ } else { ++ if (!is_merged_x_consistent(perms, match->flag) && error) ++ *error = 1; ++ perms |= match->flag; ++ audit |= match->audit; ++ } ++ } ++ ++//if (audit || quiet) ++//fprintf(stderr, "perms: 0x%x, audit: 0x%x exact: 0x%x eaud: 0x%x deny: 0x%x quiet: 0x%x\n", perms, audit, exact_match_perms, exact_audit, deny, quiet); ++ ++ perms |= exact_match_perms & ++ ~(AA_USER_EXEC_TYPE | AA_OTHER_EXEC_TYPE); ++ ++ if (exact_match_perms & AA_USER_EXEC_TYPE) { ++ perms = (exact_match_perms & AA_USER_EXEC_TYPE) | ++ (perms & ~AA_USER_EXEC_TYPE); ++ audit = (exact_audit & AA_USER_EXEC_TYPE) | ++ (audit & ~ AA_USER_EXEC_TYPE); ++ } ++ if (exact_match_perms & AA_OTHER_EXEC_TYPE) { ++ perms = (exact_match_perms & AA_OTHER_EXEC_TYPE) | ++ (perms & ~AA_OTHER_EXEC_TYPE); ++ audit = (exact_audit & AA_OTHER_EXEC_TYPE) | ++ (audit & ~AA_OTHER_EXEC_TYPE); ++ } ++ if (perms & AA_USER_EXEC & deny) ++ perms &= ~AA_USER_EXEC_TYPE; ++ ++ if (perms & AA_OTHER_EXEC & deny) ++ perms &= ~AA_OTHER_EXEC_TYPE; ++ ++ perms &= ~deny; ++ ++ if (audit_ctl) ++ *audit_ctl = PACK_AUDIT_CTL(audit, quiet & deny); ++ ++// if (perms & AA_ERROR_BIT) { ++// fprintf(stderr, "error bit 0x%x\n", perms); ++// exit(255); ++//} ++ ++ //if (perms & AA_EXEC_BITS) ++ //fprintf(stderr, "accept perm: 0x%x\n", perms); ++ /* ++ if (perms & ~AA_VALID_PERMS) ++ yyerror(_("Internal error accumulated invalid perm 0x%llx\n"), perms); ++ */ ++ ++//if (perms & AA_CHANGE_HAT) ++// fprintf(stderr, "change_hat 0x%x\n", perms); ++ ++ return perms; ++} ++ ++extern "C" int aare_add_rule(aare_ruleset_t *rules, char *rule, int deny, ++ uint32_t perms, uint32_t audit) ++{ ++ return aare_add_rule_vec(rules, deny, perms, audit, 1, &rule); ++} ++ ++#define FLAGS_WIDTH 2 ++#define MATCH_FLAGS_SIZE (sizeof(uint32_t) * 8 - 1) ++MatchFlag *match_flags[FLAGS_WIDTH][MATCH_FLAGS_SIZE]; ++DenyMatchFlag *deny_flags[FLAGS_WIDTH][MATCH_FLAGS_SIZE]; ++#define EXEC_MATCH_FLAGS_SIZE ((AA_EXEC_COUNT << 2) * 2) ++MatchFlag *exec_match_flags[FLAGS_WIDTH][EXEC_MATCH_FLAGS_SIZE]; /* mods + unsafe + ix *u::o*/ ++ExactMatchFlag *exact_match_flags[FLAGS_WIDTH][EXEC_MATCH_FLAGS_SIZE];/* mods + unsafe +ix *u::o*/ ++ ++extern "C" void aare_reset_matchflags(void) ++{ ++ uint32_t i, j; ++#define RESET_FLAGS(group, size) { \ ++ for (i = 0; i < FLAGS_WIDTH; i++) { \ ++ for (j = 0; j < size; j++) { \ ++ if ((group)[i][j]) (group)[i][j]->release(); \ ++ (group)[i][j] = NULL; \ ++ } \ ++ } \ ++} ++ RESET_FLAGS(match_flags,MATCH_FLAGS_SIZE); ++ RESET_FLAGS(deny_flags,MATCH_FLAGS_SIZE); ++ RESET_FLAGS(exec_match_flags,EXEC_MATCH_FLAGS_SIZE); ++ RESET_FLAGS(exact_match_flags,EXEC_MATCH_FLAGS_SIZE); ++#undef RESET_FLAGS ++} ++ ++extern "C" int aare_add_rule_vec(aare_ruleset_t *rules, int deny, ++ uint32_t perms, uint32_t audit, ++ int count, char **rulev) ++{ ++ Node *tree = NULL, *accept; ++ int exact_match; ++ ++ assert(perms != 0); ++ ++ if (regexp_parse(&tree, rulev[0])) ++ return 0; ++ for (int i = 1; i < count; i++) { ++ Node *subtree = NULL; ++ Node *node = new CharNode(0); ++ if (!node) ++ return 0; ++ tree = new CatNode(tree, node); ++ if (regexp_parse(&subtree, rulev[i])) ++ return 0; ++ tree = new CatNode(tree, subtree); ++ } ++ ++ /* ++ * Check if we have an expression with or without wildcards. This ++ * determines how exec modifiers are merged in accept_perms() based ++ * on how we split permission bitmasks here. ++ */ ++ exact_match = 1; ++ for (depth_first_traversal i(tree); i; i++) { ++ if (dynamic_cast(*i) || ++ dynamic_cast(*i) || ++ dynamic_cast(*i) || ++ dynamic_cast(*i) || ++ dynamic_cast(*i)) ++ exact_match = 0; ++ } ++ ++ if (rules->reverse) ++ flip_tree(tree); ++ ++ ++/* 0x3f == 4 bits x mods + 1 bit unsafe mask + 1 bit ix, after shift */ ++#define EXTRACT_X_INDEX(perm, shift) (((perm) >> (shift + 8)) & 0x3f) ++ ++//if (perms & ALL_AA_EXEC_TYPE && (!perms & AA_EXEC_BITS)) ++// fprintf(stderr, "adding X rule without MAY_EXEC: 0x%x %s\n", perms, rulev[0]); ++ ++//if (perms & ALL_EXEC_TYPE) ++// fprintf(stderr, "adding X rule %s 0x%x\n", rulev[0], perms); ++ ++//if (audit) ++//fprintf(stderr, "adding rule with audit bits set: 0x%x %s\n", audit, rulev[0]); ++ ++//if (perms & AA_CHANGE_HAT) ++// fprintf(stderr, "adding change_hat rule %s\n", rulev[0]); ++ ++/* the permissions set is assumed to be non-empty if any audit ++ * bits are specified */ ++ accept = NULL; ++ for (unsigned int n = 0; perms && n < (sizeof(perms) * 8) ; n++) { ++ uint32_t mask = 1 << n; ++ ++ if (perms & mask) { ++ int ai = audit & mask ? 1 : 0; ++ perms &= ~mask; ++ ++ Node *flag; ++ if (mask & ALL_AA_EXEC_TYPE) ++ /* these cases are covered by EXEC_BITS */ ++ continue; ++ if (deny) { ++ if (deny_flags[ai][n]) { ++ flag = deny_flags[ai][n]->dup(); ++ } else { ++//fprintf(stderr, "Adding deny ai %d mask 0x%x audit 0x%x\n", ai, mask, audit & mask); ++ deny_flags[ai][n] = new DenyMatchFlag(mask, audit&mask); ++ flag = deny_flags[ai][n]->dup(); ++ } ++ } else if (mask & AA_EXEC_BITS) { ++ uint32_t eperm = 0; ++ uint32_t index = 0; ++ if (mask & AA_USER_EXEC) { ++ eperm = mask | (perms & AA_USER_EXEC_TYPE); ++ index = EXTRACT_X_INDEX(eperm, AA_USER_SHIFT); ++ } else { ++ eperm = mask | (perms & AA_OTHER_EXEC_TYPE); ++ index = EXTRACT_X_INDEX(eperm, AA_OTHER_SHIFT) + (AA_EXEC_COUNT << 2); ++ } ++//fprintf(stderr, "index %d eperm 0x%x\n", index, eperm); ++ if (exact_match) { ++ if (exact_match_flags[ai][index]) { ++ flag = exact_match_flags[ai][index]->dup(); ++ } else { ++ exact_match_flags[ai][index] = new ExactMatchFlag(eperm, audit&mask); ++ flag = exact_match_flags[ai][index]->dup(); ++ } ++ } else { ++ if (exec_match_flags[ai][index]) { ++ flag = exec_match_flags[ai][index]->dup(); ++ } else { ++ exec_match_flags[ai][index] = new MatchFlag(eperm, audit&mask); ++ flag = exec_match_flags[ai][index]->dup(); ++ } ++ } ++ } else { ++ if (match_flags[ai][n]) { ++ flag = match_flags[ai][n]->dup(); ++ } else { ++ match_flags[ai][n] = new MatchFlag(mask, audit&mask); ++ flag = match_flags[ai][n]->dup(); ++ } ++ } ++ if (accept) ++ accept = new AltNode(accept, flag); ++ else ++ accept = flag; ++ } ++ } ++ ++ if (rules->root) ++ rules->root = new AltNode(rules->root, new CatNode(tree, accept)); ++ else ++ rules->root = new CatNode(tree, accept); ++ ++ return 1; ++ ++} ++ ++/* create a dfa from the ruleset ++ * returns: buffer contain dfa tables, @size set to the size of the tables ++ * else NULL on failure ++ */ ++extern "C" void *aare_create_dfa(aare_ruleset_t *rules, size_t *size, dfaflags_t flags) ++{ ++ char *buffer = NULL; ++ ++ label_nodes(rules->root); ++ if (flags & DFA_DUMP_TREE) { ++ cerr << "\nDFA: Expression Tree\n"; ++ rules->root->dump(cerr); ++ cerr << "\n\n"; ++ } ++ ++ if (!(flags & DFA_CONTROL_NO_TREE_SIMPLE)) { ++ rules->root = simplify_tree(rules->root, flags); ++ ++ if (flags & DFA_DUMP_SIMPLE_TREE) { ++ cerr << "\nDFA: Simplified Expression Tree\n"; ++ rules->root->dump(cerr); ++ cerr << "\n\n"; ++ } ++ } ++ ++ DFA dfa(rules->root, flags); ++ ++ if (flags & DFA_DUMP_STATES) ++ dfa.dump(cerr); ++ ++ if (flags & DFA_DUMP_GRAPH) ++ dfa.dump_dot_graph(cerr); ++ ++ map eq; ++ if (flags & DFA_CONTROL_EQUIV) { ++ eq = dfa.equivalence_classes(flags); ++ dfa.apply_equivalence_classes(eq); ++ ++ if (flags & DFA_DUMP_EQUIV) { ++ cerr << "\nDFA equivalence class\n"; ++ dump_equivalence_classes(cerr, eq); ++ } ++ } else if (flags & DFA_DUMP_EQUIV) ++ cerr << "\nDFA did not generate an equivalence class\n"; ++ ++ if (dfa.verify_perms()) { ++ *size = 0; ++ return NULL; ++ } ++ ++ stringstream stream; ++ TransitionTable transition_table(dfa, eq, flags); ++ if (flags & DFA_DUMP_TRANS_TABLE) ++ transition_table.dump(cerr); ++ transition_table.flex_table(stream, ""); ++ ++ stringbuf *buf = stream.rdbuf(); ++ ++ buf->pubseekpos(0); ++ *size = buf->in_avail(); ++ ++ buffer = (char *)malloc(*size); ++ if (!buffer) ++ return NULL; ++ buf->sgetn(buffer, *size); ++ return buffer; ++} +--- a/parser/parser_alias.c ++++ b/parser/parser_alias.c +@@ -17,6 +17,7 @@ + * along with this program; if not, contact Novell, Inc. + */ + ++#define _GNU_SOURCE 1 + #include + #include + #include +--- a/parser/parser_main.c ++++ b/parser/parser_main.c +@@ -38,7 +38,6 @@ + #include + + #include "parser.h" +-#include "parser_version.h" + #include "parser_include.h" + #include "libapparmor_re/apparmor_re.h" + +@@ -132,7 +131,7 @@ static int debug = 0; + + static void display_version(void) + { +- printf("%s version " PARSER_VERSION "\n%s\n", parser_title, ++ printf("%s version " PACKAGE_VERSION "\n%s\n", parser_title, + parser_copyright); + } + +--- a/parser/parser_policy.c ++++ b/parser/parser_policy.c +@@ -17,6 +17,7 @@ + * along with this program; if not, contact Novell, Inc. + */ + ++#define _GNU_SOURCE 1 + #include + #include + #include +--- a/parser/parser_regex.c ++++ b/parser/parser_regex.c +@@ -23,6 +23,8 @@ + #include + #define _(s) gettext(s) + ++#include ++ + /* #define DEBUG */ + + #include "parser.h" +--- a/parser/parser_symtab.c ++++ b/parser/parser_symtab.c +@@ -17,6 +17,7 @@ + * along with this program; if not, contact Novell, Inc. + */ + ++#define _GNU_SOURCE 1 + #include + #include + #include +--- a/parser/po/Makefile ++++ b/parser/po/Makefile +@@ -13,9 +13,11 @@ all: + + DISABLED_LANGS= + +-include ../common/Make-po.rules +-../common/Make-po.rules: +- make -C .. common/Make.rules ++NAME="apparmor-parser" ++ ++include ../../common/Make-po.rules ++../../common/Make-po.rules: ++ make -C ../.. common/Make.rules + + XGETTEXT_ARGS+=--language=C --keyword=_ $(shell if [ -f ${NAME}.pot ] ; then echo -n -j ; fi) + +--- /dev/null ++++ b/po/Makefile.am +@@ -0,0 +1,2 @@ ++ ++ +--- a/profiles/Makefile ++++ b/profiles/Makefile +@@ -21,16 +21,9 @@ + # Makefile for LSM-based AppArmor SuSE profiles + + NAME=apparmor-profiles +-ALL: +-COMMONDIR=../common/ ++all: + +-include common/Make.rules +- +-COMMONDIR_EXISTS=$(strip $(shell [ -d ${COMMONDIR} ] && echo true)) +-ifeq ($(COMMONDIR_EXISTS), true) +-common/Make.rules: $(COMMONDIR)/Make.rules +- ln -sf $(COMMONDIR) . +-endif ++include ../common/Make.rules + + DESTDIR=/ + PROFILES_DEST=${DESTDIR}/etc/apparmor.d +--- /dev/null ++++ b/tests/Makefile.am +@@ -0,0 +1 @@ ++SUBDIRS = regression +--- /dev/null ++++ b/tests/regression/Makefile.am +@@ -0,0 +1 @@ ++SUBDIRS = subdomain +--- /dev/null ++++ b/tests/regression/subdomain/Makefile.am +@@ -0,0 +1,109 @@ ++TESTS = access \ ++ capabilities \ ++ changeprofile \ ++ changehat \ ++ changehat_pthread \ ++ changehat_fork \ ++ changehat_misc \ ++ chdir \ ++ clone \ ++ deleted \ ++ environ \ ++ exec \ ++ exec_qual \ ++ fchdir \ ++ fork \ ++ i18n \ ++ link \ ++ link_subset \ ++ mkdir \ ++ mmap \ ++ mount \ ++ mult_mount \ ++ named_pipe \ ++ net_raw \ ++ open \ ++ openat \ ++ pipe \ ++ ptrace \ ++ pwrite \ ++ regex \ ++ rename \ ++ readdir \ ++ rw \ ++ swap \ ++ sd_flags \ ++ setattr \ ++ symlink \ ++ syscall \ ++ unix_fd_server \ ++ unlink\ ++ xattrs\ ++ longpath ++ ++check_PROGRAMS = $(TESTS) ++ ++ ++SOURCES = \ ++ access.c \ ++ changeprofile.c \ ++ changehat.c \ ++ changehat_fork.c \ ++ changehat_misc.c \ ++ changehat_misc2.c \ ++ changehat_twice.c \ ++ changehat_fail.c \ ++ changehat_wrapper.c \ ++ changehat_pthread.c \ ++ chdir.c \ ++ chgrp.c \ ++ chmod.c \ ++ chown.c \ ++ clone.c \ ++ deleted.c \ ++ environ.c \ ++ env_check.c \ ++ exec.c \ ++ exec_qual.c \ ++ exec_qual2.c \ ++ fchdir.c \ ++ fchgrp.c \ ++ fchmod.c \ ++ fchown.c \ ++ fork.c \ ++ link.c \ ++ link_subset.c \ ++ mmap.c \ ++ mkdir.c \ ++ mount.c \ ++ named_pipe.c \ ++ net_raw.c \ ++ open.c \ ++ openat.c \ ++ pipe.c \ ++ ptrace.c \ ++ ptrace_helper.c \ ++ pwrite.c \ ++ rename.c \ ++ readdir.c \ ++ rw.c \ ++ symlink.c \ ++ syscall_mknod.c \ ++ swap.c \ ++ syscall_chroot.c \ ++ syscall_mlockall.c \ ++ syscall_ptrace.c \ ++ syscall_reboot.c \ ++ syscall_setpriority.c \ ++ syscall_sethostname.c \ ++ syscall_setdomainname.c \ ++ syscall_setscheduler.c \ ++ syscall_sysctl.c \ ++ sysctl_proc.c \ ++ tcp.c \ ++ unix_fd_client.c \ ++ unix_fd_server.c \ ++ unlink.c \ ++ xattrs.c ++ ++changehat_pthread_LDFLAGS = -pthread +--- /dev/null ++++ b/utils/Makefile.PL +@@ -0,0 +1,15 @@ ++#!/usr/bin/perl -w ++ ++use ExtUtils::MakeMaker; ++ ++use vars qw($CFLAGS $OBJECT $VERSION $OPTIMIZE); ++ ++WriteMakefile( ++ 'NAME' => 'AppArmor', ++ 'MAKEFILE' => 'Makefile.perl', ++ 'FIRST_MAKEFILE' => 'Makefile.perl', ++ 'ABSTRACT' => q[AppArmor utility interface], ++ 'EXE_FILES'=> ['genprof', 'logprof', 'autodep', 'audit', ++ 'complain', 'enforce', 'unconfined', 'aa-eventd', ++ 'apparmor_status', 'apparmor_notify'], ++); +--- /dev/null ++++ b/utils/Makefile.am +@@ -0,0 +1,39 @@ ++dist_man_MANS = autodep.8 complain.8 enforce.8 logprof.8 genprof.8 \ ++ unconfined.8 audit.8 logprof.conf.5 apparmor_status.8 \ ++ aa-decode.8 apparmor_notify.8 ++noinst_DATA = $(addsuffix .html,$(dist_man_MANS)) ++ ++sbin_SCRIPTS = genprof logprof autodep audit complain enforce \ ++ unconfined aa-eventd apparmor_status aa-decode \ ++ apparmor_notify ++ ++perlmoddir =$(VENDOR_PERL)/Immunix ++ ++perlmod_DATA = SubDomain.pm Repository.pm Config.pm Reports.pm Severity.pm ++etc_apparmor_DATA = logprof.conf notify.conf severity.db ++ ++install-data-local: ++ $(mkinstalldirs) $(DESTDIR)/var/log/apparmor ++ ++CLEANFILES = $(dist_man_MANS) Makefile.perl blib $(dist_man_MANS) ++ ++PODARGS = --center=AppArmor --release=NOVELL/SUSE ++ ++pod2man = pod2man $(PODARGS) --section $(subst .,,$(suffix $<)) $< > $@ ++ ++.pod.5: ++ $(pod2man) ++.pod.7: ++ $(pod2man) ++.pod.8: ++ $(pod2man) ++ ++pod2html = pod2html --header --css ../common/apparmor.css --infile=$< --outfile=$@ ++ ++%.5.html : %.pod ++ $(pod2html) ++%.7.html : %.pod ++ $(pod2html) ++%.8.html : %.pod ++ $(pod2html) ++SUBDIRS = po +--- a/utils/po/Makefile ++++ b/utils/po/Makefile +@@ -19,10 +19,12 @@ all: + # As translations get added, they will automatically be included, unless + # the lang is explicitly added to DISABLED_LANGS; e.g. DISABLED_LANGS=en es + ++NAME="apparmor-utils" ++ + DISABLED_LANGS= + +-include ../common/Make-po.rules +-../common/Make-po.rules: +- make -C .. common/Make.rules ++include ../../common/Make-po.rules ++../../common/Make-po.rules: ++ make -C ../.. common/Make.rules + + XGETTEXT_ARGS+=--language=perl diff --git a/apparmor-2.5.1.tar.bz2 b/apparmor-2.5.1.tar.bz2 new file mode 100644 index 0000000..fca0f73 --- /dev/null +++ b/apparmor-2.5.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00334c3e5391fa1578aa177ec5da1232073bc88141c1a49c3ecb1814784cc99b +size 1293448 diff --git a/apparmor-docs-techdoc-grammar-fixes b/apparmor-docs-techdoc-grammar-fixes new file mode 100644 index 0000000..4dd79db --- /dev/null +++ b/apparmor-docs-techdoc-grammar-fixes @@ -0,0 +1,22 @@ +From: Jeff Mahoney +Subject: apparmor-docs: Fix grammar error in techdoc.pdf +References: bnc#588235 + + This patch fixes a grammar error in techdoc.pdf. + +Signed-off-by: Jeff Mahoney +--- + parser/techdoc.tex | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/parser/techdoc.tex ++++ b/parser/techdoc.tex +@@ -213,7 +213,7 @@ files by controlling file descriptor pas + + \subsection{Mount} + +-Mounting can change a process's namespace in in almost arbitrary ways. ++Mounting can change a process's namespace in almost arbitrary ways. + This is a problem because AppArmor's file access control is pathname + based, and granting a process the right to arbitrarily change its + namespace would subvert this protection mechanism. AppArmor therefore diff --git a/apparmor-no-caching-test b/apparmor-no-caching-test new file mode 100644 index 0000000..8b6fac9 --- /dev/null +++ b/apparmor-no-caching-test @@ -0,0 +1,15 @@ +--- + parser/tst/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/parser/tst/Makefile ++++ b/parser/tst/Makefile +@@ -12,7 +12,7 @@ endif + all: tests + + .PHONY: tests error_output parser_sanity caching +-tests: error_output parser_sanity caching ++tests: error_output parser_sanity + + error_output: $(PARSER) + $(PARSER) -S -I errors >/dev/null errors/okay.sd diff --git a/apparmor-parser-string-fixes b/apparmor-parser-string-fixes new file mode 100644 index 0000000..9bbdd98 --- /dev/null +++ b/apparmor-parser-string-fixes @@ -0,0 +1,19 @@ +From: Jeff Mahoney +Subject: apparmor-parser: Fix up translations +References: bnc#586070 + +--- + parser/parser_interface.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/parser/parser_interface.c ++++ b/parser/parser_interface.c +@@ -77,7 +77,7 @@ static void print_error(int error) + PERROR(_("Out of memory\n")); + break; + case -EFAULT: +- PERROR(_("Couldn't copy profile Bad memory address\n")); ++ PERROR(_("Couldn't copy profile: Bad memory address\n")); + break; + case -EPROTO: + PERROR(_("Profile doesn't conform to protocol\n")); diff --git a/apparmor-perl b/apparmor-perl new file mode 100644 index 0000000..5124ab8 --- /dev/null +++ b/apparmor-perl @@ -0,0 +1,16 @@ +--- + utils/Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/utils/Makefile ++++ b/utils/Makefile +@@ -41,7 +41,8 @@ all: ${MANPAGES} ${HTMLMANPAGES} + DESTDIR=/ + BINDIR=${DESTDIR}/usr/sbin + CONFDIR=${DESTDIR}/etc/apparmor +-PERLDIR=${DESTDIR}/usr/lib/perl5/vendor_perl/Immunix ++VENDOR_PERL ?= /usr/lib/perl5/vendor_perl ++PERLDIR := ${DESTDIR}${VENDOR_PERL}/Immunix + + po/${NAME}.pot: ${TOOLS} + make -C po ${NAME}.pot NAME=${NAME} SOURCES="${TOOLS} SubDomain.pm Repository.pm Config.pm Reports.pm" diff --git a/apparmor-profile-editor.desktop b/apparmor-profile-editor.desktop new file mode 100644 index 0000000..4d03fe1 --- /dev/null +++ b/apparmor-profile-editor.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=AppArmor Profile Editor +Comment=Edit AppArmor profiles +Exec=profileeditor %f +Terminal=false +Type=Application +Icon=apparmor-profile-editor +Categories=Utility;TextEditor; +X-KDE-SubstituteUID=true diff --git a/apparmor-profile-editor.png b/apparmor-profile-editor.png new file mode 100644 index 0000000..8edd2e6 --- /dev/null +++ b/apparmor-profile-editor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99e35156e4b59d83f418dc348626ea88651e548d9d734c7316d89b500adcce41 +size 3754 diff --git a/apparmor-profiles-cupsd-fix b/apparmor-profiles-cupsd-fix new file mode 100644 index 0000000..4ae9c06 --- /dev/null +++ b/apparmor-profiles-cupsd-fix @@ -0,0 +1,59 @@ +--- + profiles/apparmor/profiles/extras/usr.sbin.cupsd | 25 ++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +--- a/profiles/apparmor/profiles/extras/usr.sbin.cupsd ++++ b/profiles/apparmor/profiles/extras/usr.sbin.cupsd +@@ -16,20 +16,31 @@ + capability setuid, + + /bin/bash ixr, ++ /bin/cat ix, ++ ++ /usr/bin/foomatic-rip ixr, ++ /etc/foomatic/** r, ++ ++ /usr/bin/gs ix, ++ /usr/lib/ghostscript/** m, ++ /usr/lib64/ghostscript/** m, ++ /usr/share/ghostscript/** r, ++ /etc/ghostscript/** r, ++ + /dev/lp0 rw, + /dev/tty rw, + /dev/ttyS? w, + /etc/cups rw, + /etc/cups/ r, +- /etc/cups/* r, ++ /etc/cups/** r, + /etc/cups/certs w, + /etc/cups/certs/* w, +- /etc/cups/classes.conf rw, +- /etc/cups/cupsd.conf rw, ++ /etc/cups/*.conf* rw, + /etc/cups/ppd rw, ++ /etc/printcap rw, + /etc/cups/printcap rw, +- /etc/cups/printers.conf rw, + /etc/cups/ssl rw, ++ /etc/cups/yes/* rw, + /etc/hosts.allow r, + /etc/hosts.deny r, + /proc/meminfo r, +@@ -39,11 +50,15 @@ + /usr/bin/smbspool ixr, + /usr/lib/cups/backend/* ixr, + /usr/lib/cups/filter/* ixr, +- /usr/sbin/cupsd mr, ++ /usr/sbin/cupsd mixr, + /usr/share/cups/** r, + /var/log/cups/access_log rw, + /var/log/cups/error_log rw, + /var/spool/cups rw, ++ /var/spool/cups/** rw, + /var/spool/cups/tmp w, + /var/spool/cups/tmp/ r, ++ /var/run/cups/** rw, ++ /var/cache/cups/ rw, ++ /var/cache/cups/** rw, + } diff --git a/apparmor-profiles-sshd-fix b/apparmor-profiles-sshd-fix new file mode 100644 index 0000000..b4428a8 --- /dev/null +++ b/apparmor-profiles-sshd-fix @@ -0,0 +1,38 @@ +From: Jeff Mahoney +Subject: Fix for sshd profile +References: bnc#457072 + + Without this patch, sshd won't work in enforce mode. + + libselinux accesses /proc/filesystems to determine if it's enabled + bash won't execute + audit_control is probably from libselinux too +--- + profiles/apparmor/profiles/extras/usr.sbin.sshd | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/profiles/apparmor/profiles/extras/usr.sbin.sshd ++++ b/profiles/apparmor/profiles/extras/usr.sbin.sshd +@@ -30,6 +30,8 @@ + capability kill, + capability setgid, + capability setuid, ++ capability audit_control, ++ capability sys_ptrace, + + /dev/ptmx rw, + /dev/urandom r, +@@ -44,11 +46,12 @@ + + @{PROC}/[0-9]*/fd/ r, + @{PROC}/[0-9]*/loginuid w, ++ @{PROC}/filesystems r, + + # should only be here for use in non-change-hat openssh + # duplicated from EXEC hat + /bin/ash Ux, +- /bin/bash Ux, ++ /bin/bash rUx, + /bin/bash2 Ux, + /bin/bsh Ux, + /bin/csh Ux, diff --git a/apparmor-profiles-syslog-ng-fix b/apparmor-profiles-syslog-ng-fix new file mode 100644 index 0000000..839d4b7 --- /dev/null +++ b/apparmor-profiles-syslog-ng-fix @@ -0,0 +1,33 @@ +--- a/profiles/apparmor.d/sbin.syslog-ng.old 2008-11-05 15:53:00.000000000 +0100 ++++ b/profiles/apparmor.d/sbin.syslog-ng 2010-11-05 09:11:23.186489224 +0100 +@@ -19,12 +19,14 @@ + #include + #include + #include ++ #include + + capability chown, + capability dac_override, + capability fsetid, + capability fowner, + capability sys_tty_config, ++ capability sys_resource, + + /dev/log w, + /dev/syslog w, +@@ -35,11 +37,14 @@ + /etc/hosts.deny r, + /etc/hosts.allow r, + /sbin/syslog-ng mr, ++ /usr/share/syslog-ng/** r, + # chrooted applications + @{CHROOT_BASE}/var/lib/*/dev/log w, +- @{CHROOT_BASE}/var/lib/syslog-ng/syslog-ng.persist rw, ++ @{CHROOT_BASE}/var/lib/syslog-ng/syslog-ng.persist* rw, + @{CHROOT_BASE}/var/log/** w, + @{CHROOT_BASE}/var/run/syslog-ng.pid krw, ++ @{CHROOT_BASE}/var/run/syslog-ng.ctl rw, ++ /var/run/syslog-ng/additional-log-sockets.conf r, + + } + diff --git a/apparmor-scripts b/apparmor-scripts new file mode 100644 index 0000000..523eb40 --- /dev/null +++ b/apparmor-scripts @@ -0,0 +1,119 @@ +--- + + parser/rc.aaeventd.suse | 2 +- + parser/rc.apparmor.functions | 16 ++++++++-------- + parser/rc.apparmor.suse | 23 ++++++++++++++++++++++- + 3 files changed, 31 insertions(+), 10 deletions(-) + +--- a/parser/rc.aaeventd.suse ++++ b/parser/rc.aaeventd.suse +@@ -30,7 +30,7 @@ + ### BEGIN INIT INFO + # Provides: aaeventd + # Required-Start: apparmor +-# Required-Stop: ++# Required-Stop: $null + # Default-Start: 2 3 5 + # Default-Stop: + # Short-Description: AppArmor Notification and Reporting +--- a/parser/rc.apparmor.functions ++++ b/parser/rc.apparmor.functions +@@ -111,9 +111,7 @@ is_apparmor_present() { + # check for subdomainfs version of module + grep -qE "^($modules)[[:space:]]" /proc/modules + +- if [ $? -ne 0 ] ; then +- ls /sys/module/apparmor 2>/dev/null | grep -qE "^($modules)" +- fi ++ [ $? -ne 0 -a -d /sys/module/apparmor ] + + return $? + } +@@ -380,10 +378,11 @@ apparmor_start() { + configure_owlsm + + # if there is anything in the profiles file don't load +- cat "$SFS_MOUNTPOINT/profiles" | if ! read line ; then ++ if ! read line < "$SFS_MOUNTPOINT/profiles"; then + parse_profiles load + else +- aa_log_skipped_msg "AppArmor already loaded with profiles." ++ aa_log_skipped_msg ": already loaded with profiles." ++ return 0 + fi + aa_log_end_msg 0 + return 0 +@@ -415,7 +414,8 @@ remove_profiles() { + #them so stor to tmp first + MODULE_PLIST=$(mktemp ${APPARMOR_TMPDIR}/tmp.XXXXXXXX) + sed -e "s/ (\(enforce\|complain\))$//" "$SFS_MOUNTPOINT/profiles" | sort >"$MODULE_PLIST" +- cat "$MODULE_PLIST" | while read profile ; do ++ # Skip subprofiles, they'll be removed with the owning profile ++ grep -v // "$MODULE_PLIST" | while IFS= read profile ; do + echo -n "$profile" > "$SFS_MOUNTPOINT/.remove" + rc=$? + if [ ${rc} -ne 0 ] ; then +@@ -430,7 +430,7 @@ apparmor_stop() { + aa_log_daemon_msg "Unloading AppArmor profiles " + remove_profiles + rc=$? +- log_end_msg $rc ++ aa_log_end_msg $rc + return $rc + } + +@@ -468,7 +468,7 @@ __apparmor_restart() { + profiles_names_list ${PNAMES_LIST} + MODULE_PLIST=$(mktemp ${APPARMOR_TMPDIR}/tmp.XXXXXXXX) + sed -e "s/ (\(enforce\|complain\))$//" "$SFS_MOUNTPOINT/profiles" | sort >"$MODULE_PLIST" +- sort "$PNAMES_LIST" | comm -2 -3 "$MODULE_PLIST" - | while read profile ; do ++ sort "$PNAMES_LIST" | comm -2 -3 "$MODULE_PLIST" - | while IFS= read profile ; do + echo -n "$profile" > "$SFS_MOUNTPOINT/.remove" + done + rm "$MODULE_PLIST" +--- a/parser/rc.apparmor.suse ++++ b/parser/rc.apparmor.suse +@@ -34,6 +34,7 @@ + # Required-Start: boot.cleanup + # Required-Stop: $null + # Should-Start: $local_fs ++# Should-Stop: $null + # Default-Start: B + # Default-Stop: + # Short-Description: AppArmor initialization +@@ -76,7 +77,19 @@ aa_log_warning_msg() { + } + + aa_log_failure_msg() { +- log_failure_msg $* ++ log_failure_msg '\n'$* ++} ++ ++aa_log_action_begin() { ++ echo -n ++} ++ ++aa_log_action_end() { ++ echo -n ++} ++ ++aa_log_daemon_msg() { ++ echo -en "$@ " + } + + aa_log_skipped_msg() { +@@ -84,6 +97,14 @@ aa_log_skipped_msg() { + echo -e "$rc_skipped" + } + ++aa_log_end_msg() { ++ v="-v" ++ if [ "$1" != '0' ]; then ++ rc="-v$1" ++ fi ++ rc_status $v ++} ++ + usage() { + echo "Usage: $0 {start|stop|restart|try-restart|reload|force-reload|status|kill}" + } diff --git a/apparmor-startproc.patch b/apparmor-startproc.patch new file mode 100644 index 0000000..12c9e3d --- /dev/null +++ b/apparmor-startproc.patch @@ -0,0 +1,18 @@ +--- + parser/rc.aaeventd.suse | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/parser/rc.aaeventd.suse ++++ b/parser/rc.aaeventd.suse +@@ -81,9 +81,9 @@ usage() { + + start_aa_event() { + if [ -x "$AA_EV_BIN" -a "${APPARMOR_ENABLE_AAEVENTD}" = "yes" ] ; then +- sd_action "Starting AppArmor Event daemon" startproc -f -p $AA_EV_PIDFILE $AA_EV_BIN -p $AA_EV_PIDFILE ++ sd_action "Starting AppArmor Event daemon" startproc -p $AA_EV_PIDFILE $AA_EV_BIN -p $AA_EV_PIDFILE + elif [ -x "$SD_EV_BIN" -a "${APPARMOR_ENABLE_AAEVENTD}" = "yes" ] ; then +- sd_action "Starting AppArmor Event daemon" startproc -f -p $SD_EV_PIDFILE $SD_EV_BIN -p $SD_EV_PIDFILE ++ sd_action "Starting AppArmor Event daemon" startproc -p $SD_EV_PIDFILE $SD_EV_BIN -p $SD_EV_PIDFILE + fi + } + diff --git a/apparmor-swig-build-fix b/apparmor-swig-build-fix new file mode 100644 index 0000000..de910be --- /dev/null +++ b/apparmor-swig-build-fix @@ -0,0 +1,15 @@ +--- + + libraries/libapparmor/swig/perl/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +--- a/libraries/libapparmor/swig/perl/Makefile.am ++++ b/libraries/libapparmor/swig/perl/Makefile.am +@@ -9,6 +9,7 @@ MOSTLYCLEANFILES=libapparmor_wrap.c LibA + + Makefile.perl: Makefile.PL + $(PERL) $< PREFIX=$(prefix) MAKEFILE=$@ ++ sed -ie 's/^LD_RUN_PATH.*//g' Makefile.perl + + LibAppArmor.so: libapparmor_wrap.c Makefile.perl + if test ! -f libapparmor_wrap.c; then cp $(srcdir)/libapparmor_wrap.c . ; fi diff --git a/apparmor-translation-fixes b/apparmor-translation-fixes new file mode 100644 index 0000000..0bb0bcc --- /dev/null +++ b/apparmor-translation-fixes @@ -0,0 +1,24 @@ +--- + utils/SubDomain.pm | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/utils/SubDomain.pm ++++ b/utils/SubDomain.pm +@@ -2304,7 +2304,7 @@ sub handlechildren { + unless (-e getprofilefilename($exec_target)) { + my $ynans = "y"; + if ($exec_mode & str_to_mode("i")) { +- $ynans = UI_YesNo(sprintf(gettext("A profile for %s does not exist create one?"), $exec_target), "n"); ++ $ynans = UI_YesNo(sprintf(gettext("A profile for %s does not exist. Create one?"), $exec_target), "n"); + } + if ($ynans eq "y") { + $helpers{$exec_target} = "enforce"; +@@ -2331,7 +2331,7 @@ sub handlechildren { + unless ($sd{$profile}{$exec_target}) { + my $ynans = "y"; + if ($exec_mode & str_to_mode("i")) { +- $ynans = UI_YesNo(sprintf(gettext("A local profile for %s does not exist create one?"), $exec_target), "n"); ++ $ynans = UI_YesNo(sprintf(gettext("A local profile for %s does not exist. Create one?"), $exec_target), "n"); + } + if ($ynans eq "y") { + $hat = $exec_target; diff --git a/apparmor-utils-SubDomain b/apparmor-utils-SubDomain new file mode 100644 index 0000000..a4a8e29 --- /dev/null +++ b/apparmor-utils-SubDomain @@ -0,0 +1,107 @@ +--- + utils/Reports.pm | 2 +- + utils/SubDomain.pm | 2 +- + utils/genprof | 4 ++-- + utils/rc.sd-event-dispatch.suse | 10 +++++----- + utils/unconfined | 2 +- + 5 files changed, 10 insertions(+), 10 deletions(-) + +--- a/utils/Reports.pm ++++ b/utils/Reports.pm +@@ -14,7 +14,7 @@ package Immunix::Reports; + ################################################################################ + # /usr/lib/perl5/site_perl/Reports.pm + # +-# - Parses /var/log/messages for SubDomain messages ++# - Parses /var/log/messages for AppArmor messages + # - Writes results to .html or comma-delimited (.csv) files (Optional) + # + # Requires: +--- a/utils/SubDomain.pm ++++ b/utils/SubDomain.pm +@@ -1590,7 +1590,7 @@ my %CMDS = ( + CMD_GLOBEXT => "Glob w/(E)xt", + CMD_ADDHAT => "(A)dd Requested Hat", + CMD_USEDEFAULT => "(U)se Default Hat", +- CMD_SCAN => "(S)can system log for SubDomain events", ++ CMD_SCAN => "(S)can system log for AppArmor events", + CMD_HELP => "(H)elp", + CMD_VIEW_PROFILE => "(V)iew Profile", + CMD_USE_PROFILE => "(U)se Profile", +--- a/utils/genprof ++++ b/utils/genprof +@@ -52,7 +52,7 @@ GetOptions( + + my $sd_mountpoint = check_for_subdomain(); + unless ($sd_mountpoint) { +- fatal_error(gettext("SubDomain does not appear to be started. Please enable SubDomain and try again.")); ++ fatal_error(gettext("AppArmor does not appear to be started. Please enable AppArmor and try again.")); + } + + # let's convert it to full path... +@@ -166,7 +166,7 @@ for my $p (sort keys %helpers) { + } + } + +-UI_Info(gettext("Reloaded SubDomain profiles in enforce mode.")); ++UI_Info(gettext("Reloaded AppArmor profiles in enforce mode.")); + UI_Info(sprintf(gettext('Finished generating profile for %s.'), $fqdbin)); + exit 0; + +--- a/utils/rc.sd-event-dispatch.suse ++++ b/utils/rc.sd-event-dispatch.suse +@@ -7,14 +7,14 @@ + # /usr/sbin/rcsd-event-dispatch + # + # chkconfig: 2345 01 99 +-# description: SubDomain event dispatcher ++# description: AppArmor event dispatcher + # + ### BEGIN INIT INFO + # Provides: sd-event-dispatch + # Required-Start: subdomain + # Default-Start: 3 4 5 + # Default-Stop: 0 1 2 6 +-# Description: Start the SubDomain event dispacher ++# Description: Start the AppArmor event dispacher + ### END INIT INFO + + SD_EV_BIN=/usr/sbin/sd-event-dispatch.pl +@@ -38,7 +38,7 @@ rc_reset + + case "$1" in + start) +- echo -n "Starting SubDomain Event daemon" ++ echo -n "Starting AppArmor Event daemon" + ## Start daemon with startproc(8). If this fails + ## the echo return value is set appropriate. + +@@ -48,7 +48,7 @@ case "$1" in + rc_status -v + ;; + stop) +- echo -n "Shutting down SubDomain Event daemon" ++ echo -n "Shutting down AppArmor Event daemon" + ## Stop daemon with killproc(8) and if this fails + ## set echo the echo return value. + +@@ -75,7 +75,7 @@ case "$1" in + rc_status + ;; + status) +- echo -n "Checking for SubDomain Event daemon" ++ echo -n "Checking for AppArmor Event daemon" + ## Check status with checkproc(8), if process is running + ## checkproc will return with exit status 0. + +--- a/utils/unconfined ++++ b/utils/unconfined +@@ -54,7 +54,7 @@ sub usage { + + my $subdomainfs = check_for_subdomain(); + +-die gettext("SubDomain does not appear to be started. Please enable SubDomain and try again.") . "\n" ++die gettext("AppArmor does not appear to be started. Please enable AppArmor and try again.") . "\n" + unless $subdomainfs; + + my @pids; diff --git a/apparmor-utils-add-log-types b/apparmor-utils-add-log-types new file mode 100644 index 0000000..65a0e4e --- /dev/null +++ b/apparmor-utils-add-log-types @@ -0,0 +1,26 @@ +From: Jeff Mahoney +Subject: apparmor-utils: Add support for creds and path operations +References: bnc#564316 + + 2.6.29 introduced the path security_operations and credentials + + This patch adds support for those operations to the log parser. + +Signed-off-by: Jeff Mahoney +--- + utils/SubDomain.pm | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/utils/SubDomain.pm ++++ b/utils/SubDomain.pm +@@ -2789,7 +2789,9 @@ sub add_event_to_tree ($) { + "" + ); + } +- } elsif ($e->{operation} =~ m/file_/) { ++ } elsif ($e->{operation} =~ m/file_/ or ++ # These are the path operations introduced in 2.6.29 ++ $e->{operation} =~ m/^(open|unlink|mkdir|rmdir|mknod|truncate|symlink_create|link|rename_src|rename_dest)$/) { + add_to_tree( $e->{pid}, + $e->{parent}, + "path", diff --git a/apparmor-utils-cleanup-on-abort b/apparmor-utils-cleanup-on-abort new file mode 100644 index 0000000..1e9183c --- /dev/null +++ b/apparmor-utils-cleanup-on-abort @@ -0,0 +1,29 @@ +From: Jeff Mahoney +Subject: [PATCH] apparmor-utils: cleanup after abort in genprof +References: bnc#307067 + + The initial generation of the base profile is required to be written out + to put the process in complain mode for observation. If the user + decides to abort the profiling session, that base profile is left + behind. + + This patch removes all profiles created during the run up to an abort. + +Signed-off-by: Jeff Mahoney +--- + + utils/SubDomain.pm | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/utils/SubDomain.pm ++++ b/utils/SubDomain.pm +@@ -1750,6 +1750,9 @@ sub confirm_and_abort { + if ($ans eq "y") { + UI_Info(gettext("Abandoning all changes.")); + shutdown_yast(); ++ foreach my $prof (@created) { ++ delete_profile($prof); ++ } + exit 0; + } + } diff --git a/apparmor-utils-filenames-in-slash b/apparmor-utils-filenames-in-slash new file mode 100644 index 0000000..e35333e --- /dev/null +++ b/apparmor-utils-filenames-in-slash @@ -0,0 +1,36 @@ +From: Jeff Mahoney +Subject: apparmor-utils: Fix handling of files in / +References: bnc#397883 + + The separate handling of files and directories with realpath is broken. + + For files e.g. /foo, $dir ends up being empty since the / is eaten by + the regex. realpath resolves an empty argument as the current directory, + resulting in an incorrect path. + + There's no explanation of why the separate handling was used in the + first place. + +Signed-off-by: Jeff Mahoney +--- + utils/SubDomain.pm | 9 +-------- + 1 file changed, 1 insertion(+), 8 deletions(-) + +--- a/utils/SubDomain.pm ++++ b/utils/SubDomain.pm +@@ -511,14 +511,7 @@ sub get_full_path ($) { + } + } + +- if (-f $path) { +- my ($dir, $file) = $path =~ m/^(.*)\/(.+)$/; +- $path = realpath($dir) . "/$file"; +- } else { +- $path = realpath($path); +- } +- +- return $path; ++ return realpath($path); + } + + sub findexecutable ($) { diff --git a/apparmor-utils-null-path-fix b/apparmor-utils-null-path-fix new file mode 100644 index 0000000..6485c54 --- /dev/null +++ b/apparmor-utils-null-path-fix @@ -0,0 +1,25 @@ +From: Jeff Mahoney +Subject: Subdomain.pm: Fix for null path +References: bnc#407959 + +When handling the following log entry, logprof will spew perl errors and +ultimately generate an invalid config: "r," + +Since there is nothing to do with a null path, just skip to the next entry. + +type=APPARMOR_DENIED msg=audit(1214497030.421:39): operation="inode_permission" info="Failed name resolution - object not a valid entry" requested_mask="r" denied_mask="r" pid=31367 profile="/usr/sbin/httpd2-worker +--- + utils/SubDomain.pm | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/utils/SubDomain.pm ++++ b/utils/SubDomain.pm +@@ -1905,7 +1905,7 @@ sub handlechildren { + $hat = $h; + } + +- next unless $profile && $hat; ++ next unless $profile && $hat && $detail; + my $domainchange = ($type eq "exec") ? "change" : "nochange"; + + # escape special characters that show up in literal paths diff --git a/apparmor-utils-string-split b/apparmor-utils-string-split new file mode 100644 index 0000000..5f80c57 --- /dev/null +++ b/apparmor-utils-string-split @@ -0,0 +1,24 @@ +From: Jeff Mahoney +Subject: SubDomain.pm: Split long string + + The string split here ends up not displaying well in yast. +--- + utils/SubDomain.pm | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +--- a/utils/SubDomain.pm ++++ b/utils/SubDomain.pm +@@ -6241,7 +6241,12 @@ sub check_qualifiers { + + if ($cfg->{qualifiers}{$program}) { + unless($cfg->{qualifiers}{$program} =~ /p/) { +- fatal_error(sprintf(gettext("\%s is currently marked as a program that should not have it's own profile. Usually, programs are marked this way if creating a profile for them is likely to break the rest of the system. If you know what you're doing and are certain you want to create a profile for this program, edit the corresponding entry in the [qualifiers] section in /etc/apparmor/logprof.conf."), $program)); ++ fatal_error(sprintf(gettext( ++"\%s is currently marked as a program that should not have its own\n". ++"profile. Usually, programs are marked this way if creating a profile for \n". ++"them is likely to break the rest of the system. If you know what you're\n". ++"doing and are certain you want to create a profile for this program, edit\n". ++"the corresponding entry in the [qualifiers] section in /etc/apparmor/logprof.conf."), $program)); + } + } + } diff --git a/apparmor-utils-support-newer-auditd-formatted-messages b/apparmor-utils-support-newer-auditd-formatted-messages new file mode 100644 index 0000000..8e523a0 --- /dev/null +++ b/apparmor-utils-support-newer-auditd-formatted-messages @@ -0,0 +1,24 @@ +From: Steve Beattie +Subject: apparmor-utils: Support newer auditd formatted messages. + + Patch from mancha on irc. + + This is lp:apparmor/2.5 commit r1444. + +Acked-By: Steve Beattie +Acked-by: Jeff Mahoney +--- + utils/SubDomain.pm | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/utils/SubDomain.pm ++++ b/utils/SubDomain.pm +@@ -2420,7 +2420,7 @@ + my $RE_LOG_v2_1_audit = + qr/type=(UNKNOWN\[150[1-6]\]|APPARMOR_(AUDIT|ALLOWED|DENIED|HINT|STATUS|ERROR))/; + my $RE_LOG_v2_6_audit = +- qr/type=AVC\s+audit\([\d\.\:]+\):\s+apparmor=/; ++ qr/type=AVC\s+(msg=)?audit\([\d\.\:]+\):\s+apparmor=/; + + sub prefetch_next_log_entry { + # if we already have an existing cache entry, something's broken diff --git a/apparmor-utils-translation-unification b/apparmor-utils-translation-unification new file mode 100644 index 0000000..72011ce --- /dev/null +++ b/apparmor-utils-translation-unification @@ -0,0 +1,54 @@ +From: Jeff Mahoney +Subject: apparmor-utils: Translation unification +References: bnc#586072 + + This patch removes small inconsistencies between identical strings to + allow for easier translation. + +Reported-by: Isis Binder +Signed-off-by: Jeff Mahoney +--- + utils/Reports.pm | 6 +++--- + utils/unconfined | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +--- a/utils/Reports.pm ++++ b/utils/Reports.pm +@@ -967,7 +967,7 @@ sub getEssStats { + }; + + if ($@) { +- ycp::y2error(sprintf(gettext("DBI Execution failed: %s"), $DBI::errstr)); ++ ycp::y2error(sprintf(gettext("DBI Execution failed: %s."), $DBI::errstr)); + return; + } + +@@ -980,7 +980,7 @@ sub getEssStats { + }; + + if ($@) { +- ycp::y2error(sprintf(gettext("DBI Execution failed: %s"), $DBI::errstr)); ++ ycp::y2error(sprintf(gettext("DBI Execution failed: %s."), $DBI::errstr)); + return; + } + +@@ -988,7 +988,7 @@ sub getEssStats { + eval { $ret = $dbh->selectall_arrayref("$query"); }; + + if ($@) { +- ycp::y2error(sprintf(gettext("DBI Execution failed: %s"), $DBI::errstr)); ++ ycp::y2error(sprintf(gettext("DBI Execution failed: %s."), $DBI::errstr)); + return; + } + +--- a/utils/unconfined ++++ b/utils/unconfined +@@ -54,7 +54,7 @@ sub usage { + + my $subdomainfs = check_for_subdomain(); + +-die gettext("AppArmor does not appear to be started. Please enable AppArmor and try again.") . "\n" ++die gettext("AppArmor does not appear to be started. Please enable AppArmor and try again.") . "\n" + unless $subdomainfs; + + my @pids; diff --git a/apparmor.changes b/apparmor.changes new file mode 100644 index 0000000..581db7c --- /dev/null +++ b/apparmor.changes @@ -0,0 +1,95 @@ +------------------------------------------------------------------- +Mon Jan 10 19:27:01 CET 2011 - jeffm@suse.de + +- apparmor-utils: Support newer auditd formatted messages. +- Fix two x transition conflict bugs. (bnc#662928) + +------------------------------------------------------------------- +Thu Jan 6 16:23:19 UTC 2011 - rhafer@suse.de + +- Splitted ldap related things from nameservice into separate + profile and added some missing paths (bnc#662761) + +------------------------------------------------------------------- +Wed Dec 22 03:41:43 CET 2010 - jeffm@suse.de + +- Fixed pod2man macros with older versions of GNU make + +------------------------------------------------------------------- +Tue Dec 21 00:36:39 CET 2010 - jeffm@suse.de + +- Fixed building of perl and ruby SWIG modules. The former + is required for apparmor-utils to work properly. + +------------------------------------------------------------------- +Tue Dec 7 18:22:55 CET 2010 - jeffm@suse.de + +- Fixed use-after-free issue in apparmor_parser. + +------------------------------------------------------------------- +Tue Dec 7 17:52:59 CET 2010 - jeffm@suse.de + +- Added fixes for logprof issuing uninitialized variable errors + while encountering audit messages for unconfined processes. + +------------------------------------------------------------------- +Wed Dec 1 19:52:58 CET 2010 - jeffm@suse.de + +- Updated cupsd profile (bnc#539401) + +------------------------------------------------------------------- +Wed Dec 1 19:00:56 CET 2010 - jeffm@suse.de + +- Fix {proc} vs {PROC} macro usage in firefox profile (bnc#436262) + +------------------------------------------------------------------- +Wed Dec 1 18:41:31 CET 2010 - jeffm@suse.de + +- Added support for eDirectory nameservice (bnc#621394) + +------------------------------------------------------------------- +Wed Dec 1 18:05:44 CET 2010 - jeffm@suse.de + +- Fixed incorrect /proc/*/sys usage in usr.sbin.ntpd profile (bnc#634801) + +------------------------------------------------------------------- +Wed Dec 1 17:39:08 CET 2010 - jeffm@suse.de + +- Added fix for another case of whitespace affecting profile + removal (bnc#510740) + +------------------------------------------------------------------- +Tue Nov 30 12:00:00 CET 2010 - jeffm@suse.de + +- Added support for unified build, which massively simplified + the packaging. + +------------------------------------------------------------------- +Fri Nov 15 21:22:46 CET 2010 - czanik@balabit.hu + +- Fix for syslog-ng profile to allow upgrade to v3.2 +- add mysql support to syslog-ng profile + +------------------------------------------------------------------- +Thu Oct 21 15:16:38 CEST 2010 - jeffm@suse.de + +- Added support for enabling/disabling the module automatically + during installation/removal (bnc#623246) + +------------------------------------------------------------------- +Tue Oct 5 17:58:31 CEST 2010 - jeffm@suse.de + +- Converted archive to tar.bz2. + +------------------------------------------------------------------- +Tue Oct 5 17:49:16 CEST 2010 - jeffm@suse.de + +- Updated to 2.5.1-final. + - Lots of testcase updates. + +------------------------------------------------------------------- +Fri Aug 27 21:21:38 CEST 2010 - jeffm@suse.de + +- Initial packaging of AppArmor 2.5 + - Now contained in a single archive so built from a single spec file + diff --git a/apparmor.spec b/apparmor.spec new file mode 100644 index 0000000..dfde40d --- /dev/null +++ b/apparmor.spec @@ -0,0 +1,809 @@ +# +# spec file for package apparmor-parser (Version 2.3.1) +# +# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +%bcond_without tomcat +%bcond_without pam +%bcond_without apache +%bcond_with python +%bcond_with ruby +%bcond_with gnome +%bcond_with dbus +%bcond_with editor + +%define CATALINA_HOME /usr/share/tomcat6 +%define APPARMOR_DOC_DIR /usr/share/doc/packages/apparmor-docs/ +%define JNI_SO libJNIChangeHat.so +%define JAR_FILE changeHatValve.jar +%define apache_module_path %(/usr/sbin/apxs2 -q LIBEXECDIR) + +Name: apparmor +%if ! %{?distro:1}0 +%if %{?suse_version:1}0 + %define distro suse +%endif +%if %{?fedora_version:1}0 + %define distro redhat +%endif +%endif +%if ! %{?distro:1}0 + %define distro suse +%endif +Summary: AppArmor userlevel parser utility +Version: 2.5.1 +Release: 42 +Group: Productivity/Networking/Security +Source0: apparmor-%{version}.tar.bz2 +Source1: %{name}-profile-editor.png +Source2: %{name}-profile-editor.desktop +Source3: update-trans.sh +Patch: testsuite-build-fix +Patch1: pam-apparmor-include +Patch2: mod_apparmor-includes +Patch3: tomcat-build-fixes +Patch4: apparmor-swig-build-fix +Patch5: apparmor-scripts +Patch6: apparmor-translation-fixes +Patch7: apparmor-perl +Patch8: apparmor-no-caching-test +Patch9: apparmorapplet-gnome-build-fix +Patch10: apparmor-utils-SubDomain +Patch11: apparmor-utils-cleanup-on-abort +Patch12: apparmor-utils-translation-unification +Patch13: apparmor-utils-add-log-types +Patch14: apparmor-utils-filenames-in-slash +Patch15: apparmor-utils-null-path-fix +Patch16: apparmor-utils-string-split +Patch17: apparmor-profiles-cupsd-fix +Patch18: apparmor-profiles-sshd-fix +Patch19: apparmor-profiles-syslog-ng-fix +Patch20: apparmor-docs-techdoc-grammar-fixes +Patch21: apparmor-parser-string-fixes +Patch22: apparmor-startproc.patch +Patch23: apparmor-2.5.1-unified-build +Patch24: apparmor-2.5.1-rpmlint-asprintf +Patch25: apparmor-2.5.1-ntpd-proc-fixes +Patch26: apparmor-2.5.1-edirectory-profile +Patch27: apparmor-2.5.1-firefox-proc-fix +Patch28: apparmor-2.5.1-unconfined-fixes +Patch29: apparmor-2.5.1-fix-parser-use-after-free +Patch30: apparmor-2.5.1-ldapclient-profile +Patch31: apparmor-utils-support-newer-auditd-formatted-messages +Patch32: fix-two-x-transition-conflict-bugs +License: GPLv2+ +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Url: https://launchpad.net/apparmor +PreReq: sed +%if %{distro} == "suse" +PreReq: %{insserv_prereq} aaa_base +%endif +BuildRequires: gcc-c++ +BuildRequires: pkg-config +BuildRequires: pcre-devel +%define apparmor_bin_prefix /lib/apparmor +BuildRequires: bison flex latex2html w3m +BuildRequires: texlive-latex + +BuildRequires: swig + +%if %{with python} +BuildRequires: swig python-devel +%endif + +%if %{with ruby} +BuildRequires: swig ruby-devel +%endif + +%if %{with pam} +BuildRequires: pam-devel +Requires: pam pam-config +PreReq: pam pam-config +%endif + +%if %{with apache} +BuildRequires: apache2-devel +%endif + +%if %{with tomcat} +BuildRequires: java-devel >= 1.6.0 ant tomcat6 +%endif + +%if %{with editor} +BuildRequires: gcc-c++ update-desktop-files wxGTK-devel +%endif + +%if %{with gnome} +BuildRequires: gnome-common +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(libgnome-2.0) +BuildRequires: pkgconfig(libpanelapplet-2.0) +%endif + +%if %{with dbus} +BuildRequires: audit-devel dbus-1-devel libapparmor-devel pkg-config +%endif + +%package parser +Summary: AppArmor userlevel parser utility +Group: Productivity/Networking/Security +Obsoletes: subdomain_parser < %{version} +Obsoletes: subdomain-parser < %{version} +Obsoletes: subdomain-parser-demo < %{version} +Obsoletes: subdomain-parser-common < %{version} +Obsoletes: subdomain-leaf-cert < %{version} +Obsoletes: libimnxcert < %{version} +Provides: subdomain_parser = %{version} +Provides: subdomain-parser = %{version} +Provides: subdomain-parser-demo = %{version} +Provides: subdomain-parser-common = %{version} +Provides: subdomain-leaf-cert = %{version} +Provides: libimnxcert = %{version} + +%description parser +The AppArmor Parser is a userlevel program that is used to load in +program profiles to the AppArmor Security kernel module. + +This package is part of a suite of tools that used to be named +SubDomain. + +%package docs +Summary: AppArmor Documentation package +Group: Documentation/Other + +%description docs +This package contains documentation for AppArmor. + +This package is part of a suite of tools that used to be named +SubDomain. + + + +Authors: +-------- + lcambell@novell.com + Seth Arnold + +%if %{with apache} +%package -n apache2-mod_apparmor +Summary: AppArmor module for apache2 +Group: Productivity/Security +%description -n apache2-mod_apparmor +apache2-modapparmor adds support to apache2 to provide AppArmor +confinement to individual cgi scripts handled by apache modules like +mod_php and mod_perl. + +This package is part of a suite of tools that used to be named +SubDomain. + +The documentation is in the apparmor-admin_en package. + +Authors: +-------- + sbeattie@suse.de +%endif + +%package -n libapparmor1 +Summary: Utility library for AppArmor +Group: Development/Libraries/C and C++ +License: LGPL v2.1 or later +%ifarch ppc64 +Obsoletes: libapparmor-64bit < %{version} +Provides: libapparmor-64bit = ${version} +%endif +Provides: libapparmor = %{version} +Provides: libimmunix = %{version} +Obsoletes: libapparmor < %{version} +Obsoletes: libimmunix < %{version} + +%description -n libapparmor1 +This package provides the libapparmor library, which contains the +change_hat(2) symbol, used for sub-process confinement by AppArmor, as +well as functions to parse AppArmor log messages. + +Authors: +-------- + Steve Beattie + Matt Barringer + +%package -n libapparmor-devel +License: LGPL v2.1 or later +Requires: libapparmor1 = %{version}-%{release} +Group: Development/Libraries/C and C++ +Provides: libapparmor:/usr/include/sys/apparmor.h +Summary: Development headers and libraries for libapparmor + +%description -n libapparmor-devel +These libraries are needed for developing software that makes use of the +AppArmor API. + +Authors: +-------- + Steve Beattie + Matt Barringer + +%package -n perl-apparmor +License: GPL v2 only ; LGPL v2.1 or later +Requires: libapparmor1 = %{version} +Requires: perl = %{perl_version} +Group: Development/Libraries/Perl +Summary: Perl interface for libapparmor functions +Provides: perl-libapparmor +Obsoletes: perl-libapparmor < 2.5 + +%description -n perl-apparmor +This package provides the perl interface to AppArmor. It is used for perl +applications interfacing with AppArmor, including the AppArmor utiltities. + +Authors: +-------- + Steve Beattie + Matt Barringer + +%if %{with python} +%package -n python-apparmor +License: GPL v2 only ; LGPL v2.1 or later +Requires: libapparmor1 = %{version} +BuildRequires: python +Requires: python = %{python_version} +Group: Development/Libraries/Python +Summary: Python interface for libapparmor functions +Provides: python-libapparmor +Obsoletes: python-libapparmor < 2.5 + +%description -n python-apparmor +This package provides the python interface to AppArmor. It is used for python +applications interfacing with AppArmor. + +Authors: +-------- + Steve Beattie + Matt Barringer +%endif + +%if %{with ruby} +%package -n ruby-apparmor +License: GPL v2 only ; LGPL v2.1 or later +Requires: libapparmor1 = %{version} +Requires: ruby = %{ruby_version} +Group: Development/Libraries/Ruby +Summary: Ruby interface for libapparmor functions +Provides: ruby-libapparmor +Obsoletes: ruby-libapparmor < 2.5 + +%description -n ruby-apparmor +This package provides the ruby interface to AppArmor. It is used for ruby +applications interfacing with AppArmor. + +Authors: +-------- + Steve Beattie + Matt Barringer +%endif + +%package profiles +Summary: AppArmor profiles that are loaded into the apparmor kernel module +Group: Productivity/Security +Obsoletes: subdomain-profiles < %{version} +Provides: subdomain-profiles = %{version} + +%description profiles +Base profiles. AppArmor is a file and network mandatory access control +mechanism. AppArmor confines processes to the resources allowed by the +systems administrator and can constrain the scope of potential security +vulnerabilities. + +This package is part of a suite of tools that used to be named +SubDomain. + +Authors: +-------- + seth.arnold@suse.de + sbeattie@suse.de + jjohansen@suse.de + +%package utils +Summary: AppArmor User-Level Utilities Useful for Creating AppArmor Profiles +Group: Productivity/Security +Requires: perl = %{perl_version} +Requires: libapparmor1 = %{version} +Requires: perl-apparmor = %{version} +BuildArch: noarch + + +%description utils +This package provides the aa-logprof, aa-genprof, aa-autodep, +aa-enforce, and aa-complain tools to assist with profile authoring. +Besides it provides the aa-unconfined server information tool and the +aa-eventd event reporting system. It is part of a suite of tools that +used to be named SubDomain. + +Authors: +-------- + jmichael@suse.de + seth.arnold@suse.de + +%if %{with tomcat} +%package -n tomcat_apparmor +Summary: Tomcat 6 plugin for AppArmor change_hat +Group: System/Libraries +Requires: libapparmor1 = %{version} tomcat6 + +%description -n tomcat_apparmor +tomcat_apparmor - is a plugin for Apache Tomcat version 6 that +provides support for AppArmor change_hat for creating AppArmor +containers that are bound to discrete elements of processing within the +Tomcat servlet container. The AppArmor containers, or "hats", can be +created for individual URL processing or per servlet. + +Authors: +-------- + dreynolds@suse.de +%endif + +%if %{with pam} +%package -n pam_apparmor +Summary: PAM module to for AppArmor change_hat +Group: Productivity/Security + +%description -n pam_apparmor +The pam_apparmor module provides the means for any PAM applications +that call pam_open_session() to automatically perform an AppArmor +change_hat operation in order to switch to a user-specific security +policy. + +Authors: +-------- + jmichael@suse.de + sbeattie@suse.de + +%endif + +%if %{with dbus} +%package dbus +Summary: Audit dispatcher for sending AppArmor events over DBUS +Group: System/Monitoring + +%description dbus +An audit dispatcher for sending AppArmor events over the DBUS system +bus. + +Authors: +-------- + Matt Barringer + +%endif + +%if %{with editor} +%package profile-editor +Summary: AppArmor profile editor +Group: Productivity/Editors/Other + +%description profile-editor +A syntax highlighting editor for AppArmor profiles. + +Authors: +-------- + Matt Barringer + +%endif + +%if %{with gnome} +%package -n apparmorapplet-gnome +Summary: An AppArmor event notification applet for GNOME +Group: System/GUI/GNOME + +%description -n apparmorapplet-gnome +This taskbar applet recieves AppArmor events over DBUS, and notifies +the user when AppArmor prevents an application from functioning. + + +Authors: +-------- + Matt Barringer + +%endif + +%description +The AppArmor Parser is a userlevel program that is used to load in +program profiles to the AppArmor Security kernel module. + +This package is part of a suite of tools that used to be named +SubDomain. + +%lang_package -n apparmor-utils +%lang_package -n apparmor-parser +%if %{with gnome} +%lang_package -n apparmorapplet-gnome +%endif +%prep +%setup -q +%patch -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%patch19 -p1 +%patch20 -p1 +%patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch28 -p1 +%patch29 -p1 +%patch30 -p1 +%patch31 -p1 +%patch32 -p1 + +%build +export SUSE_ASNEEDED=0 +autoreconf -fiv +%define _libdir /%{_lib} +%configure --disable-static --with-pic \ +--with-perl \ +%if %{with python} +--with-python \ +%else +--without-python \ +%endif +%if %{with ruby} +--with-ruby \ +%else +--without-ruby \ +%endif +%if %{with tomcat} +--with-tomcat \ +%else +--without-tomcat \ +%endif +%if %{with pam} +--with-pam \ +%else +--without-pam \ +%endif +%if %{with apache} +--with-apache \ +%else +--without-apache \ +%endif +%if %{with gnome} +--with-gnome \ +%else +--without-gnome \ +%endif +%if %{with dbus} +--with-dbus \ +%else +--without-dbus \ +%endif +%if %{with editor} +--with-profileeditor \ +%else +--without-profileeditor \ +%endif + +%{__make} %{?jobs:-j%jobs} + +%if %{with ruby} +#rm libraries/libapparmor/swig/ruby/Makefile.ruby +#make -C libraries/libapparmor/swig/ruby +%endif + +%install +%{make_install} + +find $RPM_BUILD_ROOT -name .packlist -exec rm -f {} \; +find $RPM_BUILD_ROOT -name perllocal.pod -exec rm -f {} \; + +# create symlink for old change_hat(2) manpage +ln -s aa_change_hat.2 ${RPM_BUILD_ROOT}/%{_mandir}/man2/change_hat.2 + +mkdir ${RPM_BUILD_ROOT}%{_sysconfdir}/init.d +install parser/rc.apparmor.suse ${RPM_BUILD_ROOT}%{_sysconfdir}/init.d/boot.apparmor +install parser/rc.aaeventd.suse ${RPM_BUILD_ROOT}%{_sysconfdir}/init.d/aaeventd +ln -s %{_sysconfdir}/init.d/aaeventd ${RPM_BUILD_ROOT}/sbin/rcaaeventd +ln -s %{_sysconfdir}/init.d/boot.apparmor ${RPM_BUILD_ROOT}/sbin/rcapparmor +ln -s %{_sysconfdir}/init.d/boot.apparmor ${RPM_BUILD_ROOT}/sbin/rcsubdomain + +for script in ${RPM_BUILD_ROOT}/usr/sbin/*; do + d=$(dirname $script) + f=$(basename $script) + if [ "${f#aa-}" = "$f" ]; then + ln -s /usr/sbin/$f $d/aa-$f + fi +done + +for man in ${RPM_BUILD_ROOT}/usr/share/man/man[18]/*; do + d=$(dirname $man) + f=$(basename $man) + if [ "${f#aa-}" = "$f" ]; then + ln -s $f $d/aa-$f + fi +done + +%if %{with editor} +%suse_update_desktop_file -i %{name}-profile-editor Utility TextEditor +%endif + +%if %{with gnome} +%find_lang apparmorapplet-gnome +%endif + +for pkg in apparmor-utils apparmor-parser; do + %find_lang $pkg +done + +# Clean up profiles that are provided by other packages now +rm -f $RPM_BUILD_DIR%{_sysconfdir}/apparmor.d/usr.sbin.nscd + +%clean +rm -rf $RPM_BUILD_ROOT + +%files docs +%defattr(-,root,root) +%doc parser/*.[1-9].html +%doc common/apparmor.css +%doc parser/techdoc.pdf parser/techdoc/techdoc.html parser/techdoc/techdoc.css parser/techdoc.txt + +%files parser +%defattr(-,root,root) +%doc parser/README parser/COPYING.GPL +/sbin/apparmor_parser +%dir %attr(-, root, root) %{_sysconfdir}/apparmor +%if %{distro} == "suse" + /sbin/rcsubdomain + /sbin/rcapparmor + %{_sysconfdir}/init.d/boot.apparmor + /sbin/rcaaeventd + %{_sysconfdir}/init.d/aaeventd +%else + %{_sysconfdir}/init.d/apparmor + %{_sysconfdir}/init.d/aaeventd +%endif +%config(noreplace) %{_sysconfdir}/apparmor/subdomain.conf +/var/lib/apparmor +%dir %attr(-, root, root) %{apparmor_bin_prefix} +%{apparmor_bin_prefix}/rc.apparmor.functions +%doc %{_mandir}/man5/apparmor.d.5.gz +%doc %{_mandir}/man5/apparmor.vim.5.gz +%doc %{_mandir}/man5/subdomain.conf.5.gz +%doc %{_mandir}/man7/apparmor.7.gz +%doc %{_mandir}/man8/apparmor_parser.8.gz +%if %{distro} == "redhat" || %{distro} == "rhel4" + +%pre parser +if [ -f %{_sysconfdir}/init.d/subdomain ] ; then + chkconfig --del subdomain +fi +%endif + +%files parser-lang -f apparmor-parser.lang + +%files -n libapparmor1 +%defattr(-,root,root) +%{_libdir}/libapparmor.la +%{_libdir}/libimmunix.la +%{_libdir}/libapparmor.so* +%{_libdir}/libimmunix.so* + +%files -n libapparmor-devel +%defattr(-,root,root) +%{_libdir}/libapparmor.so +%{_libdir}/libimmunix.so +%doc %{_mandir}/man2/aa_change_hat.2.gz +%doc %{_mandir}/man2/change_hat.2.gz +%dir %{_includedir}/aalogparse +%{_includedir}/sys/apparmor.h +%{_includedir}/aalogparse/* + +# hrm, still need to enumerate each directory in these paths in files :( +%define extras_dir %{_sysconfdir}/apparmor/profiles/extras/ +%define profiles_dir %{_sysconfdir}/apparmor.d/ + +%files profiles +%defattr(-,root,root) +%attr(644, root, root) %config(noreplace) %{profiles_dir}/* +%attr(644, root, root) %config(noreplace) %{extras_dir}/* +%dir %{_sysconfdir}/apparmor.d/ +%dir %{_sysconfdir}/apparmor/ +%dir %{_sysconfdir}/apparmor/profiles +%dir %{_sysconfdir}/apparmor/profiles/extras + +%files utils +%defattr(-,root,root) +%dir %{_sysconfdir}/apparmor +%config(noreplace) %{_sysconfdir}/apparmor/logprof.conf +%config(noreplace) %{_sysconfdir}/apparmor/notify.conf +%config(noreplace) %{_sysconfdir}/apparmor/severity.db +%config(noreplace) %{_sysconfdir}/apparmor/subdomain.conf +%{_prefix}/sbin/* +%dir /var/log/apparmor +%doc %{_mandir}/man5/logprof.conf.5.gz +%doc %{_mandir}/man8/apparmor_notify.8.gz +%doc %{_mandir}/man8/aa-*.gz +%doc %{_mandir}/man8/apparmor_status.8.gz +%doc %{_mandir}/man8/audit.8.gz +%doc %{_mandir}/man8/autodep.8.gz +%doc %{_mandir}/man8/complain.8.gz +%doc %{_mandir}/man8/enforce.8.gz +%doc %{_mandir}/man8/genprof.8.gz +%doc %{_mandir}/man8/logprof.8.gz +%doc %{_mandir}/man8/unconfined.8.gz +%doc utils/*.[0-9].html +%doc common/apparmor.css + +%files utils-lang -f apparmor-utils.lang + +%files -n perl-apparmor +%defattr(-,root,root) +%{perl_vendorlib}/Immunix +%dir %{perl_vendorarch}/auto/LibAppArmor +%{perl_vendorarch}/auto/LibAppArmor/* +%{perl_vendorarch}/LibAppArmor.pm + +%if %{with python} +%files -n python-apparmor +%defattr(-,root,root) +%{python_sitearch}/LibAppArmor-2.5.1-py2.7.egg-info +%{python_sitearch}/libapparmor1/* +%endif + +%if %{with ruby} +%files -n ruby-apparmor +%defattr(-,root,root) +%{_prefix}/%{rb_sitearch}/* +%endif + +%if %{with pam} +%files -n pam_apparmor +%defattr(444,root,root,755) +%attr(555,root,root) %{_libdir}/security/pam_apparmor.so +%attr(555,root,root) %{_libdir}/security/pam_apparmor.la +%endif + +%if %{with tomcat} +%files -n tomcat_apparmor +%defattr(-,root,root) +%{CATALINA_HOME}/lib/%{JAR_FILE} +%{_libdir}/libJNI* +%doc %attr(0644,root,root) changehat/tomcat_apparmor/tomcat_5_5/README.tomcat_apparmor +%endif + +%if %{with apache} +%files -n apache2-mod_apparmor +%defattr(-,root,root) +%{apache_module_path}/mod_apparmor.so +%{apache_module_path}/mod_apparmor.la +%doc %{_mandir}/man8/mod_apparmor.8.gz +%endif + +%if %{with dbus} +%files dbus +%defattr(0750, root, root) +%{_bindir}/apparmor-dbus +%endif + +%if %{with editor} +%files profile-editor +%defattr(-, root, root) +%{_datadir}/applications/%{name}-profile-editor.desktop +%{_datadir}/pixmaps/%{name}-profile-editor.png +%{_bindir}/profileeditor +%{_docdir}/profileeditor/AppArmorProfileEditor.htb +%if 0 +%{_prefix}/share/doc/profileeditor/AppArmorProfileEditor.htb +%endif +%dir %{_prefix}/share/doc/profileeditor +%endif + +%if %{with gnome} +%files -n apparmorapplet-gnome +%defattr(-, root, root) +%{_libdir}/bonobo/servers/*.server +%{_prefix}/lib/apparmorapplet +%{_datadir}/pixmaps/* + +%files -n apparmorapplet-gnome-lang -f apparmorapplet-gnome.lang +%endif + +%post parser +%if %{distro} == "suse" + # SUSE uses insserv + # For package renaming from subdomain -> apparmor + # we check the existence of the AppArmor 1.1 and + # AppArmor 1.2 based init script to help determine + # whether we are upgrading + SUBDOMAIN_PARSER_INSTALLED="no" + if test -e %{_sysconfdir}/init.d/boot.subdomain -o -e %{_sysconfdir}/init.d/subdomain; then + SUBDOMAIN_PARSER_INSTALLED="yes" + fi + if test "$1" == 1 -a $SUBDOMAIN_PARSER_INSTALLED = "no"; then + %{insserv_force_if_yast boot.apparmor} + elif test -e %{_sysconfdir}/rc.d/boot.d/S??boot.subdomain -o \ + -e %{_sysconfdir}/rc.d/boot.d/S??boot.apparmor -o \ + -e %{_sysconfdir}/rc.d/rc3.d/S??subdomain ; then + %{insserv_force_if_yast boot.apparmor} + else + %{fillup_and_insserv -f boot.apparmor} + fi +%endif +%if %{distro} == "redhat" || %{distro} == "rhel4" + chkconfig --add apparmor +%endif +%if %{distro} == "slackware" + if grep -qs "# BEGIN rc.subdomain INSERTION" %{_sysconfdir}/rc.d/rc.M ; then true ; else + %{apparmor_bin_prefix}/install/frob_slack_rc --init + fi + if grep -qs "# BEGIN rc.subdomain INSERTION" %{_sysconfdir}/rc.d/rc.K ; then true ; else + %{apparmor_bin_prefix}/install/frob_slack_rc --shutdown + fi +%endif + +%preun parser +if [ "$1" = 0 ] ; then +%if %{distro} == "suse" + %{stop_on_removal aaeventd} + %{stop_on_removal boot.apparmor} +%endif +%if %{distro} == "redhat" || %{distro} == "rhel4" + chkconfig --del aaeventd + chkconfig --del apparmor +%endif +fi + +%postun parser +%if %{distro} == "suse" + %restart_on_update aaeventd boot.apparmor + %{insserv_cleanup} || true +%endif + +%post -n libapparmor1 -p /sbin/ldconfig +%postun -n libapparmor1 -p /sbin/ldconfig +%if %{with tomcat} +%post -n tomcat_apparmor -p /sbin/ldconfig +%postun -n tomcat_apparmor -p /sbin/ldconfig +%endif + +%if %{with pam} +%post -n pam_apparmor +pam-config -a --apparmor +pam-config --update + +%postun -n pam_apparmor +pam-config -d --apparmor +pam-config --update +%endif + +%changelog diff --git a/apparmorapplet-gnome-build-fix b/apparmorapplet-gnome-build-fix new file mode 100644 index 0000000..8783caf --- /dev/null +++ b/apparmorapplet-gnome-build-fix @@ -0,0 +1,14 @@ +--- + deprecated/management/applets/apparmorapplet-gnome/src/apparmor-applet.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/deprecated/management/applets/apparmorapplet-gnome/src/apparmor-applet.c ++++ b/deprecated/management/applets/apparmorapplet-gnome/src/apparmor-applet.c +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include "preferences_dialog.h" + #include "reject_list.h" + #include "apparmor-applet.h" diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..35d2885 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,5 @@ +pam_apparmor + supplements "packageand(pam_apparmor:pam-)" +libapparmor1 + obsoletes "libapparmor- <= " + provides "libapparmor- = " diff --git a/fix-two-x-transition-conflict-bugs b/fix-two-x-transition-conflict-bugs new file mode 100644 index 0000000..f48afed --- /dev/null +++ b/fix-two-x-transition-conflict-bugs @@ -0,0 +1,277 @@ +From: John Johansen +Subject: Fix two x transition conflict bugs. +References: bnc#662928 lpn#693082 + +This is lp:apparmor/2.5 commit r1443. + +The is_merged_x_consistend macro was incorrect in that is tested for +USER_EXEC_TYPE to determine if there was an x transition. This fails +for unconfined execs so an unconfined exec would not correctly conflict +with another exec type. + +The dfa match flag table for xtransitions was not large enough and not +indexed properly for pux, and cux transitions. The index calculation did +not take into account the pux flag so that pux and px aliased to the same +location and cux and cx aliased to the same location. + +This would result in the first rule being processed defining what the +transition type was for all following rules of the type following. So +if a px transition was processed first all pux, transitions in the profile +would be treated pux. + +Signed-off-by: John Johansen +Acked-By: Steve Beattie + +Add auto generation of xtransition conflict tests + +All the combiniation of xtransition conflics where not well represented in +the regression test suite. Instead of relying on multiple static test +files, automatically generate all possible conflicts. + +Signed-off-by: John Johansen +Acked-By: Steve Beattie +Acked-by: Jeff Mahoney +diff: +=== modified file 'parser/immunix.h' + parser/immunix.h | 4 + parser/libapparmor_re/regexp.yy | 10 - + parser/tst/Makefile | 10 + + parser/tst/gen-xtrans.pl | 152 +++++++++++++++++++++++++++++ + parser/tst/simple_tests/generated_x/readme | 2 + 5 files changed, 169 insertions(+), 9 deletions(-) + +--- a/parser/immunix.h 2009-08-20 15:41:10 +0000 ++++ b/parser/immunix.h 2011-01-07 20:46:15 +0000 +@@ -148,12 +148,12 @@ + #include + static inline int is_merged_x_consistent(int a, int b) + { +- if ((a & AA_USER_EXEC_TYPE) && (b & AA_USER_EXEC_TYPE) && ++ if ((a & AA_USER_EXEC) && (b & AA_USER_EXEC) && + ((a & AA_USER_EXEC_TYPE) != (b & AA_USER_EXEC_TYPE))) + { fprintf(stderr, "failed user merge 0x%x 0x%x\n", a, b); + return 0; + } +- if ((a & AA_OTHER_EXEC_TYPE) && (b & AA_OTHER_EXEC_TYPE) && ++ if ((a & AA_OTHER_EXEC) && (b & AA_OTHER_EXEC) && + ((a & AA_OTHER_EXEC_TYPE) != (b & AA_OTHER_EXEC_TYPE))) + { fprintf(stderr, "failed other merge 0x%x 0x%x\n", a, b); + return 0; + +=== modified file 'parser/libapparmor_re/regexp.yy' +--- a/parser/libapparmor_re/regexp.yy 2010-07-24 14:16:14 +0000 ++++ b/parser/libapparmor_re/regexp.yy 2011-01-07 20:46:15 +0000 +@@ -2581,9 +2581,9 @@ + #define MATCH_FLAGS_SIZE (sizeof(uint32_t) * 8 - 1) + MatchFlag *match_flags[FLAGS_WIDTH][MATCH_FLAGS_SIZE]; + DenyMatchFlag *deny_flags[FLAGS_WIDTH][MATCH_FLAGS_SIZE]; +-#define EXEC_MATCH_FLAGS_SIZE ((AA_EXEC_COUNT << 2) * 2) +-MatchFlag *exec_match_flags[FLAGS_WIDTH][EXEC_MATCH_FLAGS_SIZE]; /* mods + unsafe + ix *u::o*/ +-ExactMatchFlag *exact_match_flags[FLAGS_WIDTH][EXEC_MATCH_FLAGS_SIZE];/* mods + unsafe +ix *u::o*/ ++#define EXEC_MATCH_FLAGS_SIZE (AA_EXEC_COUNT *2 * 2 * 2) /* double for each of ix pux, unsafe x bits * u::o */ ++MatchFlag *exec_match_flags[FLAGS_WIDTH][EXEC_MATCH_FLAGS_SIZE]; /* mods + unsafe + ix + pux * u::o*/ ++ExactMatchFlag *exact_match_flags[FLAGS_WIDTH][EXEC_MATCH_FLAGS_SIZE];/* mods + unsafe + ix + pux *u::o*/ + + extern "C" void aare_reset_matchflags(void) + { +@@ -2644,8 +2644,8 @@ + flip_tree(tree); + + +-/* 0x3f == 4 bits x mods + 1 bit unsafe mask + 1 bit ix, after shift */ +-#define EXTRACT_X_INDEX(perm, shift) (((perm) >> (shift + 8)) & 0x3f) ++/* 0x7f == 4 bits x mods + 1 bit unsafe mask + 1 bit ix, + 1 pux after shift */ ++#define EXTRACT_X_INDEX(perm, shift) (((perm) >> (shift + 7)) & 0x7f) + + //if (perms & ALL_AA_EXEC_TYPE && (!perms & AA_EXEC_BITS)) + // fprintf(stderr, "adding X rule without MAY_EXEC: 0x%x %s\n", perms, rulev[0]); + +=== modified file 'parser/tst/Makefile' +--- a/parser/tst/Makefile 2010-09-15 18:34:38 +0000 ++++ b/parser/tst/Makefile 2011-01-07 20:46:15 +0000 +@@ -11,8 +11,11 @@ + + all: tests + +-.PHONY: tests error_output parser_sanity caching +-tests: error_output parser_sanity ++.PHONY: tests error_output gen_xtrans parser_sanity caching ++tests: error_output gen_xtrans parser_sanity ++ ++gen_xtrans: ++ perl ./gen-xtrans.pl + + error_output: $(PARSER) + $(PARSER) -S -I errors >/dev/null errors/okay.sd +@@ -34,3 +37,6 @@ + + $(PARSER): + make -C $(PARSER_DIR) $(PARSER_BIN) ++ ++clean: ++ rm -f simple_tests/generated_x/* + +=== added file 'parser/tst/gen-xtrans.pl' +--- a/parser/tst/gen-xtrans.pl 1970-01-01 00:00:00 +0000 ++++ b/parser/tst/gen-xtrans.pl 2011-01-07 20:46:15 +0000 +@@ -0,0 +1,152 @@ ++#!/usr/bin/perl ++ ++use strict; ++use Locale::gettext; ++use POSIX; ++ ++setlocale(LC_MESSAGES, ""); ++ ++my $prefix="simple_tests/generated_x"; ++ ++my @trans_types = ("p", "P", "c", "C", "u", "i"); ++my @modifiers = ("i", "u"); ++my %trans_modifiers = ( ++ "p" => \@modifiers, ++ "P" => \@modifiers, ++ "c" => \@modifiers, ++ "C" => \@modifiers, ++ ); ++ ++my @targets = ("", "target", "target2"); ++my @null_target = (""); ++ ++my %named_trans = ( ++ "p" => \@targets, ++ "P" => \@targets, ++ "c" => \@targets, ++ "C" => \@targets, ++ "u" => \@null_target, ++ "i" => \@null_target, ++ ); ++ ++# audit qualifier disabled for now it really shouldn't affect the conflict ++# test but it may be worth checking every once in awhile ++#my @qualifiers = ("", "owner", "audit", "audit owner"); ++my @qualifiers = ("", "owner"); ++ ++my $count = 0; ++ ++gen_conflicting_x(); ++gen_overlap_re_exact(); ++gen_dominate_re_re(); ++gen_ambiguous_re_re(); ++ ++print "Generated $count xtransition interaction tests\n"; ++ ++sub gen_list { ++ my @output; ++ foreach my $trans (@trans_types) { ++ if ($trans_modifiers{$trans}) { ++ foreach my $mod (@{$trans_modifiers{$trans}}) { ++ push @output, "${trans}${mod}x"; ++ } ++ } ++ push @output, "${trans}x"; ++ } ++ return @output; ++} ++ ++sub print_rule($$$$) { ++ my ($file, $name, $perm, $target) = @_; ++ print $file "\t${name} ${perm}"; ++ if ($target ne "") { ++ print $file " -> $target"; ++ } ++ print $file ",\n"; ++} ++ ++sub gen_file($$$$$$$$) { ++ my ($name, $xres, $rule1, $perm1, $target1, $rule2, $perm2, $target2) = @_; ++ ++# print "$xres $rule1 $perm1 $target1 $rule2 $perm2 $target2\n"; ++ ++ my $file; ++ unless (open $file, ">$name") { ++ print("couldn't open $name\n"); ++ exit 1; ++ } ++ ++ print $file "#\n"; ++ print $file "#=DESCRIPTION ${name}\n"; ++ print $file "#=EXRESULT ${xres}\n"; ++ print $file "#\n"; ++ print $file "/usr/bin/foo {\n"; ++ print_rule($file, $rule1, $perm1, $target1); ++ print_rule($file, $rule2, $perm2, $target2); ++ print $file "}"; ++ close($file); ++ ++ $count++; ++} ++ ++#NOTE: currently we don't do px to cx, or cx to px conversion ++# so ++# /foo { ++# /* px -> /foo//bar, ++# /* cx -> bar, ++# ++# will conflict ++# ++#NOTE: conflict tests don't tests leading permissions or using unsafe keywords ++# It is assumed that there are extra tests to verify 1 to 1 coorispondance ++sub gen_files($$$$) { ++ my ($name, $rule1, $rule2, $default) = @_; ++ ++ my @perms = gen_list(); ++ ++# print "@perms\n"; ++ ++ foreach my $i (@perms) { ++ foreach my $t (@{$named_trans{substr($i, 0, 1)}}) { ++ foreach my $q (@qualifiers) { ++ foreach my $j (@perms) { ++ foreach my $u (@{$named_trans{substr($j, 0, 1)}}) { ++ foreach my $r (@qualifiers) { ++ my $file="${prefix}/${name}-$q$i$t-$r$j$u.sd"; ++# print "$file\n"; ++ ++ #override failures when transitions are the same ++ my $xres = ${default}; ++ if ($i eq $j && $t eq $u) { ++ $xres = "PASS"; ++ } ++ ++ ++# print "foo $xres $rule1 $i $t $rule2 $j $u\n"; ++ gen_file($file, $xres, "$q $rule1", $i, $t, "$r $rule2", $j, $u); ++ } ++ } ++ } ++ } ++ } ++ } ++ ++} ++ ++sub gen_conflicting_x { ++ gen_files("conflict", "/bin/cat", "/bin/cat", "FAIL"); ++} ++ ++sub gen_overlap_re_exact { ++ ++ gen_files("exact", "/bin/cat", "/bin/*", "PASS"); ++} ++ ++# we currently don't support this, once supported change to "PASS" ++sub gen_dominate_re_re { ++ gen_files("dominate", "/bin/*", "/bin/**", "FAIL"); ++} ++ ++sub gen_ambiguous_re_re { ++ gen_files("ambiguous", "/bin/a*", "/bin/*b", "FAIL"); ++} + +=== added directory 'parser/tst/simple_tests/generated_x' +=== added file 'parser/tst/simple_tests/generated_x/readme' +--- a/parser/tst/simple_tests/generated_x/readme 1970-01-01 00:00:00 +0000 ++++ b/parser/tst/simple_tests/generated_x/readme 2011-01-07 20:46:15 +0000 +@@ -0,0 +1,2 @@ ++Directory for auto generated x-transition tests ++ diff --git a/mod_apparmor-includes b/mod_apparmor-includes new file mode 100644 index 0000000..60fb56b --- /dev/null +++ b/mod_apparmor-includes @@ -0,0 +1,35 @@ +--- + changehat/mod_apparmor/Makefile | 6 +----- + changehat/mod_apparmor/mod_apparmor.c | 6 +----- + 2 files changed, 2 insertions(+), 10 deletions(-) + +--- a/changehat/mod_apparmor/Makefile ++++ b/changehat/mod_apparmor/Makefile +@@ -42,11 +42,7 @@ APXS:=$(shell if [ -x "/usr/sbin/apxs2" + fi ) + APXS_INSTALL_DIR=$(shell ${APXS} -q LIBEXECDIR) + DESTDIR= +-LIBAPPARMOR_FLAGS=$(shell if [ -f /usr/lib/libapparmor.so -o -f /usr/lib64/libapparmor.so ] ; then \ +- echo -lapparmor ; \ +- else \ +- echo -DUSE_COMPAT_IMMUNIX_H -limmunix ;\ +- fi) ++LIBAPPARMOR_FLAGS="-I../../libraries/libapparmor/src -L../../libraries/libapparmor/src/.libs -lapparmor" + + all: $(TARGET) ${MANPAGES} ${HTMLMANPAGES} + +--- a/changehat/mod_apparmor/mod_apparmor.c ++++ b/changehat/mod_apparmor/mod_apparmor.c +@@ -24,11 +24,7 @@ + #include "apr_strings.h" + #include "apr_lib.h" + +-#ifndef USE_COMPAT_IMMUNIX_H +-#include +-#else +-#include +-#endif ++#include "apparmor.h" + #include + + /* #define DEBUG */ diff --git a/pam-apparmor-include b/pam-apparmor-include new file mode 100644 index 0000000..6661e1e --- /dev/null +++ b/pam-apparmor-include @@ -0,0 +1,42 @@ +From: Jeff Mahoney +Subject: apparmor: Fix pam includes/linking + + +--- + changehat/pam_apparmor/Makefile | 6 +++--- + changehat/pam_apparmor/pam_apparmor.c | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +--- a/changehat/pam_apparmor/Makefile ++++ b/changehat/pam_apparmor/Makefile +@@ -27,8 +27,8 @@ common/Make.rules: $(COMMONDIR)/Make.rul + ln -sf $(COMMONDIR) . + endif + +-EXTRA_CFLAGS=$(CFLAGS) -fPIC -shared -Wall +-LINK_FLAGS=-Xlinker -x ++EXTRA_CFLAGS=$(CFLAGS) -fPIC -shared -Wall -I../../libraries/libapparmor/src/ ++LINK_FLAGS=-Xlinker -x -L../../libraries/libapparmor/src/.libs + LIBS=-lpam -lapparmor + OBJECTS=${NAME}.o get_options.o + +@@ -42,7 +42,7 @@ $(NAME).so: ${OBJECTS} + + # need some better way of determining this + DESTDIR=/ +-SECDIR=${DESTDIR}/lib/security ++SECDIR ?= ${DESTDIR}/lib/security + + .PHONY: install + install: $(NAME).so +--- a/changehat/pam_apparmor/pam_apparmor.c ++++ b/changehat/pam_apparmor/pam_apparmor.c +@@ -27,7 +27,7 @@ + #include + #include + #include +-#include ++#include "apparmor.h" + #include + #include + diff --git a/rpmlintrc b/rpmlintrc new file mode 100644 index 0000000..ee2c467 --- /dev/null +++ b/rpmlintrc @@ -0,0 +1,3 @@ +addFilter("devel-file-in-non-devel-package.*/usr/lib64/libJNIChangeHat.so") +addFilter("devel-file-in-non-devel-package.*/usr/lib/libJNIChangeHat.so") +addFilter("shlib-policy-name-error.*libJNIChangeHat0") diff --git a/testsuite-build-fix b/testsuite-build-fix new file mode 100644 index 0000000..1ed8507 --- /dev/null +++ b/testsuite-build-fix @@ -0,0 +1,23 @@ +From: Jeff Mahoney +Subject: testsuite: Fix linking with shared in-tree libapparmor + + This patch stops the static linking with libapparmor and uses the + shared library instead. Before it's installed, it'll have the in-tree + rpath and the testsuite will work as expected. + +Signed-off-by: Jeff Mahoney +--- + libraries/libapparmor/testsuite/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/libraries/libapparmor/testsuite/Makefile.am ++++ b/libraries/libapparmor/testsuite/Makefile.am +@@ -12,7 +12,7 @@ noinst_PROGRAMS = test_multi.multi + test_multi_multi_SOURCES = test_multi.c + test_multi_multi_CFLAGS = $(CFLAGS) -Wall + test_multi_multi_LDFLAGS = $(LDFLAGS) +-test_multi_multi_LDADD = ../src/.libs/libapparmor.a ++test_multi_multi_LDADD = -L../src/.libs -lapparmor + + clean-local: + rm -f tmp.err.* tmp.out.* site.exp site.bak diff --git a/tomcat-build-fixes b/tomcat-build-fixes new file mode 100644 index 0000000..ac244ab --- /dev/null +++ b/tomcat-build-fixes @@ -0,0 +1,77 @@ +--- + changehat/tomcat_apparmor/tomcat_5_5/build.xml | 15 +++++----- + changehat/tomcat_apparmor/tomcat_5_5/src/jni_src/JNIChangeHat.c | 2 - + changehat/tomcat_apparmor/tomcat_5_5/src/jni_src/Makefile | 4 +- + 3 files changed, 11 insertions(+), 10 deletions(-) + +--- a/changehat/tomcat_apparmor/tomcat_5_5/build.xml ++++ b/changehat/tomcat_apparmor/tomcat_5_5/build.xml +@@ -4,8 +4,8 @@ + + + +- +- ++ ++ + + + +@@ -18,10 +18,11 @@ + + + +- ++ + + +- ++ ++ + + + +@@ -80,9 +81,9 @@ + + + +- +- +- ++ ++ ++ + + + +--- a/changehat/tomcat_apparmor/tomcat_5_5/src/jni_src/JNIChangeHat.c ++++ b/changehat/tomcat_apparmor/tomcat_5_5/src/jni_src/JNIChangeHat.c +@@ -13,7 +13,7 @@ + + #include "jni.h" + #include +-#include "sys/apparmor.h" ++#include "apparmor.h" + #include "com_novell_apparmor_JNIChangeHat.h" + + /* c intermediate lib call for Java -> JNI -> c library execution of the change_hat call */ +--- a/changehat/tomcat_apparmor/tomcat_5_5/src/jni_src/Makefile ++++ b/changehat/tomcat_apparmor/tomcat_5_5/src/jni_src/Makefile +@@ -4,7 +4,7 @@ LIB = lib/ + LIBDIR = /usr/${LIB} + INCLUDE = ${LIBDIR}/jvm/java/include + CFLAGS = -g -O2 -Wall -Wstrict-prototypes -Wl,-soname,$@.${SO_VERS} -pipe -fpic -D_REENTRANT +-INCLUDES = -I$(INCLUDE) -I$(INCLUDE)/linux ++INCLUDES = -I$(INCLUDE) -I$(INCLUDE)/linux -I$(TOP)/../../../libraries/libapparmor/src/ + CLASSFILE = ${CLASSPATH}/com/novell/apparmor/${JAVA_CLASSNAME}.class + DESTDIR = ${TOP}/dist + SO_VERS = 1 +@@ -20,7 +20,7 @@ ${JAVA_CLASSNAME}.java com_novell_apparm + javah -jni -classpath ${CLASSPATH} com.novell.apparmor.${JAVA_CLASSNAME} + + ${TARGET}.so: ${JAVA_CLASSNAME}.c ${JAVA_CLASSNAME}.java com_novell_apparmor_${JAVA_CLASSNAME}.h +- gcc ${INCLUDES} ${CFLAGS} -shared -o ${TARGET}.so ${JAVA_CLASSNAME}.c -lapparmor ++ gcc ${INCLUDES} ${CFLAGS} -shared -o ${TARGET}.so ${JAVA_CLASSNAME}.c -L$(TOP)/../../../libraries/libapparmor/src/.libs -lapparmor + + install: ${TARGET}.so + install -d $(DESTDIR)/${LIB} $(DESTDIR)${LIBDIR} diff --git a/update-trans.sh b/update-trans.sh new file mode 100644 index 0000000..2027d64 --- /dev/null +++ b/update-trans.sh @@ -0,0 +1,71 @@ + +CFILES=" +deprecated/management/applets/apparmorapplet-gnome/src/apparmor-applet.c +deprecated/management/applets/apparmorapplet-gnome/src/preferences_dialog.c +deprecated/management/applets/apparmorapplet-gnome/src/reject_list.c +parser/parser_alias.c +parser/parser_include.c +parser/parser_interface.c +parser/parser_lex.l +parser/parser_main.c +parser/parser_merge.c +parser/parser_misc.c +parser/parser_policy.c +parser/parser_regex.c +parser/parser_symtab.c +parser/parser_variable.c +parser/parser_yacc.y +" + +CPPFILES=" +deprecated/management/profile-editor/src/AboutDialog.cpp +deprecated/management/profile-editor/src/AboutDialog.h +deprecated/management/profile-editor/src/Configuration.cpp +deprecated/management/profile-editor/src/Preferences.cpp +deprecated/management/profile-editor/src/Preferences.h +deprecated/management/profile-editor/src/profileeditor.cpp +deprecated/management/profile-editor/src/SearchAllProfiles.cpp +deprecated/management/profile-editor/src/SearchAllProfiles.h +parser/libapparmor_re/regexp.yy +" + +PERLFILES=" +utils/aa-repo.pl +utils/audit +utils/autodep +utils/complain +utils/enforce +utils/genprof +utils/logprof +utils/Reports.pm +utils/SubDomain.pm +utils/unconfined +" + +ARGS="--keyword=_ --keyword=N_ -n --force-po" + +xgettext $ARGS --output=apparmor-C.pot -L C $CFILES +xgettext $ARGS --output=apparmor-CPP.pot -L C++ $CPPFILES +xgettext $ARGS --output=apparmor-PERL.pot -L Perl $PERLFILES +msgcat apparmor-*.pot > apparmor.pot + +sed \ + -e 's/Project-Id-Version: PACKAGE VERSION/Project-Id-Version: apparmor/g' \ + -e 's/PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE/PO-Revision-Date: 2009-02-05 13:38/' \ + -e 's/Report-Msgid-Bugs-To: /Report-Msgid-Bugs-To: apparmor-general@forge.novell.com/' \ + -e 's/Last-Translator: FULL NAME /Last-Translator: Novell Language /' \ + -e 's/Language-Team: LANGUAGE /Language-Team: Novell Language /' \ + -e 's/Content-Type: text\/plain; charset=CHARSET/Content-Type: text\/plain; charset=UTF-8/' \ + < apparmor.pot > apparmor.pot.new + mv apparmor.pot.new apparmor.pot + +for file in $(find . -name '*.po'); do + f=$(basename $file) + msgmerge -U apparmor.pot $file + if [ -e "po/$f" ]; then + msgcat $file po/$f > $f + mv $f po/$f + else + cp $file po/$f + fi +done