Remove unused traceroute(8) contrib code from head
It still lives on under vendor/traceroute.
This commit is contained in:
parent
8a1d183fb7
commit
d8e58d07b3
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=215937
@ -1,129 +0,0 @@
|
|||||||
# Copyright (c) 1988, 1989, 1990, 1991, 1992, 1995, 1996, 1997, 1998, 1999, 2000
|
|
||||||
# The Regents of the University of California. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that: (1) source code distributions
|
|
||||||
# retain the above copyright notice and this paragraph in its entirety, (2)
|
|
||||||
# distributions including binary code include the above copyright notice and
|
|
||||||
# this paragraph in its entirety in the documentation or other materials
|
|
||||||
# provided with the distribution, and (3) all advertising materials mentioning
|
|
||||||
# features or use of this software display the following acknowledgement:
|
|
||||||
# ``This product includes software developed by the University of California,
|
|
||||||
# Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
|
|
||||||
# the University nor the names of its contributors may be used to endorse
|
|
||||||
# or promote products derived from this software without specific prior
|
|
||||||
# written permission.
|
|
||||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
||||||
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
||||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
#
|
|
||||||
# @(#) $Id: Makefile.in,v 1.28 2000/11/23 20:05:14 leres Exp $ (LBL)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Various configurable paths (remember to edit Makefile.in, not Makefile)
|
|
||||||
#
|
|
||||||
|
|
||||||
# Top level hierarchy
|
|
||||||
prefix = @prefix@
|
|
||||||
exec_prefix = @exec_prefix@
|
|
||||||
# Pathname of directory to install the binary
|
|
||||||
BINDEST = @sbindir@
|
|
||||||
# Pathname of directory to install the man page
|
|
||||||
MANDEST = @mandir@
|
|
||||||
|
|
||||||
# VPATH
|
|
||||||
srcdir = @srcdir@
|
|
||||||
VPATH = @srcdir@
|
|
||||||
|
|
||||||
#
|
|
||||||
# You shouldn't need to edit anything below here.
|
|
||||||
#
|
|
||||||
|
|
||||||
CC = @CC@
|
|
||||||
CCOPT = @V_CCOPT@
|
|
||||||
INCLS = -I. @V_INCLS@
|
|
||||||
DEFS = @DEFS@
|
|
||||||
|
|
||||||
# Standard CFLAGS
|
|
||||||
CFLAGS = $(CCOPT) $(DEFS) $(INCLS)
|
|
||||||
|
|
||||||
# Standard LIBS
|
|
||||||
LIBS = @LIBS@
|
|
||||||
|
|
||||||
INSTALL = @INSTALL@
|
|
||||||
|
|
||||||
# Explicitly define compilation rule since SunOS 4's make doesn't like gcc.
|
|
||||||
# Also, gcc does not remove the .o before forking 'as', which can be a
|
|
||||||
# problem if you don't own the file but can write to the directory.
|
|
||||||
.c.o:
|
|
||||||
@rm -f $@
|
|
||||||
$(CC) $(CFLAGS) -c $(srcdir)/$*.c
|
|
||||||
|
|
||||||
CSRC = traceroute.c ifaddrlist.c @V_FINDSADDR@
|
|
||||||
GENSRC = version.c
|
|
||||||
|
|
||||||
SRC = $(CSRC) $(GENSRC)
|
|
||||||
HDR = findsaddr.h ifaddrlist.h
|
|
||||||
|
|
||||||
TAGHDR = \
|
|
||||||
/usr/include/netinet/in.h \
|
|
||||||
/usr/include/netinet/ip_icmp.h \
|
|
||||||
/usr/include/netinet/udp.h
|
|
||||||
|
|
||||||
TAGFILES = $(SRC) $(HDR) $(TAGHDR)
|
|
||||||
|
|
||||||
# We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot
|
|
||||||
# hack the extra indirection
|
|
||||||
OBJ = $(CSRC:.c=.o) $(GENSRC:.c=.o) @LIBOBJS@
|
|
||||||
|
|
||||||
CLEANFILES = $(OBJ) traceroute $(GENSRC)
|
|
||||||
|
|
||||||
all: traceroute
|
|
||||||
|
|
||||||
traceroute: $(OBJ)
|
|
||||||
@rm -f $@
|
|
||||||
$(CC) $(CFLAGS) -o $@ $(OBJ) $(LIBS)
|
|
||||||
|
|
||||||
version.o: version.c
|
|
||||||
version.c: $(srcdir)/VERSION
|
|
||||||
@rm -f $@
|
|
||||||
sed -e 's/.*/char version[] = "&";/' $(srcdir)/VERSION > $@
|
|
||||||
|
|
||||||
install: force
|
|
||||||
$(INSTALL) -m 4555 -o root -g bin traceroute $(DESTDIR)$(BINDEST)
|
|
||||||
|
|
||||||
install-man: force
|
|
||||||
$(INSTALL) -m 444 -o bin -g bin traceroute.8 $(DESTDIR)$(MANDEST)/man8
|
|
||||||
|
|
||||||
lint: $(GENSRC) force
|
|
||||||
lint -hbxn $(SRC) | \
|
|
||||||
grep -v 'struct/union .* never defined' | \
|
|
||||||
grep -v 'possible pointer alignment problem'
|
|
||||||
|
|
||||||
clean: force
|
|
||||||
rm -f $(CLEANFILES)
|
|
||||||
|
|
||||||
distclean: force
|
|
||||||
rm -f $(CLEANFILES) Makefile config.cache config.log config.status \
|
|
||||||
gnuc.h os-proto.h
|
|
||||||
|
|
||||||
tags: $(TAGFILES)
|
|
||||||
ctags -wtd $(TAGFILES)
|
|
||||||
|
|
||||||
tar: force
|
|
||||||
@cwd=`pwd` ; name=traceroute-`cat VERSION` ; \
|
|
||||||
list="" ; tar="tar chf" ; temp="$$name.tar.gz" ; \
|
|
||||||
for i in `cat FILES` ; do list="$$list $$name/$$i" ; done; \
|
|
||||||
echo \
|
|
||||||
"rm -f $$name; ln -s . $$name" ; \
|
|
||||||
rm -f $$name; ln -s . $$name ; \
|
|
||||||
echo \
|
|
||||||
"$$tar - [lots of files] | gzip > $$temp" ; \
|
|
||||||
$$tar - $$list | gzip > $$temp ; \
|
|
||||||
echo \
|
|
||||||
"rm -f $$name" ; \
|
|
||||||
rm -f $$name
|
|
||||||
|
|
||||||
force: /tmp
|
|
||||||
depend: $(GENSRC) force
|
|
||||||
./mkdep -c $(CC) $(DEFS) $(INCLS) $(SRC)
|
|
765
contrib/traceroute/aclocal.m4
vendored
765
contrib/traceroute/aclocal.m4
vendored
@ -1,765 +0,0 @@
|
|||||||
dnl @(#) $Header: aclocal.m4,v 1.73 99/08/14 16:50:02 leres Exp $ (LBL)
|
|
||||||
dnl
|
|
||||||
dnl Copyright (c) 1995, 1996, 1997, 1998, 1999
|
|
||||||
dnl The Regents of the University of California. All rights reserved.
|
|
||||||
dnl
|
|
||||||
dnl Redistribution and use in source and binary forms, with or without
|
|
||||||
dnl modification, are permitted provided that: (1) source code distributions
|
|
||||||
dnl retain the above copyright notice and this paragraph in its entirety, (2)
|
|
||||||
dnl distributions including binary code include the above copyright notice and
|
|
||||||
dnl this paragraph in its entirety in the documentation or other materials
|
|
||||||
dnl provided with the distribution, and (3) all advertising materials mentioning
|
|
||||||
dnl features or use of this software display the following acknowledgement:
|
|
||||||
dnl ``This product includes software developed by the University of California,
|
|
||||||
dnl Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
|
|
||||||
dnl the University nor the names of its contributors may be used to endorse
|
|
||||||
dnl or promote products derived from this software without specific prior
|
|
||||||
dnl written permission.
|
|
||||||
dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
||||||
dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
||||||
dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
dnl
|
|
||||||
dnl LBL autoconf macros
|
|
||||||
dnl
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Determine which compiler we're using (cc or gcc)
|
|
||||||
dnl If using gcc, determine the version number
|
|
||||||
dnl If using cc, require that it support ansi prototypes
|
|
||||||
dnl If using gcc, use -O2 (otherwise use -O)
|
|
||||||
dnl If using cc, explicitly specify /usr/local/include
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_C_INIT(copt, incls)
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl $1 (copt set)
|
|
||||||
dnl $2 (incls set)
|
|
||||||
dnl CC
|
|
||||||
dnl LDFLAGS
|
|
||||||
dnl LBL_CFLAGS
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_C_INIT,
|
|
||||||
[AC_PREREQ(2.12)
|
|
||||||
AC_BEFORE([$0], [AC_PROG_CC])
|
|
||||||
AC_BEFORE([$0], [AC_LBL_FIXINCLUDES])
|
|
||||||
AC_BEFORE([$0], [AC_LBL_DEVEL])
|
|
||||||
AC_ARG_WITH(gcc, [ --without-gcc don't use gcc])
|
|
||||||
$1="-O"
|
|
||||||
$2=""
|
|
||||||
if test "${srcdir}" != "." ; then
|
|
||||||
$2="-I\$\(srcdir\)"
|
|
||||||
fi
|
|
||||||
if test "${CFLAGS+set}" = set; then
|
|
||||||
LBL_CFLAGS="$CFLAGS"
|
|
||||||
fi
|
|
||||||
if test -z "$CC" ; then
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
bsdi*)
|
|
||||||
AC_CHECK_PROG(SHLICC2, shlicc2, yes, no)
|
|
||||||
if test $SHLICC2 = yes ; then
|
|
||||||
CC=shlicc2
|
|
||||||
export CC
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
if test -z "$CC" -a "$with_gcc" = no ; then
|
|
||||||
CC=cc
|
|
||||||
export CC
|
|
||||||
fi
|
|
||||||
AC_PROG_CC
|
|
||||||
if test "$GCC" != yes ; then
|
|
||||||
AC_MSG_CHECKING(that $CC handles ansi prototypes)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_cc_ansi_prototypes,
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[#include <sys/types.h>],
|
|
||||||
[int frob(int, char *)],
|
|
||||||
ac_cv_lbl_cc_ansi_prototypes=yes,
|
|
||||||
ac_cv_lbl_cc_ansi_prototypes=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_cc_ansi_prototypes)
|
|
||||||
if test $ac_cv_lbl_cc_ansi_prototypes = no ; then
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
hpux*)
|
|
||||||
AC_MSG_CHECKING(for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE))
|
|
||||||
savedcflags="$CFLAGS"
|
|
||||||
CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS"
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_cc_hpux_cc_aa,
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[#include <sys/types.h>],
|
|
||||||
[int frob(int, char *)],
|
|
||||||
ac_cv_lbl_cc_hpux_cc_aa=yes,
|
|
||||||
ac_cv_lbl_cc_hpux_cc_aa=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_cc_hpux_cc_aa)
|
|
||||||
if test $ac_cv_lbl_cc_hpux_cc_aa = no ; then
|
|
||||||
AC_MSG_ERROR(see the INSTALL doc for more info)
|
|
||||||
fi
|
|
||||||
CFLAGS="$savedcflags"
|
|
||||||
$1="-Aa $$1"
|
|
||||||
AC_DEFINE(_HPUX_SOURCE)
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
AC_MSG_ERROR(see the INSTALL doc for more info)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
$2="$$2 -I/usr/local/include"
|
|
||||||
LDFLAGS="$LDFLAGS -L/usr/local/lib"
|
|
||||||
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
irix*)
|
|
||||||
$1="$$1 -xansi -signed -g3"
|
|
||||||
;;
|
|
||||||
|
|
||||||
osf*)
|
|
||||||
$1="$$1 -std1 -g3"
|
|
||||||
;;
|
|
||||||
|
|
||||||
ultrix*)
|
|
||||||
AC_MSG_CHECKING(that Ultrix $CC hacks const in prototypes)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_cc_const_proto,
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[#include <sys/types.h>],
|
|
||||||
[struct a { int b; };
|
|
||||||
void c(const struct a *)],
|
|
||||||
ac_cv_lbl_cc_const_proto=yes,
|
|
||||||
ac_cv_lbl_cc_const_proto=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_cc_const_proto)
|
|
||||||
if test $ac_cv_lbl_cc_const_proto = no ; then
|
|
||||||
AC_DEFINE(const,)
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Use pfopen.c if available and pfopen() not in standard libraries
|
|
||||||
dnl Require libpcap
|
|
||||||
dnl Look for libpcap in ..
|
|
||||||
dnl Use the installed libpcap if there is no local version
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_LIBPCAP(pcapdep, incls)
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl $1 (pcapdep set)
|
|
||||||
dnl $2 (incls appended)
|
|
||||||
dnl LIBS
|
|
||||||
dnl LDFLAGS
|
|
||||||
dnl LBL_LIBS
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_LIBPCAP,
|
|
||||||
[AC_REQUIRE([AC_LBL_LIBRARY_NET])
|
|
||||||
dnl
|
|
||||||
dnl save a copy before locating libpcap.a
|
|
||||||
dnl
|
|
||||||
LBL_LIBS="$LIBS"
|
|
||||||
pfopen=/usr/examples/packetfilter/pfopen.c
|
|
||||||
if test -f $pfopen ; then
|
|
||||||
AC_CHECK_FUNCS(pfopen)
|
|
||||||
if test $ac_cv_func_pfopen = "no" ; then
|
|
||||||
AC_MSG_RESULT(Using $pfopen)
|
|
||||||
LIBS="$LIBS $pfopen"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AC_MSG_CHECKING(for local pcap library)
|
|
||||||
libpcap=FAIL
|
|
||||||
lastdir=FAIL
|
|
||||||
places=`ls .. | sed -e 's,/$,,' -e 's,^,../,' | \
|
|
||||||
egrep '/libpcap-[[0-9]]*\.[[0-9]]*(\.[[0-9]]*)?([[ab]][[0-9]]*)?$'`
|
|
||||||
for dir in $places ../libpcap libpcap ; do
|
|
||||||
basedir=`echo $dir | sed -e 's/[[ab]][[0-9]]*$//'`
|
|
||||||
if test $lastdir = $basedir ; then
|
|
||||||
dnl skip alphas when an actual release is present
|
|
||||||
continue;
|
|
||||||
fi
|
|
||||||
lastdir=$dir
|
|
||||||
if test -r $dir/pcap.c ; then
|
|
||||||
libpcap=$dir/libpcap.a
|
|
||||||
d=$dir
|
|
||||||
dnl continue and select the last one that exists
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test "x$libpcap" = xFAIL ; then
|
|
||||||
AC_MSG_RESULT(not found)
|
|
||||||
unset ac_cv_lbl_lib_pcap_pcap_open_live_
|
|
||||||
AC_LBL_CHECK_LIB(pcap, pcap_open_live, libpcap="-lpcap")
|
|
||||||
if test "x$libpcap" = xFAIL ; then
|
|
||||||
unset ac_cv_lbl_lib_pcap_pcap_open_live_
|
|
||||||
CFLAGS="$CFLAGS -I/usr/local/include"
|
|
||||||
LIBS="$LIBS -L/usr/local/lib"
|
|
||||||
AC_LBL_CHECK_LIB(pcap, pcap_open_live, libpcap="-lpcap")
|
|
||||||
if test "x$libpcap" = xFAIL ; then
|
|
||||||
AC_MSG_ERROR(see the INSTALL doc for more info)
|
|
||||||
fi
|
|
||||||
$2="$$2 -I/usr/local/include"
|
|
||||||
fi
|
|
||||||
LIBS="$LIBS -lpcap"
|
|
||||||
else
|
|
||||||
$1=$libpcap
|
|
||||||
$2="-I$d $$2"
|
|
||||||
AC_MSG_RESULT($libpcap)
|
|
||||||
fi
|
|
||||||
if test "x$libpcap" != "x-lpcap" ; then
|
|
||||||
LIBS="$libpcap $LIBS"
|
|
||||||
fi
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
aix*)
|
|
||||||
pseexe="/lib/pse.exp"
|
|
||||||
AC_MSG_CHECKING(for $pseexe)
|
|
||||||
if test -f $pseexe ; then
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
LIBS="$LIBS -I:$pseexe"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Define RETSIGTYPE and RETSIGVAL
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_TYPE_SIGNAL
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl RETSIGTYPE (defined)
|
|
||||||
dnl RETSIGVAL (defined)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_TYPE_SIGNAL,
|
|
||||||
[AC_BEFORE([$0], [AC_LBL_LIBPCAP])
|
|
||||||
AC_TYPE_SIGNAL
|
|
||||||
if test "$ac_cv_type_signal" = void ; then
|
|
||||||
AC_DEFINE(RETSIGVAL,)
|
|
||||||
else
|
|
||||||
AC_DEFINE(RETSIGVAL,(0))
|
|
||||||
fi
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
irix*)
|
|
||||||
AC_DEFINE(_BSD_SIGNALS)
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
dnl prefer sigset() to sigaction()
|
|
||||||
AC_CHECK_FUNCS(sigset)
|
|
||||||
if test $ac_cv_func_sigset = yes ; then
|
|
||||||
AC_DEFINE(signal,sigset)
|
|
||||||
else
|
|
||||||
AC_CHECK_FUNCS(sigaction)
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl If using gcc, make sure we have ANSI ioctl definitions
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_FIXINCLUDES
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_FIXINCLUDES,
|
|
||||||
[if test "$GCC" = yes ; then
|
|
||||||
AC_MSG_CHECKING(for ANSI ioctl definitions)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_gcc_fixincludes,
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[/*
|
|
||||||
* This generates a "duplicate case value" when fixincludes
|
|
||||||
* has not be run.
|
|
||||||
*/
|
|
||||||
# include <sys/types.h>
|
|
||||||
# include <sys/time.h>
|
|
||||||
# include <sys/ioctl.h>
|
|
||||||
# ifdef HAVE_SYS_IOCCOM_H
|
|
||||||
# include <sys/ioccom.h>
|
|
||||||
# endif],
|
|
||||||
[switch (0) {
|
|
||||||
case _IO('A', 1):;
|
|
||||||
case _IO('B', 1):;
|
|
||||||
}],
|
|
||||||
ac_cv_lbl_gcc_fixincludes=yes,
|
|
||||||
ac_cv_lbl_gcc_fixincludes=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_gcc_fixincludes)
|
|
||||||
if test $ac_cv_lbl_gcc_fixincludes = no ; then
|
|
||||||
# Don't cache failure
|
|
||||||
unset ac_cv_lbl_gcc_fixincludes
|
|
||||||
AC_MSG_ERROR(see the INSTALL for more info)
|
|
||||||
fi
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Check for flex, default to lex
|
|
||||||
dnl Require flex 2.4 or higher
|
|
||||||
dnl Check for bison, default to yacc
|
|
||||||
dnl Default to lex/yacc if both flex and bison are not available
|
|
||||||
dnl Define the yy prefix string if using flex and bison
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_LEX_AND_YACC(lex, yacc, yyprefix)
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl $1 (lex set)
|
|
||||||
dnl $2 (yacc appended)
|
|
||||||
dnl $3 (optional flex and bison -P prefix)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_LEX_AND_YACC,
|
|
||||||
[AC_ARG_WITH(flex, [ --without-flex don't use flex])
|
|
||||||
AC_ARG_WITH(bison, [ --without-bison don't use bison])
|
|
||||||
if test "$with_flex" = no ; then
|
|
||||||
$1=lex
|
|
||||||
else
|
|
||||||
AC_CHECK_PROGS($1, flex, lex)
|
|
||||||
fi
|
|
||||||
if test "$$1" = flex ; then
|
|
||||||
# The -V flag was added in 2.4
|
|
||||||
AC_MSG_CHECKING(for flex 2.4 or higher)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_flex_v24,
|
|
||||||
if flex -V >/dev/null 2>&1; then
|
|
||||||
ac_cv_lbl_flex_v24=yes
|
|
||||||
else
|
|
||||||
ac_cv_lbl_flex_v24=no
|
|
||||||
fi)
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_flex_v24)
|
|
||||||
if test $ac_cv_lbl_flex_v24 = no ; then
|
|
||||||
s="2.4 or higher required"
|
|
||||||
AC_MSG_WARN(ignoring obsolete flex executable ($s))
|
|
||||||
$1=lex
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if test "$with_bison" = no ; then
|
|
||||||
$2=yacc
|
|
||||||
else
|
|
||||||
AC_CHECK_PROGS($2, bison, yacc)
|
|
||||||
fi
|
|
||||||
if test "$$2" = bison ; then
|
|
||||||
$2="$$2 -y"
|
|
||||||
fi
|
|
||||||
if test "$$1" != lex -a "$$2" = yacc -o "$$1" = lex -a "$$2" != yacc ; then
|
|
||||||
AC_MSG_WARN(don't have both flex and bison; reverting to lex/yacc)
|
|
||||||
$1=lex
|
|
||||||
$2=yacc
|
|
||||||
fi
|
|
||||||
if test "$$1" = flex -a -n "$3" ; then
|
|
||||||
$1="$$1 -P$3"
|
|
||||||
$2="$$2 -p $3"
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if union wait is used with WEXITSTATUS()
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_UNION_WAIT
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl DECLWAITSTATUS (defined)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_UNION_WAIT,
|
|
||||||
[AC_MSG_CHECKING(if union wait is used)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_union_wait,
|
|
||||||
AC_TRY_COMPILE([
|
|
||||||
# include <sys/types.h>
|
|
||||||
# include <sys/wait.h>],
|
|
||||||
[int status;
|
|
||||||
u_int i = WEXITSTATUS(status);
|
|
||||||
u_int j = waitpid(0, &status, 0);],
|
|
||||||
ac_cv_lbl_union_wait=no,
|
|
||||||
ac_cv_lbl_union_wait=yes))
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_union_wait)
|
|
||||||
if test $ac_cv_lbl_union_wait = yes ; then
|
|
||||||
AC_DEFINE(DECLWAITSTATUS,union wait)
|
|
||||||
else
|
|
||||||
AC_DEFINE(DECLWAITSTATUS,int)
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_SOCKADDR_SA_LEN
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl HAVE_SOCKADDR_SA_LEN (defined)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_SOCKADDR_SA_LEN,
|
|
||||||
[AC_MSG_CHECKING(if sockaddr struct has sa_len member)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_sockaddr_has_sa_len,
|
|
||||||
AC_TRY_COMPILE([
|
|
||||||
# include <sys/types.h>
|
|
||||||
# include <sys/socket.h>],
|
|
||||||
[u_int i = sizeof(((struct sockaddr *)0)->sa_len)],
|
|
||||||
ac_cv_lbl_sockaddr_has_sa_len=yes,
|
|
||||||
ac_cv_lbl_sockaddr_has_sa_len=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_sockaddr_has_sa_len)
|
|
||||||
if test $ac_cv_lbl_sockaddr_has_sa_len = yes ; then
|
|
||||||
AC_DEFINE(HAVE_SOCKADDR_SA_LEN)
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if the IFF_LOOPBACK exists as a define or enum
|
|
||||||
dnl
|
|
||||||
dnl (stupidly some versions of linux use an enum...)
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_IFF_LOOPBACK
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl HAVE_IFF_LOOPBACK (defined)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_IFF_LOOPBACK,
|
|
||||||
[AC_MSG_CHECKING(for IFF_LOOPBACK define/enum)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_have_iff_loopback,
|
|
||||||
AC_TRY_COMPILE([
|
|
||||||
# include <sys/param.h>
|
|
||||||
# include <sys/file.h>
|
|
||||||
# include <sys/ioctl.h>
|
|
||||||
# include <sys/socket.h>
|
|
||||||
# ifdef HAVE_SYS_SOCKIO_H
|
|
||||||
# include <sys/sockio.h>
|
|
||||||
# endif
|
|
||||||
# include <sys/time.h>
|
|
||||||
# include <net/if.h>
|
|
||||||
# include <netinet/in.h>],
|
|
||||||
[int i = IFF_LOOPBACK],
|
|
||||||
ac_cv_lbl_have_iff_loopback=yes,
|
|
||||||
ac_cv_lbl_have_iff_loopback=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_have_iff_loopback)
|
|
||||||
if test $ac_cv_lbl_have_iff_loopback = yes ; then
|
|
||||||
AC_DEFINE(HAVE_IFF_LOOPBACK)
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if -R is used
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_HAVE_RUN_PATH
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl ac_cv_lbl_have_run_path (yes or no)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_HAVE_RUN_PATH,
|
|
||||||
[AC_MSG_CHECKING(for ${CC-cc} -R)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_have_run_path,
|
|
||||||
[echo 'main(){}' > conftest.c
|
|
||||||
${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1
|
|
||||||
if test ! -s conftest.out ; then
|
|
||||||
ac_cv_lbl_have_run_path=yes
|
|
||||||
else
|
|
||||||
ac_cv_lbl_have_run_path=no
|
|
||||||
fi
|
|
||||||
rm -f conftest*])
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_have_run_path)
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Due to the stupid way it's implemented, AC_CHECK_TYPE is nearly useless.
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_CHECK_TYPE
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl int32_t (defined)
|
|
||||||
dnl u_int32_t (defined)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_CHECK_TYPE,
|
|
||||||
[AC_MSG_CHECKING(for $1 using $CC)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_have_$1,
|
|
||||||
AC_TRY_COMPILE([
|
|
||||||
# include "confdefs.h"
|
|
||||||
# include <sys/types.h>
|
|
||||||
# if STDC_HEADERS
|
|
||||||
# include <stdlib.h>
|
|
||||||
# include <stddef.h>
|
|
||||||
# endif],
|
|
||||||
[$1 i],
|
|
||||||
ac_cv_lbl_have_$1=yes,
|
|
||||||
ac_cv_lbl_have_$1=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_have_$1)
|
|
||||||
if test $ac_cv_lbl_have_$1 = no ; then
|
|
||||||
AC_DEFINE($1, $2)
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if unaligned memory accesses fail
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_UNALIGNED_ACCESS
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl LBL_ALIGN (DEFINED)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_UNALIGNED_ACCESS,
|
|
||||||
[AC_MSG_CHECKING(if unaligned accesses fail)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_unaligned_fail,
|
|
||||||
[case "$target_cpu" in
|
|
||||||
|
|
||||||
alpha|hp*|mips|sparc)
|
|
||||||
ac_cv_lbl_unaligned_fail=yes
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
cat >conftest.c <<EOF
|
|
||||||
# include <sys/types.h>
|
|
||||||
# include <sys/wait.h>
|
|
||||||
# include <stdio.h>
|
|
||||||
unsigned char a[[5]] = { 1, 2, 3, 4, 5 };
|
|
||||||
main() {
|
|
||||||
unsigned int i;
|
|
||||||
pid_t pid;
|
|
||||||
int status;
|
|
||||||
/* avoid "core dumped" message */
|
|
||||||
pid = fork();
|
|
||||||
if (pid < 0)
|
|
||||||
exit(2);
|
|
||||||
if (pid > 0) {
|
|
||||||
/* parent */
|
|
||||||
pid = waitpid(pid, &status, 0);
|
|
||||||
if (pid < 0)
|
|
||||||
exit(3);
|
|
||||||
exit(!WIFEXITED(status));
|
|
||||||
}
|
|
||||||
/* child */
|
|
||||||
i = *(unsigned int *)&a[[1]];
|
|
||||||
printf("%d\n", i);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \
|
|
||||||
conftest.c $LIBS >/dev/null 2>&1
|
|
||||||
if test ! -x conftest ; then
|
|
||||||
dnl failed to compile for some reason
|
|
||||||
ac_cv_lbl_unaligned_fail=yes
|
|
||||||
else
|
|
||||||
./conftest >conftest.out
|
|
||||||
if test ! -s conftest.out ; then
|
|
||||||
ac_cv_lbl_unaligned_fail=yes
|
|
||||||
else
|
|
||||||
ac_cv_lbl_unaligned_fail=no
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
rm -f conftest* core core.conftest
|
|
||||||
;;
|
|
||||||
esac])
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_unaligned_fail)
|
|
||||||
if test $ac_cv_lbl_unaligned_fail = yes ; then
|
|
||||||
AC_DEFINE(LBL_ALIGN)
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl add all warning option to CFLAGS
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_CHECK_WALL(copt)
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl $1 (copt appended)
|
|
||||||
dnl ac_cv_lbl_gcc_vers
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_CHECK_WALL,
|
|
||||||
[ if test "$GCC" = yes ; then
|
|
||||||
if test "$SHLICC2" = yes ; then
|
|
||||||
ac_cv_lbl_gcc_vers=2
|
|
||||||
$1="`echo $$1 | sed -e 's/-O/-O2/'`"
|
|
||||||
else
|
|
||||||
AC_MSG_CHECKING(gcc version)
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_gcc_vers,
|
|
||||||
ac_cv_lbl_gcc_vers=`$CC --version 2>&1 | \
|
|
||||||
sed -e 's/\..*//'`)
|
|
||||||
AC_MSG_RESULT($ac_cv_lbl_gcc_vers)
|
|
||||||
if test $ac_cv_lbl_gcc_vers -gt 1 ; then
|
|
||||||
$1="`echo $$1 | sed -e 's/-O/-O2/'`"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if test "${LBL_CFLAGS+set}" != set; then
|
|
||||||
if test "$ac_cv_prog_cc_g" = yes ; then
|
|
||||||
$1="-g $$1"
|
|
||||||
fi
|
|
||||||
$1="$$1 -Wall"
|
|
||||||
if test $ac_cv_lbl_gcc_vers -gt 1 ; then
|
|
||||||
$1="$$1 -Wmissing-prototypes -Wstrict-prototypes"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
irix6*)
|
|
||||||
$1="$$1 -fullwarn -n32"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl If using gcc and the file .devel exists:
|
|
||||||
dnl Compile with -g (if supported) and -Wall
|
|
||||||
dnl If using gcc 2, do extra prototype checking
|
|
||||||
dnl If an os prototype include exists, symlink os-proto.h to it
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_DEVEL(copt)
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl $1 (copt appended)
|
|
||||||
dnl HAVE_OS_PROTO_H (defined)
|
|
||||||
dnl os-proto.h (symlinked)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_DEVEL,
|
|
||||||
[rm -f os-proto.h
|
|
||||||
if test "${LBL_CFLAGS+set}" = set; then
|
|
||||||
$1="$$1 ${LBL_CFLAGS}"
|
|
||||||
fi
|
|
||||||
if test -f .devel ; then
|
|
||||||
AC_LBL_CHECK_WALL($1)
|
|
||||||
os=`echo $target_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'`
|
|
||||||
name="lbl/os-$os.h"
|
|
||||||
if test -f $name ; then
|
|
||||||
ln -s $name os-proto.h
|
|
||||||
AC_DEFINE(HAVE_OS_PROTO_H)
|
|
||||||
else
|
|
||||||
AC_MSG_WARN(can't find $name)
|
|
||||||
fi
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Improved version of AC_CHECK_LIB
|
|
||||||
dnl
|
|
||||||
dnl Thanks to John Hawkinson (jhawk@mit.edu)
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [,
|
|
||||||
dnl ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl LIBS
|
|
||||||
dnl
|
|
||||||
|
|
||||||
define(AC_LBL_CHECK_LIB,
|
|
||||||
[AC_MSG_CHECKING([for $2 in -l$1])
|
|
||||||
dnl Use a cache variable name containing both the library and function name,
|
|
||||||
dnl because the test really is for library $1 defining function $2, not
|
|
||||||
dnl just for library $1. Separate tests with the same $1 and different $2's
|
|
||||||
dnl may have different results.
|
|
||||||
ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'`
|
|
||||||
AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var,
|
|
||||||
[ac_save_LIBS="$LIBS"
|
|
||||||
LIBS="-l$1 $5 $LIBS"
|
|
||||||
AC_TRY_LINK(dnl
|
|
||||||
ifelse([$2], [main], , dnl Avoid conflicting decl of main.
|
|
||||||
[/* Override any gcc2 internal prototype to avoid an error. */
|
|
||||||
]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
#endif
|
|
||||||
])dnl
|
|
||||||
[/* We use char because int might match the return type of a gcc2
|
|
||||||
builtin and then its argument prototype would still apply. */
|
|
||||||
char $2();
|
|
||||||
]),
|
|
||||||
[$2()],
|
|
||||||
eval "ac_cv_lbl_lib_$ac_lib_var=yes",
|
|
||||||
eval "ac_cv_lbl_lib_$ac_lib_var=no")
|
|
||||||
LIBS="$ac_save_LIBS"
|
|
||||||
])dnl
|
|
||||||
if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
ifelse([$3], ,
|
|
||||||
[changequote(, )dnl
|
|
||||||
ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
|
|
||||||
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
|
|
||||||
changequote([, ])dnl
|
|
||||||
AC_DEFINE_UNQUOTED($ac_tr_lib)
|
|
||||||
LIBS="-l$1 $LIBS"
|
|
||||||
], [$3])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
ifelse([$4], , , [$4
|
|
||||||
])dnl
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_LIBRARY_NET
|
|
||||||
dnl
|
|
||||||
dnl This test is for network applications that need socket() and
|
|
||||||
dnl gethostbyname() -ish functions. Under Solaris, those applications
|
|
||||||
dnl need to link with "-lsocket -lnsl". Under IRIX, they need to link
|
|
||||||
dnl with "-lnsl" but should *not* link with "-lsocket" because
|
|
||||||
dnl libsocket.a breaks a number of things (for instance:
|
|
||||||
dnl gethostbyname() under IRIX 5.2, and snoop sockets under most
|
|
||||||
dnl versions of IRIX).
|
|
||||||
dnl
|
|
||||||
dnl Unfortunately, many application developers are not aware of this,
|
|
||||||
dnl and mistakenly write tests that cause -lsocket to be used under
|
|
||||||
dnl IRIX. It is also easy to write tests that cause -lnsl to be used
|
|
||||||
dnl under operating systems where neither are necessary (or useful),
|
|
||||||
dnl such as SunOS 4.1.4, which uses -lnsl for TLI.
|
|
||||||
dnl
|
|
||||||
dnl This test exists so that every application developer does not test
|
|
||||||
dnl this in a different, and subtly broken fashion.
|
|
||||||
|
|
||||||
dnl It has been argued that this test should be broken up into two
|
|
||||||
dnl seperate tests, one for the resolver libraries, and one for the
|
|
||||||
dnl libraries necessary for using Sockets API. Unfortunately, the two
|
|
||||||
dnl are carefully intertwined and allowing the autoconf user to use
|
|
||||||
dnl them independantly potentially results in unfortunate ordering
|
|
||||||
dnl dependancies -- as such, such component macros would have to
|
|
||||||
dnl carefully use indirection and be aware if the other components were
|
|
||||||
dnl executed. Since other autoconf macros do not go to this trouble,
|
|
||||||
dnl and almost no applications use sockets without the resolver, this
|
|
||||||
dnl complexity has not been implemented.
|
|
||||||
dnl
|
|
||||||
dnl The check for libresolv is in case you are attempting to link
|
|
||||||
dnl statically and happen to have a libresolv.a lying around (and no
|
|
||||||
dnl libnsl.a).
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_LIBRARY_NET, [
|
|
||||||
# Most operating systems have gethostbyname() in the default searched
|
|
||||||
# libraries (i.e. libc):
|
|
||||||
AC_CHECK_FUNC(gethostbyname, ,
|
|
||||||
# Some OSes (eg. Solaris) place it in libnsl:
|
|
||||||
AC_LBL_CHECK_LIB(nsl, gethostbyname, ,
|
|
||||||
# Some strange OSes (SINIX) have it in libsocket:
|
|
||||||
AC_LBL_CHECK_LIB(socket, gethostbyname, ,
|
|
||||||
# Unfortunately libsocket sometimes depends on libnsl.
|
|
||||||
# AC_CHECK_LIB's API is essentially broken so the
|
|
||||||
# following ugliness is necessary:
|
|
||||||
AC_LBL_CHECK_LIB(socket, gethostbyname,
|
|
||||||
LIBS="-lsocket -lnsl $LIBS",
|
|
||||||
AC_CHECK_LIB(resolv, gethostbyname),
|
|
||||||
-lnsl))))
|
|
||||||
AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, ,
|
|
||||||
AC_LBL_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", ,
|
|
||||||
-lnsl)))
|
|
||||||
# DLPI needs putmsg under HPUX so test for -lstr while we're at it
|
|
||||||
AC_CHECK_LIB(str, putmsg)
|
|
||||||
])
|
|
@ -1,494 +0,0 @@
|
|||||||
dnl @(#) $Header: acsite.m4,v 1.38 96/09/26 21:18:41 leres Exp $ (LBL)
|
|
||||||
dnl
|
|
||||||
dnl Copyright (c) 1995, 1996
|
|
||||||
dnl The Regents of the University of California. All rights reserved.
|
|
||||||
dnl
|
|
||||||
dnl Redistribution and use in source and binary forms, with or without
|
|
||||||
dnl modification, are permitted provided that: (1) source code distributions
|
|
||||||
dnl retain the above copyright notice and this paragraph in its entirety, (2)
|
|
||||||
dnl distributions including binary code include the above copyright notice and
|
|
||||||
dnl this paragraph in its entirety in the documentation or other materials
|
|
||||||
dnl provided with the distribution, and (3) all advertising materials mentioning
|
|
||||||
dnl features or use of this software display the following acknowledgement:
|
|
||||||
dnl ``This product includes software developed by the University of California,
|
|
||||||
dnl Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
|
|
||||||
dnl the University nor the names of its contributors may be used to endorse
|
|
||||||
dnl or promote products derived from this software without specific prior
|
|
||||||
dnl written permission.
|
|
||||||
dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
||||||
dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
||||||
dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
dnl
|
|
||||||
dnl LBL autoconf macros
|
|
||||||
dnl
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Determine which compiler we're using (cc or gcc)
|
|
||||||
dnl If using gcc, determine the version number
|
|
||||||
dnl If using cc, require that it support ansi prototypes
|
|
||||||
dnl If using gcc, use -O2 (otherwise use -O)
|
|
||||||
dnl If using cc, explicitly specify /usr/local/include
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_C_INIT(copt, incls)
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl $1 (copt set)
|
|
||||||
dnl $2 (incls set)
|
|
||||||
dnl CC
|
|
||||||
dnl ac_cv_gcc_vers
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_C_INIT,
|
|
||||||
[$1=-O
|
|
||||||
$2=""
|
|
||||||
if test -z "$CC" ; then
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
bsdi*)
|
|
||||||
AC_CHECK_PROG(SHLICC2, shlicc2, yes, no)
|
|
||||||
if test $SHLICC2 = yes ; then
|
|
||||||
CC=shlicc2
|
|
||||||
export CC
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
AC_PROG_CC
|
|
||||||
if test $ac_cv_prog_gcc = yes ; then
|
|
||||||
if test "$SHLICC2" = yes ; then
|
|
||||||
ac_cv_gcc_vers=2
|
|
||||||
$1=-O2
|
|
||||||
else
|
|
||||||
AC_MSG_CHECKING(gcc version)
|
|
||||||
AC_CACHE_VAL(ac_cv_gcc_vers,
|
|
||||||
ac_cv_gcc_vers=`$CC -v 2>&1 | \
|
|
||||||
sed -n -e '$s/.* //' -e '$s/\..*//p'`)
|
|
||||||
AC_MSG_RESULT($ac_cv_gcc_vers)
|
|
||||||
if test $ac_cv_gcc_vers -gt 1 ; then
|
|
||||||
$1=-O2
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
AC_MSG_CHECKING(that $CC handles ansi prototypes)
|
|
||||||
AC_CACHE_VAL(ac_cv_cc_ansi_prototypes,
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[#include <sys/types.h>],
|
|
||||||
[int frob(int, char *)],
|
|
||||||
ac_cv_cc_ansi_prototypes=yes,
|
|
||||||
ac_cv_cc_ansi_prototypes=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_cc_ansi_prototypes)
|
|
||||||
if test $ac_cv_cc_ansi_prototypes = no ; then
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
hpux*)
|
|
||||||
AC_MSG_CHECKING(for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE))
|
|
||||||
savedcflags="$CFLAGS"
|
|
||||||
CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS"
|
|
||||||
AC_CACHE_VAL(ac_cv_cc_hpux_cc_aa,
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[#include <sys/types.h>],
|
|
||||||
[int frob(int, char *)],
|
|
||||||
ac_cv_cc_hpux_cc_aa=yes,
|
|
||||||
ac_cv_cc_hpux_cc_aa=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_cc_hpux_cc_aa)
|
|
||||||
if test $ac_cv_cc_hpux_cc_aa = no ; then
|
|
||||||
AC_MSG_ERROR(see the INSTALL for more info)
|
|
||||||
fi
|
|
||||||
CFLAGS="$savedcflags"
|
|
||||||
V_CCOPT="-Aa $V_CCOPT"
|
|
||||||
AC_DEFINE(_HPUX_SOURCE)
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
AC_MSG_ERROR(see the INSTALL for more info)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
$2=-I/usr/local/include
|
|
||||||
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
irix*)
|
|
||||||
V_CCOPT="$V_CCOPT -xansi -signed -g3"
|
|
||||||
;;
|
|
||||||
|
|
||||||
osf*)
|
|
||||||
V_CCOPT="$V_CCOPT -g3"
|
|
||||||
;;
|
|
||||||
|
|
||||||
ultrix*)
|
|
||||||
AC_MSG_CHECKING(that Ultrix $CC hacks const in prototypes)
|
|
||||||
AC_CACHE_VAL(ac_cv_cc_const_proto,
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[#include <sys/types.h>],
|
|
||||||
[struct a { int b; };
|
|
||||||
void c(const struct a *)],
|
|
||||||
ac_cv_cc_const_proto=yes,
|
|
||||||
ac_cv_cc_const_proto=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_cc_const_proto)
|
|
||||||
if test $ac_cv_cc_const_proto = no ; then
|
|
||||||
AC_DEFINE(const,)
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Use pfopen.c if available and pfopen() not in standard libraries
|
|
||||||
dnl Require libpcap
|
|
||||||
dnl Look for libpcap in ..
|
|
||||||
dnl Use the installed libpcap if there is no local version
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_LIBPCAP(pcapdep, incls)
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl $1 (pcapdep set)
|
|
||||||
dnl $2 (incls appended)
|
|
||||||
dnl LIBS
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_LIBPCAP,
|
|
||||||
[pfopen=/usr/examples/packetfilter/pfopen.c
|
|
||||||
if test -f $pfopen ; then
|
|
||||||
AC_CHECK_FUNCS(pfopen)
|
|
||||||
if test $ac_cv_func_pfopen = "no" ; then
|
|
||||||
AC_MSG_RESULT(Using $pfopen)
|
|
||||||
LIBS="$LIBS $pfopen"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AC_MSG_CHECKING(for local pcap library)
|
|
||||||
libpcap=FAIL
|
|
||||||
lastdir=FAIL
|
|
||||||
places=`ls .. | sed -e 's,/$,,' -e 's,^,../,' | \
|
|
||||||
egrep '/libpcap-[[0-9]]*\.[[0-9]]*(\.[[0-9]]*)?([[ab]][[0-9]]*)?$'`
|
|
||||||
for dir in $places ../libpcap libpcap ; do
|
|
||||||
basedir=`echo $dir | sed -e 's/[[ab]][[0-9]]*$//'`
|
|
||||||
if test $lastdir = $basedir ; then
|
|
||||||
dnl skip alphas when an actual release is present
|
|
||||||
continue;
|
|
||||||
fi
|
|
||||||
lastdir=$dir
|
|
||||||
if test -r $dir/pcap.c ; then
|
|
||||||
libpcap=$dir/libpcap.a
|
|
||||||
d=$dir
|
|
||||||
dnl continue and select the last one that exists
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test $libpcap = FAIL ; then
|
|
||||||
AC_MSG_RESULT(not found)
|
|
||||||
AC_CHECK_LIB(pcap, main, libpcap="-lpcap")
|
|
||||||
if test $libpcap = FAIL ; then
|
|
||||||
AC_MSG_ERROR(see the INSTALL doc for more info)
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
$1=$libpcap
|
|
||||||
$2="-I$d $$2"
|
|
||||||
AC_MSG_RESULT($libpcap)
|
|
||||||
fi
|
|
||||||
LIBS="$libpcap $LIBS"])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Define RETSIGTYPE and RETSIGVAL
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_TYPE_SIGNAL
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl RETSIGTYPE (defined)
|
|
||||||
dnl RETSIGVAL (defined)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_TYPE_SIGNAL,
|
|
||||||
[AC_TYPE_SIGNAL
|
|
||||||
if test "$ac_cv_type_signal" = void ; then
|
|
||||||
AC_DEFINE(RETSIGVAL,)
|
|
||||||
else
|
|
||||||
AC_DEFINE(RETSIGVAL,(0))
|
|
||||||
fi
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
irix*)
|
|
||||||
AC_DEFINE(_BSD_SIGNALS)
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
AC_CHECK_FUNCS(sigset)
|
|
||||||
if test $ac_cv_func_sigset = yes ; then
|
|
||||||
AC_DEFINE(signal, sigset)
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl If using gcc, see if fixincludes should be run
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_FIXINCLUDES
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_FIXINCLUDES,
|
|
||||||
[if test $ac_cv_prog_gcc = yes ; then
|
|
||||||
AC_MSG_CHECKING(if fixincludes is needed)
|
|
||||||
AC_CACHE_VAL(ac_cv_gcc_fixincludes,
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[/*
|
|
||||||
* This generates a "duplicate case value" when fixincludes
|
|
||||||
* has not be run.
|
|
||||||
*/
|
|
||||||
# include <sys/types.h>
|
|
||||||
# include <sys/time.h>
|
|
||||||
# include <sys/ioctl.h>
|
|
||||||
# ifdef HAVE_SYS_IOCCOM_H
|
|
||||||
# include <sys/ioccom.h>
|
|
||||||
# endif],
|
|
||||||
[switch (0) {
|
|
||||||
case _IO('A', 1):;
|
|
||||||
case _IO('B', 1):;
|
|
||||||
}],
|
|
||||||
ac_cv_gcc_fixincludes=yes,
|
|
||||||
ac_cv_gcc_fixincludes=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_gcc_fixincludes)
|
|
||||||
if test $ac_cv_gcc_fixincludes = no ; then
|
|
||||||
# Don't cache failure
|
|
||||||
unset ac_cv_gcc_fixincludes
|
|
||||||
AC_MSG_ERROR(see the INSTALL for more info)
|
|
||||||
fi
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Check for flex, default to lex
|
|
||||||
dnl Require flex 2.4 or higher
|
|
||||||
dnl Check for bison, default to yacc
|
|
||||||
dnl Default to lex/yacc if both flex and bison are not available
|
|
||||||
dnl Define the yy prefix string if using flex and bison
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_LEX_AND_YACC(lex, yacc, yyprefix)
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl $1 (lex set)
|
|
||||||
dnl $2 (yacc appended)
|
|
||||||
dnl $3 (optional flex and bison -P prefix)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_LEX_AND_YACC,
|
|
||||||
[AC_CHECK_PROGS($1, flex, lex)
|
|
||||||
if test "$$1" = flex ; then
|
|
||||||
# The -V flag was added in 2.4
|
|
||||||
AC_MSG_CHECKING(for flex 2.4 or higher)
|
|
||||||
AC_CACHE_VAL(ac_cv_flex_v24,
|
|
||||||
if flex -V >/dev/null 2>&1; then
|
|
||||||
ac_cv_flex_v24=yes
|
|
||||||
else
|
|
||||||
ac_cv_flex_v24=no
|
|
||||||
fi)
|
|
||||||
AC_MSG_RESULT($ac_cv_flex_v24)
|
|
||||||
if test $ac_cv_flex_v24 = no ; then
|
|
||||||
s="2.4 or higher required"
|
|
||||||
AC_MSG_WARN(ignoring obsolete flex executable ($s))
|
|
||||||
$1=lex
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AC_CHECK_PROGS($2, bison, yacc)
|
|
||||||
if test "$$2" = bison ; then
|
|
||||||
$2="$$2 -y"
|
|
||||||
fi
|
|
||||||
if test "$$1" != lex -a "$$2" = yacc -o "$$1" = lex -a "$$2" != yacc ; then
|
|
||||||
AC_MSG_WARN(don't have both flex and bison; reverting to lex/yacc)
|
|
||||||
$1=lex
|
|
||||||
$2=yacc
|
|
||||||
fi
|
|
||||||
if test "$$1" = flex -a -n "$3" ; then
|
|
||||||
$1="$$1 -P$3"
|
|
||||||
$2="$$2 -p $3"
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if union wait is used with WEXITSTATUS()
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_UNION_WAIT
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl DECLWAITSTATUS (defined)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_UNION_WAIT,
|
|
||||||
[AC_MSG_CHECKING(if union wait is used)
|
|
||||||
AC_CACHE_VAL(ac_cv_union_wait,
|
|
||||||
AC_TRY_COMPILE([
|
|
||||||
# include <sys/types.h>
|
|
||||||
# include <sys/wait.h>],
|
|
||||||
[int status;
|
|
||||||
u_int i = WEXITSTATUS(status);
|
|
||||||
u_int j = waitpid(0, &status, 0);],
|
|
||||||
ac_cv_union_wait=no,
|
|
||||||
ac_cv_union_wait=yes))
|
|
||||||
AC_MSG_RESULT($ac_cv_union_wait)
|
|
||||||
if test $ac_cv_union_wait = yes ; then
|
|
||||||
AC_DEFINE(DECLWAITSTATUS,union wait)
|
|
||||||
else
|
|
||||||
AC_DEFINE(DECLWAITSTATUS,int)
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_SOCKADDR_SA_LEN
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl HAVE_SOCKADDR_SA_LEN (defined)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_SOCKADDR_SA_LEN,
|
|
||||||
[AC_MSG_CHECKING(if sockaddr struct has sa_len member)
|
|
||||||
AC_CACHE_VAL(ac_cv_sockaddr_has_sa_len,
|
|
||||||
AC_TRY_COMPILE([
|
|
||||||
# include <sys/types.h>
|
|
||||||
# include <sys/socket.h>],
|
|
||||||
[u_int i = sizeof(((struct sockaddr *)0)->sa_len)],
|
|
||||||
ac_cv_sockaddr_has_sa_len=yes,
|
|
||||||
ac_cv_sockaddr_has_sa_len=no))
|
|
||||||
AC_MSG_RESULT($ac_cv_sockaddr_has_sa_len)
|
|
||||||
if test $ac_cv_sockaddr_has_sa_len = yes ; then
|
|
||||||
AC_DEFINE(HAVE_SOCKADDR_SA_LEN)
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if -R is used
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_HAVE_RUN_PATH
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl ac_cv_have_run_path (yes or no)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_HAVE_RUN_PATH,
|
|
||||||
[AC_MSG_CHECKING(for ${CC-cc} -R)
|
|
||||||
AC_CACHE_VAL(ac_cv_have_run_path,
|
|
||||||
[echo 'main(){}' > conftest.c
|
|
||||||
${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1
|
|
||||||
if test ! -s conftest.out ; then
|
|
||||||
ac_cv_have_run_path=yes
|
|
||||||
else
|
|
||||||
ac_cv_have_run_path=no
|
|
||||||
fi
|
|
||||||
rm -f conftest*])
|
|
||||||
AC_MSG_RESULT($ac_cv_have_run_path)
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Checks to see if unaligned memory accesses fail
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_UNALIGNED_ACCESS
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl LBL_ALIGN (DEFINED)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_UNALIGNED_ACCESS,
|
|
||||||
[AC_MSG_CHECKING(if unaligned accesses fail)
|
|
||||||
AC_CACHE_VAL(ac_cv_unaligned_fail,
|
|
||||||
[case "$target_cpu" in
|
|
||||||
|
|
||||||
alpha|hp*|mips|sparc)
|
|
||||||
ac_cv_unaligned_fail=yes
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
cat >conftest.c <<EOF
|
|
||||||
# include <sys/types.h>
|
|
||||||
# include <sys/wait.h>
|
|
||||||
# include <stdio.h>
|
|
||||||
unsigned char a[[5]] = { 1, 2, 3, 4, 5 };
|
|
||||||
main() {
|
|
||||||
unsigned int i;
|
|
||||||
pid_t pid;
|
|
||||||
int status;
|
|
||||||
/* avoid "core dumped" message */
|
|
||||||
pid = fork();
|
|
||||||
if (pid < 0)
|
|
||||||
exit(2);
|
|
||||||
if (pid > 0) {
|
|
||||||
/* parent */
|
|
||||||
pid = waitpid(pid, &status, 0);
|
|
||||||
if (pid < 0)
|
|
||||||
exit(3);
|
|
||||||
exit(!WIFEXITED(status));
|
|
||||||
}
|
|
||||||
/* child */
|
|
||||||
i = *(unsigned int *)&a[[1]];
|
|
||||||
printf("%d\n", i);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \
|
|
||||||
conftest.c $LIBS >/dev/null 2>&1
|
|
||||||
if test ! -x conftest ; then
|
|
||||||
dnl failed to compile for some reason
|
|
||||||
ac_cv_unaligned_fail=yes
|
|
||||||
else
|
|
||||||
./conftest >conftest.out
|
|
||||||
if test ! -s conftest.out ; then
|
|
||||||
ac_cv_unaligned_fail=yes
|
|
||||||
else
|
|
||||||
ac_cv_unaligned_fail=no
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
rm -f conftest* core core.conftest
|
|
||||||
;;
|
|
||||||
esac])
|
|
||||||
AC_MSG_RESULT($ac_cv_unaligned_fail)
|
|
||||||
if test $ac_cv_unaligned_fail = yes ; then
|
|
||||||
AC_DEFINE(LBL_ALIGN)
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl If using gcc and the file .devel exists:
|
|
||||||
dnl Compile with -g (if supported) and -Wall
|
|
||||||
dnl If using gcc 2, do extra prototype checking
|
|
||||||
dnl If an os prototype include exists, symlink os-proto.h to it
|
|
||||||
dnl
|
|
||||||
dnl usage:
|
|
||||||
dnl
|
|
||||||
dnl AC_LBL_DEVEL(copt)
|
|
||||||
dnl
|
|
||||||
dnl results:
|
|
||||||
dnl
|
|
||||||
dnl $1 (copt appended)
|
|
||||||
dnl HAVE_OS_PROTO_H (defined)
|
|
||||||
dnl os-proto.h (symlinked)
|
|
||||||
dnl
|
|
||||||
AC_DEFUN(AC_LBL_DEVEL,
|
|
||||||
[rm -f os-proto.h
|
|
||||||
if test $ac_cv_prog_gcc = yes -a -f .devel ; then
|
|
||||||
if test $ac_cv_prog_gcc_g = yes ; then
|
|
||||||
$1="-g $$1"
|
|
||||||
fi
|
|
||||||
$1="$$1 -Wall"
|
|
||||||
if test $ac_cv_gcc_vers -gt 1 ; then
|
|
||||||
$1="$$1 -Wmissing-prototypes -Wstrict-prototypes"
|
|
||||||
fi
|
|
||||||
os=`echo $target_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'`
|
|
||||||
name="lbl/os-$os.h"
|
|
||||||
if test -f $name ; then
|
|
||||||
ln -s $name os-proto.h
|
|
||||||
AC_DEFINE(HAVE_OS_PROTO_H)
|
|
||||||
else
|
|
||||||
AC_MSG_WARN(can't find $name)
|
|
||||||
fi
|
|
||||||
fi])
|
|
693
contrib/traceroute/config.guess
vendored
693
contrib/traceroute/config.guess
vendored
@ -1,693 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# Attempt to guess a canonical system name.
|
|
||||||
# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
# General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
# configuration script generated by Autoconf, you may include it under
|
|
||||||
# the same distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# Written by Per Bothner <bothner@cygnus.com>.
|
|
||||||
# The master version of this file is at the FSF in /home/gd/gnu/lib.
|
|
||||||
#
|
|
||||||
# This script attempts to guess a canonical system name similar to
|
|
||||||
# config.sub. If it succeeds, it prints the system name on stdout, and
|
|
||||||
# exits with 0. Otherwise, it exits with 1.
|
|
||||||
#
|
|
||||||
# The plan is that this can be called by configure scripts if you
|
|
||||||
# don't specify an explicit system type (host/target name).
|
|
||||||
#
|
|
||||||
# Only a few systems have been added to this list; please add others
|
|
||||||
# (but try to keep the structure clean).
|
|
||||||
#
|
|
||||||
|
|
||||||
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
|
|
||||||
# (ghazi@noc.rutgers.edu 8/24/94.)
|
|
||||||
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
|
|
||||||
PATH=$PATH:/.attbin ; export PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
|
|
||||||
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
|
|
||||||
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
|
|
||||||
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
|
||||||
|
|
||||||
trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
|
|
||||||
|
|
||||||
# Note: order is significant - the case branches are not exclusive.
|
|
||||||
|
|
||||||
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
||||||
alpha:OSF1:*:*)
|
|
||||||
# A Vn.n version is a released version.
|
|
||||||
# A Tn.n version is a released field test version.
|
|
||||||
# A Xn.n version is an unreleased experimental baselevel.
|
|
||||||
# 1.2 uses "1.2" for uname -r.
|
|
||||||
echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'`
|
|
||||||
exit 0 ;;
|
|
||||||
21064:Windows_NT:50:3)
|
|
||||||
echo alpha-dec-winnt3.5
|
|
||||||
exit 0 ;;
|
|
||||||
Amiga*:UNIX_System_V:4.0:*)
|
|
||||||
echo m68k-cbm-sysv4
|
|
||||||
exit 0;;
|
|
||||||
amiga:NetBSD:*:*)
|
|
||||||
echo m68k-cbm-netbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
amiga:OpenBSD:*:*)
|
|
||||||
echo m68k-cbm-openbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
|
||||||
echo arm-acorn-riscix${UNAME_RELEASE}
|
|
||||||
exit 0;;
|
|
||||||
Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
|
|
||||||
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
|
|
||||||
if test "`(/bin/universe) 2>/dev/null`" = att ; then
|
|
||||||
echo pyramid-pyramid-sysv3
|
|
||||||
else
|
|
||||||
echo pyramid-pyramid-bsd
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
NILE:*:*:dcosx)
|
|
||||||
echo pyramid-pyramid-svr4
|
|
||||||
exit 0 ;;
|
|
||||||
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
|
||||||
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
|
||||||
exit 0 ;;
|
|
||||||
i86pc:SunOS:5.*:*)
|
|
||||||
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
|
||||||
exit 0 ;;
|
|
||||||
sun4*:SunOS:6*:*)
|
|
||||||
# According to config.sub, this is the proper way to canonicalize
|
|
||||||
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
|
|
||||||
# it's likely to be more like Solaris than SunOS4.
|
|
||||||
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
|
||||||
exit 0 ;;
|
|
||||||
sun4*:SunOS:*:*)
|
|
||||||
case "`/usr/bin/arch -k`" in
|
|
||||||
Series*|S4*)
|
|
||||||
UNAME_RELEASE=`uname -v`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
# Japanese Language versions have a version number like `4.1.3-JL'.
|
|
||||||
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
|
|
||||||
exit 0 ;;
|
|
||||||
sun3*:SunOS:*:*)
|
|
||||||
echo m68k-sun-sunos${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
aushp:SunOS:*:*)
|
|
||||||
echo sparc-auspex-sunos${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
atari*:NetBSD:*:*)
|
|
||||||
echo m68k-atari-netbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
atari*:OpenBSD:*:*)
|
|
||||||
echo m68k-atari-openbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
sun3*:NetBSD:*:*)
|
|
||||||
echo m68k-sun-netbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
sun3*:OpenBSD:*:*)
|
|
||||||
echo m68k-sun-openbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
mac68k:NetBSD:*:*)
|
|
||||||
echo m68k-apple-netbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
mac68k:OpenBSD:*:*)
|
|
||||||
echo m68k-apple-openbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
powerpc:machten:*:*)
|
|
||||||
echo powerpc-apple-machten${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
RISC*:Mach:*:*)
|
|
||||||
echo mips-dec-mach_bsd4.3
|
|
||||||
exit 0 ;;
|
|
||||||
RISC*:ULTRIX:*:*)
|
|
||||||
echo mips-dec-ultrix${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
VAX*:ULTRIX*:*:*)
|
|
||||||
echo vax-dec-ultrix${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
mips:*:*:UMIPS | mips:*:*:RISCos)
|
|
||||||
sed 's/^ //' << EOF >dummy.c
|
|
||||||
int main (argc, argv) int argc; char **argv; {
|
|
||||||
#if defined (host_mips) && defined (MIPSEB)
|
|
||||||
#if defined (SYSTYPE_SYSV)
|
|
||||||
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
|
|
||||||
#endif
|
|
||||||
#if defined (SYSTYPE_SVR4)
|
|
||||||
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
|
|
||||||
#endif
|
|
||||||
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
|
|
||||||
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
exit (-1);
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
${CC-cc} dummy.c -o dummy \
|
|
||||||
&& ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
|
|
||||||
&& rm dummy.c dummy && exit 0
|
|
||||||
rm -f dummy.c dummy
|
|
||||||
echo mips-mips-riscos${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
Night_Hawk:Power_UNIX:*:*)
|
|
||||||
echo powerpc-harris-powerunix
|
|
||||||
exit 0 ;;
|
|
||||||
m88k:CX/UX:7*:*)
|
|
||||||
echo m88k-harris-cxux7
|
|
||||||
exit 0 ;;
|
|
||||||
m88k:*:4*:R4*)
|
|
||||||
echo m88k-motorola-sysv4
|
|
||||||
exit 0 ;;
|
|
||||||
m88k:*:3*:R3*)
|
|
||||||
echo m88k-motorola-sysv3
|
|
||||||
exit 0 ;;
|
|
||||||
AViiON:dgux:*:*)
|
|
||||||
# DG/UX returns AViiON for all architectures
|
|
||||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
|
||||||
if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
|
|
||||||
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
|
|
||||||
-o ${TARGET_BINARY_INTERFACE}x = x ] ; then
|
|
||||||
echo m88k-dg-dgux${UNAME_RELEASE}
|
|
||||||
else
|
|
||||||
echo m88k-dg-dguxbcs${UNAME_RELEASE}
|
|
||||||
fi
|
|
||||||
else echo i586-dg-dgux${UNAME_RELEASE}
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
|
|
||||||
echo m88k-dolphin-sysv3
|
|
||||||
exit 0 ;;
|
|
||||||
M88*:*:R3*:*)
|
|
||||||
# Delta 88k system running SVR3
|
|
||||||
echo m88k-motorola-sysv3
|
|
||||||
exit 0 ;;
|
|
||||||
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
|
|
||||||
echo m88k-tektronix-sysv3
|
|
||||||
exit 0 ;;
|
|
||||||
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
|
|
||||||
echo m68k-tektronix-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
*:IRIX*:*:*)
|
|
||||||
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
|
|
||||||
exit 0 ;;
|
|
||||||
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
|
|
||||||
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
|
|
||||||
exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
|
|
||||||
i?86:AIX:*:*)
|
|
||||||
echo i386-ibm-aix
|
|
||||||
exit 0 ;;
|
|
||||||
*:AIX:2:3)
|
|
||||||
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
|
|
||||||
sed 's/^ //' << EOF >dummy.c
|
|
||||||
#include <sys/systemcfg.h>
|
|
||||||
|
|
||||||
main()
|
|
||||||
{
|
|
||||||
if (!__power_pc())
|
|
||||||
exit(1);
|
|
||||||
puts("powerpc-ibm-aix3.2.5");
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
|
|
||||||
rm -f dummy.c dummy
|
|
||||||
echo rs6000-ibm-aix3.2.5
|
|
||||||
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
|
|
||||||
echo rs6000-ibm-aix3.2.4
|
|
||||||
else
|
|
||||||
echo rs6000-ibm-aix3.2
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
*:AIX:*:4)
|
|
||||||
if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
|
|
||||||
IBM_ARCH=rs6000
|
|
||||||
else
|
|
||||||
IBM_ARCH=powerpc
|
|
||||||
fi
|
|
||||||
if [ -x /usr/bin/oslevel ] ; then
|
|
||||||
IBM_REV=`/usr/bin/oslevel`
|
|
||||||
else
|
|
||||||
IBM_REV=4.${UNAME_RELEASE}
|
|
||||||
fi
|
|
||||||
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
|
|
||||||
exit 0 ;;
|
|
||||||
*:AIX:*:*)
|
|
||||||
echo rs6000-ibm-aix
|
|
||||||
exit 0 ;;
|
|
||||||
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
|
|
||||||
echo romp-ibm-bsd4.4
|
|
||||||
exit 0 ;;
|
|
||||||
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
|
|
||||||
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
|
|
||||||
exit 0 ;; # report: romp-ibm BSD 4.3
|
|
||||||
*:BOSX:*:*)
|
|
||||||
echo rs6000-bull-bosx
|
|
||||||
exit 0 ;;
|
|
||||||
DPX/2?00:B.O.S.:*:*)
|
|
||||||
echo m68k-bull-sysv3
|
|
||||||
exit 0 ;;
|
|
||||||
9000/[34]??:4.3bsd:1.*:*)
|
|
||||||
echo m68k-hp-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
|
|
||||||
echo m68k-hp-bsd4.4
|
|
||||||
exit 0 ;;
|
|
||||||
9000/[3478]??:HP-UX:*:*)
|
|
||||||
case "${UNAME_MACHINE}" in
|
|
||||||
9000/31? ) HP_ARCH=m68000 ;;
|
|
||||||
9000/[34]?? ) HP_ARCH=m68k ;;
|
|
||||||
9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
|
|
||||||
9000/8?? ) HP_ARCH=hppa1.0 ;;
|
|
||||||
esac
|
|
||||||
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
|
|
||||||
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
|
|
||||||
exit 0 ;;
|
|
||||||
3050*:HI-UX:*:*)
|
|
||||||
sed 's/^ //' << EOF >dummy.c
|
|
||||||
#include <unistd.h>
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
long cpu = sysconf (_SC_CPU_VERSION);
|
|
||||||
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
|
|
||||||
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
|
|
||||||
results, however. */
|
|
||||||
if (CPU_IS_PA_RISC (cpu))
|
|
||||||
{
|
|
||||||
switch (cpu)
|
|
||||||
{
|
|
||||||
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
|
|
||||||
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
|
|
||||||
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
|
|
||||||
default: puts ("hppa-hitachi-hiuxwe2"); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (CPU_IS_HP_MC68K (cpu))
|
|
||||||
puts ("m68k-hitachi-hiuxwe2");
|
|
||||||
else puts ("unknown-hitachi-hiuxwe2");
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
|
|
||||||
rm -f dummy.c dummy
|
|
||||||
echo unknown-hitachi-hiuxwe2
|
|
||||||
exit 0 ;;
|
|
||||||
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
|
|
||||||
echo hppa1.1-hp-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
9000/8??:4.3bsd:*:*)
|
|
||||||
echo hppa1.0-hp-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
|
|
||||||
echo hppa1.1-hp-osf
|
|
||||||
exit 0 ;;
|
|
||||||
hp8??:OSF1:*:*)
|
|
||||||
echo hppa1.0-hp-osf
|
|
||||||
exit 0 ;;
|
|
||||||
i?86:OSF1:*:*)
|
|
||||||
if [ -x /usr/sbin/sysversion ] ; then
|
|
||||||
echo ${UNAME_MACHINE}-unknown-osf1mk
|
|
||||||
else
|
|
||||||
echo ${UNAME_MACHINE}-unknown-osf1
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
parisc*:Lites*:*:*)
|
|
||||||
echo hppa1.1-hp-lites
|
|
||||||
exit 0 ;;
|
|
||||||
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
|
|
||||||
echo c1-convex-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
|
|
||||||
if getsysinfo -f scalar_acc
|
|
||||||
then echo c32-convex-bsd
|
|
||||||
else echo c2-convex-bsd
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
|
|
||||||
echo c34-convex-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
|
|
||||||
echo c38-convex-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
|
||||||
echo c4-convex-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
CRAY*X-MP:*:*:*)
|
|
||||||
echo xmp-cray-unicos
|
|
||||||
exit 0 ;;
|
|
||||||
CRAY*Y-MP:*:*:*)
|
|
||||||
echo ymp-cray-unicos${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
CRAY*[A-Z]90:*:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
|
|
||||||
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
|
|
||||||
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
|
|
||||||
exit 0 ;;
|
|
||||||
CRAY*TS:*:*:*)
|
|
||||||
echo t90-cray-unicos${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
CRAY-2:*:*:*)
|
|
||||||
echo cray2-cray-unicos
|
|
||||||
exit 0 ;;
|
|
||||||
F300:UNIX_System_V:*:*)
|
|
||||||
FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
|
|
||||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
|
||||||
echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
|
||||||
exit 0 ;;
|
|
||||||
F301:UNIX_System_V:*:*)
|
|
||||||
echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
|
|
||||||
exit 0 ;;
|
|
||||||
hp3[0-9][05]:NetBSD:*:*)
|
|
||||||
echo m68k-hp-netbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
hp3[0-9][05]:OpenBSD:*:*)
|
|
||||||
echo m68k-hp-openbsd${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
i?86:BSD/386:*:* | *:BSD/OS:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
*:FreeBSD:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
|
||||||
exit 0 ;;
|
|
||||||
*:NetBSD:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
|
|
||||||
exit 0 ;;
|
|
||||||
*:OpenBSD:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
|
|
||||||
exit 0 ;;
|
|
||||||
i*:CYGWIN*:*)
|
|
||||||
echo i386-pc-cygwin32
|
|
||||||
exit 0 ;;
|
|
||||||
p*:CYGWIN*:*)
|
|
||||||
echo powerpcle-unknown-cygwin32
|
|
||||||
exit 0 ;;
|
|
||||||
prep*:SunOS:5.*:*)
|
|
||||||
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
|
||||||
exit 0 ;;
|
|
||||||
*:GNU:*:*)
|
|
||||||
echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
|
|
||||||
exit 0 ;;
|
|
||||||
*:Linux:*:*)
|
|
||||||
# The BFD linker knows what the default object file format is, so
|
|
||||||
# first see if it will tell us.
|
|
||||||
ld_help_string=`ld --help 2>&1`
|
|
||||||
if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0
|
|
||||||
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0
|
|
||||||
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then
|
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0
|
|
||||||
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then
|
|
||||||
echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0
|
|
||||||
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then
|
|
||||||
echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0
|
|
||||||
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then
|
|
||||||
echo "powerpc-unknown-linux-gnu" ; exit 0
|
|
||||||
elif test "${UNAME_MACHINE}" = "alpha" ; then
|
|
||||||
echo alpha-unknown-linux-gnu ; exit 0
|
|
||||||
elif test "${UNAME_MACHINE}" = "sparc" ; then
|
|
||||||
echo sparc-unknown-linux-gnu ; exit 0
|
|
||||||
else
|
|
||||||
# Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us
|
|
||||||
# useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout.
|
|
||||||
test ! -d /usr/lib/ldscripts/. \
|
|
||||||
&& echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
|
|
||||||
# Determine whether the default compiler is a.out or elf
|
|
||||||
cat >dummy.c <<EOF
|
|
||||||
main(argc, argv)
|
|
||||||
int argc;
|
|
||||||
char *argv[];
|
|
||||||
{
|
|
||||||
#ifdef __ELF__
|
|
||||||
printf ("%s-pc-linux-gnu\n", argv[1]);
|
|
||||||
#else
|
|
||||||
printf ("%s-pc-linux-gnuaout\n", argv[1]);
|
|
||||||
#endif
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
|
|
||||||
rm -f dummy.c dummy
|
|
||||||
fi ;;
|
|
||||||
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
|
|
||||||
# are messed up and put the nodename in both sysname and nodename.
|
|
||||||
i?86:DYNIX/ptx:4*:*)
|
|
||||||
echo i386-sequent-sysv4
|
|
||||||
exit 0 ;;
|
|
||||||
i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
|
|
||||||
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
|
|
||||||
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
|
|
||||||
else
|
|
||||||
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
i?86:*:3.2:*)
|
|
||||||
if test -f /usr/options/cb.name; then
|
|
||||||
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
|
|
||||||
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
|
|
||||||
elif /bin/uname -X 2>/dev/null >/dev/null ; then
|
|
||||||
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
|
|
||||||
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
|
|
||||||
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
|
|
||||||
&& UNAME_MACHINE=i586
|
|
||||||
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
|
|
||||||
else
|
|
||||||
echo ${UNAME_MACHINE}-pc-sysv32
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
Intel:Mach:3*:*)
|
|
||||||
echo i386-pc-mach3
|
|
||||||
exit 0 ;;
|
|
||||||
paragon:*:*:*)
|
|
||||||
echo i860-intel-osf1
|
|
||||||
exit 0 ;;
|
|
||||||
i860:*:4.*:*) # i860-SVR4
|
|
||||||
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
|
|
||||||
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
|
|
||||||
else # Add other i860-SVR4 vendors below as they are discovered.
|
|
||||||
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
mini*:CTIX:SYS*5:*)
|
|
||||||
# "miniframe"
|
|
||||||
echo m68010-convergent-sysv
|
|
||||||
exit 0 ;;
|
|
||||||
M68*:*:R3V[567]*:*)
|
|
||||||
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
|
|
||||||
3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
|
|
||||||
OS_REL=''
|
|
||||||
test -r /etc/.relid \
|
|
||||||
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
|
||||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
|
||||||
&& echo i486-ncr-sysv4.3${OS_REL} && exit 0
|
|
||||||
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
|
||||||
&& echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
|
|
||||||
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
|
||||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
|
||||||
&& echo i486-ncr-sysv4 && exit 0 ;;
|
|
||||||
m68*:LynxOS:2.*:*)
|
|
||||||
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
mc68030:UNIX_System_V:4.*:*)
|
|
||||||
echo m68k-atari-sysv4
|
|
||||||
exit 0 ;;
|
|
||||||
i?86:LynxOS:2.*:*)
|
|
||||||
echo i386-unknown-lynxos${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
TSUNAMI:LynxOS:2.*:*)
|
|
||||||
echo sparc-unknown-lynxos${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
|
|
||||||
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
SM[BE]S:UNIX_SV:*:*)
|
|
||||||
echo mips-dde-sysv${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
RM*:SINIX-*:*:*)
|
|
||||||
echo mips-sni-sysv4
|
|
||||||
exit 0 ;;
|
|
||||||
*:SINIX-*:*:*)
|
|
||||||
if uname -p 2>/dev/null >/dev/null ; then
|
|
||||||
UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
|
||||||
echo ${UNAME_MACHINE}-sni-sysv4
|
|
||||||
else
|
|
||||||
echo ns32k-sni-sysv
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
*:UNIX_System_V:4*:FTX*)
|
|
||||||
# From Gerald Hewes <hewes@openmarket.com>.
|
|
||||||
# How about differentiating between stratus architectures? -djm
|
|
||||||
echo hppa1.1-stratus-sysv4
|
|
||||||
exit 0 ;;
|
|
||||||
*:*:*:FTX*)
|
|
||||||
# From seanf@swdc.stratus.com.
|
|
||||||
echo i860-stratus-sysv4
|
|
||||||
exit 0 ;;
|
|
||||||
mc68*:A/UX:*:*)
|
|
||||||
echo m68k-apple-aux${UNAME_RELEASE}
|
|
||||||
exit 0 ;;
|
|
||||||
R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
|
|
||||||
if [ -d /usr/nec ]; then
|
|
||||||
echo mips-nec-sysv${UNAME_RELEASE}
|
|
||||||
else
|
|
||||||
echo mips-unknown-sysv${UNAME_RELEASE}
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
|
||||||
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
|
||||||
echo i586-unisys-sysv4
|
|
||||||
exit 0 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
#echo '(No uname command or uname output not recognized.)' 1>&2
|
|
||||||
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
|
|
||||||
|
|
||||||
cat >dummy.c <<EOF
|
|
||||||
#ifdef _SEQUENT_
|
|
||||||
# include <sys/types.h>
|
|
||||||
# include <sys/utsname.h>
|
|
||||||
#endif
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
#if defined (sony)
|
|
||||||
#if defined (MIPSEB)
|
|
||||||
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
|
|
||||||
I don't know.... */
|
|
||||||
printf ("mips-sony-bsd\n"); exit (0);
|
|
||||||
#else
|
|
||||||
#include <sys/param.h>
|
|
||||||
printf ("m68k-sony-newsos%s\n",
|
|
||||||
#ifdef NEWSOS4
|
|
||||||
"4"
|
|
||||||
#else
|
|
||||||
""
|
|
||||||
#endif
|
|
||||||
); exit (0);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (__arm) && defined (__acorn) && defined (__unix)
|
|
||||||
printf ("arm-acorn-riscix"); exit (0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (hp300) && !defined (hpux)
|
|
||||||
printf ("m68k-hp-bsd\n"); exit (0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (NeXT)
|
|
||||||
#if !defined (__ARCHITECTURE__)
|
|
||||||
#define __ARCHITECTURE__ "m68k"
|
|
||||||
#endif
|
|
||||||
int version;
|
|
||||||
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
|
|
||||||
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
|
|
||||||
exit (0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (MULTIMAX) || defined (n16)
|
|
||||||
#if defined (UMAXV)
|
|
||||||
printf ("ns32k-encore-sysv\n"); exit (0);
|
|
||||||
#else
|
|
||||||
#if defined (CMU)
|
|
||||||
printf ("ns32k-encore-mach\n"); exit (0);
|
|
||||||
#else
|
|
||||||
printf ("ns32k-encore-bsd\n"); exit (0);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (__386BSD__)
|
|
||||||
printf ("i386-pc-bsd\n"); exit (0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (sequent)
|
|
||||||
#if defined (i386)
|
|
||||||
printf ("i386-sequent-dynix\n"); exit (0);
|
|
||||||
#endif
|
|
||||||
#if defined (ns32000)
|
|
||||||
printf ("ns32k-sequent-dynix\n"); exit (0);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (_SEQUENT_)
|
|
||||||
struct utsname un;
|
|
||||||
|
|
||||||
uname(&un);
|
|
||||||
|
|
||||||
if (strncmp(un.version, "V2", 2) == 0) {
|
|
||||||
printf ("i386-sequent-ptx2\n"); exit (0);
|
|
||||||
}
|
|
||||||
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
|
|
||||||
printf ("i386-sequent-ptx1\n"); exit (0);
|
|
||||||
}
|
|
||||||
printf ("i386-sequent-ptx\n"); exit (0);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (vax)
|
|
||||||
#if !defined (ultrix)
|
|
||||||
printf ("vax-dec-bsd\n"); exit (0);
|
|
||||||
#else
|
|
||||||
printf ("vax-dec-ultrix\n"); exit (0);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (alliant) && defined (i860)
|
|
||||||
printf ("i860-alliant-bsd\n"); exit (0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
exit (1);
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
|
|
||||||
rm -f dummy.c dummy
|
|
||||||
|
|
||||||
# Apollos put the system type in the environment.
|
|
||||||
|
|
||||||
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
|
|
||||||
|
|
||||||
# Convex versions that predate uname can use getsysinfo(1)
|
|
||||||
|
|
||||||
if [ -x /usr/convex/getsysinfo ]
|
|
||||||
then
|
|
||||||
case `getsysinfo -f cpu_type` in
|
|
||||||
c1*)
|
|
||||||
echo c1-convex-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
c2*)
|
|
||||||
if getsysinfo -f scalar_acc
|
|
||||||
then echo c32-convex-bsd
|
|
||||||
else echo c2-convex-bsd
|
|
||||||
fi
|
|
||||||
exit 0 ;;
|
|
||||||
c34*)
|
|
||||||
echo c34-convex-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
c38*)
|
|
||||||
echo c38-convex-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
c4*)
|
|
||||||
echo c4-convex-bsd
|
|
||||||
exit 0 ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
#echo '(Unable to guess system type)' 1>&2
|
|
||||||
|
|
||||||
exit 1
|
|
927
contrib/traceroute/config.sub
vendored
927
contrib/traceroute/config.sub
vendored
@ -1,927 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# Configuration validation subroutine script, version 1.1.
|
|
||||||
# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
|
||||||
# can handle that machine. It does not imply ALL GNU software can.
|
|
||||||
#
|
|
||||||
# This file is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330,
|
|
||||||
# Boston, MA 02111-1307, USA.
|
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
# configuration script generated by Autoconf, you may include it under
|
|
||||||
# the same distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# Configuration subroutine to validate and canonicalize a configuration type.
|
|
||||||
# Supply the specified configuration type as an argument.
|
|
||||||
# If it is invalid, we print an error message on stderr and exit with code 1.
|
|
||||||
# Otherwise, we print the canonical config type on stdout and succeed.
|
|
||||||
|
|
||||||
# This file is supposed to be the same for all GNU packages
|
|
||||||
# and recognize all the CPU types, system types and aliases
|
|
||||||
# that are meaningful with *any* GNU software.
|
|
||||||
# Each package is responsible for reporting which valid configurations
|
|
||||||
# it does not support. The user should be able to distinguish
|
|
||||||
# a failure to support a valid configuration from a meaningless
|
|
||||||
# configuration.
|
|
||||||
|
|
||||||
# The goal of this file is to map all the various variations of a given
|
|
||||||
# machine specification into a single specification in the form:
|
|
||||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
|
|
||||||
# or in some cases, the newer four-part form:
|
|
||||||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
|
||||||
# It is wrong to echo any other type of specification.
|
|
||||||
|
|
||||||
if [ x$1 = x ]
|
|
||||||
then
|
|
||||||
echo Configuration name missing. 1>&2
|
|
||||||
echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
|
|
||||||
echo "or $0 ALIAS" 1>&2
|
|
||||||
echo where ALIAS is a recognized configuration type. 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# First pass through any local machine types.
|
|
||||||
case $1 in
|
|
||||||
*local*)
|
|
||||||
echo $1
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
|
|
||||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
|
||||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
|
||||||
case $maybe_os in
|
|
||||||
linux-gnu*)
|
|
||||||
os=-$maybe_os
|
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
|
||||||
if [ $basic_machine != $1 ]
|
|
||||||
then os=`echo $1 | sed 's/.*-/-/'`
|
|
||||||
else os=; fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
### Let's recognize common machines as not being operating systems so
|
|
||||||
### that things like config.sub decstation-3100 work. We also
|
|
||||||
### recognize some manufacturers as not being operating systems, so we
|
|
||||||
### can provide default operating systems below.
|
|
||||||
case $os in
|
|
||||||
-sun*os*)
|
|
||||||
# Prevent following clause from handling this invalid input.
|
|
||||||
;;
|
|
||||||
-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
|
|
||||||
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
|
|
||||||
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
|
|
||||||
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
|
||||||
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
|
||||||
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
|
||||||
-apple)
|
|
||||||
os=
|
|
||||||
basic_machine=$1
|
|
||||||
;;
|
|
||||||
-hiux*)
|
|
||||||
os=-hiuxwe2
|
|
||||||
;;
|
|
||||||
-sco5)
|
|
||||||
os=sco3.2v5
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
|
||||||
;;
|
|
||||||
-sco4)
|
|
||||||
os=-sco3.2v4
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
|
||||||
;;
|
|
||||||
-sco3.2.[4-9]*)
|
|
||||||
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
|
||||||
;;
|
|
||||||
-sco3.2v[4-9]*)
|
|
||||||
# Don't forget version if it is 3.2v4 or newer.
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
|
||||||
;;
|
|
||||||
-sco*)
|
|
||||||
os=-sco3.2v2
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
|
||||||
;;
|
|
||||||
-isc)
|
|
||||||
os=-isc2.2
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
|
||||||
;;
|
|
||||||
-clix*)
|
|
||||||
basic_machine=clipper-intergraph
|
|
||||||
;;
|
|
||||||
-isc*)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
|
||||||
;;
|
|
||||||
-lynx*)
|
|
||||||
os=-lynxos
|
|
||||||
;;
|
|
||||||
-ptx*)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
|
|
||||||
;;
|
|
||||||
-windowsnt*)
|
|
||||||
os=`echo $os | sed -e 's/windowsnt/winnt/'`
|
|
||||||
;;
|
|
||||||
-psos*)
|
|
||||||
os=-psos
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Decode aliases for certain CPU-COMPANY combinations.
|
|
||||||
case $basic_machine in
|
|
||||||
# Recognize the basic CPU types without company name.
|
|
||||||
# Some are omitted here because they have special meanings below.
|
|
||||||
tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \
|
|
||||||
| arme[lb] | pyramid \
|
|
||||||
| tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
|
|
||||||
| alpha | we32k | ns16k | clipper | i370 | sh \
|
|
||||||
| powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
|
|
||||||
| pdp11 | mips64el | mips64orion | mips64orionel \
|
|
||||||
| sparc | sparclet | sparclite | sparc64)
|
|
||||||
basic_machine=$basic_machine-unknown
|
|
||||||
;;
|
|
||||||
# We use `pc' rather than `unknown'
|
|
||||||
# because (1) that's what they normally are, and
|
|
||||||
# (2) the word "unknown" tends to confuse beginning users.
|
|
||||||
i[3456]86)
|
|
||||||
basic_machine=$basic_machine-pc
|
|
||||||
;;
|
|
||||||
# Object if more than one company name word.
|
|
||||||
*-*-*)
|
|
||||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
# Recognize the basic CPU types with company name.
|
|
||||||
vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \
|
|
||||||
| sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
|
|
||||||
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
|
|
||||||
| none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
|
|
||||||
| hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
|
|
||||||
| pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
|
|
||||||
| pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
|
|
||||||
| mips64el-* | mips64orion-* | mips64orionel-* | f301-*)
|
|
||||||
;;
|
|
||||||
# Recognize the various machine names and aliases which stand
|
|
||||||
# for a CPU type and a company and sometimes even an OS.
|
|
||||||
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
|
|
||||||
basic_machine=m68000-att
|
|
||||||
;;
|
|
||||||
3b*)
|
|
||||||
basic_machine=we32k-att
|
|
||||||
;;
|
|
||||||
alliant | fx80)
|
|
||||||
basic_machine=fx80-alliant
|
|
||||||
;;
|
|
||||||
altos | altos3068)
|
|
||||||
basic_machine=m68k-altos
|
|
||||||
;;
|
|
||||||
am29k)
|
|
||||||
basic_machine=a29k-none
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
amdahl)
|
|
||||||
basic_machine=580-amdahl
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
amiga | amiga-*)
|
|
||||||
basic_machine=m68k-cbm
|
|
||||||
;;
|
|
||||||
amigados)
|
|
||||||
basic_machine=m68k-cbm
|
|
||||||
os=-amigados
|
|
||||||
;;
|
|
||||||
amigaunix | amix)
|
|
||||||
basic_machine=m68k-cbm
|
|
||||||
os=-sysv4
|
|
||||||
;;
|
|
||||||
apollo68)
|
|
||||||
basic_machine=m68k-apollo
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
aux)
|
|
||||||
basic_machine=m68k-apple
|
|
||||||
os=-aux
|
|
||||||
;;
|
|
||||||
balance)
|
|
||||||
basic_machine=ns32k-sequent
|
|
||||||
os=-dynix
|
|
||||||
;;
|
|
||||||
convex-c1)
|
|
||||||
basic_machine=c1-convex
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
convex-c2)
|
|
||||||
basic_machine=c2-convex
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
convex-c32)
|
|
||||||
basic_machine=c32-convex
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
convex-c34)
|
|
||||||
basic_machine=c34-convex
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
convex-c38)
|
|
||||||
basic_machine=c38-convex
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
cray | ymp)
|
|
||||||
basic_machine=ymp-cray
|
|
||||||
os=-unicos
|
|
||||||
;;
|
|
||||||
cray2)
|
|
||||||
basic_machine=cray2-cray
|
|
||||||
os=-unicos
|
|
||||||
;;
|
|
||||||
[ctj]90-cray)
|
|
||||||
basic_machine=c90-cray
|
|
||||||
os=-unicos
|
|
||||||
;;
|
|
||||||
crds | unos)
|
|
||||||
basic_machine=m68k-crds
|
|
||||||
;;
|
|
||||||
da30 | da30-*)
|
|
||||||
basic_machine=m68k-da30
|
|
||||||
;;
|
|
||||||
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
|
|
||||||
basic_machine=mips-dec
|
|
||||||
;;
|
|
||||||
delta | 3300 | motorola-3300 | motorola-delta \
|
|
||||||
| 3300-motorola | delta-motorola)
|
|
||||||
basic_machine=m68k-motorola
|
|
||||||
;;
|
|
||||||
delta88)
|
|
||||||
basic_machine=m88k-motorola
|
|
||||||
os=-sysv3
|
|
||||||
;;
|
|
||||||
dpx20 | dpx20-*)
|
|
||||||
basic_machine=rs6000-bull
|
|
||||||
os=-bosx
|
|
||||||
;;
|
|
||||||
dpx2* | dpx2*-bull)
|
|
||||||
basic_machine=m68k-bull
|
|
||||||
os=-sysv3
|
|
||||||
;;
|
|
||||||
ebmon29k)
|
|
||||||
basic_machine=a29k-amd
|
|
||||||
os=-ebmon
|
|
||||||
;;
|
|
||||||
elxsi)
|
|
||||||
basic_machine=elxsi-elxsi
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
encore | umax | mmax)
|
|
||||||
basic_machine=ns32k-encore
|
|
||||||
;;
|
|
||||||
fx2800)
|
|
||||||
basic_machine=i860-alliant
|
|
||||||
;;
|
|
||||||
genix)
|
|
||||||
basic_machine=ns32k-ns
|
|
||||||
;;
|
|
||||||
gmicro)
|
|
||||||
basic_machine=tron-gmicro
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
h3050r* | hiux*)
|
|
||||||
basic_machine=hppa1.1-hitachi
|
|
||||||
os=-hiuxwe2
|
|
||||||
;;
|
|
||||||
h8300hms)
|
|
||||||
basic_machine=h8300-hitachi
|
|
||||||
os=-hms
|
|
||||||
;;
|
|
||||||
harris)
|
|
||||||
basic_machine=m88k-harris
|
|
||||||
os=-sysv3
|
|
||||||
;;
|
|
||||||
hp300-*)
|
|
||||||
basic_machine=m68k-hp
|
|
||||||
;;
|
|
||||||
hp300bsd)
|
|
||||||
basic_machine=m68k-hp
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
hp300hpux)
|
|
||||||
basic_machine=m68k-hp
|
|
||||||
os=-hpux
|
|
||||||
;;
|
|
||||||
hp9k2[0-9][0-9] | hp9k31[0-9])
|
|
||||||
basic_machine=m68000-hp
|
|
||||||
;;
|
|
||||||
hp9k3[2-9][0-9])
|
|
||||||
basic_machine=m68k-hp
|
|
||||||
;;
|
|
||||||
hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
|
|
||||||
basic_machine=hppa1.1-hp
|
|
||||||
;;
|
|
||||||
hp9k8[0-9][0-9] | hp8[0-9][0-9])
|
|
||||||
basic_machine=hppa1.0-hp
|
|
||||||
;;
|
|
||||||
hppa-next)
|
|
||||||
os=-nextstep3
|
|
||||||
;;
|
|
||||||
i370-ibm* | ibm*)
|
|
||||||
basic_machine=i370-ibm
|
|
||||||
os=-mvs
|
|
||||||
;;
|
|
||||||
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
|
|
||||||
i[3456]86v32)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
|
||||||
os=-sysv32
|
|
||||||
;;
|
|
||||||
i[3456]86v4*)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
|
||||||
os=-sysv4
|
|
||||||
;;
|
|
||||||
i[3456]86v)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
i[3456]86sol2)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
|
||||||
os=-solaris2
|
|
||||||
;;
|
|
||||||
iris | iris4d)
|
|
||||||
basic_machine=mips-sgi
|
|
||||||
case $os in
|
|
||||||
-irix*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
os=-irix4
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
isi68 | isi)
|
|
||||||
basic_machine=m68k-isi
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
m88k-omron*)
|
|
||||||
basic_machine=m88k-omron
|
|
||||||
;;
|
|
||||||
magnum | m3230)
|
|
||||||
basic_machine=mips-mips
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
merlin)
|
|
||||||
basic_machine=ns32k-utek
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
miniframe)
|
|
||||||
basic_machine=m68000-convergent
|
|
||||||
;;
|
|
||||||
mips3*-*)
|
|
||||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
|
|
||||||
;;
|
|
||||||
mips3*)
|
|
||||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
|
|
||||||
;;
|
|
||||||
ncr3000)
|
|
||||||
basic_machine=i486-ncr
|
|
||||||
os=-sysv4
|
|
||||||
;;
|
|
||||||
news | news700 | news800 | news900)
|
|
||||||
basic_machine=m68k-sony
|
|
||||||
os=-newsos
|
|
||||||
;;
|
|
||||||
news1000)
|
|
||||||
basic_machine=m68030-sony
|
|
||||||
os=-newsos
|
|
||||||
;;
|
|
||||||
news-3600 | risc-news)
|
|
||||||
basic_machine=mips-sony
|
|
||||||
os=-newsos
|
|
||||||
;;
|
|
||||||
next | m*-next )
|
|
||||||
basic_machine=m68k-next
|
|
||||||
case $os in
|
|
||||||
-nextstep* )
|
|
||||||
;;
|
|
||||||
-ns2*)
|
|
||||||
os=-nextstep2
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
os=-nextstep3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
nh3000)
|
|
||||||
basic_machine=m68k-harris
|
|
||||||
os=-cxux
|
|
||||||
;;
|
|
||||||
nh[45]000)
|
|
||||||
basic_machine=m88k-harris
|
|
||||||
os=-cxux
|
|
||||||
;;
|
|
||||||
nindy960)
|
|
||||||
basic_machine=i960-intel
|
|
||||||
os=-nindy
|
|
||||||
;;
|
|
||||||
np1)
|
|
||||||
basic_machine=np1-gould
|
|
||||||
;;
|
|
||||||
pa-hitachi)
|
|
||||||
basic_machine=hppa1.1-hitachi
|
|
||||||
os=-hiuxwe2
|
|
||||||
;;
|
|
||||||
paragon)
|
|
||||||
basic_machine=i860-intel
|
|
||||||
os=-osf
|
|
||||||
;;
|
|
||||||
pbd)
|
|
||||||
basic_machine=sparc-tti
|
|
||||||
;;
|
|
||||||
pbb)
|
|
||||||
basic_machine=m68k-tti
|
|
||||||
;;
|
|
||||||
pc532 | pc532-*)
|
|
||||||
basic_machine=ns32k-pc532
|
|
||||||
;;
|
|
||||||
pentium | p5)
|
|
||||||
basic_machine=i586-intel
|
|
||||||
;;
|
|
||||||
pentiumpro | p6)
|
|
||||||
basic_machine=i686-intel
|
|
||||||
;;
|
|
||||||
pentium-* | p5-*)
|
|
||||||
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
|
|
||||||
;;
|
|
||||||
pentiumpro-* | p6-*)
|
|
||||||
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
|
||||||
;;
|
|
||||||
k5)
|
|
||||||
# We don't have specific support for AMD's K5 yet, so just call it a Pentium
|
|
||||||
basic_machine=i586-amd
|
|
||||||
;;
|
|
||||||
nexen)
|
|
||||||
# We don't have specific support for Nexgen yet, so just call it a Pentium
|
|
||||||
basic_machine=i586-nexgen
|
|
||||||
;;
|
|
||||||
pn)
|
|
||||||
basic_machine=pn-gould
|
|
||||||
;;
|
|
||||||
power) basic_machine=rs6000-ibm
|
|
||||||
;;
|
|
||||||
ppc) basic_machine=powerpc-unknown
|
|
||||||
;;
|
|
||||||
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
|
||||||
;;
|
|
||||||
ppcle | powerpclittle | ppc-le | powerpc-little)
|
|
||||||
basic_machine=powerpcle-unknown
|
|
||||||
;;
|
|
||||||
ppcle-* | powerpclittle-*)
|
|
||||||
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
|
|
||||||
;;
|
|
||||||
ps2)
|
|
||||||
basic_machine=i386-ibm
|
|
||||||
;;
|
|
||||||
rm[46]00)
|
|
||||||
basic_machine=mips-siemens
|
|
||||||
;;
|
|
||||||
rtpc | rtpc-*)
|
|
||||||
basic_machine=romp-ibm
|
|
||||||
;;
|
|
||||||
sequent)
|
|
||||||
basic_machine=i386-sequent
|
|
||||||
;;
|
|
||||||
sh)
|
|
||||||
basic_machine=sh-hitachi
|
|
||||||
os=-hms
|
|
||||||
;;
|
|
||||||
sps7)
|
|
||||||
basic_machine=m68k-bull
|
|
||||||
os=-sysv2
|
|
||||||
;;
|
|
||||||
spur)
|
|
||||||
basic_machine=spur-unknown
|
|
||||||
;;
|
|
||||||
sun2)
|
|
||||||
basic_machine=m68000-sun
|
|
||||||
;;
|
|
||||||
sun2os3)
|
|
||||||
basic_machine=m68000-sun
|
|
||||||
os=-sunos3
|
|
||||||
;;
|
|
||||||
sun2os4)
|
|
||||||
basic_machine=m68000-sun
|
|
||||||
os=-sunos4
|
|
||||||
;;
|
|
||||||
sun3os3)
|
|
||||||
basic_machine=m68k-sun
|
|
||||||
os=-sunos3
|
|
||||||
;;
|
|
||||||
sun3os4)
|
|
||||||
basic_machine=m68k-sun
|
|
||||||
os=-sunos4
|
|
||||||
;;
|
|
||||||
sun4os3)
|
|
||||||
basic_machine=sparc-sun
|
|
||||||
os=-sunos3
|
|
||||||
;;
|
|
||||||
sun4os4)
|
|
||||||
basic_machine=sparc-sun
|
|
||||||
os=-sunos4
|
|
||||||
;;
|
|
||||||
sun4sol2)
|
|
||||||
basic_machine=sparc-sun
|
|
||||||
os=-solaris2
|
|
||||||
;;
|
|
||||||
sun3 | sun3-*)
|
|
||||||
basic_machine=m68k-sun
|
|
||||||
;;
|
|
||||||
sun4)
|
|
||||||
basic_machine=sparc-sun
|
|
||||||
;;
|
|
||||||
sun386 | sun386i | roadrunner)
|
|
||||||
basic_machine=i386-sun
|
|
||||||
;;
|
|
||||||
symmetry)
|
|
||||||
basic_machine=i386-sequent
|
|
||||||
os=-dynix
|
|
||||||
;;
|
|
||||||
tower | tower-32)
|
|
||||||
basic_machine=m68k-ncr
|
|
||||||
;;
|
|
||||||
udi29k)
|
|
||||||
basic_machine=a29k-amd
|
|
||||||
os=-udi
|
|
||||||
;;
|
|
||||||
ultra3)
|
|
||||||
basic_machine=a29k-nyu
|
|
||||||
os=-sym1
|
|
||||||
;;
|
|
||||||
vaxv)
|
|
||||||
basic_machine=vax-dec
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
vms)
|
|
||||||
basic_machine=vax-dec
|
|
||||||
os=-vms
|
|
||||||
;;
|
|
||||||
vpp*|vx|vx-*)
|
|
||||||
basic_machine=f301-fujitsu
|
|
||||||
;;
|
|
||||||
vxworks960)
|
|
||||||
basic_machine=i960-wrs
|
|
||||||
os=-vxworks
|
|
||||||
;;
|
|
||||||
vxworks68)
|
|
||||||
basic_machine=m68k-wrs
|
|
||||||
os=-vxworks
|
|
||||||
;;
|
|
||||||
vxworks29k)
|
|
||||||
basic_machine=a29k-wrs
|
|
||||||
os=-vxworks
|
|
||||||
;;
|
|
||||||
xmp)
|
|
||||||
basic_machine=xmp-cray
|
|
||||||
os=-unicos
|
|
||||||
;;
|
|
||||||
xps | xps100)
|
|
||||||
basic_machine=xps100-honeywell
|
|
||||||
;;
|
|
||||||
none)
|
|
||||||
basic_machine=none-none
|
|
||||||
os=-none
|
|
||||||
;;
|
|
||||||
|
|
||||||
# Here we handle the default manufacturer of certain CPU types. It is in
|
|
||||||
# some cases the only manufacturer, in others, it is the most popular.
|
|
||||||
mips)
|
|
||||||
basic_machine=mips-mips
|
|
||||||
;;
|
|
||||||
romp)
|
|
||||||
basic_machine=romp-ibm
|
|
||||||
;;
|
|
||||||
rs6000)
|
|
||||||
basic_machine=rs6000-ibm
|
|
||||||
;;
|
|
||||||
vax)
|
|
||||||
basic_machine=vax-dec
|
|
||||||
;;
|
|
||||||
pdp11)
|
|
||||||
basic_machine=pdp11-dec
|
|
||||||
;;
|
|
||||||
we32k)
|
|
||||||
basic_machine=we32k-att
|
|
||||||
;;
|
|
||||||
sparc)
|
|
||||||
basic_machine=sparc-sun
|
|
||||||
;;
|
|
||||||
cydra)
|
|
||||||
basic_machine=cydra-cydrome
|
|
||||||
;;
|
|
||||||
orion)
|
|
||||||
basic_machine=orion-highlevel
|
|
||||||
;;
|
|
||||||
orion105)
|
|
||||||
basic_machine=clipper-highlevel
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Here we canonicalize certain aliases for manufacturers.
|
|
||||||
case $basic_machine in
|
|
||||||
*-digital*)
|
|
||||||
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
|
|
||||||
;;
|
|
||||||
*-commodore*)
|
|
||||||
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Decode manufacturer-specific aliases for certain operating systems.
|
|
||||||
|
|
||||||
if [ x"$os" != x"" ]
|
|
||||||
then
|
|
||||||
case $os in
|
|
||||||
# First match some system type aliases
|
|
||||||
# that might get confused with valid system types.
|
|
||||||
# -solaris* is a basic system type, with this one exception.
|
|
||||||
-solaris1 | -solaris1.*)
|
|
||||||
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
|
||||||
;;
|
|
||||||
-solaris)
|
|
||||||
os=-solaris2
|
|
||||||
;;
|
|
||||||
-unixware* | svr4*)
|
|
||||||
os=-sysv4
|
|
||||||
;;
|
|
||||||
-gnu/linux*)
|
|
||||||
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
|
|
||||||
;;
|
|
||||||
# First accept the basic system types.
|
|
||||||
# The portable systems comes first.
|
|
||||||
# Each alternative MUST END IN A *, to match a version number.
|
|
||||||
# -sysv* is not here because it comes later, after sysvr4.
|
|
||||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
|
||||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
|
|
||||||
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
|
|
||||||
| -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \
|
|
||||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
|
||||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
|
||||||
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
|
|
||||||
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
|
|
||||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
|
||||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
|
||||||
| -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
|
||||||
| -linux-gnu* | -uxpv*)
|
|
||||||
# Remember, each alternative MUST END IN *, to match a version number.
|
|
||||||
;;
|
|
||||||
-linux*)
|
|
||||||
os=`echo $os | sed -e 's|linux|linux-gnu|'`
|
|
||||||
;;
|
|
||||||
-sunos5*)
|
|
||||||
os=`echo $os | sed -e 's|sunos5|solaris2|'`
|
|
||||||
;;
|
|
||||||
-sunos6*)
|
|
||||||
os=`echo $os | sed -e 's|sunos6|solaris3|'`
|
|
||||||
;;
|
|
||||||
-osfrose*)
|
|
||||||
os=-osfrose
|
|
||||||
;;
|
|
||||||
-osf*)
|
|
||||||
os=-osf
|
|
||||||
;;
|
|
||||||
-utek*)
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
-dynix*)
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
-acis*)
|
|
||||||
os=-aos
|
|
||||||
;;
|
|
||||||
-ctix* | -uts*)
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
-ns2 )
|
|
||||||
os=-nextstep2
|
|
||||||
;;
|
|
||||||
# Preserve the version number of sinix5.
|
|
||||||
-sinix5.*)
|
|
||||||
os=`echo $os | sed -e 's|sinix|sysv|'`
|
|
||||||
;;
|
|
||||||
-sinix*)
|
|
||||||
os=-sysv4
|
|
||||||
;;
|
|
||||||
-triton*)
|
|
||||||
os=-sysv3
|
|
||||||
;;
|
|
||||||
-oss*)
|
|
||||||
os=-sysv3
|
|
||||||
;;
|
|
||||||
-svr4)
|
|
||||||
os=-sysv4
|
|
||||||
;;
|
|
||||||
-svr3)
|
|
||||||
os=-sysv3
|
|
||||||
;;
|
|
||||||
-sysvr4)
|
|
||||||
os=-sysv4
|
|
||||||
;;
|
|
||||||
# This must come after -sysvr4.
|
|
||||||
-sysv*)
|
|
||||||
;;
|
|
||||||
-xenix)
|
|
||||||
os=-xenix
|
|
||||||
;;
|
|
||||||
-none)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Get rid of the `-' at the beginning of $os.
|
|
||||||
os=`echo $os | sed 's/[^-]*-//'`
|
|
||||||
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
|
|
||||||
# Here we handle the default operating systems that come with various machines.
|
|
||||||
# The value should be what the vendor currently ships out the door with their
|
|
||||||
# machine or put another way, the most popular os provided with the machine.
|
|
||||||
|
|
||||||
# Note that if you're going to try to match "-MANUFACTURER" here (say,
|
|
||||||
# "-sun"), then you have to tell the case statement up towards the top
|
|
||||||
# that MANUFACTURER isn't an operating system. Otherwise, code above
|
|
||||||
# will signal an error saying that MANUFACTURER isn't an operating
|
|
||||||
# system, and we'll never get to this point.
|
|
||||||
|
|
||||||
case $basic_machine in
|
|
||||||
*-acorn)
|
|
||||||
os=-riscix1.2
|
|
||||||
;;
|
|
||||||
arm*-semi)
|
|
||||||
os=-aout
|
|
||||||
;;
|
|
||||||
pdp11-*)
|
|
||||||
os=-none
|
|
||||||
;;
|
|
||||||
*-dec | vax-*)
|
|
||||||
os=-ultrix4.2
|
|
||||||
;;
|
|
||||||
m68*-apollo)
|
|
||||||
os=-domain
|
|
||||||
;;
|
|
||||||
i386-sun)
|
|
||||||
os=-sunos4.0.2
|
|
||||||
;;
|
|
||||||
m68000-sun)
|
|
||||||
os=-sunos3
|
|
||||||
# This also exists in the configure program, but was not the
|
|
||||||
# default.
|
|
||||||
# os=-sunos4
|
|
||||||
;;
|
|
||||||
*-tti) # must be before sparc entry or we get the wrong os.
|
|
||||||
os=-sysv3
|
|
||||||
;;
|
|
||||||
sparc-* | *-sun)
|
|
||||||
os=-sunos4.1.1
|
|
||||||
;;
|
|
||||||
*-ibm)
|
|
||||||
os=-aix
|
|
||||||
;;
|
|
||||||
*-hp)
|
|
||||||
os=-hpux
|
|
||||||
;;
|
|
||||||
*-hitachi)
|
|
||||||
os=-hiux
|
|
||||||
;;
|
|
||||||
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
*-cbm)
|
|
||||||
os=-amigados
|
|
||||||
;;
|
|
||||||
*-dg)
|
|
||||||
os=-dgux
|
|
||||||
;;
|
|
||||||
*-dolphin)
|
|
||||||
os=-sysv3
|
|
||||||
;;
|
|
||||||
m68k-ccur)
|
|
||||||
os=-rtu
|
|
||||||
;;
|
|
||||||
m88k-omron*)
|
|
||||||
os=-luna
|
|
||||||
;;
|
|
||||||
*-next )
|
|
||||||
os=-nextstep
|
|
||||||
;;
|
|
||||||
*-sequent)
|
|
||||||
os=-ptx
|
|
||||||
;;
|
|
||||||
*-crds)
|
|
||||||
os=-unos
|
|
||||||
;;
|
|
||||||
*-ns)
|
|
||||||
os=-genix
|
|
||||||
;;
|
|
||||||
i370-*)
|
|
||||||
os=-mvs
|
|
||||||
;;
|
|
||||||
*-next)
|
|
||||||
os=-nextstep3
|
|
||||||
;;
|
|
||||||
*-gould)
|
|
||||||
os=-sysv
|
|
||||||
;;
|
|
||||||
*-highlevel)
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
*-encore)
|
|
||||||
os=-bsd
|
|
||||||
;;
|
|
||||||
*-sgi)
|
|
||||||
os=-irix
|
|
||||||
;;
|
|
||||||
*-siemens)
|
|
||||||
os=-sysv4
|
|
||||||
;;
|
|
||||||
*-masscomp)
|
|
||||||
os=-rtu
|
|
||||||
;;
|
|
||||||
f301-fujitsu)
|
|
||||||
os=-uxpv
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
os=-none
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Here we handle the case where we know the os, and the CPU type, but not the
|
|
||||||
# manufacturer. We pick the logical manufacturer.
|
|
||||||
vendor=unknown
|
|
||||||
case $basic_machine in
|
|
||||||
*-unknown)
|
|
||||||
case $os in
|
|
||||||
-riscix*)
|
|
||||||
vendor=acorn
|
|
||||||
;;
|
|
||||||
-sunos*)
|
|
||||||
vendor=sun
|
|
||||||
;;
|
|
||||||
-aix*)
|
|
||||||
vendor=ibm
|
|
||||||
;;
|
|
||||||
-hpux*)
|
|
||||||
vendor=hp
|
|
||||||
;;
|
|
||||||
-hiux*)
|
|
||||||
vendor=hitachi
|
|
||||||
;;
|
|
||||||
-unos*)
|
|
||||||
vendor=crds
|
|
||||||
;;
|
|
||||||
-dgux*)
|
|
||||||
vendor=dg
|
|
||||||
;;
|
|
||||||
-luna*)
|
|
||||||
vendor=omron
|
|
||||||
;;
|
|
||||||
-genix*)
|
|
||||||
vendor=ns
|
|
||||||
;;
|
|
||||||
-mvs*)
|
|
||||||
vendor=ibm
|
|
||||||
;;
|
|
||||||
-ptx*)
|
|
||||||
vendor=sequent
|
|
||||||
;;
|
|
||||||
-vxsim* | -vxworks*)
|
|
||||||
vendor=wrs
|
|
||||||
;;
|
|
||||||
-aux*)
|
|
||||||
vendor=apple
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo $basic_machine$os
|
|
2425
contrib/traceroute/configure
vendored
2425
contrib/traceroute/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -1,140 +0,0 @@
|
|||||||
dnl @(#) $Id: configure.in,v 1.33 2000/12/18 09:38:26 leres Exp $ (LBL)
|
|
||||||
dnl
|
|
||||||
dnl Copyright (c) 1995, 1996, 1997, 1999, 2000
|
|
||||||
dnl The Regents of the University of California. All rights reserved.
|
|
||||||
dnl
|
|
||||||
dnl Process this file with autoconf to produce a configure script.
|
|
||||||
dnl
|
|
||||||
|
|
||||||
AC_INIT(traceroute.c)
|
|
||||||
|
|
||||||
AC_CANONICAL_SYSTEM
|
|
||||||
|
|
||||||
umask 002
|
|
||||||
|
|
||||||
if test -z "$PWD" ; then
|
|
||||||
PWD=`pwd`
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_LBL_C_INIT(V_CCOPT, V_INCLS)
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS(malloc.h sys/select.h sys/sockio.h net/route.h \
|
|
||||||
net/if_dl.h inet/mib2.h)
|
|
||||||
|
|
||||||
AC_REPLACE_FUNCS(strerror usleep)
|
|
||||||
AC_CHECK_FUNCS(setlinebuf)
|
|
||||||
if test $ac_cv_func_usleep = "no" ; then
|
|
||||||
AC_CHECK_FUNCS(nanosleep)
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_LBL_LIBRARY_NET
|
|
||||||
|
|
||||||
case "$target_os" in
|
|
||||||
|
|
||||||
bsd4*)
|
|
||||||
AC_DEFINE(HAVE_RAW_OPTIONS)
|
|
||||||
;;
|
|
||||||
|
|
||||||
bsdi*)
|
|
||||||
AC_DEFINE(HAVE_RAW_OPTIONS)
|
|
||||||
;;
|
|
||||||
|
|
||||||
freebsd*)
|
|
||||||
AC_DEFINE(HAVE_RAW_OPTIONS)
|
|
||||||
;;
|
|
||||||
|
|
||||||
linux*)
|
|
||||||
V_INCLS="$V_INCLS -Ilinux-include"
|
|
||||||
AC_DEFINE(BYTESWAP_IP_HDR)
|
|
||||||
;;
|
|
||||||
|
|
||||||
osf3*)
|
|
||||||
dnl Workaround around ip_hl vs. ip_vhl problem in netinet/ip.h
|
|
||||||
AC_DEFINE(__STDC__,2)
|
|
||||||
;;
|
|
||||||
|
|
||||||
solaris2.[[012345]]*)
|
|
||||||
AC_DEFINE(BYTESWAP_IP_HDR)
|
|
||||||
AC_DEFINE(CANT_HACK_IPCKSUM)
|
|
||||||
;;
|
|
||||||
|
|
||||||
solaris*)
|
|
||||||
AC_DEFINE(BYTESWAP_IP_HDR)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl What kind of routing table lookup do we have?
|
|
||||||
dnl
|
|
||||||
AC_MSG_CHECKING(routing table type)
|
|
||||||
t="generic"
|
|
||||||
if test $ac_cv_header_inet_mib2_h = yes ; then
|
|
||||||
t="mib"
|
|
||||||
elif test $ac_cv_header_net_route_h = yes -a \
|
|
||||||
$ac_cv_header_net_if_dl_h = yes ; then
|
|
||||||
t="socket"
|
|
||||||
elif test -f /proc/net/route ; then
|
|
||||||
t="linux"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_RESULT(${t})
|
|
||||||
V_FINDSADDR="findsaddr-${t}.c"
|
|
||||||
|
|
||||||
|
|
||||||
AC_LBL_CHECK_TYPE(int32_t, int)
|
|
||||||
AC_LBL_CHECK_TYPE(u_int32_t, u_int)
|
|
||||||
|
|
||||||
AC_LBL_DEVEL(V_CCOPT)
|
|
||||||
|
|
||||||
AC_LBL_SOCKADDR_SA_LEN
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(if struct icmp has icmp_nextmtu)
|
|
||||||
AC_CACHE_VAL(ac_cv_struct_icmp_has_icmp_nextmtu,
|
|
||||||
LBL_SAVE_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS $V_INCLS"
|
|
||||||
AC_TRY_COMPILE([
|
|
||||||
# include <sys/param.h>
|
|
||||||
# include <sys/socket.h>
|
|
||||||
# include <netinet/in_systm.h>
|
|
||||||
# if __STDC__
|
|
||||||
/* osf3 has REALLY good prototyes */
|
|
||||||
struct mbuf;
|
|
||||||
struct rtentry;
|
|
||||||
# endif
|
|
||||||
# include <netinet/in.h>
|
|
||||||
# include <netinet/ip.h>
|
|
||||||
# include <netinet/ip_icmp.h>
|
|
||||||
# include <netinet/if_ether.h>],
|
|
||||||
[u_int i = sizeof(((struct icmp *)0)->icmp_nextmtu)],
|
|
||||||
ac_cv_struct_icmp_has_icmp_nextmtu=yes,
|
|
||||||
ac_cv_struct_icmp_has_icmp_nextmtu=no)
|
|
||||||
CFLAGS="$LBL_SAVE_CFLAGS")
|
|
||||||
AC_MSG_RESULT($ac_cv_struct_icmp_has_icmp_nextmtu)
|
|
||||||
if test $ac_cv_struct_icmp_has_icmp_nextmtu = yes ; then
|
|
||||||
AC_DEFINE(HAVE_ICMP_NEXTMTU)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${srcdir}" = "." ; then
|
|
||||||
srcdirprefix=""
|
|
||||||
else
|
|
||||||
srcdirprefix="./"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -r ${srcdirprefix}lbl/gnuc.h ; then
|
|
||||||
rm -f gnuc.h
|
|
||||||
ln -s ${srcdirprefix}lbl/gnuc.h gnuc.h
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(V_CCOPT)
|
|
||||||
AC_SUBST(V_INCLS)
|
|
||||||
AC_SUBST(V_FINDSADDR)
|
|
||||||
|
|
||||||
AC_PROG_INSTALL
|
|
||||||
|
|
||||||
AC_OUTPUT(Makefile)
|
|
||||||
|
|
||||||
if test -f .devel ; then
|
|
||||||
make depend
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,97 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2000
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. All advertising materials mentioning features or use of this software
|
|
||||||
* must display the following acknowledgement:
|
|
||||||
* This product includes software developed by the Computer Systems
|
|
||||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
|
||||||
* 4. Neither the name of the University nor of the Laboratory may be used
|
|
||||||
* to endorse or promote products derived from this software without
|
|
||||||
* specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef lint
|
|
||||||
static const char rcsid[] =
|
|
||||||
"@(#) $Id: findsaddr-generic.c,v 1.1 2000/11/23 20:17:12 leres Exp $ (LBL)";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/param.h>
|
|
||||||
#include <sys/file.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#ifdef HAVE_SYS_SOCKIO_H
|
|
||||||
#include <sys/sockio.h>
|
|
||||||
#endif
|
|
||||||
#include <sys/time.h> /* concession to AIX */
|
|
||||||
|
|
||||||
#if __STDC__
|
|
||||||
struct mbuf;
|
|
||||||
struct rtentry;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <net/if.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include "gnuc.h"
|
|
||||||
#ifdef HAVE_OS_PROTO_H
|
|
||||||
#include "os-proto.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "findsaddr.h"
|
|
||||||
#include "ifaddrlist.h"
|
|
||||||
#include "traceroute.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return the source address for the given destination address
|
|
||||||
*/
|
|
||||||
const char *
|
|
||||||
findsaddr(register const struct sockaddr_in *to,
|
|
||||||
register struct sockaddr_in *from)
|
|
||||||
{
|
|
||||||
register int n;
|
|
||||||
struct ifaddrlist *al;
|
|
||||||
static char errbuf[132];
|
|
||||||
|
|
||||||
/* Get the interface address list */
|
|
||||||
if ((n = ifaddrlist(&al, errbuf)) < 0)
|
|
||||||
return (errbuf);
|
|
||||||
|
|
||||||
if (n == 0)
|
|
||||||
return ("Can't find any network interfaces");
|
|
||||||
|
|
||||||
setsin(from, al->addr);
|
|
||||||
if (n > 1)
|
|
||||||
fprintf(stderr,
|
|
||||||
"%s: Warning: Multiple interfaces found; using %s @ %s\n",
|
|
||||||
prog, inet_ntoa(from->sin_addr), al->device);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
@ -1,137 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2000
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. All advertising materials mentioning features or use of this software
|
|
||||||
* must display the following acknowledgement:
|
|
||||||
* This product includes software developed by the Computer Systems
|
|
||||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
|
||||||
* 4. Neither the name of the University nor of the Laboratory may be used
|
|
||||||
* to endorse or promote products derived from this software without
|
|
||||||
* specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef lint
|
|
||||||
static const char rcsid[] =
|
|
||||||
"@(#) $Id: findsaddr-linux.c,v 1.1 2000/11/23 20:17:12 leres Exp $ (LBL)";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* XXX linux is different (as usual) */
|
|
||||||
|
|
||||||
#include <sys/param.h>
|
|
||||||
#include <sys/file.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#ifdef HAVE_SYS_SOCKIO_H
|
|
||||||
#include <sys/sockio.h>
|
|
||||||
#endif
|
|
||||||
#include <sys/time.h> /* concession to AIX */
|
|
||||||
|
|
||||||
#if __STDC__
|
|
||||||
struct mbuf;
|
|
||||||
struct rtentry;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <net/if.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include "gnuc.h"
|
|
||||||
#ifdef HAVE_OS_PROTO_H
|
|
||||||
#include "os-proto.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "findsaddr.h"
|
|
||||||
#include "ifaddrlist.h"
|
|
||||||
#include "traceroute.h"
|
|
||||||
|
|
||||||
static const char route[] = "/proc/net/route";
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return the source address for the given destination address
|
|
||||||
*/
|
|
||||||
const char *
|
|
||||||
findsaddr(register const struct sockaddr_in *to,
|
|
||||||
register struct sockaddr_in *from)
|
|
||||||
{
|
|
||||||
register int i, n;
|
|
||||||
register FILE *f;
|
|
||||||
register u_int32_t mask;
|
|
||||||
u_int32_t dest, tmask;
|
|
||||||
struct ifaddrlist *al;
|
|
||||||
char buf[256], tdevice[256], device[256];
|
|
||||||
static char errbuf[132];
|
|
||||||
|
|
||||||
if ((f = fopen(route, "r")) == NULL) {
|
|
||||||
sprintf(errbuf, "open %s: %.128s", route, strerror(errno));
|
|
||||||
return (errbuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Find the appropriate interface */
|
|
||||||
n = 0;
|
|
||||||
mask = 0;
|
|
||||||
device[0] = '\0';
|
|
||||||
while (fgets(buf, sizeof(buf), f) != NULL) {
|
|
||||||
++n;
|
|
||||||
if (n == 1 && strncmp(buf, "Iface", 5) == 0)
|
|
||||||
continue;
|
|
||||||
if ((i = sscanf(buf, "%s %x %*s %*s %*s %*s %*s %x",
|
|
||||||
tdevice, &dest, &tmask)) != 3)
|
|
||||||
return ("junk in buffer");
|
|
||||||
if ((to->sin_addr.s_addr & tmask) == dest &&
|
|
||||||
(tmask > mask || mask == 0)) {
|
|
||||||
mask = tmask;
|
|
||||||
strcpy(device, tdevice);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
|
|
||||||
if (device[0] == '\0')
|
|
||||||
return ("Can't find interface");
|
|
||||||
|
|
||||||
/* Get the interface address list */
|
|
||||||
if ((n = ifaddrlist(&al, errbuf)) < 0)
|
|
||||||
return (errbuf);
|
|
||||||
|
|
||||||
if (n == 0)
|
|
||||||
return ("Can't find any network interfaces");
|
|
||||||
|
|
||||||
/* Find our appropriate source address */
|
|
||||||
for (i = n; i > 0; --i, ++al)
|
|
||||||
if (strcmp(device, al->device) == 0)
|
|
||||||
break;
|
|
||||||
if (i <= 0) {
|
|
||||||
sprintf(errbuf, "Can't find interface \"%.32s\"", device);
|
|
||||||
return (errbuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
setsin(from, al->addr);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
@ -1,378 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2000
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. All advertising materials mentioning features or use of this software
|
|
||||||
* must display the following acknowledgement:
|
|
||||||
* This product includes software developed by the Computer Systems
|
|
||||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
|
||||||
* 4. Neither the name of the University nor of the Laboratory may be used
|
|
||||||
* to endorse or promote products derived from this software without
|
|
||||||
* specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Seriously complex Solaris mib2 code */
|
|
||||||
|
|
||||||
#ifndef lint
|
|
||||||
static const char rcsid[] =
|
|
||||||
"@(#) $Id: findsaddr-mib.c,v 1.2 2000/12/13 21:31:49 leres Exp $ (LBL)";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/param.h>
|
|
||||||
#include <sys/file.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#ifdef HAVE_SYS_SOCKIO_H
|
|
||||||
#include <sys/sockio.h>
|
|
||||||
#endif
|
|
||||||
#include <sys/time.h> /* concession to AIX */
|
|
||||||
#include <sys/stream.h>
|
|
||||||
#include <sys/tihdr.h>
|
|
||||||
#include <sys/tiuser.h>
|
|
||||||
|
|
||||||
#if __STDC__
|
|
||||||
struct mbuf;
|
|
||||||
struct rtentry;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <net/if.h>
|
|
||||||
#include <net/route.h>
|
|
||||||
|
|
||||||
#include <netinet/in.h>
|
|
||||||
|
|
||||||
#include <inet/common.h>
|
|
||||||
#include <inet/mib2.h>
|
|
||||||
#include <inet/ip.h>
|
|
||||||
#include <inet/arp.h>
|
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#ifdef HAVE_MALLOC_H
|
|
||||||
#include <malloc.h>
|
|
||||||
#endif
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stropts.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include "gnuc.h"
|
|
||||||
#ifdef HAVE_OS_PROTO_H
|
|
||||||
#include "os-proto.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "findsaddr.h"
|
|
||||||
|
|
||||||
/* Compatibility with older versions of Solaris */
|
|
||||||
#ifndef IRE_CACHE
|
|
||||||
#define IRE_CACHE IRE_ROUTE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef T_CURRENT
|
|
||||||
#define T_CURRENT MI_T_CURRENT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct routelist {
|
|
||||||
struct routelist *next;
|
|
||||||
u_int32_t dest;
|
|
||||||
u_int32_t mask;
|
|
||||||
u_int32_t gate;
|
|
||||||
char ifname[64];
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Forwards */
|
|
||||||
static struct routelist *getroutelist(char *);
|
|
||||||
static void freeroutelist(struct routelist *);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return the source address for the given destination address
|
|
||||||
*
|
|
||||||
* Since solaris doesn't report the interface associated with every
|
|
||||||
* route, we have to make two passes over the routing table. The
|
|
||||||
* first pass should yield a host, net, default or interface route.
|
|
||||||
* If we find an interface route we're done. If not, we need to
|
|
||||||
* make a second pass to find the interface route for the gateway
|
|
||||||
* in the host, net, default route we found in the first pass.
|
|
||||||
*
|
|
||||||
* So instead of making a single pass through the tables as they
|
|
||||||
* are retrieved from the kernel, we must build a linked list...
|
|
||||||
*/
|
|
||||||
const char *
|
|
||||||
findsaddr(register const struct sockaddr_in *to,
|
|
||||||
register struct sockaddr_in *from)
|
|
||||||
{
|
|
||||||
register struct routelist *rl, *rl2, *routelist;
|
|
||||||
static char errbuf[512];
|
|
||||||
u_int32_t mask, gate;
|
|
||||||
|
|
||||||
/* Get the routing table */
|
|
||||||
routelist = getroutelist(errbuf);
|
|
||||||
if (routelist == NULL)
|
|
||||||
return (errbuf);
|
|
||||||
|
|
||||||
/* First pass; look for a route that matches */
|
|
||||||
mask = 0;
|
|
||||||
rl2 = NULL;
|
|
||||||
for (rl = routelist; rl != NULL; rl = rl->next) {
|
|
||||||
if ((to->sin_addr.s_addr & rl->mask) == rl->dest &&
|
|
||||||
(rl->mask > mask || mask == 0) &&
|
|
||||||
rl->gate != 0) {
|
|
||||||
mask = rl->mask;
|
|
||||||
rl2 = rl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (rl2 == NULL) {
|
|
||||||
freeroutelist(routelist);
|
|
||||||
sprintf(errbuf, "%s: %.128s",
|
|
||||||
inet_ntoa(to->sin_addr), strerror(EHOSTUNREACH));
|
|
||||||
return (errbuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* We're done if we got one with an interface */
|
|
||||||
if (rl2->ifname[0] != '\0') {
|
|
||||||
freeroutelist(routelist);
|
|
||||||
from->sin_addr.s_addr = rl2->gate;
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* First pass; look for a route that matches the gateway we found */
|
|
||||||
mask = 0;
|
|
||||||
gate = rl2->gate;
|
|
||||||
rl2 = NULL;
|
|
||||||
for (rl = routelist; rl != NULL; rl = rl->next) {
|
|
||||||
if ((gate & rl->mask) == rl->dest &&
|
|
||||||
(rl->mask > mask || mask == 0) &&
|
|
||||||
rl->gate != 0 &&
|
|
||||||
rl->ifname[0] != '\0') {
|
|
||||||
mask = rl->mask;
|
|
||||||
rl2 = rl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (rl2 == NULL) {
|
|
||||||
freeroutelist(routelist);
|
|
||||||
sprintf(errbuf, "%s: %.128s (second pass)",
|
|
||||||
inet_ntoa(to->sin_addr), strerror(EHOSTUNREACH));
|
|
||||||
return (errbuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
from->sin_addr.s_addr = rl2->gate;
|
|
||||||
freeroutelist(routelist);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Request mib */
|
|
||||||
struct mibrq {
|
|
||||||
struct T_optmgmt_req req;
|
|
||||||
struct opthdr hdr;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Reply mib */
|
|
||||||
struct mibrep {
|
|
||||||
struct T_optmgmt_ack ack;
|
|
||||||
struct opthdr hdr;
|
|
||||||
char buf[512];
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct mibrq mibrq = {
|
|
||||||
{ T_OPTMGMT_REQ, sizeof(mibrq.hdr), sizeof(mibrq.req), T_CURRENT },
|
|
||||||
{ MIB2_IP }
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct mibrep mibrep = {
|
|
||||||
{ 0, 0, 0 },
|
|
||||||
{ 0 },
|
|
||||||
{ 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct strbuf rqbuf = {
|
|
||||||
0, sizeof(mibrq), (char *)&mibrq
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct strbuf repbuf = {
|
|
||||||
sizeof(mibrep.buf), sizeof(mibrep.ack) + sizeof(mibrep.hdr),
|
|
||||||
(char *)&mibrep
|
|
||||||
};
|
|
||||||
|
|
||||||
static const char devip[] = "/dev/ip";
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Construct the list of routes
|
|
||||||
*/
|
|
||||||
static struct routelist *
|
|
||||||
getroutelist(char *errbuf)
|
|
||||||
{
|
|
||||||
register int s, stat, i;
|
|
||||||
register char *cp;
|
|
||||||
register struct T_optmgmt_ack *ackp;
|
|
||||||
register struct T_error_ack *eackp;
|
|
||||||
register struct opthdr *hp;
|
|
||||||
register mib2_ipRouteEntry_t *rp, *rp2;
|
|
||||||
register struct routelist *rl, *rl2, *routelist;
|
|
||||||
int flags;
|
|
||||||
struct strbuf repbuf2;
|
|
||||||
|
|
||||||
s = open(devip, O_RDWR, 0);
|
|
||||||
if (s < 0) {
|
|
||||||
sprintf(errbuf, "open %s: %.128s", devip, strerror(errno));
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((cp = "arp", ioctl(s, I_PUSH, cp) < 0) ||
|
|
||||||
(cp = "tcp", ioctl(s, I_PUSH, cp) < 0) ||
|
|
||||||
(cp = "udp", ioctl(s, I_PUSH, cp) < 0)) {
|
|
||||||
sprintf(errbuf, "I_PUSH %s: %.128s", cp, strerror(errno));
|
|
||||||
close(s);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
flags = 0;
|
|
||||||
if (putmsg(s, &rqbuf, NULL, flags) < 0) {
|
|
||||||
sprintf(errbuf, "putmsg: %.128s", strerror(errno));
|
|
||||||
close(s);
|
|
||||||
return (NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
routelist= NULL;
|
|
||||||
rl2 = NULL;
|
|
||||||
|
|
||||||
rp = NULL;
|
|
||||||
|
|
||||||
ackp = &mibrep.ack;
|
|
||||||
hp = &mibrep.hdr;
|
|
||||||
eackp = (struct T_error_ack *)ackp;
|
|
||||||
for (;;) {
|
|
||||||
flags = 0;
|
|
||||||
memset(repbuf.buf, 0, repbuf.len);
|
|
||||||
stat = getmsg(s, &repbuf, NULL, &flags);
|
|
||||||
if (stat < 0) {
|
|
||||||
sprintf(errbuf, "getmsg: %.128s", strerror(errno));
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
if (stat == 0 && repbuf.len >= sizeof(*ackp) &&
|
|
||||||
ackp->PRIM_type == T_OPTMGMT_ACK &&
|
|
||||||
ackp->MGMT_flags == T_SUCCESS &&
|
|
||||||
hp->len == 0) {
|
|
||||||
/* All done! */
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
if (repbuf.len >= sizeof(*eackp) &&
|
|
||||||
eackp->PRIM_type == T_ERROR_ACK) {
|
|
||||||
sprintf(errbuf, "getmsg err: %.128s",
|
|
||||||
strerror((eackp->TLI_error == TSYSERR) ?
|
|
||||||
eackp->UNIX_error : EPROTO));
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
if (stat != MOREDATA ||
|
|
||||||
repbuf.len < sizeof(*ackp) ||
|
|
||||||
ackp->PRIM_type != T_OPTMGMT_ACK ||
|
|
||||||
ackp->MGMT_flags != T_SUCCESS) {
|
|
||||||
strcpy(errbuf, "unknown getmsg err");
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
|
|
||||||
memset(&repbuf2, 0, sizeof(repbuf2));
|
|
||||||
repbuf2.maxlen = hp->len;
|
|
||||||
rp = malloc(hp->len);
|
|
||||||
if (rp == NULL) {
|
|
||||||
sprintf(errbuf, "malloc: %.128s", strerror(errno));
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
repbuf2.buf = (char *)rp;
|
|
||||||
|
|
||||||
flags = 0;
|
|
||||||
memset(repbuf2.buf, 0, repbuf2.len);
|
|
||||||
stat = getmsg(s, NULL, &repbuf2, &flags);
|
|
||||||
if (stat < 0) {
|
|
||||||
sprintf(errbuf, "getmsg2: %.128s", strerror(errno));
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Spin through the routes */
|
|
||||||
rp2 = rp;
|
|
||||||
for (rp2 = rp; (char *)rp2 < (char *)rp + repbuf2.len; ++rp2) {
|
|
||||||
if (hp->level != MIB2_IP || hp->name != MIB2_IP_21)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (rp2->ipRouteInfo.re_ire_type == IRE_CACHE ||
|
|
||||||
rp2->ipRouteInfo.re_ire_type == IRE_BROADCAST)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* Got one we want to keep */
|
|
||||||
rl = malloc(sizeof(*rl));
|
|
||||||
if (rl == NULL) {
|
|
||||||
sprintf(errbuf,
|
|
||||||
"malloc 2: %.128s", strerror(errno));
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
memset(rl, 0, sizeof(*rl));
|
|
||||||
|
|
||||||
rl->mask = rp2->ipRouteMask;
|
|
||||||
rl->dest = rp2->ipRouteDest;
|
|
||||||
rl->gate = rp2->ipRouteNextHop;
|
|
||||||
if (rp2->ipRouteIfIndex.o_length > 0) {
|
|
||||||
i = rp2->ipRouteIfIndex.o_length;
|
|
||||||
if (i > sizeof(rl->ifname) - 1)
|
|
||||||
i = sizeof(rl->ifname) - 1;
|
|
||||||
strncpy(rl->ifname,
|
|
||||||
rp2->ipRouteIfIndex.o_bytes, i);
|
|
||||||
rl->ifname[i] = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Keep in order (just for fun) */
|
|
||||||
if (routelist == NULL)
|
|
||||||
routelist = rl;
|
|
||||||
if (rl2 != NULL)
|
|
||||||
rl2->next = rl;
|
|
||||||
rl2 = rl;
|
|
||||||
}
|
|
||||||
free(rp);
|
|
||||||
rp = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
strcpy(errbuf, "failed!");
|
|
||||||
|
|
||||||
bail:
|
|
||||||
if (routelist != NULL) {
|
|
||||||
freeroutelist(routelist);
|
|
||||||
routelist = NULL;
|
|
||||||
}
|
|
||||||
done:
|
|
||||||
if (rp != NULL)
|
|
||||||
free(rp);
|
|
||||||
close(s);
|
|
||||||
return (routelist);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
freeroutelist(register struct routelist *rl)
|
|
||||||
{
|
|
||||||
register struct routelist *rl2;
|
|
||||||
|
|
||||||
while (rl != NULL) {
|
|
||||||
rl2 = rl->next;
|
|
||||||
free(rl);
|
|
||||||
rl = rl2;
|
|
||||||
}
|
|
||||||
}
|
|
@ -61,11 +61,6 @@ struct rtentry;
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "gnuc.h"
|
|
||||||
#ifdef HAVE_OS_PROTO_H
|
|
||||||
#include "os-proto.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "ifaddrlist.h"
|
#include "ifaddrlist.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,250 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
#
|
|
||||||
# install - install a program, script, or datafile
|
|
||||||
# This comes from X11R5 (mit/util/scripts/install.sh).
|
|
||||||
#
|
|
||||||
# Copyright 1991 by the Massachusetts Institute of Technology
|
|
||||||
#
|
|
||||||
# Permission to use, copy, modify, distribute, and sell this software and its
|
|
||||||
# documentation for any purpose is hereby granted without fee, provided that
|
|
||||||
# the above copyright notice appear in all copies and that both that
|
|
||||||
# copyright notice and this permission notice appear in supporting
|
|
||||||
# documentation, and that the name of M.I.T. not be used in advertising or
|
|
||||||
# publicity pertaining to distribution of the software without specific,
|
|
||||||
# written prior permission. M.I.T. makes no representations about the
|
|
||||||
# suitability of this software for any purpose. It is provided "as is"
|
|
||||||
# without express or implied warranty.
|
|
||||||
#
|
|
||||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
|
||||||
# `make' implicit rules from creating a file called install from it
|
|
||||||
# when there is no Makefile.
|
|
||||||
#
|
|
||||||
# This script is compatible with the BSD install script, but was written
|
|
||||||
# from scratch. It can only install one file at a time, a restriction
|
|
||||||
# shared with many OS's install programs.
|
|
||||||
|
|
||||||
|
|
||||||
# set DOITPROG to echo to test this script
|
|
||||||
|
|
||||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
|
||||||
doit="${DOITPROG-}"
|
|
||||||
|
|
||||||
|
|
||||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
|
||||||
|
|
||||||
mvprog="${MVPROG-mv}"
|
|
||||||
cpprog="${CPPROG-cp}"
|
|
||||||
chmodprog="${CHMODPROG-chmod}"
|
|
||||||
chownprog="${CHOWNPROG-chown}"
|
|
||||||
chgrpprog="${CHGRPPROG-chgrp}"
|
|
||||||
stripprog="${STRIPPROG-strip}"
|
|
||||||
rmprog="${RMPROG-rm}"
|
|
||||||
mkdirprog="${MKDIRPROG-mkdir}"
|
|
||||||
|
|
||||||
transformbasename=""
|
|
||||||
transform_arg=""
|
|
||||||
instcmd="$mvprog"
|
|
||||||
chmodcmd="$chmodprog 0755"
|
|
||||||
chowncmd=""
|
|
||||||
chgrpcmd=""
|
|
||||||
stripcmd=""
|
|
||||||
rmcmd="$rmprog -f"
|
|
||||||
mvcmd="$mvprog"
|
|
||||||
src=""
|
|
||||||
dst=""
|
|
||||||
dir_arg=""
|
|
||||||
|
|
||||||
while [ x"$1" != x ]; do
|
|
||||||
case $1 in
|
|
||||||
-c) instcmd="$cpprog"
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-d) dir_arg=true
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-m) chmodcmd="$chmodprog $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-o) chowncmd="$chownprog $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-g) chgrpcmd="$chgrpprog $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-s) stripcmd="$stripprog"
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
*) if [ x"$src" = x ]
|
|
||||||
then
|
|
||||||
src=$1
|
|
||||||
else
|
|
||||||
# this colon is to work around a 386BSD /bin/sh bug
|
|
||||||
:
|
|
||||||
dst=$1
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ x"$src" = x ]
|
|
||||||
then
|
|
||||||
echo "install: no input file specified"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ x"$dir_arg" != x ]; then
|
|
||||||
dst=$src
|
|
||||||
src=""
|
|
||||||
|
|
||||||
if [ -d $dst ]; then
|
|
||||||
instcmd=:
|
|
||||||
else
|
|
||||||
instcmd=mkdir
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
|
|
||||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
|
||||||
# might cause directories to be created, which would be especially bad
|
|
||||||
# if $src (and thus $dsttmp) contains '*'.
|
|
||||||
|
|
||||||
if [ -f $src -o -d $src ]
|
|
||||||
then
|
|
||||||
true
|
|
||||||
else
|
|
||||||
echo "install: $src does not exist"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ x"$dst" = x ]
|
|
||||||
then
|
|
||||||
echo "install: no destination specified"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If destination is a directory, append the input filename; if your system
|
|
||||||
# does not like double slashes in filenames, you may need to add some logic
|
|
||||||
|
|
||||||
if [ -d $dst ]
|
|
||||||
then
|
|
||||||
dst="$dst"/`basename $src`
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
## this sed command emulates the dirname command
|
|
||||||
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
|
||||||
|
|
||||||
# Make sure that the destination directory exists.
|
|
||||||
# this part is taken from Noah Friedman's mkinstalldirs script
|
|
||||||
|
|
||||||
# Skip lots of stat calls in the usual case.
|
|
||||||
if [ ! -d "$dstdir" ]; then
|
|
||||||
defaultIFS='
|
|
||||||
'
|
|
||||||
IFS="${IFS-${defaultIFS}}"
|
|
||||||
|
|
||||||
oIFS="${IFS}"
|
|
||||||
# Some sh's can't handle IFS=/ for some reason.
|
|
||||||
IFS='%'
|
|
||||||
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
|
||||||
IFS="${oIFS}"
|
|
||||||
|
|
||||||
pathcomp=''
|
|
||||||
|
|
||||||
while [ $# -ne 0 ] ; do
|
|
||||||
pathcomp="${pathcomp}${1}"
|
|
||||||
shift
|
|
||||||
|
|
||||||
if [ ! -d "${pathcomp}" ] ;
|
|
||||||
then
|
|
||||||
$mkdirprog "${pathcomp}"
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
|
|
||||||
pathcomp="${pathcomp}/"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ x"$dir_arg" != x ]
|
|
||||||
then
|
|
||||||
$doit $instcmd $dst &&
|
|
||||||
|
|
||||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
|
|
||||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
|
|
||||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
|
|
||||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
|
|
||||||
else
|
|
||||||
|
|
||||||
# If we're going to rename the final executable, determine the name now.
|
|
||||||
|
|
||||||
if [ x"$transformarg" = x ]
|
|
||||||
then
|
|
||||||
dstfile=`basename $dst`
|
|
||||||
else
|
|
||||||
dstfile=`basename $dst $transformbasename |
|
|
||||||
sed $transformarg`$transformbasename
|
|
||||||
fi
|
|
||||||
|
|
||||||
# don't allow the sed command to completely eliminate the filename
|
|
||||||
|
|
||||||
if [ x"$dstfile" = x ]
|
|
||||||
then
|
|
||||||
dstfile=`basename $dst`
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Make a temp file name in the proper directory.
|
|
||||||
|
|
||||||
dsttmp=$dstdir/#inst.$$#
|
|
||||||
|
|
||||||
# Move or copy the file name to the temp name
|
|
||||||
|
|
||||||
$doit $instcmd $src $dsttmp &&
|
|
||||||
|
|
||||||
trap "rm -f ${dsttmp}" 0 &&
|
|
||||||
|
|
||||||
# and set any options; do chmod last to preserve setuid bits
|
|
||||||
|
|
||||||
# If any of these fail, we abort the whole thing. If we want to
|
|
||||||
# ignore errors from any of these, just make sure not to ignore
|
|
||||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
|
||||||
|
|
||||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
|
|
||||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
|
|
||||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
|
|
||||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
|
|
||||||
|
|
||||||
# Now rename the file to the real destination.
|
|
||||||
|
|
||||||
$doit $rmcmd -f $dstdir/$dstfile &&
|
|
||||||
$doit $mvcmd $dsttmp $dstdir/$dstfile
|
|
||||||
|
|
||||||
fi &&
|
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,43 +0,0 @@
|
|||||||
/* @(#) $Header: gnuc.h,v 1.3 95/10/09 02:47:01 leres Exp $ (LBL) */
|
|
||||||
|
|
||||||
/* Define __P() macro, if necessary */
|
|
||||||
#ifndef __P
|
|
||||||
#if __STDC__
|
|
||||||
#define __P(protos) protos
|
|
||||||
#else
|
|
||||||
#define __P(protos) ()
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* inline foo */
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#define inline __inline
|
|
||||||
#else
|
|
||||||
#define inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Handle new and old "dead" routine prototypes
|
|
||||||
*
|
|
||||||
* For example:
|
|
||||||
*
|
|
||||||
* __dead void foo(void) __attribute__((volatile));
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#ifndef __dead
|
|
||||||
#define __dead volatile
|
|
||||||
#endif
|
|
||||||
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
|
|
||||||
#ifndef __attribute__
|
|
||||||
#define __attribute__(args)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#ifndef __dead
|
|
||||||
#define __dead
|
|
||||||
#endif
|
|
||||||
#ifndef __attribute__
|
|
||||||
#define __attribute__(args)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1993, 1994, 1995, 1996, 1997, 2000
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that: (1) source code distributions
|
|
||||||
* retain the above copyright notice and this paragraph in its entirety, (2)
|
|
||||||
* distributions including binary code include the above copyright notice and
|
|
||||||
* this paragraph in its entirety in the documentation or other materials
|
|
||||||
* provided with the distribution, and (3) all advertising materials mentioning
|
|
||||||
* features or use of this software display the following acknowledgement:
|
|
||||||
* ``This product includes software developed by the University of California,
|
|
||||||
* Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
|
|
||||||
* the University nor the names of its contributors may be used to endorse
|
|
||||||
* or promote products derived from this software without specific prior
|
|
||||||
* written permission.
|
|
||||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
||||||
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
* @(#) $Id: os-solaris2.h,v 1.18 1997/10/01 01:10:22 leres Exp leres $ (LBL)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Prototypes missing in SunOS 5 */
|
|
||||||
int daemon(int, int);
|
|
||||||
int dn_expand(const u_char *, const u_char *, const u_char *, char *, int);
|
|
||||||
int dn_skipname(const u_char *, const u_char *);
|
|
||||||
int flock(int, int);
|
|
||||||
int getdtablesize(void);
|
|
||||||
int gethostname(char *, int);
|
|
||||||
int getpagesize(void);
|
|
||||||
char *getusershell(void);
|
|
||||||
char *getwd(char *);
|
|
||||||
int iruserok(u_int, int, char *, char *);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct utmp;
|
|
||||||
void login(struct utmp *);
|
|
||||||
#endif
|
|
||||||
int logout(const char *);
|
|
||||||
int res_query(const char *, int, int, u_char *, int);
|
|
||||||
int setenv(const char *, const char *, int);
|
|
||||||
#if defined(_STDIO_H) && defined(HAVE_SETLINEBUF)
|
|
||||||
int setlinebuf(FILE *);
|
|
||||||
#endif
|
|
||||||
int sigblock(int);
|
|
||||||
int sigsetmask(int);
|
|
||||||
char *strerror(int);
|
|
||||||
int snprintf(char *, size_t, const char *, ...);
|
|
||||||
int strcasecmp(const char *, const char *);
|
|
||||||
void unsetenv(const char *);
|
|
@ -1,215 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1989, 1990, 1993, 1994, 1995, 1996
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that: (1) source code distributions
|
|
||||||
* retain the above copyright notice and this paragraph in its entirety, (2)
|
|
||||||
* distributions including binary code include the above copyright notice and
|
|
||||||
* this paragraph in its entirety in the documentation or other materials
|
|
||||||
* provided with the distribution, and (3) all advertising materials mentioning
|
|
||||||
* features or use of this software display the following acknowledgement:
|
|
||||||
* ``This product includes software developed by the University of California,
|
|
||||||
* Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
|
|
||||||
* the University nor the names of its contributors may be used to endorse
|
|
||||||
* or promote products derived from this software without specific prior
|
|
||||||
* written permission.
|
|
||||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
||||||
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
*
|
|
||||||
* @(#) $Header: os-sunos4.h,v 1.32 96/11/29 15:18:18 leres Exp $ (LBL)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Prototypes missing in SunOS 4 */
|
|
||||||
#ifdef FILE
|
|
||||||
int _filbuf(FILE *);
|
|
||||||
int _flsbuf(u_char, FILE *);
|
|
||||||
int fclose(FILE *);
|
|
||||||
int fflush(FILE *);
|
|
||||||
int fgetc(FILE *);
|
|
||||||
int fprintf(FILE *, const char *, ...);
|
|
||||||
int fputc(int, FILE *);
|
|
||||||
int fputs(const char *, FILE *);
|
|
||||||
u_int fread(void *, u_int, u_int, FILE *);
|
|
||||||
int fseek(FILE *, long, int);
|
|
||||||
u_int fwrite(const void *, u_int, u_int, FILE *);
|
|
||||||
int pclose(FILE *);
|
|
||||||
void rewind(FILE *);
|
|
||||||
void setbuf(FILE *, char *);
|
|
||||||
int setlinebuf(FILE *);
|
|
||||||
int ungetc(int, FILE *);
|
|
||||||
int vfprintf(FILE *, const char *, ...);
|
|
||||||
int vprintf(const char *, ...);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if __GNUC__ <= 1
|
|
||||||
int read(int, char *, u_int);
|
|
||||||
int write(int, char *, u_int);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
long a64l(const char *);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct sockaddr;
|
|
||||||
#endif
|
|
||||||
int accept(int, struct sockaddr *, int *);
|
|
||||||
int bind(int, struct sockaddr *, int);
|
|
||||||
int bcmp(const void *, const void *, u_int);
|
|
||||||
void bcopy(const void *, void *, u_int);
|
|
||||||
void bzero(void *, int);
|
|
||||||
int chroot(const char *);
|
|
||||||
int close(int);
|
|
||||||
void closelog(void);
|
|
||||||
int connect(int, struct sockaddr *, int);
|
|
||||||
char *crypt(const char *, const char *);
|
|
||||||
int daemon(int, int);
|
|
||||||
int fchmod(int, int);
|
|
||||||
int fchown(int, int, int);
|
|
||||||
void endgrent(void);
|
|
||||||
void endpwent(void);
|
|
||||||
void endservent(void);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct ether_addr;
|
|
||||||
#endif
|
|
||||||
struct ether_addr *ether_aton(const char *);
|
|
||||||
int flock(int, int);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct stat;
|
|
||||||
#endif
|
|
||||||
int fstat(int, struct stat *);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct statfs;
|
|
||||||
#endif
|
|
||||||
int fstatfs(int, struct statfs *);
|
|
||||||
int fsync(int);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct timeb;
|
|
||||||
#endif
|
|
||||||
int ftime(struct timeb *);
|
|
||||||
int ftruncate(int, off_t);
|
|
||||||
int getdtablesize(void);
|
|
||||||
long gethostid(void);
|
|
||||||
int gethostname(char *, int);
|
|
||||||
int getopt(int, char * const *, const char *);
|
|
||||||
int getpagesize(void);
|
|
||||||
char *getpass(char *);
|
|
||||||
int getpeername(int, struct sockaddr *, int *);
|
|
||||||
int getpriority(int, int);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct rlimit;
|
|
||||||
#endif
|
|
||||||
int getrlimit(int, struct rlimit *);
|
|
||||||
int getsockname(int, struct sockaddr *, int *);
|
|
||||||
int getsockopt(int, int, int, char *, int *);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct timeval;
|
|
||||||
struct timezone;
|
|
||||||
#endif
|
|
||||||
int gettimeofday(struct timeval *, struct timezone *);
|
|
||||||
char *getusershell(void);
|
|
||||||
char *getwd(char *);
|
|
||||||
int initgroups(const char *, int);
|
|
||||||
int ioctl(int, int, caddr_t);
|
|
||||||
int iruserok(u_long, int, char *, char *);
|
|
||||||
int isatty(int);
|
|
||||||
int killpg(int, int);
|
|
||||||
int listen(int, int);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct utmp;
|
|
||||||
#endif
|
|
||||||
void login(struct utmp *);
|
|
||||||
int logout(const char *);
|
|
||||||
off_t lseek(int, off_t, int);
|
|
||||||
int lstat(const char *, struct stat *);
|
|
||||||
int mkstemp(char *);
|
|
||||||
char *mktemp(char *);
|
|
||||||
int munmap(caddr_t, int);
|
|
||||||
void openlog(const char *, int, int);
|
|
||||||
void perror(const char *);
|
|
||||||
int printf(const char *, ...);
|
|
||||||
int puts(const char *);
|
|
||||||
long random(void);
|
|
||||||
int readlink(const char *, char *, int);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct iovec;
|
|
||||||
#endif
|
|
||||||
int readv(int, struct iovec *, int);
|
|
||||||
int recv(int, char *, u_int, int);
|
|
||||||
int recvfrom(int, char *, u_int, int, struct sockaddr *, int *);
|
|
||||||
int rename(const char *, const char *);
|
|
||||||
int rcmd(char **, u_short, char *, char *, char *, int *);
|
|
||||||
int rresvport(int *);
|
|
||||||
int send(int, char *, u_int, int);
|
|
||||||
int sendto(int, char *, u_int, int, struct sockaddr *, int);
|
|
||||||
int setenv(const char *, const char *, int);
|
|
||||||
int seteuid(int);
|
|
||||||
int setpriority(int, int, int);
|
|
||||||
int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
|
|
||||||
int setpgrp(int, int);
|
|
||||||
void setpwent(void);
|
|
||||||
int setrlimit(int, struct rlimit *);
|
|
||||||
void setservent(int);
|
|
||||||
int setsockopt(int, int, int, char *, int);
|
|
||||||
int shutdown(int, int);
|
|
||||||
int sigblock(int);
|
|
||||||
void (*signal (int, void (*) (int))) (int);
|
|
||||||
int sigpause(int);
|
|
||||||
int sigsetmask(int);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct sigvec;
|
|
||||||
#endif
|
|
||||||
int sigvec(int, struct sigvec *, struct sigvec*);
|
|
||||||
int snprintf(char *, size_t, const char *, ...);
|
|
||||||
int socket(int, int, int);
|
|
||||||
int socketpair(int, int, int, int *);
|
|
||||||
int symlink(const char *, const char *);
|
|
||||||
void srandom(int);
|
|
||||||
int sscanf(char *, const char *, ...);
|
|
||||||
int stat(const char *, struct stat *);
|
|
||||||
int statfs(char *, struct statfs *);
|
|
||||||
char *strerror(int);
|
|
||||||
int strcasecmp(const char *, const char *);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct tm;
|
|
||||||
#endif
|
|
||||||
int strftime(char *, int, char *, struct tm *);
|
|
||||||
int strncasecmp(const char *, const char *, int);
|
|
||||||
long strtol(const char *, char **, int);
|
|
||||||
void sync(void);
|
|
||||||
void syslog(int, const char *, ...);
|
|
||||||
int system(const char *);
|
|
||||||
long tell(int);
|
|
||||||
time_t time(time_t *);
|
|
||||||
char *timezone(int, int);
|
|
||||||
int tolower(int);
|
|
||||||
int toupper(int);
|
|
||||||
int truncate(char *, off_t);
|
|
||||||
void unsetenv(const char *);
|
|
||||||
int vfork(void);
|
|
||||||
int vsprintf(char *, const char *, ...);
|
|
||||||
int writev(int, struct iovec *, int);
|
|
||||||
#ifdef __STDC__
|
|
||||||
struct rusage;
|
|
||||||
#endif
|
|
||||||
int utimes(const char *, struct timeval *);
|
|
||||||
#if __GNUC__ <= 1
|
|
||||||
int wait(int *);
|
|
||||||
pid_t wait3(int *, int, struct rusage *);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Ugly signal hacking */
|
|
||||||
#ifdef SIG_ERR
|
|
||||||
#undef SIG_ERR
|
|
||||||
#define SIG_ERR (void (*)(int))-1
|
|
||||||
#undef SIG_DFL
|
|
||||||
#define SIG_DFL (void (*)(int))0
|
|
||||||
#undef SIG_IGN
|
|
||||||
#define SIG_IGN (void (*)(int))1
|
|
||||||
|
|
||||||
#ifdef KERNEL
|
|
||||||
#undef SIG_CATCH
|
|
||||||
#define SIG_CATCH (void (*)(int))2
|
|
||||||
#endif
|
|
||||||
#undef SIG_HOLD
|
|
||||||
#define SIG_HOLD (void (*)(int))3
|
|
||||||
#endif
|
|
@ -1,109 +0,0 @@
|
|||||||
#!/bin/sh -
|
|
||||||
#
|
|
||||||
# Copyright (c) 1994, 1996
|
|
||||||
# The Regents of the University of California. All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms are permitted
|
|
||||||
# provided that this notice is preserved and that due credit is given
|
|
||||||
# to the University of California at Berkeley. The name of the University
|
|
||||||
# may not be used to endorse or promote products derived from this
|
|
||||||
# software without specific prior written permission. This software
|
|
||||||
# is provided ``as is'' without express or implied warranty.
|
|
||||||
#
|
|
||||||
# @(#)mkdep.sh 5.11 (Berkeley) 5/5/88
|
|
||||||
#
|
|
||||||
|
|
||||||
PATH=/bin:/usr/bin:/usr/ucb:/usr/local:/usr/local/bin
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
MAKE=Makefile # default makefile name is "Makefile"
|
|
||||||
CC=cc # default C compiler is "cc"
|
|
||||||
|
|
||||||
while :
|
|
||||||
do case "$1" in
|
|
||||||
# -c allows you to specify the C compiler
|
|
||||||
-c)
|
|
||||||
CC=$2
|
|
||||||
shift; shift ;;
|
|
||||||
|
|
||||||
# -f allows you to select a makefile name
|
|
||||||
-f)
|
|
||||||
MAKE=$2
|
|
||||||
shift; shift ;;
|
|
||||||
|
|
||||||
# the -p flag produces "program: program.c" style dependencies
|
|
||||||
# so .o's don't get produced
|
|
||||||
-p)
|
|
||||||
SED='s;\.o;;'
|
|
||||||
shift ;;
|
|
||||||
*)
|
|
||||||
break ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $# = 0 ] ; then
|
|
||||||
echo 'usage: mkdep [-p] [-c cc] [-f makefile] [flags] file ...'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -w $MAKE ]; then
|
|
||||||
echo "mkdep: no writeable file \"$MAKE\""
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
TMP=/tmp/mkdep$$
|
|
||||||
|
|
||||||
trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
|
|
||||||
|
|
||||||
cp $MAKE ${MAKE}.bak
|
|
||||||
|
|
||||||
sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
|
|
||||||
|
|
||||||
cat << _EOF_ >> $TMP
|
|
||||||
# DO NOT DELETE THIS LINE -- mkdep uses it.
|
|
||||||
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
|
|
||||||
|
|
||||||
_EOF_
|
|
||||||
|
|
||||||
# If your compiler doesn't have -M, add it. If you can't, the next two
|
|
||||||
# lines will try and replace the "cc -M". The real problem is that this
|
|
||||||
# hack can't deal with anything that requires a search path, and doesn't
|
|
||||||
# even try for anything using bracket (<>) syntax.
|
|
||||||
#
|
|
||||||
# egrep '^#include[ ]*".*"' /dev/null $* |
|
|
||||||
# sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' |
|
|
||||||
|
|
||||||
# XXX this doesn't work with things like "-DDECLWAITSTATUS=union\ wait"
|
|
||||||
$CC -M $* |
|
|
||||||
sed "
|
|
||||||
s; \./; ;g
|
|
||||||
$SED" |
|
|
||||||
awk '{
|
|
||||||
if ($1 != prev) {
|
|
||||||
if (rec != "")
|
|
||||||
print rec;
|
|
||||||
rec = $0;
|
|
||||||
prev = $1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (length(rec $2) > 78) {
|
|
||||||
print rec;
|
|
||||||
rec = $0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
rec = rec " " $2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
END {
|
|
||||||
print rec
|
|
||||||
}' >> $TMP
|
|
||||||
|
|
||||||
cat << _EOF_ >> $TMP
|
|
||||||
|
|
||||||
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
|
|
||||||
_EOF_
|
|
||||||
|
|
||||||
# copy to preserve permissions
|
|
||||||
cp $TMP $MAKE
|
|
||||||
rm -f ${MAKE}.bak $TMP
|
|
||||||
exit 0
|
|
@ -1,74 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1988, 1993
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. All advertising materials mentioning features or use of this software
|
|
||||||
* must display the following acknowledgement:
|
|
||||||
* This product includes software developed by the University of
|
|
||||||
* California, Berkeley and its contributors.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
static const char sccsid[] = "@(#)strerror.c 8.1 (Berkeley) 6/4/93";
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "gnuc.h"
|
|
||||||
#ifdef HAVE_OS_PROTO_H
|
|
||||||
#include "os-proto.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char *
|
|
||||||
strerror(num)
|
|
||||||
int num;
|
|
||||||
{
|
|
||||||
extern int sys_nerr;
|
|
||||||
extern char *sys_errlist[];
|
|
||||||
#define UPREFIX "Unknown error: "
|
|
||||||
static char ebuf[40] = UPREFIX; /* 64-bit number + slop */
|
|
||||||
register unsigned int errnum;
|
|
||||||
register char *p, *t;
|
|
||||||
char tmp[40];
|
|
||||||
|
|
||||||
errnum = num; /* convert to unsigned */
|
|
||||||
if (errnum < sys_nerr)
|
|
||||||
return(sys_errlist[errnum]);
|
|
||||||
|
|
||||||
/* Do this by hand, so we don't include stdio(3). */
|
|
||||||
t = tmp;
|
|
||||||
do {
|
|
||||||
*t++ = "0123456789"[errnum % 10];
|
|
||||||
} while (errnum /= 10);
|
|
||||||
for (p = ebuf + sizeof(UPREFIX) - 1;;) {
|
|
||||||
*p++ = *--t;
|
|
||||||
if (t <= tmp)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return(ebuf);
|
|
||||||
}
|
|
@ -245,11 +245,6 @@ static const char rcsid[] =
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "gnuc.h"
|
|
||||||
#ifdef HAVE_OS_PROTO_H
|
|
||||||
#include "os-proto.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* rfc1716 */
|
/* rfc1716 */
|
||||||
#ifndef ICMP_UNREACH_FILTER_PROHIB
|
#ifndef ICMP_UNREACH_FILTER_PROHIB
|
||||||
#define ICMP_UNREACH_FILTER_PROHIB 13 /* admin prohibited filter */
|
#define ICMP_UNREACH_FILTER_PROHIB 13 /* admin prohibited filter */
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
#ifndef lint
|
|
||||||
static const char rcsid[] =
|
|
||||||
"@(#) $Id: usleep.c,v 1.1 2000/09/16 05:31:06 leres Exp $ (LBL)";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "gnuc.h"
|
|
||||||
#ifdef HAVE_OS_PROTO_H
|
|
||||||
#include "os-proto.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
usleep(register u_int useconds)
|
|
||||||
{
|
|
||||||
#ifdef HAVE_NANOSLEEP
|
|
||||||
struct timespec ts;
|
|
||||||
|
|
||||||
ts.tv_sec = useconds / 1000000;
|
|
||||||
ts.tv_nsec = (useconds % 1000000) * 1000;
|
|
||||||
return (nanosleep(&ts, NULL));
|
|
||||||
#else
|
|
||||||
struct timeval tv;
|
|
||||||
|
|
||||||
tv.tv_sec = useconds / 1000000;
|
|
||||||
tv.tv_usec = useconds % 1000000;
|
|
||||||
return (select(0, NULL, NULL, NULL, &tv));
|
|
||||||
#endif
|
|
||||||
}
|
|
@ -29,7 +29,7 @@ DPADD= ${LIBIPSEC}
|
|||||||
LDADD= -lipsec
|
LDADD= -lipsec
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
CFLAGS+= -I${TRACEROUTE_DISTDIR}/lbl -I${TRACEROUTE_DISTDIR}
|
CFLAGS+= -I${TRACEROUTE_DISTDIR}
|
||||||
|
|
||||||
WARNS?= 0
|
WARNS?= 0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user