~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-07-15 01:08:10 UTC
  • mfrom: (0.35.47 sid)
  • Revision ID: package-import@ubuntu.com-20140715010810-ru66ek4fun2iseba
Tags: 0.98.4+dfsg-2~ubuntu13.10.1
No-change backport to saucy (LP: #1341962)

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
 
])