~ubuntu-branches/ubuntu/saucy/clamav/saucy-backports

« back to all changes in this revision

Viewing changes to .pc/0005-configure.ac-patches-to-got-with-autoreconf-and-auto.patch/libclamav/c++/configure.ac

  • Committer: Package Import Robot
  • Author(s): Scott Kitterman
  • Date: 2014-03-19 11:01:01 UTC
  • mfrom: (127.1.10 trusty-proposed)
  • Revision ID: package-import@ubuntu.com-20140319110101-7zmsh88kmyii2wca
Tags: 0.98.1+dfsg-4ubuntu1~ubuntu13.10.1
No-change backport to saucy (LP: #1292943)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl   This program is free software; you can redistribute it and/or modify
 
2
dnl   it under the terms of the GNU General Public License as published by
 
3
dnl   the Free Software Foundation; either version 2 of the License, or
 
4
dnl   (at your option) any later version.
 
5
dnl
 
6
dnl   This program is distributed in the hope that it will be useful,
 
7
dnl   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
8
dnl   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
9
dnl   GNU General Public License for more details.
 
10
dnl
 
11
dnl   You should have received a copy of the GNU General Public License
 
12
dnl   along with this program; if not, write to the Free Software
 
13
dnl   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 
14
dnl   MA 02110-1301, USA.
 
15
 
 
16
AC_PREREQ([2.59])
 
17
AC_INIT([libclamavc++],[devel],[http://bugs.clamav.net])
 
18
AC_CONFIG_AUX_DIR([config])
 
19
AC_CONFIG_SRCDIR([llvm/configure])
 
20
AC_CONFIG_MACRO_DIR([m4])
 
21
AC_CONFIG_HEADER([clamavcxx-config.h])
 
22
AC_CANONICAL_TARGET
 
23
AM_INIT_AUTOMAKE([1.9 -Wall -Wportability -Werror foreign no-define color-tests tar-pax])
 
24
AM_SILENT_RULES([yes])
 
25
 
 
26
cxxset=${CXXFLAGS+set}
 
27
AC_PROG_CXX
 
28
AC_C_BIGENDIAN
 
29
 
 
30
if test "$cxxset" != set; then
 
31
# don't use the default -O2 -g because -g bloats the C++ binaries too much
 
32
  CXXFLAGS="-O2"
 
33
fi
 
34
case "$target_os" in
 
35
solaris*)
 
36
  CXXFLAGS="$CXXFLAGS -include llvm/include/llvm/System/Solaris.h"
 
37
  AC_MSG_NOTICE([Building on Solaris])
 
38
  ;;
 
39
esac
 
40
 
 
41
AM_MAINTAINER_MODE
 
42
LT_INIT([disable-static])
 
43
if test "$GXX" != "yes"; then
 
44
    AC_MSG_ERROR([GNU C++ compiler not found, not building LLVM])
 
45
fi
 
46
 
 
47
AC_CHECK_GNU_MAKE
 
48
GMAKE="$llvm_cv_gnu_make_command"
 
49
AC_SUBST([GMAKE])
 
50
 
 
51
llvmconfig=
 
52
AC_ARG_WITH([system-llvm], AC_HELP_STRING([-with-system-llvm],
 
53
[Use system llvm instead of built-in, requires full path to llvm-config]),
 
54
[case "$withval" in
 
55
  yes)
 
56
    AC_MSG_ERROR([--with-system-llvm needs full path to llvm-config])
 
57
    ;;
 
58
  no) ;;
 
59
  *)
 
60
    llvmconfig="$withval"
 
61
    llvmver=`$llvmconfig --version`
 
62
    if test "$llvmver" != "2.9" && test "$llvmver" != "3.0svn" &&
 
63
        test "$llvmver" != "3.0"; then
 
64
        AC_MSG_ERROR([LLVM 2.9 required, but "$llvmver" found])
 
65
    fi
 
66
    AC_SUBST(LLVMCONFIG_CXXFLAGS, [`$llvmconfig --cxxflags`])
 
67
    AC_SUBST(LLVMCONFIG_LDFLAGS, [`$llvmconfig --ldflags`])
 
68
    AC_SUBST(LLVMCONFIG_LIBS, [`$llvmconfig --libs jit nativecodegen scalaropts ipo`])
 
69
    AC_SUBST(LLVMCONFIG_LIBFILES, [`$llvmconfig --libfiles jit nativecodegen scalaropts ipo`])
 
70
    AC_MSG_NOTICE([Using external LLVM])
 
71
    AC_MSG_NOTICE([CXXFLAGS from llvm-config: $LLVMCONFIG_CXXFLAGS])
 
72
    AC_MSG_NOTICE([LDFLAGS from llvm-config: $LLVMCONFIG_LDFLAGS])
 
73
    AC_MSG_NOTICE([LIBS from llvm-config: $LLVMCONFIG_LIBS])
 
74
    ;;
 
75
  esac
 
76
])
 
77
 
 
78
if test "x$llvmconfig" = "x"; then
 
79
    AC_CONFIG_SUBDIRS([llvm])
 
80
fi
 
81
 
 
82
AC_ARG_ENABLE([llvm],AC_HELP_STRING([-enable-llvm],
 
83
                                    [Enable 'llvm' JIT/verifier support @<:@default=auto@:>@]),
 
84
                                    [enable_llvm=$enableval], [enable_llvm="auto"])
 
85
 
 
86
AC_ARG_ENABLE(optimized, AC_HELP_STRING([-enable-optimized],
 
87
              [Compile with optimizations enabled (default is YES)]),
 
88
              enable_optimized=$enableval, enable_optimized=default)
 
89
AM_CONDITIONAL(DEBUG_BUILD,[test "x$enable_optimized" = "xno"])
 
90
 
 
91
dnl Set configure args for subdir
 
92
if test "$enable_optimized" = "default"; then
 
93
    ac_configure_args="$ac_configure_args --enable-optimized"
 
94
fi
 
95
 
 
96
dnl Pretend that GNU make is available for LLVM, we don't use LLVM's buildsystem
 
97
dnl anyway (except for make check)
 
98
ac_configure_args="$ac_configure_args llvm_cv_gnu_make_command=make"
 
99
AC_ARG_ENABLE(all-jit-targets, AC_HELP_STRING([-enable-all-jit-targets],
 
100
              [Build all the targets that support JIT for testing (default NO)]),
 
101
              enable_alltargets=$enableval, enable_alltargets=no)
 
102
if test "$enable_alltargets" = "yes"; then
 
103
    new_args="$ac_configure_args --enable-targets=x86,powerpc --enable-bindings=none --enable-libffi=no --without-llvmgcc --without-llvmgxx"
 
104
else
 
105
    new_args="$ac_configure_args --enable-targets=host-only --enable-bindings=none --enable-libffi=no --without-llvmgcc --without-llvmgxx"
 
106
fi
 
107
ac_configure_args=`echo $new_args | sed -e 's/-Werror //g'`
 
108
 
 
109
if test "$enable_llvm" = "auto"; then
 
110
    dnl Do some sanity checks, and don't automatically build on platforms
 
111
    dnl that are not supported or have broken compilers.
 
112
    dnl The user can override this by specifying --enable-llvm=yes.
 
113
    AC_MSG_CHECKING([for supported C++ compiler version])
 
114
    gxx_version=`${CXX} -dumpversion` ||
 
115
    AC_MSG_ERROR([Unable to get GNU C++ compiler version])
 
116
    case "${gxx_version}" in
 
117
     [[03]].*)
 
118
        AC_MSG_ERROR([C++ compiler too old (${gxx_version})])
 
119
        ;;
 
120
     4.1.[[1]]*)
 
121
        AC_MSG_ERROR([C++ compiler is buggy])
 
122
        ;;
 
123
     *)
 
124
        AC_MSG_RESULT([ok (${gxx_version})])
 
125
    esac
 
126
 
 
127
    AC_MSG_CHECKING([for supported OS])
 
128
    case "$target_cpu" in
 
129
        i?86|amd64|x86_64|powerpc*)
 
130
            case "$target_os" in
 
131
                darwin*|freebsd*|openbsd*|netbsd*|dragonfly*|linux*|solaris*|win32*|mingw*)
 
132
                    AC_MSG_RESULT([ok ($target_cpu-$target_os)])
 
133
                    ;;
 
134
                *)
 
135
                    AC_MSG_ERROR([OS $target_os is not supported, not building LLVM])
 
136
                    ;;
 
137
            esac
 
138
            ;;
 
139
        alpha*|arm*)
 
140
            AC_MSG_ERROR([CPU support is untested, not building LLVM])
 
141
            ;;
 
142
        *)
 
143
            AC_MSG_ERROR([Unsupported CPU for JIT: $target_cpu, not building LLVM])
 
144
            ;;
 
145
    esac
 
146
fi
 
147
 
 
148
dnl bb #1971 - doesn't work with older libstdc++ version at link/runtime
 
149
AC_MSG_CHECKING([for working libstdc++])
 
150
AC_LANG_PUSH([C++])
 
151
AC_RUN_IFELSE(
 
152
    [AC_LANG_SOURCE([
 
153
        #include <iostream>
 
154
        int main()
 
155
        {
 
156
            // this causes an @GLIBCXX_3.4.9 symbol to be linked in -O2 mode
 
157
            std::cout << "test";
 
158
            return 0;
 
159
    }
 
160
    ])],[AC_MSG_RESULT([yes])],
 
161
    [AC_MSG_FAILURE([failed])],
 
162
[AC_LINK_IFELSE(
 
163
    [AC_LANG_SOURCE([
 
164
        #include <iostream>
 
165
        int main()
 
166
        {
 
167
            // this causes an @GLIBCXX_3.4.9 symbol to be linked in -O2 mode
 
168
            std::cout << "test";
 
169
            return 0;
 
170
        }
 
171
    ])], [AC_MSG_RESULT([yes])],
 
172
    [AC_MSG_FAILURE([failed])]
 
173
)])
 
174
AC_LANG_POP([C++])
 
175
 
 
176
build_x86=no
 
177
build_ppc=no
 
178
case "$target_cpu" in
 
179
    i?86|amd64|x86_64)
 
180
            build_x86=yes
 
181
            ;;
 
182
    powerpc*)
 
183
            build_ppc=yes
 
184
            ;;
 
185
esac
 
186
 
 
187
# FreeBSD is only one which needs something else than -pthread,
 
188
# according to the logic in ClamAV's main configure.in.
 
189
case "$target_os" in
 
190
freebsd[[45]]*)
 
191
    THREAD_LIBS="-pthread -lc_r"
 
192
    ;;
 
193
freebsd*)
 
194
    THREAD_LIBS="-lthr"
 
195
    ;;
 
196
darwin*)
 
197
    # none required
 
198
    THREAD_LIBS=
 
199
    ;;
 
200
 
 
201
*)
 
202
    THREAD_LIBS="-pthread"
 
203
esac
 
204
AC_SUBST([THREAD_LIBS])
 
205
 
 
206
if test "$enable_alltargets" = "yes"; then
 
207
        build_x86=yes
 
208
        build_ppc=yes
 
209
fi
 
210
if test "$ac_cv_c_bigendian" = "universal"; then
 
211
    AC_MSG_NOTICE([Universal build detected])
 
212
    build_x86=yes
 
213
    build_ppc=yes
 
214
fi
 
215
AC_MSG_NOTICE([Building X86 backend: $build_x86])
 
216
AC_MSG_NOTICE([Building PPC backend: $build_ppc])
 
217
AM_CONDITIONAL(BUILD_X86, [test "$build_x86" = "yes"])
 
218
AM_CONDITIONAL(BUILD_PPC, [test "$build_ppc" = "yes"])
 
219
 
 
220
AC_MSG_CHECKING([optional compiler flags])
 
221
CXX_FLAG_CHECK(NO_VARIADIC_MACROS, [-Wno-variadic-macros])
 
222
CXX_FLAG_CHECK(NO_MISSING_FIELD_INITIALIZERS, [-Wno-missing-field-initializers])
 
223
AC_MSG_RESULT([$NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS])
 
224
 
 
225
AM_CONDITIONAL(BUILD_EXTERNAL_LLVM, [test -n "$llvmconfig"])
 
226
AM_CONDITIONAL(BUILD_LLVM3, [test -n "$llvmconfig" && test "$llvmver" != "2.9"])
 
227
 
 
228
AC_OUTPUT([
 
229
    Makefile
 
230
])