From af10798afdab8a76fe741ef61a457555be6e6b3a Mon Sep 17 00:00:00 2001 From: Job Snijders Date: Tue, 17 Aug 2021 17:18:59 +0000 Subject: [PATCH] Move to Brent Cooks portable --- VERSION | 1 + configure.ac | 106 +++++++++++++++++++++++++++++++++++++++----- include/Makefile.am | 2 +- 3 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 VERSION diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..5a5831a --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.7 diff --git a/configure.ac b/configure.ac index ff6e3a2..cae20cf 100644 --- a/configure.ac +++ b/configure.ac @@ -1,23 +1,103 @@ -AC_INIT(bgpq4,0.0.7,job@sobornost.net) -AM_INIT_AUTOMAKE +# +# Copyright (c) 2019 Brent Cook +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +AC_INIT([bgpq4], m4_esyscmd([tr -d '\n' < VERSION]), job@sobornost.net) + +AC_CANONICAL_HOST +AM_INIT_AUTOMAKE([subdir-objects foreign]) AC_CONFIG_MACRO_DIR([m4]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +AC_PROG_CC([cc gcc]) -AC_PACKAGE_URL(https://github.com/bgp/bgpq4) -AC_CONFIG_HEADERS([config.h]) -AM_SILENT_RULES([yes]) +case $host_os in + *darwin*) + HOST_OS=darwin + AC_DEFINE([SPT_TYPE], [SPT_REUSEARGV]) + ;; + *freebsd*) + HOST_OS=freebsd + ;; + *linux*) + HOST_OS=linux + CFLAGS="$CFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE" + AC_DEFINE([SPT_TYPE], [SPT_REUSEARGV]) + ;; + *netbsd*) + HOST_OS=netbsd + ;; + *openbsd*) + HOST_OS=openbsd + AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD has __bounded__]) + AC_DEFINE([HAVE_ATTRIBUTE__DEAD], [1], [OpenBSD has __dead]) + ;; + *solaris*) + HOST_OS=solaris + CFLAGS="$CFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP" + ;; + *) ;; +esac + +AM_CONDITIONAL([HOST_DARWIN], [test x$HOST_OS = xdarwin]) +AM_CONDITIONAL([HOST_FREEBSD], [test x$HOST_OS = xfreebsd]) +AM_CONDITIONAL([HOST_LINUX], [test x$HOST_OS = xlinux]) +AM_CONDITIONAL([HOST_NETBSD], [test x$HOST_OS = xnetbsd]) +AM_CONDITIONAL([HOST_SOLARIS], [test x$HOST_OS = xsolaris]) AC_PROG_CC -CC=cc -CFLAGS="${CFLAGS} -std=gnu11" - +AC_PROG_CC_STDC +AM_PROG_CC_C_O AC_PROG_LIBTOOL - AC_PROG_INSTALL -AM_CONDITIONAL([HAVE_STRLCPY], [test "x$ac_cv_func_strlcpy" = xyes]) +AC_ARG_ENABLE(warnings, + AS_HELP_STRING([--disable-warnings], + [ enable compiler warnings [default=enabled]]), + [case $enableval in + yes) enable_warnings=yes;; + no) enable_warnings=no;; + *) enable_warnings=yes;; esac], + enable_warnings=yes) -AC_CHECK_HEADERS([sys/cdefs.h sys/queue.h sys/tree.h sys/select.h]) +if test "$enable_warnings" = yes; then + AM_CFLAGS="$AM_CFLAGS -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wpointer-arith -Wsign-compare -Werror-implicit-function-declaration" + save_cflags="$CFLAGS" + CFLAGS=-Wno-pointer-sign + AC_MSG_CHECKING([whether CC supports -Wno-pointer-sign]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_RESULT([yes])] + [WARN_CFLAGS=-Wno-pointer-sign], + [AC_MSG_RESULT([no])] + ) + AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS" + CFLAGS="$save_cflags" +fi + +AC_MSG_CHECKING([if compiling with clang]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ +#ifndef __clang__ + not clang +#endif + ]])], + [AC_MSG_RESULT([yes])] + [CLANG_FLAGS=-Qunused-arguments], + [AC_MSG_RESULT([no])] +) +AM_CFLAGS="$AM_CFLAGS $CLANG_FLAGS" +AM_LDFLAGS="$LDFLAGS $CLANG_FLAGS" +AC_SUBST(AM_CFLAGS) +AC_SUBST(AM_LDFLAGS) AC_CHECK_FUNCS(strlcpy) AC_CHECK_FUNCS(pledge) @@ -25,6 +105,10 @@ AC_CHECK_FUNCS(pledge) AC_CHECK_LIB(socket,socket) AC_CHECK_LIB(nsl,getaddrinfo) +AC_CHECK_HEADERS([sys/cdefs.h sys/queue.h sys/tree.h sys/select.h]) + +AM_CONDITIONAL([HAVE_STRLCPY], [test "x$ac_cv_func_strlcpy" = xyes]) + AC_CONFIG_FILES([ Makefile include/Makefile diff --git a/include/Makefile.am b/include/Makefile.am index 673446f..ac85d7d 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,6 +1,6 @@ noinst_HEADERS = -noinst_HEADERS += string.h noinst_HEADERS += sys/_null.h noinst_HEADERS += sys/queue.h noinst_HEADERS += sys/tree.h noinst_HEADERS += sys/types.h +noinst_HEADERS += string.h