2 AC_DEFUN([OPENAFS_OSCONF], [
4 dnl defaults, override in case below as needed
9 XLIBS="${LIB_AFSDB} ${LIB_libintl}"
10 MT_LIBS='-lpthread ${XLIBS}'
13 dnl debugging and optimization flag defaults
14 dnl Note, these are all the defaults for if debug/optimize turned on, and
15 dnl the arch cases below do override as needed
28 AC_CHECK_TOOL(AS, as, [false])
29 AC_CHECK_PROGS(MV, mv, [false])
30 AC_CHECK_PROGS(RM, rm, [false])
31 AC_CHECK_TOOL(LD, ld, [false])
32 AC_CHECK_PROGS(CP, cp, [false])
33 AC_CHECK_PROGS(GENCAT, gencat, [false])
36 alpha_linux_22 | alpha_linux_24 | alpha_linux_26)
38 MT_CFLAGS='-pthread -D_REENTRANT'
40 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
42 SHLIB_LINKER="${CC} -shared"
45 arm_linux_24 | arm_linux26 | arm64_linux26)
47 MT_CFLAGS='-pthread -D_REENTRANT'
49 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
51 SHLIB_LINKER="${CC} -shared"
56 CC="/opt/ansic/bin/cc -Ae"
59 LEX="/opt/langtools/bin/lex"
61 MT_CFLAGS='-D_POSIX_C_SOURCE=199506L'
62 MT_LIBS='-L/opt/dce/lib -ldce ${XLIBS}'
65 PAM_CFLAGS="+DA1.0 +z -Wl,+k"
66 PAM_LIBS="/usr/lib/libpam.1"
67 RANLIB="/usr/bin/ranlib"
70 VFSCK_CFLAGS="-D_FILE64"
71 XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
72 XCFLAGS64="${XCFLAGS0} +DA2.0W"
73 XCFLAGS="${XCFLAGS0} +DA1.0"
74 YACC="/opt/langtools/bin/yacc"
81 CC="/opt/ansic/bin/cc"
84 LEX="/opt/langtools/bin/lex"
86 MT_CFLAGS='-D_POSIX_C_SOURCE=199506L'
89 PAM_CFLAGS="+DA1.0 +z -Wl,+k"
90 PAM_LIBS="/usr/lib/libpam.1"
91 RANLIB="/usr/bin/ranlib"
94 VFSCK_CFLAGS="-I/usr/old/usr/include -D_FILE64"
95 XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
96 XCFLAGS64="${XCFLAGS0} +DA2.0W"
97 XCFLAGS="${XCFLAGS0} +DA1.0"
98 YACC="/opt/langtools/bin/yacc"
105 CC="/opt/ansic/bin/cc"
106 DBM="/lib/hpux32/libndbm.so"
108 LEX="/opt/langtools/bin/lex"
110 MT_CFLAGS='-D_POSIX_C_SOURCE=199506L'
113 PAM_CFLAGS="-b +z -Wl,+k"
114 PAM_LIBS="/usr/lib/hpux32/libpam.so"
115 RANLIB="/usr/bin/ranlib"
118 VFSCK_CFLAGS="-I/usr/old/usr/include -D_FILE64"
119 XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive_shared -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
120 XCFLAGS64="${XCFLAGS0} +DD64"
121 XCFLAGS="${XCFLAGS0}"
122 YACC="/opt/langtools/bin/yacc"
127 MT_CFLAGS='-pthread -D_REENTRANT'
129 PAM_CFLAGS="-pipe -fPIC"
130 SHLIB_LINKER="${CC} -shared"
135 MT_CFLAGS='-pthread -D_REENTRANT'
137 PAM_CFLAGS="-pipe -fPIC"
138 SHLIB_LINKER="${CC} -shared"
143 MT_CFLAGS='-pthread -D_REENTRANT'
144 PAM_CFLAGS="-O2 -pipe -fPIC"
145 SHLIB_LINKER="${CC} -shared"
146 XCFLAGS="-O2 -pipe -fPIC"
149 *nbsd2*|*nbsd3*|*nbsd4*|*nbsd5*|*nbsd6*|*nbsd7*)
150 MT_CFLAGS='-pthread -D_REENTRANT'
152 PAM_CFLAGS="-pipe -fPIC"
154 SHLIB_LINKER="${CC} -shared"
161 PAM_CFLAGS="-pipe -fPIC"
162 SHLIB_LINKER="${CC} -shared"
168 MT_CFLAGS='-pthread -D_REENTRANT'
170 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
173 SHLIB_LINKER="${CC} -shared"
179 MT_CFLAGS='-pthread -D_REENTRANT'
181 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
183 SHLIB_LINKER="${CC} -shared"
186 ppc64_linux26|ppc64le_linux26)
187 MT_CFLAGS='-pthread -D_REENTRANT'
189 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
191 SHLIB_LINKER="${CC} -shared -m64"
199 MT_CFLAGS='-pthread -D_REENTRANT'
205 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
207 SHLIB_LINKER="${CC} -shared"
211 MT_CFLAGS='-pthread -D_REENTRANT'
217 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
219 SHLIB_LINKER="${CC} -shared"
224 MT_CFLAGS='-pthread -D_REENTRANT'
228 PAM_CFLAGS="-pipe -fpic"
230 SHLIB_LINKER="${CC} -shared"
236 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
237 MT_CFLAGS='-D_REENTRANT'
239 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
242 XCFLAGS="-no-cpp-precomp"
243 EXTRA_VLIBOBJS="fstab.o"
244 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
246 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
251 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
252 MT_CFLAGS="-D_REENTRANT"
254 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
259 EXTRA_VLIBOBJS="fstab.o"
260 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
263 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
267 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
268 MT_CFLAGS="-D_REENTRANT"
270 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
276 EXTRA_VLIBOBJS="fstab.o"
277 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
280 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
284 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
285 MT_CFLAGS="-D_REENTRANT"
286 MT_LIBS="${LIB_AFSDB} -framework CoreFoundation"
288 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
296 EXTRA_VLIBOBJS="fstab.o"
297 SHLIB_LINKER="${CC} -dynamiclib"
300 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
303 *_darwin_100 | *_darwin_110 | *_darwin_120 | *_darwin_130 | *_darwin_140 | *_darwin_150 | *_darwin_160 | *_darwin_170 | *_darwin_180)
304 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
305 MT_CFLAGS="-D_REENTRANT"
308 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
315 EXTRA_VLIBOBJS="fstab.o"
316 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
319 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
322 *_darwin_190 | *_darwin_200)
323 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
324 MT_CFLAGS="-D_REENTRANT"
326 KROOT='/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
327 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
334 EXTRA_VLIBOBJS="fstab.o"
335 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
338 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
343 MT_CFLAGS='-pthread -D_REENTRANT'
345 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
347 SHLIB_LINKER="${CC} -shared"
353 LIBSYS_AIX_EXP="afsl.exp"
356 XCFLAGS="-K -D_NONSTD_TYPES -D_MBI=void"
357 XLIBS="${LIB_AFSDB} ${LIB_libintl} -ldl"
358 SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
361 TSM_IMPORTS="-bI:/lib/aio.exp -bI:/lib/netinet.exp -bI:/lib/sockets.exp -bI:/lib/statcmd.exp"
362 TSM_LIBS="-lsys -lcsys -lc"
365 rs_aix51 | rs_aix52 | rs_aix53)
368 LIBSYS_AIX_EXP="afsl.exp"
371 XCFLAGS="-K -D_NONSTD_TYPES -D_MBI=void"
372 XLIBS="${LIB_AFSDB} ${LIB_libintl} -ldl"
373 SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
376 TSM_IMPORTS="-bI:/lib/aio.exp -bI:/lib/netinet.exp -bI:/lib/sockets.exp -bI:/lib/statcmd.exp"
377 TSM_LIBS="-lsys -lcsys -lc"
383 LIBSYS_AIX_EXP="afsl.exp"
386 XCFLAGS="-K -D_NONSTD_TYPES -D_MBI=void"
387 XLIBS="${LIB_AFSDB} ${LIB_libintl} -ldl"
388 SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
391 TSM_IMPORTS="-bI:/lib/aio.exp -bI:/lib/netinet.exp -bI:/lib/sockets.exp -bI:/lib/statcmd.exp"
392 TSM_LIBS="-lsys -lcsys -lc"
396 TSM_IMPORTS="-bI:/lib/aio.exp"
403 MT_CFLAGS='-pthread -D_REENTRANT'
405 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
407 SHLIB_LINKER="${CC} -shared"
414 MT_CFLAGS='-pthread -D_REENTRANT'
416 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
419 XCFLAGS="-D__s390x__"
420 SHLIB_LINKER="${CC} -shared"
425 AFSD_LIBS="/usr/lib/libdwarf.a /usr/lib/libelf.a"
426 FSINCLUDES="-I/usr/include/sys/fs"
427 MT_CFLAGS='-D_SGI_MP_SOURCE'
428 XCFLAGS64="-64 -mips3"
432 SHLIB_LINKER="${CC} -shared"
437 AFSD_LIBS="/usr/lib/libdwarf.a /usr/lib/libelf.a"
438 FSINCLUDES="-I/usr/include/sys/fs"
439 MT_CFLAGS='-D_SGI_MP_SOURCE'
440 XCFLAGS64="-D_BSD_COMPAT -64 -mips3"
441 XCFLAGS="-D_OLD_TERMIOS -D_BSD_COMPAT -o32"
444 SHLIB_LINKER="${CC} -shared"
449 AFSD_LIBS="/usr/lib32/libdwarf.a /usr/lib32/libelf.a"
450 FSINCLUDES="-I/usr/include/sys/fs"
451 MT_CFLAGS='-D_SGI_MP_SOURCE'
452 XCFLAGS64="-D_BSD_COMPAT -64 -mips3"
453 XCFLAGS="-D_OLD_TERMIOS -D_BSD_COMPAT -n32 -woff 1009,1014,1110,1116,1164,1169,1171,1174,1177,1183,1185,1204,1233,1515,1516,1548,1169,1174,1177,1196,1498,1506,1552,3201 -Wl,-woff,84,-woff,15"
456 SHLIB_LINKER="${CC} -shared"
460 AFSD_LIBS="/usr/lib32/libdwarf.a /usr/lib32/libelf.a"
462 FSINCLUDES="-I/usr/include/sys/fs"
464 MT_CFLAGS='-D_SGI_MP_SOURCE'
465 XCFLAGS64="-64 -mips3"
466 XCFLAGS="-n32 -mips3 -woff 1009,1014,1110,1116,1164,1171,1177,1183,1185,1204,1233,1515,1516,1548,1169,1174,1177,1196,1498,1506,1552,3201 -Wl,-woff,84,-woff,15"
467 XLDFLAGS64="-64 -mips3"
468 XLDFLAGS="-n32 -mips3"
469 SHLIB_LINKER="${CC} -shared"
474 MT_CFLAGS='-pthread -D_REENTRANT'
476 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
480 SHLIB_LINKER="${CC} -shared"
488 PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
490 XCFLAGS64='${XCFLAGS} -m64'
491 XCFLAGS="-dy -Bdynamic"
492 XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
493 SHLIB_LINKER="${CC} -G -dy -Bsymbolic -z text"
503 if test "x`echo "${ARCHFLAGS}" | grep m32`" != "x" ; then
504 CURRENTBUILDARCH=i386
506 if test "x`echo "${ARCHFLAGS}" | grep m64`" != "x" ; then
507 CURRENTBUILDARCH=amd64
509 if test "x${CURRENTBUILDARCH}" = "x" ; then
510 CURRENTBUILDARCH=`isainfo -k`
512 if test "${CURRENTBUILDARCH}" = "amd64" ; then
519 CFLAGS="$CFLAGS ${XARCHFLAGS}"
524 PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
526 XCFLAGS0="-dy -Bdynamic"
527 XCFLAGS64="${XCFLAGS0} -m64"
528 XCFLAGS="${XCFLAGS0} ${XARCHFLAGS}"
530 XLDFLAGS="${XARCHFLAGS}"
531 ASFLAGS="${XARCHFLAGS}"
532 XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
533 SHLIB_LINKER="${CC} ${XARCHFLAGS} -G -dy -Bsymbolic -z text"
538 MT_CFLAGS="${MT_CFLAGS} -DAFS_PTHREAD_ENV"
542 dnl if ar is not present, libtool.m4 (provided by libtool) sets AR to false
543 dnl if strip is not present, libtool.m4 (provided by libtool) sets STRIP to :
544 AS_IF([test "x$AR" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'ar'])])
545 AS_IF([test "x$AS" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'as'])])
546 AS_IF([test "x$MV" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'mv'])])
547 AS_IF([test "x$RM" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'rm'])])
548 AS_IF([test "x$LD" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'ld'])])
549 AS_IF([test "x$CP" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'cp'])])
550 AS_IF([test "x$GENCAT" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'gencat'])])
552 dnl TODO - need to disable STRIP if we are doing debugging in any user space code
555 # Defaults for --enable-optimize-kernel
557 if test "x$enable_optimize_kernel" = "x" ; then
558 AS_CASE([$AFS_SYSNAME],
559 [sunx86_510|sunx86_511],
560 dnl Somewhere around Solaris Studio 12.*, the compiler started adding SSE
561 dnl instructions to optimized code, without any known way to turn it off.
562 dnl To cope, this condition was added to change the default to
564 dnl Now that we have an autoconf test to allow disabling the SSE
565 dnl optimizations, it's safe to once more default to 'yes' here.
566 [enable_optimize_kernel=yes],
567 [enable_optimize_kernel=yes])
571 # Special build targets
575 IRIX_SYS_SYSTM_H_HAS_MEM_FUNCS
576 XFS_SIZE_CHECK="xfs_size_check"
577 install_XFS_SIZE_CHECK='$(DESTDIR)${afssrvsbindir}/xfs_size_check'
578 dest_XFS_SIZE_CHECK='$(DEST)/root.server/usr/afs/bin/xfs_size_check'
580 AC_SUBST(XFS_SIZE_CHECK)
581 AC_SUBST(install_XFS_SIZE_CHECK)
582 AC_SUBST(dest_XFS_SIZE_CHECK)
585 if test "x$enable_debug_kernel" = "xyes"; then
587 AC_SUBST(DEBUG_FLAGS)
592 dnl Disable the default for debugging/optimization if not enabled
593 if test "x$enable_debug_kernel" = "xno"; then
597 if test "x$enable_optimize_kernel" = "xno"; then
601 if test "x$enable_debug" = "xno"; then
606 if test "x$enable_optimize" = "xno"; then
610 if test "x$enable_debug_lwp" = "xno"; then
614 if test "x$enable_optimize_lwp" = "xno"; then
618 if test "x$enable_strip_binaries" != "xno"; then
619 if test "x$enable_strip_binaries" = "xmaybe" -a "x$enable_debug" = "xyes"; then
629 CFLAGS_NOSTRICT=-fno-strict-aliasing
632 CFLAGS_NOIMPLICIT_FALLTHROUGH=
633 XCFLAGS_NOCHECKING="$XCFLAGS"
635 if test "x$GCC" = "xyes"; then
636 if test "x$enable_warnings" = "xyes"; then
637 XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition -Wpointer-arith"
639 if test "x$enable_checking" != "xno"; then
640 XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition -Werror -fdiagnostics-show-option -Wpointer-arith -fno-common"
641 CFLAGS_WERROR="-Werror"
642 if test "x$enable_checking" != "xall"; then
643 CFLAGS_NOERROR="-Wno-error"
644 CFLAGS_NOUNUSED="-Wno-unused"
645 CFLAGS_NOOLDSTYLE="-Wno-old-style-definition"
646 AX_APPEND_COMPILE_FLAGS([-Wno-implicit-fallthrough],
647 [CFLAGS_NOIMPLICIT_FALLTHROUGH])
648 AC_DEFINE(IGNORE_SOME_GCC_WARNINGS, 1, [define to disable some gcc warnings in warnings-as-errors mode])
657 warn_common="-v -errfmt=error -errtags=yes -erroff=E_ATTRIBUTE_UNKNOWN,E_END_OF_LOOP_CODE_NOT_REACHED"
658 if test "x$enable_warnings" = "xyes" ; then
659 XCFLAGS="${XCFLAGS} $warn_common"
661 if test "x$enable_checking" != "xno" ; then
662 XCFLAGS="${XCFLAGS} $warn_common -errwarn=%all"
663 if test "x$enable_checking" != "xall" ; then
664 CFLAGS_NOERROR="-errwarn=%none"
671 dnl add additional checks if compilers support the flags
672 AS_IF([test "x$enable_checking" != "xno"],
673 [AX_APPEND_COMPILE_FLAGS([-Wimplicit-fallthrough], [XCFLAGS])
676 dnl horribly cheating, assuming double / is ok.
679 INSTALL="/@abs_top_srcdir@/install-sh -c"
685 INSTALL_PROGRAM="${INSTALL_PROGRAM} ${NO_STRIP_BIN}"
690 AC_SUBST(AFSD_LDFLAGS)
709 AC_SUBST(NO_STRIP_BIN)
719 AC_SUBST(SHLIB_CFLAGS)
720 AC_SUBST(SHLIB_LINKER)
721 AC_SUBST(SHLIB_SUFFIX)
722 AC_SUBST(TSM_IMPORTS)
724 AC_SUBST(VFSCK_CFLAGS)
726 AC_SUBST(CFLAGS_NOERROR)
727 AC_SUBST(CFLAGS_NOSTRICT)
728 AC_SUBST(CFLAGS_NOUNUSED)
729 AC_SUBST(CFLAGS_NOOLDSTYLE)
730 AC_SUBST(CFLAGS_NOIMPLICIT_FALLTHROUGH)
731 AC_SUBST(CFLAGS_WERROR)