Home | History | Annotate | Line # | Download | only in compat
configure.ac revision 1.60.2.1
      1  1.60.2.1     pavel #	$NetBSD: configure.ac,v 1.60.2.1 2007/08/30 22:37:36 pavel Exp $
      2       1.1        tv #
      3       1.1        tv # Autoconf definition file for libnbcompat.
      4       1.1        tv #
      5  1.60.2.1     pavel # When you edit configure.ac:
      6  1.60.2.1     pavel # 0. Create the tools versions of autoconf and autoheader:
      7  1.60.2.1     pavel #        cd ${SRCDIR} && build.sh -V MKMAINTAINERTOOLS=yes tools
      8  1.60.2.1     pavel #    (This might not work if you try it after editing configure.ac.)
      9  1.60.2.1     pavel # 1. edit configure.ac
     10  1.60.2.1     pavel # 2. Regenerate "configure" and "nbtool_config.h.in" from "configure.ac":
     11  1.60.2.1     pavel #        cd ${SRCDIR}/tools/compat && ${TOOLDIR}/bin/nbmake-${MACHINE} regen
     12  1.60.2.1     pavel #    (Please don't use a non-tools version of autoconf or autoheader.)
     13  1.60.2.1     pavel # 3. Test that the tools still build:
     14  1.60.2.1     pavel #        mv ${TOOLDIR} ${TOOLDIR}.bak
     15  1.60.2.1     pavel #        cd ${SRCDIR} && build.sh -V MKMAINTAINERTOOLS=yes tools
     16  1.60.2.1     pavel # 4. cvs commit files that you edited.
     17  1.60.2.1     pavel # 5. Regen again, to pick up changed RCS IDs from the above commit:
     18  1.60.2.1     pavel #        cd ${SRCDIR}/tools/compat && ${TOOLDIR}/bin/nbmake-${MACHINE} regen
     19  1.60.2.1     pavel # 6. cvs commit files that were generated.
     20  1.60.2.1     pavel #
     21       1.1        tv 
     22      1.40      salo AC_INIT([libnbcompat], [noversion], [lib-bug-people (a] NetBSD.org])
     23      1.56       wiz AC_CONFIG_HEADERS(nbtool_config.h)
     24       1.1        tv AC_CONFIG_FILES(defs.mk)
     25      1.20     bjh21 
     26      1.56       wiz # Autoheader header and footer
     27  1.60.2.1     pavel AH_TOP([/*      $NetBSD: configure.ac,v 1.60.2.1 2007/08/30 22:37:36 pavel Exp $    */
     28      1.56       wiz  
     29      1.56       wiz #ifndef __NETBSD_NBTOOL_CONFIG_H__
     30      1.56       wiz #define __NETBSD_NBTOOL_CONFIG_H__])
     31      1.56       wiz 
     32      1.56       wiz AH_BOTTOM([#include "compat_defs.h"
     33      1.56       wiz #endif /* !__NETBSD_NBTOOL_CONFIG_H__ */])
     34      1.56       wiz 
     35      1.44       jmc AC_DEFUN([AC_NETBSD],
     36      1.44       jmc [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
     37      1.44       jmc       AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
     38      1.44       jmc       AC_MSG_CHECKING([for NetBSD])
     39      1.44       jmc       AC_EGREP_CPP(yes,
     40      1.44       jmc       [#ifdef __NetBSD__
     41      1.44       jmc 	yes
     42      1.44       jmc 	#endif
     43      1.44       jmc 	],
     44      1.44       jmc 	[AC_MSG_RESULT([yes])
     45      1.53       wiz 	 AC_DEFINE([_POSIX_SOURCE], 1, [Define for NetBSD headers.])
     46      1.53       wiz 	 AC_DEFINE([_POSIX_C_SOURCE], 200112L, [Define for NetBSD headers.])
     47      1.53       wiz 	 AC_DEFINE([_XOPEN_SOURCE], 600, [Define for NetBSD headers.])],
     48      1.44       jmc 	[AC_MSG_RESULT([no])])
     49      1.44       jmc ])# AC_NETBSD
     50      1.44       jmc 
     51      1.44       jmc AC_NETBSD
     52      1.20     bjh21 AC_PATH_PROG(BSHELL, sh, )
     53      1.20     bjh21 if test x"$BSHELL" = x; then
     54      1.20     bjh21 	AC_MSG_ERROR([sh must be somewhere on \$PATH])
     55      1.20     bjh21 fi
     56      1.53       wiz AC_DEFINE_UNQUOTED([PATH_BSHELL], "$BSHELL", [Path to sh(1).])
     57       1.1        tv 
     58       1.4        tv AC_C_BIGENDIAN
     59       1.6        tv AC_HEADER_STDC
     60       1.6        tv 
     61       1.6        tv # Confirm existence of zlib.  (This is available as a default install
     62       1.6        tv # option on many OS's; this could be added as a reachover build in the
     63       1.6        tv # future.)
     64       1.6        tv AC_CHECK_HEADER(zlib.h,,
     65       1.6        tv 	AC_MSG_ERROR([zlib must be installed in a compiler-visible path]))
     66       1.6        tv AC_CHECK_LIB(z, gzdopen,,
     67       1.6        tv 	AC_MSG_ERROR([zlib must be installed in a compiler-visible path]))
     68       1.4        tv 
     69       1.4        tv # Make sure certain required headers are available.
     70       1.4        tv # These are not necessarily required by the code, but they are not
     71       1.4        tv # currently conditionalized.
     72       1.6        tv AC_CHECK_HEADERS(sys/ioctl.h sys/mman.h sys/mtio.h sys/param.h \
     73      1.34   thorpej 	sys/socket.h sys/stat.h sys/time.h sys/types.h sys/utsname.h \
     74      1.34   thorpej 	sys/wait.h assert.h ctype.h errno.h fcntl.h grp.h limits.h locale.h \
     75      1.28    briggs 	netdb.h pwd.h signal.h stdarg.h stdio.h stdlib.h string.h \
     76      1.22   thorpej 	termios.h unistd.h,,
     77       1.4        tv 	AC_MSG_ERROR([standard system header file not found]))
     78       1.4        tv 
     79       1.4        tv # Find headers that may not be available.
     80       1.6        tv AC_HEADER_DIRENT
     81      1.18     bjh21 AC_CHECK_HEADERS(sys/sysmacros.h sys/syslimits.h \
     82      1.44       jmc 	getopt.h features.h malloc.h sys/poll.h stddef.h)
     83      1.57    dogcow AC_CHECK_HEADERS(sys/bswap.h machine/bswap.h sys/cdefs.h machine/endian.h \
     84      1.53       wiz 	sys/featuretest.h err.h inttypes.h libgen.h paths.h stdint.h util.h,,
     85      1.11        tv 	[test -f include/$ac_header || touch include/$ac_header])
     86      1.44       jmc AC_CHECK_HEADERS(rpc/types.h netconfig.h,,
     87      1.41     lukem 	[echo '#include "nbtool_config.h"' >include/$ac_header.new
     88      1.11        tv 	echo '#include "'$srcdir/../../include/$ac_header'"' >>include/$ac_header.new
     89      1.11        tv 	if cmp include/$ac_header.new include/$ac_header >/dev/null 2>&1; then
     90      1.11        tv 		rm -f include/$ac_header.new
     91      1.11        tv 	else
     92      1.11        tv 		mv -f include/$ac_header.new include/$ac_header
     93      1.11        tv 	fi])
     94       1.4        tv 
     95       1.4        tv # Typedefs.
     96       1.1        tv AC_TYPE_SIZE_T
     97      1.44       jmc AC_CHECK_TYPES([id_t, long long, u_long, u_char, u_short, u_int, u_quad_t])
     98      1.53       wiz AC_CHECK_TYPE(socklen_t, [AC_DEFINE([HAVE_SOCKLEN_T], 1,
     99      1.53       wiz 			  [Define if you have the socklen_t type.])],,
    100      1.35   thorpej [#include <sys/types.h>
    101      1.35   thorpej #include <sys/socket.h>])
    102       1.6        tv 
    103       1.9        tv dnl XXX - This is UGLY.  Need a better way to homogenize the bitsized types,
    104       1.9        tv dnl including use of compiler primitive types via AC_CHECK_SIZEOF.
    105       1.9        tv dnl
    106       1.6        tv define([NB_CHECK_INTTYPE], [
    107       1.9        tv 	AC_CHECK_TYPE(uint][$1][_t,, [
    108       1.9        tv 		AC_CHECK_TYPE(u_int][$1][_t,
    109      1.53       wiz 			AC_DEFINE(uint][$1][_t, u_int][$1][_t, \
    110      1.53       wiz 			          [Define if you have u_int][$1][_t, but not uint][$1][_t.]),
    111       1.9        tv 			AC_MSG_ERROR([cannot find a suitable type for uint][$1][_t]))
    112       1.9        tv 	])
    113       1.6        tv 	AC_CHECK_TYPE(u_int][$1][_t,, [
    114       1.6        tv 		AC_CHECK_TYPE(uint][$1][_t,
    115      1.53       wiz 			AC_DEFINE(u_int][$1][_t, uint][$1][_t, \
    116      1.53       wiz 				  [Define if you have uint][$1][_t, but not u_int][$1][_t.]),
    117       1.6        tv 			AC_MSG_ERROR([cannot find a suitable type for u_int][$1][_t]))
    118       1.6        tv 	])
    119       1.6        tv ])
    120       1.6        tv 
    121       1.6        tv NB_CHECK_INTTYPE(8)
    122       1.6        tv NB_CHECK_INTTYPE(16)
    123       1.6        tv NB_CHECK_INTTYPE(32)
    124       1.6        tv NB_CHECK_INTTYPE(64)
    125       1.4        tv 
    126       1.4        tv # Struct members.
    127      1.58   thorpej AC_CHECK_MEMBERS([DIR.dd_fd, DIR.__dd_fd, struct dirent.d_namlen],,,
    128      1.32   thorpej [#include <sys/types.h>
    129      1.32   thorpej #include <dirent.h>])
    130       1.7        tv AC_CHECK_MEMBERS([struct stat.st_flags, struct stat.st_gen,
    131      1.49       jmc 	struct stat.st_birthtime, struct stat.st_birthtimensec,
    132      1.49       jmc 	struct stat.st_atim, struct stat.st_mtimensec],,, 
    133      1.49       jmc 	[#include <sys/stat.h>])
    134      1.46       dbj AC_CHECK_MEMBERS(struct statvfs.f_iosize,,, [#include <sys/statvfs.h>])
    135       1.4        tv 
    136       1.4        tv # Global variable decls.
    137       1.7        tv AC_CHECK_DECLS([optind, optreset],,, [
    138       1.7        tv #include <stdio.h>
    139       1.7        tv #include <stdlib.h>
    140       1.7        tv #include <unistd.h>
    141       1.7        tv ])
    142       1.4        tv AC_CHECK_DECLS(sys_signame,,, [#include <signal.h>])
    143       1.4        tv 
    144       1.4        tv # Library functions (where a .h check isn't enough).
    145      1.19     bjh21 AC_FUNC_ALLOCA
    146      1.39    atatat AC_CHECK_FUNCS(atoll asprintf asnprintf basename devname dirfd dirname \
    147      1.60  christos 	esetfunc fgetln flock fparseln futimes getopt getopt_long \
    148      1.60  christos 	group_from_gid \
    149      1.48       jmc 	heapsort isblank issetugid lchflags lchmod lchown lutimes mkstemp \
    150      1.48       jmc 	mkdtemp poll pread putc_unlocked pwcache_userdb pwrite random setenv \
    151      1.59      elad 	setgroupent setprogname setpassent snprintf strlcat strlcpy strmode \
    152      1.59      elad 	strsep strsuftoll strtoll \
    153      1.23   thorpej 	user_from_uid vasprintf vasnprintf vsnprintf)
    154       1.8        tv 
    155      1.54       wiz AC_CHECK_DECLS([strsuftoll],,,[#include <stdlib.h>])
    156      1.54       wiz 
    157      1.54       wiz AC_CHECK_DECLS([htobe16, htobe32, htobe64, htole16, htole32, htole64, be16toh, be32toh, be64toh, le16toh, le32toh, le64toh],,, [#include <sys/types.h>])
    158      1.44       jmc 
    159      1.54       wiz AC_CHECK_DECLS([bswap16, bswap32, bswap64],,, [#include <machine/bswap.h>])
    160      1.44       jmc 
    161  1.60.2.1     pavel AC_CHECK_DECLS([be16enc, le16enc, be16dec, le16dec, be32enc, le32enc, be32dec, le32dec, be64enc, le64enc, be64dec, le64dec],,, [#include <sys/endian.h>])
    162  1.60.2.1     pavel 
    163      1.54       wiz AC_CHECK_DECLS([fstatvfs],,, [#include <sys/statvfs.h>])
    164      1.47       jmc 
    165       1.8        tv AC_CHECK_DECLS([setgroupent, setpassent],,, [
    166      1.33   thorpej #include <sys/types.h>
    167       1.8        tv #include <grp.h>
    168       1.8        tv #include <pwd.h>
    169       1.8        tv ])
    170       1.1        tv 
    171       1.4        tv # regcomp() and regexec() are also names of functions in the old V8
    172       1.4        tv # regexp package.  To avoid them, we need to find out who has regfree().
    173       1.1        tv 
    174       1.4        tv dnl # Cygwin: We *MUST* look at -lregex *before* the "no libs" condition.
    175       1.4        tv dnl # Thus AC_CHECK_LIB(regex...) comes first, and AC_SEARCHLIBS next.
    176       1.4        tv AC_CHECK_LIB(regex, regfree)
    177       1.4        tv AC_SEARCH_LIBS(regfree, rx posix)
    178       1.1        tv 
    179       1.1        tv AC_OUTPUT
    180