| 1 | m4_define([upcase],`echo $1 | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`)dnl
|
|---|
| 2 |
|
|---|
| 3 | m4_ifndef([AC_WARNING_ENABLE],[AC_DEFUN([AC_WARNING_ENABLE],[])])
|
|---|
| 4 |
|
|---|
| 5 | dnl love_FIND_FUNC(func, includes, arguments)
|
|---|
| 6 | dnl kind of like AC_CHECK_FUNC, but with headerfiles
|
|---|
| 7 | AC_DEFUN([love_FIND_FUNC], [
|
|---|
| 8 |
|
|---|
| 9 | AC_MSG_CHECKING([for $1])
|
|---|
| 10 | AC_CACHE_VAL(ac_cv_love_func_$1,
|
|---|
| 11 | [
|
|---|
| 12 | AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[$1($3)]])],
|
|---|
| 13 | [eval "ac_cv_love_func_$1=yes"],[eval "ac_cv_love_func_$1=no"])])
|
|---|
| 14 |
|
|---|
| 15 | eval "ac_res=\$ac_cv_love_func_$1"
|
|---|
| 16 |
|
|---|
| 17 | if false; then
|
|---|
| 18 | AC_CHECK_FUNCS($1)
|
|---|
| 19 | fi
|
|---|
| 20 | # $1
|
|---|
| 21 | eval "ac_tr_func=HAVE_[]upcase($1)"
|
|---|
| 22 |
|
|---|
| 23 | case "$ac_res" in
|
|---|
| 24 | yes)
|
|---|
| 25 | AC_DEFINE_UNQUOTED($ac_tr_func)
|
|---|
| 26 | AC_MSG_RESULT([yes])
|
|---|
| 27 | ;;
|
|---|
| 28 | no)
|
|---|
| 29 | AC_MSG_RESULT([no])
|
|---|
| 30 | ;;
|
|---|
| 31 | esac
|
|---|
| 32 |
|
|---|
| 33 |
|
|---|
| 34 | ])
|
|---|
| 35 |
|
|---|
| 36 | AC_CHECK_TYPE(u_char, uint8_t)
|
|---|
| 37 | AC_CHECK_TYPE(u_int32_t, uint32_t)
|
|---|
| 38 |
|
|---|
| 39 | dnl Not all systems have err.h, so we provide a replacement. Heimdal
|
|---|
| 40 | dnl unconditionally #includes <err.h>, so we need to create an err.h,
|
|---|
| 41 | dnl but we can't just have a static one because we don't want to use
|
|---|
| 42 | dnl it on systems that have a real err.h. If the system has a real
|
|---|
| 43 | dnl err.h, we should use that (eg. on Darwin, the declarations get
|
|---|
| 44 | dnl linker attributes added, so we can't guarantee that our local
|
|---|
| 45 | dnl declarations will be correct). Phew!
|
|---|
| 46 | AC_CHECK_HEADERS([err.h], [],
|
|---|
| 47 | [ cp heimdal/lib/roken/err.hin heimdal_build/err.h ])
|
|---|
| 48 |
|
|---|
| 49 | dnl Not all systems have ifaddrs.h, so we provide a replacement. Heimdal
|
|---|
| 50 | dnl unconditionally #includes <ifaddrs.h>, so we need to create an ifaddrs.h,
|
|---|
| 51 | dnl but we can't just have a static one because we don't want to use
|
|---|
| 52 | dnl it on systems that have a real ifaddrs.h. If the system has a real
|
|---|
| 53 | dnl ifaddrs.h. We don't use heimdal's lib/roken/ifaddrs.hin because
|
|---|
| 54 | dnl our libreplace would conflict with it.
|
|---|
| 55 | AC_CHECK_HEADERS([ifaddrs.h], [],
|
|---|
| 56 | [ cp heimdal_build/ifaddrs.hin heimdal_build/ifaddrs.h ])
|
|---|
| 57 |
|
|---|
| 58 | AC_CHECK_HEADERS([ \
|
|---|
| 59 | crypt.h \
|
|---|
| 60 | curses.h \
|
|---|
| 61 | errno.h \
|
|---|
| 62 | inttypes.h \
|
|---|
| 63 | netdb.h \
|
|---|
| 64 | signal.h \
|
|---|
| 65 | sys/bswap.h \
|
|---|
| 66 | sys/file.h \
|
|---|
| 67 | sys/stropts.h \
|
|---|
| 68 | sys/timeb.h \
|
|---|
| 69 | sys/times.h \
|
|---|
| 70 | sys/uio.h \
|
|---|
| 71 | sys/un.h \
|
|---|
| 72 | sys/utsname.h \
|
|---|
| 73 | term.h \
|
|---|
| 74 | termcap.h \
|
|---|
| 75 | time.h \
|
|---|
| 76 | timezone.h \
|
|---|
| 77 | ttyname.h \
|
|---|
| 78 | netinet/in.h \
|
|---|
| 79 | netinet/in6.h \
|
|---|
| 80 | netinet6/in6.h \
|
|---|
| 81 | libintl.h
|
|---|
| 82 | ])
|
|---|
| 83 |
|
|---|
| 84 | AC_CHECK_FUNCS([ \
|
|---|
| 85 | atexit \
|
|---|
| 86 | cgetent \
|
|---|
| 87 | getprogname \
|
|---|
| 88 | setprogname \
|
|---|
| 89 | inet_aton \
|
|---|
| 90 | gethostname \
|
|---|
| 91 | getnameinfo \
|
|---|
| 92 | iruserok \
|
|---|
| 93 | putenv \
|
|---|
| 94 | rcmd \
|
|---|
| 95 | readv \
|
|---|
| 96 | sendmsg \
|
|---|
| 97 | setitimer \
|
|---|
| 98 | socket \
|
|---|
| 99 | strlwr \
|
|---|
| 100 | strncasecmp \
|
|---|
| 101 | strptime \
|
|---|
| 102 | strsep \
|
|---|
| 103 | strsep_copy \
|
|---|
| 104 | strtok_r \
|
|---|
| 105 | strupr \
|
|---|
| 106 | swab \
|
|---|
| 107 | umask \
|
|---|
| 108 | uname \
|
|---|
| 109 | unsetenv \
|
|---|
| 110 | closefrom \
|
|---|
| 111 | hstrerror \
|
|---|
| 112 | err \
|
|---|
| 113 | warn \
|
|---|
| 114 | errx \
|
|---|
| 115 | warnx \
|
|---|
| 116 | flock \
|
|---|
| 117 | getipnodebyname \
|
|---|
| 118 | getipnodebyaddr \
|
|---|
| 119 | freehostent \
|
|---|
| 120 | writev
|
|---|
| 121 | ])
|
|---|
| 122 |
|
|---|
| 123 | love_FIND_FUNC(bswap16, [#ifdef HAVE_SYS_BSWAP_H
|
|---|
| 124 | #include <sys/bswap.h>
|
|---|
| 125 | #endif], 0)
|
|---|
| 126 |
|
|---|
| 127 | love_FIND_FUNC(bswap32, [#ifdef HAVE_SYS_BSWAP_H
|
|---|
| 128 | #include <sys/bswap.h>
|
|---|
| 129 | #endif], 0)
|
|---|
| 130 |
|
|---|
| 131 | AC_DEFUN([AC_KRB_STRUCT_WINSIZE], [
|
|---|
| 132 | AC_MSG_CHECKING(for struct winsize)
|
|---|
| 133 | AC_CACHE_VAL(ac_cv_struct_winsize, [
|
|---|
| 134 | ac_cv_struct_winsize=no
|
|---|
| 135 | for i in sys/termios.h sys/ioctl.h; do
|
|---|
| 136 | AC_EGREP_HEADER(
|
|---|
| 137 | struct[[ ]]*winsize,dnl
|
|---|
| 138 | $i, ac_cv_struct_winsize=yes; break)dnl
|
|---|
| 139 | done
|
|---|
| 140 | ])
|
|---|
| 141 | if test "$ac_cv_struct_winsize" = "yes"; then
|
|---|
| 142 | AC_DEFINE(HAVE_STRUCT_WINSIZE, 1, [define if struct winsize is declared in sys/termios.h])
|
|---|
| 143 | fi
|
|---|
| 144 | AC_MSG_RESULT($ac_cv_struct_winsize)
|
|---|
| 145 | AC_EGREP_HEADER(ws_xpixel, termios.h,
|
|---|
| 146 | AC_DEFINE(HAVE_WS_XPIXEL, 1, [define if struct winsize has ws_xpixel]))
|
|---|
| 147 | AC_EGREP_HEADER(ws_ypixel, termios.h,
|
|---|
| 148 | AC_DEFINE(HAVE_WS_YPIXEL, 1, [define if struct winsize has ws_ypixel]))
|
|---|
| 149 | ])
|
|---|
| 150 |
|
|---|
| 151 | AC_KRB_STRUCT_WINSIZE
|
|---|
| 152 |
|
|---|
| 153 | AC_TYPE_SIGNAL
|
|---|
| 154 | if test "$ac_cv_type_signal" = "void" ; then
|
|---|
| 155 | AC_DEFINE(VOID_RETSIGTYPE, 1, [Define if signal handlers return void.])
|
|---|
| 156 | fi
|
|---|
| 157 | AC_SUBST(VOID_RETSIGTYPE)
|
|---|
| 158 |
|
|---|
| 159 |
|
|---|
| 160 | m4_include(heimdal/cf/check-var.m4)
|
|---|
| 161 |
|
|---|
| 162 | rk_CHECK_VAR(h_errno,
|
|---|
| 163 | [#ifdef HAVE_SYS_TYPES_H
|
|---|
| 164 | #include <sys/types.h>
|
|---|
| 165 | #endif
|
|---|
| 166 | #ifdef HAVE_NETDB_H
|
|---|
| 167 | #include <netdb.h>
|
|---|
| 168 | #endif])
|
|---|
| 169 |
|
|---|
| 170 | m4_include(heimdal/cf/find-func.m4)
|
|---|
| 171 | m4_include(heimdal/cf/find-func-no-libs.m4)
|
|---|
| 172 | m4_include(heimdal/cf/find-func-no-libs2.m4)
|
|---|
| 173 | m4_include(heimdal/cf/resolv.m4)
|
|---|
| 174 |
|
|---|
| 175 | AC_CHECK_HEADERS([pty.h util.h libutil.h])
|
|---|
| 176 |
|
|---|
| 177 | AC_CHECK_LIB_EXT(util, OPENPTY_LIBS, openpty)
|
|---|
| 178 |
|
|---|
| 179 | SMB_ENABLE(OPENPTY,YES)
|
|---|
| 180 |
|
|---|
| 181 | SMB_EXT_LIB(OPENPTY,[${OPENPTY_LIBS}],[${OPENPTY_CFLAGS}],[${OPENPTY_CPPFLAGS}],[${OPENPTY_LDFLAGS}])
|
|---|
| 182 |
|
|---|
| 183 | AC_CHECK_LIB_EXT(intl, INTL_LIBS, gettext)
|
|---|
| 184 |
|
|---|
| 185 | SMB_ENABLE(INTL,YES)
|
|---|
| 186 |
|
|---|
| 187 | SMB_EXT_LIB(INTL, $INTL_LIBS)
|
|---|
| 188 |
|
|---|
| 189 | smb_save_LIBS=$LIBS
|
|---|
| 190 | RESOLV_LIBS=""
|
|---|
| 191 | LIBS=""
|
|---|
| 192 |
|
|---|
| 193 | dnl This fills in the global LIBS...
|
|---|
| 194 | rk_RESOLV
|
|---|
| 195 |
|
|---|
| 196 | dnl AC_CHECK_LIB_EXT(resolv, RESOLV_LIBS, res_search)
|
|---|
| 197 | SMB_ENABLE(RESOLV,YES)
|
|---|
| 198 |
|
|---|
| 199 | if test x"$LIBS" != "x"; then
|
|---|
| 200 | RESOLV_LIBS=$LIBS
|
|---|
| 201 | fi
|
|---|
| 202 |
|
|---|
| 203 | LIBS=$smb_save_LIBS
|
|---|
| 204 |
|
|---|
| 205 | SMB_EXT_LIB(RESOLV,[${RESOLV_LIBS}],[${RESOLV_CFLAGS}],[${RESOLV_CPPFLAGS}],[${RESOLV_LDFLAGS}])
|
|---|
| 206 |
|
|---|
| 207 |
|
|---|
| 208 | # these are disabled unless heimdal is found below
|
|---|
| 209 | SMB_ENABLE(KERBEROS_LIB, NO)
|
|---|
| 210 | SMB_ENABLE(asn1_compile, NO)
|
|---|
| 211 | SMB_ENABLE(compile_et, NO)
|
|---|
| 212 |
|
|---|
| 213 | #
|
|---|
| 214 | # We need bison -y and flex in new versions
|
|---|
| 215 | # Otherwise we get random runtime failures
|
|---|
| 216 | #
|
|---|
| 217 | LEX_YACC_COMBINATIONS=""
|
|---|
| 218 | LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.33:bison-2.3"
|
|---|
| 219 | LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.34:bison-2.3"
|
|---|
| 220 |
|
|---|
| 221 | AC_PROG_LEX
|
|---|
| 222 | LEX_BASENAME=`basename "$LEX"`
|
|---|
| 223 | if test x"$LEX_BASENAME" = x"flex"; then
|
|---|
| 224 | # "flex 2.5.33"
|
|---|
| 225 | FLEX_VERSION=`$LEX --version | cut -d ' ' -f2`
|
|---|
| 226 | AC_MSG_CHECKING(flex version)
|
|---|
| 227 | AC_MSG_RESULT($FLEX_VERSION)
|
|---|
| 228 | FLEX_MAJOR=`echo $FLEX_VERSION | cut -d '.' -f1`
|
|---|
| 229 | FLEX_MINOR=`echo $FLEX_VERSION | cut -d '.' -f2`
|
|---|
| 230 | FLEX_RELEASE=`echo $FLEX_VERSION | cut -d '.' -f3`
|
|---|
| 231 |
|
|---|
| 232 | LEX_VERSION="flex-$FLEX_MAJOR.$FLEX_MINOR.$FLEX_RELEASE"
|
|---|
| 233 | fi
|
|---|
| 234 |
|
|---|
| 235 | AC_PROG_YACC
|
|---|
| 236 | YACC_BASENAME=`basename "$YACC"`
|
|---|
| 237 | if test x"$YACC_BASENAME" = x"bison -y"; then
|
|---|
| 238 | # bison (GNU Bison) 2.3
|
|---|
| 239 | BISON_VERSION=`$YACC --version | head -1 | cut -d ' ' -f4`
|
|---|
| 240 | AC_MSG_CHECKING(bison version)
|
|---|
| 241 | AC_MSG_RESULT($BISON_VERSION)
|
|---|
| 242 | BISON_MAJOR=`echo $BISON_VERSION | cut -d '.' -f1`
|
|---|
| 243 | BISON_MINOR=`echo $BISON_VERSION | cut -d '.' -f2`
|
|---|
| 244 |
|
|---|
| 245 | YACC_VERSION="bison-$BISON_MAJOR.$BISON_MINOR"
|
|---|
| 246 | fi
|
|---|
| 247 |
|
|---|
| 248 | AC_MSG_CHECKING(working LEX YACC combination)
|
|---|
| 249 | LEX_YACC="no"
|
|---|
| 250 | if test x"$LEX_VERSION" != x"" -a x"$YACC_VERSION" != x""; then
|
|---|
| 251 | V="$LEX_VERSION:$YACC_VERSION"
|
|---|
| 252 | for C in $LEX_YACC_COMBINATIONS; do
|
|---|
| 253 | if test x"$V" = x"$C"; then
|
|---|
| 254 | LEX_YACC=$V
|
|---|
| 255 | break;
|
|---|
| 256 | fi
|
|---|
| 257 | done
|
|---|
| 258 | fi
|
|---|
| 259 | if test x"$LEX_YACC" = x"no"; then
|
|---|
| 260 | LEX=false
|
|---|
| 261 | YACC=false
|
|---|
| 262 | fi
|
|---|
| 263 | AC_MSG_RESULT($LEX_YACC)
|
|---|
| 264 |
|
|---|
| 265 | # Portions of heimdal kerberos are unpacked into source/heimdal
|
|---|
| 266 | # of the samba source tree.
|
|---|
| 267 |
|
|---|
| 268 | # if we ever get to using a host kerberos, we might add conditionals here
|
|---|
| 269 | AC_DEFINE(HAVE_COM_ERR,1,[Whether com_err is available])
|
|---|
| 270 | HAVE_COM_ERR=YES
|
|---|
| 271 | AC_DEFINE(HAVE_KRB5,1,[Whether kerberos is available])
|
|---|
| 272 | HAVE_KRB5=YES
|
|---|
| 273 | AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])
|
|---|
| 274 | HAVE_GSSAPI=YES
|
|---|
| 275 | SMB_ENABLE(KERBEROS_LIB, YES)
|
|---|
| 276 | SMB_ENABLE(asn1_compile, YES)
|
|---|
| 277 | SMB_ENABLE(compile_et, YES)
|
|---|
| 278 |
|
|---|
| 279 | # only add closefrom if needed
|
|---|
| 280 | SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, NO)
|
|---|
| 281 | SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM_H, NO)
|
|---|
| 282 | if test t$ac_cv_func_closefrom != tyes; then
|
|---|
| 283 | SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, YES)
|
|---|
| 284 | SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM_H, YES)
|
|---|
| 285 | fi
|
|---|
| 286 |
|
|---|
| 287 | # only add getprogname if needed
|
|---|
| 288 | SMB_ENABLE(HEIMDAL_ROKEN_PROGNAME, NO)
|
|---|
| 289 | SMB_ENABLE(HEIMDAL_ROKEN_PROGNAME_H, NO)
|
|---|
| 290 | if test t$ac_cv_func_getprogname != tyes; then
|
|---|
| 291 | SMB_ENABLE(HEIMDAL_ROKEN_PROGNAME, YES)
|
|---|
| 292 | SMB_ENABLE(HEIMDAL_ROKEN_PROGNAME_H, YES)
|
|---|
| 293 | fi
|
|---|
| 294 |
|
|---|
| 295 | VPATH="$VPATH:\$(HEIMDAL_VPATH)"
|
|---|
| 296 |
|
|---|
| 297 | AC_DEFINE(SAMBA4_INTERNAL_HEIMDAL,1,[Whether we use in internal heimdal build])
|
|---|
| 298 |
|
|---|
| 299 | SMB_INCLUDE_MK(heimdal_build/internal.mk)
|
|---|