1 AC_DEFUN(DC_DO_WIN32, [ 2 AC_CHECK_HEADERS(windows.h windowsx.h) 3 ]) 4 5 AC_DEFUN(DC_DO_TYPE, [ 6 if test -z "$ac_cv_sizeof_long"; then 7 AC_C_INLINE 8 AC_CHECK_SIZEOF(long long, 8) 9 AC_CHECK_SIZEOF(long, 4) 10 AC_CHECK_SIZEOF(int, 4) 11 AC_CHECK_SIZEOF(short, 2) 12 fi 13 FOUND=0 14 for dc_cv_loop in \$ac_cv_sizeof_long_long \$ac_cv_sizeof_int \$ac_cv_sizeof_long \$ac_cv_sizeof_short; do 15 dc_cv_size=`eval echo $dc_cv_loop` 16 dc_cv_name=`echo $dc_cv_loop | sed s/\\\$ac_cv_sizeof_//` 17 if test "$dc_cv_size" = "$3"; then 18 if test "$dc_cv_name" = "int"; then 19 AC_CHECK_TYPE($1, $2 int) 20 fi 21 if test "$dc_cv_name" = "long"; then 22 AC_CHECK_TYPE($1, $2 long) 23 fi 24 if test "$dc_cv_name" = "long_long"; then 25 AC_CHECK_TYPE($1, $2 long long) 26 fi 27 if test "$dc_cv_name" = "short"; then 28 AC_CHECK_TYPE($1, $2 short) 29 fi 30 FOUND=1 31 break 32 fi 33 done 34 ]) 35 36 dnl Usage: 37 dnl DC_TEST_SHOBJFLAGS(shobjflags, shobjldflags, action-if-not-found) 38 dnl 39 AC_DEFUN(DC_TEST_SHOBJFLAGS, [ 40 AC_SUBST(SHOBJFLAGS) 41 AC_SUBST(SHOBJLDFLAGS) 42 43 OLD_LDFLAGS="$LDFLAGS" 44 SHOBJFLAGS="" 45 46 LDFLAGS="$OLD_LDFLAGS $1 $2" 47 48 AC_TRY_LINK([#include <stdio.h> 49 int unrestst(void);], [ printf("okay\n"); unrestst(); return(0); ], [ SHOBJFLAGS="$1"; SHOBJLDFLAGS="$2" ], [ 50 LDFLAGS="$OLD_LDFLAGS" 51 $3 52 ]) 53 54 LDFLAGS="$OLD_LDFLAGS" 55 ]) 56 57 AC_DEFUN(DC_GET_SHOBJFLAGS, [ 58 AC_SUBST(SHOBJFLAGS) 59 AC_SUBST(SHOBJLDFLAGS) 60 61 AC_MSG_CHECKING(how to create shared objects) 62 63 if test -z "$SHOBJFLAGS" -a -z "$SHOBJLDFLAGS"; then 64 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic], [ 65 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared], [ 66 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic -mimpure-text], [ 67 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -mimpure-text], [ 68 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic -Wl,-G,-z,textoff], [ 69 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -Wl,-G,-z,textoff], [ 70 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -dynamiclib -flat_namespace -undefined suppress -bind_at_load], [ 71 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib -flat_namespace -undefined suppress -bind_at_load], [ 72 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-Wl,-dynamiclib -Wl,-flat_namespace -Wl,-undefined,suppress -Wl,-bind_at_load], [ 73 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib -flat_namespace -undefined suppress], [ 74 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib], [ 75 AC_MSG_RESULT(cant) 76 AC_MSG_ERROR([We are unable to make shared objects.]) 77 ]) 78 ]) 79 ]) 80 ]) 81 ]) 82 ]) 83 ]) 84 ]) 85 ]) 86 ]) 87 ]) 88 fi 89 90 AC_MSG_RESULT($SHOBJLDFLAGS $SHOBJFLAGS) 91 92 DC_SYNC_SHLIBOBJS 93 ]) 94 95 AC_DEFUN(DC_SYNC_SHLIBOBJS, [ 96 AC_SUBST(SHLIBOBJS) 97 SHLIBOBJS="" 98 for obj in $LIB@&t@OBJS; do 99 SHLIBOBJS="$SHLIBOBJS `echo $obj | sed 's/\.o$/_shr.o/g'`" 100 done 101 ]) 102 103 AC_DEFUN(DC_CHK_OS_INFO, [ 104 AC_CANONICAL_HOST 105 AC_SUBST(SHOBJEXT) 106 AC_SUBST(SHOBJFLAGS) 107 AC_SUBST(SHOBJLDFLAGS) 108 AC_SUBST(CFLAGS) 109 AC_SUBST(CPPFLAGS) 110 AC_SUBST(AREXT) 111 112 AC_MSG_CHECKING(host operating system) 113 AC_MSG_RESULT($host_os) 114 115 SHOBJEXT="so" 116 AREXT="a" 117 118 case $host_os in 119 darwin*) 120 SHOBJEXT="dylib" 121 ;; 122 hpux*) 123 SHOBJEXT="sl" 124 ;; 125 mingw32msvc*) 126 SHOBJEXT="dll" 127 SHOBJFLAGS="-DPIC" 128 CFLAGS="$CFLAGS -mno-cygwin -mms-bitfields" 129 CPPFLAGS="$CPPFLAGS -mno-cygwin -mms-bitfields" 130 SHOBJLDFLAGS='-shared -Wl,--dll -Wl,--enable-auto-image-base -Wl,--output-def,$[@].def,--out-implib,$[@].a' 131 ;; 132 cygwin*) 133 SHOBJEXT="dll" 134 SHOBJFLAGS="-fPIC -DPIC" 135 CFLAGS="$CFLAGS -mms-bitfields" 136 CPPFLAGS="$CPPFLAGS -mms-bitfields" 137 SHOBJLDFLAGS='-shared -Wl,--enable-auto-image-base -Wl,--output-def,$[@].def,--out-implib,$[@].a' 138 ;; 139 esac 140 ]) 141 142 143 AC_DEFUN(DC_ASK_OPTLIB, [ 144 AC_ARG_WITH($5, [ --with-$5 $4], [ 145 # Specified 146 LIBSPEC=$withval 147 ], [ 148 # Not specified 149 LIBSPECFLAGS=`pkg-config --libs $5 2>/dev/null` 150 LIBSPECCFLAGS=`pkg-config --cflags $5 2>/dev/null` 151 AC_CHECK_LIB($1, $2, [ 152 OLDCPPFLAGS="$CPPFLAGS" 153 OLDCFLAGS="$CFLAGS" 154 CPPFLAGS="$CPPFLAGS $LIBSPECCFLAGS" 155 CFLAGS="$CFLAGS $LIBSPECCFLAGS" 156 AC_CHECK_HEADER($3, [ 157 LIBSPEC=yes 158 ], [ 159 LIBSPEC=no 160 ]) 161 CPPFLAGS="$OLDCPPFLAGS" 162 CFLAGS="$OLDCFLAGS" 163 ], [ 164 LIBSPEC=no 165 AC_MSG_WARN(Didn't find $5) 166 ], $LIBSPECFLAGS) 167 ]) 168 case $LIBSPEC in 169 no) 170 AC_MSG_WARN(Support for $5 disabled) 171 ;; 172 *) 173 if test "${LIBSPEC}" = "yes"; then 174 true 175 else 176 LIBSPECFLAGS="-L${LIBSPEC}/lib ${LIBSPECFLAGS}" 177 LIBSPECCFLAGS="-I${LIBSPEC}/include ${LIBSPECCFLAGS}" 178 fi 179 AC_CHECK_LIB($1, $2, [ 180 OLDCFLAGS="$CFLAGS" 181 OLDCPPFLAGS="$CPPFLAGS" 182 CPPFLAGS="$CPPFLAGS ${LIBSPECCFLAGS}" 183 CFLAGS="$CFLAGS ${LIBSPECCFLAGS}" 184 AC_CHECK_HEADER($3, [ 185 if test -n "$7"; then 186 AC_DEFINE($7, [1], [Define to 1 if you have the <$3> header file.]) 187 fi 188 if test -n "$6"; then 189 AC_DEFINE($6, [1], [Define to 1 if you have $2 from $5]) 190 fi 191 LDFLAGS="$LDFLAGS $LIBSPECFLAGS" 192 LIBS="-l$1 $LIBS" 193 ], [ 194 CFLAGS="$OLDCFLAGS" 195 CPPFLAGS="$OLDCPPFLAGS" 196 AC_MSG_ERROR(Could not find $3) 197 ]) 198 ], [ 199 AC_MSG_ERROR(Could not find $5) 200 ], $LIBSPECFLAGS) 201 ;; 202 esac 203 ]) 204 205 AC_DEFUN(DC_ASK_SMALL, [ 206 SMALL=0 207 AC_ARG_ENABLE(small, AC_HELP_STRING([--enable-small], [Enable small build of libconfig. (disabled)]), [ 208 case $enableval in 209 yes) 210 SMALL=1 211 ;; 212 esac 213 ]) 214 215 if test $SMALL = 0; then 216 dnl Use opennet if it's available AND not small 217 DC_ASK_OPTLIB(opennet, fopen_net, opennet.h, [ Enable opennet support (auto)], libopennet, HAVE_LIBOPENNET, HAVE_OPENNET_H) 218 else 219 AC_DEFINE(ENABLE_SMALL, [1], [Define to 1 if you want to produce a minimalistic build.]) 220 fi 221 ]) |