[llvm-commits] CVS: llvm/autoconf/configure.ac

Brian Gaeke gaeke at cs.uiuc.edu
Tue Jan 13 00:44:09 PST 2004


Changes in directory llvm/autoconf:

configure.ac updated: 1.63 -> 1.64

---
Log message:

Remove and/or shorten many comments in configure.ac.

Remove checks for many common Unix programs. Our build process currently
assumes they are there and makes no provisions for any other world-views.
(We can add some of these checks back at some later time if it should prove
useful, but right now, we do not need to check to see whether "rm" exists.)

Remove checks for many common standard C headers and functions. We assume
ISO/ANSI C++, and we always use the <cfoo> versions of ANSI C's <foo.h>
headers, so these checks will not help anything.

Edit configure's warning messages for clarity and content.

Change checks for "optional" programs to default to using "true" instead of
"false", so that a failure to find, e.g., etags, will be less likely to result
in make failing.

No longer shall we check for --enable-purify or --with-purify options.
No longer shall we propagate these to the Makefiles.

configure regenerated using autoconf-2.57.

Please feel free to send me any questions or comments you have. :-)


---
Diffs of the changes:  (+35 -187)

Index: llvm/autoconf/configure.ac
diff -u llvm/autoconf/configure.ac:1.63 llvm/autoconf/configure.ac:1.64
--- llvm/autoconf/configure.ac:1.63	Sat Dec 20 15:35:15 2003
+++ llvm/autoconf/configure.ac	Tue Jan 13 00:43:16 2004
@@ -1,20 +1,4 @@
-dnl Autoconf requirements
-dnl AC_INIT(package, version, bug-report-address)
-dnl information on the package
-dnl checks for programs
-dnl checks for libraries
-dnl checks for header files
-dnl checks for types
-dnl checks for structures
-dnl checks for compiler characteristics
-dnl checks for library functions
-dnl checks for system services
-dnl AC_CONFIG_FILES([file...])
-dnl AC_OUTPUT
-
-dnl **************************************************************************
-dnl * Initialize
-dnl **************************************************************************
+dnl Initialize autoconf
 AC_INIT([[[LLVM]]],[[[1.1]]],[llvmbugs at cs.uiuc.edu])
 
 dnl Place all of the extra autoconf files into the config subdirectory
@@ -30,9 +14,7 @@
 	fi
 fi
 
-dnl
 dnl Configure all of the projects present in our source tree.
-dnl
 for i in `ls ${srcdir}/projects`
 do
   if test ${i} != "CVS"
@@ -94,11 +76,7 @@
 AC_CONFIG_MAKEFILE(utils/Makefile)
 AC_CONFIG_MAKEFILE(projects/Makefile)
 
-dnl **************************************************************************
-dnl * Determine which system we are building on
-dnl **************************************************************************
-
-dnl Check the install program (needs to be done before canonical stuff)
+dnl Find the install program (needs to be done before canonical stuff)
 AC_PROG_INSTALL
 
 dnl Check which host for which we're compiling.  This will tell us which LLVM
@@ -154,10 +132,6 @@
 	                  ;;
 esac
 
-dnl **************************************************************************
-dnl * Check for programs.
-dnl **************************************************************************
-
 dnl Check for compilation tools
 AC_PROG_CXX
 AC_PROG_CC(gcc)
@@ -168,7 +142,6 @@
 then
 	AC_MSG_ERROR([gcc required but not found])
 fi
-
 if test "$GXX" != "yes"
 then
 	AC_MSG_ERROR([g++ required but not found])
@@ -178,86 +151,33 @@
 gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
 if test "$gccmajor" -lt "3"
 then
-	AC_MSG_ERROR([gcc 3.x required])
+	AC_MSG_ERROR([gcc 3.x required, but you have a lower version])
 fi
 
-dnl Check for GNU Make.  We use its extensions to, so don't build without it
+dnl Check for GNU Make.  We use its extensions too, so don't build without it
 CHECK_GNU_MAKE
 if test -z "$_cv_gnu_make_command"
 then
 	AC_MSG_ERROR([GNU Make required but not found])
 fi
 
-dnl Check for compiler-compiler tools (reminds me of Little Caesar's Pizza)
+dnl Checks for other tools
 AC_PROG_FLEX
 AC_PROG_BISON
-
-dnl Check for libtool
 AC_PROG_LIBTOOL
 
-dnl Check for our special programs
-AC_PATH_PROG(RPWD,[pwd],[false])
-if test ${RPWD} = "false"
-then
-	AC_MSG_ERROR([pwd required but not found])
-fi
-
-AC_PATH_PROG(AR,[ar],[false])
-if test ${AR} = "false"
-then
-	AC_MSG_ERROR([ar required but not found])
-fi
-
-AC_PATH_PROG(SED,[sed],[false])
-if test ${SED} = "false"
-then
-	AC_MSG_ERROR([sed required but not found])
-fi
-
-AC_PATH_PROG(RM,[rm],[false])
-if test ${RM} = "false"
-then
-	AC_MSG_ERROR([rm required but not found])
-fi
-
-AC_PATH_PROG(ECHO,[echo],[false])
-if test ${ECHO} = "false"
-then
-	AC_MSG_ERROR([echo required but not found])
-fi
-
-AC_PATH_PROG(MKDIR,[mkdir],[false])
-if test ${MKDIR} = "false"
-then
-	AC_MSG_ERROR([mkdir required but not found])
-fi
-
-AC_PATH_PROG(DATE,[date],[false])
-if test ${DATE} = "false"
-then
-	AC_MSG_ERROR([date required but not found])
-fi
-
-AC_PATH_PROG(MV,[mv],[false])
-if test ${MV} = "false"
+dnl Checks for tools we can get away with not having:
+AC_PATH_PROG(DOT,[dot],[true dot])
+AC_PATH_PROG(ETAGS,[etags],[true etags])
+AC_PATH_PROG(PYTHON,[python],[true python])
+if test "$PYTHON" = "false"
 then
-	AC_MSG_ERROR([mv required but not found])
+	AC_MSG_WARN([Python is required for the test suite, but it was not found])
 fi
-
-AC_PATH_PROG(DOT,[dot],[false])
-
-AC_PATH_PROG(ETAGS,[etags],[false])
-
-AC_PATH_PROG(PYTHON,[python],[false])
-if test ${PYTHON} = "false"
+AC_PATH_PROG(QMTEST,[qmtest],[true qmtest])
+if test "$QMTEST" = "false"
 then
-	AC_MSG_WARN([python required but not found])
-fi
-
-AC_PATH_PROG(QMTEST,[qmtest],[false])
-if test ${QMTEST} = "false"
-then
-	AC_MSG_WARN([qmtest required but not found])
+	AC_MSG_WARN([QMTest is required for the test suite, but it was not found])
 fi
 
 dnl Verify that the version of python available is high enough for qmtest
@@ -271,20 +191,17 @@
 	then
 		if test "$pyminor" -lt "2"
 		then
-			AC_MSG_WARN([Python 2.2 or greater required for qmtest])
+			AC_MSG_WARN([QMTest requires Python 2.2 or later])
 		fi
 	fi
 else
-	AC_MSG_WARN([Python 2.2 or greater required for qmtest])
+	AC_MSG_WARN([QMTest requires Python 2.2 or later])
 fi
 
 dnl Verify that the source directory is valid
 AC_CONFIG_SRCDIR(["Makefile.config.in"])
 
-dnl **************************************************************************
-dnl * Check for libraries.
-dnl **************************************************************************
-
+dnl Checks for libraries:
 dnl libelf is for sparc only; we can ignore it if we don't have it
 AC_CHECK_LIB(elf, elf_begin)
 
@@ -298,41 +215,14 @@
 dnl without locks.
 AC_SEARCH_LIBS(pthread_mutex_lock,pthread,AC_DEFINE(HAVE_PTHREAD_MUTEX_LOCK,1,[Define if PThread mutexes (e.g., pthread_mutex_lock) are available in the system's thread library.]))
 
-dnl
-dnl The math libraries are used by the test code, but not by the actual LLVM
-dnl code.
-dnl
-dnl AC_CHECK_LIB(m, cos)
-
-dnl **************************************************************************
-dnl * Checks for header files.
-dnl *	Chances are, if the standard C or POSIX type header files are missing,
-dnl *	then LLVM just isn't going to compile.  However, it is possible that
-dnl *	the necessary functions/macros will be included from other
-dnl *	(non-standard and non-obvious) header files.
-dnl *
-dnl *	So, we'll be gracious, give it a chance, and try to go on without
-dnl *	them.
-dnl **************************************************************************
+dnl Checks for header files.
+dnl We don't check for ancient stuff or things that are guaranteed to be there
+dnl by the C++ standard. We always use the <cfoo> versions of <foo.h> C headers.
 AC_HEADER_STDC
 AC_HEADER_SYS_WAIT
 
-dnl Check for ANSI C/POSIX header files
-AC_CHECK_HEADERS(assert.h fcntl.h limits.h sys/time.h unistd.h errno.h signal.h math.h)
-
-dnl Check for system specific header files
-AC_CHECK_HEADERS(malloc.h sys/mman.h sys/resource.h)
-
-dnl Check for header files associated with dlopen and friends
-AC_CHECK_HEADERS(dlfcn.h link.h)
-
-dnl **************************************************************************
-dnl * Checks for typedefs, structures, and compiler characteristics.
-dnl **************************************************************************
-
-dnl Check for const and inline keywords
-AC_C_CONST
-AC_C_INLINE
+dnl Checks for POSIX and other various system-specific header files
+AC_CHECK_HEADERS(fcntl.h limits.h sys/time.h unistd.h malloc.h sys/mman.h sys/resource.h dlfcn.h link.h)
 
 dnl Check for machine endian-ness
 AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG],[],[Define if the machine is Big-Endian]),AC_DEFINE([ENDIAN_LITTLE],[],[Define if the machine is Little-Endian]))
@@ -356,54 +246,28 @@
 AC_CXX_HAVE_BI_ITERATOR
 AC_CXX_HAVE_FWD_ITERATOR
 
-dnl **************************************************************************
-dnl * Checks for library functions.
-dnl **************************************************************************
+dnl Checks for library functions.
 AC_FUNC_ALLOCA
-AC_PROG_GCC_TRADITIONAL
-AC_FUNC_MEMCMP
 AC_FUNC_MMAP
+if test "$ac_cv_func_mmap_fixed_mapped" = "no"
+then
+	AC_MSG_ERROR([mmap() required but not found])
+fi
 AC_FUNC_MMAP_FILE
-if test ${ac_cv_func_mmap_file} = "no"
+if test "$ac_cv_func_mmap_file" = "no"
 then
 	AC_MSG_ERROR([mmap() of files required but not found])
 fi
 AC_HEADER_MMAP_ANONYMOUS
 AC_TYPE_SIGNAL
-AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol strtoq strtoll)
-
-dnl
-dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
-dnl MAP_FIXED is only needed for Sparc
-dnl MAP_ANON is used for Sparc and BSD
-dnl Everyone should have MAP_PRIVATE
-dnl
-
-dnl Check for certain functions (even if we've already found them) so that we
-dnl can quit with an error if they are unavailable.
-dnl
-dnl As the code is made more portable (i.e. less reliant on these functions,
-dnl these checks should go away.
-AC_CHECK_FUNC(mmap,,AC_MSG_ERROR([Function mmap() required but not found]))
+AC_CHECK_FUNCS(getcwd gettimeofday strdup strtoq strtoll)
 AC_CHECK_FUNC(mprotect,,AC_MSG_ERROR([Function mprotect() required but not found]))
 
 dnl Determine if the linker supports the -R option.
-AC_LINK_USE_R()
+AC_LINK_USE_R
 
-dnl **************************************************************************
-dnl * Enable various compile-time options
-dnl **************************************************************************
-
-dnl Purify Option
-AC_ARG_ENABLE(purify,AC_HELP_STRING([--enable-purify],[Compile with purify (default is NO)]),,enableval="no")
-if test ${enableval} = "no"
-then
-	AC_SUBST(ENABLE_PURIFY,[[]])
-else
-	AC_SUBST(ENABLE_PURIFY,[[ENABLE_PURIFY=1]])
-fi
-
-dnl Optimized Option
+dnl --enable/--with command-line options:
+dnl Check whether they want to do an optimized build:
 AC_ARG_ENABLE(optimized,AC_HELP_STRING([--enable-optimized],[Compile with optimizations enabled (default is NO)]),,enableval=no)
 if test ${enableval} = "no"
 then
@@ -443,7 +307,6 @@
 	AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
 fi
 
-
 dnl LLC Diff Option
 AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
 if test ${enableval} = "no"
@@ -455,7 +318,6 @@
 
 dnl JIT Option
 AC_ARG_ENABLE(jit,AC_HELP_STRING([--enable-jit],[Enable Just In Time Compiling (default is YES)]),,enableval=default)
-
 if test ${enableval} = "no"
 then
 	AC_SUBST(JIT,[[]])
@@ -473,13 +335,8 @@
 	esac
 fi
 
-dnl **************************************************************************
-dnl * Set the location of various third-party software packages
-dnl **************************************************************************
-
-dnl Location of the LLVM C front end
+dnl Find the LLVM GCC-based C/C++ front end
 AC_ARG_WITH(llvmgccdir,AC_HELP_STRING([--with-llvmgccdir],[Location of LLVM GCC front-end]),AC_SUBST(LLVMGCCDIR,[$withval]))
-
 AC_MSG_CHECKING([for llvm-gcc])
 LLVM_GCC_CHECK=no
 if test -d "$LLVMGCCDIR"
@@ -495,7 +352,6 @@
 then
     llvmgccwarn=yes
 fi
-
 AC_MSG_CHECKING([whether llvm-gcc is sane])
 LLVM_GCC_SANE=no
 if test -x "$LLVM_GCC_CHECK"
@@ -520,18 +376,10 @@
 dnl Location of PAPI
 AC_ARG_WITH(papi,AC_HELP_STRING([--with-papi],[Location of PAPI]),AC_SUBST(PAPIDIR,[$withval]),AC_SUBST(PAPIDIR,[/home/vadve/shared/Sparc/papi-2.3.4.1]))
 
-dnl Location of the purify program
-AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
-
-dnl **************************************************************************
-dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Create the output files
-dnl **************************************************************************
+dnl Create the output files
 AC_OUTPUT(Makefile.config)
 
+dnl Warn loudly if llvm-gcc was not obviously working
 if test $llvmgccwarn = yes
 then
 	AC_MSG_WARN([***** llvm C/C++ front end was not found, or does not])





More information about the llvm-commits mailing list