summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2014-02-09 16:36:42 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2014-02-09 16:36:42 +0000
commit2fbf9e2fda89c8d478abac7fd13bda524bfc9673 (patch)
treec182abdcd510e288cf6af553b56d010e485158e6
parent3e308c868e63089c1383dbb6786377eca06a53b1 (diff)
downloadllvm-2fbf9e2fda89c8d478abac7fd13bda524bfc9673.tar.gz
llvm-2fbf9e2fda89c8d478abac7fd13bda524bfc9673.tar.bz2
llvm-2fbf9e2fda89c8d478abac7fd13bda524bfc9673.tar.xz
Add version, arch, system libs, and targets to Makefile.config
Teach autoconf/configure.ac to AC_SUBST several additional values in Makefile.config to make them available to Makefile code. These will be useful to generate CMake package modules from the Makefile build. Contributed by Brad King. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201052 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--Makefile.config.in15
-rw-r--r--autoconf/configure.ac24
-rw-r--r--autoconf/m4/define_subst.m45
-rwxr-xr-xconfigure76
4 files changed, 100 insertions, 20 deletions
diff --git a/Makefile.config.in b/Makefile.config.in
index dcca45f36c..7633be29da 100644
--- a/Makefile.config.in
+++ b/Makefile.config.in
@@ -15,6 +15,8 @@
# Define LLVM specific info and directories based on the autoconf variables
LLVMPackageName := @PACKAGE_TARNAME@
LLVMVersion := @PACKAGE_VERSION@
+LLVM_VERSION_MAJOR := @LLVM_VERSION_MAJOR@
+LLVM_VERSION_MINOR := @LLVM_VERSION_MINOR@
LLVM_CONFIGTIME := @LLVM_CONFIGTIME@
###########################################################################
@@ -118,6 +120,7 @@ HOST_ARCH=@HOST_ARCH@
# Target hardware architecture
ARCH=@ARCH@
TARGET_NATIVE_ARCH := $(ARCH)
+LLVM_NATIVE_ARCH := @LLVM_NATIVE_ARCH@
# Indicates, whether we're cross-compiling LLVM or not
LLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@
@@ -207,13 +210,22 @@ POD2MAN := @POD2MAN@
PDFROFF := @PDFROFF@
ZIP := @ZIP@
+HAVE_LIBZ := @HAVE_LIBZ@
+HAVE_DLOPEN := @HAVE_DLOPEN@
HAVE_PTHREAD := @HAVE_PTHREAD@
+HAVE_TERMINFO := @HAVE_TERMINFO@
LIBS := @LIBS@
+# Targets that are possible to build
+ALL_TARGETS := @ALL_TARGETS@
+
# Targets that we should build
TARGETS_TO_BUILD=@TARGETS_TO_BUILD@
+# Targets supporting JIT
+TARGETS_WITH_JIT := @TARGETS_WITH_JIT@
+
# Path to directory where object files should be stored during a build.
# Set OBJ_ROOT to "." if you do not want to use a separate place for
# object files.
@@ -250,6 +262,9 @@ ENABLE_CLANG_STATIC_ANALYZER = @ENABLE_CLANG_STATIC_ANALYZER@
# When ENABLE_WERROR is enabled, we'll pass -Werror on the command line
ENABLE_WERROR = @ENABLE_WERROR@
+# When ENABLE_TERMINFO is enabled, we use terminfo.
+ENABLE_TERMINFO = @ENABLE_TERMINFO@
+
# When ENABLE_OPTIMIZED is enabled, LLVM code is optimized and output is put
# into the "Release" directories. Otherwise, LLVM code is not optimized and
# output is put in the "Debug" directories.
diff --git a/autoconf/configure.ac b/autoconf/configure.ac
index bffee5fad2..f376e03d97 100644
--- a/autoconf/configure.ac
+++ b/autoconf/configure.ac
@@ -32,8 +32,8 @@ dnl===-----------------------------------------------------------------------===
dnl Initialize autoconf and define the package name, version number and
dnl address for reporting bugs.
AC_INIT([LLVM],[3.5svn],[http://llvm.org/bugs/])
-AC_DEFINE([LLVM_VERSION_MAJOR], [3], [Major version of the LLVM API])
-AC_DEFINE([LLVM_VERSION_MINOR], [5], [Minor version of the LLVM API])
+LLVM_DEFINE_SUBST([LLVM_VERSION_MAJOR], [3], [Major version of the LLVM API])
+LLVM_DEFINE_SUBST([LLVM_VERSION_MINOR], [5], [Minor version of the LLVM API])
dnl Provide a copyright substitution and ensure the copyright notice is included
dnl in the output of --version option of the generated configure script.
@@ -432,6 +432,7 @@ esac
dnl Define a substitution, ARCH, for the target architecture
AC_SUBST(ARCH,$llvm_cv_target_arch)
+AC_SUBST(LLVM_NATIVE_ARCH,$LLVM_NATIVE_ARCH)
dnl Determine what our host architecture.
dnl This will allow MCJIT regress tests runs only for supported
@@ -768,6 +769,9 @@ else
esac
fi
+TARGETS_WITH_JIT="AArch64 ARM Mips PowerPC SystemZ X86"
+AC_SUBST(TARGETS_WITH_JIT,$TARGETS_WITH_JIT)
+
dnl Allow enablement of building and installing docs
AC_ARG_ENABLE(docs,
AS_HELP_STRING([--enable-docs],
@@ -917,6 +921,10 @@ if test "$llvm_cv_enable_crash_overrides" = "yes" ; then
[Define to enable crash handling overrides])
fi
+dnl List all possible targets
+ALL_TARGETS="X86 Sparc PowerPC AArch64 ARM Mips XCore MSP430 CppBackend NVPTX Hexagon SystemZ R600"
+AC_SUBST(ALL_TARGETS,$ALL_TARGETS)
+
dnl Allow specific targets to be specified for building (or not)
TARGETS_TO_BUILD=""
AC_ARG_ENABLE([targets],AS_HELP_STRING([--enable-targets],
@@ -928,7 +936,7 @@ if test "$enableval" = host-only ; then
enableval=host
fi
case "$enableval" in
- all) TARGETS_TO_BUILD="X86 Sparc PowerPC AArch64 ARM Mips XCore MSP430 CppBackend NVPTX Hexagon SystemZ R600" ;;
+ all) TARGETS_TO_BUILD="$ALL_TARGETS" ;;
*)for a_target in `echo $enableval|sed -e 's/,/ /g' ` ; do
case "$a_target" in
x86) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
@@ -1189,6 +1197,10 @@ AC_ARG_ENABLE(terminfo,AS_HELP_STRING(
*) AC_MSG_ERROR([Invalid setting for --enable-terminfo. Use "yes" or "no"]) ;;
esac],
llvm_cv_enable_terminfo="yes")
+case "$llvm_cv_enable_terminfo" in
+ yes) AC_SUBST(ENABLE_TERMINFO,[1]) ;;
+ no) AC_SUBST(ENABLE_TERMINFO,[0]) ;;
+esac
dnl --enable-libedit: check whether the user wants to turn off libedit.
AC_ARG_ENABLE(libedit,AS_HELP_STRING(
@@ -1500,7 +1512,7 @@ if test "$llvm_cv_os_type" = "MingW" ; then
fi
dnl dlopen() is required for plugin support.
-AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1],
+AC_SEARCH_LIBS(dlopen,dl,LLVM_DEFINE_SUBST([HAVE_DLOPEN],[1],
[Define if dlopen() is available on this platform.]),
AC_MSG_WARN([dlopen() not found - disabling plugin support]))
@@ -1513,8 +1525,8 @@ dnl The curses library is optional; used for querying terminal info
if test "$llvm_cv_enable_terminfo" = "yes" ; then
dnl We need the has_color functionality in curses for it to be useful.
AC_SEARCH_LIBS(setupterm,tinfo terminfo curses ncurses ncursesw,
- AC_DEFINE([HAVE_TERMINFO],[1],
- [Define if the setupterm() function is supported this platform.]))
+ LLVM_DEFINE_SUBST([HAVE_TERMINFO],[1],
+ [Define if the setupterm() function is supported this platform.]))
fi
dnl The libedit library is optional; used by lib/LineEditor
diff --git a/autoconf/m4/define_subst.m4 b/autoconf/m4/define_subst.m4
new file mode 100644
index 0000000000..c66333f2fb
--- /dev/null
+++ b/autoconf/m4/define_subst.m4
@@ -0,0 +1,5 @@
+# Combine AC_DEFINE and AC_SUBST
+AC_DEFUN([LLVM_DEFINE_SUBST], [
+AC_DEFINE([$1], [$2], [$3])
+AC_SUBST([$1], ['$2'])
+])
diff --git a/configure b/configure
index 2166b691a5..46d557df21 100755
--- a/configure
+++ b/configure
@@ -639,6 +639,8 @@ LIBS
build_alias
host_alias
target_alias
+LLVM_VERSION_MAJOR
+LLVM_VERSION_MINOR
LLVM_COPYRIGHT
CC
CFLAGS
@@ -674,6 +676,7 @@ NOLINKALL
LLVM_ON_UNIX
LLVM_ON_WIN32
ARCH
+LLVM_NATIVE_ARCH
HOST_ARCH
LLVM_CROSS_COMPILING
BUILD_CC
@@ -697,6 +700,7 @@ DEBUG_SYMBOLS
KEEP_SYMBOLS
JIT
TARGET_HAS_JIT
+TARGETS_WITH_JIT
ENABLE_DOCS
ENABLE_DOXYGEN
LLVM_ENABLE_THREADS
@@ -706,6 +710,7 @@ ENABLE_PIC
ENABLE_SHARED
ENABLE_EMBED_STDCXX
ENABLE_TIMESTAMPS
+ALL_TARGETS
TARGETS_TO_BUILD
LLVM_ENUM_TARGETS
LLVM_ENUM_ASM_PRINTERS
@@ -716,6 +721,7 @@ EXTRA_OPTIONS
EXTRA_LD_OPTIONS
CLANG_SRC_ROOT
BINUTILS_INCDIR
+ENABLE_TERMINFO
INTERNAL_PREFIX
NM
ifGNUmake
@@ -770,6 +776,8 @@ COVERED_SWITCH_DEFAULT
NO_MAYBE_UNINITIALIZED
NO_UNINITIALIZED
PYTHON
+HAVE_DLOPEN
+HAVE_TERMINFO
USE_UDIS86
USE_OPROFILE
USE_INTEL_JITEVENTS
@@ -1930,15 +1938,23 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
cat >>confdefs.h <<\_ACEOF
#define LLVM_VERSION_MAJOR 3
_ACEOF
+LLVM_VERSION_MAJOR='3'
+
+
+
cat >>confdefs.h <<\_ACEOF
#define LLVM_VERSION_MINOR 5
_ACEOF
+LLVM_VERSION_MINOR='5'
+
+
LLVM_COPYRIGHT="Copyright (c) 2003-2014 University of Illinois at Urbana-Champaign."
@@ -4160,6 +4176,8 @@ esac
ARCH=$llvm_cv_target_arch
+LLVM_NATIVE_ARCH=$LLVM_NATIVE_ARCH
+
case $host in
i?86-*) host_arch="x86" ;;
@@ -5079,6 +5097,10 @@ else
esac
fi
+TARGETS_WITH_JIT="AArch64 ARM Mips PowerPC SystemZ X86"
+TARGETS_WITH_JIT=$TARGETS_WITH_JIT
+
+
# Check whether --enable-docs was given.
if test "${enable_docs+set}" = set; then
enableval=$enable_docs;
@@ -5312,6 +5334,10 @@ _ACEOF
fi
+ALL_TARGETS="X86 Sparc PowerPC AArch64 ARM Mips XCore MSP430 CppBackend NVPTX Hexagon SystemZ R600"
+ALL_TARGETS=$ALL_TARGETS
+
+
TARGETS_TO_BUILD=""
# Check whether --enable-targets was given.
if test "${enable_targets+set}" = set; then
@@ -5324,7 +5350,7 @@ if test "$enableval" = host-only ; then
enableval=host
fi
case "$enableval" in
- all) TARGETS_TO_BUILD="X86 Sparc PowerPC AArch64 ARM Mips XCore MSP430 CppBackend NVPTX Hexagon SystemZ R600" ;;
+ all) TARGETS_TO_BUILD="$ALL_TARGETS" ;;
*)for a_target in `echo $enableval|sed -e 's/,/ /g' ` ; do
case "$a_target" in
x86) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;;
@@ -5681,6 +5707,12 @@ else
llvm_cv_enable_terminfo="yes"
fi
+case "$llvm_cv_enable_terminfo" in
+ yes) ENABLE_TERMINFO=1
+ ;;
+ no) ENABLE_TERMINFO=0
+ ;;
+esac
# Check whether --enable-libedit was given.
if test "${enable_libedit+set}" = set; then
@@ -10678,7 +10710,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 10681 "configure"
+#line 10713 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12357,10 +12389,14 @@ ac_res=$ac_cv_search_dlopen
if test "$ac_res" != no; then
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
cat >>confdefs.h <<\_ACEOF
#define HAVE_DLOPEN 1
_ACEOF
+HAVE_DLOPEN='1'
+
+
else
{ echo "$as_me:$LINENO: WARNING: dlopen() not found - disabling plugin support" >&5
echo "$as_me: WARNING: dlopen() not found - disabling plugin support" >&2;}
@@ -12565,10 +12601,14 @@ ac_res=$ac_cv_search_setupterm
if test "$ac_res" != no; then
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
cat >>confdefs.h <<\_ACEOF
#define HAVE_TERMINFO 1
_ACEOF
+HAVE_TERMINFO='1'
+
+
fi
fi
@@ -23324,6 +23364,8 @@ LIBS!$LIBS$ac_delim
build_alias!$build_alias$ac_delim
host_alias!$host_alias$ac_delim
target_alias!$target_alias$ac_delim
+LLVM_VERSION_MAJOR!$LLVM_VERSION_MAJOR$ac_delim
+LLVM_VERSION_MINOR!$LLVM_VERSION_MINOR$ac_delim
LLVM_COPYRIGHT!$LLVM_COPYRIGHT$ac_delim
CC!$CC$ac_delim
CFLAGS!$CFLAGS$ac_delim
@@ -23359,6 +23401,7 @@ NOLINKALL!$NOLINKALL$ac_delim
LLVM_ON_UNIX!$LLVM_ON_UNIX$ac_delim
LLVM_ON_WIN32!$LLVM_ON_WIN32$ac_delim
ARCH!$ARCH$ac_delim
+LLVM_NATIVE_ARCH!$LLVM_NATIVE_ARCH$ac_delim
HOST_ARCH!$HOST_ARCH$ac_delim
LLVM_CROSS_COMPILING!$LLVM_CROSS_COMPILING$ac_delim
BUILD_CC!$BUILD_CC$ac_delim
@@ -23381,9 +23424,6 @@ DEBUG_RUNTIME!$DEBUG_RUNTIME$ac_delim
DEBUG_SYMBOLS!$DEBUG_SYMBOLS$ac_delim
KEEP_SYMBOLS!$KEEP_SYMBOLS$ac_delim
JIT!$JIT$ac_delim
-TARGET_HAS_JIT!$TARGET_HAS_JIT$ac_delim
-ENABLE_DOCS!$ENABLE_DOCS$ac_delim
-ENABLE_DOXYGEN!$ENABLE_DOXYGEN$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -23425,6 +23465,10 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+TARGET_HAS_JIT!$TARGET_HAS_JIT$ac_delim
+TARGETS_WITH_JIT!$TARGETS_WITH_JIT$ac_delim
+ENABLE_DOCS!$ENABLE_DOCS$ac_delim
+ENABLE_DOXYGEN!$ENABLE_DOXYGEN$ac_delim
LLVM_ENABLE_THREADS!$LLVM_ENABLE_THREADS$ac_delim
ENABLE_PTHREADS!$ENABLE_PTHREADS$ac_delim
LLVM_ENABLE_ZLIB!$LLVM_ENABLE_ZLIB$ac_delim
@@ -23432,6 +23476,7 @@ ENABLE_PIC!$ENABLE_PIC$ac_delim
ENABLE_SHARED!$ENABLE_SHARED$ac_delim
ENABLE_EMBED_STDCXX!$ENABLE_EMBED_STDCXX$ac_delim
ENABLE_TIMESTAMPS!$ENABLE_TIMESTAMPS$ac_delim
+ALL_TARGETS!$ALL_TARGETS$ac_delim
TARGETS_TO_BUILD!$TARGETS_TO_BUILD$ac_delim
LLVM_ENUM_TARGETS!$LLVM_ENUM_TARGETS$ac_delim
LLVM_ENUM_ASM_PRINTERS!$LLVM_ENUM_ASM_PRINTERS$ac_delim
@@ -23442,6 +23487,7 @@ EXTRA_OPTIONS!$EXTRA_OPTIONS$ac_delim
EXTRA_LD_OPTIONS!$EXTRA_LD_OPTIONS$ac_delim
CLANG_SRC_ROOT!$CLANG_SRC_ROOT$ac_delim
BINUTILS_INCDIR!$BINUTILS_INCDIR$ac_delim
+ENABLE_TERMINFO!$ENABLE_TERMINFO$ac_delim
INTERNAL_PREFIX!$INTERNAL_PREFIX$ac_delim
NM!$NM$ac_delim
ifGNUmake!$ifGNUmake$ac_delim
@@ -23496,6 +23542,8 @@ COVERED_SWITCH_DEFAULT!$COVERED_SWITCH_DEFAULT$ac_delim
NO_MAYBE_UNINITIALIZED!$NO_MAYBE_UNINITIALIZED$ac_delim
NO_UNINITIALIZED!$NO_UNINITIALIZED$ac_delim
PYTHON!$PYTHON$ac_delim
+HAVE_DLOPEN!$HAVE_DLOPEN$ac_delim
+HAVE_TERMINFO!$HAVE_TERMINFO$ac_delim
USE_UDIS86!$USE_UDIS86$ac_delim
USE_OPROFILE!$USE_OPROFILE$ac_delim
USE_INTEL_JITEVENTS!$USE_INTEL_JITEVENTS$ac_delim
@@ -23514,14 +23562,6 @@ LLVM_BINDIR!$LLVM_BINDIR$ac_delim
LLVM_DATADIR!$LLVM_DATADIR$ac_delim
LLVM_DOCSDIR!$LLVM_DOCSDIR$ac_delim
LLVM_ETCDIR!$LLVM_ETCDIR$ac_delim
-LLVM_INCLUDEDIR!$LLVM_INCLUDEDIR$ac_delim
-LLVM_INFODIR!$LLVM_INFODIR$ac_delim
-LLVM_MANDIR!$LLVM_MANDIR$ac_delim
-LLVM_CONFIGTIME!$LLVM_CONFIGTIME$ac_delim
-BINDINGS_TO_BUILD!$BINDINGS_TO_BUILD$ac_delim
-ALL_BINDINGS!$ALL_BINDINGS$ac_delim
-OCAML_LIBDIR!$OCAML_LIBDIR$ac_delim
-ENABLE_VISIBILITY_INLINES_HIDDEN!$ENABLE_VISIBILITY_INLINES_HIDDEN$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -23563,6 +23603,14 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+LLVM_INCLUDEDIR!$LLVM_INCLUDEDIR$ac_delim
+LLVM_INFODIR!$LLVM_INFODIR$ac_delim
+LLVM_MANDIR!$LLVM_MANDIR$ac_delim
+LLVM_CONFIGTIME!$LLVM_CONFIGTIME$ac_delim
+BINDINGS_TO_BUILD!$BINDINGS_TO_BUILD$ac_delim
+ALL_BINDINGS!$ALL_BINDINGS$ac_delim
+OCAML_LIBDIR!$OCAML_LIBDIR$ac_delim
+ENABLE_VISIBILITY_INLINES_HIDDEN!$ENABLE_VISIBILITY_INLINES_HIDDEN$ac_delim
RPATH!$RPATH$ac_delim
RDYNAMIC!$RDYNAMIC$ac_delim
program_prefix!$program_prefix$ac_delim
@@ -23570,7 +23618,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 5; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 13; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5