libexif/exif-entry.c & configure.ac: use localtime_r when available
[platform/upstream/libexif.git] / configure.ac
1 AC_PREREQ(2.59)
2 AC_INIT([EXIF library], [0.6.17.1], [libexif-devel@lists.sourceforge.net], [libexif])
3 AC_CONFIG_SRCDIR([libexif/exif-data.h])
4 AC_CONFIG_HEADERS([config.h])
5 AC_CONFIG_MACRO_DIR([auto-m4])
6 AM_INIT_AUTOMAKE([-Wall gnu 1.9 dist-bzip2 dist-zip check-news])
7
8 if test ! -d "$srcdir/m4m"; then
9 AC_MSG_ERROR([
10 You are missing the m4m/ directory in your top
11 $PACKAGE_TARNAME source directory.
12
13 You are probably using an ill-maintained CVS tree.
14 Running
15
16     cd $srcdir
17     cvs co m4m
18
19 and re-running autogen.sh might help.
20 ])
21 fi
22
23 GP_CHECK_SHELL_ENVIRONMENT
24 GP_CONFIG_MSG([Build])
25 GP_CONFIG_MSG([Source code location],[${srcdir}])
26
27 dnl ---------------------------------------------------------------------------
28 dnl Advanced information about versioning:
29 dnl   * "Writing shared libraries" by Mike Hearn
30 dnl         http://navi.cx/~mike/writing-shared-libraries.html
31 dnl   * libtool.info chapter "Versioning"
32 dnl   * libtool.info chapter "Updating library version information"
33 dnl ---------------------------------------------------------------------------
34 dnl Versioning:
35 dnl  - CURRENT (Major):  Increment if the interface has changes. AGE is always
36 dnl                      *changed* at the same time.
37 dnl  - AGE (Micro):      Increment if any interfaces have been added; set to 0
38 dnl                      if any interfaces have been removed. Removal has 
39 dnl                      precedence over adding, so set to 0 if both happened.
40 dnl                      It denotes upward compatibility.
41 dnl  - REVISION (Minor): Increment any time the source changes; set to 
42 dnl                      0 if you incremented CURRENT.
43 dnl
44 dnl  To summarize. Any interface *change* increment CURRENT. If that interface
45 dnl  change does not break upward compatibility (ie it is an addition), 
46 dnl  increment AGE, Otherwise AGE is reset to 0. If CURRENT has changed, 
47 dnl  REVISION is set to 0, otherwise REVISION is incremented.
48 dnl ---------------------------------------------------------------------------
49 dnl C:A:R
50 dnl 12:0:1   0.6.13
51 dnl 13:1:0   added EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE (for 0.6.14)
52 dnl 14:2:0   added XP_ WinXP tags (for 0.6.15)
53 dnl 14:2:1   0.6.17
54 LIBEXIF_CURRENT=14
55 LIBEXIF_AGE=2
56 LIBEXIF_REVISION=1
57 AC_SUBST([LIBEXIF_AGE])
58 AC_SUBST([LIBEXIF_REVISION])
59 AC_SUBST([LIBEXIF_CURRENT])
60 AC_SUBST([LIBEXIF_CURRENT_MIN],[`expr $LIBEXIF_CURRENT - $LIBEXIF_AGE`])
61 LIBEXIF_VERSION_INFO="$LIBEXIF_CURRENT:$LIBEXIF_REVISION:$LIBEXIF_AGE"
62 AC_SUBST([LIBEXIF_VERSION_INFO])
63
64 AC_PROG_CC
65 AC_C_CONST
66 dnl FIXME: AC_LIBTOOL_WIN32_DLL
67 AM_PROG_LIBTOOL
68 AM_CPPFLAGS="$CPPFLAGS"
69 GP_CONFIG_MSG([Compiler],[${CC}])
70
71
72 dnl Create a stdint.h-like file containing size-specific integer definitions
73 dnl that will always be available
74 AX_NEED_STDINT_H([libexif/_stdint.h])
75
76
77 dnl ------------------------------------------------------------------------
78 dnl Whether we're supposed to ship binaries in the tarball
79 dnl ------------------------------------------------------------------------
80
81 ship_binaries=false
82 AC_ARG_ENABLE([ship-binaries],
83 [AS_HELP_STRING([--enable-ship-binaries],
84 [Whether to ship binaries in the tarball [default=no]])],[
85         if test x$enableval = xyes; then
86                 ship_binaries=true
87         fi
88 ])
89 AM_CONDITIONAL([SHIP_BINARIES],[$ship_binaries])
90 GP_CONFIG_MSG([Ship binaries in tarball],[$ship_binaries])
91
92
93 dnl ---------------------------------------------------------------------------
94 dnl Whether -lm is required for our math functions
95 dnl ---------------------------------------------------------------------------
96
97 # we need sqrt and pow, but checking for sqrt should be sufficient
98 AC_ARG_VAR([MATHLIBS],[The libraries required for mathematical functions, e.g. -lm])
99 if test "x$MATHLIBS" = "x"; then
100         # We must not compile with -Wall -Werror here:
101         # char *sqrt() conflicts with double sin(const double xx) in any case.
102         CFLAGS_save="$CFLAGS"
103         CPPFLAGS_save="$CPPFLAGS"
104         CPPFLAGS=""
105         CFLAGS=""
106         AC_CHECK_FUNC([sqrt],[
107                 MATHLIBS=""
108         ],[
109                 AC_CHECK_LIB([m],[sqrt],[
110                         MATHLIBS="-lm"
111                 ],[
112                         AC_MSG_ERROR([
113 *** Could not find sqrt() function
114 ])
115                 ])
116         ])
117         CFLAGS="$CFLAGS_save"
118         CPPFLAGS="$CPPFLAGS_save"
119 fi
120 AC_SUBST([MATHLIBS])
121
122
123 # doc support
124 GP_CHECK_DOC_DIR
125 GP_CHECK_DOXYGEN
126
127 # Whether to enable the internal docs build.
128 #
129 # This takes quite some time due to the generation of lots of call
130 # graphs, so it is disabled by default.
131 set_enable_internal_docs=no
132 AC_ARG_ENABLE([internal-docs], [dnl
133 AS_HELP_STRING([--enable-internal-docs], 
134 [Build internal code docs if doxygen available])], [dnl
135 dnl If either --enable-foo nor --disable-foo were given, execute this.
136   if   test "x$enableval" = xno \
137     || test "x$enableval" = xoff \
138     || test "x$enableval" = xfalse; 
139   then
140     set_enable_internal_docs=no
141   elif test "x$enableval" = xyes \
142     || test "x$enableval" = xon \
143     || test "x$enableval" = xtrue
144   then
145     set_enable_internal_docs=yes
146   fi
147 ])
148 AC_MSG_CHECKING([whether to create internal code docs])
149 AC_MSG_RESULT([${set_enable_internal_docs}])
150 AM_CONDITIONAL([ENABLE_INTERNAL_DOCS], [test "x${set_enable_internal_docs}" = "xyes"])
151
152
153 # ---------------------------------------------------------------------------
154 # i18n support
155 # ---------------------------------------------------------------------------
156 ALL_LINGUAS="cs de en_CA es fr nl pl ru sk sv vi"
157 AM_PO_SUBDIRS
158 GP_GETTEXT_HACK([${PACKAGE}-${LIBEXIF_CURRENT_MIN}],
159                 [Lutz Mueller and others])
160 AM_GNU_GETTEXT_VERSION([0.14.1])
161 AM_GNU_GETTEXT([external])
162 AM_ICONV()
163 GP_GETTEXT_FLAGS()
164
165
166 dnl ---------------------------------------------------------------------------
167 dnl Thread-safe functions
168 dnl ---------------------------------------------------------------------------
169 AC_CHECK_FUNCS(localtime_r)
170
171 dnl ---------------------------------------------------------------------------
172 dnl Compiler/Linker Options and Warnings
173 dnl ---------------------------------------------------------------------------
174 AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)"
175 AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_builddir)"
176 AM_LDFLAGS="$LDFLAGS"
177 if test "x$GCC" = "xyes"; then
178     AM_CFLAGS="$AM_CFLAGS -ansi -pedantic-error"
179     AM_CXXFLAGS="$AM_CXXFLAGS -ansi -pedantic-error"
180     AM_CPPFLAGS="$AM_CPPFLAGS -g -Wall -Wmissing-declarations -Wmissing-prototypes"
181     AM_LDFLAGS="$AM_LDFLAGS -g -Wall"
182 fi
183
184
185
186 AC_SUBST(AM_CPPFLAGS)
187 AC_SUBST(AM_LDFLAGS)
188
189
190 dnl ---------------------------------------------------------------------------
191 dnl Output files
192 dnl ---------------------------------------------------------------------------
193 AC_CONFIG_FILES([  po/Makefile.in
194   Makefile
195   libexif.spec
196   libexif/Makefile
197   test/Makefile
198   test/nls/Makefile
199   m4m/Makefile
200   doc/Makefile
201   doc/Doxyfile
202   doc/Doxyfile-internals
203   libexif.pc
204   libexif-uninstalled.pc
205   binary/Makefile
206   contrib/Makefile
207 ])
208 AC_OUTPUT
209
210 GP_CONFIG_OUTPUT