| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| #!/bin/sh -e | ||
| # Copyright 2019 OARC, Inc. | ||
| # Copyright 2017-2018 Akamai Technologies | ||
| # Copyright 2006-2016 Nominum, Inc. | ||
| # All rights reserved. | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| autoreconf --force --install --include=m4 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| # Copyright 2019 OARC, Inc. | ||
| # Copyright 2017-2018 Akamai Technologies | ||
| # Copyright 2006-2016 Nominum, Inc. | ||
| # All rights reserved. | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| AC_PREREQ(2.64) | ||
| AC_INIT([dnsperf], [2.2.0], [admin@dns-oarc.net], [dnsperf], [https://github.com/DNS-OARC/dnsperf/issues]) | ||
| AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) | ||
| AC_CONFIG_SRCDIR([src/dnsperf.c]) | ||
| AC_CONFIG_HEADER([src/config.h]) | ||
| AC_CONFIG_MACRO_DIR([m4]) | ||
|
|
||
| # Checks for programs. | ||
| AC_PROG_CC | ||
| AM_PROG_CC_C_O | ||
| AC_CANONICAL_HOST | ||
| AC_C_INLINE | ||
| LT_INIT([disable-static]) | ||
|
|
||
| # Check --enable-warn-all | ||
| AC_ARG_ENABLE([warn-all], [AS_HELP_STRING([--enable-warn-all], [Enable all compiler warnings])], [AX_CFLAGS_WARN_ALL()]) | ||
|
|
||
| # Check --with-extra-cflags | ||
| AC_ARG_WITH([extra-cflags], [AS_HELP_STRING([--with-extra-cflags=CFLAGS], [Add extra CFLAGS])], [ | ||
| AC_MSG_NOTICE([appending extra CFLAGS... $withval]) | ||
| AS_VAR_APPEND(CFLAGS, [" $withval"]) | ||
| ]) | ||
|
|
||
| # Check --with-extra-ldflags | ||
| AC_ARG_WITH([extra-ldflags], [AS_HELP_STRING([--with-extra-ldflags=CFLAGS], [Add extra LDFLAGS])], [ | ||
| AC_MSG_NOTICE([appending extra LDFLAGS... $withval]) | ||
| AS_VAR_APPEND(LDFLAGS, [" $withval"]) | ||
| ]) | ||
|
|
||
| # Checks for support. | ||
| AX_PTHREAD | ||
| AC_CHECK_LIB(socket, socket) | ||
| AC_CHECK_LIB(nsl, inet_ntoa) | ||
|
|
||
| # Check for bind | ||
| AC_ARG_WITH(bind, | ||
| [ --with-bind=[[PATH]] Specify ISC BIND 9 prefix path], | ||
| use_bind="$withval", use_bind="yes") | ||
|
|
||
| AC_MSG_CHECKING(for BIND 9 libraries) | ||
| if test $use_bind = no; then | ||
| AC_MSG_ERROR(BIND 9 libraries must be installed) | ||
| elif test $use_bind = yes; then | ||
| bindpath="$PATH" | ||
| else | ||
| bindpath="$withval/bin" | ||
| fi | ||
| AC_PATH_PROG(ac_cv_isc_config, [isc-config.sh], "no", [$bindpath]) | ||
| if test "$ac_cv_isc_config" = "no"; then | ||
| AC_MSG_ERROR(BIND 9 libraries must be installed) | ||
| fi | ||
| AC_SUBST(DNSLIBS, "`$ac_cv_isc_config --libs dns bind9`") | ||
| AC_SUBST(DNSCFLAGS, "`$ac_cv_isc_config --cflags dns bind9`") | ||
|
|
||
| # Checks for sizes | ||
| AX_TYPE_SOCKLEN_T | ||
| AX_SA_LEN | ||
|
|
||
| # Output Makefiles | ||
| AC_CONFIG_FILES([ | ||
| Makefile | ||
| src/Makefile | ||
| ]) | ||
| AC_OUTPUT |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| # =========================================================================== | ||
| # https://www.gnu.org/software/autoconf-archive/ax_append_flag.html | ||
| # =========================================================================== | ||
| # | ||
| # SYNOPSIS | ||
| # | ||
| # AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE]) | ||
| # | ||
| # DESCRIPTION | ||
| # | ||
| # FLAG is appended to the FLAGS-VARIABLE shell variable, with a space | ||
| # added in between. | ||
| # | ||
| # If FLAGS-VARIABLE is not specified, the current language's flags (e.g. | ||
| # CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains | ||
| # FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly | ||
| # FLAG. | ||
| # | ||
| # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. | ||
| # | ||
| # LICENSE | ||
| # | ||
| # Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de> | ||
| # Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com> | ||
| # | ||
| # Copying and distribution of this file, with or without modification, are | ||
| # permitted in any medium without royalty provided the copyright notice | ||
| # and this notice are preserved. This file is offered as-is, without any | ||
| # warranty. | ||
|
|
||
| #serial 8 | ||
|
|
||
| AC_DEFUN([AX_APPEND_FLAG], | ||
| [dnl | ||
| AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF | ||
| AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])]) | ||
| AS_VAR_SET_IF(FLAGS,[ | ||
| AS_CASE([" AS_VAR_GET(FLAGS) "], | ||
| [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])], | ||
| [ | ||
| AS_VAR_APPEND(FLAGS,[" $1"]) | ||
| AC_RUN_LOG([: FLAGS="$FLAGS"]) | ||
| ]) | ||
| ], | ||
| [ | ||
| AS_VAR_SET(FLAGS,[$1]) | ||
| AC_RUN_LOG([: FLAGS="$FLAGS"]) | ||
| ]) | ||
| AS_VAR_POPDEF([FLAGS])dnl | ||
| ])dnl AX_APPEND_FLAG |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,122 @@ | ||
| # =========================================================================== | ||
| # https://www.gnu.org/software/autoconf-archive/ax_cflags_warn_all.html | ||
| # =========================================================================== | ||
| # | ||
| # SYNOPSIS | ||
| # | ||
| # AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] | ||
| # AX_CXXFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] | ||
| # AX_FCFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] | ||
| # | ||
| # DESCRIPTION | ||
| # | ||
| # Try to find a compiler option that enables most reasonable warnings. | ||
| # | ||
| # For the GNU compiler it will be -Wall (and -ansi -pedantic) The result | ||
| # is added to the shellvar being CFLAGS, CXXFLAGS, or FCFLAGS by default. | ||
| # | ||
| # Currently this macro knows about the GCC, Solaris, Digital Unix, AIX, | ||
| # HP-UX, IRIX, NEC SX-5 (Super-UX 10), Cray J90 (Unicos 10.0.0.8), and | ||
| # Intel compilers. For a given compiler, the Fortran flags are much more | ||
| # experimental than their C equivalents. | ||
| # | ||
| # - $1 shell-variable-to-add-to : CFLAGS, CXXFLAGS, or FCFLAGS | ||
| # - $2 add-value-if-not-found : nothing | ||
| # - $3 action-if-found : add value to shellvariable | ||
| # - $4 action-if-not-found : nothing | ||
| # | ||
| # NOTE: These macros depend on AX_APPEND_FLAG. | ||
| # | ||
| # LICENSE | ||
| # | ||
| # Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de> | ||
| # Copyright (c) 2010 Rhys Ulerich <rhys.ulerich@gmail.com> | ||
| # | ||
| # 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 3 of the License, 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 <https://www.gnu.org/licenses/>. | ||
| # | ||
| # As a special exception, the respective Autoconf Macro's copyright owner | ||
| # gives unlimited permission to copy, distribute and modify the configure | ||
| # scripts that are the output of Autoconf when processing the Macro. You | ||
| # need not follow the terms of the GNU General Public License when using | ||
| # or distributing such scripts, even though portions of the text of the | ||
| # Macro appear in them. The GNU General Public License (GPL) does govern | ||
| # all other use of the material that constitutes the Autoconf Macro. | ||
| # | ||
| # This special exception to the GPL applies to versions of the Autoconf | ||
| # Macro released by the Autoconf Archive. When you make and distribute a | ||
| # modified version of the Autoconf Macro, you may extend this special | ||
| # exception to the GPL to apply to your modified version as well. | ||
|
|
||
| #serial 16 | ||
|
|
||
| AC_DEFUN([AX_FLAGS_WARN_ALL],[dnl | ||
| AS_VAR_PUSHDEF([FLAGS],[_AC_LANG_PREFIX[]FLAGS])dnl | ||
| AS_VAR_PUSHDEF([VAR],[ac_cv_[]_AC_LANG_ABBREV[]flags_warn_all])dnl | ||
| AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], | ||
| VAR,[VAR="no, unknown" | ||
| ac_save_[]FLAGS="$[]FLAGS" | ||
| for ac_arg dnl | ||
| in "-warn all % -warn all" dnl Intel | ||
| "-pedantic % -Wall" dnl GCC | ||
| "-xstrconst % -v" dnl Solaris C | ||
| "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix | ||
| "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX | ||
| "-ansi -ansiE % -fullwarn" dnl IRIX | ||
| "+ESlit % +w1" dnl HP-UX C | ||
| "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) | ||
| "-h conform % -h msglevel 2" dnl Cray C (Unicos) | ||
| # | ||
| do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` | ||
| AC_COMPILE_IFELSE([AC_LANG_PROGRAM], | ||
| [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) | ||
| done | ||
| FLAGS="$ac_save_[]FLAGS" | ||
| ]) | ||
| AS_VAR_POPDEF([FLAGS])dnl | ||
| AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) | ||
| case ".$VAR" in | ||
| .ok|.ok,*) m4_ifvaln($3,$3) ;; | ||
| .|.no|.no,*) m4_default($4,[m4_ifval($2,[AX_APPEND_FLAG([$2], [$1])])]) ;; | ||
| *) m4_default($3,[AX_APPEND_FLAG([$VAR], [$1])]) ;; | ||
| esac | ||
| AS_VAR_POPDEF([VAR])dnl | ||
| ])dnl AX_FLAGS_WARN_ALL | ||
| dnl implementation tactics: | ||
| dnl the for-argument contains a list of options. The first part of | ||
| dnl these does only exist to detect the compiler - usually it is | ||
| dnl a global option to enable -ansi or -extrawarnings. All other | ||
| dnl compilers will fail about it. That was needed since a lot of | ||
| dnl compilers will give false positives for some option-syntax | ||
| dnl like -Woption or -Xoption as they think of it is a pass-through | ||
| dnl to later compile stages or something. The "%" is used as a | ||
| dnl delimiter. A non-option comment can be given after "%%" marks | ||
| dnl which will be shown but not added to the respective C/CXXFLAGS. | ||
|
|
||
| AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl | ||
| AC_LANG_PUSH([C]) | ||
| AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) | ||
| AC_LANG_POP([C]) | ||
| ]) | ||
|
|
||
| AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl | ||
| AC_LANG_PUSH([C++]) | ||
| AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) | ||
| AC_LANG_POP([C++]) | ||
| ]) | ||
|
|
||
| AC_DEFUN([AX_FCFLAGS_WARN_ALL],[dnl | ||
| AC_LANG_PUSH([Fortran]) | ||
| AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) | ||
| AC_LANG_POP([Fortran]) | ||
| ]) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| # =========================================================================== | ||
| # https://www.gnu.org/software/autoconf-archive/ax_require_defined.html | ||
| # =========================================================================== | ||
| # | ||
| # SYNOPSIS | ||
| # | ||
| # AX_REQUIRE_DEFINED(MACRO) | ||
| # | ||
| # DESCRIPTION | ||
| # | ||
| # AX_REQUIRE_DEFINED is a simple helper for making sure other macros have | ||
| # been defined and thus are available for use. This avoids random issues | ||
| # where a macro isn't expanded. Instead the configure script emits a | ||
| # non-fatal: | ||
| # | ||
| # ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found | ||
| # | ||
| # It's like AC_REQUIRE except it doesn't expand the required macro. | ||
| # | ||
| # Here's an example: | ||
| # | ||
| # AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) | ||
| # | ||
| # LICENSE | ||
| # | ||
| # Copyright (c) 2014 Mike Frysinger <vapier@gentoo.org> | ||
| # | ||
| # Copying and distribution of this file, with or without modification, are | ||
| # permitted in any medium without royalty provided the copyright notice | ||
| # and this notice are preserved. This file is offered as-is, without any | ||
| # warranty. | ||
|
|
||
| #serial 2 | ||
|
|
||
| AC_DEFUN([AX_REQUIRE_DEFINED], [dnl | ||
| m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])]) | ||
| ])dnl AX_REQUIRE_DEFINED |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| #!/bin/sh -e | ||
|
|
||
| m4_files="ax_pthread.m4 ax_append_flag.m4 ax_cflags_warn_all.m4 ax_require_defined.m4" | ||
|
|
||
| for ax in $m4_files; do | ||
| rm -f "$ax" | ||
| wget -O "$ax" "http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/$ax" | ||
| done |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| # Copyright 2019 OARC, Inc. | ||
| # Copyright 2017-2018 Akamai Technologies | ||
| # Copyright 2006-2016 Nominum, Inc. | ||
| # All rights reserved. | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| MAINTAINERCLEANFILES = $(srcdir)/Makefile.in $(srcdir)/config.h.in | ||
| CLEANFILES = dnsperf.1 resperf.1 | ||
|
|
||
| SUBDIRS = | ||
|
|
||
| AM_CFLAGS = -I$(srcdir) \ | ||
| -I$(top_srcdir) \ | ||
| $(PTHREAD_CFLAGS) \ | ||
| $(DNSCFLAGS) | ||
|
|
||
| EXTRA_DIST = dnsperf.1.in resperf-report resperf.1.in | ||
|
|
||
| bin_PROGRAMS = dnsperf resperf | ||
| dist_bin_SCRIPTS = resperf-report | ||
|
|
||
| _libperf_sources = datafile.c dns.c log.c net.c opt.c os.c | ||
| _libperf_headers = datafile.h dns.h log.h net.h opt.h os.h util.h version.h | ||
|
|
||
| dnsperf_SOURCES = $(_libperf_sources) dnsperf.c | ||
| dist_dnsperf_SOURCES = $(_libperf_headers) | ||
| dnsperf_LDADD = $(PTHREAD_LIBS) $(DNSLIBS) | ||
|
|
||
| resperf_SOURCES = $(_libperf_sources) resperf.c | ||
| dist_resperf_SOURCES = $(_libperf_headers) | ||
| resperf_LDADD = $(PTHREAD_LIBS) $(DNSLIBS) | ||
|
|
||
| man1_MANS = dnsperf.1 resperf.1 | ||
|
|
||
| dnsperf.1: dnsperf.1.in Makefile | ||
| sed -e 's,[@]PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \ | ||
| -e 's,[@]PACKAGE_URL[@],$(PACKAGE_URL),g' \ | ||
| -e 's,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g' \ | ||
| < $(srcdir)/dnsperf.1.in > dnsperf.1 | ||
|
|
||
| resperf.1: resperf.1.in Makefile | ||
| sed -e 's,[@]PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \ | ||
| -e 's,[@]PACKAGE_URL[@],$(PACKAGE_URL),g' \ | ||
| -e 's,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g' \ | ||
| < $(srcdir)/resperf.1.in > resperf.1 |