|
From: Steve D. <St...@re...> - 2010-11-30 13:06:41
|
On 11/26/2010 10:14 AM, Diego Elio Pettenò wrote:
> Don't use libtool as we're not building any shared library.
>
> Make sure that arguments are properly indented and documented in
> ./configure --help, avoid abusing conditional expansions.
>
> Check for pthread using AC_SEARCH_LIBS so that it can be easily extended.
>
> Drop header checks (likely coming from autoscan) given that the code never
> tests for HAVE_*_H.
>
> Delete the config.h.in template that is part of the autogenerated files,
> and INSTALL that is auto-added by automake (it's not customized).
>
> Define RPCBIND_STATEDIR and RPCUSER directly in Makefile.am as it's done
> for the other defines. Drop the config.h support since it's not really
> useful at this point. Avoid defining VERSION twice.
>
> Signed-off-by: Diego Elio Pettenò <fla...@gm...>
Committed...
steved.
> ---
> .gitignore | 1 +
> INSTALL | 248 -------------------------------------------------------
> Makefile.am | 7 +-
> configure.in | 81 ++++++------------
> src/config.h.in | 105 -----------------------
> src/rpcbind.c | 1 -
> src/warmstart.c | 1 -
> 7 files changed, 32 insertions(+), 412 deletions(-)
> delete mode 100644 INSTALL
> delete mode 100644 src/config.h.in
>
> diff --git a/.gitignore b/.gitignore
> index cbce869..bee4bab 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -1,3 +1,4 @@
> +INSTALL
> Makefile
> Makefile.in
> aclocal.m4
> diff --git a/INSTALL b/INSTALL
> deleted file mode 100644
> index 98e5d87..0000000
> --- a/INSTALL
> +++ /dev/null
> @@ -1,248 +0,0 @@
> -Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
> -Foundation, Inc.
> -
> - This file is free documentation; the Free Software Foundation gives
> -unlimited permission to copy, distribute and modify it.
> -
> -
> -rpcbind Quick Installation
> -==========================
> -
> -$ ./configure
> -$ make
> -# make install
> -
> - The install phase will install the rpcbind and rpcinfo commands
> -under /usr/bin. If you wish they replace the basic portmap and
> -rpcinfo commands, you can run:
> -
> -# mv /sbin/portmap /sbin/portmap.sav
> -# ln -s /usr/bin/rpcbind /sbin/portmap
> -
> -# mv /usr/sbin/rpcinfo /usr/sbin/rpcinfo.sav
> -# ln -s /usr/bin/rpcinfo /usr/sbin/rpcinfo
> -
> -
> -Basic Installation
> -==================
> -
> - These are generic installation instructions.
> -
> - The `configure' shell script attempts to guess correct values for
> -various system-dependent variables used during compilation. It uses
> -those values to create a `Makefile' in each directory of the package.
> -It may also create one or more `.h' files containing system-dependent
> -definitions. Finally, it creates a shell script `config.status' that
> -you can run in the future to recreate the current configuration, and a
> -file `config.log' containing compiler output (useful mainly for
> -debugging `configure').
> -
> - It can also use an optional file (typically called `config.cache'
> -and enabled with `--cache-file=config.cache' or simply `-C') that saves
> -the results of its tests to speed up reconfiguring. (Caching is
> -disabled by default to prevent problems with accidental use of stale
> -cache files.)
> -
> - If you need to do unusual things to compile the package, please try
> -to figure out how `configure' could check whether to do them, and mail
> -diffs or instructions to the address given in the `README' so they can
> -be considered for the next release. If you are using the cache, and at
> -some point `config.cache' contains results you don't want to keep, you
> -may remove or edit it.
> -
> - The file `configure.ac' (or `configure.in') is used to create
> -`configure' by a program called `autoconf'. You only need
> -`configure.ac' if you want to change it or regenerate `configure' using
> -a newer version of `autoconf'.
> -
> -The simplest way to compile this package is:
> -
> - 1. `cd' to the directory containing the package's source code and type
> - `./configure' to configure the package for your system. If you're
> - using `csh' on an old version of System V, you might need to type
> - `sh ./configure' instead to prevent `csh' from trying to execute
> - `configure' itself.
> -
> - Running `configure' takes awhile. While running, it prints some
> - messages telling which features it is checking for.
> -
> - 2. Type `make' to compile the package.
> -
> - 3. Optionally, type `make check' to run any self-tests that come with
> - the package.
> -
> - 4. Type `make install' to install the programs and any data files and
> - documentation.
> -
> - 5. You can remove the program binaries and object files from the
> - source code directory by typing `make clean'. To also remove the
> - files that `configure' created (so you can compile the package for
> - a different kind of computer), type `make distclean'. There is
> - also a `make maintainer-clean' target, but that is intended mainly
> - for the package's developers. If you use it, you may have to get
> - all sorts of other programs in order to regenerate files that came
> - with the distribution.
> -
> -Compilers and Options
> -=====================
> -
> - Some systems require unusual options for compilation or linking that
> -the `configure' script does not know about. Run `./configure --help'
> -for details on some of the pertinent environment variables.
> -
> - You can give `configure' initial values for configuration parameters
> -by setting variables in the command line or in the environment. Here
> -is an example:
> -
> - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
> -
> - *Note Defining Variables::, for more details.
> -
> -Compiling For Multiple Architectures
> -====================================
> -
> - You can compile the package for more than one kind of computer at the
> -same time, by placing the object files for each architecture in their
> -own directory. To do this, you must use a version of `make' that
> -supports the `VPATH' variable, such as GNU `make'. `cd' to the
> -directory where you want the object files and executables to go and run
> -the `configure' script. `configure' automatically checks for the
> -source code in the directory that `configure' is in and in `..'.
> -
> - If you have to use a `make' that does not support the `VPATH'
> -variable, you have to compile the package for one architecture at a
> -time in the source code directory. After you have installed the
> -package for one architecture, use `make distclean' before reconfiguring
> -for another architecture.
> -
> -Installation Names
> -==================
> -
> - By default, `make install' will install the package's files in
> -`/usr/local/bin', `/usr/local/man', etc. You can specify an
> -installation prefix other than `/usr/local' by giving `configure' the
> -option `--prefix=PATH'.
> -
> - You can specify separate installation prefixes for
> -architecture-specific files and architecture-independent files. If you
> -give `configure' the option `--exec-prefix=PATH', the package will use
> -PATH as the prefix for installing programs and libraries.
> -Documentation and other data files will still use the regular prefix.
> -
> - In addition, if you use an unusual directory layout you can give
> -options like `--bindir=PATH' to specify different values for particular
> -kinds of files. Run `configure --help' for a list of the directories
> -you can set and what kinds of files go in them.
> -
> - If the package supports it, you can cause programs to be installed
> -with an extra prefix or suffix on their names by giving `configure' the
> -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
> -
> -Optional Features
> -=================
> -
> - Some packages pay attention to `--enable-FEATURE' options to
> -`configure', where FEATURE indicates an optional part of the package.
> -They may also pay attention to `--with-PACKAGE' options, where PACKAGE
> -is something like `gnu-as' or `x' (for the X Window System). The
> -`README' should mention any `--enable-' and `--with-' options that the
> -package recognizes.
> -
> - For packages that use the X Window System, `configure' can usually
> -find the X include and library files automatically, but if it doesn't,
> -you can use the `configure' options `--x-includes=DIR' and
> -`--x-libraries=DIR' to specify their locations.
> -
> -Specifying the System Type
> -==========================
> -
> - There may be some features `configure' cannot figure out
> -automatically, but needs to determine by the type of machine the package
> -will run on. Usually, assuming the package is built to be run on the
> -_same_ architectures, `configure' can figure that out, but if it prints
> -a message saying it cannot guess the machine type, give it the
> -`--build=TYPE' option. TYPE can either be a short name for the system
> -type, such as `sun4', or a canonical name which has the form:
> -
> - CPU-COMPANY-SYSTEM
> -
> -where SYSTEM can have one of these forms:
> -
> - OS KERNEL-OS
> -
> - See the file `config.sub' for the possible values of each field. If
> -`config.sub' isn't included in this package, then this package doesn't
> -need to know the machine type.
> -
> - If you are _building_ compiler tools for cross-compiling, you should
> -use the `--target=TYPE' option to select the type of system they will
> -produce code for.
> -
> - If you want to _use_ a cross compiler, that generates code for a
> -platform different from the build platform, you should specify the
> -"host" platform (i.e., that on which the generated programs will
> -eventually be run) with `--host=TYPE'.
> -
> -Sharing Defaults
> -================
> -
> - If you want to set default values for `configure' scripts to share,
> -you can create a site shell script called `config.site' that gives
> -default values for variables like `CC', `cache_file', and `prefix'.
> -`configure' looks for `PREFIX/share/config.site' if it exists, then
> -`PREFIX/etc/config.site' if it exists. Or, you can set the
> -`CONFIG_SITE' environment variable to the location of the site script.
> -A warning: not all `configure' scripts look for a site script.
> -
> -Defining Variables
> -==================
> -
> - Variables not defined in a site shell script can be set in the
> -environment passed to `configure'. However, some packages may run
> -configure again during the build, and the customized values of these
> -variables may be lost. In order to avoid this problem, you should set
> -them in the `configure' command line, using `VAR=value'. For example:
> -
> - ./configure CC=/usr/local2/bin/gcc
> -
> -will cause the specified gcc to be used as the C compiler (unless it is
> -overridden in the site shell script).
> -
> -`configure' Invocation
> -======================
> -
> - `configure' recognizes the following options to control how it
> -operates.
> -
> -`--help'
> -`-h'
> - Print a summary of the options to `configure', and exit.
> -
> -`--version'
> -`-V'
> - Print the version of Autoconf used to generate the `configure'
> - script, and exit.
> -
> -`--cache-file=FILE'
> - Enable the cache: use and save the results of the tests in FILE,
> - traditionally `config.cache'. FILE defaults to `/dev/null' to
> - disable caching.
> -
> -`--config-cache'
> -`-C'
> - Alias for `--cache-file=config.cache'.
> -
> -`--quiet'
> -`--silent'
> -`-q'
> - Do not print messages saying which checks are being made. To
> - suppress all normal output, redirect it to `/dev/null' (any error
> - messages will still be shown).
> -
> -`--srcdir=DIR'
> - Look for the package's source code in directory DIR. Usually
> - `configure' can determine that directory automatically.
> -
> -`configure' also accepts some other, not widely useful, options. Run
> -`configure --help' for more details.
> -
> diff --git a/Makefile.am b/Makefile.am
> index 60bdead..1809e3d 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -4,7 +4,8 @@ AM_CPPFLAGS = \
> -DFACILITY=LOG_MAIL \
> -DSEVERITY=LOG_INFO \
> -DINET6 \
> - -DVERSION="\"$(VERSION)\"" \
> + -DRPCBIND_STATEDIR="\"$(statedir)\"" \
> + -DRPCUSER="\"$(rpcuser)\"" \
> -D_GNU_SOURCE \
> $(TIRPC_CFLAGS)
>
> @@ -35,9 +36,9 @@ rpcbind_SOURCES = \
> src/security.c \
> src/util.c \
> src/warmstart.c
> -rpcbind_LDADD = $(TIRPC_LIBS) -lpthread
> +rpcbind_LDADD = $(TIRPC_LIBS)
>
> rpcinfo_SOURCES = src/rpcinfo.c
> -rpcinfo_LDADD = $(TIRPC_LIBS) -lpthread
> +rpcinfo_LDADD = $(TIRPC_LIBS)
>
> dist_man8_MANS = man/rpcbind.8
> diff --git a/configure.in b/configure.in
> index a4d3776..6a9778a 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -1,66 +1,39 @@
> - AC_INIT(rpcbind, 0.2.0)
> +AC_INIT(rpcbind, 0.2.0)
>
> - AM_INIT_AUTOMAKE
> -# AM_MAINTAINER_MODE
> +AM_INIT_AUTOMAKE
> AC_CONFIG_SRCDIR([src/rpcbind.c])
> - AC_PROG_CC
> - AM_CONFIG_HEADER(config.h)
> - AC_HEADER_DIRENT
> - AC_PREFIX_DEFAULT(/usr)
> +AC_PROG_CC
> +AC_PREFIX_DEFAULT(/usr)
>
> -AC_CONFIG_SRCDIR([src/config.h.in])
> -AC_CONFIG_HEADERS([src/config.h])
> +AC_ARG_ENABLE([libwrap],
> + AS_HELP_STRING([--enable-libwrap], [Enables host name checking through tcpd @<:@default=no@:>@]))
> +AM_CONDITIONAL(LIBWRAP, test x$enable_libwrap = xyes)
>
> -AC_PROG_LIBTOOL
> +AC_ARG_ENABLE([debug],
> + AS_HELP_STRING([--enable-debug], [Turns on rpcbind debugging @<:@default=no@:>@]))
> +AM_CONDITIONAL(DEBUG, test x$enable_debug = xyes)
>
> -AC_ARG_ENABLE(debug,[ --enable-debug Turns on rpcbind debugging],
> - [case "${enableval}" in
> - yes) debug=true ;;
> - no) debug=no ;;
> - *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
> - esac],[debug=false])
> -AM_CONDITIONAL(DEBUG, test x$debug = xtrue)
> +AC_ARG_ENABLE([warmstarts],
> + AS_HELP_STRING([--enable-warmstarts], [Enables Warm Starts @<:@default=no@:>@]))
> +AM_CONDITIONAL(WARMSTART, test x$enable_warmstarts = xyes)
>
> -AC_ARG_ENABLE(warmstarts,[ --enable-warmstarts Enables Warm Starts],
> - [case "${enableval}" in
> - yes) warmstarts=true ;;
> - no) warmstarts=no ;;
> - *) AC_MSG_ERROR(bad value ${enableval} for --enable-warmstarts) ;;
> - esac],[warmstarts=false])
> -AM_CONDITIONAL(WARMSTART, test x$warmstarts = xtrue)
> +AC_ARG_WITH([statedir],
> + AS_HELP_STRING([--with-statedir=ARG], [use ARG as state dir @<:@default=/tmp@:>@])
> + ,, [with_statedir=/tmp])
> +AC_SUBST([statedir], [$with_statedir])
>
> -if test "$warmstarts" = "true" ; then
> - AC_ARG_WITH(statedir,
> - [ --with-statedir=/foo use state dir /foo [/tmp]],
> - statedir=$withval,
> - statedir=/tmp)
> - AC_SUBST(statedir)
> - AC_DEFINE_UNQUOTED(RPCBIND_STATEDIR, "$statedir", [This defines the location where the state files will be kept for warm starts])
> -fi
> -AC_ARG_WITH(rpcuser,
> - [ --with-rpcuser=user uid to use [root]],
> - rpcuser=$withval,
> - rpcuser=root)
> - AC_SUBST(rpcuser)
> -AC_DEFINE_UNQUOTED(RPCBIND_USER, "$rpcuser", [This defines the uid to run as])
> -
> -AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h \
> - netinet/in.h stdlib.h string.h \
> - sys/param.h sys/socket.h \
> - sys/time.h syslog.h \
> - unistd.h nss.h])
> -
> -AC_CHECK_LIB([pthread], [pthread_create])
> +AC_ARG_WITH([rpcuser],
> + AS_HELP_STRING([--with-rpcuser=ARG], [use ARG for RPC @<:@default=root@:>@]),
> + ,, [with_rpcuser=root])
> +AC_SUBST([rpcuser], [$with_rpcuser])
>
> PKG_CHECK_MODULES([TIRPC], [libtirpc])
>
> -AC_ARG_ENABLE(libwrap,[ --enable-libwrap Enables host name checking],
> - [case "${enableval}" in
> - yes) libwarp=true
> - AC_CHECK_LIB([wrap], [hosts_access]) ;;
> - no) libwarp=no ;;
> - *) AC_MSG_ERROR(bad value ${enableval} for --enable-libwrap) ;;
> - esac],[libwarp=false])
> -AM_CONDITIONAL(LIBWRAP, test x$libwarp = xtrue)
> +AS_IF([test x$enable_libwrap = xyes], [
> + AC_CHECK_LIB([wrap], [host_access], ,
> + AC_MSG_ERROR([libwrap support requested, but unable to find libwrap]))
> +])
> +
> +AC_SEARCH_LIBS([pthread_create], [pthread])
>
> AC_OUTPUT([Makefile])
> diff --git a/src/config.h.in b/src/config.h.in
> deleted file mode 100644
> index 67a0e39..0000000
> --- a/src/config.h.in
> +++ /dev/null
> @@ -1,105 +0,0 @@
> -/* config.h.in. Generated from configure.in by autoheader. */
> -
> -/* Define to 1 if you have the <arpa/inet.h> header file. */
> -#undef HAVE_ARPA_INET_H
> -
> -/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
> - */
> -#undef HAVE_DIRENT_H
> -
> -/* Define to 1 if you have the <fcntl.h> header file. */
> -#undef HAVE_FCNTL_H
> -
> -/* Define to 1 if you have the <inttypes.h> header file. */
> -#undef HAVE_INTTYPES_H
> -
> -/* Define to 1 if you have the `pthread' library (-lpthread). */
> -#undef HAVE_LIBPTHREAD
> -
> -/* Define to 1 if you have the `tirpc' library (-ltirpc). */
> -#undef HAVE_LIBTIRPC
> -
> -/* Define to 1 if you have the <memory.h> header file. */
> -#undef HAVE_MEMORY_H
> -
> -/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
> -#undef HAVE_NDIR_H
> -
> -/* Define to 1 if you have the <netdb.h> header file. */
> -#undef HAVE_NETDB_H
> -
> -/* Define to 1 if you have the <netinet/in.h> header file. */
> -#undef HAVE_NETINET_IN_H
> -
> -/* Define to 1 if you have the <stdint.h> header file. */
> -#undef HAVE_STDINT_H
> -
> -/* Define to 1 if you have the <stdlib.h> header file. */
> -#undef HAVE_STDLIB_H
> -
> -/* Define to 1 if you have the <strings.h> header file. */
> -#undef HAVE_STRINGS_H
> -
> -/* Define to 1 if you have the <string.h> header file. */
> -#undef HAVE_STRING_H
> -
> -/* Define to 1 if you have the <syslog.h> header file. */
> -#undef HAVE_SYSLOG_H
> -
> -/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
> - */
> -#undef HAVE_SYS_DIR_H
> -
> -/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
> - */
> -#undef HAVE_SYS_NDIR_H
> -
> -/* Define to 1 if you have the <sys/param.h> header file. */
> -#undef HAVE_SYS_PARAM_H
> -
> -/* Define to 1 if you have the <sys/socket.h> header file. */
> -#undef HAVE_SYS_SOCKET_H
> -
> -/* Define to 1 if you have the <sys/stat.h> header file. */
> -#undef HAVE_SYS_STAT_H
> -
> -/* Define to 1 if you have the <sys/time.h> header file. */
> -#undef HAVE_SYS_TIME_H
> -
> -/* Define to 1 if you have the <sys/types.h> header file. */
> -#undef HAVE_SYS_TYPES_H
> -
> -/* Define to 1 if you have the <unistd.h> header file. */
> -#undef HAVE_UNISTD_H
> -
> -/* Name of package */
> -#undef PACKAGE
> -
> -/* Define to the address where bug reports for this package should be sent. */
> -#undef PACKAGE_BUGREPORT
> -
> -/* Define to the full name of this package. */
> -#undef PACKAGE_NAME
> -
> -/* Define to the full name and version of this package. */
> -#undef PACKAGE_STRING
> -
> -/* Define to the one symbol short name of this package. */
> -#undef PACKAGE_TARNAME
> -
> -/* Define to the version of this package. */
> -#undef PACKAGE_VERSION
> -
> -/* Define to 1 if you have the ANSI C header files. */
> -#undef STDC_HEADERS
> -
> -/* Version number of package */
> -#undef VERSION
> -
> -/* This defines the location where the state files will be kept for warm
> - starts */
> -#undef RPCBIND_STATEDIR
> -
> -/* This defines the uid to run as */
> -#undef RPCBIND_USER
> -
> diff --git a/src/rpcbind.c b/src/rpcbind.c
> index 63023e1..24e069b 100644
> --- a/src/rpcbind.c
> +++ b/src/rpcbind.c
> @@ -68,7 +68,6 @@
> #include <string.h>
> #include <errno.h>
> #include <nss.h>
> -#include "config.h"
> #include "rpcbind.h"
>
> /*#define RPCBIND_DEBUG*/
> diff --git a/src/warmstart.c b/src/warmstart.c
> index 25e5d89..d1bb971 100644
> --- a/src/warmstart.c
> +++ b/src/warmstart.c
> @@ -46,7 +46,6 @@
> #include <unistd.h>
> #include <errno.h>
>
> -#include "config.h"
> #include "rpcbind.h"
>
> #ifndef RPCBIND_STATEDIR
|