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