From 174c9f97e05415e0e55f3ec2bf75591c9fafd2a4 Mon Sep 17 00:00:00 2001 From: glftpd-scripts Date: Tue, 15 Sep 2015 20:53:16 +0200 Subject: [PATCH 01/23] fix compile warning --- src/pre/modules/mod_chmod.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pre/modules/mod_chmod.c b/src/pre/modules/mod_chmod.c index b5e5719..095e6fb 100644 --- a/src/pre/modules/mod_chmod.c +++ b/src/pre/modules/mod_chmod.c @@ -25,6 +25,7 @@ */ #include +#include // project includes #include "mod_chmod.h" From 771ce01cd34790d4566e0bac464009552512d670 Mon Sep 17 00:00:00 2001 From: glftpd-scripts Date: Tue, 15 Sep 2015 20:54:26 +0200 Subject: [PATCH 02/23] fix compile warning --- src/pre/modules/mod_symlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pre/modules/mod_symlink.c b/src/pre/modules/mod_symlink.c index a3e9fa0..99b974b 100644 --- a/src/pre/modules/mod_symlink.c +++ b/src/pre/modules/mod_symlink.c @@ -25,7 +25,7 @@ */ #include - +#include // project includes #include "mod_symlink.h" #include "../foo-pre.h" From 86263b4c437411b810933087a0fd17b6bf35fb73 Mon Sep 17 00:00:00 2001 From: silver Date: Thu, 6 Apr 2017 23:50:58 +0200 Subject: [PATCH 03/23] foo-pre-destfix.patch little patch to fix destination error on pre footools-mp3genre.patch ugly patch for foopre to add mp3 genre in PRE --- foo-pre-destfix.patch | 11 ++ footools-mp3genre.patch | 224 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 235 insertions(+) create mode 100644 foo-pre-destfix.patch create mode 100644 footools-mp3genre.patch diff --git a/foo-pre-destfix.patch b/foo-pre-destfix.patch new file mode 100644 index 0000000..105baca --- /dev/null +++ b/foo-pre-destfix.patch @@ -0,0 +1,11 @@ +--- foo-pre.c_orig 2011-11-02 19:24:58.000000000 +0100 ++++ foo-pre.c 2013-12-20 22:11:27.903580112 +0100 +@@ -1212,6 +1212,7 @@ + if (buf[0] == '/') { + strncpy(tmp, buf, reps); + buf[reps] = 0; ++ tmp[reps] = 0; + } + else { + tmpp= strrchr(tmp, '/'); + diff --git a/footools-mp3genre.patch b/footools-mp3genre.patch new file mode 100644 index 0000000..81f71ba --- /dev/null +++ b/footools-mp3genre.patch @@ -0,0 +1,224 @@ +diff -ru --unidirectional-new-file footools-x86-x64-20111102/CHANGELOG footools-x86-x64-20111102-mp3genre/CHANGELOG +--- footools-x86-x64-20111102/CHANGELOG 2013-12-20 21:09:04.000000000 +0100 ++++ footools-x86-x64-20111102-mp3genre/CHANGELOG 2013-12-20 21:09:04.000000000 +0100 +@@ -70,3 +70,6 @@ + * Fixed chroot gentoo bug for foo-pre. + * Added a little help file. + Nov 2 2011: * Fixed a bug about "you're not in any of your predir" :) ++ ++//slv ++Aug 08 2012: * MP3 genre added to PRE output (instead of in mod_idmp3) +diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/CHANGES footools-x86-x64-20111102-mp3genre/src/CHANGES +--- footools-x86-x64-20111102/src/CHANGES 2013-12-20 21:09:04.000000000 +0100 ++++ footools-x86-x64-20111102-mp3genre/src/CHANGES 2013-12-20 21:09:04.000000000 +0100 +@@ -70,3 +70,6 @@ + * Fixed chroot gentoo bug for foo-pre. + * Added a little help file. + Nov 2 2011: * Fixed a bug about "you're not in any of your predir" :) ++ ++//slv ++Aug 08 2012: * MP3 genre added to PRE output (instead of in mod_idmp3) +diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/foo-pre.c footools-x86-x64-20111102-mp3genre/src/pre/foo-pre.c +--- footools-x86-x64-20111102/src/pre/foo-pre.c 2013-12-20 21:09:04.000000000 +0100 ++++ footools-x86-x64-20111102-mp3genre/src/pre/foo-pre.c 2013-12-20 21:09:04.000000000 +0100 +@@ -20,6 +20,7 @@ + */ + /* + * foo.Pre [C-version] (c) tanesha team, ++ slv 02082012 - mp3 genre added to PRE output (instead of in mod_idmp3) + */ + #include + #include +@@ -44,7 +45,8 @@ + #include "foo-pre.h" + #include "gl_userfile.h" + +-#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" ++//#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" ++#define VERSION "$Id: foo-pre.c,v 1.19 2012/08/03 17:46:00 sorend, slv Exp $" + #define USAGE " * Syntax: SITE PRE [SECTION]\n" + + void quit(char *s, ...); +@@ -53,6 +55,8 @@ + hashtable_t *_config = 0; + hashtable_t *_envctx = 0; + ++char *id3_genre; ++ + /* + * Acecssor method for configuration. + */ +@@ -1030,6 +1034,19 @@ + printf(" -- %10.10s: %s\n", "From", src); + printf(" -- %10.10s: %s", "To", dest); + ++ /* ++ * slv 02082012 - get filename.mp3 and call get_mp3_genre(filename). ++ */ ++ // get genre. ++ for (ftmp = files; ftmp; ftmp = ftmp->next) { ++ tmp = strrchr(ftmp->file, '.'); ++ if (!strcmp(tmp, ".mp3")) { ++ sprintf(buf, "%s/%s", src, ftmp->file); ++ get_mp3_genre(buf); ++ break; ++ } ++ } ++ + // dont forget to chown maindir + chowninfo_apply_to_file(src, chown); + +@@ -1087,6 +1104,7 @@ + pre_replace(buf, "%g", ht_get(env, PROPERTY_USERGROUP)); + pre_replace(buf, "%D", section_get_property(section, PROPERTY_SECTION_NAME)); + pre_replace(buf, "%R", rel); ++ pre_replace(buf, "%I", id3_genre); + + gl_gllog_add(buf); + +@@ -1347,10 +1365,10 @@ + } + + // log DONE: "" "" "" "" +- pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\"", ++ //slv added: "" ++ pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", + ht_get(env, PROPERTY_USER), group, +- argv[1], destpath); +- ++ argv[1], destpath, id3_genre); + return 0; + } + +diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/Makefile footools-x86-x64-20111102-mp3genre/src/pre/Makefile +--- footools-x86-x64-20111102/src/pre/Makefile 2013-12-20 21:09:04.000000000 +0100 ++++ footools-x86-x64-20111102-mp3genre/src/pre/Makefile 2013-12-20 21:09:04.000000000 +0100 +@@ -4,10 +4,10 @@ + + SRCDIR = .. + +-LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o ++LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o ./mp3genre/mp3genre.o + + foo-pre: foo-pre.o $(LIBS) +- $(CC) -o $@ $< $(LIBS) -ldl ++ $(CC) -o $@ $< mp3genre/mp3genre.o $(LIBS) -ldl + + foo.Pre: foo.Pre.o + $(CC) -o $@ $< $(LIBS) +diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/Makefile.in footools-x86-x64-20111102-mp3genre/src/pre/Makefile.in +--- footools-x86-x64-20111102/src/pre/Makefile.in 2013-12-20 21:09:04.000000000 +0100 ++++ footools-x86-x64-20111102-mp3genre/src/pre/Makefile.in 2013-12-20 21:09:04.000000000 +0100 +@@ -7,7 +7,7 @@ + LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o + + foo-pre: foo-pre.o $(LIBS) +- $(CC) -o $@ $< $(LIBS) -ldl ++ $(CC) -o $@ $< mp3genre/mp3genre.o $(LIBS) -ldl + + foo.Pre: foo.Pre.o + $(CC) -o $@ $< $(LIBS) +diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/mp3genre/compile.sh footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/compile.sh +--- footools-x86-x64-20111102/src/pre/mp3genre/compile.sh 1970-01-01 01:00:00.000000000 +0100 ++++ footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/compile.sh 2013-12-20 21:09:04.000000000 +0100 +@@ -0,0 +1,4 @@ ++#!/bin/sh ++CC=`which gcc` ++if [ -f mp3genre.o ]; then rm mp3genre.o; fi ++$CC -c mp3genre.c +diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/mp3genre/mp3genre.c footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/mp3genre.c +--- footools-x86-x64-20111102/src/pre/mp3genre/mp3genre.c 1970-01-01 01:00:00.000000000 +0100 ++++ footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/mp3genre.c 2013-12-20 21:09:04.000000000 +0100 +@@ -0,0 +1,38 @@ ++/* ++ * slv 02082012 - mp3genre.c: ++ * ++ * reads last 128 bytes of mp3 and extracts genre tag ++ * ph33r my ugly "code" ;o ++ * ++ * this file is based in part on: ++ * ++ * * MP3Info 0.5 by Ricardo Cerqueira ++ * * MP3Stat 0.9 by Ed Sweetman and ++ * Johannes Overmann ++ * ++*/ ++ ++#include "mp3genre.h" ++ ++int get_mp3_genre(const char* filename) { ++ FILE *fp; ++ unsigned char id3_genre_num[1]; ++ char *id3_genre = "n/a"; ++ char mp3_fbuf[2]; ++ if (!(fp=fopen(filename,"rb"))) { ++ return 1; ++ } ++ if (fseek(fp,-128,SEEK_END)) { ++ return 1; ++ } else { ++ fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; ++ id3_genre_num[0]=255; ++ if (!strcmp((const char *)"TAG",(const char *)mp3_fbuf)) { ++ fseek(fp, -1, SEEK_END); ++ fread(id3_genre_num,1,1,fp); ++ if(id3_genre_num[0] != '\0' && id3_genre_num[0] > 0 && id3_genre_num[0] < genre_count) { ++ id3_genre = genre_s[id3_genre_num[0]]; ++ } ++ } ++ } ++} +diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/mp3genre/mp3genre.h footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/mp3genre.h +--- footools-x86-x64-20111102/src/pre/mp3genre/mp3genre.h 1970-01-01 01:00:00.000000000 +0100 ++++ footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/mp3genre.h 2013-12-20 21:09:04.000000000 +0100 +@@ -0,0 +1,50 @@ ++/* ++ * slv 02082012 - headers for mp3genre.c ++ * ++ * from pzs-ng zipscript/src/multimedia.c ++ * http://www.pzs-ng.com ++ * ++*/ ++#include ++ ++char *genre_s[] = { ++ "Blues", "Classic Rock", "Country", "Dance", ++ "Disco", "Funk", "Grunge", "Hip-Hop", ++ "Jazz", "Metal", "New Age", "Oldies", ++ "Other", "Pop", "R&B", "Rap", ++ "Reggae", "Rock", "Techno", "Industrial", ++ "Alternative", "Ska", "Death Metal", "Pranks", ++ "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", ++ "Vocal", "Jazz+Funk", "Fusion", "Trance", ++ "Classical", "Instrumental", "Acid", "House", ++ "Game", "Sound Clip", "Gospel", "Noise", ++ "AlternRock", "Bass", "Soul", "Punk", ++ "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", ++ "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", ++ "Electronic", "Pop-Folk", "Eurodance", "Dream", ++ "Southern Rock", "Comedy", "Cult", "Gangsta", ++ "Top 40", "Christian Rap", "Pop_Funk", "Jungle", ++ "Native American", "Cabaret", "New Wave", "Psychadelic", ++ "Rave", "Showtunes", "Trailer", "Lo-Fi", ++ "Tribal", "Acid Punk", "Acid Jazz", "Polka", ++ "Retro", "Musical", "Rock & Roll", "Hard Rock", ++ "Folk", "Folk-Rock", "National Folk", "Swing", ++ "Fast Fusion", "Bebob", "Latin", "Revival", ++ "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", ++ "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", ++ "Big Band", "Chorus", "Easy Listening", "Acoustic", ++ "Humour", "Speech", "Chanson", "Opera", ++ "Chamber Music", "Sonata", "Symphony", "Booty Bass", ++ "Primus", "Porn Groove", "Satire", "Slow Jam", ++ "Club", "Tango", "Samba", "Folklore", ++ "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", ++ "Duet", "Punk Rock", "Drum Solo", "A cappella", ++ "Euro-House", "Dance Hall", "Goa", "Drum & Bass", ++ "Club House", "Hardcore", "Terror", "Indie", ++ "BritPop", "Negerpunk", "Polsk Punk", "Beat", ++ "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", ++ "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", ++ "Thrash Metal", "Anime", "JPop", "Synthpop", ++ "Unknown" ++}; ++unsigned char genre_count=149; From 29694b259298da65778fc4bc82c50a339c0a5c29 Mon Sep 17 00:00:00 2001 From: silver Date: Thu, 6 Apr 2017 23:54:48 +0200 Subject: [PATCH 04/23] ugly hack for foopre to add mp3 genre in PRE --- README.1st | 65 + doc/README.foo-pre | 2 +- src/CHANGES | 4 +- src/Makefile | 43 + src/Makefile.config | 2 +- src/collection/sortedlist.h | 2 - src/config.h | 308 + src/config.log | 275 + src/config.status | 1151 +++ src/configure | 9521 ++++++++++-------- src/lib/common.h | 1 - src/lib/dirlist.h | 1 - src/lib/genlistc.h | 1 - src/lib/gllogs.c | 2 +- src/lib/gllogs.h | 2 - src/lib/macro.h | 3 - src/lib/pwdfile.c | 1 - src/lib/sfv.h | 1 - src/lib/sockop.h | 2 - src/lib/stringtokenizer.c | 2 - src/lib/who.c | 2 +- src/lib/who.h | 2 - src/nfo/cleaner.c | 2 - src/nfo/nfocleaner | Bin 0 -> 26571 bytes src/nukes/foo-nukes | Bin 0 -> 22723 bytes src/pre/Makefile | 4 +- src/pre/Makefile.in | 2 +- src/pre/Makefile.in_orig | 23 + src/pre/foo-pre | Bin 0 -> 60849 bytes src/pre/foo-pre.c | 33 +- src/pre/foo-pre.c.mp3genre.added | 1489 +++ src/pre/foo-pre.c.mp3genre.hack.working | 1509 +++ src/pre/foo-pre.h | 2 - src/pre/modules/mod_chmod.c | 1 - src/pre/modules/mod_symlink.c | 2 +- src/pre/modules/mp3info-0.8.5a/Makefile | 15 +- src/pre/modules/mp3info-0.8.5a/Makefileh | 88 + src/pre/mp3genre/compile.sh | 4 + src/pre/mp3genre/mp3genre.c | 38 + src/pre/mp3genre/mp3genre.h | 50 + src/pre/pre.cfg | 2 +- src/pre/standalone_mp3genre/mp3genre | Bin 0 -> 10565 bytes src/pre/standalone_mp3genre/mp3genre.c | 79 + src/pre/standalone_mp3genre/mp3genre.c.new | 116 + src/pre/standalone_mp3genre/mp3genre.c.old | 74 + src/pre/standalone_mp3genre/mp3genre_test1 | Bin 0 -> 7386 bytes src/pre/standalone_mp3genre/mp3genre_test1.c | 91 + src/pre/standalone_mp3genre/mp3genre_test2 | Bin 0 -> 10547 bytes src/pre/standalone_mp3genre/mp3genre_test2.c | 75 + src/pre/standalone_mp3genre/mp3genre_test3 | Bin 0 -> 10542 bytes src/pre/standalone_mp3genre/mp3genre_test3.c | 74 + src/pre/standalone_mp3genre/mp3genre_test4 | Bin 0 -> 7204 bytes src/pre/standalone_mp3genre/mp3genre_test4.c | 38 + src/pre/standalone_mp3genre/mp3genre_test5.c | 24 + src/reset/foo-reset | Bin 0 -> 40699 bytes src/sfv/blehsfv | Bin 0 -> 21982 bytes src/sfv/createsfv | Bin 0 -> 21984 bytes src/thread/threadpool.h | 2 - src/util/date.h | 2 - src/util/linereaderbuffer.h | 2 - src/who/spy | Bin 0 -> 35229 bytes src/who/spy.c | 2 - src/zip/zipcheck | Bin 0 -> 65094 bytes 63 files changed, 11154 insertions(+), 4082 deletions(-) create mode 100644 README.1st create mode 100644 src/Makefile create mode 100644 src/config.h create mode 100644 src/config.log create mode 100755 src/config.status create mode 100755 src/nfo/nfocleaner create mode 100755 src/nukes/foo-nukes create mode 100644 src/pre/Makefile.in_orig create mode 100755 src/pre/foo-pre create mode 100644 src/pre/foo-pre.c.mp3genre.added create mode 100644 src/pre/foo-pre.c.mp3genre.hack.working create mode 100644 src/pre/modules/mp3info-0.8.5a/Makefileh create mode 100755 src/pre/mp3genre/compile.sh create mode 100644 src/pre/mp3genre/mp3genre.c create mode 100644 src/pre/mp3genre/mp3genre.h create mode 100755 src/pre/standalone_mp3genre/mp3genre create mode 100644 src/pre/standalone_mp3genre/mp3genre.c create mode 100644 src/pre/standalone_mp3genre/mp3genre.c.new create mode 100644 src/pre/standalone_mp3genre/mp3genre.c.old create mode 100755 src/pre/standalone_mp3genre/mp3genre_test1 create mode 100644 src/pre/standalone_mp3genre/mp3genre_test1.c create mode 100755 src/pre/standalone_mp3genre/mp3genre_test2 create mode 100644 src/pre/standalone_mp3genre/mp3genre_test2.c create mode 100755 src/pre/standalone_mp3genre/mp3genre_test3 create mode 100644 src/pre/standalone_mp3genre/mp3genre_test3.c create mode 100755 src/pre/standalone_mp3genre/mp3genre_test4 create mode 100644 src/pre/standalone_mp3genre/mp3genre_test4.c create mode 100644 src/pre/standalone_mp3genre/mp3genre_test5.c create mode 100755 src/reset/foo-reset create mode 100755 src/sfv/blehsfv create mode 100755 src/sfv/createsfv create mode 100755 src/who/spy create mode 100755 src/zip/zipcheck diff --git a/README.1st b/README.1st new file mode 100644 index 0000000..29fe41d --- /dev/null +++ b/README.1st @@ -0,0 +1,65 @@ + +Welcome to foo-tools. Good to see that you managed to download it ;-). +====================================================================== + +This is the first file you should be reading after downloading, it +contains the very basics of getting you started, so be sure to read +it all, top to bottom. + + +License: +-------- + +foo-tools is free software, licensed under the GPL. Please take a +few minutes to read through the included LICENSE.txt to learn about +what this means, since we are strong believers of free software, and +do not tolerate violations. + + +Requirements: +------------- + +foo-tools does not require glftpd, but many of the tools are specific +to glftpd, and will not work without it. + +Also, since the tools have been developed on Linux, some will not +work under other OSs. Most are known to be working under FreeBSD +with minor or no changes (mainly changing 'make' to 'gmake' in the +Makefiles). If someone have the skills/time to fix the portability +issues, please let us know. + + +Organization: +------------- + +* The tools, look at the src/ catalog. You can run the './configure' + script followed by 'make' to build. + +* Documentation, look in the doc/ catalog. + +* Older stuff, look in the unsorted-older/ catalog. + +* Not 100% finished but running, look in the testing/ catalog. + You are not adviced to use these, but if you have guts be my + guest :-). Some are running well, but just not well-documented + for release. + + +Bugs/improvements: +------------------ + +If you find bugs (yes, they are there for sure), or have ideas for +improvements, you are ofcause entitled to fix/improve by yourself, +but it would be highly appreciated, if you would follow the spirit +of foo-tools, and either send us patches, or make them available for +download. + +If you do are not a programmer, but got this great idea that just +fits so well into foo-tools, you can also tell us about it, and ask +us to implement it. If we have enough sparetime and the idea is good, +maybe we will do it ;-). + + + +Enjoy, Tanesha Team, + diff --git a/doc/README.foo-pre b/doc/README.foo-pre index 5a8033f..7c73795 100644 --- a/doc/README.foo-pre +++ b/doc/README.foo-pre @@ -130,7 +130,7 @@ installation; "cp foo-pre /glftpd/bin/; cp pre.cfg /glftpd/etc/" * Set correct permissions on foo-pre, it needs setuid bit set. - "chown root /glftpd/bin/foo-pre; chmod 4711 /glftpd/bin/foo-pre" + "chown root /gfltpd/bin/foo-pre; chmod 4711 /glftpd/bin/foo-pre" * Add foo-pre in your glftpd.conf. "site_cmd PRE EXEC /bin/foo-pre" diff --git a/src/CHANGES b/src/CHANGES index be1bbc3..676724c 100644 --- a/src/CHANGES +++ b/src/CHANGES @@ -70,4 +70,6 @@ Nov 1 2011: * Fixed mktime timeout on configure (thks to peakz) * Fixed chroot gentoo bug for foo-pre. * Added a little help file. Nov 2 2011: * Fixed a bug about "you're not in any of your predir" :) -Mar 31 2013: * Fixed a strncpy bug while resolving links on x64 env. which lead to a "destination section's path doesnt exist" (overflow). + +//slv +Aug 08 2012: * MP3 genre added to PRE output (instead of in mod_idmp3) diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..a827172 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,43 @@ + + +include Makefile.config + +# build order. +DIRS = lib util collection thread checker nfo pre nukes bouncer who unzip \ + zip reset sfv + +all: help + +help: + @echo Available targets: + @echo " make build - builds most." + @echo " make show - shows build binaries." + @echo " make webspy - makes webspy." + @echo " make clean - cleans." + +build: + @echo Building .. + @for x in $(DIRS); do \ + (cd $$x; make) \ + done + +show: + @echo These are the programs build .. + @size bouncer/simple_entry nfo/nfocleaner nukes/foo-nukes pre/foo-pre \ + reset/foo-reset sfv/blehsfv sfv/createsfv who/spy who/webspy + +webspy: build + (cd who; make webspy) + +clean: + for x in $(DIRS); do \ + (cd $$x; make clean) \ + done + +distclean: clean + /bin/rm -f Makefile config.h config.status config.cache config.log + @for dir in ${DIRS}; do \ + (cd $$dir && $(MAKE) distclean) \ + || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" + diff --git a/src/Makefile.config b/src/Makefile.config index 65c3590..f01e604 100644 --- a/src/Makefile.config +++ b/src/Makefile.config @@ -10,7 +10,7 @@ INSTALL = install -m755 -o root -g root ## these prolly doesnt need to be changed. -CC = gcc -O0 -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-all -DSSP +CC = gcc -O0 ## these should not be changed. diff --git a/src/collection/sortedlist.h b/src/collection/sortedlist.h index e91f2e1..91864b4 100644 --- a/src/collection/sortedlist.h +++ b/src/collection/sortedlist.h @@ -27,8 +27,6 @@ #ifndef _sortedlist_h #define _sortedlist_h -#include - // holds list items. struct sortedlist_item { void *obj; diff --git a/src/config.h b/src/config.h new file mode 100644 index 0000000..5b63d42 --- /dev/null +++ b/src/config.h @@ -0,0 +1,308 @@ +/* config.h. Generated by configure. */ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if the `closedir' function returns void instead of `int'. */ +/* #undef CLOSEDIR_VOID */ + +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +/* #undef CRAY_STACKSEG_END */ + +/* Define to 1 if using `alloca.c'. */ +/* #undef C_ALLOCA */ + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define to 1 if you have `alloca', as a function or macro. */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ARPA_INET_H 1 + +/* Define to 1 if you have the `btowc' function. */ +/* #undef HAVE_BTOWC */ + +/* Define to 1 if you have the `bzero' function. */ +#define HAVE_BZERO 1 + +/* Define to 1 if your system has a working `chown' function. */ +#define HAVE_CHOWN 1 + +/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. + */ +/* #undef HAVE_DECL_GETENV */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ +/* #undef HAVE_DOPRNT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `ftruncate' function. */ +#define HAVE_FTRUNCATE 1 + +/* Define to 1 if you have the `getcwd' function. */ +#define HAVE_GETCWD 1 + +/* Define to 1 if you have the `gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if you have the `inet_ntoa' function. */ +#define HAVE_INET_NTOA 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `crypto' library (-lcrypto). */ +#define HAVE_LIBCRYPTO 1 + +/* Define to 1 if you have the `curses' library (-lcurses). */ +#define HAVE_LIBCURSES 1 + +/* Define to 1 if you have the `dl' library (-ldl). */ +#define HAVE_LIBDL 1 + +/* Define to 1 if you have the `httpd' library (-lhttpd). */ +/* #undef HAVE_LIBHTTPD */ + +/* Define to 1 if you have the `ncurses' library (-lncurses). */ +#define HAVE_LIBNCURSES 1 + +/* Define to 1 if you have the `pthread' library (-lpthread). */ +#define HAVE_LIBPTHREAD 1 + +/* Define to 1 if you have the `ssl' library (-lssl). */ +#define HAVE_LIBSSL 1 + +/* Define to 1 if you have the `z' library (-lz). */ +#define HAVE_LIBZ 1 + +/* Define to 1 if your system has a GNU libc compatible `malloc' function, and + to 0 otherwise. */ +#define HAVE_MALLOC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MALLOC_H 1 + +/* Define to 1 if you have the `mbsrtowcs' function. */ +/* #undef HAVE_MBSRTOWCS */ + +/* Define to 1 if declares mbstate_t. */ +#define HAVE_MBSTATE_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mempcpy' function. */ +/* #undef HAVE_MEMPCPY */ + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have a working `mmap' system call. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `munmap' function. */ +#define HAVE_MUNMAP 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the `regcomp' function. */ +#define HAVE_REGCOMP 1 + +/* Define to 1 if you have the `select' function. */ +#define HAVE_SELECT 1 + +/* Define to 1 if you have the `socket' function. */ +#define HAVE_SOCKET 1 + +/* Define to 1 if `stat' has the bug that it succeeds when given the + zero-length file name argument. */ +/* #undef HAVE_STAT_EMPTY_STRING_BUG */ + +/* Define to 1 if stdbool.h conforms to C99. */ +#define HAVE_STDBOOL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDDEF_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strcasecmp' function. */ +#define HAVE_STRCASECMP 1 + +/* Define to 1 if you have the `strchr' function. */ +#define HAVE_STRCHR 1 + +/* Define to 1 if you have the `strdup' function. */ +#define HAVE_STRDUP 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strncasecmp' function. */ +#define HAVE_STRNCASECMP 1 + +/* Define to 1 if you have the `strrchr' function. */ +#define HAVE_STRRCHR 1 + +/* Define to 1 if you have the `strstr' function. */ +#define HAVE_STRSTR 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vprintf' function. */ +#define HAVE_VPRINTF 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WCHAR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_WCTYPE_H */ + +/* Define to 1 if you have the `wmempcpy' function. */ +/* #undef HAVE_WMEMPCPY */ + +/* Define to 1 if the system has the type `_Bool'. */ +#define HAVE__BOOL 1 + +/* Define to 1 if `lstat' dereferences a symlink specified with a trailing + slash. */ +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "BUG-REPORT-ADDRESS" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "FULL-PACKAGE-NAME" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "FULL-PACKAGE-NAME VERSION" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "full-package-name" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "VERSION" + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* Define to the type of arg 1 for `select'. */ +#define SELECT_TYPE_ARG1 int + +/* Define to the type of args 2, 3 and 4 for `select'. */ +#define SELECT_TYPE_ARG234 (fd_set *) + +/* Define to the type of arg 5 for `select'. */ +#define SELECT_TYPE_ARG5 (struct timeval *) + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +/* #undef STACK_DIRECTION */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to rpl_fnmatch if the replacement function should be used. */ +/* #undef fnmatch */ + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define to rpl_malloc if the replacement function should be used. */ +/* #undef malloc */ + +/* Define to a type if does not define. */ +/* #undef mbstate_t */ + +/* Define to `long' if does not define. */ +/* #undef off_t */ + +/* Define to `int' if does not define. */ +/* #undef pid_t */ + +/* Define to `unsigned' if does not define. */ +/* #undef size_t */ + +/* Define to `int' if doesn't define. */ +/* #undef uid_t */ diff --git a/src/config.log b/src/config.log new file mode 100644 index 0000000..3427f00 --- /dev/null +++ b/src/config.log @@ -0,0 +1,275 @@ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by FULL-PACKAGE-NAME configure VERSION, which was +generated by GNU Autoconf 2.57. Invocation command line was + + $ ./configure + +## --------- ## +## Platform. ## +## --------- ## + +hostname = nr1 +uname -m = x86_64 +uname -r = 2.6.32-5-amd64 +uname -s = Linux +uname -v = #1 SMP Sun May 6 04:00:17 UTC 2012 + +/usr/bin/uname -p = unknown +/bin/uname -X = unknown + +/bin/arch = unknown +/usr/bin/arch -k = unknown +/usr/convex/getsysinfo = unknown +hostinfo = unknown +/bin/machine = unknown +/usr/bin/oslevel = unknown +/bin/universe = unknown + +PATH: /usr/local/sbin +PATH: /usr/local/bin +PATH: /usr/sbin +PATH: /usr/bin +PATH: /sbin +PATH: /bin + + +## ----------- ## +## Core tests. ## +## ----------- ## + +configure:1320: checking for gcc +configure:1336: found /usr/bin/gcc +configure:1346: result: gcc +configure:1590: checking for C compiler version +configure:1593: gcc --version &5 +gcc (Debian 4.4.5-8) 4.4.5 +Copyright (C) 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. + +configure:1596: $? = 0 +configure:1598: gcc -v &5 +Using built-in specs. +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 4.4.5 (Debian 4.4.5-8) +configure:1601: $? = 0 +configure:1603: gcc -V &5 +gcc: '-V' option must have argument +configure:1606: $? = 1 +configure:1630: checking for C compiler default output +configure:1633: gcc conftest.c >&5 +configure:1636: $? = 0 +configure:1682: result: a.out +configure:1687: checking whether the C compiler works +configure:1693: ./a.out +configure:1696: $? = 0 +configure:1713: result: yes +configure:1720: checking whether we are cross compiling +configure:1722: result: no +configure:1725: checking for suffix of executables +configure:1727: gcc -o conftest conftest.c >&5 +configure:1730: $? = 0 +configure:1755: result: +configure:1761: checking for suffix of object files +configure:1783: gcc -c conftest.c >&5 +configure:1786: $? = 0 +configure:1808: result: o +configure:1812: checking whether we are using the GNU C compiler +configure:1837: gcc -c conftest.c >&5 +configure:1840: $? = 0 +configure:1843: test -s conftest.o +configure:1846: $? = 0 +configure:1859: result: yes +configure:1865: checking whether gcc accepts -g +configure:1887: gcc -c -g conftest.c >&5 +configure:1890: $? = 0 +configure:1893: test -s conftest.o +configure:1896: $? = 0 +configure:1907: result: yes +configure:1924: checking for gcc option to accept ANSI C +configure:1985: gcc -c -g -O2 conftest.c >&5 +configure:1988: $? = 0 +configure:1991: test -s conftest.o +configure:1994: $? = 0 +configure:2012: result: none needed +configure:2030: gcc -c -g -O2 conftest.c >&5 +conftest.c:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'me' +configure:2033: $? = 1 +configure: failed program was: +| #ifndef __cplusplus +| choke me +| #endif +configure:2141: checking whether make sets $(MAKE) +configure:2161: result: yes +configure:2175: checking for main in -lcrypto +configure:2200: gcc -o conftest -g -O2 conftest.c -lcrypto >&5 +configure:2203: $? = 0 +configure:2206: test -s conftest +configure:2209: $? = 0 +configure:2221: result: yes +configure:2234: checking for main in -lcurses +configure:2259: gcc -o conftest -g -O2 conftest.c -lcurses -lcrypto >&5 +configure:2262: $? = 0 +configure:2265: test -s conftest +configure:2268: $? = 0 +configure:2280: result: yes +configure:2293: checking for main in -ldl +configure:2318: gcc -o conftest -g -O2 conftest.c -ldl -lcurses -lcrypto >&5 +configure:2321: $? = 0 +configure:2324: test -s conftest +configure:2327: $? = 0 +configure:2339: result: yes +configure:2352: checking for main in -lhttpd +configure:2377: gcc -o conftest -g -O2 conftest.c -lhttpd -ldl -lcurses -lcrypto >&5 +/usr/bin/ld: cannot find -lhttpd +collect2: ld returned 1 exit status +configure:2380: $? = 1 +configure: failed program was: +| #line 2359 "configure" +| /* confdefs.h. */ +| +| #define PACKAGE_NAME "FULL-PACKAGE-NAME" +| #define PACKAGE_TARNAME "full-package-name" +| #define PACKAGE_VERSION "VERSION" +| #define PACKAGE_STRING "FULL-PACKAGE-NAME VERSION" +| #define PACKAGE_BUGREPORT "BUG-REPORT-ADDRESS" +| #define HAVE_LIBCRYPTO 1 +| #define HAVE_LIBCURSES 1 +| #define HAVE_LIBDL 1 +| /* end confdefs.h. */ +| +| +| int +| main () +| { +| main (); +| ; +| return 0; +| } +configure:2398: result: no +configure:2411: checking for main in -lncurses +configure:2436: gcc -o conftest -g -O2 conftest.c -lncurses -ldl -lcurses -lcrypto >&5 +configure:2439: $? = 0 +configure:2442: test -s conftest +configure:2445: $? = 0 +configure:2457: result: yes +configure:2470: checking for main in -lpthread +configure:2495: gcc -o conftest -g -O2 conftest.c -lpthread -lncurses -ldl -lcurses -lcrypto >&5 +configure:2498: $? = 0 +configure:2501: test -s conftest +configure:2504: $? = 0 +configure:2516: result: yes +configure:2529: checking for main in -lssl +configure:2554: gcc -o conftest -g -O2 conftest.c -lssl -lpthread -lncurses -ldl -lcurses -lcrypto >&5 +configure:2557: $? = 0 +configure:2560: test -s conftest +configure:2563: $? = 0 +configure:2575: result: yes +configure:2588: checking for main in -lz +configure:2613: gcc -o conftest -g -O2 conftest.c -lz -lssl -lpthread -lncurses -ldl -lcurses -lcrypto >&5 + +## ---------------- ## +## Cache variables. ## +## ---------------- ## + +ac_cv_c_compiler_gnu=yes +ac_cv_env_CC_set= +ac_cv_env_CC_value= +ac_cv_env_CFLAGS_set= +ac_cv_env_CFLAGS_value= +ac_cv_env_CPPFLAGS_set= +ac_cv_env_CPPFLAGS_value= +ac_cv_env_CPP_set= +ac_cv_env_CPP_value= +ac_cv_env_LDFLAGS_set= +ac_cv_env_LDFLAGS_value= +ac_cv_env_build_alias_set= +ac_cv_env_build_alias_value= +ac_cv_env_host_alias_set= +ac_cv_env_host_alias_value= +ac_cv_env_target_alias_set= +ac_cv_env_target_alias_value= +ac_cv_exeext= +ac_cv_lib_crypto_main=yes +ac_cv_lib_curses_main=yes +ac_cv_lib_dl_main=yes +ac_cv_lib_httpd_main=no +ac_cv_lib_ncurses_main=yes +ac_cv_lib_pthread_main=yes +ac_cv_lib_ssl_main=yes +ac_cv_objext=o +ac_cv_prog_ac_ct_CC=gcc +ac_cv_prog_cc_g=yes +ac_cv_prog_cc_stdc= +ac_cv_prog_make_make_set=yes + +## ----------------- ## +## Output variables. ## +## ----------------- ## + +ALLOCA='' +CC='gcc' +CFLAGS='-g -O2' +CPP='' +CPPFLAGS='' +DEFS='' +ECHO_C='' +ECHO_N='-n' +ECHO_T='' +EGREP='' +EXEEXT='' +LDFLAGS='' +LIBOBJS='' +LIBS='-lz -lssl -lpthread -lncurses -ldl -lcurses -lcrypto ' +LTLIBOBJS='' +OBJEXT='o' +PACKAGE_BUGREPORT='BUG-REPORT-ADDRESS' +PACKAGE_NAME='FULL-PACKAGE-NAME' +PACKAGE_STRING='FULL-PACKAGE-NAME VERSION' +PACKAGE_TARNAME='full-package-name' +PACKAGE_VERSION='VERSION' +PATH_SEPARATOR=':' +SET_MAKE='' +SHELL='/bin/bash' +ac_ct_CC='gcc' +bindir='${exec_prefix}/bin' +build_alias='' +datadir='${prefix}/share' +exec_prefix='NONE' +host_alias='' +includedir='${prefix}/include' +infodir='${prefix}/info' +libdir='${exec_prefix}/lib' +libexecdir='${exec_prefix}/libexec' +localstatedir='${prefix}/var' +mandir='${prefix}/man' +oldincludedir='/usr/include' +prefix='NONE' +program_transform_name='s,x,x,' +sbindir='${exec_prefix}/sbin' +sharedstatedir='${prefix}/com' +sysconfdir='${prefix}/etc' +target_alias='' + +## ----------- ## +## confdefs.h. ## +## ----------- ## + +#define HAVE_LIBCRYPTO 1 +#define HAVE_LIBCURSES 1 +#define HAVE_LIBDL 1 +#define HAVE_LIBNCURSES 1 +#define HAVE_LIBPTHREAD 1 +#define HAVE_LIBSSL 1 +#define PACKAGE_BUGREPORT "BUG-REPORT-ADDRESS" +#define PACKAGE_NAME "FULL-PACKAGE-NAME" +#define PACKAGE_STRING "FULL-PACKAGE-NAME VERSION" +#define PACKAGE_TARNAME "full-package-name" +#define PACKAGE_VERSION "VERSION" + +configure: caught signal 2 +configure: exit 1 diff --git a/src/config.status b/src/config.status new file mode 100755 index 0000000..117f8f5 --- /dev/null +++ b/src/config.status @@ -0,0 +1,1151 @@ +#! /bin/bash +# Generated by configure. +# 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-/bin/bash} +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; 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 + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# 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 + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + 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 + + ;; + 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 + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); 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 sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by FULL-PACKAGE-NAME $as_me VERSION, which was +generated by GNU Autoconf 2.57. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +config_files=" Makefile bouncer/Makefile checker/Makefile collection/Makefile lib/Makefile nfo/Makefile nukes/Makefile pre/Makefile pre/modules/Makefile reset/Makefile sfv/Makefile thread/Makefile unzip/Makefile util/Makefile who/Makefile zip/Makefile" +config_headers=" config.h" + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet 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 + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration links: +$config_links + +Report bugs to ." +ac_cs_version="\ +FULL-PACKAGE-NAME config.status VERSION +configured by ./configure, generated by GNU Autoconf 2.57, + with options \"\" + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=. +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +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=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + 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 + +if $ac_cs_recheck; then + echo "running /bin/bash ./configure " $ac_configure_extra_args " --no-create --no-recursion" >&6 + exec /bin/bash ./configure $ac_configure_extra_args --no-create --no-recursion +fi + +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "bouncer/Makefile" ) CONFIG_FILES="$CONFIG_FILES bouncer/Makefile" ;; + "checker/Makefile" ) CONFIG_FILES="$CONFIG_FILES checker/Makefile" ;; + "collection/Makefile" ) CONFIG_FILES="$CONFIG_FILES collection/Makefile" ;; + "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "nfo/Makefile" ) CONFIG_FILES="$CONFIG_FILES nfo/Makefile" ;; + "nukes/Makefile" ) CONFIG_FILES="$CONFIG_FILES nukes/Makefile" ;; + "pre/Makefile" ) CONFIG_FILES="$CONFIG_FILES pre/Makefile" ;; + "pre/modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES pre/modules/Makefile" ;; + "reset/Makefile" ) CONFIG_FILES="$CONFIG_FILES reset/Makefile" ;; + "sfv/Makefile" ) CONFIG_FILES="$CONFIG_FILES sfv/Makefile" ;; + "thread/Makefile" ) CONFIG_FILES="$CONFIG_FILES thread/Makefile" ;; + "unzip/Makefile" ) CONFIG_FILES="$CONFIG_FILES unzip/Makefile" ;; + "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; + "who/Makefile" ) CONFIG_FILES="$CONFIG_FILES who/Makefile" ;; + "zip/Makefile" ) CONFIG_FILES="$CONFIG_FILES zip/Makefile" ;; + "$ac_config_libobj_dir/fnmatch.h" ) CONFIG_LINKS="$CONFIG_LINKS $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" ;; + "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + 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_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF +s,@SHELL@,/bin/bash,;t t +s,@PATH_SEPARATOR@,:,;t t +s,@PACKAGE_NAME@,FULL-PACKAGE-NAME,;t t +s,@PACKAGE_TARNAME@,full-package-name,;t t +s,@PACKAGE_VERSION@,VERSION,;t t +s,@PACKAGE_STRING@,FULL-PACKAGE-NAME VERSION,;t t +s,@PACKAGE_BUGREPORT@,BUG-REPORT-ADDRESS,;t t +s,@exec_prefix@,${prefix},;t t +s,@prefix@,/usr/local,;t t +s,@program_transform_name@,s,x,x,,;t t +s,@bindir@,${exec_prefix}/bin,;t t +s,@sbindir@,${exec_prefix}/sbin,;t t +s,@libexecdir@,${exec_prefix}/libexec,;t t +s,@datadir@,${prefix}/share,;t t +s,@sysconfdir@,${prefix}/etc,;t t +s,@sharedstatedir@,${prefix}/com,;t t +s,@localstatedir@,${prefix}/var,;t t +s,@libdir@,${exec_prefix}/lib,;t t +s,@includedir@,${prefix}/include,;t t +s,@oldincludedir@,/usr/include,;t t +s,@infodir@,${prefix}/info,;t t +s,@mandir@,${prefix}/man,;t t +s,@build_alias@,,;t t +s,@host_alias@,,;t t +s,@target_alias@,,;t t +s,@DEFS@,-DHAVE_CONFIG_H,;t t +s,@ECHO_C@,,;t t +s,@ECHO_N@,-n,;t t +s,@ECHO_T@,,;t t +s,@LIBS@,-lz -lssl -lpthread -lncurses -ldl -lcurses -lcrypto ,;t t +s,@CC@,gcc,;t t +s,@CFLAGS@,-g -O2,;t t +s,@LDFLAGS@,,;t t +s,@CPPFLAGS@,,;t t +s,@ac_ct_CC@,gcc,;t t +s,@EXEEXT@,,;t t +s,@OBJEXT@,o,;t t +s,@SET_MAKE@,,;t t +s,@CPP@,gcc -E,;t t +s,@EGREP@,grep -E,;t t +s,@ALLOCA@,,;t t +s,@LIBOBJS@,,;t t +s,@LTLIBOBJS@,,;t t +CEOF + + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # 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. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + sed "/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +} + +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done + +# +# CONFIG_HEADER section. +# + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='[ ].*$,\1#\2' +ac_dC=' ' +ac_dD=',;t' +# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='$,\1#\2define\3' +ac_uC=' ' +ac_uD=',;t' + +for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + + # Handle all the #define templates only if necessary. + if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then + # If there are no defines, we may have an empty if/fi + : + cat >$tmp/defines.sed <$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + cat >$tmp/defines.sed <$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + cat >$tmp/defines.sed <$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + fi # grep + + # Handle all the #undef templates + cat >$tmp/undefs.sed <$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + cat >$tmp/undefs.sed <$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + cat >$tmp/undefs.sed <$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + # 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. */ + if test x"$ac_file" = x-; then + echo "/* Generated by configure. */" >$tmp/config.h + else + echo "/* $ac_file. Generated by configure. */" >$tmp/config.h + fi + cat $tmp/in >>$tmp/config.h + rm -f $tmp/in + if test x"$ac_file" != x-; then + if diff $ac_file $tmp/config.h >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + rm -f $ac_file + mv $tmp/config.h $ac_file + fi + else + cat $tmp/config.h + rm -f $tmp/config.h + fi +done + +# +# CONFIG_LINKS section. +# + +for ac_file in : $CONFIG_LINKS; do test "x$ac_file" = x: && continue + ac_dest=`echo "$ac_file" | sed 's,:.*,,'` + ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` + + { echo "$as_me:$LINENO: linking $srcdir/$ac_source to $ac_dest" >&5 +echo "$as_me: linking $srcdir/$ac_source to $ac_dest" >&6;} + + if test ! -r $srcdir/$ac_source; then + { { echo "$as_me:$LINENO: error: $srcdir/$ac_source: file not found" >&5 +echo "$as_me: error: $srcdir/$ac_source: file not found" >&2;} + { (exit 1); exit 1; }; } + fi + rm -f $ac_dest + + # Make relative symlinks. + ac_dest_dir=`(dirname "$ac_dest") 2>/dev/null || +$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_dest" : 'X\(//\)[^/]' \| \ + X"$ac_dest" : 'X\(//\)$' \| \ + X"$ac_dest" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dest_dir" + else + as_dir="$ac_dest_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dest_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dest_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dest_dir" != .; then + ac_dir_suffix=/`echo "$ac_dest_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dest_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dest_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dest_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dest_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dest_dir" && cd $ac_top_srcdir && pwd` + + + case $srcdir in + [\\/$]* | ?:[\\/]* ) ac_rel_source=$srcdir/$ac_source ;; + *) ac_rel_source=$ac_top_builddir$srcdir/$ac_source ;; + esac + + # Try a symlink, then a hard link, then a copy. + ln -s $ac_rel_source $ac_dest 2>/dev/null || + ln $srcdir/$ac_source $ac_dest 2>/dev/null || + cp -p $srcdir/$ac_source $ac_dest || + { { echo "$as_me:$LINENO: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&5 +echo "$as_me: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&2;} + { (exit 1); exit 1; }; } +done + +{ (exit 0); exit 0; } diff --git a/src/configure b/src/configure index eb0c4a6..0f5b553 100755 --- a/src/configure +++ b/src/configure @@ -1,462 +1,83 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for FULL-PACKAGE-NAME VERSION. +# Generated by GNU Autoconf 2.57 for FULL-PACKAGE-NAME VERSION. # # Report bugs to . # -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# +# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +# 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. ## -## -------------------- ## +## --------------------- ## +## 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 : +# Be 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 + # Zsh 3.x and 4.x performs 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' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix 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=';' - } +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false 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. -as_myself= -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 +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # 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. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -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 -test -x / || 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 +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME 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 : - export CONFIG_SHELL - # 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. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -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." + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var else - $as_echo "$0: Please tell bug-autoconf@gnu.org and BUG-REPORT-ADDRESS -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: 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_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_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 + $as_unset $as_var fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error +done -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then +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" || +# Name of the executable. +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'` + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + +# PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' @@ -464,118 +85,185 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + - 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 | + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + 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 + + ;; + 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 + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop - s/-\n.*// + s,-$,, + s,^['$as_cr_digits']*\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; } + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec # 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" + # original and so on. Autoconf is especially sensible 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';; + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null + as_expr=false 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 -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' else - as_ln_s='cp -pR' + as_ln_s='ln -s' fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null +rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' + as_mkdir_p=: else - test -d ./-p && rmdir ./-p as_mkdir_p=false fi -as_test_x='test -x' -as_executable_p=as_fn_executable_p +as_executable_p="test -f" # 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'" +as_tr_cpp="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'" +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" -test -n "$DJDIR" || exec 7<&0 &1 +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + # Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` +exec 6>&1 + # # Initializations. # ac_default_prefix=/usr/local -ac_clean_files= ac_config_libobj_dir=. -LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='FULL-PACKAGE-NAME' @@ -583,119 +271,51 @@ PACKAGE_TARNAME='full-package-name' PACKAGE_VERSION='VERSION' PACKAGE_STRING='FULL-PACKAGE-NAME VERSION' PACKAGE_BUGREPORT='BUG-REPORT-ADDRESS' -PACKAGE_URL='' ac_unique_file="config.h.in" # Factoring default headers for most tests. ac_includes_default="\ #include -#ifdef HAVE_SYS_TYPES_H +#if HAVE_SYS_TYPES_H # include #endif -#ifdef HAVE_SYS_STAT_H +#if HAVE_SYS_STAT_H # include #endif -#ifdef STDC_HEADERS +#if STDC_HEADERS # include # include #else -# ifdef HAVE_STDLIB_H +# if HAVE_STDLIB_H # include # endif #endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif -#ifdef HAVE_STRINGS_H +#if HAVE_STRINGS_H # include #endif -#ifdef HAVE_INTTYPES_H +#if HAVE_INTTYPES_H # include +#else +# if HAVE_STDINT_H +# include +# endif #endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H +#if HAVE_UNISTD_H # include #endif" -ac_header_list= -ac_func_list= -ac_subst_vars='LTLIBOBJS -LIBOBJS -ALLOCA -EGREP -GREP -CPP -SET_MAKE -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -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_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT SET_MAKE CPP EGREP ALLOCA LIBOBJS LTLIBOBJS' ac_subst_files='' -ac_user_opts=' -enable_option_checking -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -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 @@ -718,49 +338,34 @@ x_libraries=NONE # 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}' +datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' +infodir='${prefix}/info' +mandir='${prefix}/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 + 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 + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; + case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; @@ -782,59 +387,33 @@ do --config-cache | -C) cache_file=config.cache ;; - -datadir | --datadir | --datadi | --datad) + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) 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-\(.*\)'` + ac_feature=`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 ;; + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_feature=`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=', ';; + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; esac - eval enable_$ac_useropt=\$ac_optarg ;; + eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -861,12 +440,6 @@ do -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 ;; @@ -891,16 +464,13 @@ do | --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) + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) @@ -965,16 +535,6 @@ do | --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 ;; @@ -1025,36 +585,26 @@ do ac_init_version=: ;; -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_package=`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=', ';; + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; esac - eval with_$ac_useropt=\$ac_optarg ;; + eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_package=`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 ;; + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. @@ -1074,26 +624,27 @@ do | --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" + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; *=*) 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 + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + 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 + 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}" + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac @@ -1101,36 +652,31 @@ 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 + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } 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 +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix do - eval ac_val=\$$ac_var - # Remove trailing slashes. + eval ac_val=$`echo $ac_var` case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; esac - # Be sure to have absolute directory names. +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; 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' @@ -1144,6 +690,8 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe + 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 @@ -1155,72 +703,74 @@ 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'` + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + 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 + 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 +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP # # Report the --help message. @@ -1243,12 +793,15 @@ Configuration: --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 + -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 \`..'] +_ACEOF + + cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] @@ -1263,26 +816,18 @@ 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/full-package-name] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --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] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF @@ -1300,9 +845,8 @@ Some influential environment variables: 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 + CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have + headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help @@ -1310,585 +854,129 @@ it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF -ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. + ac_popdir=`pwd` 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 + 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 +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi case $srcdir in - .) # We are building in place. + .) # No --srcdir option. We are building in place. ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. 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 ;; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$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 +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style 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 + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd "$ac_popdir" done fi -test -n "$ac_init_help" && exit $ac_status +test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF FULL-PACKAGE-NAME configure VERSION -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.57 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +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 + exit 0 fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. -## ------------------------ ## -## 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; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval +It was created by FULL-PACKAGE-NAME $as_me VERSION, which was +generated by GNU Autoconf 2.57. Invocation command line was -} # ac_fn_c_try_compile + $ $0 $@ -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () +_ACEOF { - 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 || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## - 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; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval +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` -} # ac_fn_c_try_link +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` -# 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 +/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` +hostinfo = `(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` - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval +_ASUNAME -} # ac_fn_c_try_cpp +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done -# 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 +} >&5 - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval +cat >&5 <<_ACEOF -} # 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 \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; 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;} -( $as_echo "## --------------------------------- ## -## Report this to BUG-REPORT-ADDRESS ## -## --------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; 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; ${as_lineno_stack:+:} 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 \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - 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 \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=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 -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type - -# 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 \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -# --------------------------------------------- -# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -# accordingly. -ac_fn_c_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - as_decl_name=`echo $2|sed 's/ *(.*//'` - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -#ifndef $as_decl_name -#ifdef __cplusplus - (void) $as_decl_use; -#else - (void) $as_decl_name; -#endif -#endif - - ; - return 0; -} -_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; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_decl -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 FULL-PACKAGE-NAME $as_me VERSION, which was -generated by GNU Autoconf 2.69. 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. ## -## ----------- ## +## ----------- ## +## Core tests. ## +## ----------- ## _ACEOF @@ -1901,6 +989,7 @@ _ACEOF ac_configure_args= ac_configure_args0= ac_configure_args1= +ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do @@ -1911,137 +1000,126 @@ do -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) - as_fn_append ac_configure_args1 " '$ac_arg'" + ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. + 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 + 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'" + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " ;; esac done done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + cat <<\_ASBOX +## ---------------- ## ## Cache variables. ## -## ---------------- ##" +## ---------------- ## +_ASBOX 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=\ *) + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; - esac | - sort -) + esac; +} echo - $as_echo "## ----------------- ## + cat <<\_ASBOX +## ----------------- ## ## Output variables. ## -## ----------------- ##" +## ----------------- ## +_ASBOX 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'\''" + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX 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'\''" + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + cat <<\_ASBOX +## ----------- ## ## confdefs.h. ## -## ----------- ##" +## ----------- ## +_ASBOX echo - cat confdefs.h + sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status -' 0 + ' 0 for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal + trap 'ac_signal='$ac_signal'; { (exit 1); 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 +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h # Predefined preprocessor variables. @@ -2049,142 +1127,112 @@ 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" +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _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 +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi 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;} +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +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; } + . "$ac_site_file" 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;} + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; + [\\/]* | ?:[\\/]* ) . $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;} + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -as_fn_append ac_header_list " sys/time.h" -as_fn_append ac_header_list " unistd.h" -as_fn_append ac_func_list " alarm" -as_fn_append ac_header_list " stdlib.h" -as_fn_append ac_header_list " sys/param.h" # 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 +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; 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 + 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;} + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +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;} + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +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;} + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: 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=`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'" ;; + *) ac_configure_args="$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 + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -2194,7 +1242,32 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_config_headers="$ac_config_headers config.h" + + + + + + + + + + + + + + + + + + + + + + + + + + ac_config_headers="$ac_config_headers config.h" # Checks for programs. @@ -2206,10 +1279,10 @@ 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 ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2219,37 +1292,35 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$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 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done - done -IFS=$as_save_IFS +done 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; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}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 ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2259,50 +1330,39 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$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 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done - done -IFS=$as_save_IFS +done 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; } + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}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 + CC=$ac_ct_CC 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. + 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 ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2312,37 +1372,77 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$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 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done - done -IFS=$as_save_IFS +done 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; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +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 ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2353,19 +1453,18 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$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 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done - done -IFS=$as_save_IFS +done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. @@ -2383,25 +1482,24 @@ 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; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe + for ac_prog in cl 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 ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2411,41 +1509,39 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$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 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done - done -IFS=$as_save_IFS +done 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; } + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC - for ac_prog in cl.exe + for ac_prog in cl 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 ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2455,78 +1551,67 @@ 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$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 + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done - done -IFS=$as_save_IFS +done 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; } + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}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 + CC=$ac_ct_CC 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; } +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } # 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 +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 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 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -2538,108 +1623,112 @@ main () } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +ac_clean_files="$ac_clean_files a.out 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 '' +echo "$as_me:$LINENO: checking for C compiler default output" >&5 +echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Find the output, starting from the most likely. This scheme is +# not robust to junk in `.', hence go to wildcards (a.*) only as a last +# resort. + +# Be careful to initialize this variable, since it used to be cached. +# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. +ac_cv_exeext= +# b.out is created by i960 compilers. +for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out 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_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) + ;; + conftest.$ac_ext ) + # This is the source file. + ;; [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; + # 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;; + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool, + # but it would be cool to find out if it's true. Does anybody + # maintain Libtool? --akim. + export ac_cv_exeext + break;; * ) - 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 + 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; } +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } 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 +echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6 + +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +rm -f a.out 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 +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6 + +echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 +if { (eval echo "$as_me:$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; }; then : + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; 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 @@ -2647,90 +1736,39 @@ $as_echo "$ac_try_echo"; } >&5 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_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; + export ac_cv_exeext + 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; } + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } 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_cv_exeext +echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$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; -} +echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ _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 ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -2742,46 +1780,46 @@ main () } _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; +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - $as_echo "$as_me: failed program was:" >&5 + 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; } +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } 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; } +echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$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 ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -2795,49 +1833,46 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_compiler_gnu=yes else - ac_compiler_gnu=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f 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 +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` 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 ${ac_cv_prog_cc_g+:} false; 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; -} +CFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int @@ -2848,34 +1883,29 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes +ac_cv_prog_cc_g=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f 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; } +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$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 @@ -2891,18 +1921,24 @@ 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 ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_cv_prog_cc_c89=no + ac_cv_prog_cc_stdc=no ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include -struct stat; +#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); @@ -2921,21 +1957,6 @@ static char *f (char * (*g) (char **, int), char **p, ...) 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);}; @@ -2950,71 +1971,199 @@ 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__" +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -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 + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break +rm -f conftest.$ac_objext done -rm -f conftest.$ac_ext +rm -f conftest.$ac_ext conftest.$ac_objext 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; } ;; + +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&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; } ;; + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; esac -if test "x$ac_cv_prog_cc_c89" != xno; then : +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +#include +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext 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 -{ $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 \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF -SHELL = /bin/sh all: - @echo '@@@%%%=$(MAKE)=@@@%%%' + @echo 'ac_maketemp="$(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 +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi 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; } +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 SET_MAKE= else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi @@ -3022,37 +2171,56 @@ fi # Checks for libraries. # FIXME: Replace `main' with a function in `-lcrypto': -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lcrypto" >&5 -$as_echo_n "checking for main in -lcrypto... " >&6; } -if ${ac_cv_lib_crypto_main+:} false; then : - $as_echo_n "(cached) " >&6 + +echo "$as_me:$LINENO: checking for main in -lcrypto" >&5 +echo $ECHO_N "checking for main in -lcrypto... $ECHO_C" >&6 +if test "${ac_cv_lib_crypto_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { -return main (); +main (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_lib_crypto_main=yes else - ac_cv_lib_crypto_main=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_crypto_main=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f 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_crypto_main" >&5 -$as_echo "$ac_cv_lib_crypto_main" >&6; } -if test "x$ac_cv_lib_crypto_main" = xyes; then : +echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_main" >&5 +echo "${ECHO_T}$ac_cv_lib_crypto_main" >&6 +if test $ac_cv_lib_crypto_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBCRYPTO 1 _ACEOF @@ -3062,37 +2230,56 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lcurses': -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lcurses" >&5 -$as_echo_n "checking for main in -lcurses... " >&6; } -if ${ac_cv_lib_curses_main+:} false; then : - $as_echo_n "(cached) " >&6 + +echo "$as_me:$LINENO: checking for main in -lcurses" >&5 +echo $ECHO_N "checking for main in -lcurses... $ECHO_C" >&6 +if test "${ac_cv_lib_curses_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { -return main (); +main (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_lib_curses_main=yes else - ac_cv_lib_curses_main=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_curses_main=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f 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_curses_main" >&5 -$as_echo "$ac_cv_lib_curses_main" >&6; } -if test "x$ac_cv_lib_curses_main" = xyes; then : +echo "$as_me:$LINENO: result: $ac_cv_lib_curses_main" >&5 +echo "${ECHO_T}$ac_cv_lib_curses_main" >&6 +if test $ac_cv_lib_curses_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBCURSES 1 _ACEOF @@ -3102,37 +2289,56 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-ldl': -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldl" >&5 -$as_echo_n "checking for main in -ldl... " >&6; } -if ${ac_cv_lib_dl_main+:} false; then : - $as_echo_n "(cached) " >&6 + +echo "$as_me:$LINENO: checking for main in -ldl" >&5 +echo $ECHO_N "checking for main in -ldl... $ECHO_C" >&6 +if test "${ac_cv_lib_dl_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { -return main (); +main (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_lib_dl_main=yes else - ac_cv_lib_dl_main=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_dl_main=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f 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_main" >&5 -$as_echo "$ac_cv_lib_dl_main" >&6; } -if test "x$ac_cv_lib_dl_main" = xyes; then : +echo "$as_me:$LINENO: result: $ac_cv_lib_dl_main" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_main" >&6 +if test $ac_cv_lib_dl_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBDL 1 _ACEOF @@ -3142,37 +2348,56 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lhttpd': -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lhttpd" >&5 -$as_echo_n "checking for main in -lhttpd... " >&6; } -if ${ac_cv_lib_httpd_main+:} false; then : - $as_echo_n "(cached) " >&6 + +echo "$as_me:$LINENO: checking for main in -lhttpd" >&5 +echo $ECHO_N "checking for main in -lhttpd... $ECHO_C" >&6 +if test "${ac_cv_lib_httpd_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lhttpd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { -return main (); +main (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_lib_httpd_main=yes else - ac_cv_lib_httpd_main=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_httpd_main=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f 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_httpd_main" >&5 -$as_echo "$ac_cv_lib_httpd_main" >&6; } -if test "x$ac_cv_lib_httpd_main" = xyes; then : +echo "$as_me:$LINENO: result: $ac_cv_lib_httpd_main" >&5 +echo "${ECHO_T}$ac_cv_lib_httpd_main" >&6 +if test $ac_cv_lib_httpd_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBHTTPD 1 _ACEOF @@ -3182,37 +2407,56 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lncurses': -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lncurses" >&5 -$as_echo_n "checking for main in -lncurses... " >&6; } -if ${ac_cv_lib_ncurses_main+:} false; then : - $as_echo_n "(cached) " >&6 + +echo "$as_me:$LINENO: checking for main in -lncurses" >&5 +echo $ECHO_N "checking for main in -lncurses... $ECHO_C" >&6 +if test "${ac_cv_lib_ncurses_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { -return main (); +main (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_lib_ncurses_main=yes else - ac_cv_lib_ncurses_main=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_ncurses_main=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f 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_ncurses_main" >&5 -$as_echo "$ac_cv_lib_ncurses_main" >&6; } -if test "x$ac_cv_lib_ncurses_main" = xyes; then : +echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_main" >&5 +echo "${ECHO_T}$ac_cv_lib_ncurses_main" >&6 +if test $ac_cv_lib_ncurses_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBNCURSES 1 _ACEOF @@ -3222,37 +2466,56 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lpthread': -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5 -$as_echo_n "checking for main in -lpthread... " >&6; } -if ${ac_cv_lib_pthread_main+:} false; then : - $as_echo_n "(cached) " >&6 + +echo "$as_me:$LINENO: checking for main in -lpthread" >&5 +echo $ECHO_N "checking for main in -lpthread... $ECHO_C" >&6 +if test "${ac_cv_lib_pthread_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { -return main (); +main (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_lib_pthread_main=yes else - ac_cv_lib_pthread_main=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_pthread_main=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f 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_pthread_main" >&5 -$as_echo "$ac_cv_lib_pthread_main" >&6; } -if test "x$ac_cv_lib_pthread_main" = xyes; then : +echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_main" >&5 +echo "${ECHO_T}$ac_cv_lib_pthread_main" >&6 +if test $ac_cv_lib_pthread_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF @@ -3262,37 +2525,56 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lssl': -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lssl" >&5 -$as_echo_n "checking for main in -lssl... " >&6; } -if ${ac_cv_lib_ssl_main+:} false; then : - $as_echo_n "(cached) " >&6 + +echo "$as_me:$LINENO: checking for main in -lssl" >&5 +echo $ECHO_N "checking for main in -lssl... $ECHO_C" >&6 +if test "${ac_cv_lib_ssl_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lssl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { -return main (); +main (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_lib_ssl_main=yes else - ac_cv_lib_ssl_main=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_ssl_main=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f 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_ssl_main" >&5 -$as_echo "$ac_cv_lib_ssl_main" >&6; } -if test "x$ac_cv_lib_ssl_main" = xyes; then : +echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_main" >&5 +echo "${ECHO_T}$ac_cv_lib_ssl_main" >&6 +if test $ac_cv_lib_ssl_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBSSL 1 _ACEOF @@ -3302,37 +2584,56 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lz': -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lz" >&5 -$as_echo_n "checking for main in -lz... " >&6; } -if ${ac_cv_lib_z_main+:} false; then : - $as_echo_n "(cached) " >&6 + +echo "$as_me:$LINENO: checking for main in -lz" >&5 +echo $ECHO_N "checking for main in -lz... $ECHO_C" >&6 +if test "${ac_cv_lib_z_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { -return main (); +main (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_lib_z_main=yes else - ac_cv_lib_z_main=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_z_main=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f 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_z_main" >&5 -$as_echo "$ac_cv_lib_z_main" >&6; } -if test "x$ac_cv_lib_z_main" = xyes; then : +echo "$as_me:$LINENO: result: $ac_cv_lib_z_main" >&5 +echo "${ECHO_T}$ac_cv_lib_z_main" >&6 +if test $ac_cv_lib_z_main = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBZ 1 _ACEOF @@ -3343,15 +2644,25 @@ fi # Checks for header files. + + + + + ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 -$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval \${$as_ac_Header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 +echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include <$ac_hdr> @@ -3365,19 +2676,32 @@ return 0; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else - eval "$as_ac_Header=no" + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f conftest.$ac_objext conftest.$ac_ext fi -eval ac_res=\$$as_ac_Header - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break @@ -3386,116 +2710,216 @@ fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 + echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +ac_cv_search_opendir=no +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* 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. */ +/* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ char opendir (); int main () { -return opendir (); +opendir (); ; return 0; } _ACEOF -for ac_lib in '' dir; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : - +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="none required" else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_opendir" = no; then + for ac_lib in dir; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* 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. */ +/* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ char opendir (); int main () { -return opendir (); +opendir (); ; return 0; } _ACEOF -for ac_lib in '' x; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6 +if test "$ac_cv_search_opendir" != no; then + test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" + +fi + +else + echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_opendir=no +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="none required" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_opendir" = no; then + for ac_lib in x; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="-l$ac_lib" +break else - ac_cv_search_opendir=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + done fi -rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6 +if test "$ac_cv_search_opendir" != no; then + test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" fi @@ -3506,15 +2930,15 @@ 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; } +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" @@ -3528,43 +2952,91 @@ do # 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 + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif - Syntax error + Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext - # OK, works on sane cases. Now check whether nonexistent headers + # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Passes both tests. ac_preproc_ok=: break fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f conftest.err 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 : +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then break fi @@ -3576,8 +3048,8 @@ fi else ac_cv_prog_CPP=$CPP fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do @@ -3587,49 +3059,98 @@ do # 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 + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif - Syntax error + Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext - # OK, works on sane cases. Now check whether nonexistent headers + # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + # Passes both tests. ac_preproc_ok=: break fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f conftest.err 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 : - +rm -f 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; } + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } fi ac_ext=c @@ -3639,142 +3160,32 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ 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 ${ac_cv_path_GREP+:} false; 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" - as_fn_executable_p "$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 ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6 +if test "${ac_cv_prog_egrep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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" - as_fn_executable_p "$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 + if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' fi - # 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" +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_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 ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include @@ -3789,23 +3200,42 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_header_stdc=yes else - ac_cv_header_stdc=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_stdc=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f 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 + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - + $EGREP "memchr" >/dev/null 2>&1; then + : else ac_cv_header_stdc=no fi @@ -3815,14 +3245,19 @@ 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 + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - + $EGREP "free" >/dev/null 2>&1; then + : else ac_cv_header_stdc=no fi @@ -3832,21 +3267,25 @@ 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 : + if test "$cross_compiling" = yes; then : else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include -#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')) + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif @@ -3857,40 +3296,101 @@ main () int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : else - ac_cv_header_stdc=no + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +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 +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext 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; } +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then -$as_echo "#define STDC_HEADERS 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF 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 : + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -3898,13 +3398,154 @@ fi done + + + + + + + + + + + + + for ac_header in arpa/inet.h fcntl.h malloc.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/file.h sys/ioctl.h sys/socket.h sys/time.h unistd.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 : +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -3913,25 +3554,30 @@ done # Checks for typedefs, structures, and compiler characteristics. -{ $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 ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 +if test "${ac_cv_c_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { - +/* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus - /* Ultrix mips cc rejects this sort of thing. */ + /* Ultrix mips cc rejects this. */ typedef int charset[2]; - const charset cs = { 0, 0 }; + const charset x; /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; + char const *const *ccp; + char **p; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; @@ -3940,18 +3586,16 @@ main () an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); + ccp = &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 sort of thing. */ - char tx; - char *t = &tx; + ++ccp; + p = (char**) ccp; + ccp = (char const *const *) p; + { /* 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}; @@ -3963,51 +3607,157 @@ main () iptr p = 0; ++p; } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + { /* 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]; } bx; - struct s *b = &bx; b->j = 5; + 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 : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_c_const=yes else - ac_cv_c_const=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_const=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f 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; } +echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6 if test $ac_cv_c_const = no; then -$as_echo "#define const /**/" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define off_t long int +cat >>confdefs.h <<\_ACEOF +#define const _ACEOF fi -ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -if test "x$ac_cv_type_pid_t" = xyes; then : - +echo "$as_me:$LINENO: checking for off_t" >&5 +echo $ECHO_N "checking for off_t... $ECHO_C" >&6 +if test "${ac_cv_type_off_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((off_t *) 0) + return 0; +if (sizeof (off_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_off_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_off_t=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +echo "${ECHO_T}$ac_cv_type_off_t" >&6 +if test $ac_cv_type_off_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define off_t long +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for pid_t" >&5 +echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 +if test "${ac_cv_type_pid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((pid_t *) 0) + return 0; +if (sizeof (pid_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_pid_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_pid_t=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 +echo "${ECHO_T}$ac_cv_type_pid_t" >&6 +if test $ac_cv_type_pid_t = yes; then + : else cat >>confdefs.h <<_ACEOF @@ -4016,23 +3766,74 @@ _ACEOF fi -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : +echo "$as_me:$LINENO: checking for size_t" >&5 +echo $ECHO_N "checking for size_t... $ECHO_C" >&6 +if test "${ac_cv_type_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((size_t *) 0) + return 0; +if (sizeof (size_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_size_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +ac_cv_type_size_t=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +echo "${ECHO_T}$ac_cv_type_size_t" >&6 +if test $ac_cv_type_size_t = yes; then + : else cat >>confdefs.h <<_ACEOF -#define size_t unsigned int +#define size_t unsigned _ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 +if test "${ac_cv_header_time+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include @@ -4047,27 +3848,48 @@ return 0; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_header_time=yes else - ac_cv_header_time=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_time=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +echo "${ECHO_T}$ac_cv_header_time" >&6 if test $ac_cv_header_time = yes; then -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define TIME_WITH_SYS_TIME 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 +if test "${ac_cv_struct_tm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include @@ -4075,106 +3897,166 @@ else int main () { -struct tm tm; - int *p = &tm.tm_sec; - return !p; +struct tm *tp; tp->tm_sec; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_struct_tm=time.h else - ac_cv_struct_tm=sys/time.h + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_struct_tm=sys/time.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +echo "${ECHO_T}$ac_cv_struct_tm" >&6 if test $ac_cv_struct_tm = sys/time.h; then -$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define TM_IN_SYS_TIME 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 -$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } -if ${ac_cv_header_stdbool_h+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 +echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6 +if test "${ac_cv_header_stdbool_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include - #ifndef bool - "error: bool is not defined" - #endif - #ifndef false - "error: false is not defined" - #endif - #if false - "error: false is not 0" - #endif - #ifndef true - "error: true is not defined" - #endif - #if true != 1 - "error: true is not 1" - #endif - #ifndef __bool_true_false_are_defined - "error: __bool_true_false_are_defined is not defined" - #endif - - struct s { _Bool s: 1; _Bool t; } s; - - char a[true == 1 ? 1 : -1]; - char b[false == 0 ? 1 : -1]; - char c[__bool_true_false_are_defined == 1 ? 1 : -1]; - char d[(bool) 0.5 == true ? 1 : -1]; - /* See body of main program for 'e'. */ - char f[(_Bool) 0.0 == false ? 1 : -1]; - char g[true]; - char h[sizeof (_Bool)]; - char i[sizeof s.t]; - enum { j = false, k = true, l = false * true, m = true * 256 }; - /* The following fails for - HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ - _Bool n[m]; - char o[sizeof n == m * sizeof n[0] ? 1 : -1]; - char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; - /* Catch a bug in an HP-UX C compiler. See - http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html - http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html - */ - _Bool q = true; - _Bool *pq = &q; +#include +#ifndef bool +# error bool is not defined +#endif +#ifndef false +# error false is not defined +#endif +#if false +# error false is not 0 +#endif +#ifndef true +# error true is not defined +#endif +#if true != 1 +# error true is not 1 +#endif +#ifndef __bool_true_false_are_defined +# error __bool_true_false_are_defined is not defined +#endif + + struct s { _Bool s: 1; _Bool t; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) -0.5 == true ? 1 : -1]; + bool e = &s; + char f[(_Bool) -0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (_Bool)]; + char i[sizeof s.t]; int main () { - - bool e = &s; - *pq |= q; - *pq |= ! q; - /* Refer to every declared value, to avoid compiler optimizations. */ - return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l - + !m + !n + !o + !p + !q + !pq); - + return !a + !b + !c + !d + !e + !f + !g + !h + !i; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_header_stdbool_h=yes else - ac_cv_header_stdbool_h=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_stdbool_h=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 +echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6 +echo "$as_me:$LINENO: checking for _Bool" >&5 +echo $ECHO_N "checking for _Bool... $ECHO_C" >&6 +if test "${ac_cv_type__Bool+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((_Bool *) 0) + return 0; +if (sizeof (_Bool)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type__Bool=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type__Bool=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 -$as_echo "$ac_cv_header_stdbool_h" >&6; } - ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" -if test "x$ac_cv_type__Bool" = xyes; then : +echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 +echo "${ECHO_T}$ac_cv_type__Bool" >&6 +if test $ac_cv_type__Bool = yes; then cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 @@ -4183,27 +4065,33 @@ _ACEOF fi - if test $ac_cv_header_stdbool_h = yes; then -$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define HAVE_STDBOOL_H 1 +_ACEOF fi # Checks for library functions. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 +if test "${ac_cv_type_uid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then : + $EGREP "uid_t" >/dev/null 2>&1; then ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no @@ -4211,38 +4099,177 @@ fi rm -f conftest* fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 +echo "${ECHO_T}$ac_cv_type_uid_t" >&6 if test $ac_cv_type_uid_t = no; then -$as_echo "#define uid_t int" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define uid_t int +_ACEOF -$as_echo "#define gid_t int" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define gid_t int +_ACEOF fi + for ac_header in unistd.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" -if test "x$ac_cv_header_unistd_h" = xyes; then : +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_UNISTD_H 1 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5 -$as_echo_n "checking for working chown... " >&6; } -if ${ac_cv_func_chown_works+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for working chown" >&5 +echo $ECHO_N "checking for working chown... $ECHO_C" >&6 +if test "${ac_cv_func_chown_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then ac_cv_func_chown_works=no else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include @@ -4254,48 +4281,69 @@ main () struct stat before, after; if (creat (f, 0600) < 0) - return 1; + exit (1); if (stat (f, &before) < 0) - return 1; + exit (1); if (chown (f, (uid_t) -1, (gid_t) -1) == -1) - return 1; + exit (1); if (stat (f, &after) < 0) - return 1; - return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid); + exit (1); + exit ((before.st_uid == after.st_uid + && before.st_gid == after.st_gid) ? 0 : 1); ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_chown_works=yes else - ac_cv_func_chown_works=no + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_chown_works=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - rm -f conftest.chown fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5 -$as_echo "$ac_cv_func_chown_works" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_func_chown_works" >&5 +echo "${ECHO_T}$ac_cv_func_chown_works" >&6 if test $ac_cv_func_chown_works = yes; then -$as_echo "#define HAVE_CHOWN 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define HAVE_CHOWN 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5 -$as_echo_n "checking whether closedir returns void... " >&6; } -if ${ac_cv_func_closedir_void+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking whether closedir returns void" >&5 +echo $ECHO_N "checking whether closedir returns void... $ECHO_C" >&6 +if test "${ac_cv_func_closedir_void+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then ac_cv_func_closedir_void=yes else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header_dirent> @@ -4306,70 +4354,109 @@ int closedir (); int main () { -return closedir (opendir (".")) != 0; +exit (closedir (opendir (".")) != 0); ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_closedir_void=no else - ac_cv_func_closedir_void=yes + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_closedir_void=yes fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_closedir_void" >&5 -$as_echo "$ac_cv_func_closedir_void" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5 +echo "${ECHO_T}$ac_cv_func_closedir_void" >&6 if test $ac_cv_func_closedir_void = yes; then -$as_echo "#define CLOSEDIR_VOID 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define CLOSEDIR_VOID 1 +_ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +echo "$as_me:$LINENO: checking for working alloca.h" >&5 +echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 +if test "${ac_cv_working_alloca_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_working_alloca_h=yes else - ac_cv_working_alloca_h=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_working_alloca_h=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 +echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 if test $ac_cv_working_alloca_h = yes; then -$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA_H 1 +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for alloca" >&5 +echo $ECHO_N "checking for alloca... $ECHO_C" >&6 +if test "${ac_cv_func_alloca_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca @@ -4378,14 +4465,14 @@ else # include # define alloca _alloca # else -# ifdef HAVE_ALLOCA_H +# if HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); +char *alloca (); # endif # endif # endif @@ -4396,25 +4483,39 @@ int main () { char *p = (char *) alloca (1); - if (p) return 0; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_alloca_works=yes else - ac_cv_func_alloca_works=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_alloca_works=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 +echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 if test $ac_cv_func_alloca_works = yes; then -$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA 1 +_ACEOF else # The SVR3 libPW and SVR4 libucb both contain incompatible functions @@ -4422,19 +4523,26 @@ else # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. -ALLOCA=\${LIBOBJDIR}alloca.$ac_objext +ALLOCA=alloca.$ac_objext -$as_echo "#define C_ALLOCA 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define C_ALLOCA 1 +_ACEOF -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 +echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 +if test "${ac_cv_os_cray+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#if defined CRAY && ! defined CRAY2 +#if defined(CRAY) && ! defined(CRAY2) webecray #else wenotbecray @@ -4442,7 +4550,7 @@ wenotbecray _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then : + $EGREP "webecray" >/dev/null 2>&1; then ac_cv_os_cray=yes else ac_cv_os_cray=no @@ -4450,13 +4558,84 @@ fi rm -f conftest* fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 +echo "${ECHO_T}$ac_cv_os_cray" >&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func @@ -4468,46 +4647,67 @@ fi done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 +echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 +if test "${ac_cv_c_stack_direction+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then ac_cv_c_stack_direction=0 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default int -find_stack_direction (int *addr, int depth) +find_stack_direction () { - int dir, dummy = 0; - if (! addr) - addr = &dummy; - *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; - dir = depth ? find_stack_direction (addr, depth - 1) : 0; - return dir + dummy; + static char *addr = 0; + auto char dummy; + if (addr == 0) + { + addr = &dummy; + return find_stack_direction (); + } + else + return (&dummy > addr) ? 1 : -1; } int -main (int argc, char **argv) +main () { - return find_stack_direction (0, argc + !argv + 20) < 0; + exit (find_stack_direction () < 0); } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_c_stack_direction=1 else - ac_cv_c_stack_direction=-1 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_stack_direction=-1 fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 + cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF @@ -4515,12 +4715,17 @@ _ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 -$as_echo_n "checking for mbstate_t... " >&6; } -if ${ac_cv_type_mbstate_t+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for mbstate_t" >&5 +echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 +if test "${ac_cv_type_mbstate_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default # include @@ -4532,37 +4737,60 @@ mbstate_t x; return sizeof x; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_type_mbstate_t=yes else - ac_cv_type_mbstate_t=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_mbstate_t=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 -$as_echo "$ac_cv_type_mbstate_t" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 +echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6 if test $ac_cv_type_mbstate_t = yes; then -$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define HAVE_MBSTATE_T 1 +_ACEOF else -$as_echo "#define mbstate_t int" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define mbstate_t int +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working POSIX fnmatch" >&5 -$as_echo_n "checking for working POSIX fnmatch... " >&6; } -if ${ac_cv_func_fnmatch_works+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for working POSIX fnmatch" >&5 +echo $ECHO_N "checking for working POSIX fnmatch... $ECHO_C" >&6 +if test "${ac_cv_func_fnmatch_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else # Some versions of Solaris, SCO, and the GNU C Library # have a broken or incompatible fnmatch. # So we run a test program. If we are cross-compiling, take no chance. # Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then ac_cv_func_fnmatch_works=cross else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include # define y(a, b, c) (fnmatch (a, b, c) == 0) @@ -4571,7 +4799,7 @@ else int main () { -return +exit (!(y ("a*", "abc", 0) && n ("d*/*1", "d/s/1", FNM_PATHNAME) && y ("a\\\\bc", "abc", 0) @@ -4583,86 +4811,359 @@ return return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_fnmatch_works=yes else - ac_cv_func_fnmatch_works=no + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_fnmatch_works=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fnmatch_works" >&5 -$as_echo "$ac_cv_func_fnmatch_works" >&6; } -if test $ac_cv_func_fnmatch_works = yes; then : - rm -f "$ac_config_libobj_dir/fnmatch.h" +echo "$as_me:$LINENO: result: $ac_cv_func_fnmatch_works" >&5 +echo "${ECHO_T}$ac_cv_func_fnmatch_works" >&6 +if test $ac_cv_func_fnmatch_works = yes; then + rm -f $ac_config_libobj_dir/fnmatch.h +else + echo "$as_me:$LINENO: checking whether getenv is declared" >&5 +echo $ECHO_N "checking whether getenv is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_getenv+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default" -if test "x$ac_cv_have_decl_getenv" = xyes; then : - ac_have_decl=1 + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef getenv + char *p = (char *) getenv; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_getenv=yes else - ac_have_decl=0 + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_getenv=no fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5 +echo "${ECHO_T}$ac_cv_have_decl_getenv" >&6 +if test $ac_cv_have_decl_getenv = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETENV $ac_have_decl +#define HAVE_DECL_GETENV 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETENV 0 _ACEOF + +fi + + + + + + for ac_func in btowc mbsrtowcs mempcpy wmempcpy -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done + + for ac_header in wchar.h wctype.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 +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> _ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +ac_header_compiler=no fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 -done +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 -case " $LIBOBJS " in - *" fnmatch.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS fnmatch.$ac_objext" - ;; +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done -ac_config_links="$ac_config_links $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" +LIBOBJS="$LIBOBJS fnmatch.$ac_objext" + ac_config_links="$ac_config_links $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" -$as_echo "#define fnmatch rpl_fnmatch" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define fnmatch rpl_fnmatch +_ACEOF fi + if test $ac_cv_c_compiler_gnu = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 -$as_echo_n "checking whether $CC needs -traditional... " >&6; } -if ${ac_cv_prog_gcc_traditional+:} false; then : - $as_echo_n "(cached) " >&6 + echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 +echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 +if test "${ac_cv_prog_gcc_traditional+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_pattern="Autoconf.*'x'" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then : + $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no @@ -4671,49 +5172,189 @@ rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then : + $EGREP "$ac_pattern" >/dev/null 2>&1; then ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 -$as_echo "$ac_cv_prog_gcc_traditional" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 +echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi + for ac_header in stdlib.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = xyes; then : +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_STDLIB_H 1 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 -$as_echo_n "checking for GNU libc compatible malloc... " >&6; } -if ${ac_cv_func_malloc_0_nonnull+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 +echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6 +if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then ac_cv_func_malloc_0_nonnull=no else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#if defined STDC_HEADERS || defined HAVE_STDLIB_H +#if STDC_HEADERS || HAVE_STDLIB_H # include #else char *malloc (); @@ -4722,61 +5363,81 @@ char *malloc (); int main () { -return ! malloc (0); +exit (malloc (0) ? 0 : 1); ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_malloc_0_nonnull=yes else - ac_cv_func_malloc_0_nonnull=no + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_malloc_0_nonnull=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 -$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } -if test $ac_cv_func_malloc_0_nonnull = yes; then : +echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 +echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6 +if test $ac_cv_func_malloc_0_nonnull = yes; then -$as_echo "#define HAVE_MALLOC 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define HAVE_MALLOC 1 +_ACEOF else - $as_echo "#define HAVE_MALLOC 0" >>confdefs.h - - case " $LIBOBJS " in - *" malloc.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS malloc.$ac_objext" - ;; -esac + cat >>confdefs.h <<\_ACEOF +#define HAVE_MALLOC 0 +_ACEOF + LIBOBJS="$LIBOBJS malloc.$ac_objext" -$as_echo "#define malloc rpl_malloc" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define malloc rpl_malloc +_ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 -$as_echo_n "checking for working memcmp... " >&6; } -if ${ac_cv_func_memcmp_working+:} false; then : - $as_echo_n "(cached) " >&6 + +echo "$as_me:$LINENO: checking for working memcmp" >&5 +echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6 +if test "${ac_cv_func_memcmp_working+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then ac_cv_func_memcmp_working=no else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default + int main () { /* Some versions of memcmp are not 8-bit clean. */ - char c0 = '\100', c1 = '\200', c2 = '\201'; + char c0 = 0x40, c1 = 0x80, c2 = 0x81; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) - return 1; + exit (1); /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. @@ -4787,109 +5448,306 @@ main () int i; for (i = 0; i < 4; i++) { - char *a = foo + i; - char *b = bar + i; - strcpy (a, "--------01111111"); - strcpy (b, "--------10000000"); - if (memcmp (a, b, 16) >= 0) - return 1; + char *a = foo + i; + char *b = bar + i; + strcpy (a, "--------01111111"); + strcpy (b, "--------10000000"); + if (memcmp (a, b, 16) >= 0) + exit (1); } - return 0; + exit (0); } ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_memcmp_working=yes else - ac_cv_func_memcmp_working=no + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_memcmp_working=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 -$as_echo "$ac_cv_func_memcmp_working" >&6; } -test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in - *" memcmp.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" - ;; -esac - - +echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 +echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6 +test $ac_cv_func_memcmp_working = no && LIBOBJS="$LIBOBJS memcmp.$ac_objext" - for ac_header in $ac_header_list -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 +for ac_header in sys/time.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> _ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +ac_header_compiler=no fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 -done - - - - - +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - for ac_func in $ac_func_list -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi -done - - +done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 -$as_echo_n "checking for working mktime... " >&6; } -if ${ac_cv_func_working_mktime+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_working_mktime=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +for ac_func in alarm +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Test program from Paul Eggert and Tony Leneis. */ -#ifdef TIME_WITH_SYS_TIME -# include -# include +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include #else -# ifdef HAVE_SYS_TIME_H +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +echo "$as_me:$LINENO: checking for working mktime" >&5 +echo $ECHO_N "checking for working mktime... $ECHO_C" >&6 +if test "${ac_cv_func_working_mktime+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_working_mktime=no +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Test program from Paul Eggert and Tony Leneis. */ +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H # include # else # include # endif #endif -#include -#include - -#ifdef HAVE_UNISTD_H +#if HAVE_UNISTD_H # include #endif -#ifndef HAVE_ALARM +#if !HAVE_ALARM # define alarm(X) /* empty */ #endif @@ -4897,18 +5755,17 @@ else #undef putenv static time_t time_t_max; -static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ -static const char *tz_strings[] = { +static const char *const tz_strings[] = { (const char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) -/* Return 0 if mktime fails to convert a date in the spring-forward gap. +/* Fail if mktime fails to convert a date in the spring-forward gap. Based on a problem report from Andreas Jaeger. */ -static int +static void spring_forward_gap () { /* glibc (up to about 1998-10-07) failed this test. */ @@ -4918,7 +5775,7 @@ spring_forward_gap () instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ - putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); tm.tm_year = 98; tm.tm_mon = 3; @@ -4927,25 +5784,23 @@ spring_forward_gap () tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; - return mktime (&tm) != (time_t) -1; + if (mktime (&tm) == (time_t)-1) + exit (1); } -static int -mktime_test1 (time_t now) +static void +mktime_test (now) + time_t now; { struct tm *lt; - return ! (lt = localtime (&now)) || mktime (lt) == now; + if ((lt = localtime (&now)) && mktime (lt) != now) + exit (1); + now = time_t_max - now; + if ((lt = localtime (&now)) && mktime (lt) != now) + exit (1); } -static int -mktime_test (time_t now) -{ - return (mktime_test1 (now) - && mktime_test1 ((time_t) (time_t_max - now)) - && mktime_test1 ((time_t) (time_t_min + now))); -} - -static int +static void irix_6_4_bug () { /* Based on code from Ariel Faigon. */ @@ -4958,11 +5813,13 @@ irix_6_4_bug () tm.tm_sec = 0; tm.tm_isdst = -1; mktime (&tm); - return tm.tm_mon == 2 && tm.tm_mday == 31; + if (tm.tm_mon != 2 || tm.tm_mday != 31) + exit (1); } -static int -bigtime_test (int j) +static void +bigtime_test (j) + int j; { struct tm tm; time_t now; @@ -4982,39 +5839,8 @@ bigtime_test (int j) && lt->tm_wday == tm.tm_wday && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) - return 0; + exit (1); } - return 1; -} - -static int -year_2050_test () -{ - /* The correct answer for 2050-02-01 00:00:00 in Pacific time, - ignoring leap seconds. */ - unsigned long int answer = 2527315200UL; - - struct tm tm; - time_t t; - tm.tm_year = 2050 - 1900; - tm.tm_mon = 2 - 1; - tm.tm_mday = 1; - tm.tm_hour = tm.tm_min = tm.tm_sec = 0; - tm.tm_isdst = -1; - - /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" - instead of "TZ=America/Vancouver" in order to detect the bug even - on systems that don't support the Olson extension, or don't have the - full zoneinfo tables installed. */ - putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); - - t = mktime (&tm); - - /* Check that the result is either a failure, or close enough - to the correct answer that we can assume the discrepancy is - due to leap seconds. */ - return (t == (time_t) -1 - || (0 < t && answer - 120 <= t && t <= answer + 120)); } int @@ -5028,86 +5854,299 @@ main () isn't worth using anyway. */ alarm (60); - for (;;) - { - t = (time_t_max << 1) + 1; - if (t <= time_t_max) - break; - time_t_max = t; - } - time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; - + for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) + continue; + time_t_max--; delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) - putenv ((char*) tz_strings[i]); + putenv (tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) - if (! mktime_test (t)) - return 1; - if (! (mktime_test ((time_t) 1) - && mktime_test ((time_t) (60 * 60)) - && mktime_test ((time_t) (60 * 60 * 24)))) - return 1; - - for (j = 1; ; j <<= 1) - if (! bigtime_test (j)) - return 1; - else if (INT_MAX / 2 < j) - break; - if (! bigtime_test (INT_MAX)) - return 1; + mktime_test (t); + mktime_test ((time_t) 60 * 60); + mktime_test ((time_t) 60 * 60 * 24); + + for (j = 1; 0 < j; j <<= 1) + bigtime_test (j); + bigtime_test (j - 1); } - return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); + irix_6_4_bug (); + spring_forward_gap (); + exit (0); } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_working_mktime=yes else - ac_cv_func_working_mktime=no + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_working_mktime=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5 -$as_echo "$ac_cv_func_working_mktime" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 +echo "${ECHO_T}$ac_cv_func_working_mktime" >&6 if test $ac_cv_func_working_mktime = no; then - case " $LIBOBJS " in - *" mktime.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS mktime.$ac_objext" - ;; -esac + LIBOBJS="$LIBOBJS mktime.$ac_objext" +fi + + + +for ac_header in stdlib.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + ac_header_preproc=no fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF +fi +done for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = xyes; then : +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_GETPAGESIZE 1 +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if ${ac_cv_func_mmap_fixed_mapped+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for working mmap" >&5 +echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 +if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then ac_cv_func_mmap_fixed_mapped=no else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ @@ -5138,16 +6177,21 @@ $ac_includes_default #include #include -#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H +#if !STDC_HEADERS && !HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE +#if !HAVE_GETPAGESIZE +/* Assume that all systems that can run configure have sys/param.h. */ +# if !HAVE_SYS_PARAM_H +# define HAVE_SYS_PARAM_H 1 +# endif + # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ -# ifdef HAVE_SYS_PARAM_H +# if HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE @@ -5178,56 +6222,41 @@ int main () { char *data, *data2, *data3; - const char *cdata2; int i, pagesize; - int fd, fd2; + int fd; pagesize = getpagesize (); /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) - return 1; + exit (1); for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) - return 2; + exit (1); if (write (fd, data, pagesize) != pagesize) - return 3; + exit (1); close (fd); - /* Next, check that the tail of a page is zero-filled. File must have - non-zero length, otherwise we risk SIGBUS for entire page. */ - fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); - if (fd2 < 0) - return 4; - cdata2 = ""; - if (write (fd2, cdata2, 1) != 1) - return 5; - data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); - if (data2 == MAP_FAILED) - return 6; - for (i = 0; i < pagesize; ++i) - if (*(data2 + i)) - return 7; - close (fd2); - if (munmap (data2, pagesize)) - return 8; - /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) - return 9; + exit (1); + data2 = (char *) malloc (2 * pagesize); + if (!data2) + exit (1); + data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 10; + MAP_PRIVATE | MAP_FIXED, fd, 0L)) + exit (1); for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) - return 11; + exit (1); /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on @@ -5236,63 +6265,213 @@ main () *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) - return 12; + exit (1); if (read (fd, data3, pagesize) != pagesize) - return 13; + exit (1); for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) - return 14; + exit (1); close (fd); - return 0; + exit (0); } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_mmap_fixed_mapped=yes else - ac_cv_func_mmap_fixed_mapped=no + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_mmap_fixed_mapped=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 +echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 if test $ac_cv_func_mmap_fixed_mapped = yes; then -$as_echo "#define HAVE_MMAP 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define HAVE_MMAP 1 +_ACEOF fi -rm -f conftest.mmap conftest.txt +rm -f conftest.mmap + + for ac_header in sys/select.h sys/socket.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 : +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for select" >&5 -$as_echo_n "checking types of arguments for select... " >&6; } -if ${ac_cv_func_select_args+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking types of arguments for select" >&5 +echo $ECHO_N "checking types of arguments for select... $ECHO_C" >&6 +if test "${ac_cv_func_select_args+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else for ac_arg234 in 'fd_set *' 'int *' 'void *'; do - for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do + for ac_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -#ifdef HAVE_SYS_SELECT_H +#if HAVE_SYS_SELECT_H # include #endif -#ifdef HAVE_SYS_SOCKET_H +#if HAVE_SYS_SOCKET_H # include #endif @@ -5300,25 +6479,40 @@ int main () { extern int select ($ac_arg1, - $ac_arg234, $ac_arg234, $ac_arg234, - $ac_arg5); + $ac_arg234, $ac_arg234, $ac_arg234, + $ac_arg5); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f conftest.$ac_objext conftest.$ac_ext done done done # Provide a safe default value. -: "${ac_cv_func_select_args=int,int *,struct timeval *}" +: ${ac_cv_func_select_args='int,int *,struct timeval *'} fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_select_args" >&5 -$as_echo "$ac_cv_func_select_args" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_func_select_args" >&5 +echo "${ECHO_T}$ac_cv_func_select_args" >&6 ac_save_IFS=$IFS; IFS=',' set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` IFS=$ac_save_IFS @@ -5340,107 +6534,193 @@ _ACEOF rm -f conftest* -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 -$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } -if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -f conftest.sym conftest.file -echo >conftest.file -if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then - if test "$cross_compiling" = yes; then : - ac_cv_func_lstat_dereferences_slashed_symlink=no +echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 +if test "${ac_cv_type_signal+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default +#include +#include +#ifdef signal +# undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + int main () { -struct stat sbuf; - /* Linux will dereference the symlink and fail, as required by POSIX. - That is better in the sense that it means we will not - have to compile and use the lstat wrapper. */ - return lstat ("conftest.sym/", &sbuf) == 0; +int i; ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_lstat_dereferences_slashed_symlink=yes +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_signal=void else - ac_cv_func_lstat_dereferences_slashed_symlink=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -else - # If the `ln -s' command failed, then we probably don't even - # have an lstat function. - ac_cv_func_lstat_dereferences_slashed_symlink=no +ac_cv_type_signal=int fi -rm -f conftest.sym conftest.file - +rm -f conftest.$ac_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 -$as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } - -test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && +echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +echo "${ECHO_T}$ac_cv_type_signal" >&6 cat >>confdefs.h <<_ACEOF -#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +#define RETSIGTYPE $ac_cv_type_signal _ACEOF -if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then - case " $LIBOBJS " in - *" lstat.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS lstat.$ac_objext" - ;; -esac +echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5 +echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6 +if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + rm -f conftest.sym conftest.file +echo >conftest.file +if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then + if test "$cross_compiling" = yes; then + ac_cv_func_lstat_dereferences_slashed_symlink=no +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +struct stat sbuf; + /* Linux will dereference the symlink and fail. + That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + exit (lstat ("conftest.sym/", &sbuf) ? 0 : 1); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_lstat_dereferences_slashed_symlink=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +else + # If the `ln -s' command failed, then we probably don't even + # have an lstat function. + ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f conftest.sym conftest.file fi +echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 +echo "${ECHO_T}$ac_cv_func_lstat_dereferences_slashed_symlink" >&6 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 -$as_echo_n "checking whether stat accepts an empty string... " >&6; } -if ${ac_cv_func_stat_empty_string_bug+:} false; then : - $as_echo_n "(cached) " >&6 +test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && + +cat >>confdefs.h <<_ACEOF +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +_ACEOF + + +if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then + LIBOBJS="$LIBOBJS lstat.$ac_objext" +fi + +echo "$as_me:$LINENO: checking whether stat accepts an empty string" >&5 +echo $ECHO_N "checking whether stat accepts an empty string... $ECHO_C" >&6 +if test "${ac_cv_func_stat_empty_string_bug+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes; then ac_cv_func_stat_empty_string_bug=yes else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; - return stat ("", &sbuf) == 0; + exit (stat ("", &sbuf) ? 1 : 0); ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_stat_empty_string_bug=no -else +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_func_stat_empty_string_bug=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_stat_empty_string_bug=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 -$as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } +echo "$as_me:$LINENO: result: $ac_cv_func_stat_empty_string_bug" >&5 +echo "${ECHO_T}$ac_cv_func_stat_empty_string_bug" >&6 if test $ac_cv_func_stat_empty_string_bug = yes; then - case " $LIBOBJS " in - *" stat.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS stat.$ac_objext" - ;; -esac - + LIBOBJS="$LIBOBJS stat.$ac_objext" cat >>confdefs.h <<_ACEOF #define HAVE_STAT_EMPTY_STRING_BUG 1 @@ -5448,54 +6728,147 @@ _ACEOF fi + for ac_func in strftime -do : - ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" -if test "x$ac_cv_func_strftime" = xyes; then : +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_STRFTIME 1 +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else # strftime is in -lintl on SCO UNIX. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 -$as_echo_n "checking for strftime in -lintl... " >&6; } -if ${ac_cv_lib_intl_strftime+:} false; then : - $as_echo_n "(cached) " >&6 +echo "$as_me:$LINENO: checking for strftime in -lintl" >&5 +echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6 +if test "${ac_cv_lib_intl_strftime+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* 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. */ +/* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ char strftime (); int main () { -return strftime (); +strftime (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then ac_cv_lib_intl_strftime=yes else - ac_cv_lib_intl_strftime=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_intl_strftime=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext +rm -f 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_intl_strftime" >&5 -$as_echo "$ac_cv_lib_intl_strftime" >&6; } -if test "x$ac_cv_lib_intl_strftime" = xyes; then : - $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h +echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5 +echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6 +if test $ac_cv_lib_intl_strftime = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_STRFTIME 1 +_ACEOF LIBS="-lintl $LIBS" fi @@ -5503,18 +6876,164 @@ fi fi done + for ac_func in vprintf -do : - ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = xyes; then : +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_VPRINTF 1 +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +echo "$as_me:$LINENO: checking for _doprnt" >&5 +echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6 +if test "${ac_cv_func__doprnt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char _doprnt (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char _doprnt (); +/* 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__doprnt) || defined (__stub____doprnt) +choke me +#else +char (*f) () = _doprnt; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != _doprnt; + ; + return 0; +} _ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func__doprnt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = xyes; then : +ac_cv_func__doprnt=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 +echo "${ECHO_T}$ac_cv_func__doprnt" >&6 +if test $ac_cv_func__doprnt = yes; then -$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h +cat >>confdefs.h <<\_ACEOF +#define HAVE_DOPRNT 1 +_ACEOF fi @@ -5522,20 +7041,109 @@ fi done + + + + + + + + + + + + + + + + + + for ac_func in bzero ftruncate getcwd gethostbyaddr gethostbyname gettimeofday inet_ntoa memset munmap regcomp select socket strcasecmp strchr strdup strncasecmp strrchr strstr -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* 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_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done -ac_config_files="$ac_config_files Makefile bouncer/Makefile checker/Makefile collection/Makefile lib/Makefile nfo/Makefile nukes/Makefile pre/Makefile pre/modules/Makefile reset/Makefile sfv/Makefile thread/Makefile unzip/Makefile util/Makefile who/Makefile zip/Makefile" + ac_config_files="$ac_config_files Makefile bouncer/Makefile checker/Makefile collection/Makefile lib/Makefile nfo/Makefile nukes/Makefile pre/Makefile pre/modules/Makefile reset/Makefile sfv/Makefile thread/Makefile unzip/Makefile util/Makefile who/Makefile zip/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -5555,70 +7163,39 @@ _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. +# So, don't put newlines in cache variables' values. # 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 \. + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *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" - ;; #( + "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" + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; - esac | - sort -) | + esac; +} | sed ' - /^ac_cv_env_/b end t clear - :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 - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi + /^ac_cv_env/!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" && echo "updating cache $cache_file" + 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;} + echo "not updating unwritable cache $cache_file" fi fi rm -f confcache @@ -5627,19 +7204,32 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ 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[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + DEFS=-DHAVE_CONFIG_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' + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs @@ -5647,14 +7237,12 @@ LTLIBOBJS=$ac_ltlibobjs -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 +: ${CONFIG_STATUS=./config.status} 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 +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -5664,387 +7252,261 @@ cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 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 : +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be 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 + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac + as_unset=false 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' +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var 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' + $as_unset $as_var fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; 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 + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# 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 + # 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=';' - } + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh 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. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + 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 || : + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break 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 + ;; + 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 - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } -# 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;} + # 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 sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit } -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 +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; 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 -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' else - as_ln_s='cp -pR' + as_ln_s='ln -s' fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln else - as_ln_s='cp -pR' + 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" - +rm -f conf$$ conf$$.exe conf$$.file -} # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' + as_mkdir_p=: else - test -d ./-p && rmdir ./-p as_mkdir_p=false fi - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p +as_executable_p="test -f" # 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'" +as_tr_cpp="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'" +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" +# CDPATH. +$as_unset CDPATH 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 + +# Open the log real soon, 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=" +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + This file was extended by FULL-PACKAGE-NAME $as_me VERSION, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.57. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -6052,46 +7514,44 @@ generated by GNU Autoconf 2.69. Invocation command line was CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 _ACEOF -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_links="$ac_config_links" +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi -_ACEOF +cat >>$CONFIG_STATUS <<\_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. +\`$as_me' instantiates files from templates according to the +current configuration. -Usage: $0 [OPTION]... [TAG]... +Usage: $0 [OPTIONS] [FILE]... -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 + -V, --version print version number, then exit + -q, --quiet 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] + --file=FILE[:TEMPLATE] instantiate the configuration file FILE - --header=FILE[:TEMPLATE] + --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: @@ -6103,89 +7563,84 @@ $config_headers Configuration links: $config_links -Report bugs to ." - +Report bugs to ." _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + +cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ FULL-PACKAGE-NAME config.status VERSION -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" +configured by $0, generated by GNU Autoconf 2.57, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +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' -test -n "\$AWK" || AWK=awk +srcdir=$srcdir _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. 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_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; - *) + -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; esac case $ac_option in # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF -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 ) + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --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'" + CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --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." ;; + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; + *) ac_config_targets="$ac_config_targets $1" ;; esac shift @@ -6199,61 +7654,47 @@ if $ac_cs_silent; then fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>$CONFIG_STATUS <<_ACEOF 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 "\$@" + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion 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 -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Handling of arguments. + + +cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "$ac_config_libobj_dir/fnmatch.h") CONFIG_LINKS="$CONFIG_LINKS $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "bouncer/Makefile") CONFIG_FILES="$CONFIG_FILES bouncer/Makefile" ;; - "checker/Makefile") CONFIG_FILES="$CONFIG_FILES checker/Makefile" ;; - "collection/Makefile") CONFIG_FILES="$CONFIG_FILES collection/Makefile" ;; - "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; - "nfo/Makefile") CONFIG_FILES="$CONFIG_FILES nfo/Makefile" ;; - "nukes/Makefile") CONFIG_FILES="$CONFIG_FILES nukes/Makefile" ;; - "pre/Makefile") CONFIG_FILES="$CONFIG_FILES pre/Makefile" ;; - "pre/modules/Makefile") CONFIG_FILES="$CONFIG_FILES pre/modules/Makefile" ;; - "reset/Makefile") CONFIG_FILES="$CONFIG_FILES reset/Makefile" ;; - "sfv/Makefile") CONFIG_FILES="$CONFIG_FILES sfv/Makefile" ;; - "thread/Makefile") CONFIG_FILES="$CONFIG_FILES thread/Makefile" ;; - "unzip/Makefile") CONFIG_FILES="$CONFIG_FILES unzip/Makefile" ;; - "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; - "who/Makefile") CONFIG_FILES="$CONFIG_FILES who/Makefile" ;; - "zip/Makefile") CONFIG_FILES="$CONFIG_FILES zip/Makefile" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "bouncer/Makefile" ) CONFIG_FILES="$CONFIG_FILES bouncer/Makefile" ;; + "checker/Makefile" ) CONFIG_FILES="$CONFIG_FILES checker/Makefile" ;; + "collection/Makefile" ) CONFIG_FILES="$CONFIG_FILES collection/Makefile" ;; + "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "nfo/Makefile" ) CONFIG_FILES="$CONFIG_FILES nfo/Makefile" ;; + "nukes/Makefile" ) CONFIG_FILES="$CONFIG_FILES nukes/Makefile" ;; + "pre/Makefile" ) CONFIG_FILES="$CONFIG_FILES pre/Makefile" ;; + "pre/modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES pre/modules/Makefile" ;; + "reset/Makefile" ) CONFIG_FILES="$CONFIG_FILES reset/Makefile" ;; + "sfv/Makefile" ) CONFIG_FILES="$CONFIG_FILES sfv/Makefile" ;; + "thread/Makefile" ) CONFIG_FILES="$CONFIG_FILES thread/Makefile" ;; + "unzip/Makefile" ) CONFIG_FILES="$CONFIG_FILES unzip/Makefile" ;; + "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; + "who/Makefile" ) CONFIG_FILES="$CONFIG_FILES who/Makefile" ;; + "zip/Makefile" ) CONFIG_FILES="$CONFIG_FILES zip/Makefile" ;; + "$ac_config_libobj_dir/fnmatch.h" ) CONFIG_LINKS="$CONFIG_LINKS $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" ;; + "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; 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 @@ -6265,576 +7706,622 @@ if $ac_need_defaults; then 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, +# simply because there is no reason to put 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'. +# Create a temporary directory, and hook for its removal unless debugging. $debug || { - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 } + # Create a (secure) tmp directory for tmp files. { - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 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 -ac_tmp=$tmp - -# 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 {' >"$ac_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 >>"\$ac_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 >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || { - 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 + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } } -_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 < "$ac_tmp/subs1.awk" > "$ac_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 -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" +# +# CONFIG_FILES section. +# -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@CC@,$CC,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@SET_MAKE@,$SET_MAKE,;t t +s,@CPP@,$CPP,;t t +s,@EGREP@,$EGREP,;t t +s,@ALLOCA@,$ALLOCA,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +CEOF -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. +_ACEOF -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat fi -done +fi # test -n "$CONFIG_FILES" -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS " -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;; +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.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="$ac_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'" + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } - # 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 >"$ac_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 +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi case $srcdir in - .) # We are building in place. + .) # No --srcdir option. We are building in place. ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. 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 ;; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - case $ac_mode in - :F) - # - # CONFIG_FILE - # + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # 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. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } _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 +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>$CONFIG_STATUS <<\_ACEOF :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 -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_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' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_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 "$ac_tmp/stdin" +s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_HEADER section. +# + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='[ ].*$,\1#\2' +ac_dC=' ' +ac_dD=',;t' +# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='$,\1#\2define\3' +ac_uC=' ' +ac_uD=',;t' + +for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + +_ACEOF + +# Transform confdefs.h into two sed scripts, `conftest.defines' and +# `conftest.undefs', that substitutes the proper values into +# config.h.in to produce config.h. The first handles `#define' +# templates, and the second `#undef' templates. +# And first: Protect against being on the right side of a sed subst in +# config.status. Protect against being in an unquoted here document +# in config.status. +rm -f conftest.defines conftest.undefs +# Using a here document instead of a string reduces the quoting nightmare. +# Putting comments in sed scripts is not portable. +# +# `end' is used to avoid that the second main sed command (meant for +# 0-ary CPP macros) applies to n-ary macro definitions. +# See the Autoconf documentation for `clear'. +cat >confdef2sed.sed <<\_ACEOF +s/[\\&,]/\\&/g +s,[\\$`],\\&,g +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp +t end +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp +: end +_ACEOF +# If some macros were called several times there might be several times +# the same #defines, which is useless. Nevertheless, we may not want to +# sort them, since we want the *last* AC-DEFINE to be honored. +uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines +sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs +rm -f confdef2sed.sed + +# This sed command replaces #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +cat >>conftest.undefs <<\_ACEOF +s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, +_ACEOF + +# Break up conftest.defines because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS +echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS +echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS +echo ' :' >>$CONFIG_STATUS +rm -f conftest.tail +while grep . conftest.defines >/dev/null +do + # Write a limited-size here document to $tmp/defines.sed. + echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#define' lines. + echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f $tmp/defines.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines +echo ' fi # grep' >>$CONFIG_STATUS +echo >>$CONFIG_STATUS + +# Break up conftest.undefs because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #undef templates' >>$CONFIG_STATUS +rm -f conftest.tail +while grep . conftest.undefs >/dev/null +do + # Write a limited-size here document to $tmp/undefs.sed. + echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#undef' + echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS + echo 'CEOF + sed -f $tmp/undefs.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail + rm -f conftest.undefs + mv conftest.tail conftest.undefs +done +rm -f conftest.undefs + +cat >>$CONFIG_STATUS <<\_ACEOF + # 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. */ + if test x"$ac_file" = x-; then + echo "/* Generated by configure. */" >$tmp/config.h + else + echo "/* $ac_file. Generated by configure. */" >$tmp/config.h + fi + cat $tmp/in >>$tmp/config.h + rm -f $tmp/in if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} + if diff $ac_file $tmp/config.h >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + rm -f $ac_file + mv $tmp/config.h $ac_file fi else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 + cat $tmp/config.h + rm -f $tmp/config.h fi - ;; - :L) - # - # CONFIG_LINK - # - - if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then - : - else - # Prefer the file from the source tree if names are identical. - if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then - ac_source=$srcdir/$ac_source - fi +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_LINKS section. +# - { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 -$as_echo "$as_me: linking $ac_source to $ac_file" >&6;} +for ac_file in : $CONFIG_LINKS; do test "x$ac_file" = x: && continue + ac_dest=`echo "$ac_file" | sed 's,:.*,,'` + ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - if test ! -r "$ac_source"; then - as_fn_error $? "$ac_source: file not found" "$LINENO" 5 - fi - rm -f "$ac_file" + { echo "$as_me:$LINENO: linking $srcdir/$ac_source to $ac_dest" >&5 +echo "$as_me: linking $srcdir/$ac_source to $ac_dest" >&6;} - # Try a relative symlink, then a hard link, then a copy. - case $ac_source in - [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; - *) ac_rel_source=$ac_top_build_prefix$ac_source ;; - esac - ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || - ln "$ac_source" "$ac_file" 2>/dev/null || - cp -p "$ac_source" "$ac_file" || - as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 + if test ! -r $srcdir/$ac_source; then + { { echo "$as_me:$LINENO: error: $srcdir/$ac_source: file not found" >&5 +echo "$as_me: error: $srcdir/$ac_source: file not found" >&2;} + { (exit 1); exit 1; }; } fi - ;; + rm -f $ac_dest + + # Make relative symlinks. + ac_dest_dir=`(dirname "$ac_dest") 2>/dev/null || +$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_dest" : 'X\(//\)[^/]' \| \ + X"$ac_dest" : 'X\(//\)$' \| \ + X"$ac_dest" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dest_dir" + else + as_dir="$ac_dest_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dest_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dest_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +if test "$ac_dest_dir" != .; then + ac_dir_suffix=/`echo "$ac_dest_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dest_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dest_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dest_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dest_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dest_dir" && cd $ac_top_srcdir && pwd` + + + case $srcdir in + [\\/$]* | ?:[\\/]* ) ac_rel_source=$srcdir/$ac_source ;; + *) ac_rel_source=$ac_top_builddir$srcdir/$ac_source ;; esac -done # for ac_tag + # Try a symlink, then a hard link, then a copy. + ln -s $ac_rel_source $ac_dest 2>/dev/null || + ln $srcdir/$ac_source $ac_dest 2>/dev/null || + cp -p $srcdir/$ac_source $ac_dest || + { { echo "$as_me:$LINENO: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&5 +echo "$as_me: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&2;} + { (exit 1); exit 1; }; } +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF -as_fn_exit 0 +{ (exit 0); exit 0; } _ACEOF +chmod +x $CONFIG_STATUS 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. @@ -6854,10 +8341,6 @@ if test "$no_create" != yes; then 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;} + $ac_cs_success || { (exit 1); exit 1; } fi diff --git a/src/lib/common.h b/src/lib/common.h index ca0b828..8de4149 100644 --- a/src/lib/common.h +++ b/src/lib/common.h @@ -25,7 +25,6 @@ * This module should be outphased! */ #include -#include #define HIDDENDIRFILE "/ftp-data/misc/f00-hiddendirs.txt" diff --git a/src/lib/dirlist.h b/src/lib/dirlist.h index 62233a1..b7ff290 100644 --- a/src/lib/dirlist.h +++ b/src/lib/dirlist.h @@ -29,7 +29,6 @@ #include #include #include -#include #include #define MAX_FILELEN 256 diff --git a/src/lib/genlistc.h b/src/lib/genlistc.h index 9e4b5b2..3779946 100644 --- a/src/lib/genlistc.h +++ b/src/lib/genlistc.h @@ -27,7 +27,6 @@ * Author: Soren */ #include -#include #define INSERT_NOORDER 0 #define INSERT_SORTED 1 diff --git a/src/lib/gllogs.c b/src/lib/gllogs.c index 88bc04f..8613a20 100644 --- a/src/lib/gllogs.c +++ b/src/lib/gllogs.c @@ -235,7 +235,7 @@ int gl_site_msg(char *from, char *to, char *msg) { return 0; t = time(0); - sprintf(buf, "%s", ctime(&t)); + sprintf(buf, ctime(&t)); p = (char*)&buf; while (*p) if (*p == '\n') diff --git a/src/lib/gllogs.h b/src/lib/gllogs.h index e2d6c9d..f7db403 100644 --- a/src/lib/gllogs.h +++ b/src/lib/gllogs.h @@ -30,8 +30,6 @@ #include #include -typedef unsigned short int ushort; - // define some locations for where to find glftpd logs. #define DUPEFILE "/ftp-data/logs/dupefile" #define DUPELOG "/ftp-data/logs/dupelog" diff --git a/src/lib/macro.h b/src/lib/macro.h index 4324649..c963d94 100644 --- a/src/lib/macro.h +++ b/src/lib/macro.h @@ -27,9 +27,6 @@ * $Source: /home/cvs/footools/footools/src/lib/macro.h,v $ * Author: Soren */ - -#include - struct macro_list { char *mac_rep; char *mac_key; diff --git a/src/lib/pwdfile.c b/src/lib/pwdfile.c index 36ba8da..333740b 100644 --- a/src/lib/pwdfile.c +++ b/src/lib/pwdfile.c @@ -24,7 +24,6 @@ #include #include #include -#include #include "stringtokenizer.h" #include "pwdfile.h" diff --git a/src/lib/sfv.h b/src/lib/sfv.h index 6d8c926..831fc28 100644 --- a/src/lib/sfv.h +++ b/src/lib/sfv.h @@ -32,7 +32,6 @@ #define _sfv_h #include -#include /* * Structure holding info about a sfv-file. diff --git a/src/lib/sockop.h b/src/lib/sockop.h index b68865e..a338bad 100644 --- a/src/lib/sockop.h +++ b/src/lib/sockop.h @@ -31,8 +31,6 @@ #include #include #include -#include -#include /* * Structure for listening on sockets. diff --git a/src/lib/stringtokenizer.c b/src/lib/stringtokenizer.c index adeaf21..01eee46 100644 --- a/src/lib/stringtokenizer.c +++ b/src/lib/stringtokenizer.c @@ -20,8 +20,6 @@ */ #include -#include -#include #include "stringtokenizer.h" diff --git a/src/lib/who.c b/src/lib/who.c index 9c4f267..d925f9e 100644 --- a/src/lib/who.c +++ b/src/lib/who.c @@ -138,7 +138,7 @@ int who_transfer_file(struct ONLINE *o, char *b) { r++; if (strstr(o->currentdir, s)) - sprintf(b, "%s", o->currentdir); + sprintf(b, o->currentdir); else sprintf(b, "%s/%s", o->currentdir, s); diff --git a/src/lib/who.h b/src/lib/who.h index aaeee93..9a17943 100644 --- a/src/lib/who.h +++ b/src/lib/who.h @@ -36,8 +36,6 @@ #include #include #include -#include -#include #define TRANS_NONE 0 #define TRANS_UP 1 diff --git a/src/nfo/cleaner.c b/src/nfo/cleaner.c index 1bf0074..de598cf 100644 --- a/src/nfo/cleaner.c +++ b/src/nfo/cleaner.c @@ -27,8 +27,6 @@ #include #include -#include -#include #include #include "mod_nfo.h" diff --git a/src/nfo/nfocleaner b/src/nfo/nfocleaner new file mode 100755 index 0000000000000000000000000000000000000000..88770945eb3628676a0103c3edc289f756fb9ff5 GIT binary patch literal 26571 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 Y1&jmnkRPv#2TNCM-t6DFVUzR!0NLTUivR!s literal 0 HcmV?d00001 diff --git a/src/nukes/foo-nukes b/src/nukes/foo-nukes new file mode 100755 index 0000000000000000000000000000000000000000..43fc7250ac8685e03e866397a3c4b34b7060b407 GIT binary patch literal 22723 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 literal 0 HcmV?d00001 diff --git a/src/pre/Makefile b/src/pre/Makefile index 7a9327c..f19f516 100644 --- a/src/pre/Makefile +++ b/src/pre/Makefile @@ -4,10 +4,10 @@ include ../Makefile.config SRCDIR = .. -LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o +LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o ./mp3genre/mp3genre.o foo-pre: foo-pre.o $(LIBS) - $(CC) -o $@ $< $(LIBS) -ldl + $(CC) -o $@ $< mp3genre/mp3genre.o $(LIBS) -ldl foo.Pre: foo.Pre.o $(CC) -o $@ $< $(LIBS) diff --git a/src/pre/Makefile.in b/src/pre/Makefile.in index 7a9327c..c9d2d7a 100644 --- a/src/pre/Makefile.in +++ b/src/pre/Makefile.in @@ -7,7 +7,7 @@ SRCDIR = .. LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o foo-pre: foo-pre.o $(LIBS) - $(CC) -o $@ $< $(LIBS) -ldl + $(CC) -o $@ $< mp3genre/mp3genre.o $(LIBS) -ldl foo.Pre: foo.Pre.o $(CC) -o $@ $< $(LIBS) diff --git a/src/pre/Makefile.in_orig b/src/pre/Makefile.in_orig new file mode 100644 index 0000000..7a9327c --- /dev/null +++ b/src/pre/Makefile.in_orig @@ -0,0 +1,23 @@ + + +include ../Makefile.config + +SRCDIR = .. + +LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o + +foo-pre: foo-pre.o $(LIBS) + $(CC) -o $@ $< $(LIBS) -ldl + +foo.Pre: foo.Pre.o + $(CC) -o $@ $< $(LIBS) + +all: foo-pre + +clean: + rm -f *.o *~ foo.Pre foo-pre + +release: + mkdir $(RELEASEDIR)/pre + cp *.c *.h Makefile README *.txt pre.cfg $(RELEASEDIR)/pre + diff --git a/src/pre/foo-pre b/src/pre/foo-pre new file mode 100755 index 0000000000000000000000000000000000000000..b017e834830f5a8fd72af7ed200abecc4f508111 GIT binary patch literal 60849 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 literal 0 HcmV?d00001 diff --git a/src/pre/foo-pre.c b/src/pre/foo-pre.c index de91cc7..09d0c10 100644 --- a/src/pre/foo-pre.c +++ b/src/pre/foo-pre.c @@ -20,6 +20,7 @@ */ /* * foo.Pre [C-version] (c) tanesha team, + slv 02082012 - mp3 genre added to PRE output (instead of in mod_idmp3) */ #include #include @@ -44,7 +45,8 @@ #include "foo-pre.h" #include "gl_userfile.h" -#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" +//#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" +#define VERSION "$Id: foo-pre.c,v 1.19 2012/08/03 17:46:00 sorend, slv Exp $" #define USAGE " * Syntax: SITE PRE [SECTION]\n" void quit(char *s, ...); @@ -53,6 +55,8 @@ extern int errno; hashtable_t *_config = 0; hashtable_t *_envctx = 0; +char *id3_genre; + /* * Acecssor method for configuration. */ @@ -1030,6 +1034,19 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv printf(" -- %10.10s: %s\n", "From", src); printf(" -- %10.10s: %s", "To", dest); + /* + * slv 02082012 - get filename.mp3 and call get_mp3_genre(filename). + */ + // get genre. + for (ftmp = files; ftmp; ftmp = ftmp->next) { + tmp = strrchr(ftmp->file, '.'); + if (!strcmp(tmp, ".mp3")) { + sprintf(buf, "%s/%s", src, ftmp->file); + get_mp3_genre(buf); + break; + } + } + // dont forget to chown maindir chowninfo_apply_to_file(src, chown); @@ -1087,6 +1104,7 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv pre_replace(buf, "%g", ht_get(env, PROPERTY_USERGROUP)); pre_replace(buf, "%D", section_get_property(section, PROPERTY_SECTION_NAME)); pre_replace(buf, "%R", rel); + pre_replace(buf, "%I", id3_genre); gl_gllog_add(buf); @@ -1205,17 +1223,12 @@ char *section_expand_path(char *sec) { strftime(buf, 1024, "%W", tm_now); pre_replace(tmp, "WOY", buf); - strftime(buf, 1024, "%V", tm_now); - pre_replace(tmp, "CW", buf); - pre_replace(tmp, "KW", buf); - // if its a link then expand it. reps = readlink(tmp, buf, 1024); if (reps != -1) { if (buf[0] == '/') { - strncpy(tmp,buf,reps); - tmp[reps] = '\0'; /* ensure null terminated */ + strncpy(tmp, buf, reps); buf[reps] = 0; } else { @@ -1352,10 +1365,10 @@ int pre_handler(int argc, char *argv[]) { } // log DONE: "" "" "" "" - pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\"", + //slv added: "" + pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", ht_get(env, PROPERTY_USER), group, - argv[1], destpath); - + argv[1], destpath, id3_genre); return 0; } diff --git a/src/pre/foo-pre.c.mp3genre.added b/src/pre/foo-pre.c.mp3genre.added new file mode 100644 index 0000000..b8ba3e1 --- /dev/null +++ b/src/pre/foo-pre.c.mp3genre.added @@ -0,0 +1,1489 @@ +/* + * foo-tools, a collection of utilities for glftpd users. + * Copyright (C) 2003 Tanesha FTPD Project, www.tanesha.net + * + * This file is part of foo-tools. + * + * foo-tools 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. + * + * foo-tools 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 foo-tools; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +/* + * foo.Pre [C-version] (c) tanesha team, + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "foo-pre.h" +#include "gl_userfile.h" + +#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" +#define USAGE " * Syntax: SITE PRE [SECTION]\n" + +void quit(char *s, ...); +extern int errno; + +hashtable_t *_config = 0; +hashtable_t *_envctx = 0; + +char *genre_s[] = { + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" +}; +unsigned char genre_count=149; +char *id3_genre; +int id3_genre_num; + +/* + slv 02082012 - mp3 genre output added to PRE (instead of as a module) + reads last 128 bytes of mp3 and extracts genre tag + thanks to movEAX_444 (devshed.com) for his code example +*/ + +int get_mp3_genre(const char* filename) { + FILE *fp; + char mp3_fbuf[128]; + if (!(fp=fopen(filename,"rb"))) { + return 1; + } + if (fseek(fp,-128,SEEK_END)) { + return 1; + } + fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; + if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { + return 1; + } + id3_genre_num = mp3_fbuf[127]; if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } + id3_genre = genre_s[id3_genre_num]; +} + +/* + * Acecssor method for configuration. + */ +hashtable_t * get_config() { + if (!_config) { + _config = malloc(sizeof(hashtable_t)); + bzero(_config, sizeof(hashtable_t)); + } + + return _config; +} + +/* + * Accessor method for context of the pre. + */ +hashtable_t * get_context() { + if (!_envctx) { + _envctx = malloc(sizeof(hashtable_t)); + ht_init(_envctx); + } + + return _envctx; +} + +/* + * Puts something to the logfile. + */ +void pre_log(char *type, char *fmt, ...) { + hashtable_t *env = get_context(); + hashtable_t *cfg; + va_list va; + FILE *f; + + f = (FILE*)ht_get(env, "logfh"); + + if (!f) { + f = fopen(PRE_LOGFILE, "a"); + ht_put_obj(env, "logfh", f); + } + + fprintf(f, "%s: ", type); + va_start(va, fmt); + vfprintf(f, fmt, va); + va_end(va); + fprintf(f, "\n"); + fflush(f); +} + +/* + * Returns a given property for a group. + */ +char *group_get_property(char *grp, char *prop) { + hashtable_t *cfg = get_config(); + char buf[300], *tmp; + + sprintf(buf, "group.%s.%s", grp, prop); + + tmp = ht_get(cfg, buf); + + if (!tmp) { + // try to get default property. + sprintf(buf, "group.DEFAULT.%s", prop); + tmp = ht_get(cfg, buf); + } + + return tmp; +} + + +/* + * Returns a property for a section. + */ +char * section_get_property(char *sec, char *prop) { + hashtable_t *cfg = get_config(); + char buf[300]; + + sprintf(buf, "section.%s.%s", sec, prop); + + return ht_get(cfg, buf); +} + +/* + * Find chown info for a group. + */ +chowninfo_t * chowninfo_find_by_group(char *group) { + char *tmp; + hashtable_t *env = get_context(); + chowninfo_t * i = malloc(sizeof(chowninfo_t)); + pwdfile *pass; + grpfile_t *grp; + + i->uid = i->gid = -1; + + tmp = group_get_property(group, PROPERTY_GROUP_CHOWN_USER); + if (tmp) { + if (!strcmp(tmp, "USER")) + pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); + else + pass = pwd_getpwnam(tmp); + + if (pass) + i->uid = pass->uid; + else + printf(" * WARNING: Could not get user.chown info for %s\n", group); + } + + tmp = group_get_property(group, PROPERTY_GROUP_CHOWN_GROUP); + if (tmp) { + if (!strcmp(tmp, "GROUP")) + grp = pwd_getgpnam(group); + else + grp = pwd_getgpnam(tmp); + + if (grp) + i->gid = grp->gid; + else + printf(" * WARNING: Could not get grp.chown info for %s\n", group); + } + + return i; +} + +creditlist_t *creditlist_find_by_uid(creditlist_t *l, int uid) { + creditlist_t *t; + + for (t = l; t; t = t->next) + if (t->uid == uid) + break; + + return t; +} + +struct subdir_list *subdirlist_find(struct subdir_list *l, char *s) { + struct subdir_list *t; + + for (t = l; t; t = t->next) + if (!strcmp(t->dir, s)) + break; + + return t; +} + +int subdirlist_count(struct subdir_list *l) { + struct subdir_list *t; + int i = 0; + + for (t = l; t; t = t->next) + if (!strncmp(t->dir, "CD", 2) || !strncmp(t->dir, "DISC", 4)) + i++; + + return i; +} + +/* + * Returns a strlist_t with the groups of an user. + */ +strlist_t * user_find_groups(char *u) { + linefilereader_t lfr; + char buf[1024], *tmp, *spc2; + strlist_t *groups = 0; + hashtable_t *cfg = get_config(); + + tmp = ht_get(cfg, PROPERTY_GL_USERDIR); + + if (!tmp) + quit(" * Could not find '%s' property in config", PROPERTY_GL_USERDIR); + + sprintf(buf, "%s/%s", tmp, u); + + if (lfr_open(&lfr, buf) < 0) + quit(" * Could not open your userfile %s", buf); + + while (lfr_getline(&lfr, buf, 1024) > -1) { + if (!strncasecmp(buf, "GROUP ", 6) || + !strncasecmp(buf, "PRIVATE ", 8)) { + + tmp = strchr(buf, ' ') + 1; + + // fix for glftpd2.x which has 'GROUP group num' + spc2 = strchr(tmp, ' '); + if (spc2) + *spc2 = 0; + + groups = str_add(groups, tmp); + } + } + + lfr_close(&lfr); + + return groups; +} + +/* + * Returns the list of pre groups from config. + * + */ +strlist_t * groups_find_all() { + strlist_t * l = 0; + char *tmp, buf[300], *grp; + hashtable_t *cfg = get_config(); + hashtable_t *env = get_context(); + hashtable_item_t *htn; + + // check if we have made it already. + if (ht_get(env, "ALLGROUPS")) + return (strlist_t*)ht_get(env, "ALLGROUPS"); + + ht_reset(cfg); + + // look through all properties in config. + while (htn = ht_next(cfg)) { + tmp = htn->key; + + if (strcmp(tmp, "group.")) + continue; + + grp = strdup(tmp + 6); + + tmp = strchr(grp, '.'); + + if (!tmp) { + free(grp); + continue; + } + + *tmp = 0; + + if (!str_search(l, grp, 0)) { + l = str_add(l, grp); + } + } + + ht_put_obj(env, "ALLGROUPS", l); + + return l; +} + + +/* + * Gets configuration properties in the a|b|c|d format as a strlist. + */ +strlist_t * config_get_split_property(char *prop) { + hashtable_t *cfg = get_config(); + char *tmp; + stringtokenizer st; + strlist_t *l = 0; + + tmp = ht_get(cfg, prop); + + st_initialize(&st, tmp, "|"); + while (st_hasnext(&st)) { + tmp = st_next(&st); + + l = str_add(l, tmp); + } + + return l; +} + + +/* + * Returns the group of the dir 'path'. + */ +char * group_find_by_dir(strlist_t *grps, char *path) { + strlist_iterator_t *iter; + char *tmpgroup, *tmpdir, buf[300]; + strlist_t *grpdirs = 0; + int found = 0; + + // only look through the groups of the user. + for (iter = str_iterator(grps); str_iterator_hasnext(iter); ) { + tmpgroup = str_iterator_next(iter); + + // get groupdirs as a list. + sprintf(buf, "group.%s.%s", tmpgroup, PROPERTY_GROUP_DIR); + grpdirs = config_get_split_property(buf); + + if (grpdirs && str_search(grpdirs, path, 0)) { + free(iter); + str_close(grpdirs); + return strdup(tmpgroup); + } + } + + str_close(grpdirs); + free(iter); + + return 0; +} + +/* + * + * Outputs info about a user's groups and the groupdirs. + * + */ +int show_groupdirs(strlist_t *grps) { + strlist_iterator_t *i; + char *tmpgroup, *tmppredir, *tmpallowed, *sitedir; + hashtable_t *cfg = get_config(); + stringtokenizer dirst, allowst; + char buf[300]; + int found = 0; + + sitedir = ht_get(cfg, PROPERTY_SITEDIR); + if (!sitedir) + printf(" * WARNING: '%s' not defined in config file\n", PROPERTY_SITEDIR); + + printf("Group Predirs Allowed sections\n"); + printf("--------------- ---------------------------------------- ----------------\n"); + + for (i = str_iterator(grps); str_iterator_hasnext(i); ) { + tmpgroup = str_iterator_next(i); + + tmppredir = group_get_property(tmpgroup, PROPERTY_GROUP_DIR); + tmpallowed = group_get_property(tmpgroup, PROPERTY_GROUP_ALLOW); + + if (!(tmppredir && tmpallowed)) + continue; + + found++; + + st_initialize(&dirst, tmppredir, "|"); + st_initialize(&allowst, tmpallowed, "|"); + strcpy(buf, tmpgroup); + + while (st_hasnext(&dirst) || st_hasnext(&allowst)) { + tmppredir = st_next(&dirst); + tmpallowed = st_next(&allowst); + + printf("%-15.15s %-40.40s %-15.15s\n", buf, (tmppredir?tmppredir + strlen(sitedir):""), (tmpallowed?tmpallowed:"")); + + strcpy(buf, ""); + } + + st_finalize(&dirst); + st_finalize(&allowst); + } + + if (!found) + printf("Hm, you arent in any groups that can pre ! \n"); + + return found; +} + +/* + * Returns section name of a 'requested' section, if its allowed + * for 'group'. + */ +char * section_find_by_name(char *group, char *requested) { + char *tmpsecdir, *tmpallow, *tmpreq; + stringtokenizer st; + + tmpreq = requested; + + // if no requested, then try to set it to the 'default' section. + if (!tmpreq) { + tmpreq = group_get_property(group, PROPERTY_GROUP_DEFSEC); + + if (!tmpreq) { + printf(" * Hm, section not specified, and no default section for group '%s'\n", group); + printf("%s\n", USAGE); + + return 0; + } + } + + st_initialize(&st, group_get_property(group, PROPERTY_GROUP_ALLOW), "|"); + + while (st_hasnext(&st)) { + tmpallow = strdup(st_next(&st)); + + if (!strcasecmp(tmpreq, tmpallow)) + break; + + free(tmpallow); + tmpallow = 0; + } + + st_finalize(&st); + + if (!tmpallow) + return 0; + + // do basic check if section is in the config. + tmpsecdir = section_get_property(tmpallow, PROPERTY_SECTION_DIR); + + if (!tmpsecdir) { + printf(" * Hm, you are allowed to pre in section '%s' but the section is not.\n configured. Bug siteop to fix his pre configuration please! :)\n", tmpreq); + + return 0; + } + + return tmpallow; +} + +/* + * Returns an integer property for a section, returns -1 if not set or + * set to 'none'. + */ +int section_get_int_property(char *s, char *p) { + char *tmp; + + tmp = section_get_property(s, p); + + if (!tmp) + return -1; + + if (!strcasecmp(tmp, "none")) + return -1; + + return atoi(tmp); +} + +/* + * Takes care of updating userfile, by help of gl_userfile module. + */ +char * userfile_update(creditlist_t *l) { + hashtable_t *cfg = get_config(); + hashtable_t *env = get_context(); + long spend, addkb; + char buf[1024], userfile[1024], *section, *userdir, *tmp, *group; + pwdfile *pass; + int gl_stat_section = 0, gl_credit_section = 0, prespeed, rc, ratio; + + // get pre-section from env. + section = ht_get(env, "section"); + group = ht_get(env, PROPERTY_GROUP); + + // find the user. + pass = pwd_getpwuid(l->uid); + if (!pass) + return ""; + + // get ftp-data/users from conf. + userdir = ht_get(cfg, PROPERTY_GL_USERDIR); + if (!userdir) + quit(" * ERROR: Userdir not defined in pre config, fuck the sysop ;(\n"); + + sprintf(userfile, "%s/%s", userdir, pass->name); + + // get the section config from conf. + gl_stat_section = section_get_int_property(section, PROPERTY_GROUP_GL_SS); + gl_credit_section = section_get_int_property(section, PROPERTY_GROUP_GL_CS); + + if ((gl_stat_section == -1) && (gl_credit_section == -1)) { + printf(" * ERROR: No gl_stat_section or gl_credit_section defined for\n"); + printf(" section %s, %s got no stats/credits for pre !\n", section, + pass->name); + + return ""; + } + + // try and figure a ratio to use. + tmp = group_get_property(group, PROPERTY_GROUP_RATIO); + + if (!tmp) { + printf(" * ERROR: No ratio defined for group %s, no credits given!\n", group); + return ""; + } + + if (!strcasecmp(tmp, "USERFILE")) { + ratio = gl_userfile_get_ratio(userfile, gl_credit_section); + + if (ratio == -1) { + printf(" * ERROR: No ratio found in userfile for %s\n", pass->name); + + return ""; + } + } else + ratio = atoi(tmp); + + if (prespeed == 0) + prespeed = 1024; + + spend = (long)l->bytes / prespeed; + addkb = l->bytes; + + if (spend == 0) + spend++; + + printf(" -- %10.10s: ", pass->name); + + if (gl_stat_section > -1) + printf("%d file/s, %.1f Mb (s:%d)", l->files, (float)addkb/1024, gl_stat_section); + else + printf("No stats given"); + + if (gl_credit_section > -1) + printf(", Credits: %.1f Mb, Ratio: %d (s:%d)\n", (float)(ratio * addkb)/1024, ratio, gl_credit_section); + else + printf(", No credits given\n"); + + // call gl_userfile_* to get the userfile updated. + rc = gl_userfile_add_stats(userfile, l->files, addkb, spend, (long)ratio * addkb, gl_stat_section, gl_credit_section); + + if (rc > -1) { + sprintf(buf, "%s/%.1fMb, ", pass->name, (float)l->bytes/1024); + return strdup(buf); + } else + printf(" * ERROR: Couldnt update userfile for %s\n", pass->name); + + return ""; +} + +/* + * Chowns a file from chowninfo. + */ +int chowninfo_apply_to_file(char *file, chowninfo_t *ch) { + + if (!ch) + return 0; + + // check if no chown needed. + if ((ch->gid == -1) && (ch->uid == -1)) + return 1; + + chown(file, ch->uid, ch->gid); + + return 1; +} + +/* + * Loads a filelist from a dir. + * + * Also chowns all files in the dir if chown is != 0. + */ +filelist_t * filelist_find_by_dir(filelist_t *l, char *base, char *path, chowninfo_t *chown) { + DIR *dh; + char buf[1024], *group; + struct dirent *dent; + struct stat st; + filelist_t *tmp; + + group = ht_get(get_context(), PROPERTY_GROUP); + + sprintf(buf, "%s/%s", base, path); + dh = opendir(buf); + + if (!dh) + return l; + + while ((dent = readdir(dh))) { + if ((!strcmp(dent->d_name, ".")) || + (!strcmp(dent->d_name, ".."))) + continue; + + sprintf(buf, "%s/%s/%s", base, path, dent->d_name); + + if (stat(buf, &st) == -1) + continue; + + // chown file + chowninfo_apply_to_file(buf, chown); + + if (S_ISDIR(st.st_mode)) { + + // touch dir + touch_dir(buf); + + if (strlen(path) > 0) + sprintf(buf, "%s/%s", path, dent->d_name); + else + strcpy(buf, dent->d_name); + + // find recursively. + l = filelist_find_by_dir(l, base, buf, chown); + + } else { + // touch file + touch_file(buf); + + tmp = (filelist_t*)malloc(sizeof(filelist_t)); + + if (strlen(path) > 0) + sprintf(tmp->file, "%s/%s", path, dent->d_name); + else + strcpy(tmp->file, dent->d_name); + + memcpy(&tmp->st, &st, sizeof(st)); + + tmp->next = l; + + l = tmp; + } + } + + closedir(dh); + + return l; +} + + +int strlist_match(char *file, strlist_t *l) { + strlist_iterator_t *iter; + int found = 0; + char *pattern; + + iter = str_iterator(l); + + while (pattern = str_iterator_next(iter)) { + if (fnmatch(pattern, file, 0) == 0) + found++; + } + + free(iter); + + return found; +} + +/* + * Method to find total size of filelist. + */ +int flist_size(filelist_t *filelist, float *bytes, long *files) { + filelist_t *t; + strlist_t *tmp; + strlist_iterator_t *iter; + char *tt; + int found; + + // get countables. + tmp = config_get_split_property(PROPERTY_COUNTABLE); + + *bytes = 0; *files = 0; + + for (t = filelist; t; t = t->next) { + + if (strlist_match(t->file, tmp) == 0) + continue; + + (*bytes) += t->st.st_size; + (*files)++; + } + + return 1; +} + +char *flist_getfilename(filelist_t *l) { + char *buf; + + buf = strrchr(l->file, '/'); + if (!buf) + buf = l->file; + else + buf++; + + return buf; +} + +/* + * Create list of subdirs from filelist. + * + */ +struct subdir_list *subdir_flistcollect(filelist_t *f) { + struct subdir_list *l = 0, *tmp, *mdir; + filelist_t *t; + char *d, buf[1024]; + + mdir = (struct subdir_list*)malloc(sizeof(struct subdir_list)); + mdir->bytes = 0; + mdir->files = 0; + strcpy(mdir->dir, ""); + mdir->next = 0; + l = mdir; + + for (t = f; t; t = t->next) { + strcpy(buf, t->file); + d = strrchr(buf, '/'); + if (!d) + strcpy(buf, ""); + else + *d = 0; + + if ((tmp = subdirlist_find(l, buf)) == 0) { + tmp = (struct subdir_list*)malloc(sizeof(struct subdir_list)); + tmp->bytes = 0; + tmp->files = 0; + strcpy(tmp->dir, buf); + tmp->next = l; + l = tmp; + } + + tmp->bytes += t->st.st_size; + tmp->files++; + + // update the main dir (if it aint us). + if (strcmp(buf, "")) { + mdir->bytes += t->st.st_size; + mdir->files++; + } + } + + return l; +} + +creditlist_t *creditlist_create_from_filelist(filelist_t *f) { + creditlist_t *l = 0, *t; + filelist_t *tfl; + pwdfile *pass; + strlist_t *creditables; + + creditables = config_get_split_property(PROPERTY_CREDITABLE); + + for (tfl = f; tfl; tfl = tfl->next) { + + if (strlist_match(tfl->file, creditables) == 0) + continue; + + t = creditlist_find_by_uid(l, tfl->st.st_uid); + + if (!t) { + t = (creditlist_t*)malloc(sizeof(creditlist_t)); + t->uid = tfl->st.st_uid; + t->files = 0; + t->bytes = 0; + t->next = l; + l = t; + } + + t->files += 1; + t->bytes += (long)tfl->st.st_size/1024; + } + + return l; +} + +void reverse_dirlog_add(struct subdir_list *tsub, char *dest, char *rel, pwdfile *pass, chowninfo_t *chown) { + char buf[300], *tmp; + hashtable_t *cfg = get_config(); + int uid, gid, addsub; + + tmp = ht_get(cfg, PROPERTY_ADDSUB); + + if (tmp) + addsub = atoi(tmp); + else + addsub = 0; + + if (tsub) + reverse_dirlog_add(tsub->next, dest, rel, pass, chown); + else + return; + + if (!addsub && (strlen(tsub->dir) > 0)) + return; + + if (strlen(tsub->dir) > 0) + sprintf(buf, "%s/%s", dest, tsub->dir); + else + strcpy(buf, dest); + + uid = (chown->uid == -1) ? pass->uid : chown->uid; + gid = (chown->gid == -1) ? pass->gid : chown->gid; + + if (!gl_dirlog_add(buf, uid, gid, tsub->files, tsub->bytes)) + printf(" * Error adding to dirlog: %s/%s (%dF %.1fMb)\n", + rel, tsub->dir, + tsub->files, (float)tsub->bytes/(1024*1024)); +} + +/* + * Method to replace in strings. + */ +int pre_replace(char *b, char *n, char *r) { + char *t, *save; + int i=0; + + while (t=strstr(b, n)) { + save=(char*)malloc(strlen(t)-strlen(n)+1); + strcpy(save, t+strlen(n)); + *t=0; + strcat(b, r); + strcat(b, save); + free(save); + i++; + } +} + +int pre_move_catalog(char *src, char *dest) { + char *tmp, movebuf[1024]; + int rc; + + // try rename. + rc = rename(src, dest); + + if (rc == 0) + return 0; + + tmp = ht_get(get_config(), PROPERTY_MOVE_EXTERNAL); + + if (!tmp) + return -1; + + printf(", external.."); + + strcpy(movebuf, tmp); + pre_replace(movebuf, "%S", src); + pre_replace(movebuf, "%D", dest); + + // try external move + rc = system(movebuf); + + // return -1 if command did not return '0' = success. + if (rc != 0) + return -1; + + return 0; +} + +int pre_exec_module(module_list_t *mfunc, filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { + filelist_t *ftmp; + struct subdir_list *stmp; + hashtable_t *cfg; + char *tmpf; + int rc; + + // run mod_func_dir on each dir + for (stmp = subdirs; stmp; stmp = stmp->next) { + + tmpf = malloc(strlen(path) + strlen(stmp->dir) + 2); + if (strlen(stmp->dir) > 0) + sprintf(tmpf, "%s/%s", path, stmp->dir); + else { + // we got the top-dir + strcpy(tmpf, path); + + // run the mod_func_rel on the rlsdir. + if (mfunc->mod_func_rel != 0) { + pre_log("MODULE-REL", "%s %s", mfunc->mod_name, stmp->dir); + rc = mfunc->mod_func_rel(tmpf, argv); + } + } + + if (mfunc->mod_func_dir != 0) { + pre_log("MODULE-DIR", "%s %s", mfunc->mod_name, stmp->dir); + + rc = mfunc->mod_func_dir(tmpf, argv); + } + + free(tmpf); + + // break if mod_func_dir signals not to continue. + if (rc == 0) + break; + } + + + // run mod_func_file on each file. + for (ftmp = files; mfunc->mod_func_file && ftmp; ftmp = ftmp->next) { + + pre_log("MODULE-FILE", "%s %s", mfunc->mod_name, ftmp->file); + + tmpf = malloc(strlen(ftmp->file) + strlen(path) + 2); + sprintf(tmpf, "%s/%s", path, ftmp->file); + + rc = mfunc->mod_func_file(tmpf, argv); + + free(tmpf); + + // if module returns 0, then break. + if (rc == 0) + break; + } + + return 1; +} + +int pre_do_module(char *module, filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { + + void *handle; + module_list_t *module_func; + module_list_t* (*module_loader)(); + void (*set_config)(hashtable_t *ht); + char *err; + + pre_log("MODULE", "%s", module); + + handle = dlopen(module, RTLD_LAZY); + if (!handle) { + err = dlerror(); + pre_log("MODULE-ERROR", "%s \"%s\"", module, err); + printf("Error loading module %s: %s\n", module, err); + return 0; + } + + module_loader = dlsym(handle, MODULE_LOADER_FUNC); + set_config = dlsym(handle, MODULE_SETCONFIG_FUNC); + + if (!module_loader || !set_config) { + pre_log("MODULE-ERROR", "%s %s", module, "No loader func found"); + printf("Error loading module %s: No loader func found\n"); + dlclose(handle); + return 0; + } + + pre_log("MODULE-RUN", "%s %s", module, path); + + set_config(get_config()); + + // try to set environment if module allows. + set_config = dlsym(handle, MODULE_SETENV_FUNC); + if (set_config) + set_config(get_context()); + + pre_exec_module(module_loader(), files, path, argv, subdirs); + + pre_log("MODULE-DONE", "%s %s", module, path); + + dlclose(handle); + + return 1; +} + +int pre_do_modules(filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { + hashtable_t *cfg, *env; + stringtokenizer st; + char *tmp; + + tmp = ht_get(get_config(), PROPERTY_MODULES); + + // no modules in config, return + if (!tmp) + return; + + st_initialize(&st, tmp, "|"); + + while (st_hasnext(&st)) { + tmp = st_next(&st); + + pre_do_module(tmp, files, path, argv, subdirs); + } + +} + + +int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv[]) { + hashtable_t *cfg, *env; + + char buf[1024], tbuf[50], ubuf[300], *tmp; + filelist_t *files, *ftmp; + creditlist_t *credits, *tcred; + struct subdir_list *subdirs; + float bcount; + long fnum; + int olduid, disks = 1; + pwdfile *pass; + chowninfo_t *chown; + + cfg = get_config(); + env = get_context(); + + pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); + + if (!pass) { + printf(" * Error, cannot get your passwd entry! \n"); + return 0; + } + + chown = chowninfo_find_by_group(group); + + olduid = getuid(); + if (setuid(0) == -1) + quit(" * Error changing uid, bug sysop to fix perms on foo-pre !\n"); + + // find filenames, and collect user's stats + do chowning of files. + files = filelist_find_by_dir(0, src, "", chown); + + // get totals. + flist_size(files, &bcount, &fnum); + printf(" * Totals of this pre for announce: %dF %.0fB\n", fnum, bcount); + + // get credits. + credits = creditlist_create_from_filelist(files); + + printf(" * Moving files to destination dir.. \n"); + printf(" -- %10.10s: %s\n", "From", src); + printf(" -- %10.10s: %s", "To", dest); + + // dont forget to chown maindir + chowninfo_apply_to_file(src, chown); + + // do the actual moving of dir. + if (pre_move_catalog(src, dest) == -1) + quit(" Failed!\n"); + else + printf(" Done\n"); + + // give credits to original uploaders + printf(" * Updating userfiles ..\n"); + strcpy(ubuf, ""); + for (tcred = credits; tcred; tcred = tcred->next) { + tmp = userfile_update(tcred); + if (tmp) + strcat(ubuf, tmp); + } + + setuid(olduid); + + if (strlen(ubuf) > 2) + ubuf[strlen(ubuf) - 2] = 0; + + // add to dupefile. + tmp = ht_get(env, PROPERTY_USER); + for (ftmp = files; ftmp; ftmp = ftmp->next) + if (!gl_dupefile_add(flist_getfilename(ftmp), tmp)) + printf(" * Error adding to dupefile: %s\n", ftmp->file); + + subdirs = subdir_flistcollect(files); + reverse_dirlog_add(subdirs, dest, rel, pass, chown); + + disks = subdirlist_count(subdirs); + if (disks == 0) + disks++; + + // create announce. + tmp = group_get_property(group, PROPERTY_GROUP_ANNOUNCE); + + if (tmp) { + + strcpy(buf, tmp); + sprintf(tbuf, "%.1f", (float)bcount/(1024*1024)); + pre_replace(buf, "%S", tbuf); + sprintf(tbuf, "%ld", fnum); + pre_replace(buf, "%W", ubuf); + pre_replace(buf, "%F", tbuf); + sprintf(tbuf, "%d", disks); + pre_replace(buf, "%C", tbuf); + pre_replace(buf, "%PP", ht_get(env, "RESOLVEDDESTINATION")); + pre_replace(buf, "%P", section_get_property(section, PROPERTY_SECTION_DIR)); + pre_replace(buf, "%U", ht_get(env, PROPERTY_USER)); + pre_replace(buf, "%T", ht_get(env, PROPERTY_TAGLINE)); + pre_replace(buf, "%G", ht_get(env, PROPERTY_GROUP)); + pre_replace(buf, "%g", ht_get(env, PROPERTY_USERGROUP)); + pre_replace(buf, "%D", section_get_property(section, PROPERTY_SECTION_NAME)); + pre_replace(buf, "%R", rel); + + gl_gllog_add(buf); + + } else + printf(" * WARNING: No announce setup ! Go bug sysop :( \n"); + + // add to dupelog. + if (!gl_dupelog_add(rel)) + printf(" * Error adding to dupelog ! (prolly wrong perms, ask sysop to fix)\n"); + + sprintf(buf, "%s/%s", ht_get(env, "RESOLVEDDESTINATION"), rel); + + // do additional module stuff + pre_do_modules(files, buf, argv, subdirs); + + return 1; +} + +int touch_dir(char *dir) { + FILE *f; + char buf[1024]; + + sprintf(buf, "%s/.touched", dir); + f = fopen(buf, "w"); + + if (!f) + return 0; + + fprintf(f, "touched\n"); + fclose(f); + + unlink(buf); + + return 1; +} + +// hacky file touch method +int touch_file(char *fname) { + int fd, needed_chmod, rval, force = 0; + unsigned char byte; + struct stat st; + + if (stat(fname, &st) == -1) + return 0; + + // Try regular files only. + if (!S_ISREG(st.st_mode)) + return 0; + + needed_chmod = rval = 0; + if ((fd = open(fname, O_RDWR, 0)) == -1) { + if (!force || chmod(fname, DEFFILEMODE)) + goto err; + if ((fd = open(fname, O_RDWR, 0)) == -1) + goto err; + needed_chmod = 1; + } + + if (st.st_size != 0) { + if (read(fd, &byte, sizeof(byte)) != sizeof(byte)) + goto err; + if (lseek(fd, (off_t)0, SEEK_SET) == -1) + goto err; + if (write(fd, &byte, sizeof(byte)) != sizeof(byte)) + goto err; + } else { + if (write(fd, &byte, sizeof(byte)) != sizeof(byte)) { +err: + rval = 1; + } else if (ftruncate(fd, (off_t)0)) { + rval = 1; + } + } + + if (close(fd) && rval != 1) { + rval = 1; + } + + if (needed_chmod && chmod(fname, st.st_mode) && rval != 1) { + rval = 1; + } + + return (rval); +} + +/* + * Gets the real path of a section, trying to expands symlink if nessecary. + */ +char *section_expand_path(char *sec) { + char tmp[1024], buf[1024], *tmpp; + int reps; + time_t now; + struct tm *tm_now; + struct stat st; + + strcpy(tmp, section_get_property(sec, PROPERTY_SECTION_DIR)); + + now = time(0); + tm_now = localtime(&now); + + strftime(buf, 1024, "%d", tm_now); + pre_replace(tmp, "DD", buf); + + strftime(buf, 1024, "%m", tm_now); + pre_replace(tmp, "MM", buf); + + strftime(buf, 1024, "%Y", tm_now); + pre_replace(tmp, "YYYY", buf); + + strftime(buf, 1024, "%y", tm_now); + pre_replace(tmp, "YY", buf); + + strftime(buf, 1024, "%w", tm_now); + pre_replace(tmp, "WW", buf); + + strftime(buf, 1024, "%W", tm_now); + pre_replace(tmp, "WOY", buf); + + // if its a link then expand it. + reps = readlink(tmp, buf, 1024); + + if (reps != -1) { + if (buf[0] == '/') { + strncpy(tmp, buf, reps); + buf[reps] = 0; + } + else { + tmpp= strrchr(tmp, '/'); + if (!tmpp) + quit(" * Symlink expansion error.."); + + strncpy(tmpp + 1, buf, reps); + *(tmpp + 1 + reps) = 0; + } + } + + if (stat(tmp, &st) == -1) { + sprintf(buf, + " * Hm, destination section's path (%s) doesnt exist ?\n", + tmp); + + quit(buf); + } + + return strdup(tmp); +} + + + +int pre_handler(int argc, char *argv[]) { + hashtable_t *env, *cfg; + strlist_t *groups; + char *dest_section, *destpath; + struct stat st; + char source[1024], destination[1024], *tmp, *group; + char buf[1024]; + int rc; + + env = get_context(); + cfg = get_config(); + + pre_log("START", "%s %s %s", ht_get(env, PROPERTY_USER), argv[1], argv[2]); + + // set etcdir for the pwd functions + if (tmp = ht_get(cfg, PROPERTY_ETCDIR)) + pwd_set_etcdir(tmp); + + if (tmp = ht_get(cfg, PROPERTY_TEXT_HEAD)) + printf(tmp); + + groups = user_find_groups(ht_get(env, PROPERTY_USER)); + + if (!groups) + quit(" * Error finding your groups, go bug sysop!\n"); + + if (argc < 2) { + printf(USAGE); + + show_groupdirs(groups); + + quit(0); + } + + // check if someone are trying to fool us. + if (strchr(argv[1], '/')) + quit(" * You cant give paths in releasename ('/' not allowed)!\n"); + + char *sourcebis = getcwd(NULL, 0); + + // check if we are in a position to pre. + group = group_find_by_dir(groups, sourcebis); + + if (!group) { + printf(" * You are not in the group-dir of any of your groups.\n\n"); + + show_groupdirs(groups); + + quit(0); + } + + pre_log("GROUP", "%s %s", sourcebis, group); + + printf(" * Looks like this is going to be a %s pre..\n", group); + ht_put(env, PROPERTY_GROUP, group); + + // check if we have chosen a valid destination for our pre. + dest_section = section_find_by_name(group, argc > 2 ? argv[2] : 0); + + if (!dest_section) { + show_groupdirs(groups); + + quit(0); + } + + printf(" * Destination for pre will be the %s section..\n", dest_section); + ht_put(env, "section", dest_section); + + destpath = section_expand_path(dest_section); + ht_put(env, "RESOLVEDDESTINATION", destpath); + + strcpy(source, sourcebis); + strcat(source, "/"); + strcat(source, argv[1]); + + // check if source dir is okay. + if ((stat(source, &st) == -1) || !S_ISDIR(st.st_mode)) { + sprintf(source, " * Hm, '%s' doesnt exist or isnt a dir ?\n", + argv[1]); + quit(source); + } + + // touch the source. + touch_dir(source); + + // check if destination dir exists. + sprintf(destination, "%s/%s", destpath, argv[1]); + + rc = stat(destination, &st); + + // try rename if requested + if ((rc == 0) && (argc > 3) && (!strcasecmp(argv[3], "force"))) { + + sprintf(buf, "%s_TRADING", destination); + rc = rename(destination, buf); + + if (rc == 0) + printf(" + Renamed existing to %s_TRADING ..\n", argv[1]); + else + printf(" ! Failed rename existing to %s_TRADING ..\n", argv[1]); + } + + // check if destination exists. + if (stat(destination, &st) == -1) + pre(dest_section, destination, source, argv[1], group, argv); + else { + sprintf(source, " * Hm destination already exists. You're too late with pre!\n + Use SITE PRE %s %s FORCE to force pre.\n (this will rename the existing dir, which you can then nuke or wipe afterwards!)\n"); + quit(source); + } + + const char* filename="test.mp3"; + get_mp3_genre(filename); + // log DONE: "" "" "" "" + pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\"", + ht_get(env, PROPERTY_USER), group, + argv[1], destpath); + pre_log("TEST", "\"%s\" \"%s\" \"%s\" \"%s\"", + ht_get(env, PROPERTY_USER), group, + argv[1], id3_genre); + + return 0; +} + +/* + * Initialize the environment. + */ +int pre_init() { + hashtable_t *tmp; + char *sanity; + + // load config. + tmp = get_config(); + ht_load_prop(tmp, PRE_CONFIGFILE, '='); + + // lame check on environment. prevents idiots from sending me + // 'why does it segv when i run it ???' questions. + sanity = getenv("TAGLINE"); + if (!sanity) { + printf("Did not find environment for glftpd, please run only from within glftpd as 'site' command!\n"); + exit(1); + } + + // put env variables into the context. + tmp = get_context(); + ht_put(tmp, PROPERTY_USER, getenv("USER")); + ht_put(tmp, PROPERTY_TAGLINE, getenv("TAGLINE")); + ht_put(tmp, PROPERTY_USERGROUP, getenv("GROUP")); +} + + +/* + * Main method. + */ +int main(int argc, char *argv[]) { + int rc; + + pre_init(); + + rc = pre_handler(argc, argv); + + quit(0); + + // never reached. + return 0; +} + + +void quit(char *s, ...) { + hashtable_t *cfg = get_config(); + char *tmp; + va_list va; + + if (s) { + va_start(va, s); + + vprintf(s, va); + va_end(va); + } + + if (tmp = ht_get(cfg, PROPERTY_TEXT_TAIL)) + printf(tmp, VERSION); + + exit(0); +} diff --git a/src/pre/foo-pre.c.mp3genre.hack.working b/src/pre/foo-pre.c.mp3genre.hack.working new file mode 100644 index 0000000..bd8ad88 --- /dev/null +++ b/src/pre/foo-pre.c.mp3genre.hack.working @@ -0,0 +1,1509 @@ +/* + * foo-tools, a collection of utilities for glftpd users. + * Copyright (C) 2003 Tanesha FTPD Project, www.tanesha.net + * + * This file is part of foo-tools. + * + * foo-tools 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. + * + * foo-tools 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 foo-tools; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +/* + * foo.Pre [C-version] (c) tanesha team, + */ +/* + * +slv 02082012 - mp3 genre output added to PRE (instead of as a module) + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "foo-pre.h" +#include "gl_userfile.h" + +#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" +#define USAGE " * Syntax: SITE PRE [SECTION]\n" + +void quit(char *s, ...); +extern int errno; + +hashtable_t *_config = 0; +hashtable_t *_envctx = 0; + +/* + * slv 02082012 - mp3 genres + */ +char *genre_s[] = { + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" +}; +unsigned char genre_count = 149; +char *id3_genre = "n/a"; +unsigned char id3_genre_num[1]; + +/* + * Acecssor method for configuration. + */ +hashtable_t * get_config() { + if (!_config) { + _config = malloc(sizeof(hashtable_t)); + bzero(_config, sizeof(hashtable_t)); + } + + return _config; +} + +/* + * Accessor method for context of the pre. + */ +hashtable_t * get_context() { + if (!_envctx) { + _envctx = malloc(sizeof(hashtable_t)); + ht_init(_envctx); + } + + return _envctx; +} + +/* + * Puts something to the logfile. + */ +void pre_log(char *type, char *fmt, ...) { + hashtable_t *env = get_context(); + hashtable_t *cfg; + va_list va; + FILE *f; + + f = (FILE*)ht_get(env, "logfh"); + + if (!f) { + f = fopen(PRE_LOGFILE, "a"); + ht_put_obj(env, "logfh", f); + } + + fprintf(f, "%s: ", type); + va_start(va, fmt); + vfprintf(f, fmt, va); + va_end(va); + fprintf(f, "\n"); + fflush(f); +} + +/* + * Returns a given property for a group. + */ +char *group_get_property(char *grp, char *prop) { + hashtable_t *cfg = get_config(); + char buf[300], *tmp; + + sprintf(buf, "group.%s.%s", grp, prop); + + tmp = ht_get(cfg, buf); + + if (!tmp) { + // try to get default property. + sprintf(buf, "group.DEFAULT.%s", prop); + tmp = ht_get(cfg, buf); + } + + return tmp; +} + + +/* + * Returns a property for a section. + */ +char * section_get_property(char *sec, char *prop) { + hashtable_t *cfg = get_config(); + char buf[300]; + + sprintf(buf, "section.%s.%s", sec, prop); + + return ht_get(cfg, buf); +} + +/* + * Find chown info for a group. + */ +chowninfo_t * chowninfo_find_by_group(char *group) { + char *tmp; + hashtable_t *env = get_context(); + chowninfo_t * i = malloc(sizeof(chowninfo_t)); + pwdfile *pass; + grpfile_t *grp; + + i->uid = i->gid = -1; + + tmp = group_get_property(group, PROPERTY_GROUP_CHOWN_USER); + if (tmp) { + if (!strcmp(tmp, "USER")) + pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); + else + pass = pwd_getpwnam(tmp); + + if (pass) + i->uid = pass->uid; + else + printf(" * WARNING: Could not get user.chown info for %s\n", group); + } + + tmp = group_get_property(group, PROPERTY_GROUP_CHOWN_GROUP); + if (tmp) { + if (!strcmp(tmp, "GROUP")) + grp = pwd_getgpnam(group); + else + grp = pwd_getgpnam(tmp); + + if (grp) + i->gid = grp->gid; + else + printf(" * WARNING: Could not get grp.chown info for %s\n", group); + } + + return i; +} + +creditlist_t *creditlist_find_by_uid(creditlist_t *l, int uid) { + creditlist_t *t; + + for (t = l; t; t = t->next) + if (t->uid == uid) + break; + + return t; +} + +struct subdir_list *subdirlist_find(struct subdir_list *l, char *s) { + struct subdir_list *t; + + for (t = l; t; t = t->next) + if (!strcmp(t->dir, s)) + break; + + return t; +} + +int subdirlist_count(struct subdir_list *l) { + struct subdir_list *t; + int i = 0; + + for (t = l; t; t = t->next) + if (!strncmp(t->dir, "CD", 2) || !strncmp(t->dir, "DISC", 4)) + i++; + + return i; +} + +/* + * Returns a strlist_t with the groups of an user. + */ +strlist_t * user_find_groups(char *u) { + linefilereader_t lfr; + char buf[1024], *tmp, *spc2; + strlist_t *groups = 0; + hashtable_t *cfg = get_config(); + + tmp = ht_get(cfg, PROPERTY_GL_USERDIR); + + if (!tmp) + quit(" * Could not find '%s' property in config", PROPERTY_GL_USERDIR); + + sprintf(buf, "%s/%s", tmp, u); + + if (lfr_open(&lfr, buf) < 0) + quit(" * Could not open your userfile %s", buf); + + while (lfr_getline(&lfr, buf, 1024) > -1) { + if (!strncasecmp(buf, "GROUP ", 6) || + !strncasecmp(buf, "PRIVATE ", 8)) { + + tmp = strchr(buf, ' ') + 1; + + // fix for glftpd2.x which has 'GROUP group num' + spc2 = strchr(tmp, ' '); + if (spc2) + *spc2 = 0; + + groups = str_add(groups, tmp); + } + } + + lfr_close(&lfr); + + return groups; +} + +/* + * Returns the list of pre groups from config. + * + */ +strlist_t * groups_find_all() { + strlist_t * l = 0; + char *tmp, buf[300], *grp; + hashtable_t *cfg = get_config(); + hashtable_t *env = get_context(); + hashtable_item_t *htn; + + // check if we have made it already. + if (ht_get(env, "ALLGROUPS")) + return (strlist_t*)ht_get(env, "ALLGROUPS"); + + ht_reset(cfg); + + // look through all properties in config. + while (htn = ht_next(cfg)) { + tmp = htn->key; + + if (strcmp(tmp, "group.")) + continue; + + grp = strdup(tmp + 6); + + tmp = strchr(grp, '.'); + + if (!tmp) { + free(grp); + continue; + } + + *tmp = 0; + + if (!str_search(l, grp, 0)) { + l = str_add(l, grp); + } + } + + ht_put_obj(env, "ALLGROUPS", l); + + return l; +} + + +/* + * Gets configuration properties in the a|b|c|d format as a strlist. + */ +strlist_t * config_get_split_property(char *prop) { + hashtable_t *cfg = get_config(); + char *tmp; + stringtokenizer st; + strlist_t *l = 0; + + tmp = ht_get(cfg, prop); + + st_initialize(&st, tmp, "|"); + while (st_hasnext(&st)) { + tmp = st_next(&st); + + l = str_add(l, tmp); + } + + return l; +} + + +/* + * Returns the group of the dir 'path'. + */ +char * group_find_by_dir(strlist_t *grps, char *path) { + strlist_iterator_t *iter; + char *tmpgroup, *tmpdir, buf[300]; + strlist_t *grpdirs = 0; + int found = 0; + + // only look through the groups of the user. + for (iter = str_iterator(grps); str_iterator_hasnext(iter); ) { + tmpgroup = str_iterator_next(iter); + + // get groupdirs as a list. + sprintf(buf, "group.%s.%s", tmpgroup, PROPERTY_GROUP_DIR); + grpdirs = config_get_split_property(buf); + + if (grpdirs && str_search(grpdirs, path, 0)) { + free(iter); + str_close(grpdirs); + return strdup(tmpgroup); + } + } + + str_close(grpdirs); + free(iter); + + return 0; +} + +/* + * + * Outputs info about a user's groups and the groupdirs. + * + */ +int show_groupdirs(strlist_t *grps) { + strlist_iterator_t *i; + char *tmpgroup, *tmppredir, *tmpallowed, *sitedir; + hashtable_t *cfg = get_config(); + stringtokenizer dirst, allowst; + char buf[300]; + int found = 0; + + sitedir = ht_get(cfg, PROPERTY_SITEDIR); + if (!sitedir) + printf(" * WARNING: '%s' not defined in config file\n", PROPERTY_SITEDIR); + + printf("Group Predirs Allowed sections\n"); + printf("--------------- ---------------------------------------- ----------------\n"); + + for (i = str_iterator(grps); str_iterator_hasnext(i); ) { + tmpgroup = str_iterator_next(i); + + tmppredir = group_get_property(tmpgroup, PROPERTY_GROUP_DIR); + tmpallowed = group_get_property(tmpgroup, PROPERTY_GROUP_ALLOW); + + if (!(tmppredir && tmpallowed)) + continue; + + found++; + + st_initialize(&dirst, tmppredir, "|"); + st_initialize(&allowst, tmpallowed, "|"); + strcpy(buf, tmpgroup); + + while (st_hasnext(&dirst) || st_hasnext(&allowst)) { + tmppredir = st_next(&dirst); + tmpallowed = st_next(&allowst); + + printf("%-15.15s %-40.40s %-15.15s\n", buf, (tmppredir?tmppredir + strlen(sitedir):""), (tmpallowed?tmpallowed:"")); + + strcpy(buf, ""); + } + + st_finalize(&dirst); + st_finalize(&allowst); + } + + if (!found) + printf("Hm, you arent in any groups that can pre ! \n"); + + return found; +} + +/* + * Returns section name of a 'requested' section, if its allowed + * for 'group'. + */ +char * section_find_by_name(char *group, char *requested) { + char *tmpsecdir, *tmpallow, *tmpreq; + stringtokenizer st; + + tmpreq = requested; + + // if no requested, then try to set it to the 'default' section. + if (!tmpreq) { + tmpreq = group_get_property(group, PROPERTY_GROUP_DEFSEC); + + if (!tmpreq) { + printf(" * Hm, section not specified, and no default section for group '%s'\n", group); + printf("%s\n", USAGE); + + return 0; + } + } + + st_initialize(&st, group_get_property(group, PROPERTY_GROUP_ALLOW), "|"); + + while (st_hasnext(&st)) { + tmpallow = strdup(st_next(&st)); + + if (!strcasecmp(tmpreq, tmpallow)) + break; + + free(tmpallow); + tmpallow = 0; + } + + st_finalize(&st); + + if (!tmpallow) + return 0; + + // do basic check if section is in the config. + tmpsecdir = section_get_property(tmpallow, PROPERTY_SECTION_DIR); + + if (!tmpsecdir) { + printf(" * Hm, you are allowed to pre in section '%s' but the section is not.\n configured. Bug siteop to fix his pre configuration please! :)\n", tmpreq); + + return 0; + } + + return tmpallow; +} + +/* + * Returns an integer property for a section, returns -1 if not set or + * set to 'none'. + */ +int section_get_int_property(char *s, char *p) { + char *tmp; + + tmp = section_get_property(s, p); + + if (!tmp) + return -1; + + if (!strcasecmp(tmp, "none")) + return -1; + + return atoi(tmp); +} + +/* + * Takes care of updating userfile, by help of gl_userfile module. + */ +char * userfile_update(creditlist_t *l) { + hashtable_t *cfg = get_config(); + hashtable_t *env = get_context(); + long spend, addkb; + char buf[1024], userfile[1024], *section, *userdir, *tmp, *group; + pwdfile *pass; + int gl_stat_section = 0, gl_credit_section = 0, prespeed, rc, ratio; + + // get pre-section from env. + section = ht_get(env, "section"); + group = ht_get(env, PROPERTY_GROUP); + + // find the user. + pass = pwd_getpwuid(l->uid); + if (!pass) + return ""; + + // get ftp-data/users from conf. + userdir = ht_get(cfg, PROPERTY_GL_USERDIR); + if (!userdir) + quit(" * ERROR: Userdir not defined in pre config, fuck the sysop ;(\n"); + + sprintf(userfile, "%s/%s", userdir, pass->name); + + // get the section config from conf. + gl_stat_section = section_get_int_property(section, PROPERTY_GROUP_GL_SS); + gl_credit_section = section_get_int_property(section, PROPERTY_GROUP_GL_CS); + + if ((gl_stat_section == -1) && (gl_credit_section == -1)) { + printf(" * ERROR: No gl_stat_section or gl_credit_section defined for\n"); + printf(" section %s, %s got no stats/credits for pre !\n", section, + pass->name); + + return ""; + } + + // try and figure a ratio to use. + tmp = group_get_property(group, PROPERTY_GROUP_RATIO); + + if (!tmp) { + printf(" * ERROR: No ratio defined for group %s, no credits given!\n", group); + return ""; + } + + if (!strcasecmp(tmp, "USERFILE")) { + ratio = gl_userfile_get_ratio(userfile, gl_credit_section); + + if (ratio == -1) { + printf(" * ERROR: No ratio found in userfile for %s\n", pass->name); + + return ""; + } + } else + ratio = atoi(tmp); + + if (prespeed == 0) + prespeed = 1024; + + spend = (long)l->bytes / prespeed; + addkb = l->bytes; + + if (spend == 0) + spend++; + + printf(" -- %10.10s: ", pass->name); + + if (gl_stat_section > -1) + printf("%d file/s, %.1f Mb (s:%d)", l->files, (float)addkb/1024, gl_stat_section); + else + printf("No stats given"); + + if (gl_credit_section > -1) + printf(", Credits: %.1f Mb, Ratio: %d (s:%d)\n", (float)(ratio * addkb)/1024, ratio, gl_credit_section); + else + printf(", No credits given\n"); + + // call gl_userfile_* to get the userfile updated. + rc = gl_userfile_add_stats(userfile, l->files, addkb, spend, (long)ratio * addkb, gl_stat_section, gl_credit_section); + + if (rc > -1) { + sprintf(buf, "%s/%.1fMb, ", pass->name, (float)l->bytes/1024); + return strdup(buf); + } else + printf(" * ERROR: Couldnt update userfile for %s\n", pass->name); + + return ""; +} + +/* + * Chowns a file from chowninfo. + */ +int chowninfo_apply_to_file(char *file, chowninfo_t *ch) { + + if (!ch) + return 0; + + // check if no chown needed. + if ((ch->gid == -1) && (ch->uid == -1)) + return 1; + + chown(file, ch->uid, ch->gid); + + return 1; +} + +/* + * Loads a filelist from a dir. + * + * Also chowns all files in the dir if chown is != 0. + */ +filelist_t * filelist_find_by_dir(filelist_t *l, char *base, char *path, chowninfo_t *chown) { + DIR *dh; + char buf[1024], *group; + struct dirent *dent; + struct stat st; + filelist_t *tmp; + + group = ht_get(get_context(), PROPERTY_GROUP); + + sprintf(buf, "%s/%s", base, path); + dh = opendir(buf); + + if (!dh) + return l; + + while ((dent = readdir(dh))) { + if ((!strcmp(dent->d_name, ".")) || + (!strcmp(dent->d_name, ".."))) + continue; + + sprintf(buf, "%s/%s/%s", base, path, dent->d_name); + + if (stat(buf, &st) == -1) + continue; + + // chown file + chowninfo_apply_to_file(buf, chown); + + if (S_ISDIR(st.st_mode)) { + + // touch dir + touch_dir(buf); + + if (strlen(path) > 0) + sprintf(buf, "%s/%s", path, dent->d_name); + else + strcpy(buf, dent->d_name); + + // find recursively. + l = filelist_find_by_dir(l, base, buf, chown); + + } else { + // touch file + touch_file(buf); + + tmp = (filelist_t*)malloc(sizeof(filelist_t)); + + if (strlen(path) > 0) + sprintf(tmp->file, "%s/%s", path, dent->d_name); + else + strcpy(tmp->file, dent->d_name); + + memcpy(&tmp->st, &st, sizeof(st)); + + tmp->next = l; + + l = tmp; + } + } + + closedir(dh); + + return l; +} + + +int strlist_match(char *file, strlist_t *l) { + strlist_iterator_t *iter; + int found = 0; + char *pattern; + + iter = str_iterator(l); + + while (pattern = str_iterator_next(iter)) { + if (fnmatch(pattern, file, 0) == 0) + found++; + } + + free(iter); + + return found; +} + +/* + * Method to find total size of filelist. + */ +int flist_size(filelist_t *filelist, float *bytes, long *files) { + filelist_t *t; + strlist_t *tmp; + strlist_iterator_t *iter; + char *tt; + int found; + + // get countables. + tmp = config_get_split_property(PROPERTY_COUNTABLE); + + *bytes = 0; *files = 0; + + for (t = filelist; t; t = t->next) { + + if (strlist_match(t->file, tmp) == 0) + continue; + + (*bytes) += t->st.st_size; + (*files)++; + } + + return 1; +} + +char *flist_getfilename(filelist_t *l) { + char *buf; + + buf = strrchr(l->file, '/'); + if (!buf) + buf = l->file; + else + buf++; + + return buf; +} + +/* + * Create list of subdirs from filelist. + * + */ +struct subdir_list *subdir_flistcollect(filelist_t *f) { + struct subdir_list *l = 0, *tmp, *mdir; + filelist_t *t; + char *d, buf[1024]; + + mdir = (struct subdir_list*)malloc(sizeof(struct subdir_list)); + mdir->bytes = 0; + mdir->files = 0; + strcpy(mdir->dir, ""); + mdir->next = 0; + l = mdir; + + for (t = f; t; t = t->next) { + strcpy(buf, t->file); + d = strrchr(buf, '/'); + if (!d) + strcpy(buf, ""); + else + *d = 0; + + if ((tmp = subdirlist_find(l, buf)) == 0) { + tmp = (struct subdir_list*)malloc(sizeof(struct subdir_list)); + tmp->bytes = 0; + tmp->files = 0; + strcpy(tmp->dir, buf); + tmp->next = l; + l = tmp; + } + + tmp->bytes += t->st.st_size; + tmp->files++; + + // update the main dir (if it aint us). + if (strcmp(buf, "")) { + mdir->bytes += t->st.st_size; + mdir->files++; + } + } + + return l; +} + +creditlist_t *creditlist_create_from_filelist(filelist_t *f) { + creditlist_t *l = 0, *t; + filelist_t *tfl; + pwdfile *pass; + strlist_t *creditables; + + creditables = config_get_split_property(PROPERTY_CREDITABLE); + + for (tfl = f; tfl; tfl = tfl->next) { + + if (strlist_match(tfl->file, creditables) == 0) + continue; + + t = creditlist_find_by_uid(l, tfl->st.st_uid); + + if (!t) { + t = (creditlist_t*)malloc(sizeof(creditlist_t)); + t->uid = tfl->st.st_uid; + t->files = 0; + t->bytes = 0; + t->next = l; + l = t; + } + + t->files += 1; + t->bytes += (long)tfl->st.st_size/1024; + } + + return l; +} + +void reverse_dirlog_add(struct subdir_list *tsub, char *dest, char *rel, pwdfile *pass, chowninfo_t *chown) { + char buf[300], *tmp; + hashtable_t *cfg = get_config(); + int uid, gid, addsub; + + tmp = ht_get(cfg, PROPERTY_ADDSUB); + + if (tmp) + addsub = atoi(tmp); + else + addsub = 0; + + if (tsub) + reverse_dirlog_add(tsub->next, dest, rel, pass, chown); + else + return; + + if (!addsub && (strlen(tsub->dir) > 0)) + return; + + if (strlen(tsub->dir) > 0) + sprintf(buf, "%s/%s", dest, tsub->dir); + else + strcpy(buf, dest); + + uid = (chown->uid == -1) ? pass->uid : chown->uid; + gid = (chown->gid == -1) ? pass->gid : chown->gid; + + if (!gl_dirlog_add(buf, uid, gid, tsub->files, tsub->bytes)) + printf(" * Error adding to dirlog: %s/%s (%dF %.1fMb)\n", + rel, tsub->dir, + tsub->files, (float)tsub->bytes/(1024*1024)); +} + +/* + * Method to replace in strings. + */ +int pre_replace(char *b, char *n, char *r) { + char *t, *save; + int i=0; + + while (t=strstr(b, n)) { + save=(char*)malloc(strlen(t)-strlen(n)+1); + strcpy(save, t+strlen(n)); + *t=0; + strcat(b, r); + strcat(b, save); + free(save); + i++; + } +} + +int pre_move_catalog(char *src, char *dest) { + char *tmp, movebuf[1024]; + int rc; + + // try rename. + rc = rename(src, dest); + + if (rc == 0) + return 0; + + tmp = ht_get(get_config(), PROPERTY_MOVE_EXTERNAL); + + if (!tmp) + return -1; + + printf(", external.."); + + strcpy(movebuf, tmp); + pre_replace(movebuf, "%S", src); + pre_replace(movebuf, "%D", dest); + + // try external move + rc = system(movebuf); + + // return -1 if command did not return '0' = success. + if (rc != 0) + return -1; + + return 0; +} + +int pre_exec_module(module_list_t *mfunc, filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { + filelist_t *ftmp; + struct subdir_list *stmp; + hashtable_t *cfg; + char *tmpf; + int rc; + + // run mod_func_dir on each dir + for (stmp = subdirs; stmp; stmp = stmp->next) { + + tmpf = malloc(strlen(path) + strlen(stmp->dir) + 2); + if (strlen(stmp->dir) > 0) + sprintf(tmpf, "%s/%s", path, stmp->dir); + else { + // we got the top-dir + strcpy(tmpf, path); + + // run the mod_func_rel on the rlsdir. + if (mfunc->mod_func_rel != 0) { + pre_log("MODULE-REL", "%s %s", mfunc->mod_name, stmp->dir); + rc = mfunc->mod_func_rel(tmpf, argv); + } + } + + if (mfunc->mod_func_dir != 0) { + pre_log("MODULE-DIR", "%s %s", mfunc->mod_name, stmp->dir); + + rc = mfunc->mod_func_dir(tmpf, argv); + } + + free(tmpf); + + // break if mod_func_dir signals not to continue. + if (rc == 0) + break; + } + + + // run mod_func_file on each file. + for (ftmp = files; mfunc->mod_func_file && ftmp; ftmp = ftmp->next) { + + pre_log("MODULE-FILE", "%s %s", mfunc->mod_name, ftmp->file); + + tmpf = malloc(strlen(ftmp->file) + strlen(path) + 2); + sprintf(tmpf, "%s/%s", path, ftmp->file); + + rc = mfunc->mod_func_file(tmpf, argv); + + free(tmpf); + + // if module returns 0, then break. + if (rc == 0) + break; + } + + return 1; +} + +int pre_do_module(char *module, filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { + + void *handle; + module_list_t *module_func; + module_list_t* (*module_loader)(); + void (*set_config)(hashtable_t *ht); + char *err; + + pre_log("MODULE", "%s", module); + + handle = dlopen(module, RTLD_LAZY); + if (!handle) { + err = dlerror(); + pre_log("MODULE-ERROR", "%s \"%s\"", module, err); + printf("Error loading module %s: %s\n", module, err); + return 0; + } + + module_loader = dlsym(handle, MODULE_LOADER_FUNC); + set_config = dlsym(handle, MODULE_SETCONFIG_FUNC); + + if (!module_loader || !set_config) { + pre_log("MODULE-ERROR", "%s %s", module, "No loader func found"); + printf("Error loading module %s: No loader func found\n"); + dlclose(handle); + return 0; + } + + pre_log("MODULE-RUN", "%s %s", module, path); + + set_config(get_config()); + + // try to set environment if module allows. + set_config = dlsym(handle, MODULE_SETENV_FUNC); + if (set_config) + set_config(get_context()); + + pre_exec_module(module_loader(), files, path, argv, subdirs); + + pre_log("MODULE-DONE", "%s %s", module, path); + + dlclose(handle); + + return 1; +} + +int pre_do_modules(filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { + hashtable_t *cfg, *env; + stringtokenizer st; + char *tmp; + + tmp = ht_get(get_config(), PROPERTY_MODULES); + + // no modules in config, return + if (!tmp) + return; + + st_initialize(&st, tmp, "|"); + + while (st_hasnext(&st)) { + tmp = st_next(&st); + + pre_do_module(tmp, files, path, argv, subdirs); + } + +} + + +int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv[]) { + hashtable_t *cfg, *env; + + char buf[1024], tbuf[50], ubuf[300], *tmp; + filelist_t *files, *ftmp; + creditlist_t *credits, *tcred; + struct subdir_list *subdirs; + float bcount; + long fnum; + int olduid, disks = 1; + pwdfile *pass; + chowninfo_t *chown; + + cfg = get_config(); + env = get_context(); + + pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); + + if (!pass) { + printf(" * Error, cannot get your passwd entry! \n"); + return 0; + } + + chown = chowninfo_find_by_group(group); + + olduid = getuid(); + if (setuid(0) == -1) + quit(" * Error changing uid, bug sysop to fix perms on foo-pre !\n"); + + // find filenames, and collect user's stats + do chowning of files. + files = filelist_find_by_dir(0, src, "", chown); + + // get totals. + flist_size(files, &bcount, &fnum); + printf(" * Totals of this pre for announce: %dF %.0fB\n", fnum, bcount); + + // get credits. + credits = creditlist_create_from_filelist(files); + + printf(" * Moving files to destination dir.. \n"); + printf(" -- %10.10s: %s\n", "From", src); + printf(" -- %10.10s: %s", "To", dest); + + /* + * slv 02082012 - get filename.mp3 and call get_mp3_genre(filename). + */ + // get genre. + for (ftmp = files; ftmp; ftmp = ftmp->next) { + tmp = strrchr(ftmp->file, '.'); + if (!strcmp(tmp, ".mp3")) { + sprintf(buf, "%s/%s", src, ftmp->file); + get_mp3_genre(buf); + break; + } + } + + // dont forget to chown maindir + chowninfo_apply_to_file(src, chown); + + // do the actual moving of dir. + if (pre_move_catalog(src, dest) == -1) + quit(" Failed!\n"); + else + printf(" Done\n"); + + // give credits to original uploaders + printf(" * Updating userfiles ..\n"); + strcpy(ubuf, ""); + for (tcred = credits; tcred; tcred = tcred->next) { + tmp = userfile_update(tcred); + if (tmp) + strcat(ubuf, tmp); + } + + setuid(olduid); + + if (strlen(ubuf) > 2) + ubuf[strlen(ubuf) - 2] = 0; + + // add to dupefile. + tmp = ht_get(env, PROPERTY_USER); + for (ftmp = files; ftmp; ftmp = ftmp->next) + if (!gl_dupefile_add(flist_getfilename(ftmp), tmp)) + printf(" * Error adding to dupefile: %s\n", ftmp->file); + + subdirs = subdir_flistcollect(files); + reverse_dirlog_add(subdirs, dest, rel, pass, chown); + + disks = subdirlist_count(subdirs); + if (disks == 0) + disks++; + + // create announce. + tmp = group_get_property(group, PROPERTY_GROUP_ANNOUNCE); + + if (tmp) { + + strcpy(buf, tmp); + sprintf(tbuf, "%.1f", (float)bcount/(1024*1024)); + pre_replace(buf, "%S", tbuf); + sprintf(tbuf, "%ld", fnum); + pre_replace(buf, "%W", ubuf); + pre_replace(buf, "%F", tbuf); + sprintf(tbuf, "%d", disks); + pre_replace(buf, "%C", tbuf); + pre_replace(buf, "%PP", ht_get(env, "RESOLVEDDESTINATION")); + pre_replace(buf, "%P", section_get_property(section, PROPERTY_SECTION_DIR)); + pre_replace(buf, "%U", ht_get(env, PROPERTY_USER)); + pre_replace(buf, "%T", ht_get(env, PROPERTY_TAGLINE)); + pre_replace(buf, "%G", ht_get(env, PROPERTY_GROUP)); + pre_replace(buf, "%g", ht_get(env, PROPERTY_USERGROUP)); + pre_replace(buf, "%D", section_get_property(section, PROPERTY_SECTION_NAME)); + pre_replace(buf, "%R", rel); + pre_replace(buf, "%I", id3_genre); + + gl_gllog_add(buf); + + } else + printf(" * WARNING: No announce setup ! Go bug sysop :( \n"); + + // add to dupelog. + if (!gl_dupelog_add(rel)) + printf(" * Error adding to dupelog ! (prolly wrong perms, ask sysop to fix)\n"); + + sprintf(buf, "%s/%s", ht_get(env, "RESOLVEDDESTINATION"), rel); + + // do additional module stuff + pre_do_modules(files, buf, argv, subdirs); + + return 1; +} + +int touch_dir(char *dir) { + FILE *f; + char buf[1024]; + + sprintf(buf, "%s/.touched", dir); + f = fopen(buf, "w"); + + if (!f) + return 0; + + fprintf(f, "touched\n"); + fclose(f); + + unlink(buf); + + return 1; +} + +// hacky file touch method +int touch_file(char *fname) { + int fd, needed_chmod, rval, force = 0; + unsigned char byte; + struct stat st; + + if (stat(fname, &st) == -1) + return 0; + + // Try regular files only. + if (!S_ISREG(st.st_mode)) + return 0; + + needed_chmod = rval = 0; + if ((fd = open(fname, O_RDWR, 0)) == -1) { + if (!force || chmod(fname, DEFFILEMODE)) + goto err; + if ((fd = open(fname, O_RDWR, 0)) == -1) + goto err; + needed_chmod = 1; + } + + if (st.st_size != 0) { + if (read(fd, &byte, sizeof(byte)) != sizeof(byte)) + goto err; + if (lseek(fd, (off_t)0, SEEK_SET) == -1) + goto err; + if (write(fd, &byte, sizeof(byte)) != sizeof(byte)) + goto err; + } else { + if (write(fd, &byte, sizeof(byte)) != sizeof(byte)) { +err: + rval = 1; + } else if (ftruncate(fd, (off_t)0)) { + rval = 1; + } + } + + if (close(fd) && rval != 1) { + rval = 1; + } + + if (needed_chmod && chmod(fname, st.st_mode) && rval != 1) { + rval = 1; + } + + return (rval); +} + +/* + * Gets the real path of a section, trying to expands symlink if nessecary. + */ +char *section_expand_path(char *sec) { + char tmp[1024], buf[1024], *tmpp; + int reps; + time_t now; + struct tm *tm_now; + struct stat st; + + strcpy(tmp, section_get_property(sec, PROPERTY_SECTION_DIR)); + + now = time(0); + tm_now = localtime(&now); + + strftime(buf, 1024, "%d", tm_now); + pre_replace(tmp, "DD", buf); + + strftime(buf, 1024, "%m", tm_now); + pre_replace(tmp, "MM", buf); + + strftime(buf, 1024, "%Y", tm_now); + pre_replace(tmp, "YYYY", buf); + + strftime(buf, 1024, "%y", tm_now); + pre_replace(tmp, "YY", buf); + + strftime(buf, 1024, "%w", tm_now); + pre_replace(tmp, "WW", buf); + + strftime(buf, 1024, "%W", tm_now); + pre_replace(tmp, "WOY", buf); + + // if its a link then expand it. + reps = readlink(tmp, buf, 1024); + + if (reps != -1) { + if (buf[0] == '/') { + strncpy(tmp, buf, reps); + buf[reps] = 0; + } + else { + tmpp= strrchr(tmp, '/'); + if (!tmpp) + quit(" * Symlink expansion error.."); + + strncpy(tmpp + 1, buf, reps); + *(tmpp + 1 + reps) = 0; + } + } + + if (stat(tmp, &st) == -1) { + sprintf(buf, + " * Hm, destination section's path (%s) doesnt exist ?\n", + tmp); + + quit(buf); + } + + return strdup(tmp); +} + + + +int pre_handler(int argc, char *argv[]) { + hashtable_t *env, *cfg; + strlist_t *groups; + char *dest_section, *destpath; + struct stat st; + char source[1024], destination[1024], *tmp, *group; + char buf[1024]; + int rc; + + env = get_context(); + cfg = get_config(); + + pre_log("START", "%s %s %s", ht_get(env, PROPERTY_USER), argv[1], argv[2]); + + // set etcdir for the pwd functions + if (tmp = ht_get(cfg, PROPERTY_ETCDIR)) + pwd_set_etcdir(tmp); + + if (tmp = ht_get(cfg, PROPERTY_TEXT_HEAD)) + printf(tmp); + + groups = user_find_groups(ht_get(env, PROPERTY_USER)); + + if (!groups) + quit(" * Error finding your groups, go bug sysop!\n"); + + if (argc < 2) { + printf(USAGE); + + show_groupdirs(groups); + + quit(0); + } + + // check if someone are trying to fool us. + if (strchr(argv[1], '/')) + quit(" * You cant give paths in releasename ('/' not allowed)!\n"); + + char *sourcebis = getcwd(NULL, 0); + + // check if we are in a position to pre. + group = group_find_by_dir(groups, sourcebis); + + if (!group) { + printf(" * You are not in the group-dir of any of your groups.\n\n"); + + show_groupdirs(groups); + + quit(0); + } + + pre_log("GROUP", "%s %s", sourcebis, group); + + printf(" * Looks like this is going to be a %s pre..\n", group); + ht_put(env, PROPERTY_GROUP, group); + + // check if we have chosen a valid destination for our pre. + dest_section = section_find_by_name(group, argc > 2 ? argv[2] : 0); + + if (!dest_section) { + show_groupdirs(groups); + + quit(0); + } + + printf(" * Destination for pre will be the %s section..\n", dest_section); + ht_put(env, "section", dest_section); + + destpath = section_expand_path(dest_section); + ht_put(env, "RESOLVEDDESTINATION", destpath); + + strcpy(source, sourcebis); + strcat(source, "/"); + strcat(source, argv[1]); + + // check if source dir is okay. + if ((stat(source, &st) == -1) || !S_ISDIR(st.st_mode)) { + sprintf(source, " * Hm, '%s' doesnt exist or isnt a dir ?\n", + argv[1]); + quit(source); + } + + // touch the source. + touch_dir(source); + + // check if destination dir exists. + sprintf(destination, "%s/%s", destpath, argv[1]); + + rc = stat(destination, &st); + + // try rename if requested + if ((rc == 0) && (argc > 3) && (!strcasecmp(argv[3], "force"))) { + + sprintf(buf, "%s_TRADING", destination); + rc = rename(destination, buf); + + if (rc == 0) + printf(" + Renamed existing to %s_TRADING ..\n", argv[1]); + else + printf(" ! Failed rename existing to %s_TRADING ..\n", argv[1]); + } + + // check if destination exists. + if (stat(destination, &st) == -1) + pre(dest_section, destination, source, argv[1], group, argv); + else { + sprintf(source, " * Hm destination already exists. You're too late with pre!\n + Use SITE PRE %s %s FORCE to force pre.\n (this will rename the existing dir, which you can then nuke or wipe afterwards!)\n"); + quit(source); + } + + // log DONE: "" "" "" "" + //slv added: "" + pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", + ht_get(env, PROPERTY_USER), group, + argv[1], destpath, id3_genre); + return 0; +} + +/* + * slv 02082012 - reads last 128 bytes of mp3 and extracts genre tag + * thanks to movEAX_444 (devshed.com) for his code example + */ + +int get_mp3_genre(const char* filename) { + FILE *fp; + char mp3_fbuf[2]; + if (!(fp=fopen(filename,"rb"))) { + return 1; + } + if (fseek(fp,-128,SEEK_END)) { + printf("<128 !"); + return 1; + } else { + fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; + id3_genre_num[0]=255; + if (!strcmp((const char *)"TAG",(const char *)mp3_fbuf)) { + fseek(fp, -1, SEEK_END); + fread(id3_genre_num,1,1,fp); + if(id3_genre_num[0] != '\0' && id3_genre_num[0] > 0 && id3_genre_num[0] < genre_count) { + id3_genre = genre_s[id3_genre_num[0]]; + } + } + } +} + +/* + * Initialize the environment. + */ +int pre_init() { + hashtable_t *tmp; + char *sanity; + + // load config. + tmp = get_config(); + ht_load_prop(tmp, PRE_CONFIGFILE, '='); + + // lame check on environment. prevents idiots from sending me + // 'why does it segv when i run it ???' questions. + sanity = getenv("TAGLINE"); + if (!sanity) { + printf("Did not find environment for glftpd, please run only from within glftpd as 'site' command!\n"); + exit(1); + } + + // put env variables into the context. + tmp = get_context(); + ht_put(tmp, PROPERTY_USER, getenv("USER")); + ht_put(tmp, PROPERTY_TAGLINE, getenv("TAGLINE")); + ht_put(tmp, PROPERTY_USERGROUP, getenv("GROUP")); +} + + +/* + * Main method. + */ +int main(int argc, char *argv[]) { + int rc; + + pre_init(); + + rc = pre_handler(argc, argv); + + quit(0); + + // never reached. + return 0; +} + + +void quit(char *s, ...) { + hashtable_t *cfg = get_config(); + char *tmp; + va_list va; + + if (s) { + va_start(va, s); + + vprintf(s, va); + va_end(va); + } + + if (tmp = ht_get(cfg, PROPERTY_TEXT_TAIL)) + printf(tmp, VERSION); + + exit(0); +} diff --git a/src/pre/foo-pre.h b/src/pre/foo-pre.h index d2fb68c..08fc753 100644 --- a/src/pre/foo-pre.h +++ b/src/pre/foo-pre.h @@ -26,8 +26,6 @@ #include #include -typedef unsigned short int ushort; - #define PRE_CONFIGFILE "/etc/pre.cfg" #define PRE_LOGFILE "/ftp-data/logs/foo-pre.log" diff --git a/src/pre/modules/mod_chmod.c b/src/pre/modules/mod_chmod.c index 095e6fb..b5e5719 100644 --- a/src/pre/modules/mod_chmod.c +++ b/src/pre/modules/mod_chmod.c @@ -25,7 +25,6 @@ */ #include -#include // project includes #include "mod_chmod.h" diff --git a/src/pre/modules/mod_symlink.c b/src/pre/modules/mod_symlink.c index 99b974b..a3e9fa0 100644 --- a/src/pre/modules/mod_symlink.c +++ b/src/pre/modules/mod_symlink.c @@ -25,7 +25,7 @@ */ #include -#include + // project includes #include "mod_symlink.h" #include "../foo-pre.h" diff --git a/src/pre/modules/mp3info-0.8.5a/Makefile b/src/pre/modules/mp3info-0.8.5a/Makefile index d62fea4..e421e2c 100644 --- a/src/pre/modules/mp3info-0.8.5a/Makefile +++ b/src/pre/modules/mp3info-0.8.5a/Makefile @@ -37,7 +37,6 @@ mandir = $(prefix)/man/man1 PROG = mp3info SRCS = mp3info.c textfunc.c mp3curs.c mp3tech.c OBJS = mp3info.o textfunc.o mp3curs.o mp3tech.o -XSRC = gmp3info.c XOBJ = mp3tech.o RM = /bin/rm INSTALL = /usr/bin/install -c @@ -47,21 +46,18 @@ LIBS = -lncurses CC = gcc CFLAGS = -g -O2 -Wall -fPIC -all: mp3info gmp3info doc +all: mp3info doc doc: mp3info.txt mp3info: $(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) -gmp3info: $(XSRC) $(XOBJ) - $(CC) $(XSRC) $(CFLAGS) -o $@ $(XOBJ) `pkg-config --cflags --libs gtk+-2.0` - mp3info.txt: mp3info.1 groff -t -e -mandoc -Tascii mp3info.1 | col -bx > mp3info.txt clean: - $(RM) -f $(OBJS) $(XOBJ) mp3info gmp3info core + $(RM) -f $(OBJS) $(XOBJ) mp3info core dist: clean doc @@ -73,15 +69,10 @@ install-mp3info: mp3info $(INSTALL) mp3info $(bindir)/mp3info $(INSTALL) mp3info.1 $(mandir)/mp3info.1 -install-gmp3info: gmp3info - $(STRIP) gmp3info - $(INSTALL) gmp3info $(bindir)/gmp3info - -install: install-mp3info install-gmp3info +install: install-mp3info uninstall: rm -f $(bindir)/mp3info - rm -f $(bindir)/gmp3info rm -f $(mandir)/mp3info.1 diff --git a/src/pre/modules/mp3info-0.8.5a/Makefileh b/src/pre/modules/mp3info-0.8.5a/Makefileh new file mode 100644 index 0000000..47d2edf --- /dev/null +++ b/src/pre/modules/mp3info-0.8.5a/Makefileh @@ -0,0 +1,88 @@ +# Makefile for MP3Info and GMP3Info +# +# Copyright (C) 2000-2006 Cedric Tefft +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# *************************************************************************** +# +# This program is based in part on: +# +# * MP3Info 0.5 by Ricardo Cerqueira +# * MP3Stat 0.9 by Ed Sweetman and +# Johannes Overmann +# + +# bindir = where binaries get installed (default = /usr/local/bin) +# mandir = where the manual page gets installed (default = /usr/local/man/man1) + +prefix=/usr/local +bindir=${prefix}/bin +mandir = $(prefix)/man/man1 + +# No changes necessary below this line + +PROG = mp3info +SRCS = mp3info.c textfunc.c mp3curs.c mp3tech.c +OBJS = mp3info.o textfunc.o mp3curs.o mp3tech.o +#XSRC = gmp3info.c +XOBJ = mp3tech.o +RM = /bin/rm +INSTALL = /usr/bin/install -c +STRIP = strip + +LIBS = -lncurses +CC = gcc +CFLAGS = -g -O2 -Wall + +#all: mp3info gmp3info doc +all: mp3info doc + +doc: mp3info.txt + +mp3info: $(OBJS) + $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) + +gmp3info: $(XSRC) $(XOBJ) + $(CC) $(XSRC) $(CFLAGS) -o $@ $(XOBJ) `pkg-config --cflags --libs gtk+-2.0` + +mp3info.txt: mp3info.1 + groff -t -e -mandoc -Tascii mp3info.1 | col -bx > mp3info.txt + +clean: + $(RM) -f $(OBJS) $(XOBJ) mp3info gmp3info core + +dist: clean doc + +distclean: clean + $(RM) -f mp3info.txt + +install-mp3info: mp3info + $(STRIP) mp3info + $(INSTALL) mp3info $(bindir)/mp3info + $(INSTALL) mp3info.1 $(mandir)/mp3info.1 + +install-gmp3info: gmp3info + $(STRIP) gmp3info + $(INSTALL) gmp3info $(bindir)/gmp3info + +install: install-mp3info install-gmp3info + + +uninstall: + rm -f $(bindir)/mp3info + rm -f $(bindir)/gmp3info + rm -f $(mandir)/mp3info.1 + diff --git a/src/pre/mp3genre/compile.sh b/src/pre/mp3genre/compile.sh new file mode 100755 index 0000000..6b01d36 --- /dev/null +++ b/src/pre/mp3genre/compile.sh @@ -0,0 +1,4 @@ +#!/bin/sh +CC=`which gcc` +if [ -f mp3genre.o ]; then rm mp3genre.o; fi +$CC -c mp3genre.c diff --git a/src/pre/mp3genre/mp3genre.c b/src/pre/mp3genre/mp3genre.c new file mode 100644 index 0000000..bd1c9c0 --- /dev/null +++ b/src/pre/mp3genre/mp3genre.c @@ -0,0 +1,38 @@ +/* + * slv 02082012 - mp3genre.c: + * + * reads last 128 bytes of mp3 and extracts genre tag + * ph33r my ugly "code" ;o + * + * this file is based in part on: + * + * * MP3Info 0.5 by Ricardo Cerqueira + * * MP3Stat 0.9 by Ed Sweetman and + * Johannes Overmann + * +*/ + +#include "mp3genre.h" + +int get_mp3_genre(const char* filename) { + FILE *fp; + unsigned char id3_genre_num[1]; + char *id3_genre = "n/a"; + char mp3_fbuf[2]; + if (!(fp=fopen(filename,"rb"))) { + return 1; + } + if (fseek(fp,-128,SEEK_END)) { + return 1; + } else { + fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; + id3_genre_num[0]=255; + if (!strcmp((const char *)"TAG",(const char *)mp3_fbuf)) { + fseek(fp, -1, SEEK_END); + fread(id3_genre_num,1,1,fp); + if(id3_genre_num[0] != '\0' && id3_genre_num[0] > 0 && id3_genre_num[0] < genre_count) { + id3_genre = genre_s[id3_genre_num[0]]; + } + } + } +} diff --git a/src/pre/mp3genre/mp3genre.h b/src/pre/mp3genre/mp3genre.h new file mode 100644 index 0000000..06f9da9 --- /dev/null +++ b/src/pre/mp3genre/mp3genre.h @@ -0,0 +1,50 @@ +/* + * slv 02082012 - headers for mp3genre.c + * + * from pzs-ng zipscript/src/multimedia.c + * http://www.pzs-ng.com + * +*/ +#include + +char *genre_s[] = { + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" +}; +unsigned char genre_count=149; diff --git a/src/pre/pre.cfg b/src/pre/pre.cfg index db8b2d2..ddd9bdb 100644 --- a/src/pre/pre.cfg +++ b/src/pre/pre.cfg @@ -111,7 +111,7 @@ group.DEFAULT.ratio=USERFILE # In the 'dir' property you can use the following macros: # # DD - day (01-31), MM - month (01-12), YYYY - year 4 digits, YY - year 2 digits -# WW - week (00-53), CW or KW - Calendar week (00-53) +# WW - week (00-53) # # diff --git a/src/pre/standalone_mp3genre/mp3genre b/src/pre/standalone_mp3genre/mp3genre new file mode 100755 index 0000000000000000000000000000000000000000..46bfd4ba7f08790f3a44195624edfe30f9b09c87 GIT binary patch literal 10565 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 literal 0 HcmV?d00001 diff --git a/src/pre/standalone_mp3genre/mp3genre.c b/src/pre/standalone_mp3genre/mp3genre.c new file mode 100644 index 0000000..b88cd4e --- /dev/null +++ b/src/pre/standalone_mp3genre/mp3genre.c @@ -0,0 +1,79 @@ +/* + slv 02082012 - mp3 genre output added to PRE (instead of as a module) + reads last 128 bytes of mp3 and extracts genre tag + thanks to movEAX_444 (devshed.com) for his code example +*/ + +#include + +char *genre_s[] = { + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" +}; +unsigned char genre_count = 149; +char *id3_genre = "n/a"; +unsigned char id3_genre_num[1]; + +int main(int argc, char *argv[]) { + const char* filename=argv[1]; + get_mp3_genre(filename); + printf("%s (%d)\n",id3_genre,id3_genre_num[0]); +} + +int get_mp3_genre(const char* filename) { + FILE *fp; + char mp3_fbuf[2]; + if (!(fp=fopen(filename,"rb"))) { + return 1; + } + if (fseek(fp,-128,SEEK_END)) { + printf("<128 !"); + return 1; + } else { + fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; + id3_genre_num[0]=255; + if (!strcmp((const char *)"TAG",(const char *)mp3_fbuf)) { + fseek(fp, -1, SEEK_END); + fread(id3_genre_num,1,1,fp); + if(id3_genre_num[0] != '\0' && id3_genre_num[0] > 0 && id3_genre_num[0] < genre_count) { + id3_genre = genre_s[id3_genre_num[0]]; + } + } + } +} diff --git a/src/pre/standalone_mp3genre/mp3genre.c.new b/src/pre/standalone_mp3genre/mp3genre.c.new new file mode 100644 index 0000000..c77b967 --- /dev/null +++ b/src/pre/standalone_mp3genre/mp3genre.c.new @@ -0,0 +1,116 @@ +/* + slv 02082012 - mp3 genre output added to PRE (instead of as a module) + reads last 128 bytes of mp3 and extracts genre tag + thanks to movEAX_444 (devshed.com) for his code example +*/ + +#include + +char *genre_s[] = { + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" +}; +unsigned char genre_count = 149; +char *id3_genre = "n/a"; +int id3_genre_num = 255; + +int main(int argc, char *argv[]) { + const char* filename=argv[1]; + get_mp3_genre(filename); + printf("%s (%d)\n",id3_genre,id3_genre_num); +} + +int get_mp3_genre(const char* filename) { + FILE *fp; + //char mp3_fbuf[128]; + char mp3_fbuf[4]; + if (!(fp=fopen(filename,"rb"))) { + return 1; + } + if (fseek(fp,-128,SEEK_END)) { + return 1; + } + + //mp3info + char title[31]; + char artist[31]; + char album[31]; + char year[5]; + char comment[31]; + unsigned char track[1]; + unsigned char genre[1]; + fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; + genre[0]=255; + fseek(fp, -125, SEEK_END); + fread(title,1,30,fp); title[30] = '\0'; + fread(artist,1,30,fp); artist[30] = '\0'; + fread(album,1,30,fp); album[30] = '\0'; + fread(year,1,4,fp); year[4] = '\0'; + fread(comment,1,30,fp); comment[30] = '\0'; + if(comment[28] == '\0') { + track[0] = comment[29]; + } + fread(genre,1,1,fp); + printf("(%s)\n",title); + printf("(%s)\n",artist); + printf("(%s)\n",album); + printf("(%s)\n",year); + printf("(%s)\n",comment); + printf("(%s)\n",track); +// printf("genre s (%s)\n",genre[0]); + printf("genre d (%d)\n",genre[0]); + //mp3info + + /* + printf("(%d)\n",mp3_fbuf[125]); + printf("(%d)\n",mp3_fbuf[126]); + printf("(%d)\n",mp3_fbuf[126]); + printf("(%d)\n",mp3_fbuf[127]); + printf("(%d)\n",mp3_fbuf[128]); + printf("(%d)\n",mp3_fbuf[129]); + printf("(%d)\n",mp3_fbuf[130]); + fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; + if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { + return 1; + } + id3_genre_num = mp3_fbuf[127]; if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } + printf("(%d)\n",id3_genre_num); + id3_genre = genre_s[id3_genre_num]; + */ +} diff --git a/src/pre/standalone_mp3genre/mp3genre.c.old b/src/pre/standalone_mp3genre/mp3genre.c.old new file mode 100644 index 0000000..5dfc2db --- /dev/null +++ b/src/pre/standalone_mp3genre/mp3genre.c.old @@ -0,0 +1,74 @@ +/* + slv 02082012 - mp3 genre output added to PRE (instead of as a module) + reads last 128 bytes of mp3 and extracts genre tag + thanks to movEAX_444 (devshed.com) for his code example +*/ + +#include + +char *genre_s[] = { + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" +}; +unsigned char genre_count=149; +char *id3_genre; +int id3_genre_num; + +int main(int argc, char *argv[]) { + const char* filename=argv[1]; + get_mp3_genre(filename); + printf("%s (%d)\n",id3_genre,id3_genre_num); +} + +int get_mp3_genre(const char* filename) { + FILE *fp; + char mp3_fbuf[128]; + if (!(fp=fopen(filename,"rb"))) { + return 1; + } + if (fseek(fp,-128,SEEK_END)) { + return 1; + } + fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; + if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { + return 1; + } + id3_genre_num = mp3_fbuf[127]; if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } + id3_genre = genre_s[id3_genre_num]; +} diff --git a/src/pre/standalone_mp3genre/mp3genre_test1 b/src/pre/standalone_mp3genre/mp3genre_test1 new file mode 100755 index 0000000000000000000000000000000000000000..afb2995cf58285bf88e6d731a56d70e1d3847d02 GIT binary patch literal 7386 zcmcIpYit}>6~4RcS00VsJX*K4$e?aS65)-Vm)w$8~9mh0r8G zJgRHA%I{tll{jln)uV~)qj+QzFRyrc#bbSv3Wl)e_EFpD*PzO4@awS1)=7zWd0o)5 zFMxGlv*VOLr3yM#qf1ZLL1_uWntA)cqk4W`;d*XKCi-@6-;#_sCKIV#zA@jjvvKG4 zP&OUfD(hc|0;!3edwONj+#jo9QS7z&(O6P`)s^>u+p}e=IhecHVdgI%%l>4fnewXf zV;G{`W3{Z(9OyTml!Sd2lG5GP8Cp zW1FTxH}_Mo?i2&*VJjtuGl`TvAO^CQ^|TnsSg|-57aKMA|}y{^KQCyl~8#^}{s-924XlX|r- zjHz?oQcYc`)Wz(t;P~PAIMvY@tMs7&T848 z5 zJCZ&M_xPpr0|Nu0+V#iK1R;8j(TAo22!y!y>Is6VZZ*FdMx0B!#$DKMIy>W^% zr^3@;#-8!&4qS|}@U&5Q!zfJ6Uih?FGz#GvWAxb>k-LAQMP~P^Y+3H?2z(}FPdDHS z^31E$&&Jfn5p)ohl7a`K-#^h^hTb|)f16liy)(v%Z<<${DXQ^x|=IijRJtOmW z_2lkCav$7wwdPhJxu24qwl)zh6XWeqP(_p?=8h=W+Oxk`{MxgZk)nXLXQwAJU>E+1 zXinQ+2C?=`_)o_szxhSd-wEHWJ=1%0VwBvdha9(O;WpQBF?EWC_E9w?7Gns*>tV7 z@JUzUwsG#0Kv&_-+1LMru0H;r-O&6OS`U%JzaoX(?S-4I#kFr4qvtWF<}&XZV^0Jz zRg=NG$XGmBA3;isjM>4Bk+CDeCQPFiObaRV^A$5Rih3BM9~bR=UZdNdnwN7mnCD}d zuOAn4AE+7VtcBTHv{xDj;9`{1l#Cd*`5jIkA9Q3kIPl|D=J^X z|98dDdEP)jRO9q>rOzmRQRz37_VPO0+8)$4wp)FPSW4R-+8)}`*s{q<2ocI29I8nK*|bug6+_2m+HgiFLlh^)a_c2I=khf^re(RRkk zIb>zBiFB&OFp-zBk})Ev)Ns-kp+qWyt8L|R9e{znbUbFqM93O62QslC%N&e@%a#cB z+v!Xe0Uh;JKQd8fY$(x>fN2ziOGuXOl+%}mcYk_l$V%DXj`|<%`@o|)!}C@6byyGu z&>r9xo?ndJj|9zK<~R6tSPRebnzR-!ye=7OM#9bC<=17_E>$4yCvNfb4P?^u6vvPH zbyz|~70@It=beO-yso&Mc3`)$R+!KG!?*&t{Z*S^=k&BejwG zj`_TfzXpu<4(9WIbURmu%psm{wWWi-<$b;I`|pD&Fn4@@53N@Z9PBU2EpIeyE`!DB_FA3{Ak>=PkLtUO%@jrEgNHdRNvU%+= zM!K6Ga3N8(v3vpPE%ch2#$c$GL^7Oxh3e{z=;DVj6n6&4W^OqLqg=mD0r&YA zk0Tuo3I7@q@zm%2C2;yQ;qxz^Kg)q@V)1-f2fW<5?k0(^61u8CZ(|QAoS$>38YDV! zO{PjOdzZlbWjUq3WF3uE%?4JeW-P z#ge9cSv6z1yugd-aMH4^cxdOg?ahKR%tSm-);1i`)BA2bH#BsZ+bIb>T5!OHfPG0cjfB&EMY!!$lPxo#Oa-tX-mek zSu5*&lkgNKi;!O~JQ?0^7M|>`y@(r6q|98_qUN|N4I`U22V<#t(n5|LEbch@A%v + +/* +typedef struct _id3tag +{ + unsigned char genre; +} id3tag; + +int main(int argc, char **argv) +{ + id3tag ID3; + if(!ReadID3("test.mp3",&ID3)) + printf("error!\n"); + printf("Genre %d\n",ID3.genre); + return 0; +} +*/ +//int ReadID3(const char* Filename, id3tag *ID3Tag) + +int main() +{ + const char* filename="test.mp3"; + FILE *fp; +// unsigned char genre; + char fbuf[128]; + if (!(fp=fopen(filename,"rb"))) { + printf("DEBUG: doesnt exist %s\n",filename); + return 1; + } + if (fseek(fp,-128,SEEK_END)) { + printf("DEBUG: >128 %s\n",filename); + return 1; + } else { + +/* + fread(fbuf,1,3,fp); fbuf[3] = '\0'; + printf("DEBUG: fbuf 0 1 2 3 4 %c %c %c %c %c\n", fbuf[0], fbuf[1], fbuf[2], fbuf[3], fbuf[4]); + char genre[0]; + char title[255]; + char artist[255]; + char album[255]; + char year[255]; + char comment[255]; + char track[255]; + if (!strcmp((const char *)"TAG",(const char *)fbuf)) { + printf("DEBUG: TAG match\n"); + fseek(fp, -125, SEEK_END); + fread(title,1,30,fp); title[30] = '\0'; + fread(artist,1,30,fp); artist[30] = '\0'; + fread(album,1,30,fp); album[30] = '\0'; + fread(year,1,4,fp); year[4] = '\0'; + fread(comment,1,30,fp); comment[30] = '\0'; + if(comment[28] == '\0') { + track[0] = comment[29]; + } + fread(genre,1,1,fp); + } + printf("DEBUG: Title %s\n",title); + printf("DEBUG: Artist %s\n",artist); + printf("DEBUG: Album %s\n",album); + printf("DEBUG: Year %s\n",year); + printf("DEBUG: Comment %s\n",comment); + printf("DEBUG: Track %s\n",track); + printf("DEBUG: Genre %s\n",genre); +*/ + unsigned char genre; + + fread(fbuf,sizeof(char),sizeof(fbuf),fp); + if(!(fbuf[0]=='T' && fbuf[1] == 'A' && fbuf[2] == 'G')) { + printf("DEBUG: no tag %s\n",filename); + return 0; + } + printf("DEBUG: %c %c %c\n",fbuf[0], fbuf[1], fbuf[2]); + if(fbuf[127] > 0 && fbuf[127] < 256) { + genre = fbuf[127]; + printf("Genre %d\n",genre); + } + else { + genre = 255; + printf("DEBUG: Genre above 255 %d\n",genre); + } + return 1; + } +} + diff --git a/src/pre/standalone_mp3genre/mp3genre_test2 b/src/pre/standalone_mp3genre/mp3genre_test2 new file mode 100755 index 0000000000000000000000000000000000000000..42d4006610988bcaa26608a4b54a0b2aec5e4dbb GIT binary patch literal 10547 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 + +char *genre_s[] = { + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" +}; +unsigned char genre_count=149; +char *id3_genre; +int id3_genre_num; + +int main(int argc, char *argv[]) { + const char* filename=argv[1]; + get_mp3_genre(filename); + //printf("%s (%d)\n",id3_genre,id3_genre_num); + printf("(%d)\n",id3_genre_num); +} + +int get_mp3_genre(const char* filename) { + FILE *fp; + char mp3_fbuf[128]; + if (!(fp=fopen(filename,"rb"))) { + return 1; + } + if (fseek(fp,-128,SEEK_END)) { + return 1; + } + fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; + if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { + return 1; + } + id3_genre_num = mp3_fbuf[127]; //if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } + //id3_genre = genre_s[id3_genre_num]; +} diff --git a/src/pre/standalone_mp3genre/mp3genre_test3 b/src/pre/standalone_mp3genre/mp3genre_test3 new file mode 100755 index 0000000000000000000000000000000000000000..ef525151bb0eb1492f312395075bbe43da3cb01e GIT binary patch literal 10542 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 + +char *genre_s[] = { + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" +}; +unsigned char genre_count=149; +char *id3_genre; +int id3_genre_num; + +int main(int argc, char *argv[]) { + const char* filename="/jail/workspace/footools-x86-x64-20111102-mp3genre-try/src/pre/mp3info/test.mp3"; + get_mp3_genre(filename); + printf("%s (%d)\n",id3_genre,id3_genre_num); +} + +int get_mp3_genre(const char* filename) { + FILE *fp; + char mp3_fbuf[128]; + if (!(fp=fopen(filename,"rb"))) { + return 1; + } + if (fseek(fp,-128,SEEK_END)) { + return 1; + } + fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; + if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { + return 1; + } + id3_genre_num = mp3_fbuf[127]; if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } + id3_genre = genre_s[id3_genre_num]; +} diff --git a/src/pre/standalone_mp3genre/mp3genre_test4 b/src/pre/standalone_mp3genre/mp3genre_test4 new file mode 100755 index 0000000000000000000000000000000000000000..7364581b0df624be14838b6b002232b7cb2a1aeb GIT binary patch literal 7204 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 GR{sHo_uv`; literal 0 HcmV?d00001 diff --git a/src/pre/standalone_mp3genre/mp3genre_test4.c b/src/pre/standalone_mp3genre/mp3genre_test4.c new file mode 100644 index 0000000..3f540f2 --- /dev/null +++ b/src/pre/standalone_mp3genre/mp3genre_test4.c @@ -0,0 +1,38 @@ +#include + +typedef struct _id3tag +{ + unsigned char genre; +} id3tag; + +int ReadID3(const char* Filename, id3tag *ID3Tag);//0==error, 1==sucess + +int main(int argc, char **argv) +{ + id3tag ID3; + if(!ReadID3("test.mp3",&ID3)) + printf("error!\n"); + printf("Genre %d\n",ID3.genre); + return 0; +} + + +int ReadID3(const char* Filename, id3tag *ID3Tag) +{ + FILE *fp=fopen(Filename,"rb"); + char buffer[128]; + int x; + fseek(fp,-128,SEEK_END); + fread(buffer,sizeof(char),sizeof(buffer),fp); + if(!(buffer[0]=='T' && buffer[1] == 'A' && buffer[2] == 'G')) + { + return 0; + } + if(buffer[127] > 0 && buffer[127] < 256) + //if its between 1-255, put it + ID3Tag->genre = buffer[127]; + else + //255 means unused + ID3Tag->genre = 255; + return 1; +} diff --git a/src/pre/standalone_mp3genre/mp3genre_test5.c b/src/pre/standalone_mp3genre/mp3genre_test5.c new file mode 100644 index 0000000..703cff9 --- /dev/null +++ b/src/pre/standalone_mp3genre/mp3genre_test5.c @@ -0,0 +1,24 @@ +#include + +#include "mp3tech.h" + +int get_id3 (mp3info *mp3) { + int retcode=0; + char fbuf[4]; + if(mp3->datasize >= 128) { + if(fseek(mp3->file, -128, SEEK_END )) { + fprintf(stderr,"ERROR: Couldn't read last 128 bytes of %s!!\n",mp3->filename); + retcode |= 4; + } else { + fread(fbuf,1,3,mp3->file); fbuf[3] = '\0'; + mp3->id3.genre[0]=255; + if (!strcmp((const char *)"TAG",(const char *)fbuf)) { + mp3->id3_isvalid=1; + mp3->datasize -= 128; + fseek(mp3->file, -125, SEEK_END); + fread(mp3->id3.genre,1,1,mp3->file); + } + } + } + return retcode; +} diff --git a/src/reset/foo-reset b/src/reset/foo-reset new file mode 100755 index 0000000000000000000000000000000000000000..c0751048884335febf5cc9c2c7135a26ed3a905b GIT binary patch literal 40699 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 literal 0 HcmV?d00001 diff --git a/src/sfv/createsfv b/src/sfv/createsfv new file mode 100755 index 0000000000000000000000000000000000000000..de1d769374ef99c36f46adb224e1cd1b82fbc885 GIT binary patch literal 21984 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%0A>Sk!TPllxD5CL@DtpP_5$Z(kI@M1{1wt;qf`V; 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 -#include -#include #define TP_DEF_MIN 5 #define TP_DEF_MAX 10 diff --git a/src/util/date.h b/src/util/date.h index 0d9b300..ba5d551 100644 --- a/src/util/date.h +++ b/src/util/date.h @@ -24,8 +24,6 @@ #define _date_h #include -#include -#include struct date { int mon; diff --git a/src/util/linereaderbuffer.h b/src/util/linereaderbuffer.h index 5c81fc5..a9be955 100644 --- a/src/util/linereaderbuffer.h +++ b/src/util/linereaderbuffer.h @@ -19,8 +19,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include - struct linereaderbuffer { char *data; int offset; diff --git a/src/who/spy b/src/who/spy new file mode 100755 index 0000000000000000000000000000000000000000..30dd7675d57dbdc8338a491136d5b5f23dcc99b5 GIT binary patch literal 35229 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 uHOP?pFLfk3Q>wAS #include -#include - #include "spy_view.h" #include "spy.h" #include "../lib/who.h" diff --git a/src/zip/zipcheck b/src/zip/zipcheck new file mode 100755 index 0000000000000000000000000000000000000000..2f1afeb3c2a69ab187bf2902000d0abdc0663306 GIT binary patch literal 65094 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 T>JCzDwXj%dpKR+qi{k$SY3wYg literal 0 HcmV?d00001 From 888fe7903ffc0b5524a5b9da5746192ac2ad6a40 Mon Sep 17 00:00:00 2001 From: silver Date: Sun, 9 Apr 2017 01:04:08 +0200 Subject: [PATCH 05/23] cleaned up files created makefile for mp3genre, fixed a few compiler warnings merged commits 2014/15 commits from glftpd/foo-tools.git updated mp3 genres from pzs-ng/zipscript/src/multimedia.c --- doc/README.foo-pre | 2 +- foo-pre-destfix.patch | 11 - footools-mp3genre.patch | 224 - src/CHANGES | 11 + src/Makefile | 43 - src/Makefile.config | 2 +- src/Makefile.in | 12 +- src/bouncer/Makefile | 3 +- src/bouncer/Makefile.in | 3 +- src/collection/sortedlist.h | 2 + src/config.h | 308 - src/config.log | 275 - src/config.status | 1151 -- src/configure | 9693 +++++++---------- src/lib/common.h | 1 + src/lib/dirlist.h | 1 + src/lib/genlistc.h | 1 + src/lib/gllogs.c | 2 +- src/lib/gllogs.h | 2 + src/lib/macro.h | 3 + src/lib/pwdfile.c | 1 + src/lib/sfv.h | 1 + src/lib/sockop.h | 2 + src/lib/stringtokenizer.c | 2 + src/lib/who.c | 2 +- src/lib/who.h | 2 + src/nfo/cleaner.c | 2 + src/nfo/nfocleaner | Bin 26571 -> 0 bytes src/nukes/foo-nukes | Bin 22723 -> 0 bytes src/pre/Makefile | 6 +- src/pre/Makefile.in | 8 +- src/pre/Makefile.in_orig | 23 - src/pre/foo-pre | Bin 60849 -> 0 bytes src/pre/foo-pre.c | 8 +- src/pre/foo-pre.c.mp3genre.added | 1489 --- src/pre/foo-pre.c.mp3genre.hack.working | 1509 --- src/pre/foo-pre.h | 2 + src/pre/modules/mod_chmod.c | 1 + src/pre/modules/mod_symlink.c | 2 +- src/pre/mp3genre/Makefile | 15 + src/pre/mp3genre/Makefile.in | 15 + .../mp3genre/{compile.sh => compile.sh.bak} | 0 src/pre/mp3genre/mp3genre.h | 92 +- src/pre/pre.cfg | 2 +- src/pre/standalone_mp3genre/mp3genre | Bin 10565 -> 0 bytes src/pre/standalone_mp3genre/mp3genre.c | 79 - src/pre/standalone_mp3genre/mp3genre.c.new | 116 - src/pre/standalone_mp3genre/mp3genre.c.old | 74 - src/pre/standalone_mp3genre/mp3genre_test1 | Bin 7386 -> 0 bytes src/pre/standalone_mp3genre/mp3genre_test1.c | 91 - src/pre/standalone_mp3genre/mp3genre_test2 | Bin 10547 -> 0 bytes src/pre/standalone_mp3genre/mp3genre_test2.c | 75 - src/pre/standalone_mp3genre/mp3genre_test3 | Bin 10542 -> 0 bytes src/pre/standalone_mp3genre/mp3genre_test3.c | 74 - src/pre/standalone_mp3genre/mp3genre_test4 | Bin 7204 -> 0 bytes src/pre/standalone_mp3genre/mp3genre_test4.c | 38 - src/pre/standalone_mp3genre/mp3genre_test5.c | 24 - src/reset/foo-reset | Bin 40699 -> 0 bytes src/sfv/blehsfv | Bin 21982 -> 0 bytes src/sfv/createsfv | Bin 21984 -> 0 bytes src/thread/threadpool.h | 2 + src/util/date.h | 2 + src/util/linereaderbuffer.h | 2 + src/who/spy | Bin 35229 -> 0 bytes src/who/spy.c | 2 + src/zip/zipcheck | Bin 65094 -> 0 bytes src/zip/zipcheck.c | 2 + 67 files changed, 4264 insertions(+), 11251 deletions(-) delete mode 100644 foo-pre-destfix.patch delete mode 100644 footools-mp3genre.patch delete mode 100644 src/Makefile delete mode 100644 src/config.h delete mode 100644 src/config.log delete mode 100755 src/config.status delete mode 100755 src/nfo/nfocleaner delete mode 100755 src/nukes/foo-nukes delete mode 100644 src/pre/Makefile.in_orig delete mode 100755 src/pre/foo-pre delete mode 100644 src/pre/foo-pre.c.mp3genre.added delete mode 100644 src/pre/foo-pre.c.mp3genre.hack.working create mode 100644 src/pre/mp3genre/Makefile create mode 100644 src/pre/mp3genre/Makefile.in rename src/pre/mp3genre/{compile.sh => compile.sh.bak} (100%) mode change 100755 => 100644 delete mode 100755 src/pre/standalone_mp3genre/mp3genre delete mode 100644 src/pre/standalone_mp3genre/mp3genre.c delete mode 100644 src/pre/standalone_mp3genre/mp3genre.c.new delete mode 100644 src/pre/standalone_mp3genre/mp3genre.c.old delete mode 100755 src/pre/standalone_mp3genre/mp3genre_test1 delete mode 100644 src/pre/standalone_mp3genre/mp3genre_test1.c delete mode 100755 src/pre/standalone_mp3genre/mp3genre_test2 delete mode 100644 src/pre/standalone_mp3genre/mp3genre_test2.c delete mode 100755 src/pre/standalone_mp3genre/mp3genre_test3 delete mode 100644 src/pre/standalone_mp3genre/mp3genre_test3.c delete mode 100755 src/pre/standalone_mp3genre/mp3genre_test4 delete mode 100644 src/pre/standalone_mp3genre/mp3genre_test4.c delete mode 100644 src/pre/standalone_mp3genre/mp3genre_test5.c delete mode 100755 src/reset/foo-reset delete mode 100755 src/sfv/blehsfv delete mode 100755 src/sfv/createsfv delete mode 100755 src/who/spy delete mode 100755 src/zip/zipcheck diff --git a/doc/README.foo-pre b/doc/README.foo-pre index 7c73795..5a8033f 100644 --- a/doc/README.foo-pre +++ b/doc/README.foo-pre @@ -130,7 +130,7 @@ installation; "cp foo-pre /glftpd/bin/; cp pre.cfg /glftpd/etc/" * Set correct permissions on foo-pre, it needs setuid bit set. - "chown root /gfltpd/bin/foo-pre; chmod 4711 /glftpd/bin/foo-pre" + "chown root /glftpd/bin/foo-pre; chmod 4711 /glftpd/bin/foo-pre" * Add foo-pre in your glftpd.conf. "site_cmd PRE EXEC /bin/foo-pre" diff --git a/foo-pre-destfix.patch b/foo-pre-destfix.patch deleted file mode 100644 index 105baca..0000000 --- a/foo-pre-destfix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- foo-pre.c_orig 2011-11-02 19:24:58.000000000 +0100 -+++ foo-pre.c 2013-12-20 22:11:27.903580112 +0100 -@@ -1212,6 +1212,7 @@ - if (buf[0] == '/') { - strncpy(tmp, buf, reps); - buf[reps] = 0; -+ tmp[reps] = 0; - } - else { - tmpp= strrchr(tmp, '/'); - diff --git a/footools-mp3genre.patch b/footools-mp3genre.patch deleted file mode 100644 index 81f71ba..0000000 --- a/footools-mp3genre.patch +++ /dev/null @@ -1,224 +0,0 @@ -diff -ru --unidirectional-new-file footools-x86-x64-20111102/CHANGELOG footools-x86-x64-20111102-mp3genre/CHANGELOG ---- footools-x86-x64-20111102/CHANGELOG 2013-12-20 21:09:04.000000000 +0100 -+++ footools-x86-x64-20111102-mp3genre/CHANGELOG 2013-12-20 21:09:04.000000000 +0100 -@@ -70,3 +70,6 @@ - * Fixed chroot gentoo bug for foo-pre. - * Added a little help file. - Nov 2 2011: * Fixed a bug about "you're not in any of your predir" :) -+ -+//slv -+Aug 08 2012: * MP3 genre added to PRE output (instead of in mod_idmp3) -diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/CHANGES footools-x86-x64-20111102-mp3genre/src/CHANGES ---- footools-x86-x64-20111102/src/CHANGES 2013-12-20 21:09:04.000000000 +0100 -+++ footools-x86-x64-20111102-mp3genre/src/CHANGES 2013-12-20 21:09:04.000000000 +0100 -@@ -70,3 +70,6 @@ - * Fixed chroot gentoo bug for foo-pre. - * Added a little help file. - Nov 2 2011: * Fixed a bug about "you're not in any of your predir" :) -+ -+//slv -+Aug 08 2012: * MP3 genre added to PRE output (instead of in mod_idmp3) -diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/foo-pre.c footools-x86-x64-20111102-mp3genre/src/pre/foo-pre.c ---- footools-x86-x64-20111102/src/pre/foo-pre.c 2013-12-20 21:09:04.000000000 +0100 -+++ footools-x86-x64-20111102-mp3genre/src/pre/foo-pre.c 2013-12-20 21:09:04.000000000 +0100 -@@ -20,6 +20,7 @@ - */ - /* - * foo.Pre [C-version] (c) tanesha team, -+ slv 02082012 - mp3 genre added to PRE output (instead of in mod_idmp3) - */ - #include - #include -@@ -44,7 +45,8 @@ - #include "foo-pre.h" - #include "gl_userfile.h" - --#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" -+//#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" -+#define VERSION "$Id: foo-pre.c,v 1.19 2012/08/03 17:46:00 sorend, slv Exp $" - #define USAGE " * Syntax: SITE PRE [SECTION]\n" - - void quit(char *s, ...); -@@ -53,6 +55,8 @@ - hashtable_t *_config = 0; - hashtable_t *_envctx = 0; - -+char *id3_genre; -+ - /* - * Acecssor method for configuration. - */ -@@ -1030,6 +1034,19 @@ - printf(" -- %10.10s: %s\n", "From", src); - printf(" -- %10.10s: %s", "To", dest); - -+ /* -+ * slv 02082012 - get filename.mp3 and call get_mp3_genre(filename). -+ */ -+ // get genre. -+ for (ftmp = files; ftmp; ftmp = ftmp->next) { -+ tmp = strrchr(ftmp->file, '.'); -+ if (!strcmp(tmp, ".mp3")) { -+ sprintf(buf, "%s/%s", src, ftmp->file); -+ get_mp3_genre(buf); -+ break; -+ } -+ } -+ - // dont forget to chown maindir - chowninfo_apply_to_file(src, chown); - -@@ -1087,6 +1104,7 @@ - pre_replace(buf, "%g", ht_get(env, PROPERTY_USERGROUP)); - pre_replace(buf, "%D", section_get_property(section, PROPERTY_SECTION_NAME)); - pre_replace(buf, "%R", rel); -+ pre_replace(buf, "%I", id3_genre); - - gl_gllog_add(buf); - -@@ -1347,10 +1365,10 @@ - } - - // log DONE: "" "" "" "" -- pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\"", -+ //slv added: "" -+ pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", - ht_get(env, PROPERTY_USER), group, -- argv[1], destpath); -- -+ argv[1], destpath, id3_genre); - return 0; - } - -diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/Makefile footools-x86-x64-20111102-mp3genre/src/pre/Makefile ---- footools-x86-x64-20111102/src/pre/Makefile 2013-12-20 21:09:04.000000000 +0100 -+++ footools-x86-x64-20111102-mp3genre/src/pre/Makefile 2013-12-20 21:09:04.000000000 +0100 -@@ -4,10 +4,10 @@ - - SRCDIR = .. - --LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o -+LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o ./mp3genre/mp3genre.o - - foo-pre: foo-pre.o $(LIBS) -- $(CC) -o $@ $< $(LIBS) -ldl -+ $(CC) -o $@ $< mp3genre/mp3genre.o $(LIBS) -ldl - - foo.Pre: foo.Pre.o - $(CC) -o $@ $< $(LIBS) -diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/Makefile.in footools-x86-x64-20111102-mp3genre/src/pre/Makefile.in ---- footools-x86-x64-20111102/src/pre/Makefile.in 2013-12-20 21:09:04.000000000 +0100 -+++ footools-x86-x64-20111102-mp3genre/src/pre/Makefile.in 2013-12-20 21:09:04.000000000 +0100 -@@ -7,7 +7,7 @@ - LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o - - foo-pre: foo-pre.o $(LIBS) -- $(CC) -o $@ $< $(LIBS) -ldl -+ $(CC) -o $@ $< mp3genre/mp3genre.o $(LIBS) -ldl - - foo.Pre: foo.Pre.o - $(CC) -o $@ $< $(LIBS) -diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/mp3genre/compile.sh footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/compile.sh ---- footools-x86-x64-20111102/src/pre/mp3genre/compile.sh 1970-01-01 01:00:00.000000000 +0100 -+++ footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/compile.sh 2013-12-20 21:09:04.000000000 +0100 -@@ -0,0 +1,4 @@ -+#!/bin/sh -+CC=`which gcc` -+if [ -f mp3genre.o ]; then rm mp3genre.o; fi -+$CC -c mp3genre.c -diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/mp3genre/mp3genre.c footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/mp3genre.c ---- footools-x86-x64-20111102/src/pre/mp3genre/mp3genre.c 1970-01-01 01:00:00.000000000 +0100 -+++ footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/mp3genre.c 2013-12-20 21:09:04.000000000 +0100 -@@ -0,0 +1,38 @@ -+/* -+ * slv 02082012 - mp3genre.c: -+ * -+ * reads last 128 bytes of mp3 and extracts genre tag -+ * ph33r my ugly "code" ;o -+ * -+ * this file is based in part on: -+ * -+ * * MP3Info 0.5 by Ricardo Cerqueira -+ * * MP3Stat 0.9 by Ed Sweetman and -+ * Johannes Overmann -+ * -+*/ -+ -+#include "mp3genre.h" -+ -+int get_mp3_genre(const char* filename) { -+ FILE *fp; -+ unsigned char id3_genre_num[1]; -+ char *id3_genre = "n/a"; -+ char mp3_fbuf[2]; -+ if (!(fp=fopen(filename,"rb"))) { -+ return 1; -+ } -+ if (fseek(fp,-128,SEEK_END)) { -+ return 1; -+ } else { -+ fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; -+ id3_genre_num[0]=255; -+ if (!strcmp((const char *)"TAG",(const char *)mp3_fbuf)) { -+ fseek(fp, -1, SEEK_END); -+ fread(id3_genre_num,1,1,fp); -+ if(id3_genre_num[0] != '\0' && id3_genre_num[0] > 0 && id3_genre_num[0] < genre_count) { -+ id3_genre = genre_s[id3_genre_num[0]]; -+ } -+ } -+ } -+} -diff -ru --unidirectional-new-file footools-x86-x64-20111102/src/pre/mp3genre/mp3genre.h footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/mp3genre.h ---- footools-x86-x64-20111102/src/pre/mp3genre/mp3genre.h 1970-01-01 01:00:00.000000000 +0100 -+++ footools-x86-x64-20111102-mp3genre/src/pre/mp3genre/mp3genre.h 2013-12-20 21:09:04.000000000 +0100 -@@ -0,0 +1,50 @@ -+/* -+ * slv 02082012 - headers for mp3genre.c -+ * -+ * from pzs-ng zipscript/src/multimedia.c -+ * http://www.pzs-ng.com -+ * -+*/ -+#include -+ -+char *genre_s[] = { -+ "Blues", "Classic Rock", "Country", "Dance", -+ "Disco", "Funk", "Grunge", "Hip-Hop", -+ "Jazz", "Metal", "New Age", "Oldies", -+ "Other", "Pop", "R&B", "Rap", -+ "Reggae", "Rock", "Techno", "Industrial", -+ "Alternative", "Ska", "Death Metal", "Pranks", -+ "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", -+ "Vocal", "Jazz+Funk", "Fusion", "Trance", -+ "Classical", "Instrumental", "Acid", "House", -+ "Game", "Sound Clip", "Gospel", "Noise", -+ "AlternRock", "Bass", "Soul", "Punk", -+ "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", -+ "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", -+ "Electronic", "Pop-Folk", "Eurodance", "Dream", -+ "Southern Rock", "Comedy", "Cult", "Gangsta", -+ "Top 40", "Christian Rap", "Pop_Funk", "Jungle", -+ "Native American", "Cabaret", "New Wave", "Psychadelic", -+ "Rave", "Showtunes", "Trailer", "Lo-Fi", -+ "Tribal", "Acid Punk", "Acid Jazz", "Polka", -+ "Retro", "Musical", "Rock & Roll", "Hard Rock", -+ "Folk", "Folk-Rock", "National Folk", "Swing", -+ "Fast Fusion", "Bebob", "Latin", "Revival", -+ "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", -+ "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", -+ "Big Band", "Chorus", "Easy Listening", "Acoustic", -+ "Humour", "Speech", "Chanson", "Opera", -+ "Chamber Music", "Sonata", "Symphony", "Booty Bass", -+ "Primus", "Porn Groove", "Satire", "Slow Jam", -+ "Club", "Tango", "Samba", "Folklore", -+ "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", -+ "Duet", "Punk Rock", "Drum Solo", "A cappella", -+ "Euro-House", "Dance Hall", "Goa", "Drum & Bass", -+ "Club House", "Hardcore", "Terror", "Indie", -+ "BritPop", "Negerpunk", "Polsk Punk", "Beat", -+ "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", -+ "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", -+ "Thrash Metal", "Anime", "JPop", "Synthpop", -+ "Unknown" -+}; -+unsigned char genre_count=149; diff --git a/src/CHANGES b/src/CHANGES index 676724c..561f622 100644 --- a/src/CHANGES +++ b/src/CHANGES @@ -70,6 +70,17 @@ Nov 1 2011: * Fixed mktime timeout on configure (thks to peakz) * Fixed chroot gentoo bug for foo-pre. * Added a little help file. Nov 2 2011: * Fixed a bug about "you're not in any of your predir" :) +Mar 31 2013: * Fixed a strncpy bug while resolving links on x64 env. which lead to a "destination section's path doesnt exist" (overflow). + +Nov 2 2013: * compilation fixes +Nov 16 2013: * deleted some generated files and update configure +Mar 9 2014: * added current mp3info version +Mar 9 2014: * added stack protection flags to compilation //slv Aug 08 2012: * MP3 genre added to PRE output (instead of in mod_idmp3) + +//glftpd-scripts +Nov 8 2014: * add calendar weeks for pre, fix typo, add CW/KW as macro for dated pre-dirs +Sep 15 2015: * fix compile warning + diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index a827172..0000000 --- a/src/Makefile +++ /dev/null @@ -1,43 +0,0 @@ - - -include Makefile.config - -# build order. -DIRS = lib util collection thread checker nfo pre nukes bouncer who unzip \ - zip reset sfv - -all: help - -help: - @echo Available targets: - @echo " make build - builds most." - @echo " make show - shows build binaries." - @echo " make webspy - makes webspy." - @echo " make clean - cleans." - -build: - @echo Building .. - @for x in $(DIRS); do \ - (cd $$x; make) \ - done - -show: - @echo These are the programs build .. - @size bouncer/simple_entry nfo/nfocleaner nukes/foo-nukes pre/foo-pre \ - reset/foo-reset sfv/blehsfv sfv/createsfv who/spy who/webspy - -webspy: build - (cd who; make webspy) - -clean: - for x in $(DIRS); do \ - (cd $$x; make clean) \ - done - -distclean: clean - /bin/rm -f Makefile config.h config.status config.cache config.log - @for dir in ${DIRS}; do \ - (cd $$dir && $(MAKE) distclean) \ - || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" - diff --git a/src/Makefile.config b/src/Makefile.config index f01e604..dc03cfd 100644 --- a/src/Makefile.config +++ b/src/Makefile.config @@ -10,7 +10,7 @@ INSTALL = install -m755 -o root -g root ## these prolly doesnt need to be changed. -CC = gcc -O0 +CC = gcc -O0 -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-all -DSSP ## these should not be changed. diff --git a/src/Makefile.in b/src/Makefile.in index a827172..1399a9b 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -12,6 +12,7 @@ help: @echo Available targets: @echo " make build - builds most." @echo " make show - shows build binaries." + @echo " make foobnc - makes foobnc." @echo " make webspy - makes webspy." @echo " make clean - cleans." @@ -26,6 +27,9 @@ show: @size bouncer/simple_entry nfo/nfocleaner nukes/foo-nukes pre/foo-pre \ reset/foo-reset sfv/blehsfv sfv/createsfv who/spy who/webspy +foobnc: foobnc + (cd bouncer; make foobnc) + webspy: build (cd who; make webspy) @@ -36,8 +40,8 @@ clean: distclean: clean /bin/rm -f Makefile config.h config.status config.cache config.log - @for dir in ${DIRS}; do \ - (cd $$dir && $(MAKE) distclean) \ - || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" +# @for dir in ${DIRS}; do \ +# (cd $$dir && $(MAKE) distclean) \ +# || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \ +# done && test -z "$$fail" diff --git a/src/bouncer/Makefile b/src/bouncer/Makefile index 9b6e305..f36786e 100644 --- a/src/bouncer/Makefile +++ b/src/bouncer/Makefile @@ -22,7 +22,8 @@ FOOBNCOBJS = foobnc.o $(GENOBJS) ../util/linereaderbuffer.o hammerprotect.o #DEFS = -DADMINPORT SRCDIR = .. -I/usr/local/lib -all: foobnc +#all: foobnc +all: foobnc: $(FOOBNCOBJS) diff --git a/src/bouncer/Makefile.in b/src/bouncer/Makefile.in index 9b6e305..f36786e 100644 --- a/src/bouncer/Makefile.in +++ b/src/bouncer/Makefile.in @@ -22,7 +22,8 @@ FOOBNCOBJS = foobnc.o $(GENOBJS) ../util/linereaderbuffer.o hammerprotect.o #DEFS = -DADMINPORT SRCDIR = .. -I/usr/local/lib -all: foobnc +#all: foobnc +all: foobnc: $(FOOBNCOBJS) diff --git a/src/collection/sortedlist.h b/src/collection/sortedlist.h index 91864b4..e91f2e1 100644 --- a/src/collection/sortedlist.h +++ b/src/collection/sortedlist.h @@ -27,6 +27,8 @@ #ifndef _sortedlist_h #define _sortedlist_h +#include + // holds list items. struct sortedlist_item { void *obj; diff --git a/src/config.h b/src/config.h deleted file mode 100644 index 5b63d42..0000000 --- a/src/config.h +++ /dev/null @@ -1,308 +0,0 @@ -/* config.h. Generated by configure. */ -/* config.h.in. Generated from configure.in by autoheader. */ - -/* Define to 1 if the `closedir' function returns void instead of `int'. */ -/* #undef CLOSEDIR_VOID */ - -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -/* #undef CRAY_STACKSEG_END */ - -/* Define to 1 if using `alloca.c'. */ -/* #undef C_ALLOCA */ - -/* Define to 1 if you have the `alarm' function. */ -#define HAVE_ALARM 1 - -/* Define to 1 if you have `alloca', as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#define HAVE_ALLOCA_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_ARPA_INET_H 1 - -/* Define to 1 if you have the `btowc' function. */ -/* #undef HAVE_BTOWC */ - -/* Define to 1 if you have the `bzero' function. */ -#define HAVE_BZERO 1 - -/* Define to 1 if your system has a working `chown' function. */ -#define HAVE_CHOWN 1 - -/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. - */ -/* #undef HAVE_DECL_GETENV */ - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -#define HAVE_DIRENT_H 1 - -/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ -/* #undef HAVE_DOPRNT */ - -/* Define to 1 if you have the header file. */ -#define HAVE_FCNTL_H 1 - -/* Define to 1 if you have the `ftruncate' function. */ -#define HAVE_FTRUNCATE 1 - -/* Define to 1 if you have the `getcwd' function. */ -#define HAVE_GETCWD 1 - -/* Define to 1 if you have the `gethostbyaddr' function. */ -#define HAVE_GETHOSTBYADDR 1 - -/* Define to 1 if you have the `gethostbyname' function. */ -#define HAVE_GETHOSTBYNAME 1 - -/* Define to 1 if you have the `getpagesize' function. */ -#define HAVE_GETPAGESIZE 1 - -/* Define to 1 if you have the `gettimeofday' function. */ -#define HAVE_GETTIMEOFDAY 1 - -/* Define to 1 if you have the `inet_ntoa' function. */ -#define HAVE_INET_NTOA 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the `crypto' library (-lcrypto). */ -#define HAVE_LIBCRYPTO 1 - -/* Define to 1 if you have the `curses' library (-lcurses). */ -#define HAVE_LIBCURSES 1 - -/* Define to 1 if you have the `dl' library (-ldl). */ -#define HAVE_LIBDL 1 - -/* Define to 1 if you have the `httpd' library (-lhttpd). */ -/* #undef HAVE_LIBHTTPD */ - -/* Define to 1 if you have the `ncurses' library (-lncurses). */ -#define HAVE_LIBNCURSES 1 - -/* Define to 1 if you have the `pthread' library (-lpthread). */ -#define HAVE_LIBPTHREAD 1 - -/* Define to 1 if you have the `ssl' library (-lssl). */ -#define HAVE_LIBSSL 1 - -/* Define to 1 if you have the `z' library (-lz). */ -#define HAVE_LIBZ 1 - -/* Define to 1 if your system has a GNU libc compatible `malloc' function, and - to 0 otherwise. */ -#define HAVE_MALLOC 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MALLOC_H 1 - -/* Define to 1 if you have the `mbsrtowcs' function. */ -/* #undef HAVE_MBSRTOWCS */ - -/* Define to 1 if declares mbstate_t. */ -#define HAVE_MBSTATE_T 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - -/* Define to 1 if you have the `mempcpy' function. */ -/* #undef HAVE_MEMPCPY */ - -/* Define to 1 if you have the `memset' function. */ -#define HAVE_MEMSET 1 - -/* Define to 1 if you have a working `mmap' system call. */ -#define HAVE_MMAP 1 - -/* Define to 1 if you have the `munmap' function. */ -#define HAVE_MUNMAP 1 - -/* Define to 1 if you have the header file, and it defines `DIR'. */ -/* #undef HAVE_NDIR_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_NETDB_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_NETINET_IN_H 1 - -/* Define to 1 if you have the `regcomp' function. */ -#define HAVE_REGCOMP 1 - -/* Define to 1 if you have the `select' function. */ -#define HAVE_SELECT 1 - -/* Define to 1 if you have the `socket' function. */ -#define HAVE_SOCKET 1 - -/* Define to 1 if `stat' has the bug that it succeeds when given the - zero-length file name argument. */ -/* #undef HAVE_STAT_EMPTY_STRING_BUG */ - -/* Define to 1 if stdbool.h conforms to C99. */ -#define HAVE_STDBOOL_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDDEF_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `strcasecmp' function. */ -#define HAVE_STRCASECMP 1 - -/* Define to 1 if you have the `strchr' function. */ -#define HAVE_STRCHR 1 - -/* Define to 1 if you have the `strdup' function. */ -#define HAVE_STRDUP 1 - -/* Define to 1 if you have the `strftime' function. */ -#define HAVE_STRFTIME 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the `strncasecmp' function. */ -#define HAVE_STRNCASECMP 1 - -/* Define to 1 if you have the `strrchr' function. */ -#define HAVE_STRRCHR 1 - -/* Define to 1 if you have the `strstr' function. */ -#define HAVE_STRSTR 1 - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -/* #undef HAVE_SYS_DIR_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_FILE_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_IOCTL_H 1 - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -/* #undef HAVE_SYS_NDIR_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_SELECT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_SOCKET_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define to 1 if you have the `vprintf' function. */ -#define HAVE_VPRINTF 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_WCHAR_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_WCTYPE_H */ - -/* Define to 1 if you have the `wmempcpy' function. */ -/* #undef HAVE_WMEMPCPY */ - -/* Define to 1 if the system has the type `_Bool'. */ -#define HAVE__BOOL 1 - -/* Define to 1 if `lstat' dereferences a symlink specified with a trailing - slash. */ -#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "BUG-REPORT-ADDRESS" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "FULL-PACKAGE-NAME" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "FULL-PACKAGE-NAME VERSION" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "full-package-name" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "VERSION" - -/* Define as the return type of signal handlers (`int' or `void'). */ -#define RETSIGTYPE void - -/* Define to the type of arg 1 for `select'. */ -#define SELECT_TYPE_ARG1 int - -/* Define to the type of args 2, 3 and 4 for `select'. */ -#define SELECT_TYPE_ARG234 (fd_set *) - -/* Define to the type of arg 5 for `select'. */ -#define SELECT_TYPE_ARG5 (struct timeval *) - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -/* #undef STACK_DIRECTION */ - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define to 1 if you can safely include both and . */ -#define TIME_WITH_SYS_TIME 1 - -/* Define to 1 if your declares `struct tm'. */ -/* #undef TM_IN_SYS_TIME */ - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef const */ - -/* Define to rpl_fnmatch if the replacement function should be used. */ -/* #undef fnmatch */ - -/* Define to `int' if doesn't define. */ -/* #undef gid_t */ - -/* Define to rpl_malloc if the replacement function should be used. */ -/* #undef malloc */ - -/* Define to a type if does not define. */ -/* #undef mbstate_t */ - -/* Define to `long' if does not define. */ -/* #undef off_t */ - -/* Define to `int' if does not define. */ -/* #undef pid_t */ - -/* Define to `unsigned' if does not define. */ -/* #undef size_t */ - -/* Define to `int' if doesn't define. */ -/* #undef uid_t */ diff --git a/src/config.log b/src/config.log deleted file mode 100644 index 3427f00..0000000 --- a/src/config.log +++ /dev/null @@ -1,275 +0,0 @@ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by FULL-PACKAGE-NAME configure VERSION, which was -generated by GNU Autoconf 2.57. Invocation command line was - - $ ./configure - -## --------- ## -## Platform. ## -## --------- ## - -hostname = nr1 -uname -m = x86_64 -uname -r = 2.6.32-5-amd64 -uname -s = Linux -uname -v = #1 SMP Sun May 6 04:00:17 UTC 2012 - -/usr/bin/uname -p = unknown -/bin/uname -X = unknown - -/bin/arch = unknown -/usr/bin/arch -k = unknown -/usr/convex/getsysinfo = unknown -hostinfo = unknown -/bin/machine = unknown -/usr/bin/oslevel = unknown -/bin/universe = unknown - -PATH: /usr/local/sbin -PATH: /usr/local/bin -PATH: /usr/sbin -PATH: /usr/bin -PATH: /sbin -PATH: /bin - - -## ----------- ## -## Core tests. ## -## ----------- ## - -configure:1320: checking for gcc -configure:1336: found /usr/bin/gcc -configure:1346: result: gcc -configure:1590: checking for C compiler version -configure:1593: gcc --version &5 -gcc (Debian 4.4.5-8) 4.4.5 -Copyright (C) 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. - -configure:1596: $? = 0 -configure:1598: gcc -v &5 -Using built-in specs. -Target: x86_64-linux-gnu -Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu -Thread model: posix -gcc version 4.4.5 (Debian 4.4.5-8) -configure:1601: $? = 0 -configure:1603: gcc -V &5 -gcc: '-V' option must have argument -configure:1606: $? = 1 -configure:1630: checking for C compiler default output -configure:1633: gcc conftest.c >&5 -configure:1636: $? = 0 -configure:1682: result: a.out -configure:1687: checking whether the C compiler works -configure:1693: ./a.out -configure:1696: $? = 0 -configure:1713: result: yes -configure:1720: checking whether we are cross compiling -configure:1722: result: no -configure:1725: checking for suffix of executables -configure:1727: gcc -o conftest conftest.c >&5 -configure:1730: $? = 0 -configure:1755: result: -configure:1761: checking for suffix of object files -configure:1783: gcc -c conftest.c >&5 -configure:1786: $? = 0 -configure:1808: result: o -configure:1812: checking whether we are using the GNU C compiler -configure:1837: gcc -c conftest.c >&5 -configure:1840: $? = 0 -configure:1843: test -s conftest.o -configure:1846: $? = 0 -configure:1859: result: yes -configure:1865: checking whether gcc accepts -g -configure:1887: gcc -c -g conftest.c >&5 -configure:1890: $? = 0 -configure:1893: test -s conftest.o -configure:1896: $? = 0 -configure:1907: result: yes -configure:1924: checking for gcc option to accept ANSI C -configure:1985: gcc -c -g -O2 conftest.c >&5 -configure:1988: $? = 0 -configure:1991: test -s conftest.o -configure:1994: $? = 0 -configure:2012: result: none needed -configure:2030: gcc -c -g -O2 conftest.c >&5 -conftest.c:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'me' -configure:2033: $? = 1 -configure: failed program was: -| #ifndef __cplusplus -| choke me -| #endif -configure:2141: checking whether make sets $(MAKE) -configure:2161: result: yes -configure:2175: checking for main in -lcrypto -configure:2200: gcc -o conftest -g -O2 conftest.c -lcrypto >&5 -configure:2203: $? = 0 -configure:2206: test -s conftest -configure:2209: $? = 0 -configure:2221: result: yes -configure:2234: checking for main in -lcurses -configure:2259: gcc -o conftest -g -O2 conftest.c -lcurses -lcrypto >&5 -configure:2262: $? = 0 -configure:2265: test -s conftest -configure:2268: $? = 0 -configure:2280: result: yes -configure:2293: checking for main in -ldl -configure:2318: gcc -o conftest -g -O2 conftest.c -ldl -lcurses -lcrypto >&5 -configure:2321: $? = 0 -configure:2324: test -s conftest -configure:2327: $? = 0 -configure:2339: result: yes -configure:2352: checking for main in -lhttpd -configure:2377: gcc -o conftest -g -O2 conftest.c -lhttpd -ldl -lcurses -lcrypto >&5 -/usr/bin/ld: cannot find -lhttpd -collect2: ld returned 1 exit status -configure:2380: $? = 1 -configure: failed program was: -| #line 2359 "configure" -| /* confdefs.h. */ -| -| #define PACKAGE_NAME "FULL-PACKAGE-NAME" -| #define PACKAGE_TARNAME "full-package-name" -| #define PACKAGE_VERSION "VERSION" -| #define PACKAGE_STRING "FULL-PACKAGE-NAME VERSION" -| #define PACKAGE_BUGREPORT "BUG-REPORT-ADDRESS" -| #define HAVE_LIBCRYPTO 1 -| #define HAVE_LIBCURSES 1 -| #define HAVE_LIBDL 1 -| /* end confdefs.h. */ -| -| -| int -| main () -| { -| main (); -| ; -| return 0; -| } -configure:2398: result: no -configure:2411: checking for main in -lncurses -configure:2436: gcc -o conftest -g -O2 conftest.c -lncurses -ldl -lcurses -lcrypto >&5 -configure:2439: $? = 0 -configure:2442: test -s conftest -configure:2445: $? = 0 -configure:2457: result: yes -configure:2470: checking for main in -lpthread -configure:2495: gcc -o conftest -g -O2 conftest.c -lpthread -lncurses -ldl -lcurses -lcrypto >&5 -configure:2498: $? = 0 -configure:2501: test -s conftest -configure:2504: $? = 0 -configure:2516: result: yes -configure:2529: checking for main in -lssl -configure:2554: gcc -o conftest -g -O2 conftest.c -lssl -lpthread -lncurses -ldl -lcurses -lcrypto >&5 -configure:2557: $? = 0 -configure:2560: test -s conftest -configure:2563: $? = 0 -configure:2575: result: yes -configure:2588: checking for main in -lz -configure:2613: gcc -o conftest -g -O2 conftest.c -lz -lssl -lpthread -lncurses -ldl -lcurses -lcrypto >&5 - -## ---------------- ## -## Cache variables. ## -## ---------------- ## - -ac_cv_c_compiler_gnu=yes -ac_cv_env_CC_set= -ac_cv_env_CC_value= -ac_cv_env_CFLAGS_set= -ac_cv_env_CFLAGS_value= -ac_cv_env_CPPFLAGS_set= -ac_cv_env_CPPFLAGS_value= -ac_cv_env_CPP_set= -ac_cv_env_CPP_value= -ac_cv_env_LDFLAGS_set= -ac_cv_env_LDFLAGS_value= -ac_cv_env_build_alias_set= -ac_cv_env_build_alias_value= -ac_cv_env_host_alias_set= -ac_cv_env_host_alias_value= -ac_cv_env_target_alias_set= -ac_cv_env_target_alias_value= -ac_cv_exeext= -ac_cv_lib_crypto_main=yes -ac_cv_lib_curses_main=yes -ac_cv_lib_dl_main=yes -ac_cv_lib_httpd_main=no -ac_cv_lib_ncurses_main=yes -ac_cv_lib_pthread_main=yes -ac_cv_lib_ssl_main=yes -ac_cv_objext=o -ac_cv_prog_ac_ct_CC=gcc -ac_cv_prog_cc_g=yes -ac_cv_prog_cc_stdc= -ac_cv_prog_make_make_set=yes - -## ----------------- ## -## Output variables. ## -## ----------------- ## - -ALLOCA='' -CC='gcc' -CFLAGS='-g -O2' -CPP='' -CPPFLAGS='' -DEFS='' -ECHO_C='' -ECHO_N='-n' -ECHO_T='' -EGREP='' -EXEEXT='' -LDFLAGS='' -LIBOBJS='' -LIBS='-lz -lssl -lpthread -lncurses -ldl -lcurses -lcrypto ' -LTLIBOBJS='' -OBJEXT='o' -PACKAGE_BUGREPORT='BUG-REPORT-ADDRESS' -PACKAGE_NAME='FULL-PACKAGE-NAME' -PACKAGE_STRING='FULL-PACKAGE-NAME VERSION' -PACKAGE_TARNAME='full-package-name' -PACKAGE_VERSION='VERSION' -PATH_SEPARATOR=':' -SET_MAKE='' -SHELL='/bin/bash' -ac_ct_CC='gcc' -bindir='${exec_prefix}/bin' -build_alias='' -datadir='${prefix}/share' -exec_prefix='NONE' -host_alias='' -includedir='${prefix}/include' -infodir='${prefix}/info' -libdir='${exec_prefix}/lib' -libexecdir='${exec_prefix}/libexec' -localstatedir='${prefix}/var' -mandir='${prefix}/man' -oldincludedir='/usr/include' -prefix='NONE' -program_transform_name='s,x,x,' -sbindir='${exec_prefix}/sbin' -sharedstatedir='${prefix}/com' -sysconfdir='${prefix}/etc' -target_alias='' - -## ----------- ## -## confdefs.h. ## -## ----------- ## - -#define HAVE_LIBCRYPTO 1 -#define HAVE_LIBCURSES 1 -#define HAVE_LIBDL 1 -#define HAVE_LIBNCURSES 1 -#define HAVE_LIBPTHREAD 1 -#define HAVE_LIBSSL 1 -#define PACKAGE_BUGREPORT "BUG-REPORT-ADDRESS" -#define PACKAGE_NAME "FULL-PACKAGE-NAME" -#define PACKAGE_STRING "FULL-PACKAGE-NAME VERSION" -#define PACKAGE_TARNAME "full-package-name" -#define PACKAGE_VERSION "VERSION" - -configure: caught signal 2 -configure: exit 1 diff --git a/src/config.status b/src/config.status deleted file mode 100755 index 117f8f5..0000000 --- a/src/config.status +++ /dev/null @@ -1,1151 +0,0 @@ -#! /bin/bash -# Generated by configure. -# 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-/bin/bash} -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; 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 - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# 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 - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 - - ;; - 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 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); 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 sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by FULL-PACKAGE-NAME $as_me VERSION, which was -generated by GNU Autoconf 2.57. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -config_files=" Makefile bouncer/Makefile checker/Makefile collection/Makefile lib/Makefile nfo/Makefile nukes/Makefile pre/Makefile pre/modules/Makefile reset/Makefile sfv/Makefile thread/Makefile unzip/Makefile util/Makefile who/Makefile zip/Makefile" -config_headers=" config.h" - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet 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 - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration links: -$config_links - -Report bugs to ." -ac_cs_version="\ -FULL-PACKAGE-NAME config.status VERSION -configured by ./configure, generated by GNU Autoconf 2.57, - with options \"\" - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=. -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -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=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - 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 - -if $ac_cs_recheck; then - echo "running /bin/bash ./configure " $ac_configure_extra_args " --no-create --no-recursion" >&6 - exec /bin/bash ./configure $ac_configure_extra_args --no-create --no-recursion -fi - -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "bouncer/Makefile" ) CONFIG_FILES="$CONFIG_FILES bouncer/Makefile" ;; - "checker/Makefile" ) CONFIG_FILES="$CONFIG_FILES checker/Makefile" ;; - "collection/Makefile" ) CONFIG_FILES="$CONFIG_FILES collection/Makefile" ;; - "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; - "nfo/Makefile" ) CONFIG_FILES="$CONFIG_FILES nfo/Makefile" ;; - "nukes/Makefile" ) CONFIG_FILES="$CONFIG_FILES nukes/Makefile" ;; - "pre/Makefile" ) CONFIG_FILES="$CONFIG_FILES pre/Makefile" ;; - "pre/modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES pre/modules/Makefile" ;; - "reset/Makefile" ) CONFIG_FILES="$CONFIG_FILES reset/Makefile" ;; - "sfv/Makefile" ) CONFIG_FILES="$CONFIG_FILES sfv/Makefile" ;; - "thread/Makefile" ) CONFIG_FILES="$CONFIG_FILES thread/Makefile" ;; - "unzip/Makefile" ) CONFIG_FILES="$CONFIG_FILES unzip/Makefile" ;; - "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; - "who/Makefile" ) CONFIG_FILES="$CONFIG_FILES who/Makefile" ;; - "zip/Makefile" ) CONFIG_FILES="$CONFIG_FILES zip/Makefile" ;; - "$ac_config_libobj_dir/fnmatch.h" ) CONFIG_LINKS="$CONFIG_LINKS $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - 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_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF -s,@SHELL@,/bin/bash,;t t -s,@PATH_SEPARATOR@,:,;t t -s,@PACKAGE_NAME@,FULL-PACKAGE-NAME,;t t -s,@PACKAGE_TARNAME@,full-package-name,;t t -s,@PACKAGE_VERSION@,VERSION,;t t -s,@PACKAGE_STRING@,FULL-PACKAGE-NAME VERSION,;t t -s,@PACKAGE_BUGREPORT@,BUG-REPORT-ADDRESS,;t t -s,@exec_prefix@,${prefix},;t t -s,@prefix@,/usr/local,;t t -s,@program_transform_name@,s,x,x,,;t t -s,@bindir@,${exec_prefix}/bin,;t t -s,@sbindir@,${exec_prefix}/sbin,;t t -s,@libexecdir@,${exec_prefix}/libexec,;t t -s,@datadir@,${prefix}/share,;t t -s,@sysconfdir@,${prefix}/etc,;t t -s,@sharedstatedir@,${prefix}/com,;t t -s,@localstatedir@,${prefix}/var,;t t -s,@libdir@,${exec_prefix}/lib,;t t -s,@includedir@,${prefix}/include,;t t -s,@oldincludedir@,/usr/include,;t t -s,@infodir@,${prefix}/info,;t t -s,@mandir@,${prefix}/man,;t t -s,@build_alias@,,;t t -s,@host_alias@,,;t t -s,@target_alias@,,;t t -s,@DEFS@,-DHAVE_CONFIG_H,;t t -s,@ECHO_C@,,;t t -s,@ECHO_N@,-n,;t t -s,@ECHO_T@,,;t t -s,@LIBS@,-lz -lssl -lpthread -lncurses -ldl -lcurses -lcrypto ,;t t -s,@CC@,gcc,;t t -s,@CFLAGS@,-g -O2,;t t -s,@LDFLAGS@,,;t t -s,@CPPFLAGS@,,;t t -s,@ac_ct_CC@,gcc,;t t -s,@EXEEXT@,,;t t -s,@OBJEXT@,o,;t t -s,@SET_MAKE@,,;t t -s,@CPP@,gcc -E,;t t -s,@EGREP@,grep -E,;t t -s,@ALLOCA@,,;t t -s,@LIBOBJS@,,;t t -s,@LTLIBOBJS@,,;t t -CEOF - - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # 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. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - sed "/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -} - -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - - # Handle all the #define templates only if necessary. - if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then - # If there are no defines, we may have an empty if/fi - : - cat >$tmp/defines.sed <$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in - - cat >$tmp/defines.sed <$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in - - cat >$tmp/defines.sed <$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in - - fi # grep - - # Handle all the #undef templates - cat >$tmp/undefs.sed <$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in - - cat >$tmp/undefs.sed <$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in - - cat >$tmp/undefs.sed <$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in - - # 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. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -done - -# -# CONFIG_LINKS section. -# - -for ac_file in : $CONFIG_LINKS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - - { echo "$as_me:$LINENO: linking $srcdir/$ac_source to $ac_dest" >&5 -echo "$as_me: linking $srcdir/$ac_source to $ac_dest" >&6;} - - if test ! -r $srcdir/$ac_source; then - { { echo "$as_me:$LINENO: error: $srcdir/$ac_source: file not found" >&5 -echo "$as_me: error: $srcdir/$ac_source: file not found" >&2;} - { (exit 1); exit 1; }; } - fi - rm -f $ac_dest - - # Make relative symlinks. - ac_dest_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dest_dir" - else - as_dir="$ac_dest_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dest_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dest_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dest_dir" != .; then - ac_dir_suffix=/`echo "$ac_dest_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dest_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dest_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dest_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dest_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dest_dir" && cd $ac_top_srcdir && pwd` - - - case $srcdir in - [\\/$]* | ?:[\\/]* ) ac_rel_source=$srcdir/$ac_source ;; - *) ac_rel_source=$ac_top_builddir$srcdir/$ac_source ;; - esac - - # Try a symlink, then a hard link, then a copy. - ln -s $ac_rel_source $ac_dest 2>/dev/null || - ln $srcdir/$ac_source $ac_dest 2>/dev/null || - cp -p $srcdir/$ac_source $ac_dest || - { { echo "$as_me:$LINENO: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&5 -echo "$as_me: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&2;} - { (exit 1); exit 1; }; } -done - -{ (exit 0); exit 0; } diff --git a/src/configure b/src/configure index 0f5b553..eb0c4a6 100755 --- a/src/configure +++ b/src/configure @@ -1,83 +1,462 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.57 for FULL-PACKAGE-NAME VERSION. +# Generated by GNU Autoconf 2.69 for FULL-PACKAGE-NAME VERSION. # # Report bugs to . # -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -# Free Software Foundation, Inc. +# +# Copyright (C) 1992-1996, 1998-2012 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. ## -## --------------------- ## +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +# 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=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac fi -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false + +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 -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH +# 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. +as_myself= +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. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # 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. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +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 +test -x / || 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 - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var + 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 : + export CONFIG_SHELL + # 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. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +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_unset $as_var + $as_echo "$0: Please tell bug-autoconf@gnu.org and BUG-REPORT-ADDRESS +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." fi -done + 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_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_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 + -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then +# 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 +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 -# Name of the executable. -as_me=`$as_basename "$0" || +as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` -# PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' @@ -85,185 +464,118 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - 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 - - ;; - 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 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | + 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 - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop - s,-$,, - s,^['$as_cr_digits']*\n,, + s/-\n.*// ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } + 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; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # 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 sensible to this). - . ./$as_me.lineno + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" # Exit status is that of the last command. exit } - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +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 -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file else - as_expr=false + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else +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 -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi -rm -f conf$$ conf$$.exe conf$$.file +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=: + as_mkdir_p='mkdir -p "$as_dir"' else + test -d ./-p && rmdir ./-p as_mkdir_p=false fi -as_executable_p="test -f" +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -# CDPATH. -$as_unset CDPATH +test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# 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` -exec 6>&1 - # # Initializations. # ac_default_prefix=/usr/local +ac_clean_files= ac_config_libobj_dir=. +LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='FULL-PACKAGE-NAME' @@ -271,51 +583,119 @@ PACKAGE_TARNAME='full-package-name' PACKAGE_VERSION='VERSION' PACKAGE_STRING='FULL-PACKAGE-NAME VERSION' PACKAGE_BUGREPORT='BUG-REPORT-ADDRESS' +PACKAGE_URL='' ac_unique_file="config.h.in" # Factoring default headers for most tests. ac_includes_default="\ #include -#if HAVE_SYS_TYPES_H +#ifdef HAVE_SYS_TYPES_H # include #endif -#if HAVE_SYS_STAT_H +#ifdef HAVE_SYS_STAT_H # include #endif -#if STDC_HEADERS +#ifdef STDC_HEADERS # include # include #else -# if HAVE_STDLIB_H +# ifdef HAVE_STDLIB_H # include # endif #endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif -#if HAVE_STRINGS_H +#ifdef HAVE_STRINGS_H # include #endif -#if HAVE_INTTYPES_H +#ifdef HAVE_INTTYPES_H # include -#else -# if HAVE_STDINT_H -# include -# endif #endif -#if HAVE_UNISTD_H +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT SET_MAKE CPP EGREP ALLOCA LIBOBJS LTLIBOBJS' +ac_header_list= +ac_func_list= +ac_subst_vars='LTLIBOBJS +LIBOBJS +ALLOCA +EGREP +GREP +CPP +SET_MAKE +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +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 +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +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 @@ -338,34 +718,49 @@ x_libraries=NONE # 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' -datadir='${prefix}/share' +datarootdir='${prefix}/share' +datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +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" + eval $ac_prev=\$ac_option ac_prev= continue fi - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + 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_option in + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; @@ -387,33 +782,59 @@ do --config-cache | -C) cache_file=config.cache ;; - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) + -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_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; + 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_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; + 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_feature='$ac_optarg'" ;; + eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -440,6 +861,12 @@ do -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 ;; @@ -464,13 +891,16 @@ do | --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 | --local | --loca | --loc | --lo) + | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) @@ -535,6 +965,16 @@ do | --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 ;; @@ -585,26 +1025,36 @@ do ac_init_version=: ;; -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; + 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_package='$ac_optarg'" ;; + eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; + 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. @@ -624,27 +1074,26 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } + -*) 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. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" + 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. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -652,31 +1101,36 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } + as_fn_error $? "missing argument to $ac_option" fi -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; +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 -done +fi -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir +# 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=$`echo $ac_var` + 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 - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; + [\\/$]* | ?:[\\/]* ) 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' @@ -690,8 +1144,6 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - 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 @@ -703,74 +1155,72 @@ 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 its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + # 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 + if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP +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. @@ -793,15 +1243,12 @@ Configuration: --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 + -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 \`..'] -_ACEOF - - cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] @@ -816,18 +1263,26 @@ 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] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --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] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] + --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/full-package-name] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -845,8 +1300,9 @@ Some influential environment variables: CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers 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 CPP C preprocessor Use these variables to override the choices made by `configure' or to help @@ -854,272 +1310,738 @@ it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF +ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. - ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue ac_builddir=. -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi +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 - .) # No --srcdir option. We are building in place. + .) # We are building in place. ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. + 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 ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; + 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 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style 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 - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help +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 - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd "$ac_popdir" + $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 0 +test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF FULL-PACKAGE-NAME configure VERSION -generated by GNU Autoconf 2.57 +generated by GNU Autoconf 2.69 -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -Free Software Foundation, Inc. +Copyright (C) 2012 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 0 + exit fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by FULL-PACKAGE-NAME $as_me VERSION, which was -generated by GNU Autoconf 2.57. Invocation command line was - $ $0 $@ +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## -_ACEOF +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () { -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## + 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 -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` + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` +} # ac_fn_c_try_compile -/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` -hostinfo = `(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` +# 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 || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -_ASUNAME + 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; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done +} # ac_fn_c_try_link -} >&5 +# 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 -cat >&5 <<_ACEOF + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval +} # ac_fn_c_try_cpp -## ----------- ## -## Core tests. ## -## ----------- ## +# 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 -_ACEOF + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval +} # ac_fn_c_try_run -# 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_sep= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg +# 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 \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; 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;} +( $as_echo "## --------------------------------- ## +## Report this to BUG-REPORT-ADDRESS ## +## --------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; 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; ${as_lineno_stack:+:} 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 \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + 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 \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=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 +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# 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 \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_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; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_decl +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 FULL-PACKAGE-NAME $as_me VERSION, which was +generated by GNU Autoconf 2.69. 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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" + 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. + 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 + 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 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " + as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } +{ 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: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. +# 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 - cat <<\_ASBOX -## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## -## ---------------- ## -_ASBOX +## ---------------- ##" 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 `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) + 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" - ;; + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; - esac; -} + esac | + sort +) echo - cat <<\_ASBOX -## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## -## ----------------- ## -_ASBOX +## ----------------- ##" echo for ac_var in $ac_subst_vars do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + 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 - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" echo for ac_var in $ac_subst_files do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + 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 - cat <<\_ASBOX -## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## -## ----------- ## -_ASBOX +## ----------- ##" echo - sed "/^$/d" confdefs.h | sort + cat confdefs.h echo fi test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status - ' 0 +' 0 for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal + 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 -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. @@ -1127,112 +2049,142 @@ 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 explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi +# 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 $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} +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" + . "$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. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} + # 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;; + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; esac fi else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi +as_fn_append ac_header_list " sys/time.h" +as_fn_append ac_header_list " unistd.h" +as_fn_append ac_func_list " alarm" +as_fn_append ac_header_list " stdlib.h" +as_fn_append ac_header_list " sys/param.h" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do +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" + 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,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { $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) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { $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 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + # 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=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) 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. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } + { $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' @@ -1242,32 +2194,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - - - - - - - ac_config_headers="$ac_config_headers config.h" +ac_config_headers="$ac_config_headers config.h" # Checks for programs. @@ -1279,10 +2206,10 @@ 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1292,35 +2219,37 @@ 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; 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. @@ -1330,39 +2259,50 @@ 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done +IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - CC=$ac_ct_CC + 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. + 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1372,99 +2312,60 @@ 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + + fi fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC +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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; 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. + 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$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" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -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. @@ -1482,24 +2383,25 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $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 + 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1509,39 +2411,41 @@ 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $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 + 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 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; 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. @@ -1551,67 +2455,78 @@ 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done -done + done +IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$ac_ct_CC" && break done - CC=$ac_ct_CC + 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" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +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. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 +$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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -1623,112 +2538,108 @@ main () } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" +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. -echo "$as_me:$LINENO: checking for C compiler default output" >&5 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out +{ $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 | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; + *.$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;; + # We found the default executable, but exeext='' is most + # certainly right. + break;; *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - 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;; + break;; esac done +test "$ac_cv_exeext" = no && ac_cv_exeext= + else - echo "$as_me: failed program was:" >&5 + 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 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } +{ { $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 -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -rm -f a.out a.exe conftest$ac_cv_exeext b.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +{ $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=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then + $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 @@ -1736,39 +2647,90 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 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 | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; + break;; * ) break;; esac done else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { { $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$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 +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 -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ +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 -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_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 ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -1780,46 +2742,46 @@ main () } _ACEOF rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do +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 ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } +{ { $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 -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 +{ $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 -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +{ $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 ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -1833,46 +2795,34 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no + ac_compiler_gnu=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` +{ $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 -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; 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 @@ -1883,29 +2833,49 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + 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 () +{ -ac_cv_prog_cc_g=no + ; + 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 conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +{ $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 @@ -1921,24 +2891,18 @@ else CFLAGS= fi fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 else - ac_cv_prog_cc_stdc=no + ac_cv_prog_cc_c89=no ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* 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); @@ -1957,6 +2921,21 @@ static char *f (char * (*g) (char **, int), char **p, ...) 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);}; @@ -1971,199 +2950,71 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; return 0; } _ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg fi -rm -f conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break done -rm -f conftest.$ac_ext conftest.$ac_objext +rm -f conftest.$ac_ext CC=$ac_save_CC fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; +# 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; } ;; *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; + 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 : -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext 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 -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF +SHELL = /bin/sh all: - @echo 'ac_maketemp="$(MAKE)"' + @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi +# 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 \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 +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 - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2171,56 +3022,37 @@ fi # Checks for libraries. # FIXME: Replace `main' with a function in `-lcrypto': - -echo "$as_me:$LINENO: checking for main in -lcrypto" >&5 -echo $ECHO_N "checking for main in -lcrypto... $ECHO_C" >&6 -if test "${ac_cv_lib_crypto_main+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lcrypto" >&5 +$as_echo_n "checking for main in -lcrypto... " >&6; } +if ${ac_cv_lib_crypto_main+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { -main (); +return main (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_crypto_main=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_crypto_main=no + ac_cv_lib_crypto_main=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_main" >&5 -echo "${ECHO_T}$ac_cv_lib_crypto_main" >&6 -if test $ac_cv_lib_crypto_main = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_main" >&5 +$as_echo "$ac_cv_lib_crypto_main" >&6; } +if test "x$ac_cv_lib_crypto_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBCRYPTO 1 _ACEOF @@ -2230,56 +3062,37 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lcurses': - -echo "$as_me:$LINENO: checking for main in -lcurses" >&5 -echo $ECHO_N "checking for main in -lcurses... $ECHO_C" >&6 -if test "${ac_cv_lib_curses_main+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lcurses" >&5 +$as_echo_n "checking for main in -lcurses... " >&6; } +if ${ac_cv_lib_curses_main+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcurses $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { -main (); +return main (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_curses_main=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_curses_main=no + ac_cv_lib_curses_main=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_curses_main" >&5 -echo "${ECHO_T}$ac_cv_lib_curses_main" >&6 -if test $ac_cv_lib_curses_main = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_main" >&5 +$as_echo "$ac_cv_lib_curses_main" >&6; } +if test "x$ac_cv_lib_curses_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBCURSES 1 _ACEOF @@ -2289,56 +3102,37 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-ldl': - -echo "$as_me:$LINENO: checking for main in -ldl" >&5 -echo $ECHO_N "checking for main in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_main+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldl" >&5 +$as_echo_n "checking for main in -ldl... " >&6; } +if ${ac_cv_lib_dl_main+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { -main (); +return main (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_main=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dl_main=no + ac_cv_lib_dl_main=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_main" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_main" >&6 -if test $ac_cv_lib_dl_main = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_main" >&5 +$as_echo "$ac_cv_lib_dl_main" >&6; } +if test "x$ac_cv_lib_dl_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDL 1 _ACEOF @@ -2348,56 +3142,37 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lhttpd': - -echo "$as_me:$LINENO: checking for main in -lhttpd" >&5 -echo $ECHO_N "checking for main in -lhttpd... $ECHO_C" >&6 -if test "${ac_cv_lib_httpd_main+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lhttpd" >&5 +$as_echo_n "checking for main in -lhttpd... " >&6; } +if ${ac_cv_lib_httpd_main+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lhttpd $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { -main (); +return main (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_httpd_main=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_httpd_main=no + ac_cv_lib_httpd_main=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_httpd_main" >&5 -echo "${ECHO_T}$ac_cv_lib_httpd_main" >&6 -if test $ac_cv_lib_httpd_main = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_httpd_main" >&5 +$as_echo "$ac_cv_lib_httpd_main" >&6; } +if test "x$ac_cv_lib_httpd_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBHTTPD 1 _ACEOF @@ -2407,56 +3182,37 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lncurses': - -echo "$as_me:$LINENO: checking for main in -lncurses" >&5 -echo $ECHO_N "checking for main in -lncurses... $ECHO_C" >&6 -if test "${ac_cv_lib_ncurses_main+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lncurses" >&5 +$as_echo_n "checking for main in -lncurses... " >&6; } +if ${ac_cv_lib_ncurses_main+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { -main (); +return main (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ncurses_main=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_ncurses_main=no + ac_cv_lib_ncurses_main=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_main" >&5 -echo "${ECHO_T}$ac_cv_lib_ncurses_main" >&6 -if test $ac_cv_lib_ncurses_main = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_main" >&5 +$as_echo "$ac_cv_lib_ncurses_main" >&6; } +if test "x$ac_cv_lib_ncurses_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBNCURSES 1 _ACEOF @@ -2466,56 +3222,37 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lpthread': - -echo "$as_me:$LINENO: checking for main in -lpthread" >&5 -echo $ECHO_N "checking for main in -lpthread... $ECHO_C" >&6 -if test "${ac_cv_lib_pthread_main+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5 +$as_echo_n "checking for main in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_main+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { -main (); +return main (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_main=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_pthread_main=no + ac_cv_lib_pthread_main=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_main" >&5 -echo "${ECHO_T}$ac_cv_lib_pthread_main" >&6 -if test $ac_cv_lib_pthread_main = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5 +$as_echo "$ac_cv_lib_pthread_main" >&6; } +if test "x$ac_cv_lib_pthread_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF @@ -2525,56 +3262,37 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lssl': - -echo "$as_me:$LINENO: checking for main in -lssl" >&5 -echo $ECHO_N "checking for main in -lssl... $ECHO_C" >&6 -if test "${ac_cv_lib_ssl_main+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lssl" >&5 +$as_echo_n "checking for main in -lssl... " >&6; } +if ${ac_cv_lib_ssl_main+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lssl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { -main (); +return main (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ssl_main=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_ssl_main=no + ac_cv_lib_ssl_main=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_main" >&5 -echo "${ECHO_T}$ac_cv_lib_ssl_main" >&6 -if test $ac_cv_lib_ssl_main = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_main" >&5 +$as_echo "$ac_cv_lib_ssl_main" >&6; } +if test "x$ac_cv_lib_ssl_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSSL 1 _ACEOF @@ -2584,56 +3302,37 @@ _ACEOF fi # FIXME: Replace `main' with a function in `-lz': - -echo "$as_me:$LINENO: checking for main in -lz" >&5 -echo $ECHO_N "checking for main in -lz... $ECHO_C" >&6 -if test "${ac_cv_lib_z_main+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lz" >&5 +$as_echo_n "checking for main in -lz... " >&6; } +if ${ac_cv_lib_z_main+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { -main (); +return main (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_z_main=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_z_main=no + ac_cv_lib_z_main=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_z_main" >&5 -echo "${ECHO_T}$ac_cv_lib_z_main" >&6 -if test $ac_cv_lib_z_main = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_main" >&5 +$as_echo "$ac_cv_lib_z_main" >&6; } +if test "x$ac_cv_lib_z_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBZ 1 _ACEOF @@ -2644,25 +3343,15 @@ fi # Checks for header files. - - - - - ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 -echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 +$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } +if eval \${$as_ac_Header+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include <$ac_hdr> @@ -2676,32 +3365,19 @@ return 0; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" + eval "$as_ac_Header=no" fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then +eval ac_res=\$$as_ac_Header + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break @@ -2710,216 +3386,116 @@ fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then - echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 -if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS -ac_cv_search_opendir=no -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* 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 -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char opendir (); int main () { -opendir (); +return opendir (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="none required" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_opendir" = no; then - for ac_lib in dir; do +for ac_lib in '' dir; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break +fi +done +if ${ac_cv_search_opendir+:} false; then : -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="-l$ac_lib" -break else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - done + ac_cv_search_opendir=no fi +rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6 -if test "$ac_cv_search_opendir" != no; then - test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else - echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 -if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } +if ${ac_cv_search_opendir+:} false; then : + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS -ac_cv_search_opendir=no -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* 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 -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char opendir (); int main () { -opendir (); +return opendir (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="none required" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_opendir" = no; then - for ac_lib in x; do +for ac_lib in '' x; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_opendir=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break +fi +done +if ${ac_cv_search_opendir+:} false; then : -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="-l$ac_lib" -break else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - done + ac_cv_search_opendir=no fi +rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6 -if test "$ac_cv_search_opendir" != no; then - test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi @@ -2930,15 +3506,15 @@ 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 -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +{ $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 - echo $ECHO_N "(cached) $ECHO_C" >&6 + if ${ac_cv_prog_CPP+:} false; 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" @@ -2952,91 +3528,43 @@ do # 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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif - Syntax error + Syntax error _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext - # OK, works on sane cases. Now check whether non-existent headers + # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : break fi @@ -3048,8 +3576,8 @@ fi else ac_cv_prog_CPP=$CPP fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 +{ $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 @@ -3059,98 +3587,49 @@ do # 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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif - Syntax error + Syntax error _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_cpp "$LINENO"; then : +else # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext - # OK, works on sane cases. Now check whether non-existent headers + # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then +if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - # Passes both tests. ac_preproc_ok=: break fi -rm -f conftest.err conftest.$ac_ext +rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { { $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 @@ -3160,32 +3639,142 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 ${ac_cv_path_GREP+:} false; 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" + as_fn_executable_p "$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 ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' + 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" + as_fn_executable_p "$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 -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep +{ $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" -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $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 ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -3200,42 +3789,23 @@ main () return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no + ac_cv_header_stdc=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +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 >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + 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 - : + $EGREP "memchr" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -3245,19 +3815,14 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + 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 - : + $EGREP "free" >/dev/null 2>&1; then : + else ac_cv_header_stdc=no fi @@ -3267,25 +3832,21 @@ 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 + if test "$cross_compiling" = yes; then : : else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + 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')) + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif @@ -3296,544 +3857,182 @@ main () int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); + || toupper (i) != TOUPPER (i)) + return 2; + return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +if ac_fn_c_try_run "$LINENO"; then : -( exit $ac_status ) -ac_cv_header_stdc=no +else + ac_cv_header_stdc=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 +{ $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 -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF +$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 arpa/inet.h fcntl.h malloc.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/file.h sys/ioctl.h sys/socket.h sys/time.h unistd.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_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=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +# Checks for typedefs, structures, and compiler characteristics. +{ $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 ${ac_cv_c_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> +int +main () +{ + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* 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 sort of thing. */ + char tx; + char *t = &tx; + 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 sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; 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 -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" + ac_cv_c_const=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +{ $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 -done +ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" +if test "x$ac_cv_type_off_t" = xyes; then : +else +cat >>confdefs.h <<_ACEOF +#define off_t long int +_ACEOF +fi +ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" +if test "x$ac_cv_type_pid_t" = xyes; then : +else +cat >>confdefs.h <<_ACEOF +#define pid_t int +_ACEOF - - - - - - - - -for ac_header in arpa/inet.h fcntl.h malloc.h netdb.h netinet/in.h stddef.h stdlib.h string.h sys/file.h sys/ioctl.h sys/socket.h sys/time.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -# Checks for typedefs, structures, and compiler characteristics. -echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset x; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *ccp; - char **p; - /* 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"; - ccp = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++ccp; - p = (char**) ccp; - ccp = (char const *const *) p; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - *t++ = 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; - } -#endif +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes; then : - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_const=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_const=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6 -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for off_t" >&5 -echo $ECHO_N "checking for off_t... $ECHO_C" >&6 -if test "${ac_cv_type_off_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((off_t *) 0) - return 0; -if (sizeof (off_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_off_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_off_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 -echo "${ECHO_T}$ac_cv_type_off_t" >&6 -if test $ac_cv_type_off_t = yes; then - : else cat >>confdefs.h <<_ACEOF -#define off_t long +#define size_t unsigned int _ACEOF fi -echo "$as_me:$LINENO: checking for pid_t" >&5 -echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 -if test "${ac_cv_type_pid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } +if ${ac_cv_header_time+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((pid_t *) 0) - return 0; -if (sizeof (pid_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_pid_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_pid_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 -echo "${ECHO_T}$ac_cv_type_pid_t" >&6 -if test $ac_cv_type_pid_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define pid_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6 -if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((size_t *) 0) - return 0; -if (sizeof (size_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_size_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_size_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6 -if test $ac_cv_type_size_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -3848,48 +4047,27 @@ return 0; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_time=no + ac_cv_header_time=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then -cat >>confdefs.h <<\_ACEOF -#define TIME_WITH_SYS_TIME 1 -_ACEOF +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi -echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 -echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 -if test "${ac_cv_struct_tm+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 +$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } +if ${ac_cv_struct_tm+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -3897,166 +4075,106 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { -struct tm *tp; tp->tm_sec; +struct tm tm; + int *p = &tm.tm_sec; + return !p; ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_struct_tm=sys/time.h + ac_cv_struct_tm=sys/time.h fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 -echo "${ECHO_T}$ac_cv_struct_tm" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 +$as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then -cat >>confdefs.h <<\_ACEOF -#define TM_IN_SYS_TIME 1 -_ACEOF +$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi -echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 -echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6 -if test "${ac_cv_header_stdbool_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 +$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } +if ${ac_cv_header_stdbool_h+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#ifndef bool -# error bool is not defined -#endif -#ifndef false -# error false is not defined -#endif -#if false -# error false is not 0 -#endif -#ifndef true -# error true is not defined -#endif -#if true != 1 -# error true is not 1 -#endif -#ifndef __bool_true_false_are_defined -# error __bool_true_false_are_defined is not defined -#endif - - struct s { _Bool s: 1; _Bool t; } s; - - char a[true == 1 ? 1 : -1]; - char b[false == 0 ? 1 : -1]; - char c[__bool_true_false_are_defined == 1 ? 1 : -1]; - char d[(bool) -0.5 == true ? 1 : -1]; - bool e = &s; - char f[(_Bool) -0.0 == false ? 1 : -1]; - char g[true]; - char h[sizeof (_Bool)]; - char i[sizeof s.t]; + #include + #ifndef bool + "error: bool is not defined" + #endif + #ifndef false + "error: false is not defined" + #endif + #if false + "error: false is not 0" + #endif + #ifndef true + "error: true is not defined" + #endif + #if true != 1 + "error: true is not 1" + #endif + #ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" + #endif + + struct s { _Bool s: 1; _Bool t; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + /* See body of main program for 'e'. */ + char f[(_Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (_Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + _Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; + /* Catch a bug in an HP-UX C compiler. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + */ + _Bool q = true; + _Bool *pq = &q; int main () { - return !a + !b + !c + !d + !e + !f + !g + !h + !i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdbool_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_stdbool_h=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 -echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6 -echo "$as_me:$LINENO: checking for _Bool" >&5 -echo $ECHO_N "checking for _Bool... $ECHO_C" >&6 -if test "${ac_cv_type__Bool+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((_Bool *) 0) - return 0; -if (sizeof (_Bool)) - return 0; + bool e = &s; + *pq |= q; + *pq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq); + ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type__Bool=yes +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdbool_h=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type__Bool=no + ac_cv_header_stdbool_h=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 -echo "${ECHO_T}$ac_cv_type__Bool" >&6 -if test $ac_cv_type__Bool = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 +$as_echo "$ac_cv_header_stdbool_h" >&6; } + ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" +if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 @@ -4065,33 +4183,27 @@ _ACEOF fi + if test $ac_cv_header_stdbool_h = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_STDBOOL_H 1 -_ACEOF +$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi # Checks for library functions. -echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 -echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 -if test "${ac_cv_type_uid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 +$as_echo_n "checking for uid_t in sys/types.h... " >&6; } +if ${ac_cv_type_uid_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then + $EGREP "uid_t" >/dev/null 2>&1; then : ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no @@ -4099,177 +4211,38 @@ fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 -echo "${ECHO_T}$ac_cv_type_uid_t" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +$as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then -cat >>confdefs.h <<\_ACEOF -#define uid_t int -_ACEOF +$as_echo "#define uid_t int" >>confdefs.h -cat >>confdefs.h <<\_ACEOF -#define gid_t int -_ACEOF +$as_echo "#define gid_t int" >>confdefs.h fi - for ac_header in unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +do : + ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_UNISTD_H 1 _ACEOF fi done -echo "$as_me:$LINENO: checking for working chown" >&5 -echo $ECHO_N "checking for working chown... $ECHO_C" >&6 -if test "${ac_cv_func_chown_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5 +$as_echo_n "checking for working chown... " >&6; } +if ${ac_cv_func_chown_works+:} false; then : + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : ac_cv_func_chown_works=no else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #include @@ -4281,69 +4254,48 @@ main () struct stat before, after; if (creat (f, 0600) < 0) - exit (1); + return 1; if (stat (f, &before) < 0) - exit (1); + return 1; if (chown (f, (uid_t) -1, (gid_t) -1) == -1) - exit (1); + return 1; if (stat (f, &after) < 0) - exit (1); - exit ((before.st_uid == after.st_uid - && before.st_gid == after.st_gid) ? 0 : 1); + return 1; + return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid); ; return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_chown_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_chown_works=no + ac_cv_func_chown_works=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi + rm -f conftest.chown fi -echo "$as_me:$LINENO: result: $ac_cv_func_chown_works" >&5 -echo "${ECHO_T}$ac_cv_func_chown_works" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5 +$as_echo "$ac_cv_func_chown_works" >&6; } if test $ac_cv_func_chown_works = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_CHOWN 1 -_ACEOF +$as_echo "#define HAVE_CHOWN 1" >>confdefs.h fi -echo "$as_me:$LINENO: checking whether closedir returns void" >&5 -echo $ECHO_N "checking whether closedir returns void... $ECHO_C" >&6 -if test "${ac_cv_func_closedir_void+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5 +$as_echo_n "checking whether closedir returns void... " >&6; } +if ${ac_cv_func_closedir_void+:} false; then : + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : ac_cv_func_closedir_void=yes else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #include <$ac_header_dirent> @@ -4354,109 +4306,70 @@ int closedir (); int main () { -exit (closedir (opendir (".")) != 0); +return closedir (opendir (".")) != 0; ; return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_closedir_void=no else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_closedir_void=yes + ac_cv_func_closedir_void=yes fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi -echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5 -echo "${ECHO_T}$ac_cv_func_closedir_void" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_closedir_void" >&5 +$as_echo "$ac_cv_func_closedir_void" >&6; } if test $ac_cv_func_closedir_void = yes; then -cat >>confdefs.h <<\_ACEOF -#define CLOSEDIR_VOID 1 -_ACEOF +$as_echo "#define CLOSEDIR_VOID 1" >>confdefs.h fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! -echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 -if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 +$as_echo_n "checking for working alloca.h... " >&6; } +if ${ac_cv_working_alloca_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); + if (p) return 0; ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_working_alloca_h=no + ac_cv_working_alloca_h=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 +$as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA_H 1 -_ACEOF +$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi -echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 -if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 +$as_echo_n "checking for alloca... " >&6; } +if ${ac_cv_func_alloca_works+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca @@ -4465,14 +4378,14 @@ cat >>conftest.$ac_ext <<_ACEOF # include # define alloca _alloca # else -# if HAVE_ALLOCA_H +# ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); +void *alloca (size_t); # endif # endif # endif @@ -4483,39 +4396,25 @@ int main () { char *p = (char *) alloca (1); + if (p) return 0; ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_alloca_works=no + ac_cv_func_alloca_works=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 +$as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA 1 -_ACEOF +$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions @@ -4523,26 +4422,19 @@ else # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. -ALLOCA=alloca.$ac_objext +ALLOCA=\${LIBOBJDIR}alloca.$ac_objext -cat >>confdefs.h <<\_ACEOF -#define C_ALLOCA 1 -_ACEOF +$as_echo "#define C_ALLOCA 1" >>confdefs.h -echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 -if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 +$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } +if ${ac_cv_os_cray+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if defined(CRAY) && ! defined(CRAY2) +#if defined CRAY && ! defined CRAY2 webecray #else wenotbecray @@ -4550,7 +4442,7 @@ wenotbecray _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then + $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no @@ -4558,84 +4450,13 @@ fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 +$as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* 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_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func @@ -4647,67 +4468,46 @@ fi done fi -echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 -if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 +$as_echo_n "checking stack direction for C alloca... " >&6; } +if ${ac_cv_c_stack_direction+:} false; then : + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +$ac_includes_default int -find_stack_direction () +find_stack_direction (int *addr, int depth) { - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; + int dir, dummy = 0; + if (! addr) + addr = &dummy; + *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; + dir = depth ? find_stack_direction (addr, depth - 1) : 0; + return dir + dummy; } int -main () +main (int argc, char **argv) { - exit (find_stack_direction () < 0); + return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_c_stack_direction=-1 + ac_cv_c_stack_direction=-1 fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -fi -echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 +$as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF @@ -4715,455 +4515,154 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for mbstate_t" >&5 -echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 -if test "${ac_cv_type_mbstate_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 +$as_echo_n "checking for mbstate_t... " >&6; } +if ${ac_cv_type_mbstate_t+:} false; then : + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -# include -int -main () -{ -mbstate_t x; return sizeof x; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_mbstate_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_mbstate_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 -echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6 - if test $ac_cv_type_mbstate_t = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MBSTATE_T 1 -_ACEOF - - else - -cat >>confdefs.h <<\_ACEOF -#define mbstate_t int -_ACEOF - - fi -echo "$as_me:$LINENO: checking for working POSIX fnmatch" >&5 -echo $ECHO_N "checking for working POSIX fnmatch... $ECHO_C" >&6 -if test "${ac_cv_func_fnmatch_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Some versions of Solaris, SCO, and the GNU C Library - # have a broken or incompatible fnmatch. - # So we run a test program. If we are cross-compiling, take no chance. - # Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. - if test "$cross_compiling" = yes; then - ac_cv_func_fnmatch_works=cross -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -# define y(a, b, c) (fnmatch (a, b, c) == 0) -# define n(a, b, c) (fnmatch (a, b, c) == FNM_NOMATCH) - -int -main () -{ -exit - (!(y ("a*", "abc", 0) - && n ("d*/*1", "d/s/1", FNM_PATHNAME) - && y ("a\\\\bc", "abc", 0) - && n ("a\\\\bc", "abc", FNM_NOESCAPE) - && y ("*x", ".x", 0) - && n ("*x", ".x", FNM_PERIOD) - && 1)); - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_fnmatch_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_fnmatch_works=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_fnmatch_works" >&5 -echo "${ECHO_T}$ac_cv_func_fnmatch_works" >&6 -if test $ac_cv_func_fnmatch_works = yes; then - rm -f $ac_config_libobj_dir/fnmatch.h -else - echo "$as_me:$LINENO: checking whether getenv is declared" >&5 -echo $ECHO_N "checking whether getenv is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_getenv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef getenv - char *p = (char *) getenv; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_getenv=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_have_decl_getenv=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getenv" >&6 -if test $ac_cv_have_decl_getenv = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETENV 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETENV 0 -_ACEOF - - -fi - - - - - - -for ac_func in btowc mbsrtowcs mempcpy wmempcpy -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* 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_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +# include int main () { -return f != $ac_func; +mbstate_t x; return sizeof x; ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_mbstate_t=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" + ac_cv_type_mbstate_t=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 +$as_echo "$ac_cv_type_mbstate_t" >&6; } + if test $ac_cv_type_mbstate_t = yes; then -fi -done +$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h + else +$as_echo "#define mbstate_t int" >>confdefs.h -for ac_header in wchar.h wctype.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working POSIX fnmatch" >&5 +$as_echo_n "checking for working POSIX fnmatch... " >&6; } +if ${ac_cv_func_fnmatch_works+:} false; then : + $as_echo_n "(cached) " >&6 else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes + # Some versions of Solaris, SCO, and the GNU C Library + # have a broken or incompatible fnmatch. + # So we run a test program. If we are cross-compiling, take no chance. + # Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. + if test "$cross_compiling" = yes; then : + ac_cv_func_fnmatch_works=cross else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <$ac_header> +#include +# define y(a, b, c) (fnmatch (a, b, c) == 0) +# define n(a, b, c) (fnmatch (a, b, c) == FNM_NOMATCH) + +int +main () +{ +return + (!(y ("a*", "abc", 0) + && n ("d*/*1", "d/s/1", FNM_PATHNAME) + && y ("a\\\\bc", "abc", 0) + && n ("a\\\\bc", "abc", FNM_NOESCAPE) + && y ("*x", ".x", 0) + && n ("*x", ".x", FNM_PERIOD) + && 1)); + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_fnmatch_works=yes else - ac_cpp_err=yes + ac_cv_func_fnmatch_works=no fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fnmatch_works" >&5 +$as_echo "$ac_cv_func_fnmatch_works" >&6; } +if test $ac_cv_func_fnmatch_works = yes; then : + rm -f "$ac_config_libobj_dir/fnmatch.h" else - eval "$as_ac_Header=$ac_header_preproc" + ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default" +if test "x$ac_cv_have_decl_getenv" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETENV $ac_have_decl +_ACEOF + +for ac_func in btowc mbsrtowcs mempcpy wmempcpy +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +done + +for ac_header in wchar.h wctype.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 `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done -LIBOBJS="$LIBOBJS fnmatch.$ac_objext" - ac_config_links="$ac_config_links $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" +case " $LIBOBJS " in + *" fnmatch.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS fnmatch.$ac_objext" + ;; +esac + +ac_config_links="$ac_config_links $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" -cat >>confdefs.h <<\_ACEOF -#define fnmatch rpl_fnmatch -_ACEOF +$as_echo "#define fnmatch rpl_fnmatch" >>confdefs.h fi - if test $ac_cv_c_compiler_gnu = yes; then - echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 -echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 -if test "${ac_cv_prog_gcc_traditional+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 +$as_echo_n "checking whether $CC needs -traditional... " >&6; } +if ${ac_cv_prog_gcc_traditional+:} false; then : + $as_echo_n "(cached) " >&6 else ac_pattern="Autoconf.*'x'" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then + $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no @@ -5172,189 +4671,49 @@ rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then + $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi -echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 -echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 +$as_echo "$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi - for ac_header in stdlib.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +do : + ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" +if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_STDLIB_H 1 _ACEOF fi done -echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 -echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6 -if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 +$as_echo_n "checking for GNU libc compatible malloc... " >&6; } +if ${ac_cv_func_malloc_0_nonnull+:} false; then : + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : ac_cv_func_malloc_0_nonnull=no else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#if STDC_HEADERS || HAVE_STDLIB_H +#if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); @@ -5363,81 +4722,61 @@ char *malloc (); int main () { -exit (malloc (0) ? 0 : 1); +return ! malloc (0); ; return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_malloc_0_nonnull=no + ac_cv_func_malloc_0_nonnull=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi -echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 -echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6 -if test $ac_cv_func_malloc_0_nonnull = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 +$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } +if test $ac_cv_func_malloc_0_nonnull = yes; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_MALLOC 1 -_ACEOF +$as_echo "#define HAVE_MALLOC 1" >>confdefs.h else - cat >>confdefs.h <<\_ACEOF -#define HAVE_MALLOC 0 -_ACEOF + $as_echo "#define HAVE_MALLOC 0" >>confdefs.h - LIBOBJS="$LIBOBJS malloc.$ac_objext" + case " $LIBOBJS " in + *" malloc.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS malloc.$ac_objext" + ;; +esac -cat >>confdefs.h <<\_ACEOF -#define malloc rpl_malloc -_ACEOF -fi +$as_echo "#define malloc rpl_malloc" >>confdefs.h +fi -echo "$as_me:$LINENO: checking for working memcmp" >&5 -echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6 -if test "${ac_cv_func_memcmp_working+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 +$as_echo_n "checking for working memcmp... " >&6; } +if ${ac_cv_func_memcmp_working+:} false; then : + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : ac_cv_func_memcmp_working=no else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - +$ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ - char c0 = 0x40, c1 = 0x80, c2 = 0x81; + char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) - exit (1); + return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. @@ -5448,184 +4787,50 @@ main () int i; for (i = 0; i < 4; i++) { - char *a = foo + i; - char *b = bar + i; - strcpy (a, "--------01111111"); - strcpy (b, "--------10000000"); - if (memcmp (a, b, 16) >= 0) - exit (1); + char *a = foo + i; + char *b = bar + i; + strcpy (a, "--------01111111"); + strcpy (b, "--------10000000"); + if (memcmp (a, b, 16) >= 0) + return 1; } - exit (0); + return 0; } ; return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_memcmp_working=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_memcmp_working=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + ac_cv_func_memcmp_working=no fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 -echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6 -test $ac_cv_func_memcmp_working = no && LIBOBJS="$LIBOBJS memcmp.$ac_objext" - - -for ac_header in sys/time.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 +$as_echo "$ac_cv_func_memcmp_working" >&6; } +test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in + *" memcmp.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" + ;; +esac -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then + for ac_header in $ac_header_list +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 `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -5633,121 +4838,58 @@ fi done -for ac_func in alarm -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* 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_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then + + + + + for ac_func in $ac_func_list +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done -echo "$as_me:$LINENO: checking for working mktime" >&5 -echo $ECHO_N "checking for working mktime... $ECHO_C" >&6 -if test "${ac_cv_func_working_mktime+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 +$as_echo_n "checking for working mktime... " >&6; } +if ${ac_cv_func_working_mktime+:} false; then : + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : ac_cv_func_working_mktime=no else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Test program from Paul Eggert and Tony Leneis. */ -#if TIME_WITH_SYS_TIME +#ifdef TIME_WITH_SYS_TIME # include # include #else -# if HAVE_SYS_TIME_H +# ifdef HAVE_SYS_TIME_H # include # else # include # endif #endif -#if HAVE_UNISTD_H +#include +#include + +#ifdef HAVE_UNISTD_H # include #endif -#if !HAVE_ALARM +#ifndef HAVE_ALARM # define alarm(X) /* empty */ #endif @@ -5755,17 +4897,18 @@ cat >>conftest.$ac_ext <<_ACEOF #undef putenv static time_t time_t_max; +static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ -static const char *const tz_strings[] = { +static const char *tz_strings[] = { (const char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) -/* Fail if mktime fails to convert a date in the spring-forward gap. +/* Return 0 if mktime fails to convert a date in the spring-forward gap. Based on a problem report from Andreas Jaeger. */ -static void +static int spring_forward_gap () { /* glibc (up to about 1998-10-07) failed this test. */ @@ -5775,7 +4918,7 @@ spring_forward_gap () instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ - putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); + putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); tm.tm_year = 98; tm.tm_mon = 3; @@ -5784,23 +4927,25 @@ spring_forward_gap () tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; - if (mktime (&tm) == (time_t)-1) - exit (1); + return mktime (&tm) != (time_t) -1; } -static void -mktime_test (now) - time_t now; +static int +mktime_test1 (time_t now) { struct tm *lt; - if ((lt = localtime (&now)) && mktime (lt) != now) - exit (1); - now = time_t_max - now; - if ((lt = localtime (&now)) && mktime (lt) != now) - exit (1); + return ! (lt = localtime (&now)) || mktime (lt) == now; } -static void +static int +mktime_test (time_t now) +{ + return (mktime_test1 (now) + && mktime_test1 ((time_t) (time_t_max - now)) + && mktime_test1 ((time_t) (time_t_min + now))); +} + +static int irix_6_4_bug () { /* Based on code from Ariel Faigon. */ @@ -5813,13 +4958,11 @@ irix_6_4_bug () tm.tm_sec = 0; tm.tm_isdst = -1; mktime (&tm); - if (tm.tm_mon != 2 || tm.tm_mday != 31) - exit (1); + return tm.tm_mon == 2 && tm.tm_mday == 31; } -static void -bigtime_test (j) - int j; +static int +bigtime_test (int j) { struct tm tm; time_t now; @@ -5839,8 +4982,39 @@ bigtime_test (j) && lt->tm_wday == tm.tm_wday && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) - exit (1); + return 0; } + return 1; +} + +static int +year_2050_test () +{ + /* The correct answer for 2050-02-01 00:00:00 in Pacific time, + ignoring leap seconds. */ + unsigned long int answer = 2527315200UL; + + struct tm tm; + time_t t; + tm.tm_year = 2050 - 1900; + tm.tm_mon = 2 - 1; + tm.tm_mday = 1; + tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + tm.tm_isdst = -1; + + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); + + t = mktime (&tm); + + /* Check that the result is either a failure, or close enough + to the correct answer that we can assume the discrepancy is + due to leap seconds. */ + return (t == (time_t) -1 + || (0 < t && answer - 120 <= t && t <= answer + 120)); } int @@ -5854,299 +5028,86 @@ main () isn't worth using anyway. */ alarm (60); - for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) - continue; - time_t_max--; + for (;;) + { + t = (time_t_max << 1) + 1; + if (t <= time_t_max) + break; + time_t_max = t; + } + time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; + delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) - putenv (tz_strings[i]); + putenv ((char*) tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) - mktime_test (t); - mktime_test ((time_t) 60 * 60); - mktime_test ((time_t) 60 * 60 * 24); - - for (j = 1; 0 < j; j <<= 1) - bigtime_test (j); - bigtime_test (j - 1); + if (! mktime_test (t)) + return 1; + if (! (mktime_test ((time_t) 1) + && mktime_test ((time_t) (60 * 60)) + && mktime_test ((time_t) (60 * 60 * 24)))) + return 1; + + for (j = 1; ; j <<= 1) + if (! bigtime_test (j)) + return 1; + else if (INT_MAX / 2 < j) + break; + if (! bigtime_test (INT_MAX)) + return 1; } - irix_6_4_bug (); - spring_forward_gap (); - exit (0); + return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_working_mktime=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_working_mktime=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 -echo "${ECHO_T}$ac_cv_func_working_mktime" >&6 -if test $ac_cv_func_working_mktime = no; then - LIBOBJS="$LIBOBJS mktime.$ac_objext" -fi - - - -for ac_header in stdlib.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no + ac_cv_func_working_mktime=no fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5 +$as_echo "$ac_cv_func_working_mktime" >&6; } +if test $ac_cv_func_working_mktime = no; then + case " $LIBOBJS " in + *" mktime.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS mktime.$ac_objext" + ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -fi -done -for ac_func in getpagesize -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* 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_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +for ac_func in getpagesize +do : + ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" +if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_GETPAGESIZE 1 _ACEOF fi done -echo "$as_me:$LINENO: checking for working mmap" >&5 -echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 +$as_echo_n "checking for working mmap... " >&6; } +if ${ac_cv_func_mmap_fixed_mapped+:} false; then : + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : ac_cv_func_mmap_fixed_mapped=no else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ @@ -6177,21 +5138,16 @@ $ac_includes_default #include #include -#if !STDC_HEADERS && !HAVE_STDLIB_H +#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ -#if !HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# if !HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - +#ifndef HAVE_GETPAGESIZE # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ -# if HAVE_SYS_PARAM_H +# ifdef HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE @@ -6222,41 +5178,56 @@ int main () { char *data, *data2, *data3; + const char *cdata2; int i, pagesize; - int fd; + int fd, fd2; pagesize = getpagesize (); /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) - exit (1); + return 1; for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) - exit (1); + return 2; if (write (fd, data, pagesize) != pagesize) - exit (1); + return 3; close (fd); + /* Next, check that the tail of a page is zero-filled. File must have + non-zero length, otherwise we risk SIGBUS for entire page. */ + fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); + if (fd2 < 0) + return 4; + cdata2 = ""; + if (write (fd2, cdata2, 1) != 1) + return 5; + data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); + if (data2 == MAP_FAILED) + return 6; + for (i = 0; i < pagesize; ++i) + if (*(data2 + i)) + return 7; + close (fd2); + if (munmap (data2, pagesize)) + return 8; + /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) - exit (1); - data2 = (char *) malloc (2 * pagesize); - if (!data2) - exit (1); - data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); + return 9; if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - exit (1); + MAP_PRIVATE | MAP_FIXED, fd, 0L)) + return 10; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) - exit (1); + return 11; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on @@ -6265,213 +5236,63 @@ main () *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) - exit (1); + return 12; if (read (fd, data3, pagesize) != pagesize) - exit (1); + return 13; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) - exit (1); + return 14; close (fd); - exit (0); + return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_mmap_fixed_mapped=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_mmap_fixed_mapped=no + ac_cv_func_mmap_fixed_mapped=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi + fi -echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 -echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 +$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } if test $ac_cv_func_mmap_fixed_mapped = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_MMAP 1 -_ACEOF +$as_echo "#define HAVE_MMAP 1" >>confdefs.h fi -rm -f conftest.mmap - - +rm -f conftest.mmap conftest.txt for ac_header in sys/select.h sys/socket.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------ ## -## Report this to bug-autoconf@gnu.org. ## -## ------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +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 `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done -echo "$as_me:$LINENO: checking types of arguments for select" >&5 -echo $ECHO_N "checking types of arguments for select... $ECHO_C" >&6 -if test "${ac_cv_func_select_args+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for select" >&5 +$as_echo_n "checking types of arguments for select... " >&6; } +if ${ac_cv_func_select_args+:} false; then : + $as_echo_n "(cached) " >&6 else for ac_arg234 in 'fd_set *' 'int *' 'void *'; do - for ac_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do + for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default -#if HAVE_SYS_SELECT_H +#ifdef HAVE_SYS_SELECT_H # include #endif -#if HAVE_SYS_SOCKET_H +#ifdef HAVE_SYS_SOCKET_H # include #endif @@ -6479,40 +5300,25 @@ int main () { extern int select ($ac_arg1, - $ac_arg234, $ac_arg234, $ac_arg234, - $ac_arg5); + $ac_arg234, $ac_arg234, $ac_arg234, + $ac_arg5); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done done done # Provide a safe default value. -: ${ac_cv_func_select_args='int,int *,struct timeval *'} +: "${ac_cv_func_select_args=int,int *,struct timeval *}" fi -echo "$as_me:$LINENO: result: $ac_cv_func_select_args" >&5 -echo "${ECHO_T}$ac_cv_func_select_args" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_select_args" >&5 +$as_echo "$ac_cv_func_select_args" >&6; } ac_save_IFS=$IFS; IFS=',' set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` IFS=$ac_save_IFS @@ -6534,119 +5340,41 @@ _ACEOF rm -f conftest* -echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_signal=int -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - -echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5 -echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6 -if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 +$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } +if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : + $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; - /* Linux will dereference the symlink and fail. - That is better in the sense that it means we will not - have to compile and use the lstat wrapper. */ - exit (lstat ("conftest.sym/", &sbuf) ? 0 : 1); + /* Linux will dereference the symlink and fail, as required by POSIX. + That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_lstat_dereferences_slashed_symlink=no + ac_cv_func_lstat_dereferences_slashed_symlink=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi + else # If the `ln -s' command failed, then we probably don't even # have an lstat function. @@ -6655,8 +5383,8 @@ fi rm -f conftest.sym conftest.file fi -echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 -echo "${ECHO_T}$ac_cv_func_lstat_dereferences_slashed_symlink" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 +$as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && @@ -6665,210 +5393,109 @@ cat >>confdefs.h <<_ACEOF _ACEOF -if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then - LIBOBJS="$LIBOBJS lstat.$ac_objext" +if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then + case " $LIBOBJS " in + *" lstat.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS lstat.$ac_objext" + ;; +esac + fi -echo "$as_me:$LINENO: checking whether stat accepts an empty string" >&5 -echo $ECHO_N "checking whether stat accepts an empty string... $ECHO_C" >&6 -if test "${ac_cv_func_stat_empty_string_bug+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 +$as_echo_n "checking whether stat accepts an empty string... " >&6; } +if ${ac_cv_func_stat_empty_string_bug+:} false; then : + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then + if test "$cross_compiling" = yes; then : ac_cv_func_stat_empty_string_bug=yes else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; - exit (stat ("", &sbuf) ? 1 : 0); - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_stat_empty_string_bug=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_stat_empty_string_bug=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_stat_empty_string_bug" >&5 -echo "${ECHO_T}$ac_cv_func_stat_empty_string_bug" >&6 -if test $ac_cv_func_stat_empty_string_bug = yes; then - LIBOBJS="$LIBOBJS stat.$ac_objext" - -cat >>confdefs.h <<_ACEOF -#define HAVE_STAT_EMPTY_STRING_BUG 1 -_ACEOF - -fi - - -for ac_func in strftime -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* 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_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; + return stat ("", &sbuf) == 0; ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_stat_empty_string_bug=no else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_func_stat_empty_string_bug=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi -eval "$as_ac_var=no" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 +$as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } +if test $ac_cv_func_stat_empty_string_bug = yes; then + case " $LIBOBJS " in + *" stat.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS stat.$ac_objext" + ;; +esac + + +cat >>confdefs.h <<_ACEOF +#define HAVE_STAT_EMPTY_STRING_BUG 1 +_ACEOF + fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then + +for ac_func in strftime +do : + ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" +if test "x$ac_cv_func_strftime" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define HAVE_STRFTIME 1 _ACEOF else # strftime is in -lintl on SCO UNIX. -echo "$as_me:$LINENO: checking for strftime in -lintl" >&5 -echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6 -if test "${ac_cv_lib_intl_strftime+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 +$as_echo_n "checking for strftime in -lintl... " >&6; } +if ${ac_cv_lib_intl_strftime+:} false; then : + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* 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 -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char strftime (); int main () { -strftime (); +return strftime (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then +if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_strftime=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_intl_strftime=no + ac_cv_lib_intl_strftime=no fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5 -echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6 -if test $ac_cv_lib_intl_strftime = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_STRFTIME 1 -_ACEOF +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5 +$as_echo "$ac_cv_lib_intl_strftime" >&6; } +if test "x$ac_cv_lib_intl_strftime" = xyes; then : + $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h LIBS="-lintl $LIBS" fi @@ -6876,164 +5503,18 @@ fi fi done - for ac_func in vprintf -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* 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_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +do : + ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" +if test "x$ac_cv_func_vprintf" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -echo "$as_me:$LINENO: checking for _doprnt" >&5 -echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6 -if test "${ac_cv_func__doprnt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char _doprnt (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _doprnt (); -/* 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__doprnt) || defined (__stub____doprnt) -choke me -#else -char (*f) () = _doprnt; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != _doprnt; - ; - return 0; -} +#define HAVE_VPRINTF 1 _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func__doprnt=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func__doprnt=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 -echo "${ECHO_T}$ac_cv_func__doprnt" >&6 -if test $ac_cv_func__doprnt = yes; then +ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" +if test "x$ac_cv_func__doprnt" = xyes; then : -cat >>confdefs.h <<\_ACEOF -#define HAVE_DOPRNT 1 -_ACEOF +$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h fi @@ -7041,109 +5522,20 @@ fi done - - - - - - - - - - - - - - - - - - for ac_func in bzero ftruncate getcwd gethostbyaddr gethostbyname gettimeofday inet_ntoa memset munmap regcomp select socket strcasecmp strchr strdup strncasecmp strrchr strstr -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ -#ifdef __STDC__ -# include -#else -# include -#endif -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* 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_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done - ac_config_files="$ac_config_files Makefile bouncer/Makefile checker/Makefile collection/Makefile lib/Makefile nfo/Makefile nukes/Makefile pre/Makefile pre/modules/Makefile reset/Makefile sfv/Makefile thread/Makefile unzip/Makefile util/Makefile who/Makefile zip/Makefile" +ac_config_files="$ac_config_files Makefile bouncer/Makefile checker/Makefile collection/Makefile lib/Makefile nfo/Makefile nukes/Makefile pre/Makefile pre/modules/Makefile reset/Makefile sfv/Makefile thread/Makefile unzip/Makefile util/Makefile who/Makefile zip/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -7163,39 +5555,70 @@ _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, don't put newlines in cache variables' values. +# 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 `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). + 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" - ;; + "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 \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; - esac; -} | + esac | + sort +) | sed ' + /^ac_cv_env_/b end t clear - : clear + :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end - /^ac_cv_env/!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" && echo "updating cache $cache_file" - cat confcache >$cache_file + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else - echo "not updating unwritable cache $cache_file" + { $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 @@ -7204,32 +5627,19 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ 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[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - DEFS=-DHAVE_CONFIG_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_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' + 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 @@ -7237,12 +5647,14 @@ LTLIBOBJS=$ac_ltlibobjs -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF +{ $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. @@ -7252,261 +5664,387 @@ cat >$CONFIG_STATUS <<_ACEOF debug=false ac_cs_recheck=false ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +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=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset + setopt NO_GLOB_SUBST else - as_unset=false + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac fi -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var +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_unset $as_var + 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 -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; 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 + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' fi - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# 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 - # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh + 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 - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +# 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. +as_myself= +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 + 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 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done + ;; +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 -;; - esac +PS1='$ ' +PS2='> ' +PS4='+ ' - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } +# 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 - # 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 sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} +# 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 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac -if expr a : '\(a\)' >/dev/null 2>&1; then +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 -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else +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 -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi -rm -f conf$$ conf$$.exe conf$$.file +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=: + as_mkdir_p='mkdir -p "$as_dir"' else + test -d ./-p && rmdir ./-p as_mkdir_p=false fi -as_executable_p="test -f" + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -# CDPATH. -$as_unset CDPATH exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to +## ----------------------------------- ## +## 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. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - +# values after options handling. +ac_log=" This file was extended by FULL-PACKAGE-NAME $as_me VERSION, which was -generated by GNU Autoconf 2.57. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -7514,44 +6052,46 @@ generated by GNU Autoconf 2.57. Invocation command line was CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + _ACEOF -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_links="$ac_config_links" -cat >>$CONFIG_STATUS <<\_ACEOF +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. +\`$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 [OPTIONS] [FILE]... +Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages + -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] + --file=FILE[:TEMPLATE] instantiate the configuration file FILE - --header=FILE[:TEMPLATE] + --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: @@ -7563,84 +6103,89 @@ $config_headers Configuration links: $config_links -Report bugs to ." -_ACEOF +Report bugs to ." -cat >>$CONFIG_STATUS <<_ACEOF +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ FULL-PACKAGE-NAME config.status VERSION -configured by $0, generated by GNU Autoconf 2.57, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +test -n "\$AWK" || AWK=awk _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. +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_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 ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; esac case $ac_option in # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) + --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 - CONFIG_FILES="$CONFIG_FILES $ac_optarg" + 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;; --header | --heade | --head | --hea ) $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --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. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; - *) ac_config_targets="$ac_config_targets $1" ;; + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; esac shift @@ -7654,47 +6199,61 @@ if $ac_cs_silent; then fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + 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 +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - - -cat >>$CONFIG_STATUS <<\_ACEOF +# Handling of arguments. for ac_config_target in $ac_config_targets do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "bouncer/Makefile" ) CONFIG_FILES="$CONFIG_FILES bouncer/Makefile" ;; - "checker/Makefile" ) CONFIG_FILES="$CONFIG_FILES checker/Makefile" ;; - "collection/Makefile" ) CONFIG_FILES="$CONFIG_FILES collection/Makefile" ;; - "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; - "nfo/Makefile" ) CONFIG_FILES="$CONFIG_FILES nfo/Makefile" ;; - "nukes/Makefile" ) CONFIG_FILES="$CONFIG_FILES nukes/Makefile" ;; - "pre/Makefile" ) CONFIG_FILES="$CONFIG_FILES pre/Makefile" ;; - "pre/modules/Makefile" ) CONFIG_FILES="$CONFIG_FILES pre/modules/Makefile" ;; - "reset/Makefile" ) CONFIG_FILES="$CONFIG_FILES reset/Makefile" ;; - "sfv/Makefile" ) CONFIG_FILES="$CONFIG_FILES sfv/Makefile" ;; - "thread/Makefile" ) CONFIG_FILES="$CONFIG_FILES thread/Makefile" ;; - "unzip/Makefile" ) CONFIG_FILES="$CONFIG_FILES unzip/Makefile" ;; - "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; - "who/Makefile" ) CONFIG_FILES="$CONFIG_FILES who/Makefile" ;; - "zip/Makefile" ) CONFIG_FILES="$CONFIG_FILES zip/Makefile" ;; - "$ac_config_libobj_dir/fnmatch.h" ) CONFIG_LINKS="$CONFIG_LINKS $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "$ac_config_libobj_dir/fnmatch.h") CONFIG_LINKS="$CONFIG_LINKS $ac_config_libobj_dir/fnmatch.h:$ac_config_libobj_dir/fnmatch_.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "bouncer/Makefile") CONFIG_FILES="$CONFIG_FILES bouncer/Makefile" ;; + "checker/Makefile") CONFIG_FILES="$CONFIG_FILES checker/Makefile" ;; + "collection/Makefile") CONFIG_FILES="$CONFIG_FILES collection/Makefile" ;; + "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "nfo/Makefile") CONFIG_FILES="$CONFIG_FILES nfo/Makefile" ;; + "nukes/Makefile") CONFIG_FILES="$CONFIG_FILES nukes/Makefile" ;; + "pre/Makefile") CONFIG_FILES="$CONFIG_FILES pre/Makefile" ;; + "pre/modules/Makefile") CONFIG_FILES="$CONFIG_FILES pre/modules/Makefile" ;; + "reset/Makefile") CONFIG_FILES="$CONFIG_FILES reset/Makefile" ;; + "sfv/Makefile") CONFIG_FILES="$CONFIG_FILES sfv/Makefile" ;; + "thread/Makefile") CONFIG_FILES="$CONFIG_FILES thread/Makefile" ;; + "unzip/Makefile") CONFIG_FILES="$CONFIG_FILES unzip/Makefile" ;; + "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; + "who/Makefile") CONFIG_FILES="$CONFIG_FILES who/Makefile" ;; + "zip/Makefile") CONFIG_FILES="$CONFIG_FILES zip/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 @@ -7706,622 +6265,576 @@ if $ac_need_defaults; then fi # Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, +# simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. +# 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 || { - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_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 -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" } || { - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# 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 {' >"$ac_tmp/subs1.awk" && +_ACEOF + + { - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } + 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 >>"\$ac_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 >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" -_ACEOF +} +{ + 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 + } -cat >>$CONFIG_STATUS <<_ACEOF + print line +} -# -# CONFIG_FILES section. -# +_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 < "$ac_tmp/subs1.awk" > "$ac_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 -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@CPP@,$CPP,;t t -s,@EGREP@,$EGREP,;t t -s,@ALLOCA@,$ALLOCA,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { _ACEOF - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi -fi # test -n "$CONFIG_FILES" +done +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS " +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 - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_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 - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } + # 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 >"$ac_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=. -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi +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 - .) # No --srcdir option. We are building in place. + .) # We are building in place. ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. + 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 ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; + 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 -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + case $ac_mode in + :F) + # + # CONFIG_FILE + # - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # 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. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub + +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 +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;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,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". +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 +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_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' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_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 "$ac_tmp/stdin" case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # 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. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else - cat $tmp/config.h - rm -f $tmp/config.h - fi -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_LINKS section. -# - -for ac_file in : $CONFIG_LINKS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - - { echo "$as_me:$LINENO: linking $srcdir/$ac_source to $ac_dest" >&5 -echo "$as_me: linking $srcdir/$ac_source to $ac_dest" >&6;} - - if test ! -r $srcdir/$ac_source; then - { { echo "$as_me:$LINENO: error: $srcdir/$ac_source: file not found" >&5 -echo "$as_me: error: $srcdir/$ac_source: file not found" >&2;} - { (exit 1); exit 1; }; } + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 fi - rm -f $ac_dest - - # Make relative symlinks. - ac_dest_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dest_dir" + ;; + :L) + # + # CONFIG_LINK + # + + if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then + : else - as_dir="$ac_dest_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dest_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dest_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. + # Prefer the file from the source tree if names are identical. + if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then + ac_source=$srcdir/$ac_source + fi -if test "$ac_dest_dir" != .; then - ac_dir_suffix=/`echo "$ac_dest_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 +$as_echo "$as_me: linking $ac_source to $ac_file" >&6;} -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dest_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dest_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dest_dir" && cd ${ac_top_builddir}. && pwd` -ac_abs_srcdir=`cd "$ac_dest_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dest_dir" && cd $ac_top_srcdir && pwd` + if test ! -r "$ac_source"; then + as_fn_error $? "$ac_source: file not found" "$LINENO" 5 + fi + rm -f "$ac_file" + # Try a relative symlink, then a hard link, then a copy. + case $ac_source in + [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; + *) ac_rel_source=$ac_top_build_prefix$ac_source ;; + esac + ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || + ln "$ac_source" "$ac_file" 2>/dev/null || + cp -p "$ac_source" "$ac_file" || + as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 + fi + ;; - case $srcdir in - [\\/$]* | ?:[\\/]* ) ac_rel_source=$srcdir/$ac_source ;; - *) ac_rel_source=$ac_top_builddir$srcdir/$ac_source ;; esac - # Try a symlink, then a hard link, then a copy. - ln -s $ac_rel_source $ac_dest 2>/dev/null || - ln $srcdir/$ac_source $ac_dest 2>/dev/null || - cp -p $srcdir/$ac_source $ac_dest || - { { echo "$as_me:$LINENO: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&5 -echo "$as_me: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&2;} - { (exit 1); exit 1; }; } -done -_ACEOF +done # for ac_tag -cat >>$CONFIG_STATUS <<\_ACEOF -{ (exit 0); exit 0; } +as_fn_exit 0 _ACEOF -chmod +x $CONFIG_STATUS 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. @@ -8341,6 +6854,10 @@ if test "$no_create" != yes; then 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 || { (exit 1); exit 1; } + $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 diff --git a/src/lib/common.h b/src/lib/common.h index 8de4149..ca0b828 100644 --- a/src/lib/common.h +++ b/src/lib/common.h @@ -25,6 +25,7 @@ * This module should be outphased! */ #include +#include #define HIDDENDIRFILE "/ftp-data/misc/f00-hiddendirs.txt" diff --git a/src/lib/dirlist.h b/src/lib/dirlist.h index b7ff290..62233a1 100644 --- a/src/lib/dirlist.h +++ b/src/lib/dirlist.h @@ -29,6 +29,7 @@ #include #include #include +#include #include #define MAX_FILELEN 256 diff --git a/src/lib/genlistc.h b/src/lib/genlistc.h index 3779946..9e4b5b2 100644 --- a/src/lib/genlistc.h +++ b/src/lib/genlistc.h @@ -27,6 +27,7 @@ * Author: Soren */ #include +#include #define INSERT_NOORDER 0 #define INSERT_SORTED 1 diff --git a/src/lib/gllogs.c b/src/lib/gllogs.c index 8613a20..88bc04f 100644 --- a/src/lib/gllogs.c +++ b/src/lib/gllogs.c @@ -235,7 +235,7 @@ int gl_site_msg(char *from, char *to, char *msg) { return 0; t = time(0); - sprintf(buf, ctime(&t)); + sprintf(buf, "%s", ctime(&t)); p = (char*)&buf; while (*p) if (*p == '\n') diff --git a/src/lib/gllogs.h b/src/lib/gllogs.h index f7db403..e2d6c9d 100644 --- a/src/lib/gllogs.h +++ b/src/lib/gllogs.h @@ -30,6 +30,8 @@ #include #include +typedef unsigned short int ushort; + // define some locations for where to find glftpd logs. #define DUPEFILE "/ftp-data/logs/dupefile" #define DUPELOG "/ftp-data/logs/dupelog" diff --git a/src/lib/macro.h b/src/lib/macro.h index c963d94..4324649 100644 --- a/src/lib/macro.h +++ b/src/lib/macro.h @@ -27,6 +27,9 @@ * $Source: /home/cvs/footools/footools/src/lib/macro.h,v $ * Author: Soren */ + +#include + struct macro_list { char *mac_rep; char *mac_key; diff --git a/src/lib/pwdfile.c b/src/lib/pwdfile.c index 333740b..36ba8da 100644 --- a/src/lib/pwdfile.c +++ b/src/lib/pwdfile.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "stringtokenizer.h" #include "pwdfile.h" diff --git a/src/lib/sfv.h b/src/lib/sfv.h index 831fc28..6d8c926 100644 --- a/src/lib/sfv.h +++ b/src/lib/sfv.h @@ -32,6 +32,7 @@ #define _sfv_h #include +#include /* * Structure holding info about a sfv-file. diff --git a/src/lib/sockop.h b/src/lib/sockop.h index a338bad..b68865e 100644 --- a/src/lib/sockop.h +++ b/src/lib/sockop.h @@ -31,6 +31,8 @@ #include #include #include +#include +#include /* * Structure for listening on sockets. diff --git a/src/lib/stringtokenizer.c b/src/lib/stringtokenizer.c index 01eee46..adeaf21 100644 --- a/src/lib/stringtokenizer.c +++ b/src/lib/stringtokenizer.c @@ -20,6 +20,8 @@ */ #include +#include +#include #include "stringtokenizer.h" diff --git a/src/lib/who.c b/src/lib/who.c index d925f9e..9c4f267 100644 --- a/src/lib/who.c +++ b/src/lib/who.c @@ -138,7 +138,7 @@ int who_transfer_file(struct ONLINE *o, char *b) { r++; if (strstr(o->currentdir, s)) - sprintf(b, o->currentdir); + sprintf(b, "%s", o->currentdir); else sprintf(b, "%s/%s", o->currentdir, s); diff --git a/src/lib/who.h b/src/lib/who.h index 9a17943..aaeee93 100644 --- a/src/lib/who.h +++ b/src/lib/who.h @@ -36,6 +36,8 @@ #include #include #include +#include +#include #define TRANS_NONE 0 #define TRANS_UP 1 diff --git a/src/nfo/cleaner.c b/src/nfo/cleaner.c index de598cf..1bf0074 100644 --- a/src/nfo/cleaner.c +++ b/src/nfo/cleaner.c @@ -27,6 +27,8 @@ #include #include +#include +#include #include #include "mod_nfo.h" diff --git a/src/nfo/nfocleaner b/src/nfo/nfocleaner deleted file mode 100755 index 88770945eb3628676a0103c3edc289f756fb9ff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26571 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 Y1&jmnkRPv#2TNCM-t6DFVUzR!0NLTUivR!s diff --git a/src/nukes/foo-nukes b/src/nukes/foo-nukes deleted file mode 100755 index 43fc7250ac8685e03e866397a3c4b34b7060b407..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22723 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 diff --git a/src/pre/Makefile b/src/pre/Makefile index f19f516..0331151 100644 --- a/src/pre/Makefile +++ b/src/pre/Makefile @@ -1,5 +1,4 @@ - include ../Makefile.config SRCDIR = .. @@ -7,7 +6,8 @@ SRCDIR = .. LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o ./mp3genre/mp3genre.o foo-pre: foo-pre.o $(LIBS) - $(CC) -o $@ $< mp3genre/mp3genre.o $(LIBS) -ldl + $(MAKE) -C mp3genre + $(CC) -o $@ $< $(LIBS) -ldl foo.Pre: foo.Pre.o $(CC) -o $@ $< $(LIBS) @@ -16,8 +16,10 @@ all: foo-pre clean: rm -f *.o *~ foo.Pre foo-pre + $(MAKE) -C mp3genre $@ release: mkdir $(RELEASEDIR)/pre cp *.c *.h Makefile README *.txt pre.cfg $(RELEASEDIR)/pre + $(MAKE) -C mp3genre $@ diff --git a/src/pre/Makefile.in b/src/pre/Makefile.in index c9d2d7a..0331151 100644 --- a/src/pre/Makefile.in +++ b/src/pre/Makefile.in @@ -1,13 +1,13 @@ - include ../Makefile.config SRCDIR = .. -LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o +LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o ./mp3genre/mp3genre.o foo-pre: foo-pre.o $(LIBS) - $(CC) -o $@ $< mp3genre/mp3genre.o $(LIBS) -ldl + $(MAKE) -C mp3genre + $(CC) -o $@ $< $(LIBS) -ldl foo.Pre: foo.Pre.o $(CC) -o $@ $< $(LIBS) @@ -16,8 +16,10 @@ all: foo-pre clean: rm -f *.o *~ foo.Pre foo-pre + $(MAKE) -C mp3genre $@ release: mkdir $(RELEASEDIR)/pre cp *.c *.h Makefile README *.txt pre.cfg $(RELEASEDIR)/pre + $(MAKE) -C mp3genre $@ diff --git a/src/pre/Makefile.in_orig b/src/pre/Makefile.in_orig deleted file mode 100644 index 7a9327c..0000000 --- a/src/pre/Makefile.in_orig +++ /dev/null @@ -1,23 +0,0 @@ - - -include ../Makefile.config - -SRCDIR = .. - -LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o - -foo-pre: foo-pre.o $(LIBS) - $(CC) -o $@ $< $(LIBS) -ldl - -foo.Pre: foo.Pre.o - $(CC) -o $@ $< $(LIBS) - -all: foo-pre - -clean: - rm -f *.o *~ foo.Pre foo-pre - -release: - mkdir $(RELEASEDIR)/pre - cp *.c *.h Makefile README *.txt pre.cfg $(RELEASEDIR)/pre - diff --git a/src/pre/foo-pre b/src/pre/foo-pre deleted file mode 100755 index b017e834830f5a8fd72af7ed200abecc4f508111..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60849 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 diff --git a/src/pre/foo-pre.c b/src/pre/foo-pre.c index 09d0c10..3888800 100644 --- a/src/pre/foo-pre.c +++ b/src/pre/foo-pre.c @@ -45,8 +45,7 @@ #include "foo-pre.h" #include "gl_userfile.h" -//#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" -#define VERSION "$Id: foo-pre.c,v 1.19 2012/08/03 17:46:00 sorend, slv Exp $" +#define VERSION "$Id: foo-pre.c,v 1.19 2017/04/07 17:46:00 sorend, slv Exp $" #define USAGE " * Syntax: SITE PRE [SECTION]\n" void quit(char *s, ...); @@ -1223,12 +1222,17 @@ char *section_expand_path(char *sec) { strftime(buf, 1024, "%W", tm_now); pre_replace(tmp, "WOY", buf); + strftime(buf, 1024, "%V", tm_now); + pre_replace(tmp, "CW", buf); + pre_replace(tmp, "KW", buf); + // if its a link then expand it. reps = readlink(tmp, buf, 1024); if (reps != -1) { if (buf[0] == '/') { strncpy(tmp, buf, reps); + tmp[reps] = '\0'; /* ensure null terminated */ buf[reps] = 0; } else { diff --git a/src/pre/foo-pre.c.mp3genre.added b/src/pre/foo-pre.c.mp3genre.added deleted file mode 100644 index b8ba3e1..0000000 --- a/src/pre/foo-pre.c.mp3genre.added +++ /dev/null @@ -1,1489 +0,0 @@ -/* - * foo-tools, a collection of utilities for glftpd users. - * Copyright (C) 2003 Tanesha FTPD Project, www.tanesha.net - * - * This file is part of foo-tools. - * - * foo-tools 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. - * - * foo-tools 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 foo-tools; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -/* - * foo.Pre [C-version] (c) tanesha team, - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "foo-pre.h" -#include "gl_userfile.h" - -#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" -#define USAGE " * Syntax: SITE PRE [SECTION]\n" - -void quit(char *s, ...); -extern int errno; - -hashtable_t *_config = 0; -hashtable_t *_envctx = 0; - -char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychadelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Unknown" -}; -unsigned char genre_count=149; -char *id3_genre; -int id3_genre_num; - -/* - slv 02082012 - mp3 genre output added to PRE (instead of as a module) - reads last 128 bytes of mp3 and extracts genre tag - thanks to movEAX_444 (devshed.com) for his code example -*/ - -int get_mp3_genre(const char* filename) { - FILE *fp; - char mp3_fbuf[128]; - if (!(fp=fopen(filename,"rb"))) { - return 1; - } - if (fseek(fp,-128,SEEK_END)) { - return 1; - } - fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; - if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { - return 1; - } - id3_genre_num = mp3_fbuf[127]; if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } - id3_genre = genre_s[id3_genre_num]; -} - -/* - * Acecssor method for configuration. - */ -hashtable_t * get_config() { - if (!_config) { - _config = malloc(sizeof(hashtable_t)); - bzero(_config, sizeof(hashtable_t)); - } - - return _config; -} - -/* - * Accessor method for context of the pre. - */ -hashtable_t * get_context() { - if (!_envctx) { - _envctx = malloc(sizeof(hashtable_t)); - ht_init(_envctx); - } - - return _envctx; -} - -/* - * Puts something to the logfile. - */ -void pre_log(char *type, char *fmt, ...) { - hashtable_t *env = get_context(); - hashtable_t *cfg; - va_list va; - FILE *f; - - f = (FILE*)ht_get(env, "logfh"); - - if (!f) { - f = fopen(PRE_LOGFILE, "a"); - ht_put_obj(env, "logfh", f); - } - - fprintf(f, "%s: ", type); - va_start(va, fmt); - vfprintf(f, fmt, va); - va_end(va); - fprintf(f, "\n"); - fflush(f); -} - -/* - * Returns a given property for a group. - */ -char *group_get_property(char *grp, char *prop) { - hashtable_t *cfg = get_config(); - char buf[300], *tmp; - - sprintf(buf, "group.%s.%s", grp, prop); - - tmp = ht_get(cfg, buf); - - if (!tmp) { - // try to get default property. - sprintf(buf, "group.DEFAULT.%s", prop); - tmp = ht_get(cfg, buf); - } - - return tmp; -} - - -/* - * Returns a property for a section. - */ -char * section_get_property(char *sec, char *prop) { - hashtable_t *cfg = get_config(); - char buf[300]; - - sprintf(buf, "section.%s.%s", sec, prop); - - return ht_get(cfg, buf); -} - -/* - * Find chown info for a group. - */ -chowninfo_t * chowninfo_find_by_group(char *group) { - char *tmp; - hashtable_t *env = get_context(); - chowninfo_t * i = malloc(sizeof(chowninfo_t)); - pwdfile *pass; - grpfile_t *grp; - - i->uid = i->gid = -1; - - tmp = group_get_property(group, PROPERTY_GROUP_CHOWN_USER); - if (tmp) { - if (!strcmp(tmp, "USER")) - pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); - else - pass = pwd_getpwnam(tmp); - - if (pass) - i->uid = pass->uid; - else - printf(" * WARNING: Could not get user.chown info for %s\n", group); - } - - tmp = group_get_property(group, PROPERTY_GROUP_CHOWN_GROUP); - if (tmp) { - if (!strcmp(tmp, "GROUP")) - grp = pwd_getgpnam(group); - else - grp = pwd_getgpnam(tmp); - - if (grp) - i->gid = grp->gid; - else - printf(" * WARNING: Could not get grp.chown info for %s\n", group); - } - - return i; -} - -creditlist_t *creditlist_find_by_uid(creditlist_t *l, int uid) { - creditlist_t *t; - - for (t = l; t; t = t->next) - if (t->uid == uid) - break; - - return t; -} - -struct subdir_list *subdirlist_find(struct subdir_list *l, char *s) { - struct subdir_list *t; - - for (t = l; t; t = t->next) - if (!strcmp(t->dir, s)) - break; - - return t; -} - -int subdirlist_count(struct subdir_list *l) { - struct subdir_list *t; - int i = 0; - - for (t = l; t; t = t->next) - if (!strncmp(t->dir, "CD", 2) || !strncmp(t->dir, "DISC", 4)) - i++; - - return i; -} - -/* - * Returns a strlist_t with the groups of an user. - */ -strlist_t * user_find_groups(char *u) { - linefilereader_t lfr; - char buf[1024], *tmp, *spc2; - strlist_t *groups = 0; - hashtable_t *cfg = get_config(); - - tmp = ht_get(cfg, PROPERTY_GL_USERDIR); - - if (!tmp) - quit(" * Could not find '%s' property in config", PROPERTY_GL_USERDIR); - - sprintf(buf, "%s/%s", tmp, u); - - if (lfr_open(&lfr, buf) < 0) - quit(" * Could not open your userfile %s", buf); - - while (lfr_getline(&lfr, buf, 1024) > -1) { - if (!strncasecmp(buf, "GROUP ", 6) || - !strncasecmp(buf, "PRIVATE ", 8)) { - - tmp = strchr(buf, ' ') + 1; - - // fix for glftpd2.x which has 'GROUP group num' - spc2 = strchr(tmp, ' '); - if (spc2) - *spc2 = 0; - - groups = str_add(groups, tmp); - } - } - - lfr_close(&lfr); - - return groups; -} - -/* - * Returns the list of pre groups from config. - * - */ -strlist_t * groups_find_all() { - strlist_t * l = 0; - char *tmp, buf[300], *grp; - hashtable_t *cfg = get_config(); - hashtable_t *env = get_context(); - hashtable_item_t *htn; - - // check if we have made it already. - if (ht_get(env, "ALLGROUPS")) - return (strlist_t*)ht_get(env, "ALLGROUPS"); - - ht_reset(cfg); - - // look through all properties in config. - while (htn = ht_next(cfg)) { - tmp = htn->key; - - if (strcmp(tmp, "group.")) - continue; - - grp = strdup(tmp + 6); - - tmp = strchr(grp, '.'); - - if (!tmp) { - free(grp); - continue; - } - - *tmp = 0; - - if (!str_search(l, grp, 0)) { - l = str_add(l, grp); - } - } - - ht_put_obj(env, "ALLGROUPS", l); - - return l; -} - - -/* - * Gets configuration properties in the a|b|c|d format as a strlist. - */ -strlist_t * config_get_split_property(char *prop) { - hashtable_t *cfg = get_config(); - char *tmp; - stringtokenizer st; - strlist_t *l = 0; - - tmp = ht_get(cfg, prop); - - st_initialize(&st, tmp, "|"); - while (st_hasnext(&st)) { - tmp = st_next(&st); - - l = str_add(l, tmp); - } - - return l; -} - - -/* - * Returns the group of the dir 'path'. - */ -char * group_find_by_dir(strlist_t *grps, char *path) { - strlist_iterator_t *iter; - char *tmpgroup, *tmpdir, buf[300]; - strlist_t *grpdirs = 0; - int found = 0; - - // only look through the groups of the user. - for (iter = str_iterator(grps); str_iterator_hasnext(iter); ) { - tmpgroup = str_iterator_next(iter); - - // get groupdirs as a list. - sprintf(buf, "group.%s.%s", tmpgroup, PROPERTY_GROUP_DIR); - grpdirs = config_get_split_property(buf); - - if (grpdirs && str_search(grpdirs, path, 0)) { - free(iter); - str_close(grpdirs); - return strdup(tmpgroup); - } - } - - str_close(grpdirs); - free(iter); - - return 0; -} - -/* - * - * Outputs info about a user's groups and the groupdirs. - * - */ -int show_groupdirs(strlist_t *grps) { - strlist_iterator_t *i; - char *tmpgroup, *tmppredir, *tmpallowed, *sitedir; - hashtable_t *cfg = get_config(); - stringtokenizer dirst, allowst; - char buf[300]; - int found = 0; - - sitedir = ht_get(cfg, PROPERTY_SITEDIR); - if (!sitedir) - printf(" * WARNING: '%s' not defined in config file\n", PROPERTY_SITEDIR); - - printf("Group Predirs Allowed sections\n"); - printf("--------------- ---------------------------------------- ----------------\n"); - - for (i = str_iterator(grps); str_iterator_hasnext(i); ) { - tmpgroup = str_iterator_next(i); - - tmppredir = group_get_property(tmpgroup, PROPERTY_GROUP_DIR); - tmpallowed = group_get_property(tmpgroup, PROPERTY_GROUP_ALLOW); - - if (!(tmppredir && tmpallowed)) - continue; - - found++; - - st_initialize(&dirst, tmppredir, "|"); - st_initialize(&allowst, tmpallowed, "|"); - strcpy(buf, tmpgroup); - - while (st_hasnext(&dirst) || st_hasnext(&allowst)) { - tmppredir = st_next(&dirst); - tmpallowed = st_next(&allowst); - - printf("%-15.15s %-40.40s %-15.15s\n", buf, (tmppredir?tmppredir + strlen(sitedir):""), (tmpallowed?tmpallowed:"")); - - strcpy(buf, ""); - } - - st_finalize(&dirst); - st_finalize(&allowst); - } - - if (!found) - printf("Hm, you arent in any groups that can pre ! \n"); - - return found; -} - -/* - * Returns section name of a 'requested' section, if its allowed - * for 'group'. - */ -char * section_find_by_name(char *group, char *requested) { - char *tmpsecdir, *tmpallow, *tmpreq; - stringtokenizer st; - - tmpreq = requested; - - // if no requested, then try to set it to the 'default' section. - if (!tmpreq) { - tmpreq = group_get_property(group, PROPERTY_GROUP_DEFSEC); - - if (!tmpreq) { - printf(" * Hm, section not specified, and no default section for group '%s'\n", group); - printf("%s\n", USAGE); - - return 0; - } - } - - st_initialize(&st, group_get_property(group, PROPERTY_GROUP_ALLOW), "|"); - - while (st_hasnext(&st)) { - tmpallow = strdup(st_next(&st)); - - if (!strcasecmp(tmpreq, tmpallow)) - break; - - free(tmpallow); - tmpallow = 0; - } - - st_finalize(&st); - - if (!tmpallow) - return 0; - - // do basic check if section is in the config. - tmpsecdir = section_get_property(tmpallow, PROPERTY_SECTION_DIR); - - if (!tmpsecdir) { - printf(" * Hm, you are allowed to pre in section '%s' but the section is not.\n configured. Bug siteop to fix his pre configuration please! :)\n", tmpreq); - - return 0; - } - - return tmpallow; -} - -/* - * Returns an integer property for a section, returns -1 if not set or - * set to 'none'. - */ -int section_get_int_property(char *s, char *p) { - char *tmp; - - tmp = section_get_property(s, p); - - if (!tmp) - return -1; - - if (!strcasecmp(tmp, "none")) - return -1; - - return atoi(tmp); -} - -/* - * Takes care of updating userfile, by help of gl_userfile module. - */ -char * userfile_update(creditlist_t *l) { - hashtable_t *cfg = get_config(); - hashtable_t *env = get_context(); - long spend, addkb; - char buf[1024], userfile[1024], *section, *userdir, *tmp, *group; - pwdfile *pass; - int gl_stat_section = 0, gl_credit_section = 0, prespeed, rc, ratio; - - // get pre-section from env. - section = ht_get(env, "section"); - group = ht_get(env, PROPERTY_GROUP); - - // find the user. - pass = pwd_getpwuid(l->uid); - if (!pass) - return ""; - - // get ftp-data/users from conf. - userdir = ht_get(cfg, PROPERTY_GL_USERDIR); - if (!userdir) - quit(" * ERROR: Userdir not defined in pre config, fuck the sysop ;(\n"); - - sprintf(userfile, "%s/%s", userdir, pass->name); - - // get the section config from conf. - gl_stat_section = section_get_int_property(section, PROPERTY_GROUP_GL_SS); - gl_credit_section = section_get_int_property(section, PROPERTY_GROUP_GL_CS); - - if ((gl_stat_section == -1) && (gl_credit_section == -1)) { - printf(" * ERROR: No gl_stat_section or gl_credit_section defined for\n"); - printf(" section %s, %s got no stats/credits for pre !\n", section, - pass->name); - - return ""; - } - - // try and figure a ratio to use. - tmp = group_get_property(group, PROPERTY_GROUP_RATIO); - - if (!tmp) { - printf(" * ERROR: No ratio defined for group %s, no credits given!\n", group); - return ""; - } - - if (!strcasecmp(tmp, "USERFILE")) { - ratio = gl_userfile_get_ratio(userfile, gl_credit_section); - - if (ratio == -1) { - printf(" * ERROR: No ratio found in userfile for %s\n", pass->name); - - return ""; - } - } else - ratio = atoi(tmp); - - if (prespeed == 0) - prespeed = 1024; - - spend = (long)l->bytes / prespeed; - addkb = l->bytes; - - if (spend == 0) - spend++; - - printf(" -- %10.10s: ", pass->name); - - if (gl_stat_section > -1) - printf("%d file/s, %.1f Mb (s:%d)", l->files, (float)addkb/1024, gl_stat_section); - else - printf("No stats given"); - - if (gl_credit_section > -1) - printf(", Credits: %.1f Mb, Ratio: %d (s:%d)\n", (float)(ratio * addkb)/1024, ratio, gl_credit_section); - else - printf(", No credits given\n"); - - // call gl_userfile_* to get the userfile updated. - rc = gl_userfile_add_stats(userfile, l->files, addkb, spend, (long)ratio * addkb, gl_stat_section, gl_credit_section); - - if (rc > -1) { - sprintf(buf, "%s/%.1fMb, ", pass->name, (float)l->bytes/1024); - return strdup(buf); - } else - printf(" * ERROR: Couldnt update userfile for %s\n", pass->name); - - return ""; -} - -/* - * Chowns a file from chowninfo. - */ -int chowninfo_apply_to_file(char *file, chowninfo_t *ch) { - - if (!ch) - return 0; - - // check if no chown needed. - if ((ch->gid == -1) && (ch->uid == -1)) - return 1; - - chown(file, ch->uid, ch->gid); - - return 1; -} - -/* - * Loads a filelist from a dir. - * - * Also chowns all files in the dir if chown is != 0. - */ -filelist_t * filelist_find_by_dir(filelist_t *l, char *base, char *path, chowninfo_t *chown) { - DIR *dh; - char buf[1024], *group; - struct dirent *dent; - struct stat st; - filelist_t *tmp; - - group = ht_get(get_context(), PROPERTY_GROUP); - - sprintf(buf, "%s/%s", base, path); - dh = opendir(buf); - - if (!dh) - return l; - - while ((dent = readdir(dh))) { - if ((!strcmp(dent->d_name, ".")) || - (!strcmp(dent->d_name, ".."))) - continue; - - sprintf(buf, "%s/%s/%s", base, path, dent->d_name); - - if (stat(buf, &st) == -1) - continue; - - // chown file - chowninfo_apply_to_file(buf, chown); - - if (S_ISDIR(st.st_mode)) { - - // touch dir - touch_dir(buf); - - if (strlen(path) > 0) - sprintf(buf, "%s/%s", path, dent->d_name); - else - strcpy(buf, dent->d_name); - - // find recursively. - l = filelist_find_by_dir(l, base, buf, chown); - - } else { - // touch file - touch_file(buf); - - tmp = (filelist_t*)malloc(sizeof(filelist_t)); - - if (strlen(path) > 0) - sprintf(tmp->file, "%s/%s", path, dent->d_name); - else - strcpy(tmp->file, dent->d_name); - - memcpy(&tmp->st, &st, sizeof(st)); - - tmp->next = l; - - l = tmp; - } - } - - closedir(dh); - - return l; -} - - -int strlist_match(char *file, strlist_t *l) { - strlist_iterator_t *iter; - int found = 0; - char *pattern; - - iter = str_iterator(l); - - while (pattern = str_iterator_next(iter)) { - if (fnmatch(pattern, file, 0) == 0) - found++; - } - - free(iter); - - return found; -} - -/* - * Method to find total size of filelist. - */ -int flist_size(filelist_t *filelist, float *bytes, long *files) { - filelist_t *t; - strlist_t *tmp; - strlist_iterator_t *iter; - char *tt; - int found; - - // get countables. - tmp = config_get_split_property(PROPERTY_COUNTABLE); - - *bytes = 0; *files = 0; - - for (t = filelist; t; t = t->next) { - - if (strlist_match(t->file, tmp) == 0) - continue; - - (*bytes) += t->st.st_size; - (*files)++; - } - - return 1; -} - -char *flist_getfilename(filelist_t *l) { - char *buf; - - buf = strrchr(l->file, '/'); - if (!buf) - buf = l->file; - else - buf++; - - return buf; -} - -/* - * Create list of subdirs from filelist. - * - */ -struct subdir_list *subdir_flistcollect(filelist_t *f) { - struct subdir_list *l = 0, *tmp, *mdir; - filelist_t *t; - char *d, buf[1024]; - - mdir = (struct subdir_list*)malloc(sizeof(struct subdir_list)); - mdir->bytes = 0; - mdir->files = 0; - strcpy(mdir->dir, ""); - mdir->next = 0; - l = mdir; - - for (t = f; t; t = t->next) { - strcpy(buf, t->file); - d = strrchr(buf, '/'); - if (!d) - strcpy(buf, ""); - else - *d = 0; - - if ((tmp = subdirlist_find(l, buf)) == 0) { - tmp = (struct subdir_list*)malloc(sizeof(struct subdir_list)); - tmp->bytes = 0; - tmp->files = 0; - strcpy(tmp->dir, buf); - tmp->next = l; - l = tmp; - } - - tmp->bytes += t->st.st_size; - tmp->files++; - - // update the main dir (if it aint us). - if (strcmp(buf, "")) { - mdir->bytes += t->st.st_size; - mdir->files++; - } - } - - return l; -} - -creditlist_t *creditlist_create_from_filelist(filelist_t *f) { - creditlist_t *l = 0, *t; - filelist_t *tfl; - pwdfile *pass; - strlist_t *creditables; - - creditables = config_get_split_property(PROPERTY_CREDITABLE); - - for (tfl = f; tfl; tfl = tfl->next) { - - if (strlist_match(tfl->file, creditables) == 0) - continue; - - t = creditlist_find_by_uid(l, tfl->st.st_uid); - - if (!t) { - t = (creditlist_t*)malloc(sizeof(creditlist_t)); - t->uid = tfl->st.st_uid; - t->files = 0; - t->bytes = 0; - t->next = l; - l = t; - } - - t->files += 1; - t->bytes += (long)tfl->st.st_size/1024; - } - - return l; -} - -void reverse_dirlog_add(struct subdir_list *tsub, char *dest, char *rel, pwdfile *pass, chowninfo_t *chown) { - char buf[300], *tmp; - hashtable_t *cfg = get_config(); - int uid, gid, addsub; - - tmp = ht_get(cfg, PROPERTY_ADDSUB); - - if (tmp) - addsub = atoi(tmp); - else - addsub = 0; - - if (tsub) - reverse_dirlog_add(tsub->next, dest, rel, pass, chown); - else - return; - - if (!addsub && (strlen(tsub->dir) > 0)) - return; - - if (strlen(tsub->dir) > 0) - sprintf(buf, "%s/%s", dest, tsub->dir); - else - strcpy(buf, dest); - - uid = (chown->uid == -1) ? pass->uid : chown->uid; - gid = (chown->gid == -1) ? pass->gid : chown->gid; - - if (!gl_dirlog_add(buf, uid, gid, tsub->files, tsub->bytes)) - printf(" * Error adding to dirlog: %s/%s (%dF %.1fMb)\n", - rel, tsub->dir, - tsub->files, (float)tsub->bytes/(1024*1024)); -} - -/* - * Method to replace in strings. - */ -int pre_replace(char *b, char *n, char *r) { - char *t, *save; - int i=0; - - while (t=strstr(b, n)) { - save=(char*)malloc(strlen(t)-strlen(n)+1); - strcpy(save, t+strlen(n)); - *t=0; - strcat(b, r); - strcat(b, save); - free(save); - i++; - } -} - -int pre_move_catalog(char *src, char *dest) { - char *tmp, movebuf[1024]; - int rc; - - // try rename. - rc = rename(src, dest); - - if (rc == 0) - return 0; - - tmp = ht_get(get_config(), PROPERTY_MOVE_EXTERNAL); - - if (!tmp) - return -1; - - printf(", external.."); - - strcpy(movebuf, tmp); - pre_replace(movebuf, "%S", src); - pre_replace(movebuf, "%D", dest); - - // try external move - rc = system(movebuf); - - // return -1 if command did not return '0' = success. - if (rc != 0) - return -1; - - return 0; -} - -int pre_exec_module(module_list_t *mfunc, filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { - filelist_t *ftmp; - struct subdir_list *stmp; - hashtable_t *cfg; - char *tmpf; - int rc; - - // run mod_func_dir on each dir - for (stmp = subdirs; stmp; stmp = stmp->next) { - - tmpf = malloc(strlen(path) + strlen(stmp->dir) + 2); - if (strlen(stmp->dir) > 0) - sprintf(tmpf, "%s/%s", path, stmp->dir); - else { - // we got the top-dir - strcpy(tmpf, path); - - // run the mod_func_rel on the rlsdir. - if (mfunc->mod_func_rel != 0) { - pre_log("MODULE-REL", "%s %s", mfunc->mod_name, stmp->dir); - rc = mfunc->mod_func_rel(tmpf, argv); - } - } - - if (mfunc->mod_func_dir != 0) { - pre_log("MODULE-DIR", "%s %s", mfunc->mod_name, stmp->dir); - - rc = mfunc->mod_func_dir(tmpf, argv); - } - - free(tmpf); - - // break if mod_func_dir signals not to continue. - if (rc == 0) - break; - } - - - // run mod_func_file on each file. - for (ftmp = files; mfunc->mod_func_file && ftmp; ftmp = ftmp->next) { - - pre_log("MODULE-FILE", "%s %s", mfunc->mod_name, ftmp->file); - - tmpf = malloc(strlen(ftmp->file) + strlen(path) + 2); - sprintf(tmpf, "%s/%s", path, ftmp->file); - - rc = mfunc->mod_func_file(tmpf, argv); - - free(tmpf); - - // if module returns 0, then break. - if (rc == 0) - break; - } - - return 1; -} - -int pre_do_module(char *module, filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { - - void *handle; - module_list_t *module_func; - module_list_t* (*module_loader)(); - void (*set_config)(hashtable_t *ht); - char *err; - - pre_log("MODULE", "%s", module); - - handle = dlopen(module, RTLD_LAZY); - if (!handle) { - err = dlerror(); - pre_log("MODULE-ERROR", "%s \"%s\"", module, err); - printf("Error loading module %s: %s\n", module, err); - return 0; - } - - module_loader = dlsym(handle, MODULE_LOADER_FUNC); - set_config = dlsym(handle, MODULE_SETCONFIG_FUNC); - - if (!module_loader || !set_config) { - pre_log("MODULE-ERROR", "%s %s", module, "No loader func found"); - printf("Error loading module %s: No loader func found\n"); - dlclose(handle); - return 0; - } - - pre_log("MODULE-RUN", "%s %s", module, path); - - set_config(get_config()); - - // try to set environment if module allows. - set_config = dlsym(handle, MODULE_SETENV_FUNC); - if (set_config) - set_config(get_context()); - - pre_exec_module(module_loader(), files, path, argv, subdirs); - - pre_log("MODULE-DONE", "%s %s", module, path); - - dlclose(handle); - - return 1; -} - -int pre_do_modules(filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { - hashtable_t *cfg, *env; - stringtokenizer st; - char *tmp; - - tmp = ht_get(get_config(), PROPERTY_MODULES); - - // no modules in config, return - if (!tmp) - return; - - st_initialize(&st, tmp, "|"); - - while (st_hasnext(&st)) { - tmp = st_next(&st); - - pre_do_module(tmp, files, path, argv, subdirs); - } - -} - - -int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv[]) { - hashtable_t *cfg, *env; - - char buf[1024], tbuf[50], ubuf[300], *tmp; - filelist_t *files, *ftmp; - creditlist_t *credits, *tcred; - struct subdir_list *subdirs; - float bcount; - long fnum; - int olduid, disks = 1; - pwdfile *pass; - chowninfo_t *chown; - - cfg = get_config(); - env = get_context(); - - pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); - - if (!pass) { - printf(" * Error, cannot get your passwd entry! \n"); - return 0; - } - - chown = chowninfo_find_by_group(group); - - olduid = getuid(); - if (setuid(0) == -1) - quit(" * Error changing uid, bug sysop to fix perms on foo-pre !\n"); - - // find filenames, and collect user's stats + do chowning of files. - files = filelist_find_by_dir(0, src, "", chown); - - // get totals. - flist_size(files, &bcount, &fnum); - printf(" * Totals of this pre for announce: %dF %.0fB\n", fnum, bcount); - - // get credits. - credits = creditlist_create_from_filelist(files); - - printf(" * Moving files to destination dir.. \n"); - printf(" -- %10.10s: %s\n", "From", src); - printf(" -- %10.10s: %s", "To", dest); - - // dont forget to chown maindir - chowninfo_apply_to_file(src, chown); - - // do the actual moving of dir. - if (pre_move_catalog(src, dest) == -1) - quit(" Failed!\n"); - else - printf(" Done\n"); - - // give credits to original uploaders - printf(" * Updating userfiles ..\n"); - strcpy(ubuf, ""); - for (tcred = credits; tcred; tcred = tcred->next) { - tmp = userfile_update(tcred); - if (tmp) - strcat(ubuf, tmp); - } - - setuid(olduid); - - if (strlen(ubuf) > 2) - ubuf[strlen(ubuf) - 2] = 0; - - // add to dupefile. - tmp = ht_get(env, PROPERTY_USER); - for (ftmp = files; ftmp; ftmp = ftmp->next) - if (!gl_dupefile_add(flist_getfilename(ftmp), tmp)) - printf(" * Error adding to dupefile: %s\n", ftmp->file); - - subdirs = subdir_flistcollect(files); - reverse_dirlog_add(subdirs, dest, rel, pass, chown); - - disks = subdirlist_count(subdirs); - if (disks == 0) - disks++; - - // create announce. - tmp = group_get_property(group, PROPERTY_GROUP_ANNOUNCE); - - if (tmp) { - - strcpy(buf, tmp); - sprintf(tbuf, "%.1f", (float)bcount/(1024*1024)); - pre_replace(buf, "%S", tbuf); - sprintf(tbuf, "%ld", fnum); - pre_replace(buf, "%W", ubuf); - pre_replace(buf, "%F", tbuf); - sprintf(tbuf, "%d", disks); - pre_replace(buf, "%C", tbuf); - pre_replace(buf, "%PP", ht_get(env, "RESOLVEDDESTINATION")); - pre_replace(buf, "%P", section_get_property(section, PROPERTY_SECTION_DIR)); - pre_replace(buf, "%U", ht_get(env, PROPERTY_USER)); - pre_replace(buf, "%T", ht_get(env, PROPERTY_TAGLINE)); - pre_replace(buf, "%G", ht_get(env, PROPERTY_GROUP)); - pre_replace(buf, "%g", ht_get(env, PROPERTY_USERGROUP)); - pre_replace(buf, "%D", section_get_property(section, PROPERTY_SECTION_NAME)); - pre_replace(buf, "%R", rel); - - gl_gllog_add(buf); - - } else - printf(" * WARNING: No announce setup ! Go bug sysop :( \n"); - - // add to dupelog. - if (!gl_dupelog_add(rel)) - printf(" * Error adding to dupelog ! (prolly wrong perms, ask sysop to fix)\n"); - - sprintf(buf, "%s/%s", ht_get(env, "RESOLVEDDESTINATION"), rel); - - // do additional module stuff - pre_do_modules(files, buf, argv, subdirs); - - return 1; -} - -int touch_dir(char *dir) { - FILE *f; - char buf[1024]; - - sprintf(buf, "%s/.touched", dir); - f = fopen(buf, "w"); - - if (!f) - return 0; - - fprintf(f, "touched\n"); - fclose(f); - - unlink(buf); - - return 1; -} - -// hacky file touch method -int touch_file(char *fname) { - int fd, needed_chmod, rval, force = 0; - unsigned char byte; - struct stat st; - - if (stat(fname, &st) == -1) - return 0; - - // Try regular files only. - if (!S_ISREG(st.st_mode)) - return 0; - - needed_chmod = rval = 0; - if ((fd = open(fname, O_RDWR, 0)) == -1) { - if (!force || chmod(fname, DEFFILEMODE)) - goto err; - if ((fd = open(fname, O_RDWR, 0)) == -1) - goto err; - needed_chmod = 1; - } - - if (st.st_size != 0) { - if (read(fd, &byte, sizeof(byte)) != sizeof(byte)) - goto err; - if (lseek(fd, (off_t)0, SEEK_SET) == -1) - goto err; - if (write(fd, &byte, sizeof(byte)) != sizeof(byte)) - goto err; - } else { - if (write(fd, &byte, sizeof(byte)) != sizeof(byte)) { -err: - rval = 1; - } else if (ftruncate(fd, (off_t)0)) { - rval = 1; - } - } - - if (close(fd) && rval != 1) { - rval = 1; - } - - if (needed_chmod && chmod(fname, st.st_mode) && rval != 1) { - rval = 1; - } - - return (rval); -} - -/* - * Gets the real path of a section, trying to expands symlink if nessecary. - */ -char *section_expand_path(char *sec) { - char tmp[1024], buf[1024], *tmpp; - int reps; - time_t now; - struct tm *tm_now; - struct stat st; - - strcpy(tmp, section_get_property(sec, PROPERTY_SECTION_DIR)); - - now = time(0); - tm_now = localtime(&now); - - strftime(buf, 1024, "%d", tm_now); - pre_replace(tmp, "DD", buf); - - strftime(buf, 1024, "%m", tm_now); - pre_replace(tmp, "MM", buf); - - strftime(buf, 1024, "%Y", tm_now); - pre_replace(tmp, "YYYY", buf); - - strftime(buf, 1024, "%y", tm_now); - pre_replace(tmp, "YY", buf); - - strftime(buf, 1024, "%w", tm_now); - pre_replace(tmp, "WW", buf); - - strftime(buf, 1024, "%W", tm_now); - pre_replace(tmp, "WOY", buf); - - // if its a link then expand it. - reps = readlink(tmp, buf, 1024); - - if (reps != -1) { - if (buf[0] == '/') { - strncpy(tmp, buf, reps); - buf[reps] = 0; - } - else { - tmpp= strrchr(tmp, '/'); - if (!tmpp) - quit(" * Symlink expansion error.."); - - strncpy(tmpp + 1, buf, reps); - *(tmpp + 1 + reps) = 0; - } - } - - if (stat(tmp, &st) == -1) { - sprintf(buf, - " * Hm, destination section's path (%s) doesnt exist ?\n", - tmp); - - quit(buf); - } - - return strdup(tmp); -} - - - -int pre_handler(int argc, char *argv[]) { - hashtable_t *env, *cfg; - strlist_t *groups; - char *dest_section, *destpath; - struct stat st; - char source[1024], destination[1024], *tmp, *group; - char buf[1024]; - int rc; - - env = get_context(); - cfg = get_config(); - - pre_log("START", "%s %s %s", ht_get(env, PROPERTY_USER), argv[1], argv[2]); - - // set etcdir for the pwd functions - if (tmp = ht_get(cfg, PROPERTY_ETCDIR)) - pwd_set_etcdir(tmp); - - if (tmp = ht_get(cfg, PROPERTY_TEXT_HEAD)) - printf(tmp); - - groups = user_find_groups(ht_get(env, PROPERTY_USER)); - - if (!groups) - quit(" * Error finding your groups, go bug sysop!\n"); - - if (argc < 2) { - printf(USAGE); - - show_groupdirs(groups); - - quit(0); - } - - // check if someone are trying to fool us. - if (strchr(argv[1], '/')) - quit(" * You cant give paths in releasename ('/' not allowed)!\n"); - - char *sourcebis = getcwd(NULL, 0); - - // check if we are in a position to pre. - group = group_find_by_dir(groups, sourcebis); - - if (!group) { - printf(" * You are not in the group-dir of any of your groups.\n\n"); - - show_groupdirs(groups); - - quit(0); - } - - pre_log("GROUP", "%s %s", sourcebis, group); - - printf(" * Looks like this is going to be a %s pre..\n", group); - ht_put(env, PROPERTY_GROUP, group); - - // check if we have chosen a valid destination for our pre. - dest_section = section_find_by_name(group, argc > 2 ? argv[2] : 0); - - if (!dest_section) { - show_groupdirs(groups); - - quit(0); - } - - printf(" * Destination for pre will be the %s section..\n", dest_section); - ht_put(env, "section", dest_section); - - destpath = section_expand_path(dest_section); - ht_put(env, "RESOLVEDDESTINATION", destpath); - - strcpy(source, sourcebis); - strcat(source, "/"); - strcat(source, argv[1]); - - // check if source dir is okay. - if ((stat(source, &st) == -1) || !S_ISDIR(st.st_mode)) { - sprintf(source, " * Hm, '%s' doesnt exist or isnt a dir ?\n", - argv[1]); - quit(source); - } - - // touch the source. - touch_dir(source); - - // check if destination dir exists. - sprintf(destination, "%s/%s", destpath, argv[1]); - - rc = stat(destination, &st); - - // try rename if requested - if ((rc == 0) && (argc > 3) && (!strcasecmp(argv[3], "force"))) { - - sprintf(buf, "%s_TRADING", destination); - rc = rename(destination, buf); - - if (rc == 0) - printf(" + Renamed existing to %s_TRADING ..\n", argv[1]); - else - printf(" ! Failed rename existing to %s_TRADING ..\n", argv[1]); - } - - // check if destination exists. - if (stat(destination, &st) == -1) - pre(dest_section, destination, source, argv[1], group, argv); - else { - sprintf(source, " * Hm destination already exists. You're too late with pre!\n + Use SITE PRE %s %s FORCE to force pre.\n (this will rename the existing dir, which you can then nuke or wipe afterwards!)\n"); - quit(source); - } - - const char* filename="test.mp3"; - get_mp3_genre(filename); - // log DONE: "" "" "" "" - pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\"", - ht_get(env, PROPERTY_USER), group, - argv[1], destpath); - pre_log("TEST", "\"%s\" \"%s\" \"%s\" \"%s\"", - ht_get(env, PROPERTY_USER), group, - argv[1], id3_genre); - - return 0; -} - -/* - * Initialize the environment. - */ -int pre_init() { - hashtable_t *tmp; - char *sanity; - - // load config. - tmp = get_config(); - ht_load_prop(tmp, PRE_CONFIGFILE, '='); - - // lame check on environment. prevents idiots from sending me - // 'why does it segv when i run it ???' questions. - sanity = getenv("TAGLINE"); - if (!sanity) { - printf("Did not find environment for glftpd, please run only from within glftpd as 'site' command!\n"); - exit(1); - } - - // put env variables into the context. - tmp = get_context(); - ht_put(tmp, PROPERTY_USER, getenv("USER")); - ht_put(tmp, PROPERTY_TAGLINE, getenv("TAGLINE")); - ht_put(tmp, PROPERTY_USERGROUP, getenv("GROUP")); -} - - -/* - * Main method. - */ -int main(int argc, char *argv[]) { - int rc; - - pre_init(); - - rc = pre_handler(argc, argv); - - quit(0); - - // never reached. - return 0; -} - - -void quit(char *s, ...) { - hashtable_t *cfg = get_config(); - char *tmp; - va_list va; - - if (s) { - va_start(va, s); - - vprintf(s, va); - va_end(va); - } - - if (tmp = ht_get(cfg, PROPERTY_TEXT_TAIL)) - printf(tmp, VERSION); - - exit(0); -} diff --git a/src/pre/foo-pre.c.mp3genre.hack.working b/src/pre/foo-pre.c.mp3genre.hack.working deleted file mode 100644 index bd8ad88..0000000 --- a/src/pre/foo-pre.c.mp3genre.hack.working +++ /dev/null @@ -1,1509 +0,0 @@ -/* - * foo-tools, a collection of utilities for glftpd users. - * Copyright (C) 2003 Tanesha FTPD Project, www.tanesha.net - * - * This file is part of foo-tools. - * - * foo-tools 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. - * - * foo-tools 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 foo-tools; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -/* - * foo.Pre [C-version] (c) tanesha team, - */ -/* - * -slv 02082012 - mp3 genre output added to PRE (instead of as a module) - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "foo-pre.h" -#include "gl_userfile.h" - -#define VERSION "$Id: foo-pre.c,v 1.18 2004/09/28 06:52:24 sorend Exp $" -#define USAGE " * Syntax: SITE PRE [SECTION]\n" - -void quit(char *s, ...); -extern int errno; - -hashtable_t *_config = 0; -hashtable_t *_envctx = 0; - -/* - * slv 02082012 - mp3 genres - */ -char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychadelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Unknown" -}; -unsigned char genre_count = 149; -char *id3_genre = "n/a"; -unsigned char id3_genre_num[1]; - -/* - * Acecssor method for configuration. - */ -hashtable_t * get_config() { - if (!_config) { - _config = malloc(sizeof(hashtable_t)); - bzero(_config, sizeof(hashtable_t)); - } - - return _config; -} - -/* - * Accessor method for context of the pre. - */ -hashtable_t * get_context() { - if (!_envctx) { - _envctx = malloc(sizeof(hashtable_t)); - ht_init(_envctx); - } - - return _envctx; -} - -/* - * Puts something to the logfile. - */ -void pre_log(char *type, char *fmt, ...) { - hashtable_t *env = get_context(); - hashtable_t *cfg; - va_list va; - FILE *f; - - f = (FILE*)ht_get(env, "logfh"); - - if (!f) { - f = fopen(PRE_LOGFILE, "a"); - ht_put_obj(env, "logfh", f); - } - - fprintf(f, "%s: ", type); - va_start(va, fmt); - vfprintf(f, fmt, va); - va_end(va); - fprintf(f, "\n"); - fflush(f); -} - -/* - * Returns a given property for a group. - */ -char *group_get_property(char *grp, char *prop) { - hashtable_t *cfg = get_config(); - char buf[300], *tmp; - - sprintf(buf, "group.%s.%s", grp, prop); - - tmp = ht_get(cfg, buf); - - if (!tmp) { - // try to get default property. - sprintf(buf, "group.DEFAULT.%s", prop); - tmp = ht_get(cfg, buf); - } - - return tmp; -} - - -/* - * Returns a property for a section. - */ -char * section_get_property(char *sec, char *prop) { - hashtable_t *cfg = get_config(); - char buf[300]; - - sprintf(buf, "section.%s.%s", sec, prop); - - return ht_get(cfg, buf); -} - -/* - * Find chown info for a group. - */ -chowninfo_t * chowninfo_find_by_group(char *group) { - char *tmp; - hashtable_t *env = get_context(); - chowninfo_t * i = malloc(sizeof(chowninfo_t)); - pwdfile *pass; - grpfile_t *grp; - - i->uid = i->gid = -1; - - tmp = group_get_property(group, PROPERTY_GROUP_CHOWN_USER); - if (tmp) { - if (!strcmp(tmp, "USER")) - pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); - else - pass = pwd_getpwnam(tmp); - - if (pass) - i->uid = pass->uid; - else - printf(" * WARNING: Could not get user.chown info for %s\n", group); - } - - tmp = group_get_property(group, PROPERTY_GROUP_CHOWN_GROUP); - if (tmp) { - if (!strcmp(tmp, "GROUP")) - grp = pwd_getgpnam(group); - else - grp = pwd_getgpnam(tmp); - - if (grp) - i->gid = grp->gid; - else - printf(" * WARNING: Could not get grp.chown info for %s\n", group); - } - - return i; -} - -creditlist_t *creditlist_find_by_uid(creditlist_t *l, int uid) { - creditlist_t *t; - - for (t = l; t; t = t->next) - if (t->uid == uid) - break; - - return t; -} - -struct subdir_list *subdirlist_find(struct subdir_list *l, char *s) { - struct subdir_list *t; - - for (t = l; t; t = t->next) - if (!strcmp(t->dir, s)) - break; - - return t; -} - -int subdirlist_count(struct subdir_list *l) { - struct subdir_list *t; - int i = 0; - - for (t = l; t; t = t->next) - if (!strncmp(t->dir, "CD", 2) || !strncmp(t->dir, "DISC", 4)) - i++; - - return i; -} - -/* - * Returns a strlist_t with the groups of an user. - */ -strlist_t * user_find_groups(char *u) { - linefilereader_t lfr; - char buf[1024], *tmp, *spc2; - strlist_t *groups = 0; - hashtable_t *cfg = get_config(); - - tmp = ht_get(cfg, PROPERTY_GL_USERDIR); - - if (!tmp) - quit(" * Could not find '%s' property in config", PROPERTY_GL_USERDIR); - - sprintf(buf, "%s/%s", tmp, u); - - if (lfr_open(&lfr, buf) < 0) - quit(" * Could not open your userfile %s", buf); - - while (lfr_getline(&lfr, buf, 1024) > -1) { - if (!strncasecmp(buf, "GROUP ", 6) || - !strncasecmp(buf, "PRIVATE ", 8)) { - - tmp = strchr(buf, ' ') + 1; - - // fix for glftpd2.x which has 'GROUP group num' - spc2 = strchr(tmp, ' '); - if (spc2) - *spc2 = 0; - - groups = str_add(groups, tmp); - } - } - - lfr_close(&lfr); - - return groups; -} - -/* - * Returns the list of pre groups from config. - * - */ -strlist_t * groups_find_all() { - strlist_t * l = 0; - char *tmp, buf[300], *grp; - hashtable_t *cfg = get_config(); - hashtable_t *env = get_context(); - hashtable_item_t *htn; - - // check if we have made it already. - if (ht_get(env, "ALLGROUPS")) - return (strlist_t*)ht_get(env, "ALLGROUPS"); - - ht_reset(cfg); - - // look through all properties in config. - while (htn = ht_next(cfg)) { - tmp = htn->key; - - if (strcmp(tmp, "group.")) - continue; - - grp = strdup(tmp + 6); - - tmp = strchr(grp, '.'); - - if (!tmp) { - free(grp); - continue; - } - - *tmp = 0; - - if (!str_search(l, grp, 0)) { - l = str_add(l, grp); - } - } - - ht_put_obj(env, "ALLGROUPS", l); - - return l; -} - - -/* - * Gets configuration properties in the a|b|c|d format as a strlist. - */ -strlist_t * config_get_split_property(char *prop) { - hashtable_t *cfg = get_config(); - char *tmp; - stringtokenizer st; - strlist_t *l = 0; - - tmp = ht_get(cfg, prop); - - st_initialize(&st, tmp, "|"); - while (st_hasnext(&st)) { - tmp = st_next(&st); - - l = str_add(l, tmp); - } - - return l; -} - - -/* - * Returns the group of the dir 'path'. - */ -char * group_find_by_dir(strlist_t *grps, char *path) { - strlist_iterator_t *iter; - char *tmpgroup, *tmpdir, buf[300]; - strlist_t *grpdirs = 0; - int found = 0; - - // only look through the groups of the user. - for (iter = str_iterator(grps); str_iterator_hasnext(iter); ) { - tmpgroup = str_iterator_next(iter); - - // get groupdirs as a list. - sprintf(buf, "group.%s.%s", tmpgroup, PROPERTY_GROUP_DIR); - grpdirs = config_get_split_property(buf); - - if (grpdirs && str_search(grpdirs, path, 0)) { - free(iter); - str_close(grpdirs); - return strdup(tmpgroup); - } - } - - str_close(grpdirs); - free(iter); - - return 0; -} - -/* - * - * Outputs info about a user's groups and the groupdirs. - * - */ -int show_groupdirs(strlist_t *grps) { - strlist_iterator_t *i; - char *tmpgroup, *tmppredir, *tmpallowed, *sitedir; - hashtable_t *cfg = get_config(); - stringtokenizer dirst, allowst; - char buf[300]; - int found = 0; - - sitedir = ht_get(cfg, PROPERTY_SITEDIR); - if (!sitedir) - printf(" * WARNING: '%s' not defined in config file\n", PROPERTY_SITEDIR); - - printf("Group Predirs Allowed sections\n"); - printf("--------------- ---------------------------------------- ----------------\n"); - - for (i = str_iterator(grps); str_iterator_hasnext(i); ) { - tmpgroup = str_iterator_next(i); - - tmppredir = group_get_property(tmpgroup, PROPERTY_GROUP_DIR); - tmpallowed = group_get_property(tmpgroup, PROPERTY_GROUP_ALLOW); - - if (!(tmppredir && tmpallowed)) - continue; - - found++; - - st_initialize(&dirst, tmppredir, "|"); - st_initialize(&allowst, tmpallowed, "|"); - strcpy(buf, tmpgroup); - - while (st_hasnext(&dirst) || st_hasnext(&allowst)) { - tmppredir = st_next(&dirst); - tmpallowed = st_next(&allowst); - - printf("%-15.15s %-40.40s %-15.15s\n", buf, (tmppredir?tmppredir + strlen(sitedir):""), (tmpallowed?tmpallowed:"")); - - strcpy(buf, ""); - } - - st_finalize(&dirst); - st_finalize(&allowst); - } - - if (!found) - printf("Hm, you arent in any groups that can pre ! \n"); - - return found; -} - -/* - * Returns section name of a 'requested' section, if its allowed - * for 'group'. - */ -char * section_find_by_name(char *group, char *requested) { - char *tmpsecdir, *tmpallow, *tmpreq; - stringtokenizer st; - - tmpreq = requested; - - // if no requested, then try to set it to the 'default' section. - if (!tmpreq) { - tmpreq = group_get_property(group, PROPERTY_GROUP_DEFSEC); - - if (!tmpreq) { - printf(" * Hm, section not specified, and no default section for group '%s'\n", group); - printf("%s\n", USAGE); - - return 0; - } - } - - st_initialize(&st, group_get_property(group, PROPERTY_GROUP_ALLOW), "|"); - - while (st_hasnext(&st)) { - tmpallow = strdup(st_next(&st)); - - if (!strcasecmp(tmpreq, tmpallow)) - break; - - free(tmpallow); - tmpallow = 0; - } - - st_finalize(&st); - - if (!tmpallow) - return 0; - - // do basic check if section is in the config. - tmpsecdir = section_get_property(tmpallow, PROPERTY_SECTION_DIR); - - if (!tmpsecdir) { - printf(" * Hm, you are allowed to pre in section '%s' but the section is not.\n configured. Bug siteop to fix his pre configuration please! :)\n", tmpreq); - - return 0; - } - - return tmpallow; -} - -/* - * Returns an integer property for a section, returns -1 if not set or - * set to 'none'. - */ -int section_get_int_property(char *s, char *p) { - char *tmp; - - tmp = section_get_property(s, p); - - if (!tmp) - return -1; - - if (!strcasecmp(tmp, "none")) - return -1; - - return atoi(tmp); -} - -/* - * Takes care of updating userfile, by help of gl_userfile module. - */ -char * userfile_update(creditlist_t *l) { - hashtable_t *cfg = get_config(); - hashtable_t *env = get_context(); - long spend, addkb; - char buf[1024], userfile[1024], *section, *userdir, *tmp, *group; - pwdfile *pass; - int gl_stat_section = 0, gl_credit_section = 0, prespeed, rc, ratio; - - // get pre-section from env. - section = ht_get(env, "section"); - group = ht_get(env, PROPERTY_GROUP); - - // find the user. - pass = pwd_getpwuid(l->uid); - if (!pass) - return ""; - - // get ftp-data/users from conf. - userdir = ht_get(cfg, PROPERTY_GL_USERDIR); - if (!userdir) - quit(" * ERROR: Userdir not defined in pre config, fuck the sysop ;(\n"); - - sprintf(userfile, "%s/%s", userdir, pass->name); - - // get the section config from conf. - gl_stat_section = section_get_int_property(section, PROPERTY_GROUP_GL_SS); - gl_credit_section = section_get_int_property(section, PROPERTY_GROUP_GL_CS); - - if ((gl_stat_section == -1) && (gl_credit_section == -1)) { - printf(" * ERROR: No gl_stat_section or gl_credit_section defined for\n"); - printf(" section %s, %s got no stats/credits for pre !\n", section, - pass->name); - - return ""; - } - - // try and figure a ratio to use. - tmp = group_get_property(group, PROPERTY_GROUP_RATIO); - - if (!tmp) { - printf(" * ERROR: No ratio defined for group %s, no credits given!\n", group); - return ""; - } - - if (!strcasecmp(tmp, "USERFILE")) { - ratio = gl_userfile_get_ratio(userfile, gl_credit_section); - - if (ratio == -1) { - printf(" * ERROR: No ratio found in userfile for %s\n", pass->name); - - return ""; - } - } else - ratio = atoi(tmp); - - if (prespeed == 0) - prespeed = 1024; - - spend = (long)l->bytes / prespeed; - addkb = l->bytes; - - if (spend == 0) - spend++; - - printf(" -- %10.10s: ", pass->name); - - if (gl_stat_section > -1) - printf("%d file/s, %.1f Mb (s:%d)", l->files, (float)addkb/1024, gl_stat_section); - else - printf("No stats given"); - - if (gl_credit_section > -1) - printf(", Credits: %.1f Mb, Ratio: %d (s:%d)\n", (float)(ratio * addkb)/1024, ratio, gl_credit_section); - else - printf(", No credits given\n"); - - // call gl_userfile_* to get the userfile updated. - rc = gl_userfile_add_stats(userfile, l->files, addkb, spend, (long)ratio * addkb, gl_stat_section, gl_credit_section); - - if (rc > -1) { - sprintf(buf, "%s/%.1fMb, ", pass->name, (float)l->bytes/1024); - return strdup(buf); - } else - printf(" * ERROR: Couldnt update userfile for %s\n", pass->name); - - return ""; -} - -/* - * Chowns a file from chowninfo. - */ -int chowninfo_apply_to_file(char *file, chowninfo_t *ch) { - - if (!ch) - return 0; - - // check if no chown needed. - if ((ch->gid == -1) && (ch->uid == -1)) - return 1; - - chown(file, ch->uid, ch->gid); - - return 1; -} - -/* - * Loads a filelist from a dir. - * - * Also chowns all files in the dir if chown is != 0. - */ -filelist_t * filelist_find_by_dir(filelist_t *l, char *base, char *path, chowninfo_t *chown) { - DIR *dh; - char buf[1024], *group; - struct dirent *dent; - struct stat st; - filelist_t *tmp; - - group = ht_get(get_context(), PROPERTY_GROUP); - - sprintf(buf, "%s/%s", base, path); - dh = opendir(buf); - - if (!dh) - return l; - - while ((dent = readdir(dh))) { - if ((!strcmp(dent->d_name, ".")) || - (!strcmp(dent->d_name, ".."))) - continue; - - sprintf(buf, "%s/%s/%s", base, path, dent->d_name); - - if (stat(buf, &st) == -1) - continue; - - // chown file - chowninfo_apply_to_file(buf, chown); - - if (S_ISDIR(st.st_mode)) { - - // touch dir - touch_dir(buf); - - if (strlen(path) > 0) - sprintf(buf, "%s/%s", path, dent->d_name); - else - strcpy(buf, dent->d_name); - - // find recursively. - l = filelist_find_by_dir(l, base, buf, chown); - - } else { - // touch file - touch_file(buf); - - tmp = (filelist_t*)malloc(sizeof(filelist_t)); - - if (strlen(path) > 0) - sprintf(tmp->file, "%s/%s", path, dent->d_name); - else - strcpy(tmp->file, dent->d_name); - - memcpy(&tmp->st, &st, sizeof(st)); - - tmp->next = l; - - l = tmp; - } - } - - closedir(dh); - - return l; -} - - -int strlist_match(char *file, strlist_t *l) { - strlist_iterator_t *iter; - int found = 0; - char *pattern; - - iter = str_iterator(l); - - while (pattern = str_iterator_next(iter)) { - if (fnmatch(pattern, file, 0) == 0) - found++; - } - - free(iter); - - return found; -} - -/* - * Method to find total size of filelist. - */ -int flist_size(filelist_t *filelist, float *bytes, long *files) { - filelist_t *t; - strlist_t *tmp; - strlist_iterator_t *iter; - char *tt; - int found; - - // get countables. - tmp = config_get_split_property(PROPERTY_COUNTABLE); - - *bytes = 0; *files = 0; - - for (t = filelist; t; t = t->next) { - - if (strlist_match(t->file, tmp) == 0) - continue; - - (*bytes) += t->st.st_size; - (*files)++; - } - - return 1; -} - -char *flist_getfilename(filelist_t *l) { - char *buf; - - buf = strrchr(l->file, '/'); - if (!buf) - buf = l->file; - else - buf++; - - return buf; -} - -/* - * Create list of subdirs from filelist. - * - */ -struct subdir_list *subdir_flistcollect(filelist_t *f) { - struct subdir_list *l = 0, *tmp, *mdir; - filelist_t *t; - char *d, buf[1024]; - - mdir = (struct subdir_list*)malloc(sizeof(struct subdir_list)); - mdir->bytes = 0; - mdir->files = 0; - strcpy(mdir->dir, ""); - mdir->next = 0; - l = mdir; - - for (t = f; t; t = t->next) { - strcpy(buf, t->file); - d = strrchr(buf, '/'); - if (!d) - strcpy(buf, ""); - else - *d = 0; - - if ((tmp = subdirlist_find(l, buf)) == 0) { - tmp = (struct subdir_list*)malloc(sizeof(struct subdir_list)); - tmp->bytes = 0; - tmp->files = 0; - strcpy(tmp->dir, buf); - tmp->next = l; - l = tmp; - } - - tmp->bytes += t->st.st_size; - tmp->files++; - - // update the main dir (if it aint us). - if (strcmp(buf, "")) { - mdir->bytes += t->st.st_size; - mdir->files++; - } - } - - return l; -} - -creditlist_t *creditlist_create_from_filelist(filelist_t *f) { - creditlist_t *l = 0, *t; - filelist_t *tfl; - pwdfile *pass; - strlist_t *creditables; - - creditables = config_get_split_property(PROPERTY_CREDITABLE); - - for (tfl = f; tfl; tfl = tfl->next) { - - if (strlist_match(tfl->file, creditables) == 0) - continue; - - t = creditlist_find_by_uid(l, tfl->st.st_uid); - - if (!t) { - t = (creditlist_t*)malloc(sizeof(creditlist_t)); - t->uid = tfl->st.st_uid; - t->files = 0; - t->bytes = 0; - t->next = l; - l = t; - } - - t->files += 1; - t->bytes += (long)tfl->st.st_size/1024; - } - - return l; -} - -void reverse_dirlog_add(struct subdir_list *tsub, char *dest, char *rel, pwdfile *pass, chowninfo_t *chown) { - char buf[300], *tmp; - hashtable_t *cfg = get_config(); - int uid, gid, addsub; - - tmp = ht_get(cfg, PROPERTY_ADDSUB); - - if (tmp) - addsub = atoi(tmp); - else - addsub = 0; - - if (tsub) - reverse_dirlog_add(tsub->next, dest, rel, pass, chown); - else - return; - - if (!addsub && (strlen(tsub->dir) > 0)) - return; - - if (strlen(tsub->dir) > 0) - sprintf(buf, "%s/%s", dest, tsub->dir); - else - strcpy(buf, dest); - - uid = (chown->uid == -1) ? pass->uid : chown->uid; - gid = (chown->gid == -1) ? pass->gid : chown->gid; - - if (!gl_dirlog_add(buf, uid, gid, tsub->files, tsub->bytes)) - printf(" * Error adding to dirlog: %s/%s (%dF %.1fMb)\n", - rel, tsub->dir, - tsub->files, (float)tsub->bytes/(1024*1024)); -} - -/* - * Method to replace in strings. - */ -int pre_replace(char *b, char *n, char *r) { - char *t, *save; - int i=0; - - while (t=strstr(b, n)) { - save=(char*)malloc(strlen(t)-strlen(n)+1); - strcpy(save, t+strlen(n)); - *t=0; - strcat(b, r); - strcat(b, save); - free(save); - i++; - } -} - -int pre_move_catalog(char *src, char *dest) { - char *tmp, movebuf[1024]; - int rc; - - // try rename. - rc = rename(src, dest); - - if (rc == 0) - return 0; - - tmp = ht_get(get_config(), PROPERTY_MOVE_EXTERNAL); - - if (!tmp) - return -1; - - printf(", external.."); - - strcpy(movebuf, tmp); - pre_replace(movebuf, "%S", src); - pre_replace(movebuf, "%D", dest); - - // try external move - rc = system(movebuf); - - // return -1 if command did not return '0' = success. - if (rc != 0) - return -1; - - return 0; -} - -int pre_exec_module(module_list_t *mfunc, filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { - filelist_t *ftmp; - struct subdir_list *stmp; - hashtable_t *cfg; - char *tmpf; - int rc; - - // run mod_func_dir on each dir - for (stmp = subdirs; stmp; stmp = stmp->next) { - - tmpf = malloc(strlen(path) + strlen(stmp->dir) + 2); - if (strlen(stmp->dir) > 0) - sprintf(tmpf, "%s/%s", path, stmp->dir); - else { - // we got the top-dir - strcpy(tmpf, path); - - // run the mod_func_rel on the rlsdir. - if (mfunc->mod_func_rel != 0) { - pre_log("MODULE-REL", "%s %s", mfunc->mod_name, stmp->dir); - rc = mfunc->mod_func_rel(tmpf, argv); - } - } - - if (mfunc->mod_func_dir != 0) { - pre_log("MODULE-DIR", "%s %s", mfunc->mod_name, stmp->dir); - - rc = mfunc->mod_func_dir(tmpf, argv); - } - - free(tmpf); - - // break if mod_func_dir signals not to continue. - if (rc == 0) - break; - } - - - // run mod_func_file on each file. - for (ftmp = files; mfunc->mod_func_file && ftmp; ftmp = ftmp->next) { - - pre_log("MODULE-FILE", "%s %s", mfunc->mod_name, ftmp->file); - - tmpf = malloc(strlen(ftmp->file) + strlen(path) + 2); - sprintf(tmpf, "%s/%s", path, ftmp->file); - - rc = mfunc->mod_func_file(tmpf, argv); - - free(tmpf); - - // if module returns 0, then break. - if (rc == 0) - break; - } - - return 1; -} - -int pre_do_module(char *module, filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { - - void *handle; - module_list_t *module_func; - module_list_t* (*module_loader)(); - void (*set_config)(hashtable_t *ht); - char *err; - - pre_log("MODULE", "%s", module); - - handle = dlopen(module, RTLD_LAZY); - if (!handle) { - err = dlerror(); - pre_log("MODULE-ERROR", "%s \"%s\"", module, err); - printf("Error loading module %s: %s\n", module, err); - return 0; - } - - module_loader = dlsym(handle, MODULE_LOADER_FUNC); - set_config = dlsym(handle, MODULE_SETCONFIG_FUNC); - - if (!module_loader || !set_config) { - pre_log("MODULE-ERROR", "%s %s", module, "No loader func found"); - printf("Error loading module %s: No loader func found\n"); - dlclose(handle); - return 0; - } - - pre_log("MODULE-RUN", "%s %s", module, path); - - set_config(get_config()); - - // try to set environment if module allows. - set_config = dlsym(handle, MODULE_SETENV_FUNC); - if (set_config) - set_config(get_context()); - - pre_exec_module(module_loader(), files, path, argv, subdirs); - - pre_log("MODULE-DONE", "%s %s", module, path); - - dlclose(handle); - - return 1; -} - -int pre_do_modules(filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { - hashtable_t *cfg, *env; - stringtokenizer st; - char *tmp; - - tmp = ht_get(get_config(), PROPERTY_MODULES); - - // no modules in config, return - if (!tmp) - return; - - st_initialize(&st, tmp, "|"); - - while (st_hasnext(&st)) { - tmp = st_next(&st); - - pre_do_module(tmp, files, path, argv, subdirs); - } - -} - - -int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv[]) { - hashtable_t *cfg, *env; - - char buf[1024], tbuf[50], ubuf[300], *tmp; - filelist_t *files, *ftmp; - creditlist_t *credits, *tcred; - struct subdir_list *subdirs; - float bcount; - long fnum; - int olduid, disks = 1; - pwdfile *pass; - chowninfo_t *chown; - - cfg = get_config(); - env = get_context(); - - pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); - - if (!pass) { - printf(" * Error, cannot get your passwd entry! \n"); - return 0; - } - - chown = chowninfo_find_by_group(group); - - olduid = getuid(); - if (setuid(0) == -1) - quit(" * Error changing uid, bug sysop to fix perms on foo-pre !\n"); - - // find filenames, and collect user's stats + do chowning of files. - files = filelist_find_by_dir(0, src, "", chown); - - // get totals. - flist_size(files, &bcount, &fnum); - printf(" * Totals of this pre for announce: %dF %.0fB\n", fnum, bcount); - - // get credits. - credits = creditlist_create_from_filelist(files); - - printf(" * Moving files to destination dir.. \n"); - printf(" -- %10.10s: %s\n", "From", src); - printf(" -- %10.10s: %s", "To", dest); - - /* - * slv 02082012 - get filename.mp3 and call get_mp3_genre(filename). - */ - // get genre. - for (ftmp = files; ftmp; ftmp = ftmp->next) { - tmp = strrchr(ftmp->file, '.'); - if (!strcmp(tmp, ".mp3")) { - sprintf(buf, "%s/%s", src, ftmp->file); - get_mp3_genre(buf); - break; - } - } - - // dont forget to chown maindir - chowninfo_apply_to_file(src, chown); - - // do the actual moving of dir. - if (pre_move_catalog(src, dest) == -1) - quit(" Failed!\n"); - else - printf(" Done\n"); - - // give credits to original uploaders - printf(" * Updating userfiles ..\n"); - strcpy(ubuf, ""); - for (tcred = credits; tcred; tcred = tcred->next) { - tmp = userfile_update(tcred); - if (tmp) - strcat(ubuf, tmp); - } - - setuid(olduid); - - if (strlen(ubuf) > 2) - ubuf[strlen(ubuf) - 2] = 0; - - // add to dupefile. - tmp = ht_get(env, PROPERTY_USER); - for (ftmp = files; ftmp; ftmp = ftmp->next) - if (!gl_dupefile_add(flist_getfilename(ftmp), tmp)) - printf(" * Error adding to dupefile: %s\n", ftmp->file); - - subdirs = subdir_flistcollect(files); - reverse_dirlog_add(subdirs, dest, rel, pass, chown); - - disks = subdirlist_count(subdirs); - if (disks == 0) - disks++; - - // create announce. - tmp = group_get_property(group, PROPERTY_GROUP_ANNOUNCE); - - if (tmp) { - - strcpy(buf, tmp); - sprintf(tbuf, "%.1f", (float)bcount/(1024*1024)); - pre_replace(buf, "%S", tbuf); - sprintf(tbuf, "%ld", fnum); - pre_replace(buf, "%W", ubuf); - pre_replace(buf, "%F", tbuf); - sprintf(tbuf, "%d", disks); - pre_replace(buf, "%C", tbuf); - pre_replace(buf, "%PP", ht_get(env, "RESOLVEDDESTINATION")); - pre_replace(buf, "%P", section_get_property(section, PROPERTY_SECTION_DIR)); - pre_replace(buf, "%U", ht_get(env, PROPERTY_USER)); - pre_replace(buf, "%T", ht_get(env, PROPERTY_TAGLINE)); - pre_replace(buf, "%G", ht_get(env, PROPERTY_GROUP)); - pre_replace(buf, "%g", ht_get(env, PROPERTY_USERGROUP)); - pre_replace(buf, "%D", section_get_property(section, PROPERTY_SECTION_NAME)); - pre_replace(buf, "%R", rel); - pre_replace(buf, "%I", id3_genre); - - gl_gllog_add(buf); - - } else - printf(" * WARNING: No announce setup ! Go bug sysop :( \n"); - - // add to dupelog. - if (!gl_dupelog_add(rel)) - printf(" * Error adding to dupelog ! (prolly wrong perms, ask sysop to fix)\n"); - - sprintf(buf, "%s/%s", ht_get(env, "RESOLVEDDESTINATION"), rel); - - // do additional module stuff - pre_do_modules(files, buf, argv, subdirs); - - return 1; -} - -int touch_dir(char *dir) { - FILE *f; - char buf[1024]; - - sprintf(buf, "%s/.touched", dir); - f = fopen(buf, "w"); - - if (!f) - return 0; - - fprintf(f, "touched\n"); - fclose(f); - - unlink(buf); - - return 1; -} - -// hacky file touch method -int touch_file(char *fname) { - int fd, needed_chmod, rval, force = 0; - unsigned char byte; - struct stat st; - - if (stat(fname, &st) == -1) - return 0; - - // Try regular files only. - if (!S_ISREG(st.st_mode)) - return 0; - - needed_chmod = rval = 0; - if ((fd = open(fname, O_RDWR, 0)) == -1) { - if (!force || chmod(fname, DEFFILEMODE)) - goto err; - if ((fd = open(fname, O_RDWR, 0)) == -1) - goto err; - needed_chmod = 1; - } - - if (st.st_size != 0) { - if (read(fd, &byte, sizeof(byte)) != sizeof(byte)) - goto err; - if (lseek(fd, (off_t)0, SEEK_SET) == -1) - goto err; - if (write(fd, &byte, sizeof(byte)) != sizeof(byte)) - goto err; - } else { - if (write(fd, &byte, sizeof(byte)) != sizeof(byte)) { -err: - rval = 1; - } else if (ftruncate(fd, (off_t)0)) { - rval = 1; - } - } - - if (close(fd) && rval != 1) { - rval = 1; - } - - if (needed_chmod && chmod(fname, st.st_mode) && rval != 1) { - rval = 1; - } - - return (rval); -} - -/* - * Gets the real path of a section, trying to expands symlink if nessecary. - */ -char *section_expand_path(char *sec) { - char tmp[1024], buf[1024], *tmpp; - int reps; - time_t now; - struct tm *tm_now; - struct stat st; - - strcpy(tmp, section_get_property(sec, PROPERTY_SECTION_DIR)); - - now = time(0); - tm_now = localtime(&now); - - strftime(buf, 1024, "%d", tm_now); - pre_replace(tmp, "DD", buf); - - strftime(buf, 1024, "%m", tm_now); - pre_replace(tmp, "MM", buf); - - strftime(buf, 1024, "%Y", tm_now); - pre_replace(tmp, "YYYY", buf); - - strftime(buf, 1024, "%y", tm_now); - pre_replace(tmp, "YY", buf); - - strftime(buf, 1024, "%w", tm_now); - pre_replace(tmp, "WW", buf); - - strftime(buf, 1024, "%W", tm_now); - pre_replace(tmp, "WOY", buf); - - // if its a link then expand it. - reps = readlink(tmp, buf, 1024); - - if (reps != -1) { - if (buf[0] == '/') { - strncpy(tmp, buf, reps); - buf[reps] = 0; - } - else { - tmpp= strrchr(tmp, '/'); - if (!tmpp) - quit(" * Symlink expansion error.."); - - strncpy(tmpp + 1, buf, reps); - *(tmpp + 1 + reps) = 0; - } - } - - if (stat(tmp, &st) == -1) { - sprintf(buf, - " * Hm, destination section's path (%s) doesnt exist ?\n", - tmp); - - quit(buf); - } - - return strdup(tmp); -} - - - -int pre_handler(int argc, char *argv[]) { - hashtable_t *env, *cfg; - strlist_t *groups; - char *dest_section, *destpath; - struct stat st; - char source[1024], destination[1024], *tmp, *group; - char buf[1024]; - int rc; - - env = get_context(); - cfg = get_config(); - - pre_log("START", "%s %s %s", ht_get(env, PROPERTY_USER), argv[1], argv[2]); - - // set etcdir for the pwd functions - if (tmp = ht_get(cfg, PROPERTY_ETCDIR)) - pwd_set_etcdir(tmp); - - if (tmp = ht_get(cfg, PROPERTY_TEXT_HEAD)) - printf(tmp); - - groups = user_find_groups(ht_get(env, PROPERTY_USER)); - - if (!groups) - quit(" * Error finding your groups, go bug sysop!\n"); - - if (argc < 2) { - printf(USAGE); - - show_groupdirs(groups); - - quit(0); - } - - // check if someone are trying to fool us. - if (strchr(argv[1], '/')) - quit(" * You cant give paths in releasename ('/' not allowed)!\n"); - - char *sourcebis = getcwd(NULL, 0); - - // check if we are in a position to pre. - group = group_find_by_dir(groups, sourcebis); - - if (!group) { - printf(" * You are not in the group-dir of any of your groups.\n\n"); - - show_groupdirs(groups); - - quit(0); - } - - pre_log("GROUP", "%s %s", sourcebis, group); - - printf(" * Looks like this is going to be a %s pre..\n", group); - ht_put(env, PROPERTY_GROUP, group); - - // check if we have chosen a valid destination for our pre. - dest_section = section_find_by_name(group, argc > 2 ? argv[2] : 0); - - if (!dest_section) { - show_groupdirs(groups); - - quit(0); - } - - printf(" * Destination for pre will be the %s section..\n", dest_section); - ht_put(env, "section", dest_section); - - destpath = section_expand_path(dest_section); - ht_put(env, "RESOLVEDDESTINATION", destpath); - - strcpy(source, sourcebis); - strcat(source, "/"); - strcat(source, argv[1]); - - // check if source dir is okay. - if ((stat(source, &st) == -1) || !S_ISDIR(st.st_mode)) { - sprintf(source, " * Hm, '%s' doesnt exist or isnt a dir ?\n", - argv[1]); - quit(source); - } - - // touch the source. - touch_dir(source); - - // check if destination dir exists. - sprintf(destination, "%s/%s", destpath, argv[1]); - - rc = stat(destination, &st); - - // try rename if requested - if ((rc == 0) && (argc > 3) && (!strcasecmp(argv[3], "force"))) { - - sprintf(buf, "%s_TRADING", destination); - rc = rename(destination, buf); - - if (rc == 0) - printf(" + Renamed existing to %s_TRADING ..\n", argv[1]); - else - printf(" ! Failed rename existing to %s_TRADING ..\n", argv[1]); - } - - // check if destination exists. - if (stat(destination, &st) == -1) - pre(dest_section, destination, source, argv[1], group, argv); - else { - sprintf(source, " * Hm destination already exists. You're too late with pre!\n + Use SITE PRE %s %s FORCE to force pre.\n (this will rename the existing dir, which you can then nuke or wipe afterwards!)\n"); - quit(source); - } - - // log DONE: "" "" "" "" - //slv added: "" - pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", - ht_get(env, PROPERTY_USER), group, - argv[1], destpath, id3_genre); - return 0; -} - -/* - * slv 02082012 - reads last 128 bytes of mp3 and extracts genre tag - * thanks to movEAX_444 (devshed.com) for his code example - */ - -int get_mp3_genre(const char* filename) { - FILE *fp; - char mp3_fbuf[2]; - if (!(fp=fopen(filename,"rb"))) { - return 1; - } - if (fseek(fp,-128,SEEK_END)) { - printf("<128 !"); - return 1; - } else { - fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; - id3_genre_num[0]=255; - if (!strcmp((const char *)"TAG",(const char *)mp3_fbuf)) { - fseek(fp, -1, SEEK_END); - fread(id3_genre_num,1,1,fp); - if(id3_genre_num[0] != '\0' && id3_genre_num[0] > 0 && id3_genre_num[0] < genre_count) { - id3_genre = genre_s[id3_genre_num[0]]; - } - } - } -} - -/* - * Initialize the environment. - */ -int pre_init() { - hashtable_t *tmp; - char *sanity; - - // load config. - tmp = get_config(); - ht_load_prop(tmp, PRE_CONFIGFILE, '='); - - // lame check on environment. prevents idiots from sending me - // 'why does it segv when i run it ???' questions. - sanity = getenv("TAGLINE"); - if (!sanity) { - printf("Did not find environment for glftpd, please run only from within glftpd as 'site' command!\n"); - exit(1); - } - - // put env variables into the context. - tmp = get_context(); - ht_put(tmp, PROPERTY_USER, getenv("USER")); - ht_put(tmp, PROPERTY_TAGLINE, getenv("TAGLINE")); - ht_put(tmp, PROPERTY_USERGROUP, getenv("GROUP")); -} - - -/* - * Main method. - */ -int main(int argc, char *argv[]) { - int rc; - - pre_init(); - - rc = pre_handler(argc, argv); - - quit(0); - - // never reached. - return 0; -} - - -void quit(char *s, ...) { - hashtable_t *cfg = get_config(); - char *tmp; - va_list va; - - if (s) { - va_start(va, s); - - vprintf(s, va); - va_end(va); - } - - if (tmp = ht_get(cfg, PROPERTY_TEXT_TAIL)) - printf(tmp, VERSION); - - exit(0); -} diff --git a/src/pre/foo-pre.h b/src/pre/foo-pre.h index 08fc753..d2fb68c 100644 --- a/src/pre/foo-pre.h +++ b/src/pre/foo-pre.h @@ -26,6 +26,8 @@ #include #include +typedef unsigned short int ushort; + #define PRE_CONFIGFILE "/etc/pre.cfg" #define PRE_LOGFILE "/ftp-data/logs/foo-pre.log" diff --git a/src/pre/modules/mod_chmod.c b/src/pre/modules/mod_chmod.c index b5e5719..095e6fb 100644 --- a/src/pre/modules/mod_chmod.c +++ b/src/pre/modules/mod_chmod.c @@ -25,6 +25,7 @@ */ #include +#include // project includes #include "mod_chmod.h" diff --git a/src/pre/modules/mod_symlink.c b/src/pre/modules/mod_symlink.c index a3e9fa0..99b974b 100644 --- a/src/pre/modules/mod_symlink.c +++ b/src/pre/modules/mod_symlink.c @@ -25,7 +25,7 @@ */ #include - +#include // project includes #include "mod_symlink.h" #include "../foo-pre.h" diff --git a/src/pre/mp3genre/Makefile b/src/pre/mp3genre/Makefile new file mode 100644 index 0000000..dfde313 --- /dev/null +++ b/src/pre/mp3genre/Makefile @@ -0,0 +1,15 @@ + +include ../../Makefile.config + +mp3genre: + $(CC) -c $@.c -o $@.o + +all: mp3genre + +clean: + rm -f *.o *~ + +release: + mkdir -p $(RELEASEDIR)/pre/mp3genre + cp *.c *.h $(RELEASEDIR)/pre/mp3genre + diff --git a/src/pre/mp3genre/Makefile.in b/src/pre/mp3genre/Makefile.in new file mode 100644 index 0000000..dfde313 --- /dev/null +++ b/src/pre/mp3genre/Makefile.in @@ -0,0 +1,15 @@ + +include ../../Makefile.config + +mp3genre: + $(CC) -c $@.c -o $@.o + +all: mp3genre + +clean: + rm -f *.o *~ + +release: + mkdir -p $(RELEASEDIR)/pre/mp3genre + cp *.c *.h $(RELEASEDIR)/pre/mp3genre + diff --git a/src/pre/mp3genre/compile.sh b/src/pre/mp3genre/compile.sh.bak old mode 100755 new mode 100644 similarity index 100% rename from src/pre/mp3genre/compile.sh rename to src/pre/mp3genre/compile.sh.bak diff --git a/src/pre/mp3genre/mp3genre.h b/src/pre/mp3genre/mp3genre.h index 06f9da9..3a5fcd4 100644 --- a/src/pre/mp3genre/mp3genre.h +++ b/src/pre/mp3genre/mp3genre.h @@ -1,5 +1,5 @@ /* - * slv 02082012 - headers for mp3genre.c + * slv 20170408 - headers for mp3genre.c * * from pzs-ng zipscript/src/multimedia.c * http://www.pzs-ng.com @@ -8,43 +8,55 @@ #include char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychadelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Unknown" + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychedelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Abstract", "Art Rock", "Baroque", "Bhangra", + "Big Beat", "Breakbeat", "Chillout", "Downtempo", + "Dub", "EBM", "Eclectic", "Electro", "Electroclash", + "Emo", "Experimental", "Garage", "Global", + "IDM", "Illbient", "Industro-Goth", "Jam Band", + "Krautrock", "Leftfield", "Lounge", "Math Rock", + "New Romantic", "Nu-Breakz", "Post-Punk", "Post-Rock", + "Psytrance", "Shoegaze", "Space Rock", "Trop Rock", + "World Music", "Neoclassical", "Audiobook", "Audio Theatre", + "Neue Deutsche Welle", "Podcast", "Indie Rock", "G-Funk", + "Dubstep", "Garage Rock", "Psybient", "Unknown" }; -unsigned char genre_count=149; +unsigned char genre_count=193; diff --git a/src/pre/pre.cfg b/src/pre/pre.cfg index ddd9bdb..db8b2d2 100644 --- a/src/pre/pre.cfg +++ b/src/pre/pre.cfg @@ -111,7 +111,7 @@ group.DEFAULT.ratio=USERFILE # In the 'dir' property you can use the following macros: # # DD - day (01-31), MM - month (01-12), YYYY - year 4 digits, YY - year 2 digits -# WW - week (00-53) +# WW - week (00-53), CW or KW - Calendar week (00-53) # # diff --git a/src/pre/standalone_mp3genre/mp3genre b/src/pre/standalone_mp3genre/mp3genre deleted file mode 100755 index 46bfd4ba7f08790f3a44195624edfe30f9b09c87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10565 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 diff --git a/src/pre/standalone_mp3genre/mp3genre.c b/src/pre/standalone_mp3genre/mp3genre.c deleted file mode 100644 index b88cd4e..0000000 --- a/src/pre/standalone_mp3genre/mp3genre.c +++ /dev/null @@ -1,79 +0,0 @@ -/* - slv 02082012 - mp3 genre output added to PRE (instead of as a module) - reads last 128 bytes of mp3 and extracts genre tag - thanks to movEAX_444 (devshed.com) for his code example -*/ - -#include - -char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychadelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Unknown" -}; -unsigned char genre_count = 149; -char *id3_genre = "n/a"; -unsigned char id3_genre_num[1]; - -int main(int argc, char *argv[]) { - const char* filename=argv[1]; - get_mp3_genre(filename); - printf("%s (%d)\n",id3_genre,id3_genre_num[0]); -} - -int get_mp3_genre(const char* filename) { - FILE *fp; - char mp3_fbuf[2]; - if (!(fp=fopen(filename,"rb"))) { - return 1; - } - if (fseek(fp,-128,SEEK_END)) { - printf("<128 !"); - return 1; - } else { - fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; - id3_genre_num[0]=255; - if (!strcmp((const char *)"TAG",(const char *)mp3_fbuf)) { - fseek(fp, -1, SEEK_END); - fread(id3_genre_num,1,1,fp); - if(id3_genre_num[0] != '\0' && id3_genre_num[0] > 0 && id3_genre_num[0] < genre_count) { - id3_genre = genre_s[id3_genre_num[0]]; - } - } - } -} diff --git a/src/pre/standalone_mp3genre/mp3genre.c.new b/src/pre/standalone_mp3genre/mp3genre.c.new deleted file mode 100644 index c77b967..0000000 --- a/src/pre/standalone_mp3genre/mp3genre.c.new +++ /dev/null @@ -1,116 +0,0 @@ -/* - slv 02082012 - mp3 genre output added to PRE (instead of as a module) - reads last 128 bytes of mp3 and extracts genre tag - thanks to movEAX_444 (devshed.com) for his code example -*/ - -#include - -char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychadelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Unknown" -}; -unsigned char genre_count = 149; -char *id3_genre = "n/a"; -int id3_genre_num = 255; - -int main(int argc, char *argv[]) { - const char* filename=argv[1]; - get_mp3_genre(filename); - printf("%s (%d)\n",id3_genre,id3_genre_num); -} - -int get_mp3_genre(const char* filename) { - FILE *fp; - //char mp3_fbuf[128]; - char mp3_fbuf[4]; - if (!(fp=fopen(filename,"rb"))) { - return 1; - } - if (fseek(fp,-128,SEEK_END)) { - return 1; - } - - //mp3info - char title[31]; - char artist[31]; - char album[31]; - char year[5]; - char comment[31]; - unsigned char track[1]; - unsigned char genre[1]; - fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; - genre[0]=255; - fseek(fp, -125, SEEK_END); - fread(title,1,30,fp); title[30] = '\0'; - fread(artist,1,30,fp); artist[30] = '\0'; - fread(album,1,30,fp); album[30] = '\0'; - fread(year,1,4,fp); year[4] = '\0'; - fread(comment,1,30,fp); comment[30] = '\0'; - if(comment[28] == '\0') { - track[0] = comment[29]; - } - fread(genre,1,1,fp); - printf("(%s)\n",title); - printf("(%s)\n",artist); - printf("(%s)\n",album); - printf("(%s)\n",year); - printf("(%s)\n",comment); - printf("(%s)\n",track); -// printf("genre s (%s)\n",genre[0]); - printf("genre d (%d)\n",genre[0]); - //mp3info - - /* - printf("(%d)\n",mp3_fbuf[125]); - printf("(%d)\n",mp3_fbuf[126]); - printf("(%d)\n",mp3_fbuf[126]); - printf("(%d)\n",mp3_fbuf[127]); - printf("(%d)\n",mp3_fbuf[128]); - printf("(%d)\n",mp3_fbuf[129]); - printf("(%d)\n",mp3_fbuf[130]); - fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; - if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { - return 1; - } - id3_genre_num = mp3_fbuf[127]; if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } - printf("(%d)\n",id3_genre_num); - id3_genre = genre_s[id3_genre_num]; - */ -} diff --git a/src/pre/standalone_mp3genre/mp3genre.c.old b/src/pre/standalone_mp3genre/mp3genre.c.old deleted file mode 100644 index 5dfc2db..0000000 --- a/src/pre/standalone_mp3genre/mp3genre.c.old +++ /dev/null @@ -1,74 +0,0 @@ -/* - slv 02082012 - mp3 genre output added to PRE (instead of as a module) - reads last 128 bytes of mp3 and extracts genre tag - thanks to movEAX_444 (devshed.com) for his code example -*/ - -#include - -char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychadelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Unknown" -}; -unsigned char genre_count=149; -char *id3_genre; -int id3_genre_num; - -int main(int argc, char *argv[]) { - const char* filename=argv[1]; - get_mp3_genre(filename); - printf("%s (%d)\n",id3_genre,id3_genre_num); -} - -int get_mp3_genre(const char* filename) { - FILE *fp; - char mp3_fbuf[128]; - if (!(fp=fopen(filename,"rb"))) { - return 1; - } - if (fseek(fp,-128,SEEK_END)) { - return 1; - } - fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; - if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { - return 1; - } - id3_genre_num = mp3_fbuf[127]; if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } - id3_genre = genre_s[id3_genre_num]; -} diff --git a/src/pre/standalone_mp3genre/mp3genre_test1 b/src/pre/standalone_mp3genre/mp3genre_test1 deleted file mode 100755 index afb2995cf58285bf88e6d731a56d70e1d3847d02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7386 zcmcIpYit}>6~4RcS00VsJX*K4$e?aS65)-Vm)w$8~9mh0r8G zJgRHA%I{tll{jln)uV~)qj+QzFRyrc#bbSv3Wl)e_EFpD*PzO4@awS1)=7zWd0o)5 zFMxGlv*VOLr3yM#qf1ZLL1_uWntA)cqk4W`;d*XKCi-@6-;#_sCKIV#zA@jjvvKG4 zP&OUfD(hc|0;!3edwONj+#jo9QS7z&(O6P`)s^>u+p}e=IhecHVdgI%%l>4fnewXf zV;G{`W3{Z(9OyTml!Sd2lG5GP8Cp zW1FTxH}_Mo?i2&*VJjtuGl`TvAO^CQ^|TnsSg|-57aKMA|}y{^KQCyl~8#^}{s-924XlX|r- zjHz?oQcYc`)Wz(t;P~PAIMvY@tMs7&T848 z5 zJCZ&M_xPpr0|Nu0+V#iK1R;8j(TAo22!y!y>Is6VZZ*FdMx0B!#$DKMIy>W^% zr^3@;#-8!&4qS|}@U&5Q!zfJ6Uih?FGz#GvWAxb>k-LAQMP~P^Y+3H?2z(}FPdDHS z^31E$&&Jfn5p)ohl7a`K-#^h^hTb|)f16liy)(v%Z<<${DXQ^x|=IijRJtOmW z_2lkCav$7wwdPhJxu24qwl)zh6XWeqP(_p?=8h=W+Oxk`{MxgZk)nXLXQwAJU>E+1 zXinQ+2C?=`_)o_szxhSd-wEHWJ=1%0VwBvdha9(O;WpQBF?EWC_E9w?7Gns*>tV7 z@JUzUwsG#0Kv&_-+1LMru0H;r-O&6OS`U%JzaoX(?S-4I#kFr4qvtWF<}&XZV^0Jz zRg=NG$XGmBA3;isjM>4Bk+CDeCQPFiObaRV^A$5Rih3BM9~bR=UZdNdnwN7mnCD}d zuOAn4AE+7VtcBTHv{xDj;9`{1l#Cd*`5jIkA9Q3kIPl|D=J^X z|98dDdEP)jRO9q>rOzmRQRz37_VPO0+8)$4wp)FPSW4R-+8)}`*s{q<2ocI29I8nK*|bug6+_2m+HgiFLlh^)a_c2I=khf^re(RRkk zIb>zBiFB&OFp-zBk})Ev)Ns-kp+qWyt8L|R9e{znbUbFqM93O62QslC%N&e@%a#cB z+v!Xe0Uh;JKQd8fY$(x>fN2ziOGuXOl+%}mcYk_l$V%DXj`|<%`@o|)!}C@6byyGu z&>r9xo?ndJj|9zK<~R6tSPRebnzR-!ye=7OM#9bC<=17_E>$4yCvNfb4P?^u6vvPH zbyz|~70@It=beO-yso&Mc3`)$R+!KG!?*&t{Z*S^=k&BejwG zj`_TfzXpu<4(9WIbURmu%psm{wWWi-<$b;I`|pD&Fn4@@53N@Z9PBU2EpIeyE`!DB_FA3{Ak>=PkLtUO%@jrEgNHdRNvU%+= zM!K6Ga3N8(v3vpPE%ch2#$c$GL^7Oxh3e{z=;DVj6n6&4W^OqLqg=mD0r&YA zk0Tuo3I7@q@zm%2C2;yQ;qxz^Kg)q@V)1-f2fW<5?k0(^61u8CZ(|QAoS$>38YDV! zO{PjOdzZlbWjUq3WF3uE%?4JeW-P z#ge9cSv6z1yugd-aMH4^cxdOg?ahKR%tSm-);1i`)BA2bH#BsZ+bIb>T5!OHfPG0cjfB&EMY!!$lPxo#Oa-tX-mek zSu5*&lkgNKi;!O~JQ?0^7M|>`y@(r6q|98_qUN|N4I`U22V<#t(n5|LEbch@A%v - -/* -typedef struct _id3tag -{ - unsigned char genre; -} id3tag; - -int main(int argc, char **argv) -{ - id3tag ID3; - if(!ReadID3("test.mp3",&ID3)) - printf("error!\n"); - printf("Genre %d\n",ID3.genre); - return 0; -} -*/ -//int ReadID3(const char* Filename, id3tag *ID3Tag) - -int main() -{ - const char* filename="test.mp3"; - FILE *fp; -// unsigned char genre; - char fbuf[128]; - if (!(fp=fopen(filename,"rb"))) { - printf("DEBUG: doesnt exist %s\n",filename); - return 1; - } - if (fseek(fp,-128,SEEK_END)) { - printf("DEBUG: >128 %s\n",filename); - return 1; - } else { - -/* - fread(fbuf,1,3,fp); fbuf[3] = '\0'; - printf("DEBUG: fbuf 0 1 2 3 4 %c %c %c %c %c\n", fbuf[0], fbuf[1], fbuf[2], fbuf[3], fbuf[4]); - char genre[0]; - char title[255]; - char artist[255]; - char album[255]; - char year[255]; - char comment[255]; - char track[255]; - if (!strcmp((const char *)"TAG",(const char *)fbuf)) { - printf("DEBUG: TAG match\n"); - fseek(fp, -125, SEEK_END); - fread(title,1,30,fp); title[30] = '\0'; - fread(artist,1,30,fp); artist[30] = '\0'; - fread(album,1,30,fp); album[30] = '\0'; - fread(year,1,4,fp); year[4] = '\0'; - fread(comment,1,30,fp); comment[30] = '\0'; - if(comment[28] == '\0') { - track[0] = comment[29]; - } - fread(genre,1,1,fp); - } - printf("DEBUG: Title %s\n",title); - printf("DEBUG: Artist %s\n",artist); - printf("DEBUG: Album %s\n",album); - printf("DEBUG: Year %s\n",year); - printf("DEBUG: Comment %s\n",comment); - printf("DEBUG: Track %s\n",track); - printf("DEBUG: Genre %s\n",genre); -*/ - unsigned char genre; - - fread(fbuf,sizeof(char),sizeof(fbuf),fp); - if(!(fbuf[0]=='T' && fbuf[1] == 'A' && fbuf[2] == 'G')) { - printf("DEBUG: no tag %s\n",filename); - return 0; - } - printf("DEBUG: %c %c %c\n",fbuf[0], fbuf[1], fbuf[2]); - if(fbuf[127] > 0 && fbuf[127] < 256) { - genre = fbuf[127]; - printf("Genre %d\n",genre); - } - else { - genre = 255; - printf("DEBUG: Genre above 255 %d\n",genre); - } - return 1; - } -} - diff --git a/src/pre/standalone_mp3genre/mp3genre_test2 b/src/pre/standalone_mp3genre/mp3genre_test2 deleted file mode 100755 index 42d4006610988bcaa26608a4b54a0b2aec5e4dbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10547 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 - -char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychadelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Unknown" -}; -unsigned char genre_count=149; -char *id3_genre; -int id3_genre_num; - -int main(int argc, char *argv[]) { - const char* filename=argv[1]; - get_mp3_genre(filename); - //printf("%s (%d)\n",id3_genre,id3_genre_num); - printf("(%d)\n",id3_genre_num); -} - -int get_mp3_genre(const char* filename) { - FILE *fp; - char mp3_fbuf[128]; - if (!(fp=fopen(filename,"rb"))) { - return 1; - } - if (fseek(fp,-128,SEEK_END)) { - return 1; - } - fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; - if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { - return 1; - } - id3_genre_num = mp3_fbuf[127]; //if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } - //id3_genre = genre_s[id3_genre_num]; -} diff --git a/src/pre/standalone_mp3genre/mp3genre_test3 b/src/pre/standalone_mp3genre/mp3genre_test3 deleted file mode 100755 index ef525151bb0eb1492f312395075bbe43da3cb01e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10542 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 - -char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychadelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Unknown" -}; -unsigned char genre_count=149; -char *id3_genre; -int id3_genre_num; - -int main(int argc, char *argv[]) { - const char* filename="/jail/workspace/footools-x86-x64-20111102-mp3genre-try/src/pre/mp3info/test.mp3"; - get_mp3_genre(filename); - printf("%s (%d)\n",id3_genre,id3_genre_num); -} - -int get_mp3_genre(const char* filename) { - FILE *fp; - char mp3_fbuf[128]; - if (!(fp=fopen(filename,"rb"))) { - return 1; - } - if (fseek(fp,-128,SEEK_END)) { - return 1; - } - fread(mp3_fbuf,sizeof(char),sizeof(mp3_fbuf),fp); mp3_fbuf[3] = '\0'; - if (strcmp((const char *)"TAG" , (const char *) mp3_fbuf)) { - return 1; - } - id3_genre_num = mp3_fbuf[127]; if(!(id3_genre_num > 0 && id3_genre_num < genre_count)) { id3_genre_num = 148; } - id3_genre = genre_s[id3_genre_num]; -} diff --git a/src/pre/standalone_mp3genre/mp3genre_test4 b/src/pre/standalone_mp3genre/mp3genre_test4 deleted file mode 100755 index 7364581b0df624be14838b6b002232b7cb2a1aeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7204 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 GR{sHo_uv`; diff --git a/src/pre/standalone_mp3genre/mp3genre_test4.c b/src/pre/standalone_mp3genre/mp3genre_test4.c deleted file mode 100644 index 3f540f2..0000000 --- a/src/pre/standalone_mp3genre/mp3genre_test4.c +++ /dev/null @@ -1,38 +0,0 @@ -#include - -typedef struct _id3tag -{ - unsigned char genre; -} id3tag; - -int ReadID3(const char* Filename, id3tag *ID3Tag);//0==error, 1==sucess - -int main(int argc, char **argv) -{ - id3tag ID3; - if(!ReadID3("test.mp3",&ID3)) - printf("error!\n"); - printf("Genre %d\n",ID3.genre); - return 0; -} - - -int ReadID3(const char* Filename, id3tag *ID3Tag) -{ - FILE *fp=fopen(Filename,"rb"); - char buffer[128]; - int x; - fseek(fp,-128,SEEK_END); - fread(buffer,sizeof(char),sizeof(buffer),fp); - if(!(buffer[0]=='T' && buffer[1] == 'A' && buffer[2] == 'G')) - { - return 0; - } - if(buffer[127] > 0 && buffer[127] < 256) - //if its between 1-255, put it - ID3Tag->genre = buffer[127]; - else - //255 means unused - ID3Tag->genre = 255; - return 1; -} diff --git a/src/pre/standalone_mp3genre/mp3genre_test5.c b/src/pre/standalone_mp3genre/mp3genre_test5.c deleted file mode 100644 index 703cff9..0000000 --- a/src/pre/standalone_mp3genre/mp3genre_test5.c +++ /dev/null @@ -1,24 +0,0 @@ -#include - -#include "mp3tech.h" - -int get_id3 (mp3info *mp3) { - int retcode=0; - char fbuf[4]; - if(mp3->datasize >= 128) { - if(fseek(mp3->file, -128, SEEK_END )) { - fprintf(stderr,"ERROR: Couldn't read last 128 bytes of %s!!\n",mp3->filename); - retcode |= 4; - } else { - fread(fbuf,1,3,mp3->file); fbuf[3] = '\0'; - mp3->id3.genre[0]=255; - if (!strcmp((const char *)"TAG",(const char *)fbuf)) { - mp3->id3_isvalid=1; - mp3->datasize -= 128; - fseek(mp3->file, -125, SEEK_END); - fread(mp3->id3.genre,1,1,mp3->file); - } - } - } - return retcode; -} diff --git a/src/reset/foo-reset b/src/reset/foo-reset deleted file mode 100755 index c0751048884335febf5cc9c2c7135a26ed3a905b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40699 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 diff --git a/src/sfv/createsfv b/src/sfv/createsfv deleted file mode 100755 index de1d769374ef99c36f46adb224e1cd1b82fbc885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21984 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%0A>Sk!TPllxD5CL@DtpP_5$Z(kI@M1{1wt;qf`V; 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 +#include +#include #define TP_DEF_MIN 5 #define TP_DEF_MAX 10 diff --git a/src/util/date.h b/src/util/date.h index ba5d551..0d9b300 100644 --- a/src/util/date.h +++ b/src/util/date.h @@ -24,6 +24,8 @@ #define _date_h #include +#include +#include struct date { int mon; diff --git a/src/util/linereaderbuffer.h b/src/util/linereaderbuffer.h index a9be955..5c81fc5 100644 --- a/src/util/linereaderbuffer.h +++ b/src/util/linereaderbuffer.h @@ -19,6 +19,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include + struct linereaderbuffer { char *data; int offset; diff --git a/src/who/spy b/src/who/spy deleted file mode 100755 index 30dd7675d57dbdc8338a491136d5b5f23dcc99b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35229 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 uHOP?pFLfk3Q>wAS #include +#include + #include "spy_view.h" #include "spy.h" #include "../lib/who.h" diff --git a/src/zip/zipcheck b/src/zip/zipcheck deleted file mode 100755 index 2f1afeb3c2a69ab187bf2902000d0abdc0663306..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65094 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 T>JCzDwXj%dpKR+qi{k$SY3wYg diff --git a/src/zip/zipcheck.c b/src/zip/zipcheck.c index c071005..8d5837d 100644 --- a/src/zip/zipcheck.c +++ b/src/zip/zipcheck.c @@ -28,6 +28,8 @@ #include #include #include +#include +#include #include #include "mod_zip.h" From 4ef4774e28b2f3f28cd94bcf331e15c2adf983a6 Mon Sep 17 00:00:00 2001 From: silver Date: Sun, 9 Apr 2017 01:12:58 +0200 Subject: [PATCH 06/23] updated changes --- README.md | 65 ----------------------------------------------------- src/CHANGES | 5 +++++ 2 files changed, 5 insertions(+), 65 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index 29fe41d..0000000 --- a/README.md +++ /dev/null @@ -1,65 +0,0 @@ - -Welcome to foo-tools. Good to see that you managed to download it ;-). -====================================================================== - -This is the first file you should be reading after downloading, it -contains the very basics of getting you started, so be sure to read -it all, top to bottom. - - -License: --------- - -foo-tools is free software, licensed under the GPL. Please take a -few minutes to read through the included LICENSE.txt to learn about -what this means, since we are strong believers of free software, and -do not tolerate violations. - - -Requirements: -------------- - -foo-tools does not require glftpd, but many of the tools are specific -to glftpd, and will not work without it. - -Also, since the tools have been developed on Linux, some will not -work under other OSs. Most are known to be working under FreeBSD -with minor or no changes (mainly changing 'make' to 'gmake' in the -Makefiles). If someone have the skills/time to fix the portability -issues, please let us know. - - -Organization: -------------- - -* The tools, look at the src/ catalog. You can run the './configure' - script followed by 'make' to build. - -* Documentation, look in the doc/ catalog. - -* Older stuff, look in the unsorted-older/ catalog. - -* Not 100% finished but running, look in the testing/ catalog. - You are not adviced to use these, but if you have guts be my - guest :-). Some are running well, but just not well-documented - for release. - - -Bugs/improvements: ------------------- - -If you find bugs (yes, they are there for sure), or have ideas for -improvements, you are ofcause entitled to fix/improve by yourself, -but it would be highly appreciated, if you would follow the spirit -of foo-tools, and either send us patches, or make them available for -download. - -If you do are not a programmer, but got this great idea that just -fits so well into foo-tools, you can also tell us about it, and ask -us to implement it. If we have enough sparetime and the idea is good, -maybe we will do it ;-). - - - -Enjoy, Tanesha Team, - diff --git a/src/CHANGES b/src/CHANGES index 561f622..f6131bd 100644 --- a/src/CHANGES +++ b/src/CHANGES @@ -79,6 +79,11 @@ Mar 9 2014: * added stack protection flags to compilation //slv Aug 08 2012: * MP3 genre added to PRE output (instead of in mod_idmp3) +Apr 09 2017: * cleaned up files +Apr 09 2017: * created makefile for mp3genre, fixed a few compiler warnings +Apr 09 2017: * merged commits 2014/15 commits from glftpd/foo-tools.git +Apr 09 2017: * updated mp3 genres from pzs-ng/zipscript/src/multimedia.c + //glftpd-scripts Nov 8 2014: * add calendar weeks for pre, fix typo, add CW/KW as macro for dated pre-dirs From 65772d8531c870db0fbec6f464da6a7a2216a723 Mon Sep 17 00:00:00 2001 From: silver Date: Mon, 10 Apr 2017 00:31:49 +0200 Subject: [PATCH 07/23] added some more stuff to .gitignore --- .gitignore | 23 +++++++++++++++++++++++ src/pre/mp3genre/compile.sh.bak | 4 ---- 2 files changed, 23 insertions(+), 4 deletions(-) delete mode 100644 src/pre/mp3genre/compile.sh.bak diff --git a/.gitignore b/.gitignore index 9fa3b1b..ac7fdd6 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,26 @@ *.exe *.out *.app + +simple_entry +entry +datanode +*.pid +nfocleaner +foo-nukes +foo-pre +mp3info +foo-reset +createsfv +blehsfv +lfrtest +spy +webspy +zipcheck + +Makefile +config.h +config.status +config.cache +config.log + diff --git a/src/pre/mp3genre/compile.sh.bak b/src/pre/mp3genre/compile.sh.bak deleted file mode 100644 index 6b01d36..0000000 --- a/src/pre/mp3genre/compile.sh.bak +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -CC=`which gcc` -if [ -f mp3genre.o ]; then rm mp3genre.o; fi -$CC -c mp3genre.c From bd598e71a07e4ab7385189be565d39a7aed57465 Mon Sep 17 00:00:00 2001 From: silver Date: Mon, 10 Apr 2017 08:28:09 +0200 Subject: [PATCH 08/23] updated config, added specific readme for mp3genre --- README.mp3genre | 39 +++++++++++++++++++++++++++++++++++++++ src/pre/pre.cfg | 6 ++++-- 2 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 README.mp3genre diff --git a/README.mp3genre b/README.mp3genre new file mode 100644 index 0000000..08d12eb --- /dev/null +++ b/README.mp3genre @@ -0,0 +1,39 @@ +Instructions foo-pre mp3genre: +============================== + +Ugly hack for foo-pre to add mp3 genre in PRE output (instead of in mod_idmp3). +This will add a new "genre" variable which you can use in PRE announces. + +compile as usual; +----------------- + +$ ./configure +$ make build +etc +(you do not need the mod_id3 module) + +configure pre.cfg; +------------------- + +The mp3genre hack introduces a new "%I" "macro": +group.DEFAULT.announce=PRE: "%PP/%R" "%R" "%G" "%D" "%F" "%S" "%C" "%W" "%U" "%g" "%T" "%I" + +If you have any other announces defined do not forget to add it to those too. + +change ngBot.conf; +------------------ + +add genre variable: +set variables(PRE) "%pf %releasename %pregroup %section %files %mbytes %cds %who %user %g_name %tagline %genre" + +also change theme, eg default.zst: +announce.PRE = "[%b{%c1{pre} }][%section] %b{%relname} by %b{%pregroup} in %b{%files} files (%b{%mbytes}MB) of %b{%genre}." + +example output; +--------------- + +mp3 with genre: +Mon Jan 01 00:00:00 2017 PRE: "/site/mp3/0101/Example-Release-GRP" "Example-Release-GRP" "GRP" "mp3" "1" "10.0" "1" "user/10l.0Mb" "user" "GRP" "Tagline" "Pop" + +release without genre: +Mon Jan 01 00:00:00 2017 PRE: "/site/mv/week-01/Example-Release-GRP" "Example-Release-GRP" "GRP" "mv" "1" "100.0" "1" "user/100.0Mb" "user" GRP" "Tagline" "n/a" diff --git a/src/pre/pre.cfg b/src/pre/pre.cfg index db8b2d2..91a6dfc 100644 --- a/src/pre/pre.cfg +++ b/src/pre/pre.cfg @@ -34,6 +34,8 @@ group.LameGroup.dir=/site/private/LameGroup|/site/private/otherdisk/private/Lame # %g - group of the user who pres # %T - tagline of the user who pres # +# %I - id3 genre of mp3 file +# group.STAFF.announce=PRE-TEST: "lay down its only a > Staff pre Test < %U pred %R (%C cds, %F file/s, %S Mb) in %D [wannabes: %W]" # @@ -43,7 +45,7 @@ group.STAFF.announce=PRE-TEST: "lay down its only a > Staff pre Test < %U pred % # of a .tcl, please make it support this. Take a look at the README.foo-pre # for an example of what .tcl you might add to your bot.tcl # -group.DEFAULT.announce=PRE: "%R" "%G" "%D" "%P" "%PP" %F %S %C "%W" "%U" "%g" "%T" +group.DEFAULT.announce=PRE: "%R" "%G" "%D" "%P" "%PP" %F %S %C "%W" "%U" "%g" "%T" "%I" # # define which grps are allowed to pre in which sections. @@ -217,7 +219,7 @@ mod_nfohandler.output=PRE-NFO: "NFO" "%[%s]NFO%" "GENRE" "%[%s]GENRE%" "IMDB" "% # # output line for mod_idmp3, check README.mod_idmp3 in modules/ for info. # -mod_idmp3.output=PRE-MP3INFO: "%R" "%a" "%l" "%y" "%g" "%G" "%r" "%Q" "%o" "%m" "%s" "%S" "%L" +#mod_idmp3.output=PRE-MP3INFO: "%R" "%a" "%l" "%y" "%g" "%G" "%r" "%Q" "%o" "%m" "%s" "%S" "%L" # # properties for site nfo adder. From c83a8df32a4284ef7b18b94ca3220650a8232bf2 Mon Sep 17 00:00:00 2001 From: silver Date: Fri, 14 Apr 2017 15:45:28 +0200 Subject: [PATCH 09/23] tried to improve/de-uglyfy code as much as possible ;) mp3genre.h header included in foo-pre.c mp3genre.h: switched back id3 genres get_mp3_genre function now returns id3_genre --- README.md | 24 ++++++++++ README.mp3genre | 8 ++-- src/pre/Makefile | 5 +- src/pre/Makefile.in | 5 +- src/pre/foo-pre.c | 22 ++++----- src/pre/foo-pre.h | 2 + src/pre/mp3genre/mp3genre.c | 11 +++-- src/pre/mp3genre/mp3genre.h | 92 ++++++++++++++++--------------------- 8 files changed, 93 insertions(+), 76 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..c203288 --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# foo-tools updates +---- + +- updates/fixes from https://github.com/glftpd/foo-tools +- more to Makefiles +- foo-pre has mp3 genre in PRE line (no module needed); updated + +## README: + +- [README.1st](README.1st) Original README file +- [CHANGELOG](src/CHANGELOG) CHANGELOG +- [doc](doc) Documentation tools +- [README.mp3genre](README.mp3genre) mp3genre README (install/configure) + +## TODO: + +### foo-pre +- switch from mp3genre to master branch +- add option in pre.cfg disable genre completely(?) +- replace pre/mp3genre by pzs-ng code or other id3 lib instead + +### spy +- look into libhttpd.h since it's LGPL now (http://www.hughes.com.au/products/libhttpd) + diff --git a/README.mp3genre b/README.mp3genre index 08d12eb..69dbe04 100644 --- a/README.mp3genre +++ b/README.mp3genre @@ -1,8 +1,8 @@ -Instructions foo-pre mp3genre: -============================== +Instructions foo-pre with mp3genre: +=================================== -Ugly hack for foo-pre to add mp3 genre in PRE output (instead of in mod_idmp3). -This will add a new "genre" variable which you can use in PRE announces. +This is an ugly hack for foo-pre to add mp3 genre in PRE output (instead of in mod_idmp3). +It will add a new "genre" variable which you can use in PRE announces. compile as usual; ----------------- diff --git a/src/pre/Makefile b/src/pre/Makefile index 0331151..5cd3d80 100644 --- a/src/pre/Makefile +++ b/src/pre/Makefile @@ -3,11 +3,12 @@ include ../Makefile.config SRCDIR = .. -LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o ./mp3genre/mp3genre.o +LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o +OBJS = ./mp3genre/mp3genre.o foo-pre: foo-pre.o $(LIBS) $(MAKE) -C mp3genre - $(CC) -o $@ $< $(LIBS) -ldl + $(CC) -o $@ $< $(LIBS) $(OBJS) -ldl foo.Pre: foo.Pre.o $(CC) -o $@ $< $(LIBS) diff --git a/src/pre/Makefile.in b/src/pre/Makefile.in index 0331151..5cd3d80 100644 --- a/src/pre/Makefile.in +++ b/src/pre/Makefile.in @@ -3,11 +3,12 @@ include ../Makefile.config SRCDIR = .. -LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o ./mp3genre/mp3genre.o +LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o +OBJS = ./mp3genre/mp3genre.o foo-pre: foo-pre.o $(LIBS) $(MAKE) -C mp3genre - $(CC) -o $@ $< $(LIBS) -ldl + $(CC) -o $@ $< $(LIBS) $(OBJS) -ldl foo.Pre: foo.Pre.o $(CC) -o $@ $< $(LIBS) diff --git a/src/pre/foo-pre.c b/src/pre/foo-pre.c index 3888800..542b35f 100644 --- a/src/pre/foo-pre.c +++ b/src/pre/foo-pre.c @@ -20,7 +20,7 @@ */ /* * foo.Pre [C-version] (c) tanesha team, - slv 02082012 - mp3 genre added to PRE output (instead of in mod_idmp3) + slv 20170414 - mp3 genre added to PRE output (instead of in mod_idmp3) */ #include #include @@ -45,7 +45,7 @@ #include "foo-pre.h" #include "gl_userfile.h" -#define VERSION "$Id: foo-pre.c,v 1.19 2017/04/07 17:46:00 sorend, slv Exp $" +#define VERSION "$Id: foo-pre.c,v 1.19 2017/04/14 14:14:00 sorend, slv Exp $" #define USAGE " * Syntax: SITE PRE [SECTION]\n" void quit(char *s, ...); @@ -54,10 +54,8 @@ extern int errno; hashtable_t *_config = 0; hashtable_t *_envctx = 0; -char *id3_genre; - /* - * Acecssor method for configuration. + * Acessor method for configuration. */ hashtable_t * get_config() { if (!_config) { @@ -1008,6 +1006,8 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); + char *gtmp; + if (!pass) { printf(" * Error, cannot get your passwd entry! \n"); return 0; @@ -1034,14 +1034,15 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv printf(" -- %10.10s: %s", "To", dest); /* - * slv 02082012 - get filename.mp3 and call get_mp3_genre(filename). + * slv - get filename.mp3 and call get_mp3_genre(filename). */ // get genre. for (ftmp = files; ftmp; ftmp = ftmp->next) { tmp = strrchr(ftmp->file, '.'); if (!strcmp(tmp, ".mp3")) { sprintf(buf, "%s/%s", src, ftmp->file); - get_mp3_genre(buf); + sprintf(gtmp, "%s", get_mp3_genre(buf)); + mp3_genre = gtmp; break; } } @@ -1103,7 +1104,7 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv pre_replace(buf, "%g", ht_get(env, PROPERTY_USERGROUP)); pre_replace(buf, "%D", section_get_property(section, PROPERTY_SECTION_NAME)); pre_replace(buf, "%R", rel); - pre_replace(buf, "%I", id3_genre); + pre_replace(buf, "%I", mp3_genre); gl_gllog_add(buf); @@ -1368,11 +1369,10 @@ int pre_handler(int argc, char *argv[]) { quit(source); } - // log DONE: "" "" "" "" - //slv added: "" + // log DONE: "" "" "" "" // slv added: "" pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", ht_get(env, PROPERTY_USER), group, - argv[1], destpath, id3_genre); + argv[1], destpath, mp3_genre); return 0; } diff --git a/src/pre/foo-pre.h b/src/pre/foo-pre.h index d2fb68c..27c8fa1 100644 --- a/src/pre/foo-pre.h +++ b/src/pre/foo-pre.h @@ -155,4 +155,6 @@ struct module_list { typedef struct module_list module_list_t; +char *mp3_genre = "Unknown"; + #endif diff --git a/src/pre/mp3genre/mp3genre.c b/src/pre/mp3genre/mp3genre.c index bd1c9c0..563f432 100644 --- a/src/pre/mp3genre/mp3genre.c +++ b/src/pre/mp3genre/mp3genre.c @@ -1,5 +1,5 @@ /* - * slv 02082012 - mp3genre.c: + * slv 20170414 - mp3genre.c: * * reads last 128 bytes of mp3 and extracts genre tag * ph33r my ugly "code" ;o @@ -14,16 +14,16 @@ #include "mp3genre.h" -int get_mp3_genre(const char* filename) { +char *get_mp3_genre(const char* filename) { FILE *fp; unsigned char id3_genre_num[1]; - char *id3_genre = "n/a"; + char *id3_genre = "Unknown"; char mp3_fbuf[2]; if (!(fp=fopen(filename,"rb"))) { - return 1; + return NULL; } if (fseek(fp,-128,SEEK_END)) { - return 1; + return NULL; } else { fread(mp3_fbuf,1,3,fp); mp3_fbuf[3] = '\0'; id3_genre_num[0]=255; @@ -35,4 +35,5 @@ int get_mp3_genre(const char* filename) { } } } + return id3_genre; } diff --git a/src/pre/mp3genre/mp3genre.h b/src/pre/mp3genre/mp3genre.h index 3a5fcd4..42a8d91 100644 --- a/src/pre/mp3genre/mp3genre.h +++ b/src/pre/mp3genre/mp3genre.h @@ -1,5 +1,5 @@ /* - * slv 20170408 - headers for mp3genre.c + * slv 20170414 - headers for mp3genre.c * * from pzs-ng zipscript/src/multimedia.c * http://www.pzs-ng.com @@ -8,55 +8,43 @@ #include char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychedelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Abstract", "Art Rock", "Baroque", "Bhangra", - "Big Beat", "Breakbeat", "Chillout", "Downtempo", - "Dub", "EBM", "Eclectic", "Electro", "Electroclash", - "Emo", "Experimental", "Garage", "Global", - "IDM", "Illbient", "Industro-Goth", "Jam Band", - "Krautrock", "Leftfield", "Lounge", "Math Rock", - "New Romantic", "Nu-Breakz", "Post-Punk", "Post-Rock", - "Psytrance", "Shoegaze", "Space Rock", "Trop Rock", - "World Music", "Neoclassical", "Audiobook", "Audio Theatre", - "Neue Deutsche Welle", "Podcast", "Indie Rock", "G-Funk", - "Dubstep", "Garage Rock", "Psybient", "Unknown" + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" }; -unsigned char genre_count=193; +unsigned char genre_count=149; From c69d55ff539caec4d4c45568e9151f4811f33226 Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 15:06:13 +0200 Subject: [PATCH 10/23] added gitignore for pre --- README.md | 18 ++++++++++-------- src/pre/.gitignore | 6 ++++++ README.mp3genre => src/pre/README.mp3genre | 0 3 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 src/pre/.gitignore rename README.mp3genre => src/pre/README.mp3genre (100%) diff --git a/README.md b/README.md index c203288..c0277b0 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,25 @@ # foo-tools updates ----- - updates/fixes from https://github.com/glftpd/foo-tools - more to Makefiles - foo-pre has mp3 genre in PRE line (no module needed); updated -## README: +## Documentation: - [README.1st](README.1st) Original README file -- [CHANGELOG](src/CHANGELOG) CHANGELOG -- [doc](doc) Documentation tools -- [README.mp3genre](README.mp3genre) mp3genre README (install/configure) +- [CHANGES](src/CHANGES) CHANGELOG +- [src/README.1st] (src/README.1st] Building instructions +- [doc](doc) Documentation on installing/running the programs +- [src/pre/README.mp3genre](README.mp3genre) mp3genre specific README (install/configure) ## TODO: ### foo-pre -- switch from mp3genre to master branch -- add option in pre.cfg disable genre completely(?) -- replace pre/mp3genre by pzs-ng code or other id3 lib instead +- [ ] switch from mp3genre to master branch +- [X] add option in pre.cfg disable genre completely(?) +- [ ] replace pre/mp3genre by pzs-ng code or other id3 lib instead +- [X] change bytes to mb/gb: "Totals of this pre for announce: 3F 28734928B" +- [ ] FLAC support? ### spy - look into libhttpd.h since it's LGPL now (http://www.hughes.com.au/products/libhttpd) diff --git a/src/pre/.gitignore b/src/pre/.gitignore new file mode 100644 index 0000000..06440f6 --- /dev/null +++ b/src/pre/.gitignore @@ -0,0 +1,6 @@ +*_debug +*_new +*_old +mp3genre/mp3genre.h_new +genres_1.txt +genres_2.txt diff --git a/README.mp3genre b/src/pre/README.mp3genre similarity index 100% rename from README.mp3genre rename to src/pre/README.mp3genre From 91675f49f2b7d242191a3e1c064345044d96b71c Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 15:13:12 +0200 Subject: [PATCH 11/23] fixed gitignore --- README.md | 6 ++--- "\\" | 26 +++++++++++++++++++ src/pre/.gitignore | 5 ++-- src/pre/foo-pre.c | 61 ++++++++++++++++++++++++++++++++++---------- src/pre/foo-pre.h | 2 ++ src/pre/genres-1.txt | 1 + src/pre/genres-2.txt | 1 + src/pre/pre.cfg | 2 ++ 8 files changed, 85 insertions(+), 19 deletions(-) create mode 100644 "\\" create mode 100644 src/pre/genres-1.txt create mode 100644 src/pre/genres-2.txt diff --git a/README.md b/README.md index c0277b0..9dee6c3 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # foo-tools updates - updates/fixes from https://github.com/glftpd/foo-tools -- more to Makefiles -- foo-pre has mp3 genre in PRE line (no module needed); updated +- Makefiles updated +- foo-pre has mp3 genre in PRE line (no module needed) ## Documentation: @@ -22,5 +22,5 @@ - [ ] FLAC support? ### spy -- look into libhttpd.h since it's LGPL now (http://www.hughes.com.au/products/libhttpd) +- [ ] look into libhttpd.h since it's LGPL now (http://www.hughes.com.au/products/libhttpd) diff --git "a/\\" "b/\\" new file mode 100644 index 0000000..9dee6c3 --- /dev/null +++ "b/\\" @@ -0,0 +1,26 @@ +# foo-tools updates + +- updates/fixes from https://github.com/glftpd/foo-tools +- Makefiles updated +- foo-pre has mp3 genre in PRE line (no module needed) + +## Documentation: + +- [README.1st](README.1st) Original README file +- [CHANGES](src/CHANGES) CHANGELOG +- [src/README.1st] (src/README.1st] Building instructions +- [doc](doc) Documentation on installing/running the programs +- [src/pre/README.mp3genre](README.mp3genre) mp3genre specific README (install/configure) + +## TODO: + +### foo-pre +- [ ] switch from mp3genre to master branch +- [X] add option in pre.cfg disable genre completely(?) +- [ ] replace pre/mp3genre by pzs-ng code or other id3 lib instead +- [X] change bytes to mb/gb: "Totals of this pre for announce: 3F 28734928B" +- [ ] FLAC support? + +### spy +- [ ] look into libhttpd.h since it's LGPL now (http://www.hughes.com.au/products/libhttpd) + diff --git a/src/pre/.gitignore b/src/pre/.gitignore index 06440f6..c16f897 100644 --- a/src/pre/.gitignore +++ b/src/pre/.gitignore @@ -1,6 +1,5 @@ *_debug *_new *_old -mp3genre/mp3genre.h_new -genres_1.txt -genres_2.txt +genres-1.txt +genres-2.txt diff --git a/src/pre/foo-pre.c b/src/pre/foo-pre.c index 542b35f..576f64e 100644 --- a/src/pre/foo-pre.c +++ b/src/pre/foo-pre.c @@ -1007,11 +1007,23 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv pass = pwd_getpwnam(ht_get(env, PROPERTY_USER)); char *gtmp; + char *unit = "B"; + float bconv; + int addmp3genre; if (!pass) { printf(" * Error, cannot get your passwd entry! \n"); return 0; } + + tmp = ht_get(cfg, PROPERTY_ADDMP3GENRE); + + if (tmp) + addmp3genre = atoi(tmp); + else + addmp3genre = 0; + + printf("DEBUG: addmp3genre %i\n", addmp3genre); chown = chowninfo_find_by_group(group); @@ -1024,7 +1036,12 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv // get totals. flist_size(files, &bcount, &fnum); - printf(" * Totals of this pre for announce: %dF %.0fB\n", fnum, bcount); + + // convert bytes. + if (bcount>=(1024*1024) && bcount<(1024*1024*1024)) { unit = "Mb"; bconv = (float)bcount/(1024*1024); } + if (bcount>=(1024*1024*1024)) { unit = "Gb"; bconv = (float)bcount/(1024*1024*1024); } +// printf(" * Totals of this pre for announce: %dF %.1f\n", fnum, bcount ); + printf(" * Totals of this pre for announce: %dF %.1f%s\n", fnum, bconv, unit); // get credits. credits = creditlist_create_from_filelist(files); @@ -1037,13 +1054,15 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv * slv - get filename.mp3 and call get_mp3_genre(filename). */ // get genre. - for (ftmp = files; ftmp; ftmp = ftmp->next) { - tmp = strrchr(ftmp->file, '.'); - if (!strcmp(tmp, ".mp3")) { - sprintf(buf, "%s/%s", src, ftmp->file); - sprintf(gtmp, "%s", get_mp3_genre(buf)); - mp3_genre = gtmp; - break; + if (addmp3genre) { + for (ftmp = files; ftmp; ftmp = ftmp->next) { + tmp = strrchr(ftmp->file, '.'); + if (!strcmp(tmp, ".mp3")) { + sprintf(buf, "%s/%s", src, ftmp->file); + sprintf(gtmp, "%s", get_mp3_genre(buf)); + mp3_genre = gtmp; + break; + } } } @@ -1104,7 +1123,8 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv pre_replace(buf, "%g", ht_get(env, PROPERTY_USERGROUP)); pre_replace(buf, "%D", section_get_property(section, PROPERTY_SECTION_NAME)); pre_replace(buf, "%R", rel); - pre_replace(buf, "%I", mp3_genre); + if (addmp3genre) + pre_replace(buf, "%I", mp3_genre); gl_gllog_add(buf); @@ -1268,6 +1288,8 @@ int pre_handler(int argc, char *argv[]) { char buf[1024]; int rc; + int addmp3genre; + env = get_context(); cfg = get_config(); @@ -1285,6 +1307,8 @@ int pre_handler(int argc, char *argv[]) { if (!groups) quit(" * Error finding your groups, go bug sysop!\n"); + tmp = ht_get(cfg, PROPERTY_ADDMP3GENRE); + if (argc < 2) { printf(USAGE); @@ -1293,6 +1317,11 @@ int pre_handler(int argc, char *argv[]) { quit(0); } + if (tmp) + addmp3genre = atoi(tmp); + else + addmp3genre = 0; + // check if someone are trying to fool us. if (strchr(argv[1], '/')) quit(" * You cant give paths in releasename ('/' not allowed)!\n"); @@ -1369,10 +1398,16 @@ int pre_handler(int argc, char *argv[]) { quit(source); } - // log DONE: "" "" "" "" // slv added: "" - pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", - ht_get(env, PROPERTY_USER), group, - argv[1], destpath, mp3_genre); + // log DONE: "" "" "" "" + // slv added: "" + if (addmp3genre) + pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", + ht_get(env, PROPERTY_USER), group, + argv[1], destpath, mp3_genre); + else + pre_log("DONE", "\"%s\" \"%s\" \"%s\" \"%s\" \"%s\"", + ht_get(env, PROPERTY_USER), group, + argv[1], destpath); return 0; } diff --git a/src/pre/foo-pre.h b/src/pre/foo-pre.h index 27c8fa1..55d0017 100644 --- a/src/pre/foo-pre.h +++ b/src/pre/foo-pre.h @@ -72,6 +72,8 @@ typedef unsigned short int ushort; #define MODULE_SETCONFIG_FUNC "set_config" #define MODULE_SETENV_FUNC "set_env" +#define PROPERTY_ADDMP3GENRE "addmp3genretogllog" + /* * Holds info about chowns */ diff --git a/src/pre/genres-1.txt b/src/pre/genres-1.txt new file mode 100644 index 0000000..af3bfa3 --- /dev/null +++ b/src/pre/genres-1.txt @@ -0,0 +1 @@ +Blues Classic_Rock Country Dance Disco Funk Grunge Hip-Hop Jazz Metal New_Age Oldies Other Pop R&B Rap Reggae Rock Techno Industrial Alternative Ska Death_Metal Pranks Soundtrack Euro-Techno Ambient Trip-Hop Vocal Jazz+Funk Fusion Trance Classical Instrumental Acid House Game Sound_Clip Gospel Noise AlternRock Bass Soul Punk Space Meditative Instrumental_Pop Instrumental_Rock Ethnic Gothic Darkwave Techno-Industrial Electronic Pop-Folk Eurodance Dream Southern_Rock Comedy Cult Gangsta Top_40 Christian_Rap Pop_Funk Jungle Native_American Cabaret New_Wave Psychadelic Rave Showtunes Trailer Lo-Fi Tribal Acid_Punk Acid_Jazz Polka Retro Musical Rock_&_Roll Hard_Rock Folk Folk-Rock National_Folk Swing Fast_Fusion Bebob Latin Revival Celtic Bluegrass Avantgarde Gothic_Rock Progressive_Rock Psychedelic_Rock Symphonic_Rock Slow_Rock Big_Band Chorus Easy_Listening Acoustic Humour Speech Chanson Opera Chamber_Music Sonata Symphony Booty_Bass Primus Porn_Groove Satire Slow_Jam Club Tango Samba Folklore Ballad Power_Ballad Rhythmic_Soul Freestyle Duet Punk_Rock Drum_Solo A_cappella Euro-House Dance_Hall Goa Drum_&_Bass Club_House Hardcore Terror Indie BritPop Negerpunk Polsk_Punk Beat Christian_Gangsta_Rap Heavy_Metal Black_Metal Crossover Contemporary_Christian Christian_Rock Merengue Salsa Thrash_Metal Anime JPop Synthpop Unknown diff --git a/src/pre/genres-2.txt b/src/pre/genres-2.txt new file mode 100644 index 0000000..6d7cb88 --- /dev/null +++ b/src/pre/genres-2.txt @@ -0,0 +1 @@ +Blues Classic_Rock Country Dance Disco Funk Grunge Hip-Hop Blues Classic_Rock Country Dance Disco Funk Grunge Hip-Hop Jazz Metal New_Age Oldies Other Pop R&B Rap Reggae Rock Techno Industrial Alternative Ska Death_Metal Pranks Soundtrack Euro-Techno Ambient Trip-Hop Vocal Jazz+Funk Fusion Trance Classical Instrumental Acid House Game Sound_Clip Gospel Noise AlternRock Bass Soul Punk Space Meditative Instrumental_Pop Instrumental_Rock Ethnic Gothic Darkwave Techno-Industrial Electronic Pop-Folk Eurodance Dream Southern_Rock Comedy Cult Gangsta Top_40 Christian_Rap Pop_Funk Jungle Native_American Cabaret New_Wave Psychedelic Rave Showtunes Trailer Lo-Fi Tribal Acid_Punk Acid_Jazz Polka Retro Musical Rock_&_Roll Hard_Rock Folk Folk-Rock National_Folk Swing Fast_Fusion Bebob Latin Revival Celtic Bluegrass Avantgarde Gothic_Rock Progressive_Rock Psychedelic_Rock Symphonic_Rock Slow_Rock Big_Band Chorus Easy_Listening Acoustic Humour Speech Chanson Opera Chamber_Music Sonata Symphony Booty_Bass Primus Porn_Groove Satire Slow_Jam Club Tango Samba Folklore Ballad Power_Ballad Rhythmic_Soul Freestyle Duet Punk_Rock Drum_Solo A_cappella Euro-House Dance_Hall Goa Drum_&_Bass Club_House Hardcore Terror Indie BritPop Negerpunk Polsk_Punk Beat Christian_Gangsta_Rap Heavy_Metal Black_Metal Crossover Contemporary_Christian Christian_Rock Merengue Salsa Thrash_Metal Anime JPop Synthpop Abstract Art_Rock Baroque Bhangra Big_Beat Breakbeat Chillout Downtempo Dub EBM Eclectic Electro Electroclash Emo Experimental Garage Global IDM Illbient Industro-Goth Jam_Band Krautrock Leftfield Lounge Math_Rock New_Romantic Nu-Breakz Post-Punk Post-Rock Psytrance Shoegaze Space_Rock Trop_Rock World_Music Neoclassical Audiobook Audio_Theatre Neue_Deutsche_Welle Podcast Indie_Rock G-Funk Dubstep Garage_Rock Psybient Unknown diff --git a/src/pre/pre.cfg b/src/pre/pre.cfg index 91a6dfc..eec59fc 100644 --- a/src/pre/pre.cfg +++ b/src/pre/pre.cfg @@ -237,3 +237,5 @@ mod_sitenfoadd.filename=mysite.nfo # set etcdir, if your passwd and group are not in /etc, then set this. # #etcdir=/etc/mysite1 + +mp3genre=1 From 8845529d1ab432bc42330e189c30197053e6e5fd Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 15:16:21 +0200 Subject: [PATCH 12/23] removed extra files --- src/pre/genres-1.txt | 1 - src/pre/genres-2.txt | 1 - 2 files changed, 2 deletions(-) delete mode 100644 src/pre/genres-1.txt delete mode 100644 src/pre/genres-2.txt diff --git a/src/pre/genres-1.txt b/src/pre/genres-1.txt deleted file mode 100644 index af3bfa3..0000000 --- a/src/pre/genres-1.txt +++ /dev/null @@ -1 +0,0 @@ -Blues Classic_Rock Country Dance Disco Funk Grunge Hip-Hop Jazz Metal New_Age Oldies Other Pop R&B Rap Reggae Rock Techno Industrial Alternative Ska Death_Metal Pranks Soundtrack Euro-Techno Ambient Trip-Hop Vocal Jazz+Funk Fusion Trance Classical Instrumental Acid House Game Sound_Clip Gospel Noise AlternRock Bass Soul Punk Space Meditative Instrumental_Pop Instrumental_Rock Ethnic Gothic Darkwave Techno-Industrial Electronic Pop-Folk Eurodance Dream Southern_Rock Comedy Cult Gangsta Top_40 Christian_Rap Pop_Funk Jungle Native_American Cabaret New_Wave Psychadelic Rave Showtunes Trailer Lo-Fi Tribal Acid_Punk Acid_Jazz Polka Retro Musical Rock_&_Roll Hard_Rock Folk Folk-Rock National_Folk Swing Fast_Fusion Bebob Latin Revival Celtic Bluegrass Avantgarde Gothic_Rock Progressive_Rock Psychedelic_Rock Symphonic_Rock Slow_Rock Big_Band Chorus Easy_Listening Acoustic Humour Speech Chanson Opera Chamber_Music Sonata Symphony Booty_Bass Primus Porn_Groove Satire Slow_Jam Club Tango Samba Folklore Ballad Power_Ballad Rhythmic_Soul Freestyle Duet Punk_Rock Drum_Solo A_cappella Euro-House Dance_Hall Goa Drum_&_Bass Club_House Hardcore Terror Indie BritPop Negerpunk Polsk_Punk Beat Christian_Gangsta_Rap Heavy_Metal Black_Metal Crossover Contemporary_Christian Christian_Rock Merengue Salsa Thrash_Metal Anime JPop Synthpop Unknown diff --git a/src/pre/genres-2.txt b/src/pre/genres-2.txt deleted file mode 100644 index 6d7cb88..0000000 --- a/src/pre/genres-2.txt +++ /dev/null @@ -1 +0,0 @@ -Blues Classic_Rock Country Dance Disco Funk Grunge Hip-Hop Blues Classic_Rock Country Dance Disco Funk Grunge Hip-Hop Jazz Metal New_Age Oldies Other Pop R&B Rap Reggae Rock Techno Industrial Alternative Ska Death_Metal Pranks Soundtrack Euro-Techno Ambient Trip-Hop Vocal Jazz+Funk Fusion Trance Classical Instrumental Acid House Game Sound_Clip Gospel Noise AlternRock Bass Soul Punk Space Meditative Instrumental_Pop Instrumental_Rock Ethnic Gothic Darkwave Techno-Industrial Electronic Pop-Folk Eurodance Dream Southern_Rock Comedy Cult Gangsta Top_40 Christian_Rap Pop_Funk Jungle Native_American Cabaret New_Wave Psychedelic Rave Showtunes Trailer Lo-Fi Tribal Acid_Punk Acid_Jazz Polka Retro Musical Rock_&_Roll Hard_Rock Folk Folk-Rock National_Folk Swing Fast_Fusion Bebob Latin Revival Celtic Bluegrass Avantgarde Gothic_Rock Progressive_Rock Psychedelic_Rock Symphonic_Rock Slow_Rock Big_Band Chorus Easy_Listening Acoustic Humour Speech Chanson Opera Chamber_Music Sonata Symphony Booty_Bass Primus Porn_Groove Satire Slow_Jam Club Tango Samba Folklore Ballad Power_Ballad Rhythmic_Soul Freestyle Duet Punk_Rock Drum_Solo A_cappella Euro-House Dance_Hall Goa Drum_&_Bass Club_House Hardcore Terror Indie BritPop Negerpunk Polsk_Punk Beat Christian_Gangsta_Rap Heavy_Metal Black_Metal Crossover Contemporary_Christian Christian_Rock Merengue Salsa Thrash_Metal Anime JPop Synthpop Abstract Art_Rock Baroque Bhangra Big_Beat Breakbeat Chillout Downtempo Dub EBM Eclectic Electro Electroclash Emo Experimental Garage Global IDM Illbient Industro-Goth Jam_Band Krautrock Leftfield Lounge Math_Rock New_Romantic Nu-Breakz Post-Punk Post-Rock Psytrance Shoegaze Space_Rock Trop_Rock World_Music Neoclassical Audiobook Audio_Theatre Neue_Deutsche_Welle Podcast Indie_Rock G-Funk Dubstep Garage_Rock Psybient Unknown From f063bc8a259ffc77476ec7a7f9c3d74370bb2cfe Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 15:17:50 +0200 Subject: [PATCH 13/23] deleted: "\\" --- "\\" | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 "\\" diff --git "a/\\" "b/\\" deleted file mode 100644 index 9dee6c3..0000000 --- "a/\\" +++ /dev/null @@ -1,26 +0,0 @@ -# foo-tools updates - -- updates/fixes from https://github.com/glftpd/foo-tools -- Makefiles updated -- foo-pre has mp3 genre in PRE line (no module needed) - -## Documentation: - -- [README.1st](README.1st) Original README file -- [CHANGES](src/CHANGES) CHANGELOG -- [src/README.1st] (src/README.1st] Building instructions -- [doc](doc) Documentation on installing/running the programs -- [src/pre/README.mp3genre](README.mp3genre) mp3genre specific README (install/configure) - -## TODO: - -### foo-pre -- [ ] switch from mp3genre to master branch -- [X] add option in pre.cfg disable genre completely(?) -- [ ] replace pre/mp3genre by pzs-ng code or other id3 lib instead -- [X] change bytes to mb/gb: "Totals of this pre for announce: 3F 28734928B" -- [ ] FLAC support? - -### spy -- [ ] look into libhttpd.h since it's LGPL now (http://www.hughes.com.au/products/libhttpd) - From 2b7ab33569b8f3701176080457942fd8478de49d Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 15:46:48 +0200 Subject: [PATCH 14/23] removed debug msg --- src/pre/foo-pre.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/pre/foo-pre.c b/src/pre/foo-pre.c index 576f64e..8846050 100644 --- a/src/pre/foo-pre.c +++ b/src/pre/foo-pre.c @@ -1023,8 +1023,6 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv else addmp3genre = 0; - printf("DEBUG: addmp3genre %i\n", addmp3genre); - chown = chowninfo_find_by_group(group); olduid = getuid(); @@ -1040,7 +1038,6 @@ int pre(char *section, char *dest, char *src, char *rel, char *group, char *argv // convert bytes. if (bcount>=(1024*1024) && bcount<(1024*1024*1024)) { unit = "Mb"; bconv = (float)bcount/(1024*1024); } if (bcount>=(1024*1024*1024)) { unit = "Gb"; bconv = (float)bcount/(1024*1024*1024); } -// printf(" * Totals of this pre for announce: %dF %.1f\n", fnum, bcount ); printf(" * Totals of this pre for announce: %dF %.1f%s\n", fnum, bconv, unit); // get credits. From 65c6fd49cc1a3ccf523068bfd308f36647cddb00 Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 15:49:25 +0200 Subject: [PATCH 15/23] added option to turn mp3genre on/off to pre.cfg --- src/pre/pre.cfg | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pre/pre.cfg b/src/pre/pre.cfg index eec59fc..c3f57e3 100644 --- a/src/pre/pre.cfg +++ b/src/pre/pre.cfg @@ -238,4 +238,9 @@ mod_sitenfoadd.filename=mysite.nfo # #etcdir=/etc/mysite1 -mp3genre=1 +# +# Add mp3 genre to gllog (1 = yes, 0 = no) +# +# This adds mp3 genre from id3 tag to PRE: announce (using "%I" macro). +# +addmp3genretogllog= 1 From 302185621d46ec67b338fece2eb68978c47ba927 Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 16:04:15 +0200 Subject: [PATCH 16/23] small update to doc --- README.md | 4 ++-- src/pre/README.mp3genre | 2 ++ src/pre/pre.cfg | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9dee6c3..19c3662 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ - [README.1st](README.1st) Original README file - [CHANGES](src/CHANGES) CHANGELOG -- [src/README.1st] (src/README.1st] Building instructions +- [src/README.1st] (src/README.1st) Building instructions - [doc](doc) Documentation on installing/running the programs -- [src/pre/README.mp3genre](README.mp3genre) mp3genre specific README (install/configure) +- [README.mp3genre](src/pre/README.mp3genre) mp3genre specific README (install/configure) ## TODO: diff --git a/src/pre/README.mp3genre b/src/pre/README.mp3genre index 69dbe04..9c348f5 100644 --- a/src/pre/README.mp3genre +++ b/src/pre/README.mp3genre @@ -20,6 +20,8 @@ group.DEFAULT.announce=PRE: "%PP/%R" "%R" "%G" "%D" "%F" "%S" "%C" "%W" "%U" "%g If you have any other announces defined do not forget to add it to those too. +Make sure addmp3genretogllog is set to "1". + change ngBot.conf; ------------------ diff --git a/src/pre/pre.cfg b/src/pre/pre.cfg index c3f57e3..0e1c81f 100644 --- a/src/pre/pre.cfg +++ b/src/pre/pre.cfg @@ -243,4 +243,4 @@ mod_sitenfoadd.filename=mysite.nfo # # This adds mp3 genre from id3 tag to PRE: announce (using "%I" macro). # -addmp3genretogllog= 1 +addmp3genretogllog=1 From 46513111624303f07d6bb06cd0d684fe2f9aa96d Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 16:05:35 +0200 Subject: [PATCH 17/23] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 19c3662..5302f02 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ - [README.1st](README.1st) Original README file - [CHANGES](src/CHANGES) CHANGELOG -- [src/README.1st] (src/README.1st) Building instructions +- [README.1st](src/README.1st) Building instructions - [doc](doc) Documentation on installing/running the programs - [README.mp3genre](src/pre/README.mp3genre) mp3genre specific README (install/configure) From b5cd4badd657a0fc7ee694dc8eb1d455736c76ee Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 16:06:02 +0200 Subject: [PATCH 18/23] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5302f02..ec17fcd 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ ## Documentation: - [README.1st](README.1st) Original README file -- [CHANGES](src/CHANGES) CHANGELOG -- [README.1st](src/README.1st) Building instructions +- [src/CHANGES](src/CHANGES) CHANGELOG +- [src/README.1st](src/README.1st) Building instructions - [doc](doc) Documentation on installing/running the programs - [README.mp3genre](src/pre/README.mp3genre) mp3genre specific README (install/configure) From 92386d34a693598c8d42a7ae23b16eafabb38890 Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 16:29:48 +0200 Subject: [PATCH 19/23] removed unneeded files before 'release' ;) --- src/bouncer/Makefile | 35 ----------------------------------- src/checker/Makefile | 12 ------------ src/collection/Makefile | 27 --------------------------- src/lib/Makefile | 26 -------------------------- src/nfo/Makefile | 21 --------------------- src/nukes/Makefile | 22 ---------------------- src/pre/Makefile | 26 -------------------------- src/pre/modules/Makefile | 34 ---------------------------------- src/pre/mp3genre/Makefile | 15 --------------- src/reset/Makefile | 20 -------------------- src/sfv/Makefile | 18 ------------------ src/thread/Makefile | 24 ------------------------ src/unzip/Makefile | 15 --------------- src/util/Makefile | 25 ------------------------- src/who/Makefile | 36 ------------------------------------ src/zip/Makefile | 18 ------------------ 16 files changed, 374 deletions(-) delete mode 100644 src/bouncer/Makefile delete mode 100644 src/checker/Makefile delete mode 100644 src/collection/Makefile delete mode 100644 src/lib/Makefile delete mode 100644 src/nfo/Makefile delete mode 100644 src/nukes/Makefile delete mode 100644 src/pre/Makefile delete mode 100644 src/pre/modules/Makefile delete mode 100644 src/pre/mp3genre/Makefile delete mode 100644 src/reset/Makefile delete mode 100644 src/sfv/Makefile delete mode 100644 src/thread/Makefile delete mode 100644 src/unzip/Makefile delete mode 100644 src/util/Makefile delete mode 100644 src/who/Makefile delete mode 100644 src/zip/Makefile diff --git a/src/bouncer/Makefile b/src/bouncer/Makefile deleted file mode 100644 index f36786e..0000000 --- a/src/bouncer/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -# -# $Id: Makefile.in,v 1.3 2003/09/27 07:39:49 sorend Exp $ -# $Source: /home/cvs/footools/footools/src/bouncer/Makefile.in,v $ -# - -# make debug version, uncomment this to make running versino. -# DEFS = -DDEBUG=1 -# -# Use this one to run the bouncer on a win32 box with cygwin. -#DEFS = -DDEBUG=1 -DWIN32 -#DEFS = -DDNVIEW - -include ../Makefile.config - -LIBS = -lpthread -lncurses -lcrypto -lssl -#LIBS = -pthread -lncurses - -GENOBJS = ../lib/sockop.o ../collection/hashtable.o ../collection/strlist.o ../lib/common.o ../lib/stringtokenizer.o ../thread/threadpool.o ../util/linefilereader.o - -FOOBNCOBJS = foobnc.o $(GENOBJS) ../util/linereaderbuffer.o hammerprotect.o - -#DEFS = -DADMINPORT -SRCDIR = .. -I/usr/local/lib - -#all: foobnc -all: - - -foobnc: $(FOOBNCOBJS) - $(CC) -o $@ $(FOOBNCOBJS) -L/usr/local/lib -lpthread -lhttpd $(DEFS) - -clean: - rm -f *.o *~ simple_entry entry datanode *.pid - - diff --git a/src/checker/Makefile b/src/checker/Makefile deleted file mode 100644 index de2a2bc..0000000 --- a/src/checker/Makefile +++ /dev/null @@ -1,12 +0,0 @@ - -include ../Makefile.config - -SRCDIR = .. - -all: util.o - -clean: - rm -f *~ *.o - - - diff --git a/src/collection/Makefile b/src/collection/Makefile deleted file mode 100644 index 8eb6556..0000000 --- a/src/collection/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -# -# $Id: Makefile.in,v 1.1 2003/05/24 05:39:36 sorend Exp $ -# $Source: /home/cvs/footools/footools/src/collection/Makefile.in,v $ -# -# Uncomment this to make win32/cygwin versions. -# DEFS = -DWIN32 -# -# Use this if you have a system without fnmatch() function. -# DEFS = -DNO_FNMATCH - -include ../Makefile.config - -SRCDIR = .. - -DEFS = -DHT_SUPPORT_FILEPROP - -OBJS = sortedlist.o strlist.o hashtable.o - -all: $(OBJS) - -clean: - rm -f *.o *~ - -release: - @mkdir $(RELEASEDIR)/collection - @cp *.c *.h Makefile $(RELEASEDIR)/collection - diff --git a/src/lib/Makefile b/src/lib/Makefile deleted file mode 100644 index 6733281..0000000 --- a/src/lib/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id: Makefile.in,v 1.1 2003/05/24 05:39:36 sorend Exp $ -# $Source: /home/cvs/footools/footools/src/lib/Makefile.in,v $ -# -# Uncomment this to make win32/cygwin versions. -# DEFS = -DWIN32 -# -# Use this if you have a system without fnmatch() function. -# DEFS = -DNO_FNMATCH - -include ../Makefile.config - -SRCDIR = .. - -OBJS = dirlist.o cookie.o common.o genlistc.o sfv.o macro.o gllogs.o pwdfile.o stringtokenizer.o security.o sockop.o who.o xferlog.o mpegtool.o - - -all: $(OBJS) - -clean: - rm -f *.o *~ - -release: - @mkdir $(RELEASEDIR)/lib - @cp Makefile README* *.c *.h $(RELEASEDIR)/lib - diff --git a/src/nfo/Makefile b/src/nfo/Makefile deleted file mode 100644 index 3db4863..0000000 --- a/src/nfo/Makefile +++ /dev/null @@ -1,21 +0,0 @@ - -include ../Makefile.config - -SRCDIR = .. - -OBJS = ../collection/strlist.o ../lib/macro.o ../collection/hashtable.o \ - ../util/linefilereader.o mod_nfo.o ../util/strmatch.o ../util/release.o - -all: nfocleaner - -nfocleaner: cleaner.o mod_nfo.o - gcc -O2 -o $@ $< $(OBJS) - -clean: - rm -f *~ *.o nfocleaner - -release: - mkdir $(RELEASEDIR)/nfo - cp nfo-*.txt Makefile mod_nfo.[ch] cleaner.c README $(RELEASEDIR)/nfo - - diff --git a/src/nukes/Makefile b/src/nukes/Makefile deleted file mode 100644 index 4724293..0000000 --- a/src/nukes/Makefile +++ /dev/null @@ -1,22 +0,0 @@ - -include ../Makefile.config - -SRCDIR = .. - -OBJS = ../collection/sortedlist.o ../collection/hashtable.o ../util/linefilereader.o \ - glnukelog.o nukes.o - -all: foo-nukes - -foo-nukes: $(OBJS) - gcc -O2 -o $@ $(OBJS) - -foo-nuketop: nuketop.o ../collection/sortedlist.o - gcc -O2 -o $@ nuketop.o ../collection/sortedlist.o - -clean: - rm -f *~ *.o foo-nukes - -release: - mkdir $(RELEASEDIR)/nukes - cp *.c *.h Makefile README $(RELEASEDIR)/nukes diff --git a/src/pre/Makefile b/src/pre/Makefile deleted file mode 100644 index 5cd3d80..0000000 --- a/src/pre/Makefile +++ /dev/null @@ -1,26 +0,0 @@ - -include ../Makefile.config - -SRCDIR = .. - -LIBS = ../collection/strlist.o ../lib/gllogs.o ../lib/pwdfile.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ./gl_userfile.o -OBJS = ./mp3genre/mp3genre.o - -foo-pre: foo-pre.o $(LIBS) - $(MAKE) -C mp3genre - $(CC) -o $@ $< $(LIBS) $(OBJS) -ldl - -foo.Pre: foo.Pre.o - $(CC) -o $@ $< $(LIBS) - -all: foo-pre - -clean: - rm -f *.o *~ foo.Pre foo-pre - $(MAKE) -C mp3genre $@ - -release: - mkdir $(RELEASEDIR)/pre - cp *.c *.h Makefile README *.txt pre.cfg $(RELEASEDIR)/pre - $(MAKE) -C mp3genre $@ - diff --git a/src/pre/modules/Makefile b/src/pre/modules/Makefile deleted file mode 100644 index 409569b..0000000 --- a/src/pre/modules/Makefile +++ /dev/null @@ -1,34 +0,0 @@ - - -include ../../Makefile.config - -SRCDIR = ../.. - -LIBS = $(SRCDIR)/lib/macro.o $(SRCDIR)/lib/gllogs.o $(SRCDIR)/lib/pwdfile.o $(SRCDIR)/util/linefilereader.o $(SRCDIR)/collection/hashtable.o $(SRCDIR)/lib/stringtokenizer.o - -all: mod_idmp3.so mod_sitenfoadd.so mod_nfohandler.so mod_chmod.so mod_symlink.so - -mod_idmp3.so: mod_idmp3.o - (cd mp3info; make) - $(CC) -g -shared -Wl,-soname,mod_idmp3.so -o $@ $< mp3info/mp3tech.o $(LIBS) - -mod_sitenfoadd.so: mod_sitenfoadd.o - $(CC) -g -shared -Wl,-soname,mod_sitenfoadd.so -o $@ $< $(LIBS) - -mod_chmod.so: mod_chmod.o - $(CC) -g -shared -Wl,-soname,mod_chmod.so -o $@ $< $(LIBS) - -mod_nfohandler.so: mod_nfohandler.o - $(CC) -g -shared -Wl,-soname,mod_nfohandler.so -o $@ $< $(LIBS) - -mod_symlink.so: mod_symlink.o - $(CC) -g -shared -Wl,-soname,mod_symlink.so -o $@ $< $(LIBS) - -tester: tester.o - $(CC) -o $@ $< ../../collection/hashtable.o ../../util/linefilereader.o -ldl - -clean: - (cd mp3info; make clean) - rm -f *.o *~ *.so - - diff --git a/src/pre/mp3genre/Makefile b/src/pre/mp3genre/Makefile deleted file mode 100644 index dfde313..0000000 --- a/src/pre/mp3genre/Makefile +++ /dev/null @@ -1,15 +0,0 @@ - -include ../../Makefile.config - -mp3genre: - $(CC) -c $@.c -o $@.o - -all: mp3genre - -clean: - rm -f *.o *~ - -release: - mkdir -p $(RELEASEDIR)/pre/mp3genre - cp *.c *.h $(RELEASEDIR)/pre/mp3genre - diff --git a/src/reset/Makefile b/src/reset/Makefile deleted file mode 100644 index 676f13b..0000000 --- a/src/reset/Makefile +++ /dev/null @@ -1,20 +0,0 @@ - - -include ../Makefile.config - -SRCDIR = .. - -LIBS = ../collection/strlist.o ../lib/gllogs.o ../util/linefilereader.o ../collection/hashtable.o ../lib/stringtokenizer.o ../pre/gl_userfile.o ../util/filelock.o records.o ../util/date.o - -foo-reset: reset.o $(LIBS) - $(CC) -o $@ $< $(LIBS) - -all: foo-reset - -clean: - rm -f *.o *~ foo-reset - -release: - mkdir $(RELEASEDIR)/reset - cp *.c *.h Makefile README $(RELEASEDIR)/reset - diff --git a/src/sfv/Makefile b/src/sfv/Makefile deleted file mode 100644 index 6030a80..0000000 --- a/src/sfv/Makefile +++ /dev/null @@ -1,18 +0,0 @@ - -include ../Makefile.config - -SRCDIR = .. - -LIBS = ../lib/sfv.o ../lib/common.o ../util/linefilereader.o - -all: createsfv blehsfv - -createsfv: createsfv.o - gcc -O2 -o $@ $< $(LIBS) - -blehsfv: blehsfv.o - gcc -O2 -o $@ $< $(LIBS) - -clean: - rm -f *.o *~ createsfv blehsfv - diff --git a/src/thread/Makefile b/src/thread/Makefile deleted file mode 100644 index cceebc9..0000000 --- a/src/thread/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# -# $Id: Makefile.in,v 1.1 2003/05/24 05:39:36 sorend Exp $ -# $Source: /home/cvs/footools/footools/src/thread/Makefile.in,v $ -# -# Uncomment this to make win32/cygwin versions. -# DEFS = -DWIN32 -# -# Use this if you have a system without fnmatch() function. -# DEFS = -DNO_FNMATCH - -include ../Makefile.config - -OBJS = threadpool.o -SRCDIR = .. - -all: $(OBJS) - -clean: - rm -f *.o *~ - -release: - mkdir $(RELEASEDIR)/thread - cp Makefile *.c *.h $(RELEASEDIR)/thread - diff --git a/src/unzip/Makefile b/src/unzip/Makefile deleted file mode 100644 index d85b1e1..0000000 --- a/src/unzip/Makefile +++ /dev/null @@ -1,15 +0,0 @@ - -include ../Makefile.config - -SRCDIR = .. - -all: unzip.o - -clean: - rm -f *~ *.o - -release: - mkdir $(RELEASEDIR)/unzip - cp Makefile unzip.[ch] $(RELEASEDIR)/unzip - - diff --git a/src/util/Makefile b/src/util/Makefile deleted file mode 100644 index d869fae..0000000 --- a/src/util/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -# -# $Id: Makefile.in,v 1.1 2003/05/24 05:39:36 sorend Exp $ -# $Source: /home/cvs/footools/footools/src/util/Makefile.in,v $ -# -# Uncomment this to make win32/cygwin versions. -# DEFS = -DWIN32 -# -# Use this if you have a system without fnmatch() function. -# DEFS = -DNO_FNMATCH - -include ../Makefile.config - -SRCDIR = .. - -OBJS = linefilereader.o fd.o date.o strmatch.o linereaderbuffer.o release.o filelock.o - -all: $(OBJS) - -clean: - rm -f *.o *~ lfrtest - -release: - @mkdir $(RELEASEDIR)/util - @cp *.[ch] Makefile $(RELEASEDIR)/util - diff --git a/src/who/Makefile b/src/who/Makefile deleted file mode 100644 index d3caa2e..0000000 --- a/src/who/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# -# $Id: Makefile.in,v 1.1 2003/05/24 05:39:36 sorend Exp $ -# $Source: /home/cvs/footools/footools/src/who/Makefile.in,v $ -# - -include ../Makefile.config - -SRCDIR = .. -LIBS = -lcurses - -OBJS = ../lib/who.o spy_view.o spy.o ../lib/dirlist.o ../collection/strlist.o ../util/linefilereader.o - -WEBSPYOBJS = ../lib/who.o webspy.o webspy_nodeview.o webspy_nodedetailsview.o webspy_dirview.o ../lib/dirlist.o ../collection/strlist.o ../util/linefilereader.o ../lib/macro.o ../collection/hashtable.o ../lib/pwdfile.o ../lib/stringtokenizer.o - -WEBSPYLIBS = -lhttpd - -# for webspy -#DEFS = -D__DEBUG__ - -all: spy - -webspy: $(WEBSPYOBJS) - $(CC) -static -o $@ $(WEBSPYOBJS) $(WEBSPYLIBS) $(DEFS) - -spy: $(OBJS) - $(CC) -o $@ $(OBJS) $(LIBS) $(DEFS) - -usage: usage.o ../lib/who.o ../collection/strlist.o ../util/linefilereader.o ../lib/common.o - $(CC) -o $@ usage.o ../lib/common.o ../lib/who.o ../collection/strlist.o ../util/linefilereader.o $(LIBS) $(DEFS) - -clean: - rm -f *.o *~ spy webspy - -release: - mkdir $(RELEASEDIR)/who - cp spy*.c spy*.h Makefile README $(RELEASEDIR)/who diff --git a/src/zip/Makefile b/src/zip/Makefile deleted file mode 100644 index ceb02f1..0000000 --- a/src/zip/Makefile +++ /dev/null @@ -1,18 +0,0 @@ - -include ../Makefile.config - -SRCDIR = .. - -OBJS = ../collection/strlist.o ../lib/common.o ../lib/macro.o ../collection/hashtable.o \ - ../util/linefilereader.o mod_zip.o ../lib/stringtokenizer.o zip.o ../unzip/unzip.o \ - ../checker/util.o ../lib/sfv.o ../lib/dirlist.o - -all: mod_zip.o zip.o zipcheck - -zipcheck: zipcheck.o - gcc -O2 -o $@ $< $(OBJS) -lz - -clean: - rm -f *~ *.o zipcheck - - From 7a9d8ec2c5a28799a72ffaeaa00d174059cf0fc6 Mon Sep 17 00:00:00 2001 From: silver Date: Wed, 17 May 2017 16:33:54 +0200 Subject: [PATCH 20/23] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ec17fcd..e213e22 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ## TODO: ### foo-pre -- [ ] switch from mp3genre to master branch +- [X] switch from mp3genre to master branch - [X] add option in pre.cfg disable genre completely(?) - [ ] replace pre/mp3genre by pzs-ng code or other id3 lib instead - [X] change bytes to mb/gb: "Totals of this pre for announce: 3F 28734928B" From 8f131cc69958dec9116eb39a0f3b59471ada735b Mon Sep 17 00:00:00 2001 From: kla99 Date: Mon, 5 Jun 2017 19:22:37 +0200 Subject: [PATCH 21/23] include mp3genre makefile in configure --- src/configure | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/configure b/src/configure index eb0c4a6..bf624d9 100755 --- a/src/configure +++ b/src/configure @@ -5535,7 +5535,7 @@ fi done -ac_config_files="$ac_config_files Makefile bouncer/Makefile checker/Makefile collection/Makefile lib/Makefile nfo/Makefile nukes/Makefile pre/Makefile pre/modules/Makefile reset/Makefile sfv/Makefile thread/Makefile unzip/Makefile util/Makefile who/Makefile zip/Makefile" +ac_config_files="$ac_config_files Makefile bouncer/Makefile checker/Makefile collection/Makefile lib/Makefile nfo/Makefile nukes/Makefile pre/Makefile pre/mp3genre/Makefile pre/modules/Makefile reset/Makefile sfv/Makefile thread/Makefile unzip/Makefile util/Makefile who/Makefile zip/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -6240,6 +6240,7 @@ do "nfo/Makefile") CONFIG_FILES="$CONFIG_FILES nfo/Makefile" ;; "nukes/Makefile") CONFIG_FILES="$CONFIG_FILES nukes/Makefile" ;; "pre/Makefile") CONFIG_FILES="$CONFIG_FILES pre/Makefile" ;; + "pre/mp3genre/Makefile") CONFIG_FILES="$CONFIG_FILES pre/mp3genre/Makefile" ;; "pre/modules/Makefile") CONFIG_FILES="$CONFIG_FILES pre/modules/Makefile" ;; "reset/Makefile") CONFIG_FILES="$CONFIG_FILES reset/Makefile" ;; "sfv/Makefile") CONFIG_FILES="$CONFIG_FILES sfv/Makefile" ;; From 892c754e36f60f37de2a0be2996b9999fc9a8a53 Mon Sep 17 00:00:00 2001 From: steakboy7000 Date: Thu, 30 Apr 2020 22:33:41 +0200 Subject: [PATCH 22/23] fixed foo-pre compiler warnings --- src/pre/foo-pre.c | 6 ++++- src/pre/mp3genre/mp3genre.c | 44 +++++++++++++++++++++++++++++++++ src/pre/mp3genre/mp3genre.h | 49 ++++++------------------------------- 3 files changed, 57 insertions(+), 42 deletions(-) diff --git a/src/pre/foo-pre.c b/src/pre/foo-pre.c index 8846050..620d009 100644 --- a/src/pre/foo-pre.c +++ b/src/pre/foo-pre.c @@ -44,6 +44,7 @@ #include "foo-pre.h" #include "gl_userfile.h" +#include "mp3genre/mp3genre.h" #define VERSION "$Id: foo-pre.c,v 1.19 2017/04/14 14:14:00 sorend, slv Exp $" #define USAGE " * Syntax: SITE PRE [SECTION]\n" @@ -54,6 +55,9 @@ extern int errno; hashtable_t *_config = 0; hashtable_t *_envctx = 0; +int touch_dir(char* dir); +int touch_file(char* fname); + /* * Acessor method for configuration. */ @@ -966,7 +970,7 @@ int pre_do_module(char *module, filelist_t *files, char *path, char *argv[], str return 1; } -int pre_do_modules(filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { +void pre_do_modules(filelist_t *files, char *path, char *argv[], struct subdir_list *subdirs) { hashtable_t *cfg, *env; stringtokenizer st; char *tmp; diff --git a/src/pre/mp3genre/mp3genre.c b/src/pre/mp3genre/mp3genre.c index 563f432..972d564 100644 --- a/src/pre/mp3genre/mp3genre.c +++ b/src/pre/mp3genre/mp3genre.c @@ -12,8 +12,52 @@ * */ +#include + #include "mp3genre.h" +char *genre_s[] = { + "Blues", "Classic Rock", "Country", "Dance", + "Disco", "Funk", "Grunge", "Hip-Hop", + "Jazz", "Metal", "New Age", "Oldies", + "Other", "Pop", "R&B", "Rap", + "Reggae", "Rock", "Techno", "Industrial", + "Alternative", "Ska", "Death Metal", "Pranks", + "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", + "Vocal", "Jazz+Funk", "Fusion", "Trance", + "Classical", "Instrumental", "Acid", "House", + "Game", "Sound Clip", "Gospel", "Noise", + "AlternRock", "Bass", "Soul", "Punk", + "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", + "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", + "Electronic", "Pop-Folk", "Eurodance", "Dream", + "Southern Rock", "Comedy", "Cult", "Gangsta", + "Top 40", "Christian Rap", "Pop_Funk", "Jungle", + "Native American", "Cabaret", "New Wave", "Psychadelic", + "Rave", "Showtunes", "Trailer", "Lo-Fi", + "Tribal", "Acid Punk", "Acid Jazz", "Polka", + "Retro", "Musical", "Rock & Roll", "Hard Rock", + "Folk", "Folk-Rock", "National Folk", "Swing", + "Fast Fusion", "Bebob", "Latin", "Revival", + "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", + "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", + "Big Band", "Chorus", "Easy Listening", "Acoustic", + "Humour", "Speech", "Chanson", "Opera", + "Chamber Music", "Sonata", "Symphony", "Booty Bass", + "Primus", "Porn Groove", "Satire", "Slow Jam", + "Club", "Tango", "Samba", "Folklore", + "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", + "Duet", "Punk Rock", "Drum Solo", "A cappella", + "Euro-House", "Dance Hall", "Goa", "Drum & Bass", + "Club House", "Hardcore", "Terror", "Indie", + "BritPop", "Negerpunk", "Polsk Punk", "Beat", + "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", + "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", + "Thrash Metal", "Anime", "JPop", "Synthpop", + "Unknown" +}; +unsigned char genre_count=149; + char *get_mp3_genre(const char* filename) { FILE *fp; unsigned char id3_genre_num[1]; diff --git a/src/pre/mp3genre/mp3genre.h b/src/pre/mp3genre/mp3genre.h index 42a8d91..ddaa29a 100644 --- a/src/pre/mp3genre/mp3genre.h +++ b/src/pre/mp3genre/mp3genre.h @@ -5,46 +5,13 @@ * http://www.pzs-ng.com * */ +#ifndef _mp3_genre_h +#define _mp3_genre_h + #include -char *genre_s[] = { - "Blues", "Classic Rock", "Country", "Dance", - "Disco", "Funk", "Grunge", "Hip-Hop", - "Jazz", "Metal", "New Age", "Oldies", - "Other", "Pop", "R&B", "Rap", - "Reggae", "Rock", "Techno", "Industrial", - "Alternative", "Ska", "Death Metal", "Pranks", - "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", - "Vocal", "Jazz+Funk", "Fusion", "Trance", - "Classical", "Instrumental", "Acid", "House", - "Game", "Sound Clip", "Gospel", "Noise", - "AlternRock", "Bass", "Soul", "Punk", - "Space", "Meditative", "Instrumental Pop", "Instrumental Rock", - "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", - "Electronic", "Pop-Folk", "Eurodance", "Dream", - "Southern Rock", "Comedy", "Cult", "Gangsta", - "Top 40", "Christian Rap", "Pop_Funk", "Jungle", - "Native American", "Cabaret", "New Wave", "Psychadelic", - "Rave", "Showtunes", "Trailer", "Lo-Fi", - "Tribal", "Acid Punk", "Acid Jazz", "Polka", - "Retro", "Musical", "Rock & Roll", "Hard Rock", - "Folk", "Folk-Rock", "National Folk", "Swing", - "Fast Fusion", "Bebob", "Latin", "Revival", - "Celtic", "Bluegrass", "Avantgarde", "Gothic Rock", - "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", - "Big Band", "Chorus", "Easy Listening", "Acoustic", - "Humour", "Speech", "Chanson", "Opera", - "Chamber Music", "Sonata", "Symphony", "Booty Bass", - "Primus", "Porn Groove", "Satire", "Slow Jam", - "Club", "Tango", "Samba", "Folklore", - "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", - "Duet", "Punk Rock", "Drum Solo", "A cappella", - "Euro-House", "Dance Hall", "Goa", "Drum & Bass", - "Club House", "Hardcore", "Terror", "Indie", - "BritPop", "Negerpunk", "Polsk Punk", "Beat", - "Christian Gangsta Rap", "Heavy Metal", "Black Metal", "Crossover", - "Contemporary Christian", "Christian Rock", "Merengue", "Salsa", - "Thrash Metal", "Anime", "JPop", "Synthpop", - "Unknown" -}; -unsigned char genre_count=149; +extern char *genre_s[]; +extern unsigned char genre_count; +char *get_mp3_genre(const char* filename); + +#endif From 67fac27972d6b9016060dc1129fa1bc95ba0ec10 Mon Sep 17 00:00:00 2001 From: BaneHardy Date: Sun, 17 Jan 2021 18:54:34 +0100 Subject: [PATCH 23/23] pre: preserve uid/gid when creating a new userfile this fixes foo-pre creating a new userfile with its own uid/gid (usually 0:0). preserving uid/gid of the old userfile is particularly useful when hiding pre users from stats commands by setting them to 99:99 (see glftpd docs). --- src/pre/gl_userfile.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/pre/gl_userfile.c b/src/pre/gl_userfile.c index 4788eb7..600846a 100644 --- a/src/pre/gl_userfile.c +++ b/src/pre/gl_userfile.c @@ -23,6 +23,9 @@ #include #include #include +#include +#include +#include #include "gl_userfile.h" @@ -234,6 +237,11 @@ int gl_userfile_add_stats(char *userfile, int files, long kbytes, int seconds, l if (lfr_open(&lfr, userfile) < 0) return -1; + // stat current userfile so we can preserve uid/gid + struct stat userfile_sb; + if (stat(userfile, &userfile_sb) == -1) + return -1; + ufnew = malloc(strlen(userfile) + 10); sprintf(ufnew, "%s.pre-tmp", userfile); out = fopen(ufnew, "w"); @@ -263,6 +271,9 @@ int gl_userfile_add_stats(char *userfile, int files, long kbytes, int seconds, l fclose(out); lfr_close(&lfr); + // chown new userfile to uid/gid from old userfile + chown(ufnew, userfile_sb.st_uid, userfile_sb.st_gid); + rename(ufnew, userfile); free(ufnew); @@ -289,6 +300,11 @@ int gl_userfile_set_stats(char *userfile, int files, long kbytes, int seconds, s if (lfr_open(&lfr, userfile) < 0) return -1; + // stat current userfile so we can preserve uid/gid + struct stat userfile_sb; + if (stat(userfile, &userfile_sb) == -1) + return -1; + ufnew = malloc(strlen(userfile) + 10); sprintf(ufnew, "%s.pre-tmp", userfile); out = fopen(ufnew, "w"); @@ -329,6 +345,9 @@ int gl_userfile_set_stats(char *userfile, int files, long kbytes, int seconds, s fclose(out); lfr_close(&lfr); + // chown new userfile to uid/gid from old userfile + chown(ufnew, userfile_sb.st_uid, userfile_sb.st_gid); + rename(ufnew, userfile); free(ufnew);