separated debugging log and debug CFLAGS
[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.0alpha1, 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 -W"
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 -W"
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 have_libpthread=no
171 AC_CHECK_LIB([pthread], [main],
172   [AC_CHECK_HEADER([pthread.h],
173      have_libpthread=yes,
174      have_libpthread=no)],
175   [AC_MSG_ERROR([Can't find the POSIX thread libraries])], [-lpthread])
176 if test "x${have_libpthread}" = "xyes"; then
177         LIBPTHREAD='-lpthread'
178         AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if pthread is available])
179 else
180   AC_MSG_WARN([POSIX thread header not installed])
181 fi
182 AC_MSG_CHECKING(for libpthread)
183 AC_MSG_RESULT([${have_libpthread}])
184
185 dnl reasonable guesses for where stuff is installed
186 if test "x$prefix" = "xNONE"; then
187   prefix="/usr/local"
188 else
189   prefix=$prefix
190 fi
191
192 AM_PATH_GTK_2_0(2.4.0,,AC_MSG_ERROR(GTK+ >= 2.4.0 not installed.))
193 AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
194
195 AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
196             readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
197 AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
198             htmldir=$withval, htmldir="$readmedir/html")
199
200 AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
201 AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
202
203 AC_SUBST(readmedir)
204 AC_SUBST(htmldir)
205
206 #  LIRC support
207 # ----------------------------------------------------------------------
208
209 dnl Check for LIRC client support
210 AC_MSG_CHECKING(if LIRC support is enabled)
211 lirc=no
212 AC_ARG_ENABLE([lirc],
213   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
214 [
215 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
216   AC_MSG_RESULT(yes)
217   lirc=yes
218 else
219   AC_MSG_RESULT(no)
220   lirc=no
221 fi], AC_MSG_RESULT(no))
222
223
224 AC_ARG_WITH(lirc-prefix,
225 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
226 [
227 for dir in `echo "$withval" | tr : ' '`; do
228   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
229   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
230   done
231 ])
232
233 HAVE_LIRC=no
234 if test "x${lirc}" != "xno" ; then
235   AC_CHECK_HEADER(lirc/lirc_client.h,
236     [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])],,)],)
237 fi
238 AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
239
240
241 #  LCMS support
242 # ----------------------------------------------------------------------
243
244 AC_ARG_ENABLE([lcms],
245   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
246     [liblcms=$enableval], [liblcms=auto])
247
248 if test "x${liblcms}" != "xno"; then
249   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
250     [
251       HAVE_LCMS=yes
252       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
253     ],
254     [
255       HAVE_LCMS=no
256       AC_MSG_WARN([$LCMS_PKG_ERRORS])
257     ])
258 else
259   HAVE_LCMS=disabled
260 fi
261         
262 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
263 AC_SUBST(LCMS_CFLAGS)
264 AC_SUBST(LCMS_LIBS)
265
266
267 #  Exiv2 support
268 # ----------------------------------------------------------------------
269
270 AC_ARG_ENABLE([exiv2],
271   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
272     [libexiv2=$enableval], [libexiv2=auto])
273
274 if test "x${libexiv2}" != "xno"; then
275   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
276     [
277       HAVE_EXIV2=yes
278       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
279     ],
280     [
281       HAVE_EXIV2=no
282       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
283     ])
284 else
285   HAVE_EXIV2=disabled
286 fi
287         
288 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
289 AC_SUBST(EXIV2_CFLAGS)
290 AC_SUBST(EXIV2_LIBS)
291
292
293 #  Gettext support
294 # ----------------------------------------------------------------------
295
296 dnl Set of available languages
297 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"
298
299 GETTEXT_PACKAGE=$PACKAGE
300 AC_SUBST(GETTEXT_PACKAGE)
301 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
302 AM_GLIB_GNU_GETTEXT
303 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
304
305 AC_SUBST(CFLAGS)
306 AC_SUBST(CXXFLAGS)
307 AC_SUBST(CPPFLAGS)
308 AC_SUBST(LDFLAGS)
309
310
311 AH_TOP([
312 /** @file config.h
313  * autogenerated definition by autoheader.
314  * @author Bruclik
315  */
316  
317 /*
318  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
319  *  Copyright (C) 2008 The Geeqie team
320  *  
321  *  This program is free software; you can redistribute it and/or modify
322  *  it under the terms of the GNU General Public License as published by
323  *  the Free Software Foundation; either version 2 of the License, or 
324  *  (at your option) any later version.
325  *  
326  *  This program is distributed in the hope that it will be useful,
327  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
328  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
329  *  GNU General Public License for more details.
330  */ 
331  
332 #ifndef _INCLUDE_CONFIG_H
333 #define _INCLUDE_CONFIG_H
334 ])
335
336 AH_BOTTOM([#endif])
337
338 dnl Write the output
339 dnl
340
341 AC_CONFIG_FILES([
342     Makefile
343     src/Makefile
344     src/icons/Makefile
345     src/icons/svg/Makefile
346     po/Makefile.in
347     doc/Makefile
348     geeqie.spec
349 ])
350
351 AC_OUTPUT
352 dnl Print the results
353 dnl
354
355 cat > config.report << END
356
357      Config results:
358     -=-=-=-=-=-=-=-=-
359
360 Package:
361   Name:          $PACKAGE_NAME
362   Version:       $PACKAGE_VERSION
363   Patch version: $GQ_PATCH_VERSION
364   Date:          $GQ_PATCH_DATE
365
366 Architecture:
367   UNIX:          $os_unix
368   Win32:         $platform_win32 (native: $os_win32)
369
370 Flags:
371   Geeqie:        $GQ_CFLAGS
372   DEFS:          $DEFS
373   CPPFLAGS:      $__CPPFLAGS
374   CFLAGS:        $CFLAGS
375   CXXFLAGS:      $CXXFLAGS
376   Gtk:           $GTK_CFLAGS
377   Glib:          $GLIB_CFLAGS
378   Thread:        $LIBPTHREAD
379   Others:        $LCMS_LIBS $EXIV2_LIBS
380
381 Localization:
382   NLS support:   $USE_NLS
383   LINGUAS:       $LINGUAS
384
385 Settings:
386   Developer:     $__IS_DEVELOPER
387   Debug flags:   $__IS_DEBUG_FLAGS
388   Debug log:     $__IS_DEBUG_LOG
389   Deprecated:    $__IS_DEPRECATED
390
391 Support:
392   LCMS:          $HAVE_LCMS
393   Exiv2:         $HAVE_EXIV2
394   Lirc:          $HAVE_LIRC
395
396 Documentation:
397   Doxygen:       $DOXYGEN
398   Formats:       $doxy_formats_report
399 END
400
401 cat config.report
402 cat <<EOF
403
404   Now you can type "make" to build Geeqie
405   (or you take blue pill and the story ends :)
406
407 EOF
408