mirror of https://github.com/getdnsapi/getdns.git
Merge branch 'master' into develop
This commit is contained in:
commit
bd186ebca0
12
README.md
12
README.md
|
@ -1,7 +1,7 @@
|
|||
getdns API
|
||||
==========
|
||||
|
||||
* Date: 2013-06-20
|
||||
* Date: 2013-06-27
|
||||
* GitHub: <https://github.com/verisign/getdns>
|
||||
|
||||
getdns is a [modern asynchronous DNS API](http://www.vpnc.org/getdns-api/) intended to make all types of DNS information easily available as described by Paul Hoffman. This implementation is licensed under the [MIT license](http://opensource.org/licenses/MIT).
|
||||
|
@ -27,16 +27,16 @@ Non-goals (things we will not be doing) include:
|
|||
|
||||
Contributors
|
||||
============
|
||||
* Neel Goyal, Verisign, Inc.
|
||||
* Allison Mankin, Verisign, Inc.
|
||||
* Melinda Shore
|
||||
* Glen Wiley, Verisign, Inc.
|
||||
Neel Goyal, Verisign, Inc.
|
||||
Allison Mankin, Verisign, Inc.
|
||||
Melinda Shore, No Mountain Software LLC
|
||||
Glen Wiley, Verisign, Inc.
|
||||
|
||||
External Dependencies
|
||||
=====================
|
||||
External dependencies are linked outside the getdns API build tree (we rely on configure to find them).
|
||||
|
||||
The project relies on [libdns from NL](https://www.nlnetlabs.nl/projects/ldns/) for parsing and constructing DNS packets. Version 1.6.16
|
||||
The project relies on [libldns from NL](https://www.nlnetlabs.nl/projects/ldns/) for parsing and constructing DNS packets. Version 1.6.16 (note that building ldns may require openssl headers and libraries)
|
||||
|
||||
Although [libevent](http://libevent.org) is used initially to implement the asynchronous model, future work may include a move to other mechanisms (epoll based etc.). Version 2.0.21 stable
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
/usr/share/automake-1.11/COPYING
|
|
@ -0,0 +1,50 @@
|
|||
#
|
||||
# Makefile. Generated from Makefile.in by configure.
|
||||
#
|
||||
|
||||
|
||||
package = getdns
|
||||
version = 0.320
|
||||
tarname = getdns
|
||||
distdir = $(tarname)-$(version)
|
||||
|
||||
prefix = /usr/local
|
||||
exec_prefix = ${prefix}
|
||||
bindir = ${exec_prefix}/bin
|
||||
|
||||
srcdir = .
|
||||
|
||||
|
||||
all clean getdns:
|
||||
cd common && $(MAKE) $@
|
||||
|
||||
$(distdir): FORCE
|
||||
mkdir -p $(distdir)/src
|
||||
cp $(srcdir)/configure.ac $(distdir)
|
||||
cp $(srcdir)/configure $(distdir)
|
||||
cp $(srcdir)/Makefile.in $(distdir)
|
||||
cp $(srcdir)/src/Makefile.in $(distdir)/src
|
||||
|
||||
distcheck: $(distdir).tar.gz
|
||||
gzip -cd $(distdir).tar.gz | tar xvf -
|
||||
cd $(distdir) && ./configure
|
||||
cd $(distdir) && $(MAKE) all
|
||||
cd $(distdir) && $(MAKE) check
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst install
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst uninstall
|
||||
@remaining="`find $${PWD}/$(distdir)/_inst -type f | wc -l`"; \
|
||||
if test "$${remaining}" -ne 0; then
|
||||
echo "@@@ $${remaining} file(s) remaining in stage directory!"; \
|
||||
exit 1; \
|
||||
fi
|
||||
cd $(distdir) && $(MAKE) clean
|
||||
rm -rf $(distdir)
|
||||
@echo "*** Package $(distdir).tar.gz is ready for distribution"
|
||||
|
||||
Makefile: Makefile.in config.status
|
||||
./config.status $@
|
||||
|
||||
configure.status: configure
|
||||
./config.status --recheck
|
||||
|
||||
.PHONY: all clean
|
|
@ -16,35 +16,35 @@ srcdir = @srcdir@
|
|||
VPATH = @srcdir@
|
||||
|
||||
all clean getdns:
|
||||
cd src && $(MAKE) $@
|
||||
cd common && $(MAKE) $@
|
||||
|
||||
$(distdir): FORCE
|
||||
mkdir -p $(distdir)/src
|
||||
cp $(srcdir)/configure.ac $(distdir)
|
||||
cp $(srcdir)/configure $(distdir)
|
||||
cp $(srcdir)/Makefile.in $(distdir)
|
||||
cp $(srcdir)/src/Makefile.in $(distdir)/src
|
||||
mkdir -p $(distdir)/src
|
||||
cp $(srcdir)/configure.ac $(distdir)
|
||||
cp $(srcdir)/configure $(distdir)
|
||||
cp $(srcdir)/Makefile.in $(distdir)
|
||||
cp $(srcdir)/src/Makefile.in $(distdir)/src
|
||||
|
||||
distcheck: $(distdir).tar.gz
|
||||
gzip -cd $(distdir).tar.gz | tar xvf -
|
||||
cd $(distdir) && ./configure
|
||||
cd $(distdir) && $(MAKE) all
|
||||
cd $(distdir) && $(MAKE) check
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst install
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst uninstall
|
||||
@remaining="`find $${PWD}/$(distdir)/_inst -type f | wc -l`"; \
|
||||
if test "$${remaining}" -ne 0; then
|
||||
echo "@@@ $${remaining} file(s) remaining in stage directory!"; \
|
||||
exit 1; \
|
||||
fi
|
||||
cd $(distdir) && $(MAKE) clean
|
||||
rm -rf $(distdir)
|
||||
@echo "*** Package $(distdir).tar.gz is ready for distribution"
|
||||
gzip -cd $(distdir).tar.gz | tar xvf -
|
||||
cd $(distdir) && ./configure
|
||||
cd $(distdir) && $(MAKE) all
|
||||
cd $(distdir) && $(MAKE) check
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst install
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst uninstall
|
||||
@remaining="`find $${PWD}/$(distdir)/_inst -type f | wc -l`"; \
|
||||
if test "$${remaining}" -ne 0; then
|
||||
echo "@@@ $${remaining} file(s) remaining in stage directory!"; \
|
||||
exit 1; \
|
||||
fi
|
||||
cd $(distdir) && $(MAKE) clean
|
||||
rm -rf $(distdir)
|
||||
@echo "*** Package $(distdir).tar.gz is ready for distribution"
|
||||
|
||||
Makefile: Makefile.in config.status
|
||||
./config.status $@
|
||||
./config.status $@
|
||||
|
||||
configure.status: configure
|
||||
./config.status --recheck
|
||||
./config.status --recheck
|
||||
|
||||
.PHONY: all clean
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
#
|
||||
# common/Makefile. Generated from Makefile.in by configure.
|
||||
#
|
||||
|
||||
package = getdns
|
||||
version = 0.320
|
||||
tarname = getdns
|
||||
distdir = $(tarname)-$(version)
|
||||
|
||||
prefix = /usr/local
|
||||
exec_prefix = ${prefix}
|
||||
bindir = ${exec_prefix}/bin
|
||||
|
||||
srcdir = .
|
||||
|
||||
|
||||
CC=gcc
|
||||
CFLAGS=-g -I$(srcdir)/ -std=c99
|
||||
LDFLAGS=-L.
|
||||
LDLIBS=-levent_core -lldns -lgetdns
|
||||
PROGRAMS=example-simple-answers example-tree example-all-functions example-synchronous
|
||||
|
||||
all: libgetdns example-simple-answers example-tree example-all-functions example-synchronous
|
||||
|
||||
getdns_core_only.o: getdns_core_only.c
|
||||
$(CC) -c -Wall -fPIC $(CFLAGS) $^
|
||||
|
||||
libgetdns: getdns_core_only.c
|
||||
$(CC) $(CFLAGS) -shared -o libgetdns.so $^
|
||||
|
||||
clean:
|
||||
rm -f *.o $(PROGRAMS) libgetdns.so
|
||||
|
||||
$(distdir): FORCE
|
||||
mkdir -p $(distdir)/src
|
||||
cp configure.ac $(distdir)
|
||||
cp configure $(distdir)
|
||||
cp Makefile.in $(distdir)
|
||||
cp src/Makefile.in $(distdir)/src
|
||||
|
||||
distcheck: $(distdir).tar.gz
|
||||
gzip -cd $(distdir).tar.gz | tar xvf -
|
||||
cd $(distdir) && ./configure
|
||||
cd $(distdir) && $(MAKE) all
|
||||
cd $(distdir) && $(MAKE) check
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst install
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst uninstall
|
||||
@remaining="`find $${PWD}/$(distdir)/_inst -type f | wc -l`"; \
|
||||
if test "$${remaining}" -ne 0; then
|
||||
echo "@@@ $${remaining} file(s) remaining in stage directory!"; \
|
||||
exit 1; \
|
||||
fi
|
||||
cd $(distdir) && $(MAKE) clean
|
||||
rm -rf $(distdir)
|
||||
@echo "*** Package $(distdir).tar.gz is ready for distribution"
|
||||
|
||||
Makefile: Makefile.in ../config.status
|
||||
cd .. && ./config.status $@
|
||||
|
||||
configure.status: configure
|
||||
cd .. && ./config.status --recheck
|
||||
|
||||
.PHONY: clean
|
||||
|
|
@ -15,14 +15,11 @@ srcdir = @srcdir@
|
|||
VPATH = @srcdir@
|
||||
|
||||
CC=gcc
|
||||
CFLAGS=-g -I. -std=c99
|
||||
CFLAGS=-g -I$(srcdir)/ -std=c99
|
||||
LDFLAGS=-L.
|
||||
LDLIBS=-levent_core -lldns -lgetdns
|
||||
PROGRAMS=example-simple-answers example-tree example-all-functions example-synchronous
|
||||
|
||||
# example-simple-answers.c example-tree.c
|
||||
# example-all-functions.c example-synchronous.c getdns_core_only.c
|
||||
|
||||
all: libgetdns example-simple-answers example-tree example-all-functions example-synchronous
|
||||
|
||||
getdns_core_only.o: getdns_core_only.c
|
||||
|
@ -57,11 +54,11 @@ distcheck: $(distdir).tar.gz
|
|||
rm -rf $(distdir)
|
||||
@echo "*** Package $(distdir).tar.gz is ready for distribution"
|
||||
|
||||
Makefile: Makefile.in config.status
|
||||
./config.status $@
|
||||
Makefile: Makefile.in ../config.status
|
||||
cd .. && ./config.status $@
|
||||
|
||||
configure.status: configure
|
||||
./config.status --recheck
|
||||
cd .. && ./config.status --recheck
|
||||
|
||||
.PHONY: clean
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
#
|
||||
# @configure_input@
|
||||
#
|
||||
|
||||
package = @PACKAGE_NAME@
|
||||
version = @PACKAGE_VERSION@
|
||||
tarname = @PACKAGE_TARNAME@
|
||||
distdir = $(tarname)-$(version)
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
bindir = @bindir@
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
CC=gcc
|
||||
CFLAGS=-g -I. -std=c99
|
||||
LDFLAGS=-L.
|
||||
LDLIBS=-levent_core -lldns -lgetdns
|
||||
PROGRAMS=example-simple-answers example-tree example-all-functions example-synchronous
|
||||
|
||||
all: libgetdns example-simple-answers example-tree example-all-functions example-synchronous
|
||||
|
||||
getdns_core_only.o: getdns_core_only.c
|
||||
$(CC) -c -Wall -fPIC $(CFLAGS) $^
|
||||
|
||||
libgetdns: getdns_core_only.c
|
||||
$(CC) $(CFLAGS) -shared -o libgetdns.so $^
|
||||
|
||||
clean:
|
||||
rm -f *.o $(PROGRAMS) libgetdns.so
|
||||
|
||||
$(distdir): FORCE
|
||||
mkdir -p $(distdir)/src
|
||||
cp configure.ac $(distdir)
|
||||
cp configure $(distdir)
|
||||
cp Makefile.in $(distdir)
|
||||
cp src/Makefile.in $(distdir)/src
|
||||
|
||||
distcheck: $(distdir).tar.gz
|
||||
gzip -cd $(distdir).tar.gz | tar xvf -
|
||||
cd $(distdir) && ./configure
|
||||
cd $(distdir) && $(MAKE) all
|
||||
cd $(distdir) && $(MAKE) check
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst install
|
||||
cd $(distdir) && $(MAKE) DESTDIR=$${PWD}/_inst uninstall
|
||||
@remaining="`find $${PWD}/$(distdir)/_inst -type f | wc -l`"; \
|
||||
if test "$${remaining}" -ne 0; then
|
||||
echo "@@@ $${remaining} file(s) remaining in stage directory!"; \
|
||||
exit 1; \
|
||||
fi
|
||||
cd $(distdir) && $(MAKE) clean
|
||||
rm -rf $(distdir)
|
||||
@echo "*** Package $(distdir).tar.gz is ready for distribution"
|
||||
|
||||
Makefile: Makefile.in ../config.status
|
||||
cd .. && ./config.status $@
|
||||
|
||||
configure.status: configure
|
||||
cd .. && ./config.status --recheck
|
||||
|
||||
.PHONY: clean
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
## ---------------------- ##
|
||||
## Running config.status. ##
|
||||
## ---------------------- ##
|
||||
|
||||
This file was extended by getdns config.status 0.320, which was
|
||||
generated by GNU Autoconf 2.68. Invocation command line was
|
||||
|
||||
CONFIG_FILES =
|
||||
CONFIG_HEADERS =
|
||||
CONFIG_LINKS =
|
||||
CONFIG_COMMANDS =
|
||||
$ ../config.status Makefile
|
||||
|
||||
on ubuntu-11-10
|
||||
|
||||
config.status:737: creating Makefile
|
|
@ -107,9 +107,9 @@ of this new API are:</p>
|
|||
</ul>
|
||||
|
||||
<p>There is more background into the design and future goals of this API
|
||||
<a href="index.html#Commentary">later in this document</a>.</p>
|
||||
<a href="#Commentary">later in this document</a>.</p>
|
||||
|
||||
<p>This document was discussed on the <a href="../mailman/listinfo/getdns-api">
|
||||
<p>This document was discussed on the <a href="http://www.vpnc.org/mailman/listinfo/getdns-api">
|
||||
getdns-api mailing list</a>; future versions of the API might be discussed there as well.
|
||||
(If you
|
||||
want to contact the editor off-list, please send mail to <a
|
||||
|
@ -147,7 +147,7 @@ getdns_general(
|
|||
|
||||
<p class=define><code><b>context</b></code></p>
|
||||
<p class=descrip>A pointer to the DNS context that is to be used with this call. DNS contexts are
|
||||
described <a href="index.html#Contexts">later in this document</a>. Note that a context <i>must</i> be created
|
||||
described <a href="#Contexts">later in this document</a>. Note that a context <i>must</i> be created
|
||||
before calling the function.</p>
|
||||
|
||||
<p class=define><code><b>*name</b></code></p>
|
||||
|
@ -167,7 +167,7 @@ defined macros for most of the RRtypes by name; the definition names all start w
|
|||
|
||||
<p class=define><code><b>*extensions</b></code></p>
|
||||
<p class=descrip>Specifies the extensions for this request; the value may be NULL if there are no
|
||||
extensions. See <a href="index.html#Extensions">the section below</a> for information on how to specify
|
||||
extensions. See <a href="#Extensions">the section below</a> for information on how to specify
|
||||
the extensions used for a request.</p>
|
||||
|
||||
<p class=define><code><b>*userarg</b></code></p>
|
||||
|
@ -197,7 +197,7 @@ the function was bad, <code>GETDNS_RETURN_BAD_CONTEXT</code> if the context poin
|
|||
<code>GETDNS_RETURN_NO_SUCH_EXTENSION</code> if one or more extensions do not exist, or
|
||||
<code>GETDNS_RETURN_EXTENSION_MISFORMAT</code> if the contents of one or more of the
|
||||
extensions is incorrect. All of the return values are given <a
|
||||
href="index.html#ReturnCodes">later in this document</a>.</p>
|
||||
href="#ReturnCodes">later in this document</a>.</p>
|
||||
|
||||
<h2>1.2 <code>getdns_address()</code></h2>
|
||||
|
||||
|
@ -281,8 +281,8 @@ typedef void (*getdns_callback_t)(
|
|||
|
||||
<p class=define><code><b>context</b></code></p>
|
||||
<p class=descrip>The DNS context that was used in the calling function. See <a
|
||||
href="index.html#ContextInitial">below</a> for a description of the basic use of contexts, and <a
|
||||
href="index.html#Contexts">later</a> for more advanced use.</p>
|
||||
href="#ContextInitial">below</a> for a description of the basic use of contexts, and <a
|
||||
href="#Contexts">later</a> for more advanced use.</p>
|
||||
|
||||
<p class=define><code><b>callback_type</b></code></p>
|
||||
<p class=descrip>Supplies the reason for the callback. See below for the codes and reasons.</p>
|
||||
|
@ -875,7 +875,7 @@ bindata), <code>type</code> (an int), <code>class</code> (an int), <code>ttl</co
|
|||
<code>rdata</code> (a dict); there is no name equivalent to the RDLENGTH field.</p>
|
||||
|
||||
<p>The <code>rdata</code> dict has different names for each response type. There is a <a
|
||||
href="index.html#TypeList">complete list of the types defined</a> in the API. For names that end in
|
||||
href="#TypeList">complete list of the types defined</a> in the API. For names that end in
|
||||
"-obsolete" or "-unknown", the bindata is the entire RDATA field. For example, the
|
||||
<code>rdata</code> for an A record has a name <code>ipv4_address</code> (a bindata); the
|
||||
<code>rdata</code> for an SRV record has the names <code>priority</code> (an int),
|
||||
|
@ -1758,7 +1758,7 @@ context for use on a different thread. It is just fine for an application to hav
|
|||
and some DNS-heavy applications will certainly want to have many even if the application uses
|
||||
a single thread.</p>
|
||||
|
||||
<p>See <a href="index.html#ContextInitial">above</a> for the method for creating and destroying
|
||||
<p>See <a href="#ContextInitial">above</a> for the method for creating and destroying
|
||||
contexts. When the context is used in the API for the first time and <code>set_from_os</code> is
|
||||
<code>true</code>, the API starts replacing some of the values with values from the OS, such as
|
||||
those that would be found in res_query(3), /etc/resolv.conf, and so on, then proceeds with the new
|
||||
|
@ -1805,7 +1805,7 @@ called when any context is changed. Such changes might be from automatic
|
|||
changes from the API (such as changes to /etc/resolv.conf), or might be from any of the
|
||||
API functions in this section being called. The second argument to the callback function
|
||||
specifies which of the context changed; the context codes are listed
|
||||
<a href="index.html#ContextCodes">later in this document</a>.</p>
|
||||
<a href="#ContextCodes">later in this document</a>.</p>
|
||||
|
||||
<h2>8.3 Contexts for Basic Resolution</h2>
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,31 @@
|
|||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
# @configure_input@
|
||||
#
|
||||
|
||||
AC_PREREQ([2.68])
|
||||
AC_INIT([getdns], [0.320], [melinda.shore@nomountain.net])
|
||||
# AM_INIT_AUTOMAKE([getkey], [0.320])
|
||||
AC_CONFIG_SRCDIR([configure.ac])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
|
||||
# Checks for libraries.
|
||||
AC_CHECK_LIB([event_core], [event_base_new])
|
||||
AC_CHECK_LIB([getdns], [getdns_context_create])
|
||||
AC_CHECK_LIB([ldns], [ldns_dname_new_frm_str])
|
||||
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([inttypes.h netinet/in.h stdint.h stdlib.h string.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_HEADER_STDBOOL
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_UINT16_T
|
||||
AC_TYPE_UINT32_T
|
||||
AC_TYPE_UINT64_T
|
||||
AC_TYPE_UINT8_T
|
||||
|
||||
AC_CONFIG_FILES([Makefile common/Makefile])
|
||||
AC_OUTPUT
|
376
src/src/missing
376
src/src/missing
|
@ -1,376 +0,0 @@
|
|||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||
# 2008, 2009 Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# 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.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
# Exit code 63 means version mismatch. This often happens
|
||||
# when the user try to use an ancient version of a tool on
|
||||
# a file that requires a minimum version. In this case we
|
||||
# we should proceed has if the program had been absent, or
|
||||
# if --run hadn't been passed.
|
||||
if test $? = 63; then
|
||||
run=:
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
||||
\`g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# normalize program name to check for.
|
||||
program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program). This is about non-GNU programs, so use $1 not
|
||||
# $program.
|
||||
case $1 in
|
||||
lex*|yacc*)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar*)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $program in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison*|yacc*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex*|flex*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit $?
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
# The file to touch is that specified with -o ...
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '
|
||||
/^@setfilename/{
|
||||
s/.* \([^ ]*\) *$/\1/
|
||||
p
|
||||
q
|
||||
}' $infile`
|
||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar*)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequisites for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
Loading…
Reference in New Issue