do not install helper scripts into /usr/bin
[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 - 2009 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.0beta1, 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 DX_HTML_FEATURE(ON)
47 DX_CHM_FEATURE(OFF)
48 DX_CHI_FEATURE(OFF)
49 DX_MAN_FEATURE(OFF)
50 DX_RTF_FEATURE(OFF)
51 DX_XML_FEATURE(OFF)
52 DX_PDF_FEATURE(OFF)
53 DX_PS_FEATURE(OFF)
54
55 DX_INIT_DOXYGEN($PACKAGE_NAME, doxygen.conf, doc/doxygen)
56
57 #  Debug support
58 # ----------------------------------------------------------------------
59
60 dnl Debugging option
61 dnl FIXME: official release convert default to 'no'
62 dnl
63
64 AC_ARG_ENABLE([debug-flags], [
65 Development options:
66 AC_HELP_STRING([--enable-debug-flags], [use compiler flags for debugging [default=no]])], [],
67 [
68 if test "x${enable_developer}" != "xyes"
69 then
70   enable_debug_flags="no"
71 else
72   enable_debug_flags="yes"
73 fi
74 ])
75
76 AC_ARG_ENABLE([debug-log], [
77 Development options:
78 AC_HELP_STRING([--enable-debug-log], [enable debugging messages [default=yes]])], [], [enable_debug_log="yes"])
79
80 if test "x${enable_debug_flags}" != "xno"
81 then
82   if test "x${enable_developer}" == "xyes"
83   then
84     CXXFLAGS="${CXXFLAGS} -Wall"
85     CFLAGS="${CFLAGS} -Wstrict-prototypes -Wall"
86   fi
87   __COMMONFLAGS="-g -O0 -Wextra -Wunused-value -Wunused-variable -Wunused-function -Wunused-label -Wcomment -Wmissing-braces -Wparentheses -Wreturn-type -Wswitch -Wstrict-aliasing -Wno-unused-parameter -Wformat -Wformat-security -DGQ_DEBUG_PATH_UTF8=1"
88   CXXFLAGS="${CXXFLAGS} ${__COMMONFLAGS}"
89   CFLAGS="${CFLAGS} ${__COMMONFLAGS} -Wimplicit-int -Werror-implicit-function-declaration"
90   __IS_DEBUG_FLAGS=yes
91 else
92   __IS_DEBUG_FLAGS=no
93 fi
94
95 if test "x${enable_debug_log}" != "xno"
96 then
97   AC_DEFINE(DEBUG,1,[Defined if Geeqie is compiled with debugging messages support])
98   __IS_DEBUG_LOG=yes
99 else
100   __IS_DEBUG_LOG=no
101 fi
102
103 AM_CONDITIONAL(DEBUG, test x$enable_debug_flags = xyes)
104
105 AC_ARG_ENABLE(deprecated, [
106 AC_HELP_STRING([--enable-deprecated], [turn off checking of deprecated functions [default=yes]])], [], 
107 [
108 if test "x${enable_developer}" != "xyes"
109 then
110   enable_deprecated="no"
111 else
112   enable_deprecated="yes"
113 fi
114 ])
115
116 if test "x${enable_deprecated}" != "xno"
117 then
118   CXXFLAGS="${CXXFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
119   CFLAGS="${CFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
120   __IS_DEPRECATED=yes
121 else
122   __IS_DEPRECATED=no
123 fi
124
125
126 AC_ISC_POSIX
127 AC_PROG_CC
128 AC_PROG_CXX
129 AC_STDC_HEADERS
130 AC_ARG_PROGRAM
131
132 dnl checks for functions
133 AC_CHECK_FUNCS(strverscmp access fsync fflush)
134
135
136 # Check target architecture
137
138 # Check for Win32
139 AC_MSG_CHECKING([for some Win32 platform])
140 case "$target_os" in
141   mingw* | cygwin*)
142     platform_win32=yes
143     AC_DEFINE(PLATFORM_WIN32, 1, [Build on win32 OS])
144     ;;
145   *)
146     platform_win32=no
147     ;;
148 esac
149 AC_MSG_RESULT([$platform_win32])
150 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
151
152 AC_MSG_CHECKING([for native Win32])
153 case "$target_os" in
154   mingw*)
155     os_win32=yes
156     AC_DEFINE(OS_WIN32, 1, [Build on native win32 OS])
157     os_unix=no
158     PATHSEP=';'
159     ;;
160   *)
161     os_win32=no
162     os_unix=yes
163     PATHSEP=':'
164     ;;
165 esac
166 AC_MSG_RESULT([$os_win32])
167 AC_SUBST(PATHSEP)
168 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
169 AM_CONDITIONAL(OS_UNIX, test "$os_unix" = "yes")
170
171 if test "$os_win32" = "yes"; then
172   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
173   AC_CHECK_TOOL(WINDRES, windres, :)
174 else
175   WINDRES=":"
176 fi
177
178 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
179 AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
180 AC_SUBST(WINDRES)
181
182 dnl reasonable guesses for where stuff is installed
183 if test "x$prefix" = "xNONE"; then
184   prefix="/usr/local"
185 else
186   prefix=$prefix
187 fi
188
189 AM_PATH_GLIB_2_0(2.4.0,,AC_MSG_ERROR(GLIB >= 2.4.0 not installed.))
190 AM_PATH_GTK_2_0(2.4.0,,AC_MSG_ERROR(GTK+ >= 2.4.0 not installed.))
191
192 threads="auto"
193 AC_ARG_ENABLE([threads],
194   AC_HELP_STRING([--disable-threads], [disable thread support]), [threads="${enableval}"])
195
196 have_gthread="no"
197 if test "x${threads}" != "xno" ; then
198   PKG_CHECK_MODULES(GTHREAD, [gthread-2.0], have_gthread="yes", [AC_MSG_WARN("No thread support in glib")])
199 fi
200
201 if test "x$have_gthread" != "xno"; then
202         AC_DEFINE(HAVE_GTHREAD, 1, Define if you have gthread library)
203         GLIB_CFLAGS="$GTHREAD_CFLAGS"
204         GLIB_LIBS="$GTHREAD_LIBS"
205 fi
206
207
208 AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
209 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
210
211 AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
212             readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
213 AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
214             htmldir=$withval, htmldir="$readmedir/html")
215
216 AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
217 AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
218
219 AC_SUBST(readmedir)
220 AC_SUBST(htmldir)
221
222 eval "eval appdir=${datadir}/${PACKAGE}"
223 AC_DEFINE_UNQUOTED([GQ_APP_DIR], "$appdir", [Location of application data])
224
225 eval "eval gq_bindir=${prefix}/lib/${PACKAGE}"
226 AC_DEFINE_UNQUOTED([GQ_BIN_DIR], "$gq_bindir", [Location of helper scripts and executables])
227
228 #  LIRC support
229 # ----------------------------------------------------------------------
230
231 dnl Check for LIRC client support
232 AC_MSG_CHECKING(if LIRC support is enabled)
233 lirc=no
234 AC_ARG_ENABLE([lirc],
235   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
236 [
237 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
238   AC_MSG_RESULT(yes)
239   lirc=yes
240 else
241   AC_MSG_RESULT(no)
242   lirc=no
243 fi], AC_MSG_RESULT(no))
244
245
246 AC_ARG_WITH(lirc-prefix,
247 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
248 [
249 for dir in `echo "$withval" | tr : ' '`; do
250   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
251   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
252   done
253 ])
254
255 HAVE_LIRC=no
256 if test "x${lirc}" != "xno" ; then
257   AC_CHECK_HEADER(lirc/lirc_client.h,
258     [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])],,)],)
259 fi
260 AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
261
262
263 #  LCMS support
264 # ----------------------------------------------------------------------
265
266 AC_ARG_ENABLE([lcms],
267   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
268     [liblcms=$enableval], [liblcms=auto])
269
270 if test "x${liblcms}" != "xno"; then
271   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
272     [
273       HAVE_LCMS=yes
274       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
275     ],
276     [
277       HAVE_LCMS=no
278       AC_MSG_WARN([$LCMS_PKG_ERRORS])
279     ])
280 else
281   HAVE_LCMS=disabled
282 fi
283         
284 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
285 AC_SUBST(LCMS_CFLAGS)
286 AC_SUBST(LCMS_LIBS)
287
288
289 #  Exiv2 support
290 # ----------------------------------------------------------------------
291
292 AC_ARG_ENABLE([exiv2],
293   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
294     [libexiv2=$enableval], [libexiv2=auto])
295
296 if test "x${libexiv2}" != "xno"; then
297   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
298     [
299       HAVE_EXIV2=yes
300       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
301     ],
302     [
303       HAVE_EXIV2=no
304       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
305     ])
306 else
307   HAVE_EXIV2=disabled
308 fi
309         
310 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
311 AC_SUBST(EXIV2_CFLAGS)
312 AC_SUBST(EXIV2_LIBS)
313
314
315 #  Gettext support
316 # ----------------------------------------------------------------------
317
318 dnl Set of available languages
319 ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
320 AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
321
322 GETTEXT_PACKAGE=$PACKAGE
323 AC_SUBST(GETTEXT_PACKAGE)
324 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
325 AM_GLIB_GNU_GETTEXT
326 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
327
328 AC_SUBST(CFLAGS)
329 AC_SUBST(CXXFLAGS)
330 AC_SUBST(CPPFLAGS)
331 AC_SUBST(LDFLAGS)
332
333
334 #  Libchamplain support - used for GPS map facility - experimental
335 # ----------------------------------------------------------------------
336
337 AC_ARG_ENABLE([gps],
338   AC_HELP_STRING([--enable-gps], [enable GPS map support - experimental]),
339     [libgps=$enableval], [libgps=auto])
340
341 if test "x${libgps}" == "xyes"; then
342   PKG_CHECK_MODULES(LIBCHAMPLAIN, [champlain-0.3 >= 0.3],
343     [
344       HAVE_LIBCHAMPLAIN=yes
345       AC_DEFINE(HAVE_LIBCHAMPLAIN, 1, [define to enable use of GPS maps])
346     ],
347     [
348       HAVE_LIBCHAMPLAIN=no
349       AC_MSG_WARN([$LIBCHAMPLAIN_PKG_ERRORS])
350     ])
351 else
352   HAVE_LIBCHAMPLAIN=disabled
353 fi
354
355 if test "x${libgps}" == "xyes"; then
356   PKG_CHECK_MODULES(LIBCHAMPLAIN_GTK, [champlain-gtk-0.3 >= 0.3],
357     [
358       HAVE_LIBCHAMPLAIN_GTK=yes
359       AC_DEFINE(HAVE_LIBCHAMPLAIN_GTK, 1, [define to enable use of GPS maps])
360     ],
361     [
362       HAVE_LIBCHAMPLAIN_GTK=no
363       AC_MSG_WARN([$LIBCHAMPLAIN_GTK_PKG_ERRORS])
364     ])
365 else
366   HAVE_LIBCHAMPLAIN_GTK=disabled
367 fi
368         
369 AM_CONDITIONAL(HAVE_LIBCHAMPLAIN_GTK, [test "x$HAVE_LIBCHAMPLAIN_GTK" = xyes])
370 AC_SUBST(LIBCHAMPLAIN_GTK_CFLAGS)
371 AC_SUBST(LIBCHAMPLAIN_GTK_LIBS)
372
373 AH_TOP([
374 /** @file config.h
375  * autogenerated definition by autoheader.
376  * @author Bruclik
377  */
378  
379 /*
380  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
381  *  Copyright (C) 2008 - 2009 The Geeqie Team
382  *  
383  *  This program is free software; you can redistribute it and/or modify
384  *  it under the terms of the GNU General Public License as published by
385  *  the Free Software Foundation; either version 2 of the License, or 
386  *  (at your option) any later version.
387  *  
388  *  This program is distributed in the hope that it will be useful,
389  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
390  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
391  *  GNU General Public License for more details.
392  */ 
393  
394 #ifndef _INCLUDE_CONFIG_H
395 #define _INCLUDE_CONFIG_H
396 ])
397
398 AH_BOTTOM([#endif])
399
400 dnl Write the output
401 dnl
402
403 AC_CONFIG_FILES([
404     Makefile
405     src/Makefile
406     src/icons/Makefile
407     src/icons/svg/Makefile
408     po/Makefile.in
409     doc/Makefile
410     plugins/Makefile
411     plugins/symlink/Makefile
412     plugins/rotate/Makefile
413     geeqie.spec
414 ])
415
416 AC_OUTPUT
417 dnl Print the results
418 dnl
419
420 cat > config.report << END
421
422      Config results:
423     -=-=-=-=-=-=-=-=-
424
425 Package:
426   Name:          $PACKAGE_NAME
427   Version:       $PACKAGE_VERSION
428   Patch version: $GQ_PATCH_VERSION
429   Date:          $GQ_PATCH_DATE
430
431 Architecture:
432   UNIX:          $os_unix
433   Win32:         $platform_win32 (native: $os_win32)
434
435 Flags:
436   Geeqie:        $GQ_CFLAGS
437   DEFS:          $DEFS
438   CPPFLAGS:      $__CPPFLAGS
439   CFLAGS:        $CFLAGS
440   CXXFLAGS:      $CXXFLAGS
441   Gtk:           $GTK_CFLAGS
442   Glib:          $GLIB_CFLAGS
443   Thread:        $GTHREAD_LIBS
444   Others:        $LCMS_LIBS $EXIV2_LIBS $LIBCHAMPLAIN_LIBS $LIBCHAMPLAIN_GTK_LIBS
445
446 Localization:
447   NLS support:   $USE_NLS
448   LINGUAS:       $LINGUAS
449
450 Settings:
451   Developer:     $__IS_DEVELOPER
452   Debug flags:   $__IS_DEBUG_FLAGS
453   Debug log:     $__IS_DEBUG_LOG
454   Deprecated:    $__IS_DEPRECATED
455
456 Support:
457   LCMS:          $HAVE_LCMS
458   Exiv2:         $HAVE_EXIV2
459   Lirc:          $HAVE_LIRC
460   Libchamplain:         $HAVE_LIBCHAMPLAIN
461   Libchamplain-gtk:     $HAVE_LIBCHAMPLAIN_GTK
462
463 Documentation:
464   Doxygen:       $DOXYGEN
465   Formats:       $doxy_formats_report
466 END
467
468 cat config.report
469 cat <<EOF
470
471   Now you can type "make" to build Geeqie
472   (or you take blue pill and the story ends :)
473
474 EOF
475