dnl QiLinux RPM tool for the distribution dnl dnl Copyright 2006 (C) Davide Madrisan dnl Copyright 2007 (C) Silvan Calarco dnl dnl This program is free software; you can redistribute it and/or modify it under dnl the terms of version 2 of the GNU General Public License as published by the dnl Free Software Foundation. dnl dnl This program is distributed in the hope that it will be useful, but WITHOUT dnl ANY WARRANTY, to the extent permitted by law; without even the implied dnl warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. dnl See the GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License along with dnl this program; if not, write to the Free Software Foundation, Inc., dnl 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. dnl Process this file with autoconf to produce a configure script. dnl Initialization dnl ------------------------------------------------------------ m4_define(PROG_NAME, [distromatic]) m4_define(PROG_BUGREPORT, [silvan.calarco@mambasoft.it]) m4_define(PROG_VERSION,dnl regexp(m4_include(VERSION),[.*=[ \t]*\([.0-9A-Za-z]+\)],[\1])) AC_PREREQ(2.59) AC_INIT([PROG_NAME],[PROG_VERSION],[PROG_BUGREPORT],[PROG_NAME]) AC_CONFIG_SRCDIR(src/distromatic.c) AC_CONFIG_HEADERS(src/include/config.h:src/include/config.h.in) AC_COPYRIGHT(dnl [Copyright 2006 by Davide Madrisan ]) dnl set `ac_aux_dir' = 'config' dnl ------------------------------------------------------------ AC_CONFIG_AUX_DIR(config) AC_SUBST(ac_aux_dir) dnl Just to display the version number of this program dnl ------------------------------------------------------------ AC_MSG_CHECKING([for PROG_NAME version]) AC_MSG_RESULT([PROG_VERSION]) dnl Set and display default target architecture dnl ------------------------------------------------------------ AC_MSG_CHECKING([for the default target architecture]) DEFAULT_ARCH="i586" AC_SUBST(DEFAULT_ARCH) AC_MSG_RESULT([$DEFAULT_ARCH]) dnl Compute the canonical build-system type variable, `build' and dnl its three individual parts `build_cpu', `build_vendor', `build_os' dnl ------------------------------------------------------------ AC_CANONICAL_TARGET AM_INIT_AUTOMAKE([1.7 foreign dist-bzip2 nostdinc]) AM_GNU_GETTEXT([external]) AC_REVISION($Revision: 1.4 $) dnl Determine a C compiler to use. Define `CFLAGS', `EXEEXT', `OBJEXT' dnl Define `CFLAGS' to `-g -O2' for the GNU C compiler, or `-g' for dnl other compilers. dnl If the C compiler is not in ANSI C mode by default, try to add an dnl option to output variable `CC' to make it so. dnl ------------------------------------------------------------ AC_PROG_CC if test "x$ac_cv_prog_cc_stdc" = xno; then AC_MSG_ERROR([$CC is not an ANSI C compiler.]) fi AM_PROG_CC_C_O AC_ISC_POSIX #AC_PROG_GCC_TRADITIONAL #CFLAGS+=-O1 SUPPORTED_CFLAGS= dnl cc_TRY_CFLAGS (CFLAGS, [ACTION-IF-WORKS], [ACTION-IF-FAILS]) dnl ------------------------------------------------------------ dnl Checks if $CC supports a given set of CFLAGS. dnl If supported, the current CFLAGS is appended to SUPPORTED_CFLAGS AC_DEFUN([cc_TRY_CFLAGS], [AC_MSG_CHECKING([whether compiler accepts $1]) ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $1" AC_COMPILE_IFELSE([AC_LANG_SOURCE([ [[int x;]], [ac_cv_try_cflags_ok=yes SUPPORTED_CFLAGS="$SUPPORTED_CFLAGS $1"], [ac_cv_try_cflags_ok=no]])]) CFLAGS="$ac_save_CFLAGS" AC_MSG_RESULT([$ac_cv_try_cflags_ok]) if test x"$ac_cv_try_cflags_ok" = x"yes"; then ifelse([$2],[],[:],[$2]) else ifelse([$3],[],[:],[$3]) fi ])[]dnl @end [cc_TRY_CFLAGS] cc_TRY_CFLAGS([-Wall]) cc_TRY_CFLAGS([-W]) cc_TRY_CFLAGS([-Wmissing-prototypes]) cc_TRY_CFLAGS([-Wstrict-prototypes]) cc_TRY_CFLAGS([-Wshadow]) #cc_TRY_CFLAGS([-Wunreachable-code]) AC_SUBST([CFLAGS], ["$CFLAGS $SUPPORTED_CFLAGS"]) dnl Check if C the compiler does not fully support the ANSI C qualifier dnl `const'. dnl ------------------------------------------------------------ AC_C_CONST AC_LANG([C]) dnl Define `WORDS_BIGENDIAN' if a big-endian architecture is found dnl AC_C_BIGENDIAN ([ACTION-IF-TRUE], [ACTION-IF-FALSE], [ACTION-IF-UNKNOWN]) dnl The default for ACTION-IF-TRUE is to define `WORDS_BIGENDIAN'. dnl The default for ACTION-IF-FALSE is to do nothing. dnl And finally, the default for ACTION-IF-UNKNOWN is to abort configure and tell dnl the installer which variable he should preset to bypass this test. dnl ------------------------------------------------------------ AC_C_BIGENDIAN dnl Check for standard header files dnl ------------------------------------------------------------ AC_HEADER_STDC AC_HEADER_TIME dnl Check for library functions for portability issues dnl ------------------------------------------------------------ AC_CHECK_DECLS([getopt]) dnl If the `malloc' works correctly (`malloc (0)' returns a valid pointer), dnl define `HAVE_MALLOC' AC_CHECK_FUNCS([memcpy strchr]) AC_FUNC_MALLOC dnl Check for needed header files, libraries and tools dnl ------------------------------------------------------------ AC_CHECK_HEADERS(dirent.h ndir.h sys/ndir.h, break) AC_CHECK_HEADERS(errno.h) dnl Check for zlib library and header files AC_CHECK_HEADER([zlib.h], AC_DEFINE(HAVE_ZLIB_H,1, [Define to 1 if you have the header file.]), [AC_MSG_ERROR([Can't find zlib.h in your system])]) AC_CHECK_LIB(z,gzopen, [ZLIB="-lz"], [AC_MSG_ERROR([Can't find libz library in your system])]) LIBS="$LIBS $ZLIB" dnl Check for rpm tool and needed libraries AC_PATH_PROG(RPM_PATH,rpm,none) if test "$RPM_PATH" = "none"; then AC_MSG_ERROR([RPM executable was not found in your system]) else AC_DEFINE_UNQUOTED([HAVE_RPM],1,[Define if RPM backend is available]) dnl Check for RPM version AC_MSG_CHECKING(for RPM version) RPM_VERSION_RAW=`LANG= LC_ALL= $RPM_PATH --version | sed 's/^.* //'` RPM_VERSION_MAJOR=`echo $RPM_VERSION_RAW | cut -d. -f1` RPM_VERSION_MINOR=`echo $RPM_VERSION_RAW | cut -d. -f2` RPM_VERSION_MICRO=`echo $RPM_VERSION_RAW | cut -d. -f3` if test -z "$RPM_VERSION_MAJOR" -o -z "$RPM_VERSION_MINOR"; then AC_MSG_ERROR([can't parse RPM version]) fi if test -z "$RPM_VERSION_MICRO"; then RPM_VERSION_MICRO=0 fi AC_DEFINE_UNQUOTED([RPM_VERSION_MAJOR],$RPM_VERSION_MAJOR,[RPM major version]) AC_DEFINE_UNQUOTED([RPM_VERSION_MINOR],$RPM_VERSION_MINOR,[RPM minor version]) AC_DEFINE_UNQUOTED([RPM_VERSION_MICRO],$RPM_VERSION_MICRO,[RPM micro version]) AC_DEFINE_UNQUOTED([RPM_VERSION], [((RPM_VERSION_MAJOR<<16)|(RPM_VERSION_MINOR<<8)|RPM_VERSION_MICRO)], [Define to the RPM version]) AC_DEFINE_UNQUOTED([RPM_VERSION_RAW],"$RPM_VERSION_RAW",[RPM raw version]) AC_MSG_RESULT($RPM_VERSION_RAW) dnl Check for RPM libraries and headers AC_CHECK_LIB(bz2,BZ2_bzopen, [], [AC_MSG_ERROR([Can't find libbz2 library in your system])]) AC_CHECK_LIB(z,gzopen, [], [AC_MSG_ERROR([Can't find libz library in your system])]) AC_CHECK_HEADERS(db1/db.h) CPPFLAGS="$CPPFLAGS -I/usr/include/rpm" AC_CHECK_HEADER(rpm/rpmlib.h, [], [AC_MSG_ERROR([Can't find rpmlib.h in your system])]) if test $RPM_VERSION_MAJOR -lt 4; then RPMLIBS="-lrpm -lz -lbz2 -lpopt" else AC_CHECK_LIB(rpmdb,rpmdbOpen, [RPMDBLIBS="-lrpmdb"], [RPMDBLIBS="-ldb-3.1"], [-lrpm -lrpmio -lz -lbz2 -lpopt]) RPMLIBS="-lrpm $RPMDBLIBS -lrpmio -lz -lbz2 -lpopt" fi AC_MSG_CHECKING(for RPM libraries) AC_MSG_RESULT($RPMLIBS) AC_SUBST(RPMLIBS) fi LIBS="$LIBS $RPMLIBS" dnl Check for libiberty' library and header files AC_CHECK_HEADERS([libiberty.h], [], [AC_MSG_ERROR([Can't find libiberty.h in your system,] [check http://www.gnu.org/software/binutils/binutils.html for libiberty])]) AC_CHECK_LIB(iberty, freeargv, [LIBS="$LIBS -liberty" AC_DEFINE(HAVE_LIBIBERTY,1, [Define to 1 if you have the `libiberty' library (-liberty).])], [AC_MSG_ERROR([Can't find libiberty in your system,] [check http://www.gnu.org/software/binutils/binutils.html for libiberty])]) dnl Check for sqlite library and header files PKG_CHECK_MODULES([SQLITE], [sqlite3]) dnl Set the default `prefix' variable to `/usr' dnl ------------------------------------------------------------ #AC_PREFIX_DEFAULT([/usr]) dnl Generate the output files dnl ------------------------------------------------------------ AC_CONFIG_FILES([Makefile po/Makefile.in] [config/Makefile] [html/Makefile] [html/index.php] [html/index.postnuke.php] [html/index.html] [src/Makefile] [src/include/Makefile] [src/include/globaldefs.h] [src/missing/Makefile]) AC_OUTPUT cat <<_EOF Good - your configure finished. Start make now. _EOF dnl configure.ac ends here