1## $Id: configure.in,v 1.95 2004/05/03 16:37:18 christof Exp $
2#
3# process this file with GNU autoconf to produce a configure script.
4#
5# parts taken from gtkmm, LPRng,
6
7AC_PREREQ(2.50)
8AC_INIT(src/glade--.cc)
9
10AM_INIT_AUTOMAKE(glademm, 2.6.0)
11AC_CONFIG_HEADERS(config.h)
12
13#CXXFLAGS="-g -Wall"
14# omit -O2 while programming
15
16#INCLUDES=-I/home/share/safeSTL
17
18AC_PREFIX_DEFAULT(/usr/local)
19
20AC_PROG_CXX
21AM_PROG_LIBTOOL
22AC_LANG_CPLUSPLUS
23
24AC_CHECK_FUNCS(strsep getopt_long)
25AC_C_CHAR_UNSIGNED
26
27AC_MSG_CHECKING(if C++ compiler supports bool)
28AC_TRY_COMPILE(
29[
30],[
31   bool b=true;
32   bool b1=false;
33],[
34  ac_bool=yes
35],[
36  AC_ERROR(bool type is not supported by your compiler)
37])
38AC_MSG_RESULT([$ac_bool])
39
40
41AC_MSG_CHECKING(if C++ compiler supports templates well enough)
42AC_TRY_LINK(
43[
44class foo { public: int a(float,int,int,foo*,foo**) { return 0; } };
45template<class rettype, class T, class P1, class P2, class P3, class P4, class P5>
46class k {
47public:
48   rettype (T::*method)(P1,P2,P3,P4,P5);
49};
50],[
51  k<int,foo,float,int,int,foo*,foo**> a;
52],
53 ,[
54  AC_ERROR(your C++ compiler does not support templates well enough)
55])
56AC_MSG_RESULT([ok])
57
58AC_HEADER_STDC
59AC_CHECK_HEADER(unistd.h)
60AC_CHECK_HEADER(string.h)
61
62# check for FullQualifiedDomainName function ... sigh ... why isn't this standard?
63AC_MSG_CHECKING(whether utsname contains domainname without tricks)
64AC_TRY_COMPILE(
65[
66#include <sys/utsname.h>
67],[
68   struct utsname uts;
69   char *domainname=uts.domainname;
70],[
71   ac_domainname_standard=yes
72   AC_DEFINE(HAS_DOMAINNAME)
73])
74AC_MSG_RESULT([$ac_domainname_standard])
75
76if test ! "x$ac_domainname_standard" = "xyes" ; then
77AC_MSG_CHECKING(whether utsname contains domainname when _GNU_SOURCE is set)
78save_CXXFLAGS="$CXXFLAGS"
79CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE"
80AC_TRY_COMPILE(
81[
82#include <sys/utsname.h>
83],[
84   struct utsname uts;
85   char *domainname=uts.domainname;
86],[
87   ac_domainname_gnusrc=yes
88   AC_DEFINE(HAS_DOMAINNAME)
89   AC_DEFINE(_GNU_SOURCE)
90])
91CXXFLAGS="$save_CXXFLAGS"
92AC_MSG_RESULT([$ac_domainname_gnusrc])
93fi
94
95if test "x$ac_domainname_standard" != "xyes" \
96		-a "x$ac_domainname_gnusrc$" != "xyes" ; then
97AC_MSG_CHECKING(whether utsname contains domainname when __USE_GNU is set)
98save_CXXFLAGS="$CXXFLAGS"
99CXXFLAGS="$CXXFLAGS -D__USE_GNU"
100AC_TRY_COMPILE(
101[
102#include <sys/utsname.h>
103],[
104   struct utsname uts;
105   char *domainname=uts.domainname;
106],[
107   ac_domainname_usegnu=yes
108   AC_DEFINE(HAS_DOMAINNAME)
109   AC_DEFINE(__USE_GNU)
110])
111CXXFLAGS="$save_CXXFLAGS"
112AC_MSG_RESULT([$ac_domainname_usegnu])
113fi
114
115# check for real name
116AC_MSG_CHECKING(whether passwd struct contains real name)
117AC_TRY_COMPILE(
118[
119#include <pwd.h>
120],[
121   struct passwd pw;
122   char *realname=pw.pw_gecos;
123],[
124   ac_realname=pw_gecos
125   AC_DEFINE(HAS_REAL_NAME,pw_gecos,
126   [define this to the name of the real name item in struct passwd (pwd.h)])
127])
128AC_MSG_RESULT([$ac_realname])
129
130AC_DEFUN(GMM_PARSE_VERSION, [
131if test -z "$$1_MAJOR"
132then
133  GMM_VER="$2"
134  case "$GMM_VER" in
135    *.*.*)
136	$1_MAJOR=`echo "$GMM_VER" | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
137	$1_MINOR=`echo "$GMM_VER" | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
138	$1_MICRO=`echo "$GMM_VER" | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
139    ;;
140  esac
141fi
142])
143
144AC_MSG_CHECKING([installed gtk1 version (not needed)])
145GMM_PARSE_VERSION(GTK,`gtk-config --version`)
146if test -z "$GTK_MAJOR"
147then
148  	AC_MSG_WARN([Can't determine your gtk1 version, assuming])
149  	GTK_MAJOR=1 ; GTK_MINOR=2 ; GTK_MICRO=2
150fi
151AC_MSG_RESULT([$GTK_MAJOR.$GTK_MINOR.$GTK_MICRO])
152AC_DEFINE_UNQUOTED(GTK_MAJOR,$GTK_MAJOR)
153AC_DEFINE_UNQUOTED(GTK_MINOR,$GTK_MINOR)
154AC_DEFINE_UNQUOTED(GTK_MICRO,$GTK_MICRO)
155
156AC_MSG_CHECKING(installed gtk2 version)
157GMM_PARSE_VERSION(GTK2,`pkg-config --silence-errors --modversion gtk+-2.0`)
158GMM_PARSE_VERSION(GTK2,`pkg-config --silence-errors --modversion gtk+`)
159if test -z "$GTK2_MAJOR"
160then
161  	AC_MSG_WARN([Can't determine your gtk2 version, assuming])
162  	GTK2_MAJOR=1 ; GTK2_MINOR=3 ; GTK2_MICRO=0
163fi
164AC_MSG_RESULT([$GTK2_MAJOR.$GTK2_MINOR.$GTK2_MICRO])
165AC_DEFINE_UNQUOTED(GTK2_MAJOR,$GTK2_MAJOR)
166AC_DEFINE_UNQUOTED(GTK2_MINOR,$GTK2_MINOR)
167AC_DEFINE_UNQUOTED(GTK2_MICRO,$GTK2_MICRO)
168
169AC_MSG_CHECKING([installed gtk-- version (not needed)])
170GMM_PARSE_VERSION(GTKMM,`gtkmm-config --version`)
171if test -z "$GTKMM_MAJOR"
172then
173  	AC_MSG_WARN([Can't determine your gtkmm version, assuming])
174  	GTKMM_MAJOR=1 ; GTKMM_MINOR=0 ; GTKMM_MICRO=0
175fi
176AC_MSG_RESULT([$GTKMM_MAJOR.$GTKMM_MINOR.$GTKMM_MICRO])
177AC_DEFINE_UNQUOTED(GTKMM_MAJOR,$GTKMM_MAJOR)
178AC_DEFINE_UNQUOTED(GTKMM_MINOR,$GTKMM_MINOR)
179AC_DEFINE_UNQUOTED(GTKMM_MICRO,$GTKMM_MICRO)
180
181AC_MSG_CHECKING([installed gtkmm-2 version (not needed)])
182GMM_PARSE_VERSION(GTKMM2,`pkg-config --silence-errors --modversion gtkmm-2.4`)
183if test -z "$GTKMM2_MAJOR"
184then
185  GMM_PARSE_VERSION(GTKMM2,`pkg-config --silence-errors --modversion gtkmm-2.0`)
186fi
187if test -z "$GTKMM2_MAJOR"
188then
189  	AC_MSG_WARN([Can't determine your gtkmm2 version, assuming])
190  	GTKMM2_MAJOR=1 ; GTKMM2_MINOR=3 ; GTKMM2_MICRO=0
191fi
192AC_MSG_RESULT([$GTKMM2_MAJOR.$GTKMM2_MINOR.$GTKMM2_MICRO])
193AC_DEFINE_UNQUOTED(GTKMM2_MAJOR,$GTKMM2_MAJOR)
194AC_DEFINE_UNQUOTED(GTKMM2_MINOR,$GTKMM2_MINOR)
195AC_DEFINE_UNQUOTED(GTKMM2_MICRO,$GTKMM2_MICRO)
196
197if test ! "x$ac_domainname_standard" = "x" -a ! "x$ac_domainname_gnusrc" = "x" ; then
198AC_MSG_CHECKING(whether utsname contains domainname when __USE_GNU is set)
199AC_TRY_COMPILE(
200[
201#define __USE_GNU
202#include <sys/utsname.h>
203],[
204   struct utsname uts;
205   char *domainname=uts.domainname;
206],[
207   ac_domainname_usegnu=yes
208   AC_DEFINE(HAS_DOMAINNAME)
209   AC_DEFINE(__USE_GNU)
210])
211AC_MSG_RESULT([$ac_domainname_usegnu])
212fi
213
214
215# look for gnomemmConf.sh
216AC_MSG_CHECKING([for gnome-- 1.x version (not needed)])
217# --modversion gnomemm might work as well but gives less
218# 	information if it fails
219gnomelib=`gnome-config --libdir`
220if test "x$gnomelib" = "x" ; then
221    AC_MSG_RESULT(gnome-config not found)
222elif test -r "$gnomelib/gnomemmConf.sh"
223then
224    source $gnomelib/gnomemmConf.sh
225    if test "x$MODULE_VERSION" = "x"
226    then
227	AC_MSG_RESULT(no version info available)
228    else
229	# pkg-config for 2.0?
230	MODULE_VERSION=`echo "$MODULE_VERSION" | sed 's/gnomemm-//'`
231	GMM_PARSE_VERSION(GNOMEMM,$MODULE_VERSION)
232	AC_MSG_RESULT([$GNOMEMM_MAJOR.$GNOMEMM_MINOR.$GNOMEMM_MICRO])
233	AC_DEFINE_UNQUOTED(GNOMEMM_MAJOR,$GNOMEMM_MAJOR)
234	AC_DEFINE_UNQUOTED(GNOMEMM_MINOR,$GNOMEMM_MINOR)
235	AC_DEFINE_UNQUOTED(GNOMEMM_MICRO,$GNOMEMM_MICRO)
236    fi
237else
238    AC_MSG_RESULT(gnomemmConf.sh not found)
239fi
240
241MODULE_VERSION="`pkg-config --modversion libgnomemm-2.0`"
242if test "$MODULE_VERSION" != ""; then
243    GMM_PARSE_VERSION(LIBGNOMEMM,$MODULE_VERSION)
244    AC_MSG_RESULT([$LIBGNOMEMM_MAJOR.$LIBGNOMEMM_MINOR.$LIBGNOMEMM_MICRO])
245    AC_DEFINE_UNQUOTED(LIBGNOMEMM_MAJOR,$LIBGNOMEMM_MAJOR)
246    AC_DEFINE_UNQUOTED(LIBGNOMEMM_MINOR,$LIBGNOMEMM_MINOR)
247    AC_DEFINE_UNQUOTED(LIBGNOMEMM_MICRO,$LIBGNOMEMM_MICRO)
248fi
249MODULE_VERSION="`pkg-config --modversion libgnomeuimm-2.0`"
250if test "$MODULE_VERSION" != ""; then
251    GMM_PARSE_VERSION(LIBGNOMEUIMM,$MODULE_VERSION)
252    AC_MSG_RESULT([$LIBGNOMEUIMM_MAJOR.$LIBGNOMEUIMM_MINOR.$LIBGNOMEUIMM_MICRO])
253    AC_DEFINE_UNQUOTED(LIBGNOMEUIMM_MAJOR,$LIBGNOMEUIMM_MAJOR)
254    AC_DEFINE_UNQUOTED(LIBGNOMEUIMM_MINOR,$LIBGNOMEUIMM_MINOR)
255    AC_DEFINE_UNQUOTED(LIBGNOMEUIMM_MICRO,$LIBGNOMEUIMM_MICRO)
256fi
257
258MODULE_VERSION="`pkg-config --modversion libbonobomm-2.0`"
259if test "$MODULE_VERSION" != ""; then
260    GMM_PARSE_VERSION(LIBBONOBOMM,$MODULE_VERSION)
261    AC_MSG_RESULT([$LIBBONOBOMM_MAJOR.$LIBBONOBOMM_MINOR.$LIBBONOBOMM_MICRO])
262    AC_DEFINE_UNQUOTED(LIBBONOBOMM_MAJOR,$LIBBONOBOMM_MAJOR)
263    AC_DEFINE_UNQUOTED(LIBBONOBOMM_MINOR,$LIBBONOBOMM_MINOR)
264    AC_DEFINE_UNQUOTED(LIBBONOBOMM_MICRO,$LIBBONOBOMM_MICRO)
265fi
266MODULE_VERSION="`pkg-config --modversion libbonobouimm-2.0`"
267if test "$MODULE_VERSION" != ""; then
268    GMM_PARSE_VERSION(LIBBONOBOUIMM,$MODULE_VERSION)
269    AC_MSG_RESULT([$LIBBONOBOUIMM_MAJOR.$LIBBONOBOUIMM_MINOR.$LIBBONOBOUIMM_MICRO])
270    AC_DEFINE_UNQUOTED(LIBBONOBOUIMM_MAJOR,$LIBBONOBOUIMM_MAJOR)
271    AC_DEFINE_UNQUOTED(LIBBONOBOUIMM_MINOR,$LIBBONOBOUIMM_MINOR)
272    AC_DEFINE_UNQUOTED(LIBBONOBOUIMM_MICRO,$LIBBONOBOUIMM_MICRO)
273fi
274
275myprefix="$prefix"
276if test "$myprefix" = "NONE" ; then myprefix=$ac_default_prefix ; fi
277myprefix="\"$myprefix\""
278AC_DEFINE_UNQUOTED(PREFIX,$myprefix,"directory tree this program will get installed into")
279
280AC_OUTPUT(Makefile src/Makefile src/writers/Makefile tests/Makefile \
281	docs/Makefile docs/old/Makefile \
282	src/SourceWriter/Makefile \
283	glademm.spec )
284