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