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_PROGS(AS, as, [false])
29 AC_CHECK_PROGS(MV, mv, [false])
30 AC_CHECK_PROGS(RM, rm, [false])
31 AC_CHECK_PROGS(LD, ld, [false])
32 AC_CHECK_PROGS(CP, cp, [false])
33 AC_CHECK_PROGS(GENCAT, gencat, [false])
35 dnl if ar is not present, libtool.m4 (provided by libtool) sets AR to false
36 dnl if strip is not present, libtool.m4 (provided by libtool) sets STRIP to :
37 AS_IF([test "x$AR" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'ar'])])
38 AS_IF([test "x$AS" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'as'])])
39 AS_IF([test "x$MV" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'mv'])])
40 AS_IF([test "x$RM" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'rm'])])
41 AS_IF([test "x$LD" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'ld'])])
42 AS_IF([test "x$CP" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'cp'])])
43 AS_IF([test "x$GENCAT" = "xfalse"], [AC_MSG_ERROR([cannot find required command 'gencat'])])
45 dnl TODO - need to disable STRIP if we are doing debugging in any user space code
48 alpha_linux_22 | alpha_linux_24 | alpha_linux_26)
50 MT_CFLAGS='-pthread -D_REENTRANT'
52 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
54 SHLIB_LDFLAGS="-shared -Xlinker -x"
55 SHLIB_LINKER="${CC} -shared"
58 arm_linux_24 | arm_linux26 | arm64_linux26)
60 MT_CFLAGS='-pthread -D_REENTRANT'
62 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
64 SHLIB_LDFLAGS="-shared -Xlinker -x"
65 SHLIB_LINKER="${CC} -shared"
70 CC="/opt/ansic/bin/cc -Ae"
73 LEX="/opt/langtools/bin/lex"
75 MT_CFLAGS='-D_POSIX_C_SOURCE=199506L'
76 MT_LIBS='-L/opt/dce/lib -ldce ${XLIBS}'
79 PAM_CFLAGS="+DA1.0 +z -Wl,+k"
80 PAM_LIBS="/usr/lib/libpam.1"
81 RANLIB="/usr/bin/ranlib"
83 SHLIB_LDFLAGS="-b -Bsymbolic"
85 VFSCK_CFLAGS="-D_FILE64"
86 XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
87 XCFLAGS64="${XCFLAGS0} +DA2.0W"
88 XCFLAGS="${XCFLAGS0} +DA1.0"
89 YACC="/opt/langtools/bin/yacc"
96 CC="/opt/ansic/bin/cc"
99 LEX="/opt/langtools/bin/lex"
101 MT_CFLAGS='-D_POSIX_C_SOURCE=199506L'
104 PAM_CFLAGS="+DA1.0 +z -Wl,+k"
105 PAM_LIBS="/usr/lib/libpam.1"
106 RANLIB="/usr/bin/ranlib"
108 SHLIB_LDFLAGS="-b -Bsymbolic"
110 VFSCK_CFLAGS="-I/usr/old/usr/include -D_FILE64"
111 XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
112 XCFLAGS64="${XCFLAGS0} +DA2.0W"
113 XCFLAGS="${XCFLAGS0} +DA1.0"
115 YACC="/opt/langtools/bin/yacc"
122 CC="/opt/ansic/bin/cc"
123 DBM="/lib/hpux32/libndbm.so"
125 LEX="/opt/langtools/bin/lex"
127 MT_CFLAGS='-D_POSIX_C_SOURCE=199506L'
130 PAM_CFLAGS="-b +z -Wl,+k"
131 PAM_LIBS="/usr/lib/hpux32/libpam.so"
132 RANLIB="/usr/bin/ranlib"
134 SHLIB_LDFLAGS="-b -Bsymbolic"
136 VFSCK_CFLAGS="-I/usr/old/usr/include -D_FILE64"
137 XCFLAGS0="-ldld -lc -Wp,-H200000 -Wl,-a,archive_shared -DAUTH_DBM_LOG +z -Wl,+k -D_LARGEFILE64_SOURCE"
138 XCFLAGS64="${XCFLAGS0} +DD64"
139 XCFLAGS="${XCFLAGS0}"
141 YACC="/opt/langtools/bin/yacc"
146 MT_CFLAGS='-pthread -D_REENTRANT'
148 PAM_CFLAGS="-pipe -fPIC"
149 SHLIB_LDFLAGS="-shared -Xlinker -x"
150 SHLIB_LINKER="${CC} -shared"
155 MT_CFLAGS='-pthread -D_REENTRANT'
157 PAM_CFLAGS="-pipe -fPIC"
158 SHLIB_LDFLAGS="-shared -Xlinker -x"
159 SHLIB_LINKER="${CC} -shared"
164 MT_CFLAGS='-pthread -D_REENTRANT'
165 PAM_CFLAGS="-O2 -pipe -fPIC"
166 SHLIB_LDFLAGS="-shared -Xlinker -x"
167 SHLIB_LINKER="${CC} -shared"
168 XCFLAGS="-O2 -pipe -fPIC"
171 *nbsd2*|*nbsd3*|*nbsd4*|*nbsd5*|*nbsd6*|*nbsd7*)
172 MT_CFLAGS='-pthread -D_REENTRANT'
174 PAM_CFLAGS="-pipe -fPIC"
176 SHLIB_LDFLAGS="-shared -Xlinker -x"
177 SHLIB_LINKER="${CC} -shared"
184 PAM_CFLAGS="-pipe -fPIC"
185 SHLIB_LDFLAGS="-shared -Xlinker -x"
186 SHLIB_LINKER="${CC} -shared"
192 MT_CFLAGS='-pthread -D_REENTRANT'
194 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
196 SHLIB_LDFLAGS="-shared -Xlinker -x"
198 SHLIB_LINKER="${CC} -shared"
204 MT_CFLAGS='-pthread -D_REENTRANT'
206 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
208 SHLIB_LDFLAGS="-shared -Xlinker -x"
209 SHLIB_LINKER="${CC} -shared"
213 MT_CFLAGS='-pthread -D_REENTRANT'
215 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
216 SHLIB_LDFLAGS="-shared -Xlinker -x"
218 SHLIB_LINKER="${CC} -shared -m64"
226 MT_CFLAGS='-pthread -D_REENTRANT'
232 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
234 SHLIB_LDFLAGS="-shared -Xlinker -x"
235 SHLIB_LINKER="${CC} -shared"
239 MT_CFLAGS='-pthread -D_REENTRANT'
245 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
247 SHLIB_LDFLAGS="-shared -Xlinker -x"
248 SHLIB_LINKER="${CC} -shared"
253 MT_CFLAGS='-pthread -D_REENTRANT'
257 PAM_CFLAGS="-pipe -fpic"
259 SHLIB_LDFLAGS="-shared -Xlinker -x"
260 SHLIB_LINKER="${CC} -shared"
266 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
267 MT_CFLAGS='-D_REENTRANT'
269 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
272 XCFLAGS="-no-cpp-precomp"
273 EXTRA_VLIBOBJS="fstab.o"
274 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
276 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
281 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
282 MT_CFLAGS="-D_REENTRANT"
284 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
289 EXTRA_VLIBOBJS="fstab.o"
290 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
293 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
297 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
298 MT_CFLAGS="-D_REENTRANT"
300 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
306 EXTRA_VLIBOBJS="fstab.o"
307 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
310 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
314 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
315 MT_CFLAGS="-D_REENTRANT"
316 MT_LIBS="${LIB_AFSDB} -framework CoreFoundation"
318 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
326 EXTRA_VLIBOBJS="fstab.o"
327 SHLIB_LINKER="${CC} -dynamiclib"
330 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
333 *_darwin_100 | *_darwin_110 | *_darwin_120 | *_darwin_130 | *_darwin_140 | *_darwin_150 | *_darwin_160 | *_darwin_170 | *_darwin_180)
334 AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
335 MT_CFLAGS="-D_REENTRANT"
338 KINCLUDES='-I$(KROOT)/System/Library/Frameworks/Kernel.framework/Headers'
345 EXTRA_VLIBOBJS="fstab.o"
346 SHLIB_LINKER="${CC} \${ARCHFLAGS} -dynamiclib"
349 XLIBS="${LIB_AFSDB} -framework CoreFoundation"
354 MT_CFLAGS='-pthread -D_REENTRANT'
356 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
358 SHLIB_LDFLAGS="-shared -Xlinker -x"
359 SHLIB_LINKER="${CC} -shared"
365 LIBSYS_AIX_EXP="afsl.exp"
368 XCFLAGS="-K -D_NONSTD_TYPES -D_MBI=void"
369 XLIBS="${LIB_AFSDB} ${LIB_libintl} -ldl"
370 SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
375 rs_aix51 | rs_aix52 | rs_aix53)
378 LIBSYS_AIX_EXP="afsl.exp"
381 XCFLAGS="-K -D_NONSTD_TYPES -D_MBI=void"
382 XLIBS="${LIB_AFSDB} ${LIB_libintl} -ldl"
383 SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
391 LIBSYS_AIX_EXP="afsl.exp"
394 XCFLAGS="-K -D_NONSTD_TYPES -D_MBI=void"
395 XLIBS="${LIB_AFSDB} ${LIB_libintl} -ldl"
396 SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
404 MT_CFLAGS='-pthread -D_REENTRANT'
406 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
408 SHLIB_LDFLAGS="-shared -Xlinker -x"
409 SHLIB_LINKER="${CC} -shared"
416 MT_CFLAGS='-pthread -D_REENTRANT'
418 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
420 SHLIB_LDFLAGS="-shared -Xlinker -x -Xlinker -Bsymbolic"
422 XCFLAGS="-D__s390x__"
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="-64 -mips3"
435 SHLIB_LINKER="${CC} -shared"
440 AFSD_LIBS="/usr/lib/libdwarf.a /usr/lib/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 -o32"
447 SHLIB_LINKER="${CC} -shared"
452 AFSD_LIBS="/usr/lib32/libdwarf.a /usr/lib32/libelf.a"
453 FSINCLUDES="-I/usr/include/sys/fs"
454 MT_CFLAGS='-D_SGI_MP_SOURCE'
455 XCFLAGS64="-D_BSD_COMPAT -64 -mips3"
456 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"
459 SHLIB_LINKER="${CC} -shared"
463 AFSD_LIBS="/usr/lib32/libdwarf.a /usr/lib32/libelf.a"
465 FSINCLUDES="-I/usr/include/sys/fs"
467 MT_CFLAGS='-D_SGI_MP_SOURCE'
468 XCFLAGS64="-64 -mips3"
469 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"
470 XLDFLAGS64="-64 -mips3"
471 XLDFLAGS="-n32 -mips3"
472 SHLIB_LINKER="${CC} -shared"
477 MT_CFLAGS='-pthread -D_REENTRANT'
479 PAM_CFLAGS="-Dlinux -DLINUX_PAM -fPIC"
481 SHLIB_LDFLAGS="-shared -Xlinker -x"
484 SHLIB_LINKER="${CC} -shared"
492 PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
494 SHLIB_LDFLAGS="-G -Bsymbolic"
495 XCFLAGS64='${XCFLAGS} -m64'
496 XCFLAGS="-dy -Bdynamic"
499 XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
500 SHLIB_LINKER="${CC} -G -dy -Bsymbolic -z text"
510 if test "x`echo "${ARCHFLAGS}" | grep m32`" != "x" ; then
511 CURRENTBUILDARCH=i386
513 if test "x`echo "${ARCHFLAGS}" | grep m64`" != "x" ; then
514 CURRENTBUILDARCH=amd64
516 if test "x${CURRENTBUILDARCH}" = "x" ; then
517 CURRENTBUILDARCH=`isainfo -k`
519 if test "${CURRENTBUILDARCH}" = "amd64" ; then
526 CFLAGS="$CFLAGS ${XARCHFLAGS}"
531 PAM_LIBS="-lc -lpam -lsocket -lnsl -lm"
533 SHLIB_LDFLAGS="-G -Bsymbolic"
534 XCFLAGS0="-dy -Bdynamic"
535 XCFLAGS64="${XCFLAGS0} -m64"
536 XCFLAGS="${XCFLAGS0} ${XARCHFLAGS}"
538 XLDFLAGS="${XARCHFLAGS}"
539 ASFLAGS="${XARCHFLAGS}"
542 XLIBS="${LIB_AFSDB} -lsocket -lnsl -lintl -ldl"
543 SHLIB_LINKER="${CC} ${XARCHFLAGS} -G -dy -Bsymbolic -z text"
548 MT_CFLAGS="${MT_CFLAGS} -DAFS_PTHREAD_ENV"
551 # Defaults for --enable-optimize-kernel
553 if test "x$enable_optimize_kernel" = "x" ; then
554 AS_CASE([$AFS_SYSNAME],
555 [sunx86_510|sunx86_511],
556 dnl Somewhere around Solaris Studio 12.*, the compiler started adding SSE
557 dnl instructions to optimized code, without any known way to turn it off.
558 dnl To cope, this condition was added to change the default to
560 dnl Now that we have an autoconf test to allow disabling the SSE
561 dnl optimizations, it's safe to once more default to 'yes' here.
562 [enable_optimize_kernel=yes],
563 [enable_optimize_kernel=yes])
567 # Special build targets
571 IRIX_SYS_SYSTM_H_HAS_MEM_FUNCS
572 XFS_SIZE_CHECK="xfs_size_check"
573 install_XFS_SIZE_CHECK='$(DESTDIR)${afssrvsbindir}/xfs_size_check'
574 dest_XFS_SIZE_CHECK='$(DEST)/root.server/usr/afs/bin/xfs_size_check'
576 AC_SUBST(XFS_SIZE_CHECK)
577 AC_SUBST(install_XFS_SIZE_CHECK)
578 AC_SUBST(dest_XFS_SIZE_CHECK)
581 if test "x$enable_debug_kernel" = "xyes"; then
583 AC_SUBST(DEBUG_FLAGS)
588 dnl Disable the default for debugging/optimization if not enabled
589 if test "x$enable_debug_kernel" = "xno"; then
593 if test "x$enable_optimize_kernel" = "xno"; then
597 if test "x$enable_debug" = "xno"; then
602 if test "x$enable_optimize" = "xno"; then
606 if test "x$enable_debug_lwp" = "xno"; then
610 if test "x$enable_optimize_lwp" = "xno"; then
614 if test "x$enable_strip_binaries" != "xno"; then
615 if test "x$enable_strip_binaries" = "xmaybe" -a "x$enable_debug" = "xyes"; then
625 CFLAGS_NOSTRICT=-fno-strict-aliasing
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"
636 if test "x$enable_checking" != "xall"; then
637 CFLAGS_NOERROR="-Wno-error"
638 CFLAGS_NOUNUSED="-Wno-unused"
639 CFLAGS_NOOLDSTYLE="-Wno-old-style-definition"
640 AC_DEFINE(IGNORE_SOME_GCC_WARNINGS, 1, [define to disable some gcc warnings in warnings-as-errors mode])
649 warn_common="-v -errfmt=error -errtags=yes -erroff=E_ATTRIBUTE_UNKNOWN,E_END_OF_LOOP_CODE_NOT_REACHED"
650 if test "x$enable_warnings" = "xyes" ; then
651 XCFLAGS="${XCFLAGS} $warn_common"
653 if test "x$enable_checking" != "xno" ; then
654 XCFLAGS="${XCFLAGS} $warn_common -errwarn=%all"
655 if test "x$enable_checking" != "xall" ; then
656 CFLAGS_NOERROR="-errwarn=%none"
663 dnl horribly cheating, assuming double / is ok.
666 INSTALL="/@abs_top_srcdir@/install-sh -c"
672 INSTALL_PROGRAM="${INSTALL_PROGRAM} ${NO_STRIP_BIN}"
677 AC_SUBST(AFSD_LDFLAGS)
696 AC_SUBST(NO_STRIP_BIN)
706 AC_SUBST(SHLIB_CFLAGS)
707 AC_SUBST(SHLIB_LDFLAGS)
708 AC_SUBST(SHLIB_LINKER)
709 AC_SUBST(SHLIB_SUFFIX)
710 AC_SUBST(VFSCK_CFLAGS)
712 AC_SUBST(CFLAGS_NOERROR)
713 AC_SUBST(CFLAGS_NOSTRICT)
714 AC_SUBST(CFLAGS_NOUNUSED)
715 AC_SUBST(CFLAGS_NOOLDSTYLE)