1# 2# Copyright (c) 2019 Brent Cook 3# 4# Permission to use, copy, modify, and distribute this software for any 5# purpose with or without fee is hereby granted, provided that the above 6# copyright notice and this permission notice appear in all copies. 7# 8# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 16AC_INIT([bgpq4], m4_esyscmd([tr -d '\n' < VERSION]), job@sobornost.net) 17 18AC_CANONICAL_HOST 19AM_INIT_AUTOMAKE([subdir-objects foreign]) 20AC_CONFIG_MACRO_DIR([m4]) 21m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 22AC_PROG_CC([cc gcc]) 23 24case $host_os in 25 *darwin*) 26 HOST_OS=darwin 27 AC_DEFINE([SPT_TYPE], [SPT_REUSEARGV]) 28 ;; 29 *freebsd*) 30 HOST_OS=freebsd 31 ;; 32 *linux*) 33 HOST_OS=linux 34 CFLAGS="$CFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE" 35 AC_DEFINE([SPT_TYPE], [SPT_REUSEARGV]) 36 ;; 37 *netbsd*) 38 HOST_OS=netbsd 39 ;; 40 *openbsd*) 41 HOST_OS=openbsd 42 AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD has __bounded__]) 43 AC_DEFINE([HAVE_ATTRIBUTE__DEAD], [1], [OpenBSD has __dead]) 44 ;; 45 *solaris*) 46 HOST_OS=solaris 47 CFLAGS="$CFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP" 48 ;; 49 *) ;; 50esac 51 52AM_CONDITIONAL([HOST_DARWIN], [test x$HOST_OS = xdarwin]) 53AM_CONDITIONAL([HOST_FREEBSD], [test x$HOST_OS = xfreebsd]) 54AM_CONDITIONAL([HOST_LINUX], [test x$HOST_OS = xlinux]) 55AM_CONDITIONAL([HOST_NETBSD], [test x$HOST_OS = xnetbsd]) 56AM_CONDITIONAL([HOST_SOLARIS], [test x$HOST_OS = xsolaris]) 57 58AC_PROG_CC 59AC_PROG_CC_STDC 60AM_PROG_CC_C_O 61AC_PROG_LIBTOOL 62AC_PROG_INSTALL 63 64AC_ARG_ENABLE(warnings, 65 AS_HELP_STRING([--disable-warnings], 66 [ enable compiler warnings [default=enabled]]), 67 [case $enableval in 68 yes) enable_warnings=yes;; 69 no) enable_warnings=no;; 70 *) enable_warnings=yes;; esac], 71 enable_warnings=yes) 72 73if test "$enable_warnings" = yes; then 74 AM_CFLAGS="$AM_CFLAGS -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wsign-compare -Werror-implicit-function-declaration" 75 save_cflags="$CFLAGS" 76 CFLAGS=-Wno-pointer-sign 77 AC_MSG_CHECKING([whether CC supports -Wno-pointer-sign]) 78 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], 79 [AC_MSG_RESULT([yes])] 80 [WARN_CFLAGS=-Wno-pointer-sign], 81 [AC_MSG_RESULT([no])] 82 ) 83 AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS" 84 CFLAGS="$save_cflags" 85fi 86 87AC_MSG_CHECKING([if compiling with clang]) 88AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ 89#ifndef __clang__ 90 not clang 91#endif 92 ]])], 93 [AC_MSG_RESULT([yes])] 94 [CLANG_FLAGS=-Qunused-arguments], 95 [AC_MSG_RESULT([no])] 96) 97AM_CFLAGS="$AM_CFLAGS $CLANG_FLAGS" 98AM_LDFLAGS="$LDFLAGS $CLANG_FLAGS" 99AC_SUBST(AM_CFLAGS) 100AC_SUBST(AM_LDFLAGS) 101 102AC_CHECK_FUNCS(strlcpy) 103AC_CHECK_FUNCS(pledge) 104 105AC_CHECK_LIB(socket,socket) 106AC_CHECK_LIB(nsl,getaddrinfo) 107 108AC_CHECK_HEADERS([sys/cdefs.h sys/queue.h sys/tree.h sys/select.h]) 109 110AM_CONDITIONAL([HAVE_PLEDGE], [test "x$ac_cv_func_pledge" = xyes]) 111AM_CONDITIONAL([HAVE_STRLCPY], [test "x$ac_cv_func_strlcpy" = xyes]) 112 113AC_CONFIG_FILES([ 114 Makefile 115 include/Makefile 116 compat/Makefile 117]) 118 119AC_OUTPUT 120