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/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 +++ 8 files changed, 444 insertions(+) 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/smb_build') 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