xref: /aosp_15_r20/external/libexif/configure.ac (revision 735d6239c16e246968a03ef6e2db00d67bad6cdc)
1*735d6239SKiyoung KimAC_PREREQ(2.59)
2*735d6239SKiyoung KimAC_INIT([EXIF library], [0.6.21], [[email protected]], [libexif])
3*735d6239SKiyoung KimAC_CONFIG_SRCDIR([libexif/exif-data.h])
4*735d6239SKiyoung KimAC_CONFIG_HEADERS([config.h])
5*735d6239SKiyoung KimAC_CONFIG_MACRO_DIR([auto-m4])
6*735d6239SKiyoung KimAM_INIT_AUTOMAKE([-Wall gnu 1.9 dist-bzip2 dist-zip check-news])
7*735d6239SKiyoung KimAM_MAINTAINER_MODE
8*735d6239SKiyoung Kim
9*735d6239SKiyoung Kim# Use the silent-rules feature when possible.
10*735d6239SKiyoung Kimm4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])
11*735d6239SKiyoung KimAM_SILENT_RULES([no])
12*735d6239SKiyoung Kim
13*735d6239SKiyoung Kimif test ! -d "$srcdir/m4m"; then
14*735d6239SKiyoung KimAC_MSG_ERROR([
15*735d6239SKiyoung KimYou are missing the m4m/ directory in your top
16*735d6239SKiyoung Kim$PACKAGE_TARNAME source directory.
17*735d6239SKiyoung Kim
18*735d6239SKiyoung KimYou are probably using an ill-maintained CVS tree.
19*735d6239SKiyoung KimRunning
20*735d6239SKiyoung Kim
21*735d6239SKiyoung Kim    cd $srcdir
22*735d6239SKiyoung Kim    cvs co m4m
23*735d6239SKiyoung Kim
24*735d6239SKiyoung Kimand re-running autogen.sh might help.
25*735d6239SKiyoung Kim])
26*735d6239SKiyoung Kimfi
27*735d6239SKiyoung Kim
28*735d6239SKiyoung KimGP_CHECK_SHELL_ENVIRONMENT
29*735d6239SKiyoung KimGP_CONFIG_MSG([Build])
30*735d6239SKiyoung KimGP_CONFIG_MSG([Source code location],[${srcdir}])
31*735d6239SKiyoung Kim
32*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
33*735d6239SKiyoung Kimdnl Advanced information about versioning:
34*735d6239SKiyoung Kimdnl   * "Writing shared libraries" by Mike Hearn
35*735d6239SKiyoung Kimdnl         http://plan99.net/~mike/writing-shared-libraries.html
36*735d6239SKiyoung Kimdnl   * libtool.info chapter "Versioning"
37*735d6239SKiyoung Kimdnl   * libtool.info chapter "Updating library version information"
38*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
39*735d6239SKiyoung Kimdnl Versioning:
40*735d6239SKiyoung Kimdnl  - CURRENT (Major):  Increment if the interface has changes. AGE is always
41*735d6239SKiyoung Kimdnl                      *changed* at the same time.
42*735d6239SKiyoung Kimdnl  - AGE (Micro):      Increment if any interfaces have been added; set to 0
43*735d6239SKiyoung Kimdnl		         if any interfaces have been removed. Removal has
44*735d6239SKiyoung Kimdnl                      precedence over adding, so set to 0 if both happened.
45*735d6239SKiyoung Kimdnl                      It denotes upward compatibility.
46*735d6239SKiyoung Kimdnl  - REVISION (Minor): Increment any time the source changes; set to
47*735d6239SKiyoung Kimdnl			 0 if you incremented CURRENT.
48*735d6239SKiyoung Kimdnl
49*735d6239SKiyoung Kimdnl  To summarize. Any interface *change* increment CURRENT. If that interface
50*735d6239SKiyoung Kimdnl  change does not break upward compatibility (ie it is an addition),
51*735d6239SKiyoung Kimdnl  increment AGE, Otherwise AGE is reset to 0. If CURRENT has changed,
52*735d6239SKiyoung Kimdnl  REVISION is set to 0, otherwise REVISION is incremented.
53*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
54*735d6239SKiyoung Kimdnl C:A:R
55*735d6239SKiyoung Kimdnl 12:0:1   0.6.13
56*735d6239SKiyoung Kimdnl 13:1:0   added EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE (for 0.6.14)
57*735d6239SKiyoung Kimdnl 14:2:0   added XP_ WinXP tags (for 0.6.15)
58*735d6239SKiyoung Kimdnl 14:2:1   0.6.17
59*735d6239SKiyoung Kimdnl 15:3:0   added exif_loader_get_buf (for 0.6.18)
60*735d6239SKiyoung Kimdnl 15:3:1   0.6.19
61*735d6239SKiyoung Kimdnl 15:3:2   0.6.20
62*735d6239SKiyoung Kimdnl 15:3:3   0.6.21
63*735d6239SKiyoung KimLIBEXIF_CURRENT=15
64*735d6239SKiyoung KimLIBEXIF_AGE=3
65*735d6239SKiyoung KimLIBEXIF_REVISION=3
66*735d6239SKiyoung KimAC_SUBST([LIBEXIF_AGE])
67*735d6239SKiyoung KimAC_SUBST([LIBEXIF_REVISION])
68*735d6239SKiyoung KimAC_SUBST([LIBEXIF_CURRENT])
69*735d6239SKiyoung KimAC_SUBST([LIBEXIF_CURRENT_MIN],[`expr $LIBEXIF_CURRENT - $LIBEXIF_AGE`])
70*735d6239SKiyoung KimLIBEXIF_VERSION_INFO="$LIBEXIF_CURRENT:$LIBEXIF_REVISION:$LIBEXIF_AGE"
71*735d6239SKiyoung KimAC_SUBST([LIBEXIF_VERSION_INFO])
72*735d6239SKiyoung Kim
73*735d6239SKiyoung KimAC_PROG_CC
74*735d6239SKiyoung KimAC_C_CONST
75*735d6239SKiyoung KimAC_C_INLINE
76*735d6239SKiyoung Kimdnl FIXME: AC_LIBTOOL_WIN32_DLL
77*735d6239SKiyoung KimAM_PROG_LIBTOOL
78*735d6239SKiyoung KimAM_CPPFLAGS="$CPPFLAGS"
79*735d6239SKiyoung KimGP_CONFIG_MSG([Compiler],[${CC}])
80*735d6239SKiyoung Kim
81*735d6239SKiyoung Kim
82*735d6239SKiyoung Kimdnl Create a stdint.h-like file containing size-specific integer definitions
83*735d6239SKiyoung Kimdnl that will always be available
84*735d6239SKiyoung KimAX_NEED_STDINT_H([libexif/_stdint.h])
85*735d6239SKiyoung Kim
86*735d6239SKiyoung Kim
87*735d6239SKiyoung Kimdnl ------------------------------------------------------------------------
88*735d6239SKiyoung Kimdnl Whether we're supposed to ship binaries in the tarball
89*735d6239SKiyoung Kimdnl ------------------------------------------------------------------------
90*735d6239SKiyoung Kim
91*735d6239SKiyoung Kimship_binaries=false
92*735d6239SKiyoung KimAC_ARG_ENABLE([ship-binaries],
93*735d6239SKiyoung Kim[AS_HELP_STRING([--enable-ship-binaries],
94*735d6239SKiyoung Kim[Whether to ship binaries in the tarball [default=no]])],[
95*735d6239SKiyoung Kim	if test x$enableval = xyes; then
96*735d6239SKiyoung Kim		ship_binaries=true
97*735d6239SKiyoung Kim	fi
98*735d6239SKiyoung Kim])
99*735d6239SKiyoung KimAM_CONDITIONAL([SHIP_BINARIES],[$ship_binaries])
100*735d6239SKiyoung KimGP_CONFIG_MSG([Ship binaries in tarball],[$ship_binaries])
101*735d6239SKiyoung Kim
102*735d6239SKiyoung Kim
103*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
104*735d6239SKiyoung Kimdnl Whether -lm is required for our math functions
105*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
106*735d6239SKiyoung Kim
107*735d6239SKiyoung Kim# we need sqrt and pow which may be in libm
108*735d6239SKiyoung Kim# We cannot use AC_CHECK_FUNC because if CFLAGS contains
109*735d6239SKiyoung Kim# -Wall -Werror here the check fails because
110*735d6239SKiyoung Kim# char *sqrt() conflicts with double sqrt(double xx)
111*735d6239SKiyoung Kim
112*735d6239SKiyoung Kim# Start by assuming -lm is needed, because it's possible that the little
113*735d6239SKiyoung Kim# test program below will be optimized to in-line floating point code that
114*735d6239SKiyoung Kim# doesn't require -lm, whereas the library itself cannot be so optimized
115*735d6239SKiyoung Kim# (this actually seems to be the case on x86 with gcc 4.2). Assuming the
116*735d6239SKiyoung Kim# reverse means that -lm could be needed but wouldn't be detected below.
117*735d6239SKiyoung Kim
118*735d6239SKiyoung KimLIBS_orig="$LIBS"
119*735d6239SKiyoung KimLIBS="$LIBS -lm"
120*735d6239SKiyoung KimAC_MSG_CHECKING([for math functions in libm])
121*735d6239SKiyoung KimAC_LINK_IFELSE([
122*735d6239SKiyoung Kim	#include <math.h>
123*735d6239SKiyoung Kim	int main() {
124*735d6239SKiyoung Kim	  double s = sqrt(0);
125*735d6239SKiyoung Kim	  double p = pow(s,s);
126*735d6239SKiyoung Kim	  return (int)p;
127*735d6239SKiyoung Kim	}
128*735d6239SKiyoung Kim], [AC_MSG_RESULT(yes)], [
129*735d6239SKiyoung Kim	AC_MSG_RESULT(no)
130*735d6239SKiyoung Kim	LIBS="$LIBS_orig"
131*735d6239SKiyoung Kim	AC_MSG_CHECKING([for math functions without libm])
132*735d6239SKiyoung Kim	AC_LINK_IFELSE([
133*735d6239SKiyoung Kim		#include <math.h>
134*735d6239SKiyoung Kim		int main() {
135*735d6239SKiyoung Kim		  double s = sqrt(0);
136*735d6239SKiyoung Kim		  double p = pow(s,s);
137*735d6239SKiyoung Kim		  return (int)p;
138*735d6239SKiyoung Kim		}
139*735d6239SKiyoung Kim	], [
140*735d6239SKiyoung Kim		AC_MSG_RESULT(yes)
141*735d6239SKiyoung Kim	],[
142*735d6239SKiyoung Kim		AC_MSG_RESULT(no)
143*735d6239SKiyoung Kim		AC_MSG_ERROR([*** Could not find sqrt() & pow() functions])
144*735d6239SKiyoung Kim	])
145*735d6239SKiyoung Kim])
146*735d6239SKiyoung Kim
147*735d6239SKiyoung Kim# doc support
148*735d6239SKiyoung KimGP_CHECK_DOC_DIR
149*735d6239SKiyoung KimGP_CHECK_DOXYGEN
150*735d6239SKiyoung Kim
151*735d6239SKiyoung Kim# Whether to enable the internal docs build.
152*735d6239SKiyoung Kim#
153*735d6239SKiyoung Kim# This takes quite some time due to the generation of lots of call
154*735d6239SKiyoung Kim# graphs, so it is disabled by default.
155*735d6239SKiyoung Kimset_enable_internal_docs=no
156*735d6239SKiyoung KimAC_ARG_ENABLE([internal-docs], [dnl
157*735d6239SKiyoung KimAS_HELP_STRING([--enable-internal-docs],
158*735d6239SKiyoung Kim[Build internal code docs if doxygen available])], [dnl
159*735d6239SKiyoung Kimdnl If either --enable-foo nor --disable-foo were given, execute this.
160*735d6239SKiyoung Kim  if   test "x$enableval" = xno \
161*735d6239SKiyoung Kim    || test "x$enableval" = xoff \
162*735d6239SKiyoung Kim    || test "x$enableval" = xfalse;
163*735d6239SKiyoung Kim  then
164*735d6239SKiyoung Kim    set_enable_internal_docs=no
165*735d6239SKiyoung Kim  elif test "x$enableval" = xyes \
166*735d6239SKiyoung Kim    || test "x$enableval" = xon \
167*735d6239SKiyoung Kim    || test "x$enableval" = xtrue
168*735d6239SKiyoung Kim  then
169*735d6239SKiyoung Kim    set_enable_internal_docs=yes
170*735d6239SKiyoung Kim  fi
171*735d6239SKiyoung Kim])
172*735d6239SKiyoung KimAC_MSG_CHECKING([whether to create internal code docs])
173*735d6239SKiyoung KimAC_MSG_RESULT([${set_enable_internal_docs}])
174*735d6239SKiyoung KimAM_CONDITIONAL([ENABLE_INTERNAL_DOCS], [test "x${set_enable_internal_docs}" = "xyes"])
175*735d6239SKiyoung Kim
176*735d6239SKiyoung Kim
177*735d6239SKiyoung Kim# ---------------------------------------------------------------------------
178*735d6239SKiyoung Kim# i18n support
179*735d6239SKiyoung Kim# ---------------------------------------------------------------------------
180*735d6239SKiyoung KimALL_LINGUAS="be bs cs da de en_AU en_CA en_GB es fr it ja nl pl pt pt_BR ru sk sq sr sv tr uk vi zh_CN"
181*735d6239SKiyoung KimAM_PO_SUBDIRS
182*735d6239SKiyoung KimGP_GETTEXT_HACK([${PACKAGE}-${LIBEXIF_CURRENT_MIN}],
183*735d6239SKiyoung Kim                [Lutz Mueller and others])
184*735d6239SKiyoung KimAM_GNU_GETTEXT_VERSION([0.14.1])
185*735d6239SKiyoung KimAM_GNU_GETTEXT([external])
186*735d6239SKiyoung KimAM_ICONV()
187*735d6239SKiyoung KimGP_GETTEXT_FLAGS()
188*735d6239SKiyoung Kim
189*735d6239SKiyoung Kim
190*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
191*735d6239SKiyoung Kimdnl Thread-safe functions
192*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
193*735d6239SKiyoung KimAC_CHECK_FUNCS(localtime_r)
194*735d6239SKiyoung Kim
195*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
196*735d6239SKiyoung Kimdnl Compiler/Linker Options and Warnings
197*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
198*735d6239SKiyoung KimAM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)"
199*735d6239SKiyoung KimAM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_builddir)"
200*735d6239SKiyoung KimAM_LDFLAGS="$LDFLAGS"
201*735d6239SKiyoung Kimif test "x$GCC" = "xyes"; then
202*735d6239SKiyoung Kim    AM_CFLAGS="$AM_CFLAGS -ansi -pedantic-error"
203*735d6239SKiyoung Kim    AM_CXXFLAGS="$AM_CXXFLAGS -ansi -pedantic-error"
204*735d6239SKiyoung Kim    AM_CPPFLAGS="$AM_CPPFLAGS -g -Wall -Wmissing-declarations -Wmissing-prototypes"
205*735d6239SKiyoung Kim    AM_LDFLAGS="$AM_LDFLAGS -g -Wall"
206*735d6239SKiyoung Kimfi
207*735d6239SKiyoung Kim
208*735d6239SKiyoung Kim
209*735d6239SKiyoung Kim
210*735d6239SKiyoung KimAC_SUBST(AM_CPPFLAGS)
211*735d6239SKiyoung KimAC_SUBST(AM_LDFLAGS)
212*735d6239SKiyoung Kim
213*735d6239SKiyoung Kim
214*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
215*735d6239SKiyoung Kimdnl Output files
216*735d6239SKiyoung Kimdnl ---------------------------------------------------------------------------
217*735d6239SKiyoung KimAC_CONFIG_FILES([  po/Makefile.in
218*735d6239SKiyoung Kim  Makefile
219*735d6239SKiyoung Kim  libexif.spec
220*735d6239SKiyoung Kim  libexif/Makefile
221*735d6239SKiyoung Kim  test/Makefile
222*735d6239SKiyoung Kim  test/nls/Makefile
223*735d6239SKiyoung Kim  m4m/Makefile
224*735d6239SKiyoung Kim  doc/Makefile
225*735d6239SKiyoung Kim  doc/Doxyfile
226*735d6239SKiyoung Kim  doc/Doxyfile-internals
227*735d6239SKiyoung Kim  libexif.pc
228*735d6239SKiyoung Kim  libexif-uninstalled.pc
229*735d6239SKiyoung Kim  binary/Makefile
230*735d6239SKiyoung Kim  contrib/Makefile
231*735d6239SKiyoung Kim  contrib/examples/Makefile
232*735d6239SKiyoung Kim])
233*735d6239SKiyoung KimAC_OUTPUT
234*735d6239SKiyoung Kim
235*735d6239SKiyoung KimGP_CONFIG_OUTPUT
236