fixed gthread detection
[geeqie.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.  -*- Autoconf
2  -*-
3
4 dnl This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
5 dnl Copyright (C) 2008 The Geeqie team
6 dnl
7 dnl This program is free software; you can redistribute it and/or modify
8 dnl it under the terms of the GNU General Public License as published by
9 dnl the Free Software Foundation; either version 2 of the License, or
10 dnl (at your option) any later version.
11 dnl
12 dnl This program is distributed in the hope that it will be useful,
13 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
14 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 dnl GNU General Public License for more details.
16
17 AC_PREREQ(2.57)
18 AC_INIT(geeqie, 1.0alpha3, geeqie-devel@lists.sourceforge.net)
19
20 # Check for rightly dirs
21 AC_CONFIG_SRCDIR([src/main.c])
22
23 AC_CONFIG_AUX_DIR(auxdir)
24 AM_INIT_AUTOMAKE
25
26 AC_CONFIG_HEADER([config.h])
27
28 # Only for developers
29 AM_MAINTAINER_MODE
30
31 AC_ARG_ENABLE(developer, [
32 Development options:
33 AC_HELP_STRING([--enable-developer], [turn on developers mode [default=no]])],
34 [
35   __IS_DEVELOPER=yes
36 ],
37 [
38 if test "x${enable_developer}" != "xyes"
39 then
40   __IS_DEVELOPER=no
41 else
42   __IS_DEVELOPER=yes
43 fi
44 ])
45
46 #  Debug support
47 # ----------------------------------------------------------------------
48
49 dnl Debugging option
50 dnl FIXME: official release convert default to 'no'
51 dnl
52
53 AC_ARG_ENABLE([debug-flags], [
54 Development options:
55 AC_HELP_STRING([--enable-debug-flags], [use compiler flags for debugging [default=no]])], [],
56 [
57 if test "x${enable_developer}" != "xyes"
58 then
59   enable_debug_flags="no"
60 else
61   enable_debug_flags="yes"
62 fi
63 ])
64
65 AC_ARG_ENABLE([debug-log], [
66 Development options:
67 AC_HELP_STRING([--enable-debug-log], [enable debugging messages [default=yes]])], [], [enable_debug_log="yes"])
68
69 if test "x${enable_debug_flags}" != "xno"
70 then
71   CXXFLAGS="${CXXFLAGS} -g -O0 -Wunused-value -Wunused-variable -Wunused-function -Wunused-label -Wcomment -Wmissing-braces -Wparentheses -Wreturn-type -Wswitch -Wstrict-aliasing -Wextra -Wno-unused-parameter"
72   CFLAGS="${CFLAGS} -g -O0 -Wunused-value -Wunused-variable -Wunused-function -Wunused-label -Wcomment -Wimplicit-int -Werror-implicit-function-declaration -Wmissing-braces -Wparentheses -Wreturn-type -Wswitch -Wstrict-aliasing -Wextra -Wno-unused-parameter"
73   if test "x${enable_developer}" == "xyes"
74   then
75   CXXFLAGS="${CXXFLAGS} -Wall"
76   CFLAGS="${CFLAGS} -Wstrict-prototypes -Wall"
77   fi
78   __IS_DEBUG_FLAGS=yes
79 else
80   __IS_DEBUG_FLAGS=no
81 fi
82
83 if test "x${enable_debug_log}" != "xno"
84 then
85   AC_DEFINE(DEBUG,1,[Defined if Geeqie is compiled with debugging messages support])
86   __IS_DEBUG_LOG=yes
87 else
88   __IS_DEBUG_LOG=no
89 fi
90
91 AM_CONDITIONAL(DEBUG, test x$enable_debug_flags = xyes)
92
93 AC_ARG_ENABLE(deprecated, [
94 AC_HELP_STRING([--enable-deprecated], [turn off checking of deprecated functions [default=yes]])], [], 
95 [
96 if test "x${enable_developer}" != "xyes"
97 then
98   enable_deprecated="no"
99 else
100   enable_deprecated="yes"
101 fi
102 ])
103
104 if test "x${enable_deprecated}" != "xno"
105 then
106   CXXFLAGS="${CXXFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
107   CFLAGS="${CFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
108   __IS_DEPRECATED=yes
109 else
110   __IS_DEPRECATED=no
111 fi
112
113
114 AC_ISC_POSIX
115 AC_PROG_CC
116 AC_PROG_CXX
117 AC_STDC_HEADERS
118 AC_ARG_PROGRAM
119
120 dnl checks for functions
121 AC_CHECK_FUNCS(strverscmp access fsync fflush)
122
123
124 # Check target architecture
125
126 # Check for Win32
127 AC_MSG_CHECKING([for some Win32 platform])
128 case "$target_os" in
129   mingw* | cygwin*)
130     platform_win32=yes
131     AC_DEFINE(PLATFORM_WIN32, 1, [Build on win32 OS])
132     ;;
133   *)
134     platform_win32=no
135     ;;
136 esac
137 AC_MSG_RESULT([$platform_win32])
138 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
139
140 AC_MSG_CHECKING([for native Win32])
141 case "$target_os" in
142   mingw*)
143     os_win32=yes
144     AC_DEFINE(OS_WIN32, 1, [Build on native win32 OS])
145     os_unix=no
146     PATHSEP=';'
147     ;;
148   *)
149     os_win32=no
150     os_unix=yes
151     PATHSEP=':'
152     ;;
153 esac
154 AC_MSG_RESULT([$os_win32])
155 AC_SUBST(PATHSEP)
156 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
157 AM_CONDITIONAL(OS_UNIX, test "$os_unix" = "yes")
158
159 if test "$os_win32" = "yes"; then
160   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
161   AC_CHECK_TOOL(WINDRES, windres, :)
162 else
163   WINDRES=":"
164 fi
165
166 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
167 AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
168 AC_SUBST(WINDRES)
169
170 dnl reasonable guesses for where stuff is installed
171 if test "x$prefix" = "xNONE"; then
172   prefix="/usr/local"
173 else
174   prefix=$prefix
175 fi
176
177 AM_PATH_GLIB_2_0(2.4.0,,AC_MSG_ERROR(GLIB >= 2.4.0 not installed.))
178 AM_PATH_GTK_2_0(2.4.0,,AC_MSG_ERROR(GTK+ >= 2.4.0 not installed.))
179
180 threads="auto"
181 AC_ARG_ENABLE([threads],
182   AC_HELP_STRING([--disable-threads], [disable thread support]), [threads="${enableval}"])
183
184 have_gthread="no"
185 if test "x${threads}" != "xno" ; then
186   PKG_CHECK_MODULES(GTHREAD, [gthread-2.0], have_gthread="yes", [AC_MSG_WARN("No thread support in glib")])
187 fi
188
189 if test "x$have_gthread" != "xno"; then
190         AC_DEFINE(HAVE_GTHREAD, 1, Define if you have gthread library)
191         GLIB_CFLAGS="$GTHREAD_CFLAGS"
192         GLIB_LIBS="$GTHREAD_LIBS"
193 fi
194
195
196 AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
197 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
198
199 AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
200             readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
201 AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
202             htmldir=$withval, htmldir="$readmedir/html")
203
204 AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
205 AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
206
207 AC_SUBST(readmedir)
208 AC_SUBST(htmldir)
209
210 #  LIRC support
211 # ----------------------------------------------------------------------
212
213 dnl Check for LIRC client support
214 AC_MSG_CHECKING(if LIRC support is enabled)
215 lirc=no
216 AC_ARG_ENABLE([lirc],
217   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
218 [
219 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
220   AC_MSG_RESULT(yes)
221   lirc=yes
222 else
223   AC_MSG_RESULT(no)
224   lirc=no
225 fi], AC_MSG_RESULT(no))
226
227
228 AC_ARG_WITH(lirc-prefix,
229 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
230 [
231 for dir in `echo "$withval" | tr : ' '`; do
232   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
233   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
234   done
235 ])
236
237 HAVE_LIRC=no
238 if test "x${lirc}" != "xno" ; then
239   AC_CHECK_HEADER(lirc/lirc_client.h,
240     [AC_CHECK_LIB(lirc_client,lirc_init,[HAVE_LIRC=yes;LIBS=-llirc_client $LIBS;AC_DEFINE([HAVE_LIRC],[],[Define to 1 if LIRC must be used])],,)],)
241 fi
242 AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
243
244
245 #  LCMS support
246 # ----------------------------------------------------------------------
247
248 AC_ARG_ENABLE([lcms],
249   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
250     [liblcms=$enableval], [liblcms=auto])
251
252 if test "x${liblcms}" != "xno"; then
253   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
254     [
255       HAVE_LCMS=yes
256       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
257     ],
258     [
259       HAVE_LCMS=no
260       AC_MSG_WARN([$LCMS_PKG_ERRORS])
261     ])
262 else
263   HAVE_LCMS=disabled
264 fi
265         
266 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
267 AC_SUBST(LCMS_CFLAGS)
268 AC_SUBST(LCMS_LIBS)
269
270
271 #  Exiv2 support
272 # ----------------------------------------------------------------------
273
274 AC_ARG_ENABLE([exiv2],
275   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
276     [libexiv2=$enableval], [libexiv2=auto])
277
278 if test "x${libexiv2}" != "xno"; then
279   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
280     [
281       HAVE_EXIV2=yes
282       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
283     ],
284     [
285       HAVE_EXIV2=no
286       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
287     ])
288 else
289   HAVE_EXIV2=disabled
290 fi
291         
292 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
293 AC_SUBST(EXIV2_CFLAGS)
294 AC_SUBST(EXIV2_LIBS)
295
296
297 #  Gettext support
298 # ----------------------------------------------------------------------
299
300 dnl Set of available languages
301 ALL_LINGUAS="ar be bg ca cs da de eo es et eu fi fr hu id it ja ko nl nb pl pt_BR ro ru sk sl sv th tr uk vi zh_CN.GB2312 zh_TW"
302
303 GETTEXT_PACKAGE=$PACKAGE
304 AC_SUBST(GETTEXT_PACKAGE)
305 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
306 AM_GLIB_GNU_GETTEXT
307 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
308
309 AC_SUBST(CFLAGS)
310 AC_SUBST(CXXFLAGS)
311 AC_SUBST(CPPFLAGS)
312 AC_SUBST(LDFLAGS)
313
314
315 AH_TOP([
316 /** @file config.h
317  * autogenerated definition by autoheader.
318  * @author Bruclik
319  */
320  
321 /*
322  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
323  *  Copyright (C) 2008 The Geeqie team
324  *  
325  *  This program is free software; you can redistribute it and/or modify
326  *  it under the terms of the GNU General Public License as published by
327  *  the Free Software Foundation; either version 2 of the License, or 
328  *  (at your option) any later version.
329  *  
330  *  This program is distributed in the hope that it will be useful,
331  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
332  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
333  *  GNU General Public License for more details.
334  */ 
335  
336 #ifndef _INCLUDE_CONFIG_H
337 #define _INCLUDE_CONFIG_H
338 ])
339
340 AH_BOTTOM([#endif])
341
342 dnl Write the output
343 dnl
344
345 AC_CONFIG_FILES([
346     Makefile
347     src/Makefile
348     src/icons/Makefile
349     src/icons/svg/Makefile
350     po/Makefile.in
351     doc/Makefile
352     geeqie.spec
353 ])
354
355 AC_OUTPUT
356 dnl Print the results
357 dnl
358
359 cat > config.report << END
360
361      Config results:
362     -=-=-=-=-=-=-=-=-
363
364 Package:
365   Name:          $PACKAGE_NAME
366   Version:       $PACKAGE_VERSION
367   Patch version: $GQ_PATCH_VERSION
368   Date:          $GQ_PATCH_DATE
369
370 Architecture:
371   UNIX:          $os_unix
372   Win32:         $platform_win32 (native: $os_win32)
373
374 Flags:
375   Geeqie:        $GQ_CFLAGS
376   DEFS:          $DEFS
377   CPPFLAGS:      $__CPPFLAGS
378   CFLAGS:        $CFLAGS
379   CXXFLAGS:      $CXXFLAGS
380   Gtk:           $GTK_CFLAGS
381   Glib:          $GLIB_CFLAGS
382   Thread:        $GTHREAD_LIBS
383   Others:        $LCMS_LIBS $EXIV2_LIBS
384
385 Localization:
386   NLS support:   $USE_NLS
387   LINGUAS:       $LINGUAS
388
389 Settings:
390   Developer:     $__IS_DEVELOPER
391   Debug flags:   $__IS_DEBUG_FLAGS
392   Debug log:     $__IS_DEBUG_LOG
393   Deprecated:    $__IS_DEPRECATED
394
395 Support:
396   LCMS:          $HAVE_LCMS
397   Exiv2:         $HAVE_EXIV2
398   Lirc:          $HAVE_LIRC
399
400 Documentation:
401   Doxygen:       $DOXYGEN
402   Formats:       $doxy_formats_report
403 END
404
405 cat config.report
406 cat <<EOF
407
408   Now you can type "make" to build Geeqie
409   (or you take blue pill and the story ends :)
410
411 EOF
412