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"
99 YACC="/opt/langtools/bin/yacc"
106 CC="/opt/ansic/bin/cc"
107 DBM="/lib/hpux32/libndbm.so"
109 LEX="/opt/langtools/bin/lex"
111 MT_CFLAGS='-D_POSIX_C_SOURCE=199506L'
114 PAM_CFLAGS="-b +z -Wl,+k"
115 PAM_LIBS="/usr/lib/hpux32/libpam.so"
116 RANLIB="/usr/bin/ranlib"
119 VFSCK_CFLAGS="-I/usr/old/usr/include -D_FILE64"
120 XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive_shared -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
121 XCFLAGS64="${XCFLAGS0} +DD64"
122 XCFLAGS="${XCFLAGS0}"
124 YACC="/opt/langtools/bin/yacc"
129 MT_CFLAGS='-pthread -D_REENTRANT'
131 PAM_CFLAGS="-pipe -fPIC"
132 SHLIB_LINKER="${CC} -shared"
137 MT_CFLAGS='-pthread -D_REENTRANT'
139 PAM_CFLAGS="-pipe -fPIC"
140 SHLIB_LINKER="${CC} -shared"
145 MT_CFLAGS='-pthread -D_REENTRANT'
146 PAM_CFLAGS="-O2 -pipe -fPIC"
147 SHLIB_LINKER="${CC} -shared"
148 XCFLAGS="-O2 -pipe -fPIC"
151 *nbsd2*|*nbsd3*|*nbsd4*|*nbsd5*|*nbsd6*|*nbsd7*)
152 MT_CFLAGS='-pthread -D_REENTRANT'
154 PAM_CFLAGS="-pipe -fPIC"
156 SHLIB_LINKER="${CC} -shared"
163 PAM_CFLAGS="-pipe -fPIC"
164 SHLIB_LINKER="${CC} -shared"
170 MT_CFLAGS='-pthread -D_REENTRANT'
172 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
175 SHLIB_LINKER="${CC} -shared"
181 MT_CFLAGS='-pthread -D_REENTRANT'
183 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
185 SHLIB_LINKER="${CC} -shared"
188 ppc64_linux26|ppc64le_linux26)
189 MT_CFLAGS='-pthread -D_REENTRANT'
191 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
193 SHLIB_LINKER="${CC} -shared -m64"
201 MT_CFLAGS='-pthread -D_REENTRANT'
207 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
209 SHLIB_LINKER="${CC} -shared"
213 MT_CFLAGS='-pthread -D_REENTRANT'
219 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
221 SHLIB_LINKER="${CC} -shared"
226 MT_CFLAGS='-pthread -D_REENTRANT'
230 PAM_CFLAGS="-pipe -fpic"
232 SHLIB_LINKER="${CC} -shared"
238 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
239 MT_CFLAGS='-D_REENTRANT'
241 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
244 XCFLAGS="-no-cpp-precomp"
245 EXTRA_VLIBOBJS="fstab.o"
246 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
248 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
253 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
254 MT_CFLAGS="-D_REENTRANT"
256 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
261 EXTRA_VLIBOBJS="fstab.o"
262 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
265 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
269 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
270 MT_CFLAGS="-D_REENTRANT"
272 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
278 EXTRA_VLIBOBJS="fstab.o"
279 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
282 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
286 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
287 MT_CFLAGS="-D_REENTRANT"
288 MT_LIBS="${LIB_AFSDB} -framework CoreFoundation"
290 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
298 EXTRA_VLIBOBJS="fstab.o"
299 SHLIB_LINKER="${CC} -dynamiclib"
302 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
305 *_darwin_100 | *_darwin_110 | *_darwin_120 | *_darwin_130 | *_darwin_140 | *_darwin_150 | *_darwin_160 | *_darwin_170 | *_darwin_180)
306 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
307 MT_CFLAGS="-D_REENTRANT"
310 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
317 EXTRA_VLIBOBJS="fstab.o"
318 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
321 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
324 *_darwin_190 | *_darwin_200)
325 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
326 MT_CFLAGS="-D_REENTRANT"
328 KROOT='/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
329 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
336 EXTRA_VLIBOBJS="fstab.o"
337 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
340 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
345 MT_CFLAGS='-pthread -D_REENTRANT'
347 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
349 SHLIB_LINKER="${CC} -shared"
355 LIBSYS_AIX_EXP="afsl.exp"
358 XCFLAGS="-K -D_NONSTD_TYPES -D_MBI=void"
359 XLIBS="${LIB_AFSDB} ${LIB_libintl} -ldl"
360 SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
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"
381 LIBSYS_AIX_EXP="afsl.exp"
384 XCFLAGS="-K -D_NONSTD_TYPES -D_MBI=void"
385 XLIBS="${LIB_AFSDB} ${LIB_libintl} -ldl"
386 SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
394 MT_CFLAGS='-pthread -D_REENTRANT'
396 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
398 SHLIB_LINKER="${CC} -shared"
405 MT_CFLAGS='-pthread -D_REENTRANT'
407 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
410 XCFLAGS="-D__s390x__"
411 SHLIB_LINKER="${CC} -shared"
416 AFSD_LIBS="/usr/lib/libdwarf.a /usr/lib/libelf.a"
417 FSINCLUDES="-I/usr/include/sys/fs"
418 MT_CFLAGS='-D_SGI_MP_SOURCE'
419 XCFLAGS64="-64 -mips3"
423 SHLIB_LINKER="${CC} -shared"
428 AFSD_LIBS="/usr/lib/libdwarf.a /usr/lib/libelf.a"
429 FSINCLUDES="-I/usr/include/sys/fs"
430 MT_CFLAGS='-D_SGI_MP_SOURCE'
431 XCFLAGS64="-D_BSD_COMPAT -64 -mips3"
432 XCFLAGS="-D_OLD_TERMIOS -D_BSD_COMPAT -o32"
435 SHLIB_LINKER="${CC} -shared"
440 AFSD_LIBS="/usr/lib32/libdwarf.a /usr/lib32/libelf.a"
441 FSINCLUDES="-I/usr/include/sys/fs"
442 MT_CFLAGS='-D_SGI_MP_SOURCE'
443 XCFLAGS64="-D_BSD_COMPAT -64 -mips3"
444 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"
447 SHLIB_LINKER="${CC} -shared"
451 AFSD_LIBS="/usr/lib32/libdwarf.a /usr/lib32/libelf.a"
453 FSINCLUDES="-I/usr/include/sys/fs"
455 MT_CFLAGS='-D_SGI_MP_SOURCE'
456 XCFLAGS64="-64 -mips3"
457 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"
458 XLDFLAGS64="-64 -mips3"
459 XLDFLAGS="-n32 -mips3"
460 SHLIB_LINKER="${CC} -shared"
465 MT_CFLAGS='-pthread -D_REENTRANT'
467 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
471 SHLIB_LINKER="${CC} -shared"
479 PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
481 XCFLAGS64='${XCFLAGS} -m64'
482 XCFLAGS="-dy -Bdynamic"
485 XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
486 SHLIB_LINKER="${CC} -G -dy -Bsymbolic -z text"
496 if test "x`echo "${ARCHFLAGS}" | grep m32`" != "x" ; then
497 CURRENTBUILDARCH=i386
499 if test "x`echo "${ARCHFLAGS}" | grep m64`" != "x" ; then
500 CURRENTBUILDARCH=amd64
502 if test "x${CURRENTBUILDARCH}" = "x" ; then
503 CURRENTBUILDARCH=`isainfo -k`
505 if test "${CURRENTBUILDARCH}" = "amd64" ; then
512 CFLAGS="$CFLAGS ${XARCHFLAGS}"
517 PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
519 XCFLAGS0="-dy -Bdynamic"
520 XCFLAGS64="${XCFLAGS0} -m64"
521 XCFLAGS="${XCFLAGS0} ${XARCHFLAGS}"
523 XLDFLAGS="${XARCHFLAGS}"
524 ASFLAGS="${XARCHFLAGS}"
527 XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
528 SHLIB_LINKER="${CC} ${XARCHFLAGS} -G -dy -Bsymbolic -z text"
533 MT_CFLAGS="${MT_CFLAGS} -DAFS_PTHREAD_ENV"
537 dnl if ar is not present, libtool.m4 (provided by libtool) sets AR to false
538 dnl if strip is not present, libtool.m4 (provided by libtool) sets STRIP to :
539 AS_IF([test "x$AR" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'ar'])])
540 AS_IF([test "x$AS" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'as'])])
541 AS_IF([test "x$MV" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'mv'])])
542 AS_IF([test "x$RM" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'rm'])])
543 AS_IF([test "x$LD" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'ld'])])
544 AS_IF([test "x$CP" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'cp'])])
545 AS_IF([test "x$GENCAT" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'gencat'])])
547 dnl TODO - need to disable STRIP if we are doing debugging in any user space code
550 # Defaults for --enable-optimize-kernel
552 if test "x$enable_optimize_kernel" = "x" ; then
553 AS_CASE([$AFS_SYSNAME],
554 [sunx86_510|sunx86_511],
555 dnl Somewhere around Solaris Studio 12.*, the compiler started adding SSE
556 dnl instructions to optimized code, without any known way to turn it off.
557 dnl To cope, this condition was added to change the default to
559 dnl Now that we have an autoconf test to allow disabling the SSE
560 dnl optimizations, it's safe to once more default to 'yes' here.
561 [enable_optimize_kernel=yes],
562 [enable_optimize_kernel=yes])
566 # Special build targets
570 IRIX_SYS_SYSTM_H_HAS_MEM_FUNCS
571 XFS_SIZE_CHECK="xfs_size_check"
572 install_XFS_SIZE_CHECK='$(DESTDIR)${afssrvsbindir}/xfs_size_check'
573 dest_XFS_SIZE_CHECK='$(DEST)/root.server/usr/afs/bin/xfs_size_check'
575 AC_SUBST(XFS_SIZE_CHECK)
576 AC_SUBST(install_XFS_SIZE_CHECK)
577 AC_SUBST(dest_XFS_SIZE_CHECK)
580 if test "x$enable_debug_kernel" = "xyes"; then
582 AC_SUBST(DEBUG_FLAGS)
587 dnl Disable the default for debugging/optimization if not enabled
588 if test "x$enable_debug_kernel" = "xno"; then
592 if test "x$enable_optimize_kernel" = "xno"; then
596 if test "x$enable_debug" = "xno"; then
601 if test "x$enable_optimize" = "xno"; then
605 if test "x$enable_debug_lwp" = "xno"; then
609 if test "x$enable_optimize_lwp" = "xno"; then
613 if test "x$enable_strip_binaries" != "xno"; then
614 if test "x$enable_strip_binaries" = "xmaybe" -a "x$enable_debug" = "xyes"; then
624 CFLAGS_NOSTRICT=-fno-strict-aliasing
627 CFLAGS_NOIMPLICIT_FALLTHROUGH=
628 XCFLAGS_NOCHECKING="$XCFLAGS"
630 if test "x$GCC" = "xyes"; then
631 if test "x$enable_warnings" = "xyes"; then
632 XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition -Wpointer-arith"
634 if test "x$enable_checking" != "xno"; then
635 XCFLAGS="${XCFLAGS} -Wall -Wstrict-prototypes -Wold-style-definition -Werror -fdiagnostics-show-option -Wpointer-arith -fno-common"
636 CFLAGS_WERROR="-Werror"
637 if test "x$enable_checking" != "xall"; then
638 CFLAGS_NOERROR="-Wno-error"
639 CFLAGS_NOUNUSED="-Wno-unused"
640 CFLAGS_NOOLDSTYLE="-Wno-old-style-definition"
641 AX_APPEND_COMPILE_FLAGS([-Wno-implicit-fallthrough],
642 [CFLAGS_NOIMPLICIT_FALLTHROUGH])
643 AC_DEFINE(IGNORE_SOME_GCC_WARNINGS, 1, [define to disable some gcc warnings in warnings-as-errors mode])
652 warn_common="-v -errfmt=error -errtags=yes -erroff=E_ATTRIBUTE_UNKNOWN,E_END_OF_LOOP_CODE_NOT_REACHED"
653 if test "x$enable_warnings" = "xyes" ; then
654 XCFLAGS="${XCFLAGS} $warn_common"
656 if test "x$enable_checking" != "xno" ; then
657 XCFLAGS="${XCFLAGS} $warn_common -errwarn=%all"
658 if test "x$enable_checking" != "xall" ; then
659 CFLAGS_NOERROR="-errwarn=%none"
666 dnl add additional checks if compilers support the flags
667 AS_IF([test "x$enable_checking" != "xno"],
668 [AX_APPEND_COMPILE_FLAGS([-Wimplicit-fallthrough], [XCFLAGS])
671 dnl horribly cheating, assuming double / is ok.
674 INSTALL="/@abs_top_srcdir@/install-sh -c"
680 INSTALL_PROGRAM="${INSTALL_PROGRAM} ${NO_STRIP_BIN}"
685 AC_SUBST(AFSD_LDFLAGS)
704 AC_SUBST(NO_STRIP_BIN)
714 AC_SUBST(SHLIB_CFLAGS)
715 AC_SUBST(SHLIB_LINKER)
716 AC_SUBST(SHLIB_SUFFIX)
717 AC_SUBST(VFSCK_CFLAGS)
719 AC_SUBST(CFLAGS_NOERROR)
720 AC_SUBST(CFLAGS_NOSTRICT)
721 AC_SUBST(CFLAGS_NOUNUSED)
722 AC_SUBST(CFLAGS_NOOLDSTYLE)
723 AC_SUBST(CFLAGS_NOIMPLICIT_FALLTHROUGH)
724 AC_SUBST(CFLAGS_WERROR)