~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to m4/pandora_canonical.m4

pandora-buildĀ v1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl  Copyright (C) 2009 Sun Microsystems
 
2
dnl This file is free software; Sun Microsystems
 
3
dnl gives unlimited permission to copy and/or distribute it,
 
4
dnl with or without modifications, as long as this notice is preserved.
 
5
 
 
6
dnl Which version of the canonical setup we're using
 
7
AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.1])
 
8
 
 
9
AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
 
10
  dnl Force dependency tracking on for Sun Studio builds
 
11
  AS_IF([test "x${enable_dependency_tracking}" = "x"],[
 
12
    enable_dependency_tracking=yes
 
13
  ])
 
14
])
 
15
 
1
16
dnl The standard setup for how we build Pandora projects
2
 
 
3
17
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
 
18
  AC_REQUIRE([PANDORA_FORCE_DEPEND_TRACKING])
 
19
  m4_define([PCT_ALL_ARGS],[$@])
 
20
  m4_define([PCT_USE_GNULIB],[no])
 
21
  m4_define([PCT_REQUIRE_CXX],[no])
 
22
  m4_define([PCT_IGNORE_SHARED_PTR],[no])
 
23
  m4_foreach_w([pct_arg],$@,[
 
24
    m4_case(pct_arg,
 
25
      [use-gnulib], [
 
26
        m4_undefine([PCT_USE_GNULIB])
 
27
        m4_define([PCT_USE_GNULIB],[yes])
 
28
      ],
 
29
      [require-cxx], [
 
30
        m4_undefine([PCT_REQUIRE_CXX])
 
31
        m4_define([PCT_REQUIRE_CXX],[yes])
 
32
      ],
 
33
      [ignore-shared-ptr], [
 
34
        m4_undefine([PCT_IGNORE_SHARED_PTR])
 
35
        m4_define([PCT_IGNORE_SHARED_PTR],[yes])
 
36
    ])
 
37
  ])
21
38
 
22
39
  # We need to prevent canonical target
23
40
  # from injecting -O2 into CFLAGS - but we won't modify anything if we have
30
47
  AC_CANONICAL_TARGET
31
48
  
32
49
  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
 
  ])
 
50
 
 
51
  m4_if(PCT_USE_GNULIB,yes,[ gl_EARLY ])
37
52
  
38
53
  AC_REQUIRE([AC_PROG_CC])
39
54
 
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
55
  dnl Once we can use a modern autoconf, we can use this
47
56
  dnl AC_PROG_CC_C99
48
57
  AC_PROG_CXX
54
63
 
55
64
  PANDORA_LIBTOOL
56
65
 
 
66
  dnl autoconf doesn't automatically provide a fail-if-no-C++ macro
 
67
  dnl so we check c++98 features and fail if we don't have them, mainly
 
68
  dnl for that reason
57
69
  PANDORA_CHECK_CXX_STANDARD
58
 
  AS_IF([test "$PCT_REQUIRE_CXX" = "yes"],[
 
70
  m4_if(PCT_REQUIRE_CXX, [yes], [
59
71
    AS_IF([test "$ac_cv_cxx_stdcxx_98" = "no"],[
60
72
      AC_MSG_ERROR([No working C++ Compiler has been found. ${PACKAGE} requires a C++ compiler that can handle C++98])
61
73
    ])
62
74
  ])
63
75
  
64
76
  PANDORA_SHARED_PTR
65
 
  AS_IF([test "$PCT_IGNORE_SHARED_PTR" = no],[
 
77
  m4_if(PCT_IGNORE_SHARED_PTR, [no], [
66
78
    AS_IF([test "$ac_cv_shared_ptr_namespace" = "missing"],[
67
79
      AC_MSG_WARN([a usable shared_ptr implementation was not found. Let someone know what your platform is.])
68
80
    ])
69
81
  ])
70
82
  
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
 
  ])
 
83
  m4_if(PCT_USE_GNULIB, [yes], [gl_INIT])
76
84
 
77
85
  AC_C_BIGENDIAN
78
86
  AC_C_CONST
86
94
  
87
95
 
88
96
  AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
 
97
 
 
98
  AC_SYS_LARGEFILE
 
99
 
 
100
  AS_IF([test "$GCC" = "yes"], PANDORA_ENSURE_GCC_VERSION)
 
101
 
89
102
  PANDORA_CHECK_C_VERSION
90
103
  PANDORA_CHECK_CXX_VERSION
91
104
 
92
 
  AC_SYS_LARGEFILE
93
 
 
94
 
  PANDORA_MAC_GCC42
95
 
 
96
105
  PANDORA_OPTIMIZE
97
106
  PANDORA_64BIT
98
 
  PANDORA_WARNINGS($PCT_ALL_ARGS)
 
107
  PANDORA_WARNINGS(PCT_ALL_ARGS)
99
108
 
100
109
  gl_VISIBILITY
101
110