From 28280a70d9880c21efdff840246163a1b8e06a94 Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Tue, 10 Aug 1999 05:46:32 +0200 Subject: Import ax25-apps 0.0.3 from tarball --- AUTHORS | 26 ++++++ ChangeLog | 9 +++ INSTALL | 4 +- ax25rtd/Makefile.am | 5 +- ax25rtd/Makefile.in | 2 +- ax25rtd/README.ax25rtd | 2 +- ax25rtd/ax25rtctl.c | 4 +- ax25rtd/ax25rtd.c | 22 +++++- ax25rtd/ax25rtd.h | 2 +- ax25rtd/cache_ctl.c | 8 +- ax25rtd/cache_dump.c | 12 ++- ax25rtd/config.c | 46 +++++++---- ax25rtd/listener.c | 23 +++--- call/call.c | 14 +++- configure | 148 +++++++++++++++++----------------- configure.in | 23 +----- listen/ax25dump.c | 101 ++++++++++++++++-------- listen/listen.c | 41 ++++++---- listen/listen.h | 8 +- listen/utils.c | 7 +- ltconfig | 170 ++++++++++++++++++++++++++-------------- ltmain.sh | 209 ++++++++++++++++++++++++++++++++++--------------- 22 files changed, 569 insertions(+), 317 deletions(-) diff --git a/AUTHORS b/AUTHORS index e69de29..e06a393 100644 --- a/AUTHORS +++ b/AUTHORS @@ -0,0 +1,26 @@ +ax25ipd: +Michael Westerhof +Michael Durrant +D. Jeff Dionne VE3DJF +Rob Mayfield VK5XXX/VK5ZEU +Terry Dawson VK2KTJ + +ax25rtd: +Jörg Reuter +Llaus Kudielka OE1KIB + +listen: +Phil Karn KA9Q +Jeff White N0POY +Jonathan Naylor G4KLX +Heikki Hannikainen OH7LZB +Alan Cox GW4PTS + +call: +Alexander Tietzel DG6XA +Alan Cox GW4PTS +Jonathan Naylor G4KLX +Joerg Reuter DL1BKE +Steve Henson G6IXS +Mark Wahl +Werner Almesberger diff --git a/ChangeLog b/ChangeLog index aeb95ab..ee17343 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +ax25-apps 0.0.3 + + * Should now compile on libc5 (probably) + * Some nice formatting changes to listen + * Added Klaus Kudielka's ax25rtd patch + * Added some authors to AUTHORS + + - Tue, 10 Aug 1999 10:06:56 +1000 Craig Small + ax25-apps 0.0.2 * Fixed where to find config files * Had another crack at working around broken headers diff --git a/INSTALL b/INSTALL index fa9ffc1..cb25112 100644 --- a/INSTALL +++ b/INSTALL @@ -2,8 +2,8 @@ Installation Instructions for AX.25 Tools ========================================= To make this library you will need the following: - glibc2.1 - A Modern kernel + glibc2.1 (Debian 2.1.1-5 or RedHat glibc-2.1.2-3) + A Modern kernel, 2.2.x libtool libax25 0.0.5 or better diff --git a/ax25rtd/Makefile.am b/ax25rtd/Makefile.am index a4db33c..8d24c09 100644 --- a/ax25rtd/Makefile.am +++ b/ax25rtd/Makefile.am @@ -28,6 +28,5 @@ ax25rtd_SOURCES = \ AX25_SYSCONFDIR=$(sysconfdir)/ax25/ AX25_LOCALSTATEDIR=$(localstatedir)/ax25/ -INCLUDES = -DAX25_SYSCONFDIR=\""$(ax25_sysconfdir)"\" \ - -DAX25_LOCALSTATEDIR=\""$(localstatedir)/ax25/"\" - +INCLUDES = -DAX25_SYSCONFDIR=\""$(AX25_SYSCONFDIR)"\" \ + -DAX25_LOCALSTATEDIR=\""$(AX25_LOCALSTATEDIR)"\" diff --git a/ax25rtd/Makefile.in b/ax25rtd/Makefile.in index 02b28b3..c6f4aef 100644 --- a/ax25rtd/Makefile.in +++ b/ax25rtd/Makefile.in @@ -92,7 +92,7 @@ ax25rtd_SOURCES = ax25rtd.c ax25rtd.h cache_ctl.c cache_dump.c config.c l AX25_SYSCONFDIR = $(sysconfdir)/ax25/ AX25_LOCALSTATEDIR = $(localstatedir)/ax25/ -INCLUDES = -DAX25_SYSCONFDIR=\""$(ax25_sysconfdir)"\" -DAX25_LOCALSTATEDIR=\""$(localstatedir)/ax25/"\" +INCLUDES = -DAX25_SYSCONFDIR=\""$(AX25_SYSCONFDIR)"\" -DAX25_LOCALSTATEDIR=\""$(AX25_LOCALSTATEDIR)"\" mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../config.h diff --git a/ax25rtd/README.ax25rtd b/ax25rtd/README.ax25rtd index a7bf2c4..229138e 100644 --- a/ax25rtd/README.ax25rtd +++ b/ax25rtd/README.ax25rtd @@ -1,6 +1,6 @@ ***************************************************************** * Please send all comments and suggestions regarding ax25rtd to * -* Klaus Kudielka (oe1kib@oe1xtu.ampr.org). * +* Klaus Kudielka (klaus.kudielka@ieee.org). * ***************************************************************** Just a quick small README... diff --git a/ax25rtd/ax25rtctl.c b/ax25rtd/ax25rtctl.c index 6f40423..f9a3647 100644 --- a/ax25rtd/ax25rtctl.c +++ b/ax25rtd/ax25rtctl.c @@ -1,4 +1,4 @@ -/* $Id: ax25rtctl.c,v 1.7 1997/06/05 18:52:55 oe1kib Exp oe1kib $ +/* $Id: ax25rtctl.c,v 1.8 1998/08/20 01:43:28 kudielka Exp $ * * Copyright (c) 1996 Jörg Reuter (jreuter@poboxes.com) * @@ -262,7 +262,7 @@ static void Version(void) int sock; char buf[256]; - printf("ax25rtctl $Revision: 1.7 $\n"); + printf("ax25rtctl $Revision: 1.8 $\n"); sock = open_socket(); wsock(sock, "version\n"); read(sock, buf, sizeof(buf)); diff --git a/ax25rtd/ax25rtd.c b/ax25rtd/ax25rtd.c index 0fdbb39..22ffeb9 100644 --- a/ax25rtd/ax25rtd.c +++ b/ax25rtd/ax25rtd.c @@ -1,4 +1,4 @@ -/* $Id: ax25rtd.c,v 1.6 1996/10/23 18:27:43 jreuter Exp jreuter $ +/* $Id: ax25rtd.c,v 1.7 1996/10/23 18:27:43 jreuter Exp jreuter $ * * Copyright (c) 1996 Jörg Reuter (jreuter@poboxes.com) * @@ -35,19 +35,33 @@ #include #include #include +#include #include #include -#include +#ifdef __GLIBC__ #include +#else +#include +#endif + +#include +#ifdef HAVE_NETAX25_AX25_H #include -#include +#else +#include +#endif +#ifdef HAVE_NETROSE_ROSE_H #include +#else +#include +#endif +#include #include #include "../pathnames.h" #include "ax25rtd.h" -const char *Version = "ax25rtd $Revision: 1.6 $"; +const char *Version = "ax25rtd $Revision: 1.7 $"; config *Config = NULL; int reload = 0; diff --git a/ax25rtd/ax25rtd.h b/ax25rtd/ax25rtd.h index b45771f..01f7ef7 100644 --- a/ax25rtd/ax25rtd.h +++ b/ax25rtd/ax25rtd.h @@ -1,4 +1,4 @@ -/* $Id: ax25rtd.h,v 1.5 1997/06/05 18:54:57 oe1kib Exp oe1kib $ +/* $Id: ax25rtd.h,v 1.6 1997/06/05 18:54:57 oe1kib Exp oe1kib $ * * Copyright (c) 1996 Jörg Reuter (jreuter@poboxes.com) * diff --git a/ax25rtd/cache_ctl.c b/ax25rtd/cache_ctl.c index 0d892ad..6988c96 100644 --- a/ax25rtd/cache_ctl.c +++ b/ax25rtd/cache_ctl.c @@ -1,4 +1,4 @@ -/* $Id: cache_ctl.c,v 1.4 1996/10/23 18:27:43 jreuter Exp jreuter $ +/* $Id: cache_ctl.c,v 1.5 1996/10/23 18:27:43 jreuter Exp jreuter $ * * Copyright (c) 1996 Jörg Reuter (jreuter@poboxes.com) * @@ -22,7 +22,13 @@ #include #include #include + +#include +#ifdef HAVE_NETAX25_AX25_H #include +#else +#include +#endif #include "ax25rtd.h" diff --git a/ax25rtd/cache_dump.c b/ax25rtd/cache_dump.c index 93b211e..9888583 100644 --- a/ax25rtd/cache_dump.c +++ b/ax25rtd/cache_dump.c @@ -1,4 +1,4 @@ -/* $Id: cache_dump.c,v 1.5 1996/10/23 18:27:43 jreuter Exp jreuter $ +/* $Id: cache_dump.c,v 1.6 1998/08/20 01:43:38 kudielka Exp $ * * Copyright (c) 1996 Jörg Reuter (jreuter@poboxes.com) * @@ -25,8 +25,18 @@ #include #include #include + +#include +#ifdef HAVE_NETAX25_AX25_H #include +#else +#include +#endif +#ifdef HAVE_NETROSE_ROSE_H #include +#else +#include +#endif #include #include "ax25rtd.h" diff --git a/ax25rtd/config.c b/ax25rtd/config.c index 1306d2a..76384e0 100644 --- a/ax25rtd/config.c +++ b/ax25rtd/config.c @@ -1,4 +1,4 @@ -/* $Id: config.c,v 1.7 1997/06/05 18:55:51 oe1kib Exp oe1kib $ +/* $Id: config.c,v 1.8 1998/08/20 01:43:39 kudielka Exp kudielka $ * * Copyright (c) 1996 Jörg Reuter (jreuter@poboxes.com) * @@ -30,10 +30,24 @@ #include #include #include +#ifdef __GLIBC__ #include +#else +#include +#endif #include + +#include +#ifdef HAVE_NETAX25_AX25_H #include +#else +#include +#endif +#ifdef HAVE_NETROSE_ROSE_H #include +#else +#include +#endif #include #include @@ -409,7 +423,7 @@ void load_config() if (arg) { int k = atoi(arg); - + if (k == 0) { invalid_arg(cmd, arg); @@ -426,7 +440,7 @@ void load_config() if (arg) { int k = atoi(arg); - + if (k == 0) { invalid_arg(cmd, arg); @@ -437,19 +451,19 @@ void load_config() } else missing_arg(cmd); } else - if (config && !strcmp(cmd, "vc-mtu")) + if (config && !strcmp(cmd, "vc-mtu")) + { + /* vc-mtu : MTU for virtual connect mode routes (unused) */ + if (arg) { - /* vc-mtu : MTU for virtual connect mode routes (unused) */ - if (arg) + int k = atoi(arg); + + if (k == 0) { - int k = atoi(arg); - - if (k == 0) - { - invalid_arg(cmd, arg); - continue; - } else { - config->vc_mtu = k; + invalid_arg(cmd, arg); + continue; + } else { + config->vc_mtu = k; } } else missing_arg(cmd); @@ -709,16 +723,16 @@ void load_cache(void) { while(fgets(buf, sizeof(buf), fp) != NULL) interpret_command(2, buf); + fclose(fp); } - fclose(fp); fp = fopen(DATA_AX25ROUTED_IPRT_FILE, "r"); if (fp != NULL) { while(fgets(buf, sizeof(buf), fp) != NULL) interpret_command(2, buf); + fclose(fp); } - fclose(fp); } void save_cache(void) diff --git a/ax25rtd/listener.c b/ax25rtd/listener.c index 27b8622..a687f89 100644 --- a/ax25rtd/listener.c +++ b/ax25rtd/listener.c @@ -1,4 +1,4 @@ -/* $Id: listener.c,v 1.9 1997/06/05 18:56:08 oe1kib Exp oe1kib $ +/* $Id: listener.c,v 1.9 1997/06/05 18:56:08 oe1kib Exp kudielka $ * * Copyright (c) 1996 Jörg Reuter (jreuter@poboxes.com) * @@ -32,7 +32,13 @@ #include #include #include + +#include +#ifdef HAVE_NETAX25_AX25_H #include +#else +#include +#endif #include "../pathnames.h" #include "ax25rtd.h" @@ -109,14 +115,11 @@ static inline void invert_digipeater_path(ax25_address *digipeater, int ndigi) if (ndigi == 0) return; - ndigi--; - - memcpy(&fdigi, &digipeater[0], AXLEN); - - for (m = 0,k = ndigi; k > 0; k--, m++) + for (m = 0,k = ndigi-1; k > m; k--, m++) { + memcpy(&fdigi, &digipeater[m], AXLEN); memcpy(&digipeater[m], &digipeater[k], AXLEN); - - memcpy(&digipeater[ndigi], &fdigi, AXLEN); + memcpy(&digipeater[k], &fdigi, AXLEN); + } } int set_arp(config *config, long ip, ax25_address *call) @@ -329,7 +332,7 @@ int set_ipmode(config *config, ax25_address *call, int ipmode) ax25_opt.port_addr = config->mycalls[0]; ax25_opt.dest_addr = *call; ax25_opt.cmd = AX25_SET_RT_IPMODE; - ax25_opt.arg = ipmode? 'V':'C'; + ax25_opt.arg = ipmode? 'V':'D'; fds = socket(AF_AX25, SOCK_SEQPACKET, 0); @@ -384,7 +387,7 @@ void ax25_receive(int sock) * KISS data? */ - if (*data != 0) + if ((*data & 0x0f) != 0) return; SKIP(1); diff --git a/call/call.c b/call/call.c index aed1aa5..e82bfea 100644 --- a/call/call.c +++ b/call/call.c @@ -36,9 +36,21 @@ #include #include +#ifdef HAVE_NETAX25_AX25_H #include +#else +#include +#endif +#ifdef HAVE_NETROM_NETROM_H #include +#else +#include +#endif +#ifdef HAVE_NETROSE_ROSE_H #include +#else +#include +#endif #include #include @@ -301,7 +313,7 @@ static int connect_to(char *address[]) break; case AF_AX25: - if (ax25_aton_arglist(address, &sockaddr.ax25) == -1) { + if (ax25_aton_arglist((const char**)address, &sockaddr.ax25) == -1) { close(fd); return (-1); } diff --git a/configure b/configure index 6ca9451..fc4c59d 100755 --- a/configure +++ b/configure @@ -532,7 +532,7 @@ fi -VERSION=0.0.2 +VERSION=0.0.3 PACKAGE=ax25-apps ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do @@ -1788,19 +1788,17 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | cat >> confdefs.h <<\EOF #define HAVE_NETAX25_AX25_H 1 EOF - -fi -rm -f conftest* - -if $HAVE_NETAX25_AX25_H ; then - echo "$ac_t""yes" 1>&6 + echo "$ac_t""yes" 1>&6 else + rm -rf conftest* echo "$ac_t""no" 1>&6 fi +rm -f conftest* + echo $ac_n "checking for working netrom/netrom.h header file""... $ac_c" 1>&6 -echo "configure:1802: checking for working netrom/netrom.h header file" >&5 +echo "configure:1800: checking for working netrom/netrom.h header file" >&5 cat > conftest.$ac_ext < EOF @@ -1810,19 +1808,17 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | cat >> confdefs.h <<\EOF #define HAVE_NETROM_NETROM_H 1 EOF - -fi -rm -f conftest* - -if $HAVE_NETROM_NETROM_H ; then - echo "$ac_t""yes" 1>&6 + echo "$ac_t""yes" 1>&6 else + rm -rf conftest* echo "$ac_t""no" 1>&6 fi +rm -f conftest* + echo $ac_n "checking for working netrose/rose.h header file""... $ac_c" 1>&6 -echo "configure:1824: checking for working netrose/rose.h header file" >&5 +echo "configure:1820: checking for working netrose/rose.h header file" >&5 cat > conftest.$ac_ext < EOF @@ -1832,27 +1828,25 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | cat >> confdefs.h <<\EOF #define HAVE_NETROSE_ROSE_H 1 EOF - -fi -rm -f conftest* - -if $HAVE_NETROSE_ROSE_H ; then - echo "$ac_t""yes" 1>&6 + echo "$ac_t""yes" 1>&6 else + rm -rf conftest* echo "$ac_t""no" 1>&6 fi +rm -f conftest* + ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:1851: checking for $ac_hdr that defines DIR" >&5 +echo "configure:1845: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -1860,7 +1854,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:1864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1858: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -1885,7 +1879,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:1889: checking for opendir in -ldir" >&5 +echo "configure:1883: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1893,7 +1887,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1926,7 +1920,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:1930: checking for opendir in -lx" >&5 +echo "configure:1924: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1934,7 +1928,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1968,12 +1962,12 @@ fi fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1972: checking for ANSI C header files" >&5 +echo "configure:1966: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1981,7 +1975,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1985: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1979: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1998,7 +1992,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -2016,7 +2010,7 @@ 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 < EOF @@ -2037,7 +2031,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2048,7 +2042,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:2052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -2072,12 +2066,12 @@ EOF fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:2076: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:2070: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2093,7 +2087,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:2097: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -2117,17 +2111,17 @@ for ac_hdr in fcntl.h sys/file.h sys/ioctl.h sys/time.h syslog.h termio.h unistd do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2121: checking for $ac_hdr" >&5 +echo "configure:2115: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2131: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2155,12 +2149,12 @@ done echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2159: checking for working const" >&5 +echo "configure:2153: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2207: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2230,21 +2224,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:2234: checking for inline" >&5 +echo "configure:2228: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2242: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -2270,12 +2264,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:2274: checking for off_t" >&5 +echo "configure:2268: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -2303,12 +2297,12 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:2307: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:2301: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2317,7 +2311,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:2321: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -2338,12 +2332,12 @@ EOF fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:2342: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:2336: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2351,7 +2345,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:2355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2349: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -2373,7 +2367,7 @@ fi echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:2377: checking for 8-bit clean memcmp" >&5 +echo "configure:2371: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2381,7 +2375,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -2409,12 +2403,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:2413: checking return type of signal handlers" >&5 +echo "configure:2407: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2431,7 +2425,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:2435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -2450,7 +2444,7 @@ EOF echo $ac_n "checking whether utime accepts a null argument""... $ac_c" 1>&6 -echo "configure:2454: checking whether utime accepts a null argument" >&5 +echo "configure:2448: checking whether utime accepts a null argument" >&5 if eval "test \"`echo '$''{'ac_cv_func_utime_null'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2460,7 +2454,7 @@ if test "$cross_compiling" = yes; then ac_cv_func_utime_null=no else cat > conftest.$ac_ext < #include @@ -2471,7 +2465,7 @@ exit(!(stat ("conftestdata", &s) == 0 && utime("conftestdata", (long *)0) == 0 && t.st_mtime - s.st_mtime < 120)); } EOF -if { (eval echo configure:2475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_utime_null=yes else @@ -2495,12 +2489,12 @@ EOF fi echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:2499: checking for vprintf" >&5 +echo "configure:2493: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -2547,12 +2541,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:2551: checking for _doprnt" >&5 +echo "configure:2545: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -2602,12 +2596,12 @@ fi for ac_func in gettimeofday mktime select socket strdup strerror strspn strstr strtol strtoul uname do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2606: checking for $ac_func" >&5 +echo "configure:2600: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else diff --git a/configure.in b/configure.in index 27ccd83..55e4c35 100644 --- a/configure.in +++ b/configure.in @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(ax25ipd/config.c) dnl For automake -VERSION=0.0.2 +VERSION=0.0.3 PACKAGE=ax25-apps AM_INIT_AUTOMAKE($PACKAGE,$VERSION) @@ -24,26 +24,11 @@ AC_CHECK_LIB(ncurses, initscr,NCURSES_LIB="-lncurses",NCURSES_LIB=) dnl Checks for working glibc 2.1 headers AC_MSG_CHECKING(for working netax25/ax25.h header file) -AC_HEADER_EGREP(ax25_fwd_struct, netax25/ax25.h,AC_DEFINE(HAVE_NETAX25_AX25_H)) -if $HAVE_NETAX25_AX25_H ; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi +AC_EGREP_HEADER(ax25_fwd_struct, netax25/ax25.h,AC_DEFINE(HAVE_NETAX25_AX25_H) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) AC_MSG_CHECKING(for working netrom/netrom.h header file) -AC_HEADER_EGREP(unsigned int ndigis, netrom/netrom.h,AC_DEFINE(HAVE_NETROM_NETROM_H)) -if $HAVE_NETROM_NETROM_H ; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi +AC_EGREP_HEADER(unsigned int ndigis, netrom/netrom.h,AC_DEFINE(HAVE_NETROM_NETROM_H) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) AC_MSG_CHECKING(for working netrose/rose.h header file) -AC_HEADER_EGREP(rose_facilities_struct, netrose/rose.h,AC_DEFINE(HAVE_NETROSE_ROSE_H)) -if $HAVE_NETROSE_ROSE_H ; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi +AC_EGREP_HEADER(rose_facilities_struct, netrose/rose.h,AC_DEFINE(HAVE_NETROSE_ROSE_H) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) dnl Checks for header files. AC_HEADER_DIRENT diff --git a/listen/ax25dump.c b/listen/ax25dump.c index 34213f9..86b78e0 100644 --- a/listen/ax25dump.c +++ b/listen/ax25dump.c @@ -81,7 +81,7 @@ void ax25_dump(unsigned char *data, int length, int hexdump) } if (data[1] & HDLCAEB) { /* this is a FlexNet compressed header */ - lprintf(T_PROTOCOL, "AX25: "); + lprintf(T_PROTOCOL, " "); tmp[6] = tmp[7] = extseq = 0; tmp[0] = ' ' + (data[2] >> 2); tmp[1] = ' ' + ((data[2] << 4) & 0x30) + (data[3] >> 4); @@ -106,7 +106,7 @@ void ax25_dump(unsigned char *data, int length, int hexdump) if ((data[AXLEN + ALEN] & SSSID_SPARE) == SSSID_SPARE) { extseq = 0; - lprintf(T_PROTOCOL, "AX25: "); +// lprintf(T_PROTOCOL, " "); } else { extseq = 1; lprintf(T_PROTOCOL, "EAX25: "); @@ -117,8 +117,10 @@ void ax25_dump(unsigned char *data, int length, int hexdump) else dama = DAMA_STRING; + lprintf(T_AXHDR, "fm "); lprintf(T_ADDR, "%s", pax25(tmp, data + AXLEN)); - lprintf(T_ADDR, "->%s", pax25(tmp, data)); + lprintf(T_AXHDR, " to "); + lprintf(T_ADDR, "%s", pax25(tmp, data)); cmdrsp = LAPB_UNKNOWN; @@ -134,7 +136,7 @@ void ax25_dump(unsigned char *data, int length, int hexdump) length -= (AXLEN + AXLEN); if (!end) { - lprintf(T_AXHDR, " v"); + lprintf(T_AXHDR, " via"); while (!end) { /* Print digi string */ @@ -155,35 +157,66 @@ void ax25_dump(unsigned char *data, int length, int hexdump) data += ctlen; length -= ctlen; - lprintf(T_AXHDR, " <%s", decode_type(type)); + lprintf(T_AXHDR, " ctl %s", decode_type(type)); + if ((type & 0x3) != U) /* I or S frame? */ + lprintf(T_AXHDR, "%d", nr); + + if (type == I) + lprintf(T_AXHDR, "%d", ns); + switch (cmdrsp) { case LAPB_COMMAND: - lprintf(T_AXHDR, " C"); - if (pf) lprintf(T_AXHDR, " P"); + if (pf) lprintf(T_AXHDR, "+"); + else lprintf(T_AXHDR, "^"); break; case LAPB_RESPONSE: - lprintf(T_AXHDR, " R"); - if (pf) lprintf(T_AXHDR, " F"); + if (pf) lprintf(T_AXHDR, "-"); + else lprintf(T_AXHDR, "v"); break; default: break; } - if (type == I) - lprintf(T_AXHDR, " S%d", ns); - - if ((type & 0x3) != U) /* I or S frame? */ - lprintf(T_AXHDR, " R%d", nr); - - lprintf(T_AXHDR, ">"); - if (type == I || type == UI) { /* Decode I field */ if (length > 0) { /* Get pid */ pid = *data++; length--; - + + lprintf(T_AXHDR," pid=%X",pid); + + switch (pid) { + case PID_SEGMENT: + lprintf(T_AXHDR,"(segment)"); + break; + case PID_ARP: + lprintf(T_AXHDR,"(ARP)"); + break; + case PID_NETROM: + lprintf(T_AXHDR,"(NET/ROM)"); + break; + case PID_IP: + lprintf(T_AXHDR,"(IP)"); + break; + case PID_X25: + lprintf(T_AXHDR, "(X.25)"); + break; + case PID_TEXNET: + lprintf(T_AXHDR, "(TEXNET)"); + break; + case PID_FLEXNET: + lprintf(T_AXHDR, "(FLEXNET)"); + break; + case PID_NO_L3: + lprintf(T_AXHDR, "(Text)"); + break; + } + lprintf(T_AXHDR, "%s len %d ",dama,length); + + if(timestamp) + display_timestamp(); + if (pid == PID_SEGMENT) { seg = *data++; length--; @@ -194,42 +227,34 @@ void ax25_dump(unsigned char *data, int length, int hexdump) length--; } } + lprintf(T_AXHDR, "\n"); switch (pid) { case PID_SEGMENT: - lprintf(T_AXHDR,"%s\n", dama); data_dump(data, length, hexdump); break; case PID_ARP: - lprintf(T_AXHDR," pid=ARP%s\n", dama); arp_dump(data, length); break; case PID_NETROM: - lprintf(T_AXHDR," pid=NET/ROM%s\n", dama); netrom_dump(data, length, hexdump); break; case PID_IP: - lprintf(T_AXHDR," pid=IP%s\n", dama); ip_dump(data, length, hexdump); break; case PID_X25: - lprintf(T_AXHDR, " pid=X.25%s\n", dama); rose_dump(data, length, hexdump); break; case PID_TEXNET: - lprintf(T_AXHDR, " pid=TEXNET%s\n", dama); data_dump(data, length, hexdump); break; case PID_FLEXNET: - lprintf(T_AXHDR, " pid=FLEXNET%s\n", dama); flexnet_dump(data, length, hexdump); break; case PID_NO_L3: - lprintf(T_AXHDR, " pid=Text%s\n", dama); data_dump(data, length, hexdump); break; default: - lprintf(T_AXHDR, " pid=0x%x%s\n", pid, dama); data_dump(data, length, hexdump); break; } @@ -250,14 +275,24 @@ void ax25_dump(unsigned char *data, int length, int hexdump) lprintf(T_ERROR, " Too-long I-field"); if(data[2] & Z) lprintf(T_ERROR, " Invalid seq number"); - lprintf(T_AXHDR,"%s\n", dama); + lprintf(T_AXHDR,"%s ", dama); + + if(timestamp) + display_timestamp(); + lprintf(T_AXHDR,"\n"); } else if ((type == SABM || type == UA) && length >= 2) { /* FlexNet transmits the QSO "handle" for header * compression in SABM and UA frame data fields */ - lprintf(T_AXHDR," [%d]%s\n", (data[0] << 8) | data[1], dama); + lprintf(T_AXHDR," [%d]%s ", (data[0] << 8) | data[1], dama); + if(timestamp) + display_timestamp(); + lprintf(T_AXHDR,"\n"); } else { - lprintf(T_AXHDR,"%s\n", dama); + lprintf(T_AXHDR,"%s ", dama); + if(timestamp) + display_timestamp(); + lprintf(T_AXHDR,"\n"); } } @@ -267,11 +302,11 @@ static char *decode_type(int type) case I: return "I"; case SABM: - return "C"; + return "SABM"; case SABME: - return "CE"; + return "SABME"; case DISC: - return "D"; + return "DISC"; case DM: return "DM"; case UA: diff --git a/listen/listen.c b/listen/listen.c index b75b29c..e4daad6 100644 --- a/listen/listen.c +++ b/listen/listen.c @@ -12,13 +12,27 @@ #include #include +#ifdef __GLIBC__ #include +#else +#include +#endif +#ifdef HAVE_NETAX25_AX25_H #include +#else +#include +#endif #include #include #include "listen.h" +#ifdef AX25_NEW_DEVIF +#define ki_dump ax25_dump +#endif + +int timestamp; + static void display_port(char *dev) { char *port; @@ -26,20 +40,18 @@ static void display_port(char *dev) if ((port = ax25_config_get_name(dev)) == NULL) port = dev; - lprintf(T_PORT, "Port %s: ", port); + lprintf(T_PORT, "%s: ", port); } -static void display_timestamp(void) +void display_timestamp(void) { - time_t timenow; - char *timestring; + time_t timenowx; + struct tm* timenow; - time(&timenow); + time(&timenowx); + timenow = localtime(&timenowx); - timestring = ctime(&timenow); - timestring[24] = '\0'; - - lprintf(T_TIMESTAMP, "[%s]\n", timestring); + lprintf(T_TIMESTAMP, "%02d:%02d:%02d", timenow->tm_hour, timenow->tm_min, timenow->tm_sec); } #define ASCII 0 @@ -51,7 +63,6 @@ static void display_timestamp(void) int main(int argc, char **argv) { unsigned char buffer[BUFSIZE]; - int timestamp = 0; int dumpstyle = ASCII; int size; int s; @@ -61,6 +72,8 @@ int main(int argc, char **argv) struct ifreq ifr; int proto = ETH_P_AX25; + timestamp = 0; + while ((s = getopt(argc, argv, "8achip:rtv")) != -1) { switch (s) { case '8': @@ -139,18 +152,14 @@ int main(int argc, char **argv) perror("GIFADDR"); if (ifr.ifr_hwaddr.sa_family == AF_AX25) { - if (timestamp) - display_timestamp(); display_port(sa.sa_data); ki_dump(buffer, size, dumpstyle); - lprintf(T_DATA, "\n"); +// lprintf(T_DATA, "\n"); } } else { - if (timestamp) - display_timestamp(); display_port(sa.sa_data); ki_dump(buffer, size, dumpstyle); - lprintf(T_DATA, "\n"); +// lprintf(T_DATA, "\n"); } if (color) refresh(); diff --git a/listen/listen.h b/listen/listen.h index cff051d..4418967 100644 --- a/listen/listen.h +++ b/listen/listen.h @@ -5,19 +5,23 @@ #define T_BPQ 4 #define T_DATA 5 #define T_PROTOCOL 6 -#define T_AXHDR 7 +#define T_AXHDR 7 #define T_ADDR 8 #define T_IPHDR 9 #define T_TCPHDR 10 #define T_ROSEHDR 11 #define T_TIMESTAMP 12 -#define T_FLEXNET 3 /* for now */ +#define T_FLEXNET 13 /* In utils.c */ extern int color; /* Colorized mode */ extern int sevenbit; /* Are we on a 7-bit terminal? */ extern int ibmhack; /* IBM mapping? */ +extern int timestamp; + +void display_timestamp(void); + void lprintf(int dtype, char *fmt, ...); int initcolor(void); char *servname(int port, char *proto); diff --git a/listen/utils.c b/listen/utils.c index 7b7cc5d..ce7ecb9 100644 --- a/listen/utils.c +++ b/listen/utils.c @@ -59,7 +59,8 @@ void lprintf(int dtype, char *fmt, ...) if ((dtype == T_ADDR) || (dtype == T_PROTOCOL) || (dtype == T_AXHDR) || (dtype == T_IPHDR) - || (dtype == T_ROSEHDR)) + || (dtype == T_ROSEHDR) || (dtype == T_PORT) + || (dtype == T_TIMESTAMP)) ch |= A_BOLD; ch |= COLOR_PAIR(dtype); @@ -99,10 +100,12 @@ int initcolor(void) init_pair(T_IPHDR, COLOR_WHITE, COLOR_BLACK); init_pair(T_ADDR, COLOR_GREEN, COLOR_BLACK); init_pair(T_ROSEHDR, COLOR_WHITE, COLOR_BLACK); - init_pair(T_TIMESTAMP, COLOR_MAGENTA, COLOR_BLACK); + init_pair(T_TIMESTAMP, COLOR_YELLOW, COLOR_BLACK); init_pair(T_KISS, COLOR_MAGENTA, COLOR_BLACK); init_pair(T_BPQ, COLOR_MAGENTA, COLOR_BLACK); init_pair(T_TCPHDR, COLOR_BLUE, COLOR_BLACK); + init_pair(T_FLEXNET, COLOR_BLUE, COLOR_BLACK); + return 1; } diff --git a/ltconfig b/ltconfig index a362c48..65ec6f6 100755 --- a/ltconfig +++ b/ltconfig @@ -169,8 +169,8 @@ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` # Constants: PROGRAM=ltconfig PACKAGE=libtool -VERSION=1.3.2 -TIMESTAMP=" (1.385.2.150 1999/05/26 00:28:32)" +VERSION=1.3.3 +TIMESTAMP=" (1.385.2.181 1999/07/02 15:49:11)" ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5' rm="rm -f" @@ -181,7 +181,8 @@ help="Try \`$progname --help' for more information." default_ofile=libtool can_build_shared=yes enable_shared=yes -# All known linkers require a `.a' archive for static linking. +# All known linkers require a `.a' archive for static linking (except M$VC, +# which needs '.lib'). enable_static=yes enable_fast_install=yes enable_dlopen=unknown @@ -201,6 +202,7 @@ need_locks=yes ac_ext=c objext=o libext=a +exeext= cache_file= old_AR="$AR" @@ -576,7 +578,7 @@ if test "$with_gcc" != yes || test -z "$CC"; then # Now see if the compiler is really GCC. with_gcc=no echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:579: checking whether we are using GNU C" >&5 + echo "$progname:581: checking whether we are using GNU C" >&5 $rm conftest.c cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then with_gcc=yes fi $rm conftest.c @@ -598,8 +600,8 @@ compiler="$2" echo $ac_n "checking for object suffix... $ac_c" 1>&6 $rm conftest* echo 'int i = 1;' > conftest.c -echo "$progname:601: checking for object suffix" >& 5 -if { (eval echo $progname:602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then +echo "$progname:603: checking for object suffix" >& 5 +if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then # Append any warnings to the config.log. cat conftest.err 1>&5 @@ -617,6 +619,38 @@ fi $rm conftest* echo "$ac_t$objext" 1>&6 +echo $ac_n "checking for executable suffix... $ac_c" 1>&6 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_cv_exeext="no" + $rm conftest* + echo 'main () { return 0; }' > conftest.c + echo "$progname:629: checking for executable suffix" >& 5 + if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then + # Append any warnings to the config.log. + cat conftest.err 1>&5 + + for ac_file in conftest.*; do + case $ac_file in + *.c | *.err | *.$objext ) ;; + *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;; + esac + done + else + cat conftest.err 1>&5 + echo "$progname: failed program was:" >&5 + cat conftest.c >&5 + fi + $rm conftest* +fi +if test "X$ac_cv_exeext" = Xno; then + exeext="" +else + exeext="$ac_cv_exeext" +fi +echo "$ac_t$ac_cv_exeext" 1>&6 + echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 pic_flag= special_shlib_compile_flags= @@ -739,8 +773,8 @@ if test -n "$pic_flag"; then echo "int some_variable = 0;" > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:742: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then + echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5 + if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then # Append any warnings to the config.log. cat conftest.err 1>&5 @@ -792,8 +826,8 @@ mkdir out chmod -w . save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -o out/conftest2.o" -echo "$progname:795: checking if $compiler supports -c -o file.o" >&5 -if { (eval echo $progname:796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then +echo "$progname:829: checking if $compiler supports -c -o file.o" >&5 +if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -825,8 +859,8 @@ if test x"$compiler_c_o" = x"yes"; then echo "int some_variable = 0;" > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -c -o conftest.lo" - echo "$progname:828: checking if $compiler supports -c -o file.lo" >&5 -if { (eval echo $progname:829: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then + echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5 +if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -877,8 +911,8 @@ if test "$with_gcc" = yes; then echo "int some_variable = 0;" > conftest.c save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" - echo "$progname:880: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 - if { (eval echo $progname:881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then + echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 + if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -921,8 +955,8 @@ $rm conftest* echo 'main(){return(0);}' > conftest.c save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:924: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5 +if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then echo "$ac_t$link_static_flag" 1>&6 else echo "$ac_t"none 1>&6 @@ -954,7 +988,7 @@ if test -z "$LD"; then if test "$with_gcc" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:957: checking for ld used by GCC" >&5 + echo "$progname:991: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -978,10 +1012,10 @@ if test -z "$LD"; then esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:981: checking for GNU ld" >&5 + echo "$progname:1015: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:984: checking for non-GNU ld" >&5 + echo "$progname:1018: checking for non-GNU ld" >&5 fi if test -z "$LD"; then @@ -1047,7 +1081,7 @@ hardcode_minus_L=no hardcode_shlibpath_var=unsupported runpath_var= always_export_symbols=no -export_symbols_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' +export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= @@ -1130,10 +1164,9 @@ EOF # Extract the symbol export list from an `--export-all' def file, # then regenerate the def file from the symbol export list, so that # the compiled dll only exports the symbol export list. - export_symbols_cmds='rm -f $objdir/$soname-ltdll.c~ - sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ - (cd $objdir && $CC -c $soname-ltdll.c)~ - $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs~ + export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ + test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ + $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols' archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~ @@ -1142,13 +1175,15 @@ EOF echo " \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def; _lt_hint=`expr 1 + \$_lt_hint`; done~ + test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ + test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts' - old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' + old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' ;; netbsd*) @@ -1554,11 +1589,11 @@ void nm_test_func(){} main(){nm_test_var='a';nm_test_func();return(0);} EOF - echo "$progname:1557: checking if global_symbol_pipe works" >&5 - if { (eval echo $progname:1558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then + echo "$progname:1592: checking if global_symbol_pipe works" >&5 + if { (eval echo $progname:1593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then # Now try to grab the symbols. nlist=conftest.nm - if { echo "$progname:1561: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then + if { echo "$progname:1596: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then @@ -1610,7 +1645,7 @@ EOF save_CFLAGS="$CFLAGS" LIBS="conftstm.$objext" CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:1613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + if { (eval echo $progname:1648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes else echo "$progname: failed program was:" >&5 @@ -1756,7 +1791,7 @@ bsdi4*) soname_spec='${libname}.so' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH - deplibs_check_method='file_magic ELF 32-bit LSB shared object' + deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' file_magic_cmd=/usr/bin/file file_magic_test_file=/shlib/libc.so sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" @@ -1768,6 +1803,8 @@ bsdi4*) cygwin* | mingw*) version_type=windows + need_version=no + need_lib_prefix=no if test "$with_gcc" = yes; then library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' else @@ -1776,7 +1813,6 @@ cygwin* | mingw*) dynamic_linker='Win32 ld.exe' deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' file_magic_cmd='${OBJDUMP} -f' - need_lib_prefix=no # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH lt_cv_dlopen="LoadLibrary" @@ -1807,11 +1843,22 @@ freebsd*) esac finish_cmds='PATH="\$PATH:/sbin" OBJFORMAT="'"$objformat"'" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH + case "$host_os" in + freebsd2* | freebsd3.[01]*) + shlibpath_overrides_runpath=yes + ;; + *) # from 3.2 on + shlibpath_overrides_runpath=no + ;; + esac ;; gnu*) version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}.so' + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' + soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -2120,7 +2167,7 @@ else if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then lt_cv_dlopen=no lt_cv_dlopen_libs= echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "$progname:2123: checking for dlopen in -ldl" >&5 +echo "$progname:2170: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2128,7 +2175,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo $progname:2188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2157,12 +2204,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dlopen""... $ac_c" 1>&6 -echo "$progname:2160: checking for dlopen" >&5 +echo "$progname:2207: checking for dlopen" >&5 if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -2184,7 +2231,7 @@ dlopen(); ; return 0; } EOF -if { (eval echo $progname:2187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo $progname:2234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_dlopen=yes" else @@ -2201,7 +2248,7 @@ if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 -echo "$progname:2204: checking for dld_link in -ldld" >&5 +echo "$progname:2251: checking for dld_link in -ldld" >&5 ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2209,7 +2256,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo $progname:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2238,12 +2285,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for shl_load""... $ac_c" 1>&6 -echo "$progname:2241: checking for shl_load" >&5 +echo "$progname:2288: checking for shl_load" >&5 if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -2265,7 +2312,7 @@ shl_load(); ; return 0; } EOF -if { (eval echo $progname:2268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo $progname:2315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shl_load=yes" else @@ -2283,7 +2330,7 @@ if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "$progname:2286: checking for shl_load in -ldld" >&5 +echo "$progname:2333: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2291,7 +2338,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo $progname:2352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2345,17 +2392,17 @@ fi for ac_hdr in dlfcn.h; do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "$progname:2348: checking for $ac_hdr" >&5 +echo "$progname:2395: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int fnord = 0; EOF ac_try="$ac_compile conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo $progname:2358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo $progname:2405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2383,7 +2430,7 @@ done LIBS="$lt_cv_dlopen_libs $LIBS" echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 -echo "$progname:2386: checking whether a program can dlopen itself" >&5 +echo "$progname:2433: checking whether a program can dlopen itself" >&5 if test "${lt_cv_dlopen_self+set}" = set; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2391,7 +2438,7 @@ else lt_cv_dlopen_self=cross else cat > conftest.c < @@ -2434,10 +2481,10 @@ else fnord() { int i=42;} main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 || ptr2) exit(0); } exit(1); } + if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } EOF -if { (eval echo $progname:2440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo $progname:2487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then lt_cv_dlopen_self=yes else @@ -2456,7 +2503,7 @@ echo "$ac_t""$lt_cv_dlopen_self" 1>&6 if test "$lt_cv_dlopen_self" = yes; then LDFLAGS="$LDFLAGS $link_static_flag" echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 -echo "$progname:2459: checking whether a statically linked program can dlopen itself" >&5 +echo "$progname:2506: checking whether a statically linked program can dlopen itself" >&5 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2464,7 +2511,7 @@ else lt_cv_dlopen_self_static=cross else cat > conftest.c < @@ -2507,10 +2554,10 @@ else fnord() { int i=42;} main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 || ptr2) exit(0); } exit(1); } + if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } EOF -if { (eval echo $progname:2513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo $progname:2560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then lt_cv_dlopen_self_static=yes else @@ -2729,6 +2776,9 @@ objext="$objext" # Old archive suffix (normally "a"). libext="$libext" +# Executable file suffix (normally ""). +exeext="$exeext" + # Additional compiler flags for building library objects. pic_flag=$pic_flag @@ -2897,7 +2947,7 @@ EOF esac # Append the ltmain.sh script. - cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) + sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) chmod +x "$ofile" ;; diff --git a/ltmain.sh b/ltmain.sh index 3417294..ae10cad 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -54,8 +54,8 @@ modename="$progname" # Constants. PROGRAM=ltmain.sh PACKAGE=libtool -VERSION=1.3.2 -TIMESTAMP=" (1.385.2.150 1999/05/26 00:28:32)" +VERSION=1.3.3 +TIMESTAMP=" (1.385.2.181 1999/07/02 15:49:11)" default_mode= help="Try \`$progname --help' for more information." @@ -69,7 +69,7 @@ rm="rm -f" Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' SP2NL='tr \040 \012' -NL2SP='tr \012 \040' +NL2SP='tr \015\012 \040\040' # NLS nuisances. # Only set LANG and LC_ALL to C if already set. @@ -638,6 +638,12 @@ compiler." # #undef WIN32_LEAN_AND_MEAN # #include # +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# # #ifdef __cplusplus # extern "C" { # #endif @@ -646,8 +652,10 @@ compiler." # } # #endif # +# #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); +# #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY @@ -893,6 +901,14 @@ compiler." fi case "$arg" in *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; self) if test "$prev" = dlprefiles; then dlself=yes @@ -1222,7 +1238,7 @@ compiler." fi if test -n "$dependency_libs"; then - # Extract -R from dependency_libs + # Extract -R and -L from dependency_libs temp_deplibs= for deplib in $dependency_libs; do case "$deplib" in @@ -1234,7 +1250,13 @@ compiler." -L*) case "$compile_command $temp_deplibs " in *" $deplib "*) ;; *) temp_deplibs="$temp_deplibs $deplib";; - esac;; + esac + temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'` + case " $lib_search_path " in + *" $temp_dir "*) ;; + *) lib_search_path="$lib_search_path $temp_dir";; + esac + ;; *) temp_deplibs="$temp_deplibs $deplib";; esac done @@ -2037,51 +2059,6 @@ EOF # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - if test -n "$whole_archive_flag_spec"; then - if test -n "$convenience"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - fi - else - gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "mkdir $gentop" - $run mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - - for xlib in $convenience; do - # Extract the objects. - case "$xlib" in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "mkdir $xdir" - $run mkdir "$xdir" - status=$? - if test $status -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - - libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` - done - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linkopts="$linkopts $flag" - fi - # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then @@ -2109,6 +2086,51 @@ EOF $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${outputname}x" + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "mkdir $gentop" + $run mkdir "$gentop" + status=$? + if test $status -ne 0 && test ! -d "$gentop"; then + exit $status + fi + generated="$generated $gentop" + + for xlib in $convenience; do + # Extract the objects. + case "$xlib" in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` + xdir="$gentop/$xlib" + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "mkdir $xdir" + $run mkdir "$xdir" + status=$? + if test $status -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + + libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` + done + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linkopts="$linkopts $flag" + fi + # Do each of the archive commands. if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval cmds=\"$archive_expsym_cmds\" @@ -2187,8 +2209,58 @@ EOF # Delete the old objects. $run $rm $obj $libobj + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${obj}x" + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "mkdir $gentop" + $run mkdir "$gentop" + status=$? + if test $status -ne 0 && test ! -d "$gentop"; then + exit $status + fi + generated="$generated $gentop" + + for xlib in $convenience; do + # Extract the objects. + case "$xlib" in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` + xdir="$gentop/$xlib" + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "mkdir $xdir" + $run mkdir "$xdir" + status=$? + if test $status -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + + reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` + done + fi + fi + # Create the old-style object. - reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` + reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" output="$obj" eval cmds=\"$reload_cmds\" @@ -2201,9 +2273,21 @@ EOF IFS="$save_ifs" # Exit if we aren't doing a library object file. - test -z "$libobj" && exit 0 + if test -z "$libobj"; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit 0 + fi if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. $show "echo timestamp > $libobj" @@ -2213,7 +2297,7 @@ EOF if test -n "$pic_flag"; then # Only do commands if we really have different PIC objects. - reload_objs="$libobjs" + reload_objs="$libobjs $reload_conv_objs" output="$libobj" eval cmds=\"$reload_cmds\" IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' @@ -2231,6 +2315,11 @@ EOF $run $LN_S $obj $libobj || exit $? fi + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + exit 0 ;; @@ -2363,7 +2452,7 @@ EOF fi dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" = yes; then + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else @@ -2776,7 +2865,7 @@ else fi" else echo >> $output "\ - program='$outputname' + program='$outputname$exeext' progdir=\"\$thisdir/$objdir\" " fi @@ -3201,13 +3290,11 @@ libdir='$install_libdir'\ # Install the shared library and build the symlinks. $show "$install_prog $dir/$realname $destdir/$realname" $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? - test "X$dlname" = "X$realname" && dlname= if test $# -gt 0; then # Delete the old symlinks, and create new ones. for linkname do - test "X$dlname" = "X$linkname" && dlname= if test "$linkname" != "$realname"; then $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" @@ -3215,12 +3302,6 @@ libdir='$install_libdir'\ done fi - if test -n "$dlname"; then - # Install the dynamically-loadable library. - $show "$install_prog $dir/$dlname $destdir/$dlname" - $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $? - fi - # Do each command in the postinstall commands. lib="$destdir/$realname" eval cmds=\"$postinstall_cmds\" @@ -3652,9 +3733,7 @@ libdir='$install_libdir'\ # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $dir/$n" - test "X$n" = "X$dlname" && dlname= done - test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" $show "$rm $rmfiles" -- cgit v1.2.3