1AC_PREREQ(2.54)
2
3AC_INIT(silgraphite, 2.3.1, silgraphite-devel@lists.sourceforge.net)
4AC_CONFIG_MACRO_DIR([m4])
5AC_CONFIG_SRCDIR(src/segment/GrEngine.cpp)
6AC_CONFIG_AUX_DIR(config)
7
8# setup automake
9AM_INIT_AUTOMAKE(foreign)
10AM_MAINTAINER_MODE
11
12# System checks.
13AC_CANONICAL_HOST
14AC_C_BIGENDIAN
15
16# Optional features
17AC_ARG_ENABLE(tracing,
18    AC_HELP_STRING([--disable-tracing],
19        [build without support for trace Graphite logs]))
20    test "x$enable_tracing" != xno && enable_tracing=yes
21
22AC_ARG_ENABLE(debug,
23    AC_HELP_STRING([--enable-debug],
24        [build with debugging. (default=no)]))
25AC_ARG_ENABLE(final,
26    AC_HELP_STRING([--disable-final],
27        [build without optimizations and no debugging.]))
28    test "x$enable_final" != xno && enable_final=yes
29AC_ARG_ENABLE(strict,
30    AC_HELP_STRING([--enable-strict],
31        [treat warnings as errors, check for as much as we can]))
32
33AC_ARG_ENABLE(profile,
34    AC_HELP_STRING([--enable-profile],
35        [allow profiling (default=no)]))
36AC_ARG_ENABLE(profilefn,
37    AC_HELP_STRING([--enable-profilefn],
38        [allow functioncheck profiling (default=no)]))
39
40# Checks for programs.
41AC_PROG_INSTALL
42AC_PROG_LIBTOOL
43AC_PROG_CC
44AC_PROG_CXX
45AC_LANG_CPLUSPLUS
46
47AC_PATH_PROG(LSB_RELEASE, lsb_release, no)
48
49# Checks for libraries.
50
51# Checks for header files.
52AC_HEADER_STDC
53
54# Checks for typedefs, structures, and compiler characteristics.
55AC_TYPE_SIZE_T
56AC_CHECK_SIZEOF(wchar_t)
57AC_SUBST(SIZEOF_WCHAR_T)
58
59AC_CHECK_FUNCS(fabsf)
60
61# Checks for library functions.
62
63# Setup the build compiler flags and linker flags.
64# Enable debug
65# (note: the flags here are gcc-specific and may fail with other compilers)
66build_flags=""
67if test "$enable_debug" = yes; then
68  build_flags="$build_flags -O0 -g -Wall -Wno-unknown-pragmas -Wparentheses"
69elif test "$enable_strict" = yes; then
70  build_flags="$build_flags -DNDEBUG -Wall -Wno-unknown-pragmas -Wparentheses -Werror"
71else
72  build_flags="$build_flags -DNDEBUG"
73fi
74
75# Enable Graphite Trace logs - these are only used if a
76# LayoutEnvironment has a valid ostream pointer
77if test "$enable_tracing" = yes; then
78  build_flags="$build_flags -DTRACING"
79fi
80
81# Enable final
82if test "$enable_final" = yes; then
83  build_flags="$build_flags -O3 -DNDEBUG"
84fi
85
86# Enable profile
87if test "$enable_profile" = yes; then
88  build_flags="$build_flags -pg "
89fi
90if test "$enable_profilefn" = yes; then
91  build_flags="$build_flags -g -finstrument-functions "
92  LIBS="$LIBS -g -finstrument-functions -lfnccheck "
93fi
94
95# Find distrib codename
96
97AC_MSG_CHECKING(if already have REL_CODENAME)
98if test -z "${REL_CODENAME}"; then
99	AC_MSG_RESULT(no)
100	AC_MSG_CHECKING(if have lsb_release)
101	if test "${LSB_RELEASE}" = "no"; then
102		AC_MSG_RESULT(no)
103		REL_CODENAME="unstable"
104	else
105		AC_MSG_RESULT(yes)
106		AC_MSG_CHECKING(if LSB_RELEASE is empty)
107		if test -z ${LSB_RELEASE}; then
108			AC_MSG_RESULT(yes)
109			REL_CODENAME="unstable"
110		else
111			AC_MSG_RESULT(no)
112			CODENAME=`${LSB_RELEASE} -c | sed -e 's/^\S*\s*//'`
113			AC_MSG_CHECKING(if release is sid)
114			if test ${CODENAME} = 'sid'; then
115				AC_MSG_RESULT(yes)
116				REL_CODENAME="unstable"
117			else
118				AC_MSG_RESULT(no, ${CODENAME})
119				REL_CODENAME=${CODENAME}
120			fi
121		fi
122	fi
123else
124	AC_MSG_RESULT(yes)
125fi
126
127AC_SUBST(REL_CODENAME)
128
129CFLAGS="$CFLAGS $build_flags"
130CXXFLAGS="$CXXFLAGS $build_flags"
131
132AC_CONFIG_FILES(Makefile \
133		silgraphite.pc:installed-top.pc.in:silgraphite.pc.in \
134		silgraphite-uninstalled.pc:uninstalled-top.pc.in:silgraphite.pc.in \
135		src/Makefile \
136		test/Makefile \
137		test/RegressionTest/Makefile \
138        test/ProfileHarness/Makefile)
139
140AC_OUTPUT
141