Fix display of libpthread 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.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], [
54 Development options:
55 AC_HELP_STRING([--enable-debug], [turn on debugging [default=no]])], [],
56 [
57 if test "x${enable_developer}" != "xyes"
58 then
59   enable_debug="no"
60 else
61   enable_debug="yes"
62 fi
63 ])
64
65 if test "x${enable_debug}" != "xno"
66 then
67   CXXFLAGS="${CXXFLAGS} -g -O0 -Wunused-value -Wunused-variable -Wunused-function -Wunused-label -Wcomment -Wmissing-braces -Wparentheses -Wreturn-type -Wswitch -Wstrict-aliasing -W"
68   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"
69   if test "x${enable_developer}" == "xyes"
70   then
71   CXXFLAGS="${CXXFLAGS} -Wall"
72   CFLAGS="${CFLAGS} -Wstrict-prototypes -Wall"
73   fi
74   AC_DEFINE(DEBUG,1,[Defined if Geeqie is compiled with debugging support])
75   __IS_DEBUG=yes
76 else
77   __IS_DEBUG=no
78 fi
79
80 AM_CONDITIONAL(DEBUG, test x$enable_debug = xyes)
81
82 AC_ARG_ENABLE(deprecated, [
83 AC_HELP_STRING([--enable-deprecated], [turn off checking of deprecated functions [default=yes]])], [], 
84 [
85 if test "x${enable_developer}" != "xyes"
86 then
87   enable_deprecated="no"
88 else
89   enable_deprecated="yes"
90 fi
91 ])
92
93 if test "x${enable_deprecated}" != "xno"
94 then
95   CXXFLAGS="${CXXFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
96   CFLAGS="${CFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
97   __IS_DEPRECATED=yes
98 else
99   __IS_DEPRECATED=no
100 fi
101
102
103 AC_ISC_POSIX
104 AC_PROG_CC
105 AC_PROG_CXX
106 AC_STDC_HEADERS
107 AC_ARG_PROGRAM
108
109 dnl checks for functions
110 AC_CHECK_FUNCS(strverscmp access fsync fflush)
111
112
113 # Check target architecture
114
115 # Check for Win32
116 AC_MSG_CHECKING([for some Win32 platform])
117 case "$target_os" in
118   mingw* | cygwin*)
119     platform_win32=yes
120     AC_DEFINE(PLATFORM_WIN32, 1, [Build on win32 OS])
121     ;;
122   *)
123     platform_win32=no
124     ;;
125 esac
126 AC_MSG_RESULT([$platform_win32])
127 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
128
129 AC_MSG_CHECKING([for native Win32])
130 case "$target_os" in
131   mingw*)
132     os_win32=yes
133     AC_DEFINE(OS_WIN32, 1, [Build on native win32 OS])
134     os_unix=no
135     PATHSEP=';'
136     ;;
137   *)
138     os_win32=no
139     os_unix=yes
140     PATHSEP=':'
141     ;;
142 esac
143 AC_MSG_RESULT([$os_win32])
144 AC_SUBST(PATHSEP)
145 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
146 AM_CONDITIONAL(OS_UNIX, test "$os_unix" = "yes")
147
148 if test "$os_win32" = "yes"; then
149   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
150   AC_CHECK_TOOL(WINDRES, windres, :)
151 else
152   WINDRES=":"
153 fi
154
155 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
156 AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
157 AC_SUBST(WINDRES)
158
159 have_libpthread=no
160 AC_CHECK_LIB([pthread], [main],
161   [AC_CHECK_HEADER([pthread.h],
162      have_libpthread=yes,
163      have_libpthread=no)],
164   [AC_MSG_ERROR([Can't find the POSIX thread libraries])], [-lpthread])
165 if test "x${have_libpthread}" = "xyes"; then
166         LIBPTHREAD='-lpthread'
167         AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if pthread is available])
168 else
169   AC_MSG_WARN([POSIX thread header not installed])
170 fi
171 AC_MSG_CHECKING(for libpthread)
172 AC_MSG_RESULT([${have_libpthread}])
173
174 dnl reasonable guesses for where stuff is installed
175 if test "x$prefix" = "xNONE"; then
176   prefix="/usr/local"
177 else
178   prefix=$prefix
179 fi
180
181 AM_PATH_GTK_2_0(2.4.0,,AC_MSG_ERROR(GTK+ >= 2.4.0 not installed.))
182 AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
183
184 AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
185             readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
186 AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
187             htmldir=$withval, htmldir="$readmedir/html")
188
189 AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
190 AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
191
192 AC_SUBST(readmedir)
193 AC_SUBST(htmldir)
194
195 #  LIRC support
196 # ----------------------------------------------------------------------
197
198 dnl Check for LIRC client support
199 AC_MSG_CHECKING(if LIRC support is enabled)
200 lirc=no
201 AC_ARG_ENABLE([lirc],
202   AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
203 [
204 if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
205   AC_MSG_RESULT(yes)
206   lirc=yes
207 else
208   AC_MSG_RESULT(no)
209   lirc=no
210 fi], AC_MSG_RESULT(no))
211
212
213 AC_ARG_WITH(lirc-prefix,
214 [  --with-lirc-prefix=PATH Prefix where LIRC is installed],
215 [
216 for dir in `echo "$withval" | tr : ' '`; do
217   if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
218   if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
219   done
220 ])
221
222 if test "x${lirc}" != "xno" ; then
223   AC_CHECK_HEADER(lirc/lirc_client.h,
224     [AC_CHECK_LIB(lirc_client,lirc_init,[LIBS=-llirc_client $LIBS;AC_DEFINE([HAVE_LIRC],[],[Define to 1 if LIRC must be used])],,)],)
225 fi
226
227
228 #  LCMS support
229 # ----------------------------------------------------------------------
230
231 AC_ARG_ENABLE([lcms],
232   AC_HELP_STRING([--disable-lcms], [disable lcms support]),
233     [liblcms=$enableval], [liblcms=auto])
234
235 if test "x${liblcms}" != "xno"; then
236   PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
237     [
238       HAVE_LCMS=yes
239       AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
240     ],
241     [
242       HAVE_LCMS=no
243       AC_MSG_WARN([$LCMS_PKG_ERRORS])
244     ])
245 else
246   HAVE_LCMS=disabled
247 fi
248         
249 AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
250 AC_SUBST(LCMS_CFLAGS)
251 AC_SUBST(LCMS_LIBS)
252
253
254 #  Exiv2 support
255 # ----------------------------------------------------------------------
256
257 AC_ARG_ENABLE([exiv2],
258   AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
259     [libexiv2=$enableval], [libexiv2=auto])
260
261 if test "x${libexiv2}" != "xno"; then
262   PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
263     [
264       HAVE_EXIV2=yes
265       AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
266     ],
267     [
268       HAVE_EXIV2=no
269       AC_MSG_WARN([$EXIV2_PKG_ERRORS])
270     ])
271 else
272   HAVE_EXIV2=disabled
273 fi
274         
275 AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
276 AC_SUBST(EXIV2_CFLAGS)
277 AC_SUBST(EXIV2_LIBS)
278
279
280 #  Gettext support
281 # ----------------------------------------------------------------------
282
283 dnl Set of available languages
284 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"
285
286 GETTEXT_PACKAGE=$PACKAGE
287 AC_SUBST(GETTEXT_PACKAGE)
288 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
289 AM_GLIB_GNU_GETTEXT
290 AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
291
292 AC_SUBST(CFLAGS)
293 AC_SUBST(CXXFLAGS)
294 AC_SUBST(CPPFLAGS)
295 AC_SUBST(LDFLAGS)
296
297
298 AH_TOP([
299 /** @file config.h
300  * autogenerated definition by autoheader.
301  * @author Bruclik
302  */
303  
304 /*
305  *  This file is a part of Geeqie project (http://geeqie.sourceforge.net/).
306  *  Copyright (C) 2008 The Geeqie team
307  *  
308  *  This program is free software; you can redistribute it and/or modify
309  *  it under the terms of the GNU General Public License as published by
310  *  the Free Software Foundation; either version 2 of the License, or 
311  *  (at your option) any later version.
312  *  
313  *  This program is distributed in the hope that it will be useful,
314  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
315  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
316  *  GNU General Public License for more details.
317  */ 
318  
319 #ifndef _INCLUDE_CONFIG_H
320 #define _INCLUDE_CONFIG_H
321 ])
322
323 AH_BOTTOM([#endif])
324
325 dnl Write the output
326 dnl
327
328 AC_CONFIG_FILES([
329     Makefile
330     src/Makefile
331     src/icons/Makefile
332     src/icons/svg/Makefile
333     po/Makefile.in
334     doc/Makefile
335     geeqie.spec
336 ])
337
338 AC_OUTPUT
339 dnl Print the results
340 dnl
341
342 cat > config.report << END
343
344      Config results:
345     -=-=-=-=-=-=-=-=-
346
347 Package:
348   Name:          $PACKAGE_NAME
349   Version:       $PACKAGE_VERSION
350   Patch version: $GQ_PATCH_VERSION
351   Date:          $GQ_PATCH_DATE
352
353 Architecture:
354   UNIX:          $os_unix
355   Win32:         $platform_win32 (native: $os_win32)
356
357 Settings:
358   Developer:     $__IS_DEVELOPER
359   Debug:         $__IS_DEBUG
360   Deprecated:    $__IS_DEPRECATED
361
362 Flags:
363   Geeqie:        $GQ_CFLAGS
364   DEFS:          $DEFS
365   CPPFLAGS:      $__CPPFLAGS
366   CFLAGS:        $CFLAGS
367   CXXFLAGS:      $CXXFLAGS
368   Gtk:           $GTK_CFLAGS
369   Glib:          $GLIB_CFLAGS
370   Thread:        $LIBPTHREAD
371   Others:        $LCMS_LIBS $EXIV2_LIBS
372
373 Support:
374   LCMS:          $HAVE_LCMS
375   Exiv2:         $HAVE_EXIV2
376 Localization:
377   NLS support:   $USE_NLS
378   LINGUAS:       $LINGUAS
379
380 Documentation:
381   Doxygen:       $DOXYGEN
382   Formats:       $doxy_formats_report
383 END
384
385 cat config.report
386 cat <<EOF
387
388   Now you can type "make" to build Geeqie
389   (or you take blue pill and the story ends :)
390
391 EOF
392