From 9318fdbb3346da0374ab859055ea399dff86a861 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 1 Jun 2004 15:13:27 +0000 Subject: r967: move some configure checks to seperate files metze (This used to be commit 2d109074e8be712a6eb0cfc76439176e3dcdee3a) --- source4/build/m4/rewrite.m4 | 117 ++------------------ source4/build/smb_build/check_cc.m4 | 73 +++++++++++++ source4/build/smb_build/check_ld.m4 | 23 ++++ source4/build/smb_build/check_path.m4 | 189 +++++++++++++++++++++++++++++++++ source4/build/smb_build/check_perl.m4 | 28 +++++ source4/build/smb_build/check_shld.m4 | 21 ++++ source4/build/smb_build/check_types.m4 | 56 ++++++++++ source4/build/smb_build/env.m4 | 42 ++++++++ source4/build/smb_build/public.m4 | 12 +++ 9 files changed, 450 insertions(+), 111 deletions(-) create mode 100644 source4/build/smb_build/check_cc.m4 create mode 100644 source4/build/smb_build/check_ld.m4 create mode 100644 source4/build/smb_build/check_path.m4 create mode 100644 source4/build/smb_build/check_perl.m4 create mode 100644 source4/build/smb_build/check_shld.m4 create mode 100644 source4/build/smb_build/check_types.m4 create mode 100644 source4/build/smb_build/env.m4 (limited to 'source4/build') diff --git a/source4/build/m4/rewrite.m4 b/source4/build/m4/rewrite.m4 index cfe0f71396..03049acc9c 100644 --- a/source4/build/m4/rewrite.m4 +++ b/source4/build/m4/rewrite.m4 @@ -1,94 +1,12 @@ dnl Checks for programs. - -AC_PATH_PROG(PERL, perl) -if test x"$PERL" = x""; then - AC_MSG_WARN([No version of perl was not found!]) - AC_MSG_ERROR([Please Install perl from http://www.perl.com/]) -fi -if test x"$debug" = x"yes";then - PERL="$PERL -W" -fi - -AC_PROG_CC -AC_PROG_INSTALL - -# compile with optimization and without debugging by default, but -# allow people to set their own preference. -if test "x$CFLAGS" = x -then - CFLAGS="-O ${CFLAGS}" -fi - -dnl Check if we use GNU ld -LD=ld -AC_PROG_LD_GNU - -dnl needed before AC_TRY_COMPILE -AC_ISC_POSIX - -dnl look for executable suffix -AC_EXEEXT - -dnl Check if C compiler understands -c and -o at the same time -AC_PROG_CC_C_O -if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then - BROKEN_CC= -else - BROKEN_CC=# -fi -AC_SUBST(BROKEN_CC) - -AC_CACHE_CHECK([that the C compiler can precompile header files],samba_cv_precompiled_headers, [ - dnl Check whether the compiler can generate precompiled headers - touch conftest.h - if ${CC-cc} conftest.h 2> /dev/null && test -f conftest.h.gch; then - samba_cv_precompiled_headers=yes - else - samba_cv_precompiled_headers=no - fi]) -PCH_AVAILABLE="#" -if test x"$samba_cv_precompiled_headers" = x"yes"; then - PCH_AVAILABLE="" -fi -AC_SUBST(PCH_AVAILABLE) - - -dnl Check if the C compiler understands volatile (it should, being ANSI). -AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [ - AC_TRY_COMPILE([#include ],[volatile int i = 0], - samba_cv_volatile=yes,samba_cv_volatile=no)]) -if test x"$samba_cv_volatile" = x"yes"; then - AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile]) -fi - - -AC_CANONICAL_SYSTEM - -dnl Add #include for broken IRIX header files - case "$host_os" in - *irix6*) AC_ADD_INCLUDE() - ;; -esac - -AC_VALIDATE_CACHE_SYSTEM_TYPE +dnl Unique-to-Samba variables we'll be playing with. DYNEXP= -AC_HEADER_STDC -AC_CHECK_HEADERS(stdbool.h) - -AC_CHECK_SIZEOF(short,cross) -AC_CHECK_SIZEOF(int,cross) -AC_CHECK_SIZEOF(long,cross) -AC_CHECK_SIZEOF(long long,cross) -if test x"$ac_cv_type_long_long" != x"yes";then - AC_MSG_ERROR([Sorry we need type 'long long']) -fi -if test $ac_cv_sizeof_long_long -lt 8;then - AC_MSG_ERROR([Sorry we need sizeof(long long) >= 8]) -fi -AC_CHECK_TYPE(_Bool) - +AC_SUBST(SHLIBEXT) +AC_SUBST(LDSHFLAGS) +AC_SUBST(SONAMEFLAG) +AC_SUBST(PICFLAG) # # Config CPPFLAG settings for strange OS's that must be set # before other tests. @@ -345,11 +263,6 @@ AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h) AC_CHECK_HEADERS(sys/acl.h) -AC_C_CONST -AC_C_INLINE -AC_C_BIGENDIAN -AC_C_CHAR_UNSIGNED - AC_TYPE_SIGNAL AC_TYPE_UID_T AC_TYPE_MODE_T @@ -363,15 +276,7 @@ AC_CHECK_TYPE(loff_t,off_t) AC_CHECK_TYPE(offset_t,loff_t) AC_CHECK_TYPE(ssize_t, int) AC_CHECK_TYPE(wchar_t, unsigned short) -AC_CHECK_TYPE(uint_t, unsigned int) -AC_CHECK_TYPE(int8_t, signed char) -AC_CHECK_TYPE(uint8_t, unsigned char) -AC_CHECK_TYPE(int16_t, short) -AC_CHECK_TYPE(uint16_t, unsigned short) -AC_CHECK_TYPE(int32_t, long) -AC_CHECK_TYPE(uint32_t, unsigned long) -AC_CHECK_TYPE(int64_t, long long) -AC_CHECK_TYPE(uint64_t, unsigned long long) + ############################################ # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code @@ -824,16 +729,6 @@ if test $ac_cv_shlib_works = no; then fi fi -################ - -AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[ -AC_TRY_RUN([#include -main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }], -samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)]) -if test x"$samba_cv_have_longlong" = x"yes"; then - AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's]) -fi - # # Check if the compiler supports the LL prefix on long long integers. # AIX needs this. diff --git a/source4/build/smb_build/check_cc.m4 b/source4/build/smb_build/check_cc.m4 new file mode 100644 index 0000000000..0a430a4fcf --- /dev/null +++ b/source4/build/smb_build/check_cc.m4 @@ -0,0 +1,73 @@ +dnl SMB Build Environment CC Checks +dnl ------------------------------------------------------- +dnl Copyright (C) Stefan (metze) Metzmacher 2004 +dnl Released under the GNU GPL +dnl ------------------------------------------------------- +dnl +dnl _SMB_BUILD_CHECK_CC( +dnl 1:dummy +dnl ) + +dnl ####################################################### +dnl ### And now the implementation ### +dnl ####################################################### + +dnl _SMB_BUILD_CHECK_CC( +dnl 1:dummy +dnl ) +AC_DEFUN([_SMB_BUILD_CHECK_CC], +[ + AC_PROG_CC + if test x"$CC" = x""; then + AC_MSG_WARN([No c compiler was not found!]) + AC_MSG_ERROR([Please Install gcc from http://gcc.gnu.org/]) + fi + + AC_PROG_CC_STDC + + # compile with optimization and without debugging by default, but + # allow people to set their own preference. + if test "x$CFLAGS" = x; then + CFLAGS="-O ${CFLAGS}" + fi + + dnl needed before AC_TRY_COMPILE + AC_ISC_POSIX + + dnl Check if C compiler understands -c and -o at the same time + AC_PROG_CC_C_O + if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then + BROKEN_CC= + else + BROKEN_CC=# + fi + AC_SUBST(BROKEN_CC) + + AC_CACHE_CHECK([that the C compiler can precompile header files],samba_cv_precompiled_headers, [ + dnl Check whether the compiler can generate precompiled headers + touch conftest.h + if ${CC-cc} conftest.h 2> /dev/null && test -f conftest.h.gch; then + samba_cv_precompiled_headers=yes + else + samba_cv_precompiled_headers=no + fi]) + PCH_AVAILABLE="#" + if test x"$samba_cv_precompiled_headers" = x"yes"; then + PCH_AVAILABLE="" + fi + AC_SUBST(PCH_AVAILABLE) + + + dnl Check if the C compiler understands volatile (it should, being ANSI). + AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [ + AC_TRY_COMPILE([#include ],[volatile int i = 0], + samba_cv_volatile=yes,samba_cv_volatile=no)]) + if test x"$samba_cv_volatile" = x"yes"; then + AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile]) + fi + + AC_C_CONST + AC_C_INLINE + + AC_PROG_CPP +]) diff --git a/source4/build/smb_build/check_ld.m4 b/source4/build/smb_build/check_ld.m4 new file mode 100644 index 0000000000..94311e02de --- /dev/null +++ b/source4/build/smb_build/check_ld.m4 @@ -0,0 +1,23 @@ +dnl SMB Build Environment LD Checks +dnl ------------------------------------------------------- +dnl Copyright (C) Stefan (metze) Metzmacher 2004 +dnl Released under the GNU GPL +dnl ------------------------------------------------------- +dnl +dnl _SMB_BUILD_CHECK_LD( +dnl 1:dummy +dnl ) + +dnl ####################################################### +dnl ### And now the implementation ### +dnl ####################################################### + +dnl _SMB_BUILD_CHECK_LD( +dnl 1:dummy +dnl ) +AC_DEFUN([_SMB_BUILD_CHECK_LD], +[ + dnl Check if we use GNU ld + AC_PATH_PROG(LD, ld) + AC_PROG_LD_GNU +]) diff --git a/source4/build/smb_build/check_path.m4 b/source4/build/smb_build/check_path.m4 new file mode 100644 index 0000000000..316df59f31 --- /dev/null +++ b/source4/build/smb_build/check_path.m4 @@ -0,0 +1,189 @@ +dnl SMB Build Environment Path Checks +dnl ------------------------------------------------------- +dnl Copyright (C) Stefan (metze) Metzmacher 2004 +dnl Released under the GNU GPL +dnl ------------------------------------------------------- +dnl +dnl _SMB_BUILD_CHECK_PATH( +dnl 1:dummy +dnl ) + +dnl ####################################################### +dnl ### And now the implementation ### +dnl ####################################################### + +dnl _SMB_BUILD_CHECK_PATH( +dnl 1:dummy +dnl ) +AC_DEFUN([_SMB_BUILD_CHECK_PATH], +[ +################################################# +# Directory handling stuff to support both the +# legacy SAMBA directories and FHS compliant +# ones... +AC_PREFIX_DEFAULT(/usr/local/samba) + +AC_ARG_WITH(fhs, +[ --with-fhs Use FHS-compliant paths (default=no)], + configdir="${sysconfdir}/samba" + lockdir="\${VARDIR}/cache/samba" + piddir="\${VARDIR}/run/samba" + logfilebase="\${VARDIR}/log/samba" + privatedir="\${CONFIGDIR}/private" + libdir="\${prefix}/lib/samba" + swatdir="\${DATADIR}/samba/swat", + configdir="\${LIBDIR}" + logfilebase="\${VARDIR}" + lockdir="\${VARDIR}/locks" + piddir="\${VARDIR}/locks" + privatedir="\${prefix}/private" + swatdir="\${prefix}/swat") + +################################################# +# set private directory location +AC_ARG_WITH(privatedir, +[ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)], +[ case "$withval" in + yes|no) + # + # Just in case anybody calls it without argument + # + AC_MSG_WARN([--with-privatedir called without argument - will use default]) + ;; + * ) + privatedir="$withval" + ;; + esac]) + +################################################# +# set lock directory location +AC_ARG_WITH(lockdir, +[ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)], +[ case "$withval" in + yes|no) + # + # Just in case anybody calls it without argument + # + AC_MSG_WARN([--with-lockdir called without argument - will use default]) + ;; + * ) + lockdir="$withval" + ;; + esac]) + +################################################# +# set pid directory location +AC_ARG_WITH(piddir, +[ --with-piddir=DIR Where to put pid files ($ac_default_prefix/var/locks)], +[ case "$withval" in + yes|no) + # + # Just in case anybody calls it without argument + # + AC_MSG_WARN([--with-piddir called without argument - will use default]) + ;; + * ) + piddir="$withval" + ;; + esac]) + +################################################# +# set configuration directory location +AC_ARG_WITH(configdir, +[ --with-configdir=DIR Where to put configuration files (\$libdir)], +[ case "$withval" in + yes|no) + # + # Just in case anybody does it + # + AC_MSG_WARN([--with-configdir called without argument - will use default]) + ;; + * ) + configdir="$withval" + ;; + esac]) + +################################################# +# set log directory location +AC_ARG_WITH(logfilebase, +[ --with-logfilebase=DIR Where to put log files (\$(VARDIR))], +[ case "$withval" in + yes|no) + # + # Just in case anybody does it + # + AC_MSG_WARN([--with-logfilebase called without argument - will use default]) + ;; + * ) + logfilebase="$withval" + ;; + esac]) + +AC_SUBST(configdir) +AC_SUBST(lockdir) +AC_SUBST(piddir) +AC_SUBST(logfilebase) +AC_SUBST(privatedir) +AC_SUBST(bindir) +AC_SUBST(sbindir) + +debug=no +AC_ARG_ENABLE(debug, +[ --enable-debug Turn on compiler debugging information (default=no)], + [if eval "test x$enable_debug = xyes"; then + debug=yes + CFLAGS="${CFLAGS} -g" + fi]) + +developer=no +AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)], + [if eval "test x$enable_developer = xyes"; then + developer=yes + CFLAGS="${CFLAGS} -g -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER" + fi]) + +AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)], + [if eval "test x$enable_krb5developer = xyes"; then + developer=yes + CFLAGS="${CFLAGS} -g -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER" + fi]) + +experimental=no +AC_ARG_ENABLE(experimental, [ --enable-experimental Turn on experimental features (default=no)], + [if eval "test x$enable_experimental = xyes"; then + experimental=yes + fi]) + + + +dnl exclude these modules +AC_ARG_WITH(exclude-modules, +[ --with-exclude-modules=MODULES Comma-seperated list of names of modules to exclude from build], +[ if test $withval; then + for i in `echo $withval | sed -e's/,/ /g'` + do + eval SMB_MODULE_$i=NOT + done +fi ]) + +dnl Always built these modules shared +AC_ARG_WITH(shared-modules, +[ --with-shared-modules=MODULES Comma-seperated list of names of modules to build shared], +[ if test $withval; then + for i in `echo $withval | sed -e's/,/ /g'` + do + eval SMB_MODULE_$i=SHARED + done +fi ]) + +dnl Always built these modules static +AC_ARG_WITH(static-modules, +[ --with-static-modules=MODULES Comma-seperated list of names of modules to statically link in], +[ if test $withval; then + for i in `echo $withval | sed -e's/,/ /g'` + do + eval SMB_MODULE_$i=STATIC + done +fi ]) + +]) diff --git a/source4/build/smb_build/check_perl.m4 b/source4/build/smb_build/check_perl.m4 new file mode 100644 index 0000000000..ff43650b3e --- /dev/null +++ b/source4/build/smb_build/check_perl.m4 @@ -0,0 +1,28 @@ +dnl SMB Build Environment Perl Checks +dnl ------------------------------------------------------- +dnl Copyright (C) Stefan (metze) Metzmacher 2004 +dnl Released under the GNU GPL +dnl ------------------------------------------------------- +dnl +dnl _SMB_BUILD_CHECK_PERL( +dnl 1:dummy +dnl ) + +dnl ####################################################### +dnl ### And now the implementation ### +dnl ####################################################### + +dnl _SMB_BUILD_CHECK_PERL( +dnl 1:dummy +dnl ) +AC_DEFUN([_SMB_BUILD_CHECK_PERL], +[ + AC_PATH_PROG(PERL, perl) + if test x"$PERL" = x""; then + AC_MSG_WARN([No version of perl was not found!]) + AC_MSG_ERROR([Please Install perl from http://www.perl.com/]) + fi + if test x"$debug" = x"yes";then + PERL="$PERL -W" + fi +]) diff --git a/source4/build/smb_build/check_shld.m4 b/source4/build/smb_build/check_shld.m4 new file mode 100644 index 0000000000..ffeb2ca1cf --- /dev/null +++ b/source4/build/smb_build/check_shld.m4 @@ -0,0 +1,21 @@ +dnl SMB Build Environment Shared Ld Checks +dnl ------------------------------------------------------- +dnl Copyright (C) Stefan (metze) Metzmacher 2004 +dnl Released under the GNU GPL +dnl ------------------------------------------------------- +dnl +dnl _SMB_BUILD_CHECK_SHLD( +dnl 1:dummy +dnl ) + +dnl ####################################################### +dnl ### And now the implementation ### +dnl ####################################################### + +dnl _SMB_BUILD_CHECK_SHLD( +dnl 1:dummy +dnl ) +AC_DEFUN([_SMB_BUILD_CHECK_SHLD], +[ + +]) diff --git a/source4/build/smb_build/check_types.m4 b/source4/build/smb_build/check_types.m4 new file mode 100644 index 0000000000..40d00fa820 --- /dev/null +++ b/source4/build/smb_build/check_types.m4 @@ -0,0 +1,56 @@ +dnl SMB Build Environment Types Checks +dnl ------------------------------------------------------- +dnl Copyright (C) Stefan (metze) Metzmacher 2004 +dnl Released under the GNU GPL +dnl ------------------------------------------------------- +dnl +dnl _SMB_BUILD_CHECK_TYPES( +dnl 1:dummy +dnl ) + +dnl ####################################################### +dnl ### And now the implementation ### +dnl ####################################################### + +dnl _SMB_BUILD_CHECK_TYPES( +dnl 1:dummy +dnl ) +AC_DEFUN([_SMB_BUILD_CHECK_TYPES], +[ + dnl Add #include for broken IRIX header files + case "$host_os" in + *irix6*) AC_ADD_INCLUDE() + ;; + esac + + AC_C_BIGENDIAN + + AC_HEADER_STDC + + dnl This should be removed and fixed cleanly --metze + _AC_INCLUDES_DEFAULT_REQUIREMENTS + + AC_CHECK_HEADERS(stdbool.h) + + AC_CHECK_SIZEOF(short,cross) + AC_CHECK_SIZEOF(int,cross) + AC_CHECK_SIZEOF(long,cross) + AC_CHECK_SIZEOF(long long,cross) + if test x"$ac_cv_type_long_long" != x"yes";then + AC_MSG_ERROR([Sorry we need type 'long long']) + fi + if test $ac_cv_sizeof_long_long -lt 8;then + AC_MSG_ERROR([Sorry we need sizeof(long long) >= 8]) + fi + AC_CHECK_TYPE(_Bool) + AC_CHECK_TYPE(uint_t, unsigned int) + AC_CHECK_TYPE(int8_t, signed char) + AC_CHECK_TYPE(uint8_t, unsigned char) + AC_CHECK_TYPE(int16_t, short) + AC_CHECK_TYPE(uint16_t, unsigned short) + AC_CHECK_TYPE(int32_t, long) + AC_CHECK_TYPE(uint32_t, unsigned long) + AC_CHECK_TYPE(int64_t, long long) + AC_CHECK_TYPE(uint64_t, unsigned long long) + +]) diff --git a/source4/build/smb_build/env.m4 b/source4/build/smb_build/env.m4 new file mode 100644 index 0000000000..ef9aa5e514 --- /dev/null +++ b/source4/build/smb_build/env.m4 @@ -0,0 +1,42 @@ +dnl SMB Build Environment Checks +dnl ------------------------------------------------------- +dnl Copyright (C) Stefan (metze) Metzmacher 2004 +dnl Released under the GNU GPL +dnl ------------------------------------------------------- +dnl +dnl _SMB_BUILD_ENV( +dnl 1:dummy +dnl ) + +dnl ####################################################### +dnl ### And now the implementation ### +dnl ####################################################### + +dnl _SMB_BUILD_ENV( +dnl 1:dummy +dnl ) +AC_DEFUN([_SMB_BUILD_ENV], +[ + SMB_VERSION_STRING=`cat include/version.h | grep 'SAMBA_VERSION_OFFICIAL_STRING' | cut -d '"' -f2` + echo "SAMBA VERSION: ${SMB_VERSION_STRING}" + + _SMB_BUILD_CHECK_PATH([]) + + _SMB_BUILD_CHECK_PERL([]) + + _SMB_BUILD_CHECK_CC([]) + + _SMB_BUILD_CHECK_LD([]) + + _SMB_BUILD_CHECK_SHLD([]) + + AC_CANONICAL_BUILD + AC_CANONICAL_HOST + AC_CANONICAL_TARGET + + AC_VALIDATE_CACHE_SYSTEM_TYPE + + _SMB_BUILD_CHECK_TYPES([]) + + AC_PROG_INSTALL +]) diff --git a/source4/build/smb_build/public.m4 b/source4/build/smb_build/public.m4 index 0d4be5313d..9da2b4f801 100644 --- a/source4/build/smb_build/public.m4 +++ b/source4/build/smb_build/public.m4 @@ -109,6 +109,10 @@ dnl 1: inputfile dnl 2: comment dnl ) dnl +dnl SMB_ENV_CHECK( +dnl 1:dummy +dnl ) +dnl dnl SMB_AC_OUTPUT( dnl 1: outputfile dnl ) @@ -512,6 +516,14 @@ sinclude($1) ################################### ]) +dnl SMB_ENV_CHECK( +dnl 1:dummy +dnl ) +AC_DEFUN([SMB_ENV_CHECK], +[ + _SMB_BUILD_ENV($1) +]) + dnl SMB_AC_OUTPUT( dnl 1: outputfile dnl ) -- cgit