1# .o88o. oooo 2# 888 `" `888 3# .oooo.o oo.ooooo. o888oo oooo ooo .oooo. 888 4# d88( "8 888' `88b 888 `88. .8' `P )88b 888 5# `"Y88b. 888 888 888 `88..8' .oP"888 888 6# o. )88b 888 888 888 `888' d8( 888 888 7# 8""888P' 888bod8P' o888o `8' `Y888""8o o888o 8# 888 9# o888o 10# 11# ------------------------------------------------------------------------------ 12# An ANSI C Sender Policy Framework record validator 13# ------------------------------------------------------------------------------ 14# 15# File: configure.in 16# Author: James Couzens <jcouzens@codeshare.ca> 17# Date: June 15, 2004 18# 19# Info: 'AutoTools' framework for building a configure script 20# for the SPF Validator 21# 22#------------------------------------------------------------------------------- 23 24AC_PREREQ(2.59) 25AC_INIT(spfval,0.0.1,tanderson@codeshare.ca) 26AC_CONFIG_AUX_DIR([build_tools]) 27AM_INIT_AUTOMAKE(spfval,0.0.1,tanderson@codeshare.ca) 28PACKAGE=$PACKAGE_NAME 29VERSION=$PACKAGE_VERSION 30 31 32#------------------------------------------------------------------------------- 33# Required programs 34#------------------------------------------------------------------------------- 35 36AM_CONFIG_HEADER([config.h]) 37#AC_CONFIG_SRCDIR([src/spfval/main.c]) 38 39AC_PROG_CC 40AC_PROG_LN_S 41#AC_PROG_RANLIB 42#AC_ARG_PROGRAM 43AC_PROG_MAKE_SET 44#AC_PROG_CPP 45AC_PROG_INSTALL 46AM_CONDITIONAL(GCC, test x$GCC = xyes) 47 48# Auto Make 49#AM_MAINTAINER_MODE 50 51 52#------------------------------------------------------------------------------- 53# LIBTOOL 54#------------------------------------------------------------------------------- 55 56#AC_PROG_LIBTOOL 57#AC_SUBST(LIBTOOL_DEPS) 58 59# 60# Making releases: 61# SPFVAL_MICRO_VERSION += 1; 62# SPFVAL_INTERFACE_AGE += 1; 63# SPFVAL_BINARY_AGE += 1; 64# if any functions have been added, set SPFVAL_INTERFACE_AGE to 0. 65# if backwards compatibility has been broken, 66# set SPFVAL_BINARY_AGE _and_ SPFVAL_INTERFACE_AGE to 0. 67# 68 69#SPFVAL_MAJOR_VERSION=1 70#SPFVAL_MINOR_VERSION=0 71#SPFVAL_MICRO_VERSION=0 72#SPFVAL_INTERFACE_AGE=1 73#SPFVAL_BINARY_AGE=1 74#SPFVAL_VERSION=$SPFVAL_MAJOR_VERSION.$SPFVAL_MINOR_VERSION.$SPFVAL_MICRO_VERSION 75 76#AC_SUBST(SPFVAL_MAJOR_VERSION) 77#AC_SUBST(SPFVAL_MINOR_VERSION) 78#AC_SUBST(SPFVAL_MICRO_VERSION) 79#AC_SUBST(SPFVAL_VERSION) 80#AC_SUBST(SPFVAL_INTERFACE_AGE) 81#AC_SUBST(SPFVAL_BINARY_AGE) 82 83# -version-info "$(LT_CURRENT):$(LT_REVISION):$(LT_AGE)" \ 84# -release $(LT_RELEASE) 85# libtool versioning 86 87#LT_CURRENT="0" 88#LT_REVISION="1" 89#LT_AGE="0" 90#LT_RELEASE="1.0" 91 92#echo "" 93#echo "--------------------------------------------------------------------------------" 94#echo "" 95#echo "LIBTOOL Version ........ ${SPFVAL_MAJOR_VERSION}.${SPFVAL_MINOR_VERSION}.${SPFVAL_MICRO_VERSION}" 96#echo "LIBTOOL Interface Age .. $SPFVAL_INTERFACE_AGE" 97#echo "LIBTOOL Binary Age ..... $SPFVAL_BINARY_AGE" 98#echo "LIBTOOL Current ........ $LT_CURRENT" 99#echo "LIBTOOL Revision ....... $LT_REVISION" 100#echo "LIBTOOL Age ............ $LT_AGE" 101#echo "LIBTOOL Release ........ $LT_RELEASE" 102#echo "" 103#echo "--------------------------------------------------------------------------------" 104#echo "" 105 106 107#------------------------------------------------------------------------------- 108# LIBTOOL relating substitutionssn 109#------------------------------------------------------------------------------- 110 111#AC_SUBST(LT_RELEASE) 112#AC_SUBST(LT_CURRENT) 113#AC_SUBST(LT_REVISION) 114#AC_SUBST(LT_AGE) 115 116 117#------------------------------------------------------------------------------- 118# Check for some library functions 119#------------------------------------------------------------------------------- 120 121AC_CHECK_LIB([c], [exit]) 122 123 124#------------------------------------------------------------------------------- 125# Check up on GCC 126#------------------------------------------------------------------------------- 127 128if test "$GCC" = "yes" 129then 130 CFLAGS="-Wall $CFLAGS" 131fi 132 133 134#------------------------------------------------------------------------------- 135# Define special resolver flags for various operating systems 136#------------------------------------------------------------------------------- 137 138case "$host" in 139 *-*-darwin*) 140 AC_DEFINE([_WITH_DARWINPPC],[],["Darwin/OSX"]) 141 ;; 142 *-*-sunos4.1.1*) 143 SPFVAL_LDFLAGS="" 144 ;; 145 *-*-solaris*) 146 SPFVAL_LDFLAGS="" 147 ;; 148 *-*-sunos*) 149 SPFVAL_LDFLAGS="" 150 ;; 151 *-*-freebsd*) 152 AC_DEFINE([_WITH_FREEBSD],[],["FreeBSD"]) 153 SPFVAL_LDFLAGS="-lc" 154 ;; 155 *-*-netbsd*) 156 ;; 157 *-*-openbsd*) 158 AC_DEFINE([_WITH_OPENBSD],[],["OpenBSD"]) 159 ;; 160 *) 161 SPFVAL_LDFLAGS="-lresolv" 162 ;; 163esac 164 165 166#------------------------------------------------------------------------------- 167# Solaris specific 168#------------------------------------------------------------------------------- 169 170case "$host" in 171 *-*-solaris*) 172 extralibflags="-R$libdir" 173 AC_MSG_WARN(Solaris install detected. Using extralibflags for linking: $extralibflags) 174 ;; 175 *) 176 extralibflags="" 177 ;; 178esac 179 180 181#------------------------------------------------------------------------------- 182# Checks for header files. 183#------------------------------------------------------------------------------- 184 185AC_HEADER_STDC 186AC_CHECK_HEADERS([stdio.h, stdlib.h, string.h, strings.h, unistd.h, error.h, \ 187 inttypes.h]) 188 189 190#------------------------------------------------------------------------------- 191# Required Types, structures and other compiler requirements 192#------------------------------------------------------------------------------- 193 194AC_C_CONST 195AC_C_INLINE 196AC_TYPE_SIZE_T 197AC_STRUCT_TM 198AC_C_CHAR_UNSIGNED 199AC_CHECK_TYPES([time_t]) 200 201 202#------------------------------------------------------------------------------- 203# Required functions 204#------------------------------------------------------------------------------- 205 206AC_FUNC_MALLOC 207AC_FUNC_REALLOC 208AC_FUNC_STRFTIME 209AC_CHECK_FUNCS([ntohl, memset, strcasecmp, strchr, strdup, strrchr, strstr, \ 210 mkdir]) 211 212 213#------------------------------------------------------------------------------- 214# __BEGIN_DECLS / __END_DECLS defined ? 215#------------------------------------------------------------------------------- 216 217AC_MSG_CHECKING([__BEGIN_DECLS]) 218AC_COMPILE_IFELSE([ 219#include <features.h> 220__BEGIN_DECLS 221extern int x; 222__END_DECLS], 223 [AC_MSG_RESULT(yes) 224 AC_DEFINE(HAVE__BEGIN_DECLS,1, 225[Define to 1 if declarations in headers are surrounded by __{BEGIN,END}_DECLS]) 226 AC_SUBST(__BEGIN_DECLS,__BEGIN_DECLS) 227 AC_SUBST(__END_DECLS,__END_DECLS)], 228 [AC_MSG_RESULT(no) 229 AC_SUBST_FILE(__BEGIN_DECLS_INCL) 230 __BEGIN_DECLS_INCL=$srcdir/conf/begin_decls 231 AC_SUBST_FILE(__END_DECLS_INCL) 232 __END_DECLS_INCL=$srcdir/conf/end_decls] 233) 234 235 236#------------------------------------------------------------------------------- 237# Unsigned int types 238#------------------------------------------------------------------------------- 239 240AC_CHECK_TYPE(u_int8_t, [uint="u_int8_t" 241 AC_DEFINE(HAVE_U_INT8_T,1,[Define to 1 if type `u_int8_t' is defined])], 242 AC_CHECK_TYPE(uint8_t, [uint="uint8_t" 243 AC_DEFINE(HAVE_UINT8_T,1,[Define to 1 if type `uint8_t' is defined])], 244 [uint="unsigned char"])) 245AC_SUBST(U_INT8_T,[$uint]) 246 247AC_CHECK_TYPE(u_int16_t, [uint="u_int16_t" 248 AC_DEFINE(HAVE_U_INT16_T,1,[Define to 1 if type `u_int16_t' is defined])], 249 AC_CHECK_TYPE(uint16_t, [uint="uint16_t" 250 AC_DEFINE(HAVE_UINT16_T,1,[Define to 1 if type `uint16_t' is defined])], 251 [uint="unsigned short"])) 252AC_SUBST(U_INT16_T,[$uint]) 253 254AC_CHECK_TYPE(u_int32_t, [uint="u_int32_t" 255 AC_DEFINE(HAVE_U_INT32_T,1,[Define to 1 if type `u_int32_t' is defined])], 256 AC_CHECK_TYPE(uint32_t, [uint="uint32_t" 257 AC_DEFINE(HAVE_UINT32_T,1,[Define to 1 if type `uint32_t' is defined])], 258 [uint="unsigned int"])) 259AC_SUBST(U_INT32_T,[$uint]) 260 261AC_CHECK_TYPE(uintptr_t, [uint="uintptr_t" 262 AC_DEFINE(HAVE_UINTPTR_T,1,[Define to 1 if type `uintptr_t' is defined])]) 263AC_SUBST(UINTPTR_T,[$uint]) 264 265 266#------------------------------------------------------------------------------- 267# __FUNCTION__ 268#------------------------------------------------------------------------------- 269 270AC_MSG_CHECKING([__FUNCTION__]) 271func=none 272AC_COMPILE_IFELSE( 273 [int x() { f(__FUNCTION__); }], 274 AC_MSG_RESULT([__FUNCTION__]) 275 AC_DEFINE(HAVE___FUNCTION__, [], ["Define to 1 if __FUNCTION__ is defined"]), 276 AC_COMPILE_IFELSE( 277 [int x() { f(__func__); }], 278 AC_MSG_RESULT([__func__]) 279 AC_DEFINE(HAVE___FUNC__, [], ["Define to 1 if __func__ is defined"]))) 280 281 282#------------------------------------------------------------------------------- 283# Setup build directories 284#------------------------------------------------------------------------------- 285 286SPFVAL_BUILD_DIRS="spfval" 287AC_SUBST(SPFVAL_BUILD_DIRS) 288 289 290#------------------------------------------------------------------------------- 291# Warn people configuring as root.... 292#------------------------------------------------------------------------------- 293 294idcommand="id -u" 295if test `$idcommand` == "0" 296then 297 AC_MSG_WARN(=== DO NOT EVER CONFIGURE AS ROOT ===) 298 AC_MSG_WARN(=== UNLESS EXPLICITLY EXPRESSED BY ===) 299 AC_MSG_WARN(=== SUPPLIED DOCUMENTATION FROM A ===) 300 AC_MSG_WARN(=== REPUTABLE AUTHOR! Baka! ===) 301fi 302 303 304#------------------------------------------------------------------------------- 305# Check to see if we want to enable debugging 306#------------------------------------------------------------------------------- 307 308AC_MSG_CHECKING(whether DEBUG is eanbled) 309AC_ARG_ENABLE(debug, 310[ --enable-debug Enables debug option (default=no)], 311[case "${enableval}" in 312 yes) 313 debug=true 314 AC_MSG_RESULT(yes) 315 ;; 316 no) 317 debug=false 318 AC_MSG_RESULT(no) 319 ;; 320 *) 321 AC_MSG_ERROR(bad value ${enableval} for --enable-debug) 322 ;; 323esac], 324[debug=false] AC_MSG_RESULT(no)) 325 326if test "$debug" = "true"; then 327 CFLAGS="-ggdb -D_SPFVAL_DEBUG $CFLAGS" 328fi 329 330 331#------------------------------------------------------------------------------- 332# Generate Makefiles 333#------------------------------------------------------------------------------- 334 335AC_OUTPUT(Makefile) 336AC_OUTPUT(src/Makefile) 337AC_OUTPUT(src/spfval/Makefile) 338 339echo "" 340echo " .o88o. oooo " 341echo " 888 \`\" \`888 " 342echo " .oooo.o oo.ooooo. o888oo oooo ooo .oooo. 888 " 343echo " d88( \"8 888' \`88b 888 \`88. .8' \`P )88b 888 " 344echo " \`\"Y88b. 888 888 888 \`88..8' .oP\"888 888 " 345echo " o. )88b 888 888 888 \`888' d8( 888 888 " 346echo " 8\"\"888P' 888bod8P' o888o \`8' \`Y888\"\"8o o888o " 347echo " 888 " 348echo " o888o " 349echo "" 350echo "--------------------------------------------------------------------------------" 351echo " An ANSI C Sender Policy Framework record validator " 352echo "--------------------------------------------------------------------------------" 353echo "" 354echo "" 355echo "--------------------------------------------------------------------------------" 356echo " $PACKAGE $VERSION " 357echo "--------------------------------------------------------------------------------" 358echo "" 359echo " ./CHANGELOG ............ List of documented changed between versions" 360echo " ./FAQ .................. Frequently Asked Questions (and Answers :-) )" 361echo " ./LICENSE .............. Terms under which spfval is licensed" 362echo " ./README ............... A Quick and Excellent rundown of basic information" 363echo " ./TODO ................. Things planned for future releases that are 'To Do'" 364echo " ./VERSION .............. Version of thie release" 365echo " ./bin .................. Static & Dyn. versions of the spfval Query Tool" 366echo " ./src .................. Its not the Swartz, but it will have to do ;)" 367echo "" 368echo "--------------------------------------------------------------------------------" 369sleep 2 370echo "" 371echo " Website ................................ http://spfTools.net" 372echo " Contact ................................ tanderson@codeshare.ca" 373echo "" 374echo "--------------------------------------------------------------------------------" 375sleep 1 376echo "" 377 378if test "$debug" = "true"; then 379 tmp="ON" 380else 381 tmp="OFF" 382fi 383echo " Enable Debugging ........................................... "$tmp"" 384 385echo "" 386echo " spfval binaries are in the new 'bin' dir in the spfval root" 387echo "--------------------------------------------------------------------------------" 388echo "" 389 390# end of configure.in 391