configure.in
author Sam Lantinga <slouken@libsdl.org>
Fri, 07 Jun 2013 21:47:42 -0700
changeset 404 2608ba5feac1
parent 372 46289a3abe15
child 425 361ab0371a02
permissions -rw-r--r--
Improved find_lib, gets the latest version of libpng, etc.
slouken@0
     1
dnl Process this file with autoconf to produce a configure script.
slouken@372
     2
AC_INIT(README.txt)
slouken@0
     3
slouken@0
     4
dnl Set various version strings - taken gratefully from the GTk sources
slouken@0
     5
slouken@0
     6
# Making releases:
slouken@0
     7
#   MICRO_VERSION += 1;
slouken@0
     8
#   INTERFACE_AGE += 1;
slouken@0
     9
#   BINARY_AGE += 1;
slouken@0
    10
# if any functions have been added, set INTERFACE_AGE to 0.
slouken@0
    11
# if backwards compatibility has been broken,
slouken@0
    12
# set BINARY_AGE and INTERFACE_AGE to 0.
slouken@0
    13
slouken@354
    14
MAJOR_VERSION=2
slouken@354
    15
MINOR_VERSION=0
slouken@354
    16
MICRO_VERSION=0
slouken@354
    17
INTERFACE_AGE=0
slouken@354
    18
BINARY_AGE=0
slouken@0
    19
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
slouken@0
    20
slouken@0
    21
AC_SUBST(MAJOR_VERSION)
slouken@0
    22
AC_SUBST(MINOR_VERSION)
slouken@0
    23
AC_SUBST(MICRO_VERSION)
slouken@0
    24
AC_SUBST(INTERFACE_AGE)
slouken@0
    25
AC_SUBST(BINARY_AGE)
slouken@0
    26
AC_SUBST(VERSION)
slouken@0
    27
slouken@0
    28
# libtool versioning
slouken@217
    29
LT_INIT([win32-dll])
slouken@217
    30
slouken@0
    31
LT_RELEASE=$MAJOR_VERSION.$MINOR_VERSION
slouken@0
    32
LT_CURRENT=`expr $MICRO_VERSION - $INTERFACE_AGE`
slouken@0
    33
LT_REVISION=$INTERFACE_AGE
slouken@0
    34
LT_AGE=`expr $BINARY_AGE - $INTERFACE_AGE`
slouken@0
    35
slouken@0
    36
AC_SUBST(LT_RELEASE)
slouken@0
    37
AC_SUBST(LT_CURRENT)
slouken@0
    38
AC_SUBST(LT_REVISION)
slouken@0
    39
AC_SUBST(LT_AGE)
slouken@0
    40
slouken@122
    41
dnl Detect the canonical build and host environments
slouken@122
    42
AC_CANONICAL_HOST
slouken@2
    43
slouken@40
    44
dnl Setup for automake
slouken@321
    45
AM_INIT_AUTOMAKE(SDL2_image, $VERSION)
slouken@40
    46
slouken@0
    47
dnl Check for tools
slouken@217
    48
AC_PROG_LIBTOOL
slouken@0
    49
AC_PROG_CC
slouken@279
    50
AC_PROG_OBJC
slouken@22
    51
AC_C_INLINE
slouken@0
    52
AC_PROG_INSTALL
slouken@164
    53
AC_PROG_MAKE_SET
slouken@164
    54
if test -z "$host_alias"; then
slouken@164
    55
    hostaliaswindres=
slouken@164
    56
else
slouken@164
    57
    hostaliaswindres="$host_alias-windres"
slouken@164
    58
fi
slouken@164
    59
AC_CHECK_PROGS(WINDRES, [windres $hostaliaswindres $host_os-windres])
slouken@0
    60
slouken@122
    61
case "$host" in
slouken@33
    62
    *-*-beos*)
slouken@33
    63
        ac_default_prefix=/boot/develop/tools/gnupro
slouken@33
    64
        ;;
slouken@2
    65
    *-*-cygwin* | *-*-mingw32*)
slouken@122
    66
        if test "$build" != "$host"; then # cross-compiling
slouken@44
    67
            # Default cross-compile location
slouken@157
    68
            ac_default_prefix=/usr/local/cross-tools/i386-mingw32
slouken@44
    69
        else
slouken@44
    70
            # Look for the location of the tools and install there
slouken@113
    71
            if test "$BUILD_PREFIX" != ""; then
slouken@44
    72
                ac_default_prefix=$BUILD_PREFIX
slouken@44
    73
            fi
slouken@2
    74
        fi
slouken@164
    75
        if test x$WINDRES != x; then
slouken@164
    76
            use_version_rc=true
slouken@164
    77
        fi
slouken@2
    78
        ;;
slouken@237
    79
    *-*-darwin*)
slouken@237
    80
        AC_ARG_ENABLE([imageio], [AC_HELP_STRING([--enable-imageio], [use native Mac OS X frameworks for loading images [default=yes]])],
slouken@237
    81
                      [], [enable_imageio=yes])
slouken@237
    82
        if test x$enable_imageio = xyes; then
slouken@237
    83
            IMG_LIBS="-Wl,-framework,ApplicationServices $IMG_LIBS"
slouken@237
    84
        else
slouken@237
    85
            CFLAGS="$CFLAGS -DSDL_IMAGE_USE_COMMON_BACKEND"
slouken@237
    86
        fi
slouken@237
    87
        ;;
slouken@0
    88
esac
slouken@294
    89
AM_CONDITIONAL(USE_IMAGEIO, test x$enable_imageio = xyes)
slouken@164
    90
AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
slouken@0
    91
slouken@227
    92
dnl set this to use on systems that use lib64 instead of lib
slouken@227
    93
base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'`
slouken@227
    94
slouken@227
    95
dnl Function to find a library in the compiler search path
slouken@227
    96
find_lib()
slouken@227
    97
{
slouken@227
    98
    gcc_bin_path=[`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
slouken@227
    99
    gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
slouken@227
   100
    env_lib_path=[`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`]
slouken@227
   101
    if test "$cross_compiling" = yes; then
slouken@227
   102
        host_lib_path=""
slouken@227
   103
    else
slouken@227
   104
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
slouken@227
   105
    fi
slouken@227
   106
    for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do
slouken@404
   107
        lib=[`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`]
slouken@227
   108
        if test x$lib != x; then
slouken@227
   109
            echo $lib
slouken@227
   110
            return
slouken@227
   111
        fi
slouken@227
   112
    done
slouken@227
   113
}
slouken@227
   114
slouken@0
   115
dnl Check for SDL
slouken@320
   116
SDL_VERSION=2.0.0
slouken@196
   117
AC_SUBST(SDL_VERSION)
slouken@330
   118
AM_PATH_SDL2($SDL_VERSION,
slouken@0
   119
            :,
slouken@137
   120
           AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!])
slouken@0
   121
)
slouken@237
   122
CFLAGS="$CFLAGS $SDL_CFLAGS"
slouken@75
   123
LIBS="$LIBS $SDL_LIBS"
slouken@137
   124
saved_LIBS="$LIBS"
slouken@0
   125
slouken@0
   126
dnl Check command-line options
couriersud@189
   127
AC_ARG_ENABLE([bmp], [AC_HELP_STRING([--enable-bmp], [support loading BMP/ICO/CUR images [default=yes]])],
slouken@137
   128
 [], [enable_bmp=yes])
slouken@137
   129
AC_ARG_ENABLE([gif], [AC_HELP_STRING([--enable-gif], [support loading GIF images [default=yes]])],
slouken@137
   130
 [], [enable_gif=yes])
slouken@137
   131
AC_ARG_ENABLE([jpg], [AC_HELP_STRING([--enable-jpg], [support loading JPG images [default=yes]])],
slouken@137
   132
 [], [enable_jpg=yes])
slouken@143
   133
AC_ARG_ENABLE([jpg-shared], AC_HELP_STRING([--enable-jpg-shared], [dynamically load JPG support [[default=yes]]]),
slouken@143
   134
 [], [enable_jpg_shared=yes])
slouken@137
   135
AC_ARG_ENABLE([lbm], [AC_HELP_STRING([--enable-lbm], [support loading LBM images [default=yes]])],
slouken@137
   136
 [], [enable_lbm=yes])
slouken@137
   137
AC_ARG_ENABLE([pcx], [AC_HELP_STRING([--enable-pcx], [support loading PCX images [default=yes]])],
slouken@137
   138
 [], [enable_pcx=yes])
slouken@143
   139
AC_ARG_ENABLE([png], [AC_HELP_STRING([--enable-png], [support loading PNG images [default=yes]])],
slouken@137
   140
 [], [enable_png=yes])
slouken@143
   141
AC_ARG_ENABLE([png-shared], AC_HELP_STRING([--enable-png-shared], [dynamically load PNG support [[default=yes]]]),
slouken@143
   142
 [], [enable_png_shared=yes])
slouken@137
   143
AC_ARG_ENABLE([pnm], [AC_HELP_STRING([--enable-pnm], [support loading PNM images [default=yes]])],
slouken@137
   144
 [], [enable_pnm=yes])
slouken@137
   145
AC_ARG_ENABLE([tga], [AC_HELP_STRING([--enable-tga], [support loading TGA images [default=yes]])],
slouken@137
   146
 [], [enable_tga=yes])
slouken@143
   147
AC_ARG_ENABLE([tif], [AC_HELP_STRING([--enable-tif], [support loading TIFF images [default=yes]])],
slouken@143
   148
 [], [enable_tif=yes])
slouken@143
   149
AC_ARG_ENABLE([tif-shared], AC_HELP_STRING([--enable-tif-shared], [dynamically load TIFF support [[default=yes]]]),
slouken@143
   150
 [], [enable_tif_shared=yes])
slouken@137
   151
AC_ARG_ENABLE([xcf], [AC_HELP_STRING([--enable-xcf], [support loading XCF images [default=yes]])],
slouken@137
   152
 [], [enable_xcf=yes])
slouken@137
   153
AC_ARG_ENABLE([xpm], [AC_HELP_STRING([--enable-xpm], [support loading XPM images [default=yes]])],
slouken@137
   154
 [], [enable_xpm=yes])
slouken@137
   155
AC_ARG_ENABLE([xv], [AC_HELP_STRING([--enable-xv], [support loading XV images [default=yes]])],
slouken@137
   156
 [], [enable_xv=yes])
slouken@278
   157
AC_ARG_ENABLE([webp], [AC_HELP_STRING([--enable-webp], [support loading WEBP images [default=yes]])],
slouken@278
   158
 [], [enable_webp=yes])
slouken@278
   159
AC_ARG_ENABLE([webp-shared], AC_HELP_STRING([--enable-webp-shared], [dynamically load WEBP support [[default=yes]]]),
slouken@278
   160
 [], [enable_webp_shared=yes])
slouken@137
   161
slouken@357
   162
dnl Show a message when we use ImageIO support so it's not a surprise
slouken@357
   163
AC_MSG_CHECKING([for ImageIO support])
slouken@357
   164
AC_MSG_RESULT($enable_imageio)
slouken@357
   165
slouken@357
   166
if (test x$enable_jpg = xyes || test x$enable_tif = xyes) && test x$enable_imageio != xyes; then
slouken@168
   167
    AC_CHECK_HEADER([jpeglib.h], [have_jpg_hdr=yes])
slouken@168
   168
    AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress], [have_jpg_lib=yes])
slouken@168
   169
    if test x$have_jpg_hdr = xyes -a x$have_jpg_lib = xyes; then
slouken@137
   170
        if test x$enable_jpg = xyes; then
slouken@168
   171
            AC_DEFINE([LOAD_JPG])
slouken@137
   172
        fi
slouken@137
   173
        LIBS="-ljpeg $LIBS"
slouken@143
   174
slouken@143
   175
        case "$host" in
slouken@168
   176
            *-*-darwin*)
slouken@231
   177
                jpg_lib=[`find_lib libjpeg.dylib`]
slouken@143
   178
                ;;
slouken@143
   179
            *-*-cygwin* | *-*-mingw32*)
slouken@287
   180
                jpg_lib=[`find_lib "libjpeg*.dll"`]
slouken@143
   181
                ;;
slouken@143
   182
            *)
slouken@404
   183
                jpg_lib=[`find_lib "libjpeg[0-9]*.so.*"`]
slouken@170
   184
                if test x$jpg_lib = x; then
slouken@404
   185
                    jpg_lib=[`find_lib "libjpeg.so.*"`]
slouken@170
   186
                fi
slouken@143
   187
                ;;
slouken@143
   188
        esac
slouken@137
   189
    elif test x$enable_jpg = xyes; then
slouken@137
   190
        AC_MSG_WARN([*** Unable to find JPEG library (http://www.ijg.org/)])
slouken@0
   191
        AC_MSG_WARN([JPG image loading disabled])
slouken@0
   192
    fi
slouken@0
   193
fi
slouken@137
   194
slouken@357
   195
if test x$enable_png = xyes -a x$enable_imageio != xyes; then
slouken@218
   196
    PKG_CHECK_MODULES([LIBPNG], [libpng], [dnl
slouken@218
   197
        have_png_hdr=yes
slouken@218
   198
        CFLAGS="$LIBPNG_CFLAGS $CFLAGS"
slouken@218
   199
        have_png_lib=yes
slouken@218
   200
      ], [dnl
slouken@218
   201
        AC_CHECK_HEADER([png.h], [have_png_hdr=yes])
slouken@218
   202
        AC_CHECK_LIB([png], [png_create_read_struct], [have_png_lib=yes], [], [-lz])
slouken@218
   203
      ])
slouken@168
   204
    if test x$have_png_hdr = xyes -a x$have_png_lib = xyes; then
slouken@137
   205
        AC_DEFINE([LOAD_PNG])
slouken@143
   206
slouken@143
   207
        case "$host" in
slouken@168
   208
            *-*-darwin*)
slouken@231
   209
                png_lib=[`find_lib libpng.dylib`]
slouken@143
   210
                ;;
slouken@143
   211
            *-*-cygwin* | *-*-mingw32*)
slouken@173
   212
                png_lib=[`find_lib "libpng*.dll"`]
slouken@143
   213
                ;;
slouken@143
   214
            *)
slouken@404
   215
                png_lib=[`find_lib "libpng[0-9]*.so.*"`]
slouken@170
   216
                if test x$png_lib = x; then
slouken@404
   217
                    png_lib=[`find_lib "libpng.so.*"`]
slouken@215
   218
                fi
slouken@143
   219
                ;;
slouken@143
   220
        esac
slouken@0
   221
    else
slouken@137
   222
        AC_MSG_WARN([*** Unable to find PNG library (http://www.libpng.org/pub/png/libpng.html)])
slouken@0
   223
        AC_MSG_WARN([PNG image loading disabled])
slouken@0
   224
    fi
slouken@0
   225
fi
slouken@137
   226
slouken@357
   227
if test x$enable_tif = xyes -a x$enable_imageio != xyes; then
slouken@168
   228
    AC_CHECK_HEADER([tiffio.h], [have_tif_hdr=yes])
slouken@203
   229
    AC_CHECK_LIB([tiff], [TIFFClientOpen], [have_tif_lib=yes], [], [-lz])
slouken@168
   230
    if test x$have_tif_hdr = xyes -a x$have_tif_lib = xyes; then
slouken@137
   231
        AC_DEFINE([LOAD_TIF])
slouken@143
   232
slouken@143
   233
        case "$host" in
slouken@168
   234
            *-*-darwin*)
slouken@231
   235
                tif_lib=[`find_lib libtiff.dylib`]
slouken@143
   236
                ;;
slouken@143
   237
            *-*-cygwin* | *-*-mingw32*)
slouken@173
   238
                tif_lib=[`find_lib "libtiff-*.dll"`]
slouken@143
   239
                ;;
slouken@143
   240
            *)
slouken@404
   241
                tif_lib=[`find_lib "libtiff[0-9]*.so.*"`]
slouken@170
   242
                if test x$tif_lib = x; then
slouken@404
   243
                    tif_lib=[`find_lib "libtiff.so.*"`]
slouken@170
   244
                fi
slouken@143
   245
                ;;
slouken@143
   246
        esac
slouken@0
   247
    else
slouken@143
   248
        AC_MSG_WARN([*** Unable to find Tiff library (http://www.remotesensing.org/libtiff/)])
slouken@0
   249
        AC_MSG_WARN([TIF image loading disabled])
slouken@0
   250
    fi
slouken@0
   251
fi
slouken@137
   252
slouken@278
   253
if test x$enable_webp = xyes; then
slouken@278
   254
    PKG_CHECK_MODULES([LIBWEBP], [libwebp], [dnl
slouken@278
   255
        have_webp_hdr=yes
slouken@278
   256
        CFLAGS="$LIBWEBP_CFLAGS $CFLAGS"
slouken@278
   257
        have_webp_lib=yes
slouken@278
   258
      ], [dnl
slouken@278
   259
        AC_CHECK_HEADER([webp/decode.h], [have_webp_hdr=yes])
slouken@278
   260
        AC_CHECK_LIB([webp], [WebPGetDecoderVersion], [have_webp_lib=yes], [], [-lm])
slouken@278
   261
      ])
slouken@278
   262
    if test x$have_webp_hdr = xyes -a x$have_webp_lib = xyes; then
slouken@278
   263
        AC_DEFINE([LOAD_WEBP])
slouken@278
   264
slouken@278
   265
        case "$host" in
slouken@278
   266
            *-*-darwin*)
slouken@278
   267
                webp_lib=[`find_lib libwebp.dylib`]
slouken@278
   268
                ;;
slouken@278
   269
            *-*-cygwin* | *-*-mingw32*)
slouken@278
   270
                webp_lib=[`find_lib "libwebp*.dll"`]
slouken@278
   271
                ;;
slouken@278
   272
            *)
slouken@404
   273
                webp_lib=[`find_lib "libwebp[0-9]*.so.*"`]
slouken@278
   274
                if test x$webp_lib = x; then
slouken@404
   275
                    webp_lib=[`find_lib "libwebp.so.*"`]
slouken@278
   276
                fi
slouken@278
   277
                ;;
slouken@278
   278
        esac
slouken@278
   279
    else
slouken@278
   280
        AC_MSG_WARN([*** Unable to find WEBP library (http://code.google.com/intl/en-US/speed/webp/index.html)])
slouken@278
   281
        AC_MSG_WARN([WEBP Pimage loading disabled])
slouken@278
   282
    fi
slouken@278
   283
fi
slouken@278
   284
slouken@137
   285
if test x$enable_bmp = xyes; then
slouken@137
   286
    AC_DEFINE([LOAD_BMP])
slouken@137
   287
fi
slouken@137
   288
slouken@137
   289
if test x$enable_gif = xyes; then
slouken@137
   290
    AC_DEFINE([LOAD_GIF])
slouken@137
   291
fi
slouken@137
   292
slouken@137
   293
if test x$enable_lbm = xyes; then
slouken@137
   294
    AC_DEFINE([LOAD_LBM])
slouken@137
   295
fi
slouken@137
   296
slouken@137
   297
if test x$enable_pcx = xyes; then
slouken@137
   298
    AC_DEFINE([LOAD_PCX])
slouken@137
   299
fi
slouken@137
   300
slouken@137
   301
if test x$enable_pnm = xyes; then
slouken@137
   302
    AC_DEFINE([LOAD_PNM])
slouken@137
   303
fi
slouken@137
   304
slouken@137
   305
if test x$enable_tga = xyes; then
slouken@137
   306
    AC_DEFINE([LOAD_TGA])
slouken@137
   307
fi
slouken@137
   308
slouken@26
   309
if test x$enable_xcf = xyes; then
slouken@137
   310
    AC_DEFINE([LOAD_XCF])
slouken@26
   311
fi
slouken@137
   312
slouken@7
   313
if test x$enable_xpm = xyes; then
slouken@137
   314
    AC_DEFINE([LOAD_XPM])
slouken@7
   315
fi
slouken@137
   316
slouken@119
   317
if test x$enable_xv = xyes; then
slouken@137
   318
    AC_DEFINE([LOAD_XV])
slouken@119
   319
fi
slouken@137
   320
slouken@278
   321
if test x$enable_webp = xyes -a x$have_webp_hdr = xyes -a x$have_webp_lib = xyes; then
slouken@278
   322
    if test x$enable_webp_shared = xyes && test x$webp_lib != x; then
slouken@278
   323
        echo "-- dynamic libwebp -> $webp_lib"
slouken@278
   324
        AC_DEFINE_UNQUOTED(LOAD_WEBP_DYNAMIC, "$webp_lib")
slouken@278
   325
    else
slouken@278
   326
        IMG_LIBS="-lwebp $IMG_LIBS"
slouken@278
   327
    fi
slouken@278
   328
fi
slouken@278
   329
slouken@168
   330
if test x$enable_tif = xyes -a x$have_tif_hdr = xyes -a x$have_tif_lib = xyes; then
slouken@143
   331
    if test x$enable_tif_shared = xyes && test x$tif_lib != x; then
slouken@143
   332
        echo "-- dynamic libtiff -> $tif_lib"
slouken@143
   333
        AC_DEFINE_UNQUOTED(LOAD_TIF_DYNAMIC, "$tif_lib")
slouken@143
   334
    else
slouken@143
   335
        if test x$have_libjpeg = xyes; then
slouken@143
   336
            # Disable dynamic jpeg since we're linking it explicitly
slouken@143
   337
            jpg_lib=''
slouken@143
   338
        fi
slouken@156
   339
        IMG_LIBS="-ltiff -lz $IMG_LIBS"
slouken@143
   340
    fi
slouken@143
   341
fi
slouken@168
   342
if test x$enable_jpg = xyes -a x$have_jpg_hdr = xyes -a x$have_jpg_lib = xyes; then
slouken@143
   343
    if test x$enable_jpg_shared = xyes && test x$jpg_lib != x; then
slouken@143
   344
        echo "-- dynamic libjpeg -> $jpg_lib"
slouken@143
   345
        AC_DEFINE_UNQUOTED(LOAD_JPG_DYNAMIC, "$jpg_lib")
slouken@143
   346
    else
slouken@143
   347
        IMG_LIBS="-ljpeg $IMG_LIBS"
slouken@143
   348
    fi
slouken@143
   349
fi
slouken@168
   350
if test x$enable_png = xyes -a x$have_png_hdr = xyes -a x$have_png_lib = xyes; then
slouken@143
   351
    if test x$enable_png_shared = xyes && test x$png_lib != x; then
slouken@143
   352
        echo "-- dynamic libpng -> $png_lib"
slouken@143
   353
        AC_DEFINE_UNQUOTED(LOAD_PNG_DYNAMIC, "$png_lib")
slouken@143
   354
    else
slouken@143
   355
        IMG_LIBS="-lpng -lz $IMG_LIBS"
slouken@143
   356
    fi
slouken@143
   357
fi
slouken@143
   358
slouken@137
   359
LIBS="$saved_LIBS"
slouken@137
   360
slouken@168
   361
AC_SUBST([WINDRES])
slouken@168
   362
AC_SUBST([IMG_LIBS])
slouken@0
   363
slouken@279
   364
OBJCFLAGS=$CFLAGS
slouken@279
   365
slouken@0
   366
# Finally create all the generated files
slouken@0
   367
AC_OUTPUT([
slouken@0
   368
Makefile
slouken@321
   369
SDL2_image.spec
slouken@321
   370
SDL2_image.pc
slouken@0
   371
])