~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to m4/pandora_canonical.m4

Split out warnings - start using the pandora build system.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl The standard setup for how we build Pandora projects
 
2
 
 
3
AC_DEFUN([PANDORA_CANONICAL_TARGET],[
 
4
  PCT_USE_GNULIB=no
 
5
  PCT_REQUIRE_CXX=no
 
6
  PCT_IGNORE_SHARED_PTR=no
 
7
  PCT_ALL_ARGS="$@"
 
8
  for arg in $@ ; do
 
9
    case "$arg" in
 
10
      use-gnulib)
 
11
        PCT_USE_GNULIB=yes
 
12
        ;;
 
13
      require-cxx)
 
14
        PCT_REQUIRE_CXX=yes
 
15
        ;;
 
16
      ignore-shared-ptr)
 
17
        PCT_IGNORE_SHARED_PTR=yes
 
18
        ;;
 
19
    esac
 
20
  done
 
21
 
 
22
  # We need to prevent canonical target
 
23
  # from injecting -O2 into CFLAGS - but we won't modify anything if we have
 
24
  # set CFLAGS on the command line, since that should take ultimate precedence
 
25
  AS_IF([test "x${ac_cv_env_CFLAGS_set}" = "x"],
 
26
        [CFLAGS=""])
 
27
  AS_IF([test "x${ac_cv_env_CXXFLAGS_set}" = "x"],
 
28
        [CXXFLAGS=""])
 
29
  
 
30
  AC_CANONICAL_TARGET
 
31
  
 
32
  AM_INIT_AUTOMAKE(-Wall -Werror nostdinc subdir-objects)
 
33
  AS_IF([test "x${PCT_USE_GNULIB}" = "xyes"], [
 
34
    echo ${ECHO_N} ""
 
35
    gl_EARLY
 
36
  ])
 
37
  
 
38
  AC_REQUIRE([AC_PROG_CC])
 
39
 
 
40
  dnl Force dependency tracking on for Sun Studio builds
 
41
  AS_IF([test "x${enable_dependency_tracking}" = "x"],[
 
42
    enable_dependency_tracking=yes
 
43
  ])
 
44
 
 
45
  
 
46
  dnl Once we can use a modern autoconf, we can use this
 
47
  dnl AC_PROG_CC_C99
 
48
  AC_PROG_CXX
 
49
  AC_PROG_CPP
 
50
  AM_PROG_CC_C_O
 
51
 
 
52
  gl_USE_SYSTEM_EXTENSIONS
 
53
  
 
54
 
 
55
  PANDORA_LIBTOOL
 
56
 
 
57
  PANDORA_CHECK_CXX_STANDARD
 
58
  AS_IF([test "$PCT_REQUIRE_CXX" = "yes"],[
 
59
    AS_IF([test "$ac_cv_cxx_stdcxx_98" = "no"],[
 
60
      AC_MSG_ERROR([No working C++ Compiler has been found. ${PACKAGE} requires a C++ compiler that can handle C++98])
 
61
    ])
 
62
  ])
 
63
  
 
64
  PANDORA_SHARED_PTR
 
65
  AS_IF([test "$PCT_IGNORE_SHARED_PTR" = no],[
 
66
    AS_IF([test "$ac_cv_shared_ptr_namespace" = "missing"],[
 
67
      AC_MSG_WARN([a usable shared_ptr implementation was not found. Let someone know what your platform is.])
 
68
    ])
 
69
  ])
 
70
  
 
71
  AS_IF([test "x${PCT_USE_GNULIB}" = "xyes"], [
 
72
    dnl TODO: replace this run-time test with an m4 compile-time test
 
73
    echo ${ECHO_N} ""
 
74
    gl_INIT
 
75
  ])
 
76
 
 
77
  AC_C_BIGENDIAN
 
78
  AC_C_CONST
 
79
  AC_C_INLINE
 
80
  AC_C_VOLATILE
 
81
 
 
82
  AC_HEADER_TIME
 
83
  AC_TYPE_SIZE_T
 
84
  AC_FUNC_MALLOC
 
85
  AC_FUNC_REALLOC
 
86
  
 
87
 
 
88
  AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
 
89
  PANDORA_CHECK_C_VERSION
 
90
  PANDORA_CHECK_CXX_VERSION
 
91
 
 
92
  AC_SYS_LARGEFILE
 
93
 
 
94
  PANDORA_MAC_GCC42
 
95
 
 
96
  PANDORA_OPTIMIZE
 
97
  PANDORA_64BIT
 
98
  PANDORA_WARNINGS($PCT_ALL_ARGS)
 
99
 
 
100
  gl_VISIBILITY
 
101
 
 
102
  PANDORA_ENABLE_DTRACE
 
103
  PANDORA_HEADER_ASSERT
 
104
 
 
105
  AC_CHECK_PROGS([DOXYGEN], [doxygen])
 
106
  AC_CHECK_PROGS([PERL], [perl])
 
107
 
 
108
  AS_IF([test "x${gl_LIBOBJS}" != "x"],[
 
109
    AS_IF([test "$GCC" = "yes"],[
 
110
      AM_CPPFLAGS="-isystem \$(top_srcdir)/gnulib -isystem \$(top_builddir)/gnulib ${AM_CPPFLAGS}"
 
111
    ],[
 
112
    AM_CPPFLAGS="-I\$(top_srcdir)/gnulib -I\$(top_builddir)/gnulib ${AM_CPPFLAGS}"
 
113
    ])
 
114
  ])
 
115
 
 
116
  AM_CPPFLAGS="-I\${top_srcdir} -I\${top_builddir} ${AM_CPPFLAGS}"
 
117
  AM_CFLAGS="${AM_CFLAGS} ${CC_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}"
 
118
  AM_CXXFLAGS="${AM_CXXFLAGS} ${CXX_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}"
 
119
 
 
120
  AC_SUBST([AM_CFLAGS])
 
121
  AC_SUBST([AM_CXXFLAGS])
 
122
  AC_SUBST([AM_CPPFLAGS])
 
123
 
 
124
])