diff options
author | David Cantrell <dcantrell@redhat.com> | 2009-06-09 11:30:00 -1000 |
---|---|---|
committer | David Cantrell <dcantrell@redhat.com> | 2009-06-09 12:26:55 -1000 |
commit | 8289217588d4916f595894dcec136e9ab738097e (patch) | |
tree | a5c7dbca3051d578f60bd16d0e02ed0f9a04c4bd /configure.ac | |
parent | 99dce090dd668d81a796b51d8503435a66f0e1f9 (diff) | |
download | anaconda-8289217588d4916f595894dcec136e9ab738097e.tar.gz anaconda-8289217588d4916f595894dcec136e9ab738097e.tar.xz anaconda-8289217588d4916f595894dcec136e9ab738097e.zip |
Add toplevel Makefile.am and configure.ac
Add main Makefile.am and configure.ac files. Add config.rpath, which is
required for the gettext template macros. Added a bootstrap script to
generate the configure script and Makefile.in templates.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 000000000..099826dda --- /dev/null +++ b/configure.ac @@ -0,0 +1,263 @@ +# configure.ac for anaconda +# +# Copyright (C) 2009 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# Author: David Cantrell <dcantrell@redhat.com> + +m4_define(python_required_version, 2.5) + +AC_PREREQ([2.63]) +AC_INIT([anaconda], [11.5.0.53], [anaconda-devel-list@redhat.com]) +AM_INIT_AUTOMAKE([foreign no-dist-gzip dist-bzip2]) + +AC_CONFIG_SRCDIR([loader/loader.c]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_MACRO_DIR([m4]) + +AC_DEFINE_UNQUOTED([BUILD_DATE], ["`date +%m%d%Y`"], [Date of anaconda build]) + +# Checks for programs. +AC_PROG_AWK +AC_PROG_GREP +AC_PROG_CC +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET +AC_PROG_LIBTOOL + +AM_GNU_GETTEXT([external]) + +# Checks for libraries. +AC_CHECK_LIB([X11], [XGetWindowAttributes], + [AC_SUBST(X11_LIBS, [-lX11])], + [AC_MSG_FAILURE([*** libX11 not usable.])]) + +AC_CHECK_LIB([audit], [audit_open], + [AC_SUBST(AUDIT_LIBS, [-laudit])], + [AC_MSG_FAILURE([*** libaudit not usable.])]) + +AC_CHECK_LIB([blkid], [blkid_get_cache], + [AC_SUBST(BLKID_LIBS, [-lblkid])], + [AC_MSG_FAILURE([*** libblkid not usable.])]) + +AC_CHECK_LIB([checkisomd5], [mediaCheckFile], + [AC_SUBST(CHECKISOMD5_LIBS, [-lcheckisomd5])], + [AC_MSG_FAILURE([*** libcheckisomd5 not usable.])]) + +AC_CHECK_LIB([ext2fs], [ext2fs_initialize], + [AC_SUBST(EXT2FS_LIBS, [-lext2fs])], + [AC_MSG_FAILURE([*** libext2fs not usable.])]) + +AC_CHECK_LIB([iscsi], [libiscsi_get_firmware_network_config], + [AC_SUBST(ISCSI_LIBS, [-liscsi])], + [AC_MSG_FAILURE([*** libiscsi not usable.])]) + +AC_CHECK_LIB([newt], [newtInit], + [AC_SUBST(NEWT_LIBS, [-lnewt])], + [AC_MSG_FAILURE([*** libnewt not usable.])]) + +AC_CHECK_LIB([popt], [poptGetContext], + [AC_SUBST(POPT_LIBS, [-lpopt])], + [AC_MSG_FAILURE([*** libpopt not usable.])]) + +AC_CHECK_LIB([slang], [SLang_get_int_size], + [AC_SUBST(SLANG_LIBS, [-lslang])], + [AC_MSG_FAILURE([*** libslang not usable.])]) + +AC_CHECK_LIB([z], [zlibVersion], + [AC_SUBST(ZLIB_LIBS, [-lz])], + [AC_MSG_FAILURE([*** libz not usable.])]) + +# Checks for header files. +AC_PATH_X +AC_FUNC_ALLOCA +AC_HEADER_RESOLV +AC_HEADER_MAJOR +AC_CHECK_HEADERS([argz.h arpa/inet.h fcntl.h inttypes.h libintl.h limits.h \ + malloc.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h \ + string.h strings.h sys/ioctl.h sys/mount.h sys/param.h \ + sys/socket.h sys/time.h sys/vfs.h syslog.h termios.h \ + unistd.h utime.h wchar.h], + [], + [AC_MSG_FAILURE([*** Header file $ac_header not found.])], + []) + +# Checks for typedefs, structures, and compiler characteristics. +AC_TYPE_UID_T +AC_C_INLINE +AC_TYPE_INT32_T +AC_TYPE_MODE_T +AC_TYPE_OFF_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_CHECK_MEMBERS([struct stat.st_rdev]) +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T +AC_TYPE_UINT8_T + +# Checks for library functions. +AC_FUNC_CHOWN +AC_FUNC_ERROR_AT_LINE +AC_FUNC_FORK +AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK +AC_FUNC_MALLOC +AC_FUNC_MMAP +AC_FUNC_REALLOC +AC_CHECK_FUNCS([dup2 fdatasync ftruncate getcwd gethostbyname gettimeofday \ + lchown memmove memset mkdir mkfifo munmap realpath select \ + setenv sethostname socket strcasecmp strchr strcspn strdup \ + strerror strncasecmp strndup strrchr strstr strtol strtoul \ + strverscmp uname utime wcwidth], + [], + [AC_MSG_FAILURE([*** Required function $ac_func not found.])]) + +AM_PATH_PYTHON(python_required_version) +AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers or library)]) + +# Check for libraries we need that provide pkg-config scripts +PKG_PROG_PKG_CONFIG([0.23]) +PKG_CHECK_MODULES([GTK_X11], [gtk+-x11-2.0 >= 2.16.1]) +PKG_CHECK_MODULES([GDK], [gdk-2.0 >= 2.16.1]) +PKG_CHECK_MODULES([NETWORKMANAGER], [NetworkManager >= 0.7.1]) +PKG_CHECK_MODULES([LIBNL], [libnl-1 >= 1.0]) +PKG_CHECK_MODULES([LIBNM_GLIB], [libnm_glib >= 0.7.1]) +PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= 1.02.17]) + +# Set $RPM_OPT_FLAGS if we don't have it +if test -z $RPM_OPT_FLAGS ; then + CFLAGS="$CFLAGS -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions" +else + CFLAGS="$CFLAGS $RPM_OPT_FLAGS" +fi + +# SELinux support can be enabled or disabled +AC_ARG_WITH(selinux, + AC_HELP_STRING([--enable-selinux], + [enable SELinux support (default is yes)]), + [selinux=$enableval], + [selinux=yes]) +if test x$selinux = xyes ; then + AC_CHECK_LIB([selinux], [matchpathcon], [], + [AC_MSG_FAILURE([*** libselinux not usable.])]) + AC_CHECK_LIB([selinux], [lsetfilecon], [], + [AC_MSG_FAILURE([*** libselinux not usable.])]) + + selinux_libs="-lselinux -laudit" + AC_SUBST(SELINUX_CFLAGS, [-DUSESELINUX=1]) + AC_SUBST(SELINUX_LIBS, [$selinux_libs]) +fi + +# NFS support can, in theory, be enabled or disabled +AC_ARG_WITH(nfs, + AC_HELP_STRING([--enable-nfs], + [enable NFS support (default is yes)]), + [nfs=$enableval], + [nfs=yes]) +if test x$selinux = xyes ; then + AC_SUBST(NFS_CFLAGS, [-DHAVE_NFS]) +fi + +# Add remaining compiler flags we want to use +CFLAGS="$CFLAGS -Wall -Werror -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" + +# Filter CFLAGS (remove duplicate flags) +cflags_filter() { + have= + first=1 + for flag in $* ; do + if test -z "`echo $have | grep -- $flag`" ; then + if test x$first == x1 ; then + first=2 + else + echo -n " " + fi + echo -n $flag + have="$have $flag" + fi + done +} +CFLAGS="`cflags_filter $CFLAGS`" + +# Unset $(LIBS) because different programs and libraries will have different +# lists of libraries to link with, we don't want everything linking against +# all libraries we checked for. +LIBS= + +# Get the release number from the spec file +rel="`awk '/Release:/ { split($2, r, "%"); print r[[1]] }' anaconda.spec.in`" +AC_SUBST(PACKAGE_RELEASE, [$rel]) + +# Set $(ARCH) and arch-related tests +s_arch="`uname -m | sed -e s/i.86/i386/ -e s/sparc.*/sparc/ -e s/ppc.*/ppc/`" +AC_SUBST(ARCH, [$s_arch]) + +AM_CONDITIONAL(IS_FONT_ARCH, + [test x$s_arch != xs390 && test x$s_arch != xs390x]) + +AM_CONDITIONAL(IS_LIVEINST_ARCH, + [test x$s_arch == xppc || test x$s_arch == xi386 || test x$s_arch == xx86_64]) + +AM_CONDITIONAL(IS_GPTSYNC_ARCH, + [test x$s_arch == xi386 || test x$s_arch == xx86_64]) + +AM_CONDITIONAL(IS_KEYMAPS_OVERRIDE_ARCH, + [test x$s_arch == xi386 || test x$s_arch == xppc || test x$s_arch == xx86_64]) + +AM_CONDITIONAL(IS_I386, + [test x$s_arch == xi386]) + +AM_CONDITIONAL(IS_PPC, + [test x$s_arch == xppc]) + +AM_CONDITIONAL(IS_S390, + [test x$s_arch == xs390 || test x$s_arch == xs390x]) + +AM_CONDITIONAL(IS_X86_64, + [test x$s_arch == xx86_64]) + +AC_CONFIG_FILES([Makefile + bootdisk/Makefile + bootdisk/i386/Makefile + bootdisk/ppc/Makefile + bootdisk/s390x/Makefile + bootdisk/x86_64/Makefile + booty/Makefile + command-stubs/Makefile + docs/Makefile + fonts/Makefile + gptsync/Makefile + installclasses/Makefile + isys/Makefile + iw/Makefile + liveinst/Makefile + liveinst/console.apps/Makefile + liveinst/pam.d/Makefile + loader/Makefile + pixmaps/Makefile + po/Makefile.in + scripts/Makefile + storage/Makefile + storage/devicelibs/Makefile + storage/formats/Makefile + tests/Makefile + tests/storage/Makefile + tests/storage/devicelibs/Makefile + textw/Makefile + ui/Makefile + utils/Makefile]) +AC_OUTPUT |