summaryrefslogtreecommitdiff
path: root/package/mtr
diff options
context:
space:
mode:
authorwbx <wbx@hydrogenium.(none)>2009-05-17 14:41:34 +0200
committerwbx <wbx@hydrogenium.(none)>2009-05-17 14:41:34 +0200
commit219a6dab8995aad9ac4860cc1a84d6f3509a03a4 (patch)
treeb9c0f3c43aebba2fcfef777592d0add39f2072f4 /package/mtr
Initial import
Diffstat (limited to 'package/mtr')
-rw-r--r--package/mtr/Config.in18
-rw-r--r--package/mtr/Makefile28
-rw-r--r--package/mtr/ipkg/mtr.control15
-rw-r--r--package/mtr/patches/501-dns.patch511
-rw-r--r--package/mtr/patches/patch-Makefile763
-rw-r--r--package/mtr/patches/patch-curses_c21
-rw-r--r--package/mtr/patches/patch-report_c30
7 files changed, 1386 insertions, 0 deletions
diff --git a/package/mtr/Config.in b/package/mtr/Config.in
new file mode 100644
index 000000000..7de08c5c8
--- /dev/null
+++ b/package/mtr/Config.in
@@ -0,0 +1,18 @@
+config ADK_PACKAGE_MTR
+ prompt "mtr............................... Full screen ncurses traceroute tool"
+ tristate
+ default n
+ select ADK_PACKAGE_LIBNCURSES
+ help
+ mtr combines the functionality of the 'traceroute' and 'ping' programs
+ in a single network diagnostic tool.
+ .
+ As mtr starts, it investigates the network connection between the host
+ mtr runs on and a user-specified destination host. After it
+ determines the address of each network hop between the machines,
+ it sends a sequence ICMP ECHO requests to each one to determine the
+ quality of the link to each machine. As it does this, it prints
+ running statistics about each machine.
+ .
+ http://www.bitwizard.nl/mtr/
+
diff --git a/package/mtr/Makefile b/package/mtr/Makefile
new file mode 100644
index 000000000..eac1e3d72
--- /dev/null
+++ b/package/mtr/Makefile
@@ -0,0 +1,28 @@
+# $Id$
+#-
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:= mtr
+PKG_VERSION:= 0.75
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 23baca52d0922c2ecba7eba05317868c
+MASTER_SITES:= ftp://ftp.bitwizard.nl/mtr/
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,MTR,mtr,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+
+CONFIGURE_STYLE+= gnu
+CONFIGURE_ENV+= ac_cv_lib_resolv_res_mkquery=yes
+CONFIGURE_ARGS+= --without-gtk
+BUILD_STYLE:= auto
+INSTALL_STYLE:= auto
+
+post-install:
+ ${INSTALL_DIR} ${IDIR_MTR}/usr/sbin
+ ${INSTALL_BIN} ${WRKINST}/usr/sbin/mtr ${IDIR_MTR}/usr/sbin/
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/mtr/ipkg/mtr.control b/package/mtr/ipkg/mtr.control
new file mode 100644
index 000000000..c5dad152c
--- /dev/null
+++ b/package/mtr/ipkg/mtr.control
@@ -0,0 +1,15 @@
+Package: mtr
+Priority: optional
+Section: net
+Depends: libncurses
+Description: Full screen ncurses traceroute/ping tool
+ mtr combines the functionality of the 'traceroute' and 'ping' programs
+ in a single network diagnostic tool.
+ .
+ As mtr starts, it investigates the network connection between the host
+ mtr runs on and a user-specified destination host. After it
+ determines the address of each network hop between the machines,
+ it sends a sequence ICMP ECHO requests to each one to determine the
+ quality of the link to each machine. As it does this, it prints
+ running statistics about each machine.
+
diff --git a/package/mtr/patches/501-dns.patch b/package/mtr/patches/501-dns.patch
new file mode 100644
index 000000000..f1c915580
--- /dev/null
+++ b/package/mtr/patches/501-dns.patch
@@ -0,0 +1,511 @@
+diff -Naur mtr-0.69.old/dns.c mtr-0.69.new/dns.c
+--- mtr-0.69.old/dns.c 2005-01-11 09:32:42.000000000 +0100
++++ mtr-0.69.new/dns.c 2005-10-03 21:31:27.000000000 +0200
+@@ -853,6 +853,507 @@
+ fputs("\r",stderr);
+ }
+
++#ifdef __UCLIBC__
++
++static const char digits[] = "0123456789";
++#define __set_errno(e) (errno = (e))
++
++#define NS_PUT16(s, cp) do { \
++ register u_int16_t t_s = (u_int16_t)(s); \
++ register u_char *t_cp = (u_char *)(cp); \
++ *t_cp++ = t_s >> 8; \
++ *t_cp = t_s; \
++ (cp) += NS_INT16SZ; \
++} while (0)
++
++
++
++#define NS_PUT32(l, cp) do { \
++ register u_int32_t t_l = (u_int32_t)(l); \
++ register u_char *t_cp = (u_char *)(cp); \
++ *t_cp++ = t_l >> 24; \
++ *t_cp++ = t_l >> 16; \
++ *t_cp++ = t_l >> 8; \
++ *t_cp = t_l; \
++ (cp) += NS_INT32SZ; \
++} while (0)
++
++
++void
++ns_put16(u_int src, u_char *dst) {
++ NS_PUT16(src, dst);
++}
++
++void
++ns_put32(u_long src, u_char *dst) {
++ NS_PUT32(src, dst);
++}
++
++void __putshort(u_int16_t src, u_char *dst) { ns_put16(src, dst); }
++void __putlong(u_int32_t src, u_char *dst) { ns_put32(src, dst); }
++
++int
++mklower(int ch) {
++ if (ch >= 0x41 && ch <= 0x5A)
++ return (ch + 0x20);
++ return (ch);
++}
++
++
++static int
++dn_find(const u_char *domain, const u_char *msg,
++ const u_char * const *dnptrs,
++ const u_char * const *lastdnptr)
++{
++ const u_char *dn, *cp, *sp;
++ const u_char * const *cpp;
++ u_int n;
++
++ for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
++ sp = *cpp;
++ /*
++ * terminate search on:
++ * root label
++ * compression pointer
++ * unusable offset
++ */
++ while (*sp != 0 && (*sp & NS_CMPRSFLGS) == 0 &&
++ (sp - msg) < 0x4000) {
++ dn = domain;
++ cp = sp;
++ while ((n = *cp++) != 0) {
++ /*
++ * check for indirection
++ */
++ switch (n & NS_CMPRSFLGS) {
++ case 0: /* normal case, n == len */
++ if (n != *dn++)
++ goto next;
++ for ((void)NULL; n > 0; n--)
++ if (mklower(*dn++) !=
++ mklower(*cp++))
++ goto next;
++ /* Is next root for both ? */
++ if (*dn == '\0' && *cp == '\0')
++ return (sp - msg);
++ if (*dn)
++ continue;
++ goto next;
++
++ case NS_CMPRSFLGS: /* indirection */
++ cp = msg + (((n & 0x3f) << 8) | *cp);
++ break;
++
++ default: /* illegal type */
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ }
++ next:
++ sp += *sp + 1;
++ }
++ }
++ __set_errno (ENOENT);
++ return (-1);
++}
++
++
++int
++ns_name_pack(const u_char *src, u_char *dst, int dstsiz,
++ const u_char **dnptrs, const u_char **lastdnptr)
++{
++ u_char *dstp;
++ const u_char **cpp, **lpp, *eob, *msg;
++ const u_char *srcp;
++ int n, l, first = 1;
++
++ srcp = src;
++ dstp = dst;
++ eob = dstp + dstsiz;
++ lpp = cpp = NULL;
++ if (dnptrs != NULL) {
++ if ((msg = *dnptrs++) != NULL) {
++ for (cpp = dnptrs; *cpp != NULL; cpp++)
++ (void)NULL;
++ lpp = cpp; /* end of list to search */
++ }
++ } else
++ msg = NULL;
++
++ /* make sure the domain we are about to add is legal */
++ l = 0;
++ do {
++ n = *srcp;
++ if ((n & NS_CMPRSFLGS) != 0 && n != 0x41) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ if (n == 0x41)
++ n = *++srcp / 8;
++ l += n + 1;
++ if (l > MAXCDNAME) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ srcp += n + 1;
++ } while (n != 0);
++
++ /* from here on we need to reset compression pointer array on error */
++ srcp = src;
++ do {
++ /* Look to see if we can use pointers. */
++ n = *srcp;
++ if (n != 0 && n != 0x41 && msg != NULL) {
++ l = dn_find(srcp, msg, (const u_char * const *)dnptrs,
++ (const u_char * const *)lpp);
++ if (l >= 0) {
++ if (dstp + 1 >= eob) {
++ goto cleanup;
++ }
++ *dstp++ = (l >> 8) | NS_CMPRSFLGS;
++ *dstp++ = l % 256;
++ return (dstp - dst);
++ }
++ /* Not found, save it. */
++ if (lastdnptr != NULL && cpp < lastdnptr - 1 &&
++ (dstp - msg) < 0x4000 && first) {
++ *cpp++ = dstp;
++ *cpp = NULL;
++ first = 0;
++ }
++ }
++ /* copy label to buffer */
++ if ((n & NS_CMPRSFLGS) != 0 && n != 0x41) { /* Should not happen. */
++ goto cleanup;
++ }
++ if (n == 0x41) {
++ n = *++srcp / 8;
++ if (dstp + 1 >= eob)
++ goto cleanup;
++ *dstp++ = 0x41;
++ }
++ if (dstp + 1 + n >= eob) {
++ goto cleanup;
++ }
++ memcpy(dstp, srcp, n + 1);
++ srcp += n + 1;
++ dstp += n + 1;
++ } while (n != 0);
++
++ if (dstp > eob) {
++cleanup:
++ if (msg != NULL)
++ *lpp = NULL;
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ return (dstp - dst);
++}
++
++
++int
++ns_name_pton(const char *src, u_char *dst, size_t dstsiz) {
++ u_char *label, *bp, *eom;
++ int c, n, escaped;
++ char *cp;
++
++ escaped = 0;
++ bp = dst;
++ eom = dst + dstsiz;
++ label = bp++;
++
++ while ((c = *src++) != 0) {
++ if (escaped) {
++ if ((cp = strchr(digits, c)) != NULL) {
++ n = (cp - digits) * 100;
++ if ((c = *src++) == 0 ||
++ (cp = strchr(digits, c)) == NULL) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ n += (cp - digits) * 10;
++ if ((c = *src++) == 0 ||
++ (cp = strchr(digits, c)) == NULL) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ n += (cp - digits);
++ if (n > 255) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ c = n;
++ } else if (c == '[' && label == bp - 1 && *src == 'x') {
++ /* Theoretically we would have to handle \[o
++ as well but we do not since we do not need
++ it internally. */
++ *label = 0x41;
++ label = bp++;
++ ++src;
++ while (isxdigit (*src)) {
++ n = *src > '9' ? *src - 'a' + 10 : *src - '0';
++ ++src;
++ if (! isxdigit(*src)) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ n <<= 4;
++ n += *src > '9' ? *src - 'a' + 10 : *src - '0';
++ if (bp + 1 >= eom) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ *bp++ = n;
++ ++src;
++ }
++ *label = (bp - label - 1) * 8;
++ if (*src++ != ']' || *src++ != '.') {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ escaped = 0;
++ label = bp++;
++ if (bp >= eom) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ continue;
++ }
++ escaped = 0;
++ } else if (c == '\\') {
++ escaped = 1;
++ continue;
++ } else if (c == '.') {
++ c = (bp - label - 1);
++ if ((c & NS_CMPRSFLGS) != 0) { /* Label too big. */
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ if (label >= eom) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ *label = c;
++ /* Fully qualified ? */
++ if (*src == '\0') {
++ if (c != 0) {
++ if (bp >= eom) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ *bp++ = '\0';
++ }
++ if ((bp - dst) > MAXCDNAME) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ return (1);
++ }
++ if (c == 0 || *src == '.') {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ label = bp++;
++ continue;
++ }
++ if (bp >= eom) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ *bp++ = (u_char)c;
++ }
++ c = (bp - label - 1);
++ if ((c & NS_CMPRSFLGS) != 0) { /* Label too big. */
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ if (label >= eom) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ *label = c;
++ if (c != 0) {
++ if (bp >= eom) {
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ *bp++ = 0;
++ }
++ if ((bp - dst) > MAXCDNAME) { /* src too big */
++ __set_errno (EMSGSIZE);
++ return (-1);
++ }
++ return (0);
++}
++
++
++
++int
++ns_name_compress(const char *src, u_char *dst, size_t dstsiz,
++ const u_char **dnptrs, const u_char **lastdnptr)
++{
++ u_char tmp[NS_MAXCDNAME];
++
++ if (ns_name_pton(src, tmp, sizeof tmp) == -1)
++ return (-1);
++ return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr));
++}
++
++
++int
++dn_comp(const char *src, u_char *dst, int dstsiz,
++ u_char **dnptrs, u_char **lastdnptr)
++{
++ return (ns_name_compress(src, dst, (size_t)dstsiz,
++ (const u_char **)dnptrs,
++ (const u_char **)lastdnptr));
++}
++
++
++
++
++int
++res_nmkquery(res_state statp,
++ int op, /* opcode of query */
++ const char *dname, /* domain name */
++ int class, int type, /* class and type of query */
++ const u_char *data, /* resource record data */
++ int datalen, /* length of data */
++ const u_char *newrr_in, /* new rr for modify or append */
++ u_char *buf, /* buffer to put query */
++ int buflen) /* size of buffer */
++{
++ register HEADER *hp;
++ register u_char *cp;
++ register int n;
++ u_char *dnptrs[20], **dpp, **lastdnptr;
++
++#ifdef DEBUG
++ if (statp->options & RES_DEBUG)
++ printf(";; res_nmkquery(%s, %s, %s, %s)\n",
++ _res_opcodes[op], dname, p_class(class), p_type(type));
++#endif
++ /*
++ * Initialize header fields.
++ */
++ if ((buf == NULL) || (buflen < HFIXEDSZ))
++ return (-1);
++ memset(buf, 0, HFIXEDSZ);
++ hp = (HEADER *) buf;
++ /* We randomize the IDs every time. The old code just
++ incremented by one after the initial randomization which
++ still predictable if the application does multiple
++ requests. */
++#if 0
++ hp->id = htons(++statp->id);
++#else
++ hp->id = htons(statp->id);
++ int randombits;
++ do
++ {
++#ifdef RANDOM_BITS
++ RANDOM_BITS (randombits);
++#else
++ struct timeval tv;
++ gettimeofday (&tv, NULL);
++ randombits = (tv.tv_sec << 8) ^ tv.tv_usec;
++#endif
++ }
++ while ((randombits & 0xffff) == 0);
++ statp->id = (statp->id + randombits) & 0xffff;
++#endif
++ hp->opcode = op;
++ hp->rd = (statp->options & RES_RECURSE) != 0;
++ hp->rcode = NOERROR;
++ cp = buf + HFIXEDSZ;
++ buflen -= HFIXEDSZ;
++ dpp = dnptrs;
++ *dpp++ = buf;
++ *dpp++ = NULL;
++ lastdnptr = dnptrs + sizeof dnptrs / sizeof dnptrs[0];
++ /*
++ * perform opcode specific processing
++ */
++ switch (op) {
++ case QUERY: /*FALLTHROUGH*/
++ case NS_NOTIFY_OP:
++ if ((buflen -= QFIXEDSZ) < 0)
++ return (-1);
++ if ((n = dn_comp(dname, cp, buflen, dnptrs, lastdnptr)) < 0)
++ return (-1);
++ cp += n;
++ buflen -= n;
++ __putshort(type, cp);
++ cp += INT16SZ;
++ __putshort(class, cp);
++ cp += INT16SZ;
++ hp->qdcount = htons(1);
++ if (op == QUERY || data == NULL)
++ break;
++ /*
++ * Make an additional record for completion domain.
++ */
++ buflen -= RRFIXEDSZ;
++ n = dn_comp((char *)data, cp, buflen, dnptrs, lastdnptr);
++ if (n < 0)
++ return (-1);
++ cp += n;
++ buflen -= n;
++ __putshort(T_NULL, cp);
++ cp += INT16SZ;
++ __putshort(class, cp);
++ cp += INT16SZ;
++ __putlong(0, cp);
++ cp += INT32SZ;
++ __putshort(0, cp);
++ cp += INT16SZ;
++ hp->arcount = htons(1);
++ break;
++
++ case IQUERY:
++ /*
++ * Initialize answer section
++ */
++ if (buflen < 1 + RRFIXEDSZ + datalen)
++ return (-1);
++ *cp++ = '\0'; /* no domain name */
++ __putshort(type, cp);
++ cp += INT16SZ;
++ __putshort(class, cp);
++ cp += INT16SZ;
++ __putlong(0, cp);
++ cp += INT32SZ;
++ __putshort(datalen, cp);
++ cp += INT16SZ;
++ if (datalen) {
++ memcpy(cp, data, datalen);
++ cp += datalen;
++ }
++ hp->ancount = htons(1);
++ break;
++
++ default:
++ return (-1);
++ }
++ return (cp - buf);
++}
++
++int
++res_mkquery(int op, /* opcode of query */
++ const char *dname, /* domain name */
++ int class, int type, /* class and type of query */
++ const u_char *data, /* resource record data */
++ int datalen, /* length of data */
++ const u_char *newrr_in, /* new rr for modify or append */
++ u_char *buf, /* buffer to put query */
++ int buflen) /* size of buffer */
++{
++ return (res_nmkquery(&_res, op, dname, class, type,
++ data, datalen,
++ newrr_in, buf, buflen));
++}
++
++#endif
+
+ void dorequest(char *s,int type,word id)
+ {
diff --git a/package/mtr/patches/patch-Makefile b/package/mtr/patches/patch-Makefile
new file mode 100644
index 000000000..babc467bf
--- /dev/null
+++ b/package/mtr/patches/patch-Makefile
@@ -0,0 +1,763 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- mtr-0.75.orig/Makefile 2008-09-19 11:32:05.000000000 +0200
++++ mtr-0.75/Makefile 2008-10-10 15:03:22.000000000 +0200
+@@ -1,16 +1,748 @@
++# Makefile.in generated by automake 1.9.6 from Makefile.am.
++# Makefile. Generated from Makefile.in by configure.
+
+-#
+-# This is an attempt on simplifying the compilation of mtr to a simple "make".
+-#
++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
++# 2003, 2004, 2005 Free Software Foundation, Inc.
++# This Makefile.in is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
+
+-firstrule:
+- ./configure
+- $(MAKE)
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++# PARTICULAR PURPOSE.
+
+-clean:
+- rm -f *.o *~ core
+
+-distclean: clean
+- rm -f mtr config.cache config.status config.log \
+- stamp-h stamp-h[0-9]* TAGS ID
+
++srcdir = .
++top_srcdir = .
++
++pkgdatadir = $(datadir)/mtr
++pkglibdir = $(libdir)/mtr
++pkgincludedir = $(includedir)/mtr
++top_builddir = .
++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
++INSTALL = /usr/bin/install -c
++install_sh_DATA = $(install_sh) -c -m 644
++install_sh_PROGRAM = $(install_sh) -c
++install_sh_SCRIPT = $(install_sh) -c
++INSTALL_HEADER = $(INSTALL_DATA)
++transform = $(program_transform_name)
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++sbin_PROGRAMS = mtr$(EXEEXT)
++subdir = .
++DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
++ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
++ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
++ TODO config.guess config.sub depcomp install-sh missing \
++ mkinstalldirs
++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++am__aclocal_m4_deps = $(top_srcdir)/configure.in
++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
++ $(ACLOCAL_M4)
++am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
++ configure.lineno configure.status.lineno
++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
++CONFIG_HEADER = config.h
++CONFIG_CLEAN_FILES =
++am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"
++sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
++PROGRAMS = $(sbin_PROGRAMS)
++am_mtr_OBJECTS = mtr.$(OBJEXT) net.$(OBJEXT) dns.$(OBJEXT) \
++ raw.$(OBJEXT) split.$(OBJEXT) display.$(OBJEXT) \
++ report.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \
++ select.$(OBJEXT)
++mtr_OBJECTS = $(am_mtr_OBJECTS)
++mtr_LDADD = $(LDADD)
++DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
++depcomp = $(SHELL) $(top_srcdir)/depcomp
++am__depfiles_maybe = depfiles
++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++CCLD = $(CC)
++LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
++SOURCES = $(mtr_SOURCES) $(EXTRA_mtr_SOURCES)
++DIST_SOURCES = $(mtr_SOURCES) $(EXTRA_mtr_SOURCES)
++RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
++ html-recursive info-recursive install-data-recursive \
++ install-exec-recursive install-info-recursive \
++ install-recursive installcheck-recursive installdirs-recursive \
++ pdf-recursive ps-recursive uninstall-info-recursive \
++ uninstall-recursive
++man8dir = $(mandir)/man8
++NROFF = nroff
++MANS = $(man_MANS)
++ETAGS = etags
++CTAGS = ctags
++DIST_SUBDIRS = $(SUBDIRS)
++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
++distdir = $(PACKAGE)-$(VERSION)
++top_distdir = $(distdir)
++am__remove_distdir = \
++ { test ! -d $(distdir) \
++ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
++ && rm -fr $(distdir); }; }
++DIST_ARCHIVES = $(distdir).tar.gz
++GZIP_ENV = --best
++distuninstallcheck_listfiles = find . -type f -print
++distcleancheck_listfiles = find . -type f -print
++ACLOCAL = ${SHELL} /home/wbrodkorb/openadk/build_x86/w-mtr-0.75-1/mtr-0.75/missing --run aclocal-1.9
++AMDEP_FALSE =
++AMDEP_TRUE = #
++AMTAR = ${SHELL} /home/wbrodkorb/openadk/build_x86/w-mtr-0.75-1/mtr-0.75/missing --run tar
++AUTOCONF = ${SHELL} /home/wbrodkorb/openadk/build_x86/w-mtr-0.75-1/mtr-0.75/missing --run autoconf
++AUTOHEADER = ${SHELL} /home/wbrodkorb/openadk/build_x86/w-mtr-0.75-1/mtr-0.75/missing --run autoheader
++AUTOMAKE = ${SHELL} /home/wbrodkorb/openadk/build_x86/w-mtr-0.75-1/mtr-0.75/missing --run automake-1.9
++AWK = gawk
++CC = /home/wbrodkorb/openadk/cross_x86/host/bin/i586-linux-uclibc-gcc
++CCDEPMODE = depmode=none
++CFLAGS = -fwrapv -fno-ident -O2 -pipe -march=i586 -funit-at-a-time -Wall -Wno-pointer-sign
++CPP = /home/wbrodkorb/openadk/cross_x86/host/bin/i586-linux-uclibc-gcc -E
++CPPFLAGS = -isystem /home/wbrodkorb/openadk/cross_x86/target/include -isystem /home/wbrodkorb/openadk/cross_x86/target/usr/include -DNDEBUG
++CURSES_OBJ = curses.o
++CYGPATH_W = echo
++DEFS = -DHAVE_CONFIG_H
++DEPDIR = .deps
++ECHO_C =
++ECHO_N = -n
++ECHO_T =
++EGREP = /bin/grep -E
++EXEEXT =
++GREP = /bin/grep
++GTK_CFLAGS =
++GTK_LIBS =
++GTK_OBJ =
++INSTALL_DATA = ${INSTALL} -m 644
++INSTALL_PROGRAM = ${INSTALL}
++INSTALL_SCRIPT = ${INSTALL}
++INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
++LDFLAGS = -Wl,-O2 -Wl,-rpath -Wl,/usr/lib -Wl,-rpath-link -Wl,/home/wbrodkorb/openadk/cross_x86/target/usr/lib -L/home/wbrodkorb/openadk/cross_x86/target/lib -L/home/wbrodkorb/openadk/cross_x86/target/usr/lib
++LIBOBJS =
++LIBS = -lresolv -lm -lncurses
++LTLIBOBJS =
++MAKEINFO = ${SHELL} /home/wbrodkorb/openadk/build_x86/w-mtr-0.75-1/mtr-0.75/missing --run makeinfo
++OBJEXT = o
++PACKAGE = mtr
++PACKAGE_BUGREPORT =
++PACKAGE_NAME =
++PACKAGE_STRING =
++PACKAGE_TARNAME =
++PACKAGE_VERSION =
++PATH_SEPARATOR = :
++PKG_CONFIG =
++SET_MAKE =
++SHELL = /bin/bash
++STRIP = i586-linux-strip
++VERSION = 0.75
++ac_ct_CC =
++am__fastdepCC_FALSE =
++am__fastdepCC_TRUE = #
++am__include = include
++am__leading_dot = .
++am__quote =
++am__tar = ${AMTAR} chof - "$$tardir"
++am__untar = ${AMTAR} xf -
++bindir = ${exec_prefix}/bin
++build_alias = i686-linux-gnu
++datadir = /usr/share
++datarootdir = ${prefix}/share
++docdir = ${datarootdir}/doc/${PACKAGE}
++dvidir = ${docdir}
++exec_prefix = ${prefix}
++host_alias = i586-linux
++htmldir = ${docdir}
++includedir = ${prefix}/include
++infodir = ${datarootdir}/info
++install_sh = /home/wbrodkorb/openadk/build_x86/w-mtr-0.75-1/mtr-0.75/install-sh
++libdir = ${exec_prefix}/lib
++libexecdir = /usr/lib
++localedir = ${datarootdir}/locale
++localstatedir = /var
++mandir = /usr/share/man
++mkdir_p = mkdir -p --
++oldincludedir = /usr/include
++pdfdir = ${docdir}
++prefix = /usr
++program_transform_name = s&$$&&;s&^&&
++psdir = ${docdir}
++sbindir = ${exec_prefix}/sbin
++sharedstatedir = ${prefix}/com
++sysconfdir = /etc
++target_alias = i586-linux
++SUBDIRS = img
++man_MANS = mtr.8
++mtr_SOURCES = mtr.c \
++ net.c net.h \
++ dns.c dns.h \
++ raw.c raw.h \
++ split.c split.h \
++ display.c display.h \
++ report.c report.h \
++ getopt.c getopt1.c getopt.h \
++ select.c select.h \
++ mtr-curses.h \
++ mtr-gtk.h
++
++EXTRA_mtr_SOURCES = curses.c \
++ gtk.c
++
++mtr_DEPENDENCIES = $(GTK_OBJ) $(CURSES_OBJ)
++mtr_LDFLAGS = $(GTK_OBJ) $(CURSES_OBJ)
++EXTRA_DIST = SECURITY mtr.8 Makefile Makefile.dist
++DISTCLEANFILES = *~
++all: config.h
++ $(MAKE) $(AM_MAKEFLAGS) all-recursive
++
++.SUFFIXES:
++.SUFFIXES: .c .o .obj
++am--refresh:
++ @:
++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
++ @for dep in $?; do \
++ case '$(am__configure_deps)' in \
++ *$$dep*) \
++ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
++ cd $(srcdir) && $(AUTOMAKE) --foreign \
++ && exit 0; \
++ exit 1;; \
++ esac; \
++ done; \
++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
++ cd $(top_srcdir) && \
++ $(AUTOMAKE) --foreign Makefile
++.PRECIOUS: Makefile
++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
++ @case '$?' in \
++ *config.status*) \
++ echo ' $(SHELL) ./config.status'; \
++ $(SHELL) ./config.status;; \
++ *) \
++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
++ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
++ esac;
++
++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++ $(SHELL) ./config.status --recheck
++
++$(top_srcdir)/configure: $(am__configure_deps)
++ cd $(srcdir) && $(AUTOCONF)
++$(ACLOCAL_M4): $(am__aclocal_m4_deps)
++ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
++
++config.h: stamp-h1
++ @if test ! -f $@; then \
++ rm -f stamp-h1; \
++ $(MAKE) stamp-h1; \
++ else :; fi
++
++stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
++ @rm -f stamp-h1
++ cd $(top_builddir) && $(SHELL) ./config.status config.h
++$(srcdir)/config.h.in: $(am__configure_deps)
++ cd $(top_srcdir) && $(AUTOHEADER)
++ rm -f stamp-h1
++ touch $@
++
++distclean-hdr:
++ -rm -f config.h stamp-h1
++install-sbinPROGRAMS: $(sbin_PROGRAMS)
++ @$(NORMAL_INSTALL)
++ test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
++ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
++ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
++ if test -f $$p \
++ ; then \
++ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
++ echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
++ $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
++ else :; fi; \
++ done
++
++uninstall-sbinPROGRAMS:
++ @$(NORMAL_UNINSTALL)
++ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
++ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
++ echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
++ rm -f "$(DESTDIR)$(sbindir)/$$f"; \
++ done
++
++clean-sbinPROGRAMS:
++ -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
++mtr$(EXEEXT): $(mtr_OBJECTS) $(mtr_DEPENDENCIES)
++ @rm -f mtr$(EXEEXT)
++ $(LINK) $(mtr_LDFLAGS) $(mtr_OBJECTS) $(mtr_LDADD) $(LIBS)
++
++mostlyclean-compile:
++ -rm -f *.$(OBJEXT)
++
++distclean-compile:
++ -rm -f *.tab.c
++
++#include ./$(DEPDIR)/curses.Po
++#include ./$(DEPDIR)/display.Po
++#include ./$(DEPDIR)/dns.Po
++#include ./$(DEPDIR)/getopt.Po
++#include ./$(DEPDIR)/getopt1.Po
++#include ./$(DEPDIR)/gtk.Po
++#include ./$(DEPDIR)/mtr.Po
++#include ./$(DEPDIR)/net.Po
++#include ./$(DEPDIR)/raw.Po
++#include ./$(DEPDIR)/report.Po
++#include ./$(DEPDIR)/select.Po
++#include ./$(DEPDIR)/split.Po
++
++.c.o:
++# if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
++# then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++# source='$<' object='$@' libtool=no
++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp)
++ $(COMPILE) -c $<
++
++.c.obj:
++# if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
++# then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
++# source='$<' object='$@' libtool=no
++# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp)
++ $(COMPILE) -c `$(CYGPATH_W) '$<'`
++uninstall-info-am:
++install-man8: $(man8_MANS) $(man_MANS)
++ @$(NORMAL_INSTALL)
++ test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)"
++ @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
++ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
++ for i in $$l2; do \
++ case "$$i" in \
++ *.8*) list="$$list $$i" ;; \
++ esac; \
++ done; \
++ for i in $$list; do \
++ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
++ else file=$$i; fi; \
++ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
++ case "$$ext" in \
++ 8*) ;; \
++ *) ext='8' ;; \
++ esac; \
++ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
++ inst=`echo $$inst | sed -e 's/^.*\///'`; \
++ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
++ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
++ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
++ done
++uninstall-man8:
++ @$(NORMAL_UNINSTALL)
++ @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
++ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
++ for i in $$l2; do \
++ case "$$i" in \
++ *.8*) list="$$list $$i" ;; \
++ esac; \
++ done; \
++ for i in $$list; do \
++ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
++ case "$$ext" in \
++ 8*) ;; \
++ *) ext='8' ;; \
++ e