annotate src/libsamplerate-0.1.8/configure.ac @ 120:c9cf28b398fb

Add win64-mingw builds
author Chris Cannam <cannam@all-day-breakfast.com>
date Thu, 30 Oct 2014 17:29:41 +0000
parents 545efbb81310
children
rev   line source
cannam@85 1 # Copyright (C) 2002-2011 Erik de Castro Lopo (erikd AT mega-nerd DOT com).
cannam@85 2
cannam@85 3 dnl Require autoconf version
cannam@85 4 AC_PREREQ(2.57)
cannam@85 5
cannam@85 6 AC_INIT([libsamplerate],[0.1.8],[erikd@mega-nerd.com],
cannam@85 7 [libsamplerate],[http://www.mega-nerd.com/libsamplerate/])
cannam@85 8
cannam@85 9 # Put config stuff in Cfg.
cannam@85 10 AC_CONFIG_AUX_DIR(Cfg)
cannam@85 11
cannam@85 12 AC_CONFIG_SRCDIR([src/samplerate.c])
cannam@85 13 AC_CANONICAL_TARGET([])
cannam@85 14
cannam@85 15 AC_CONFIG_MACRO_DIR([M4])
cannam@85 16 AC_CONFIG_HEADERS([src/config.h])
cannam@85 17
cannam@85 18 AM_INIT_AUTOMAKE($PACKAGE_NAME,$PACKAGE_VERSION)
cannam@85 19 AM_SILENT_RULES([yes])
cannam@85 20
cannam@85 21 dnl Add parameters for aclocal
cannam@85 22 AC_SUBST(ACLOCAL_AMFLAGS, "-I M4")
cannam@85 23
cannam@85 24 AC_LANG([C])
cannam@85 25
cannam@85 26 AC_PROG_CC
cannam@85 27 AM_PROG_CC_C_O
cannam@85 28 AC_PROG_CXX
cannam@85 29 AC_PROG_SED
cannam@85 30
cannam@85 31 # Do not check for F77.
cannam@85 32 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
cannam@85 33
cannam@85 34 AM_PROG_LIBTOOL
cannam@85 35 LT_PROG_RC
cannam@85 36
cannam@85 37 AC_PROG_INSTALL
cannam@85 38 AC_PROG_LN_S
cannam@85 39
cannam@85 40 #------------------------------------------------------------------------------------
cannam@85 41 # Rules for library version information:
cannam@85 42 #
cannam@85 43 # 1. Start with version information of `0:0:0' for each libtool library.
cannam@85 44 # 2. Update the version information only immediately before a public release of
cannam@85 45 # your software. More frequent updates are unnecessary, and only guarantee
cannam@85 46 # that the current interface number gets larger faster.
cannam@85 47 # 3. If the library source code has changed at all since the last update, then
cannam@85 48 # increment revision (`c:r:a' becomes `c:r+1:a').
cannam@85 49 # 4. If any interfaces have been added, removed, or changed since the last update,
cannam@85 50 # increment current, and set revision to 0.
cannam@85 51 # 5. If any interfaces have been added since the last public release, then increment
cannam@85 52 # age.
cannam@85 53 # 6. If any interfaces have been removed since the last public release, then set age
cannam@85 54 # to 0.
cannam@85 55
cannam@85 56 SHARED_VERSION_INFO="1:8:1"
cannam@85 57
cannam@85 58
cannam@85 59
cannam@85 60
cannam@85 61
cannam@85 62 AC_PROG_MAKE_SET
cannam@85 63 AC_PROG_LN_S
cannam@85 64 AC_PROG_MKDIR_P
cannam@85 65
cannam@85 66 if test "x-$build_os-$host_os-$target_os" = x-mingw32-mingw32-mingw32 ; then
cannam@85 67 AC_CHECK_PROG(DLLTOOL, dlltool, dlltool)
cannam@85 68 AC_CHECK_PROG(DLLWRAP, dllwrap, dllwrap)
cannam@85 69 AC_CHECK_PROG(PEXPORTS, pexports, pexports)
cannam@85 70 fi
cannam@85 71
cannam@85 72 AC_HEADER_STDC
cannam@85 73
cannam@85 74 AC_CHECK_HEADERS(stdint.h sys/times.h)
cannam@85 75
cannam@85 76 #====================================================================================
cannam@85 77 # Couple of initializations here. Fill in real values later.
cannam@85 78
cannam@85 79 SHLIB_VERSION_ARG=""
cannam@85 80
cannam@85 81 #====================================================================================
cannam@85 82 # Finished checking, handle options.
cannam@85 83
cannam@85 84 AC_ARG_ENABLE(gcc-werror,
cannam@85 85 AC_HELP_STRING([--enable-gcc-werror], [enable -Werror in all Makefiles]),
cannam@85 86 ac_arg_gcc_werror=yes, ac_arg_gcc_werror=no)
cannam@85 87
cannam@85 88 AC_ARG_ENABLE(gcc-pipe,
cannam@85 89 AC_HELP_STRING([--disable-gcc-pipe], [disable gcc -pipe option ]),
cannam@85 90 ac_arg_gcc_pipe="N", ac_arg_gcc_pipe="Y")
cannam@85 91
cannam@85 92 AC_ARG_ENABLE(gcc-opt,
cannam@85 93 AC_HELP_STRING([--disable-gcc-opt], [disable gcc optimisations ]),
cannam@85 94 ac_arg_gcc_opt="N", ac_arg_gcc_opt="Y")
cannam@85 95
cannam@85 96 AC_ARG_ENABLE(fftw,
cannam@85 97 AC_HELP_STRING([--disable-fftw], [disable usage of FFTW ]),
cannam@85 98 ac_arg_fftw="N", ac_arg_fftw="Y")
cannam@85 99
cannam@85 100 AC_ARG_ENABLE(cpu-clip,
cannam@85 101 AC_HELP_STRING([--disable-cpu-clip], [disable tricky cpu specific clipper]),
cannam@85 102 ac_arg_cpu_clip="N", ac_arg_cpu_clip="Y")
cannam@85 103
cannam@85 104 #====================================================================================
cannam@85 105 # Check types and their sizes.
cannam@85 106
cannam@85 107 AC_CHECK_SIZEOF(int,0)
cannam@85 108 AC_CHECK_SIZEOF(long,0)
cannam@85 109 AC_CHECK_SIZEOF(float,4)
cannam@85 110 AC_CHECK_SIZEOF(double,8)
cannam@85 111
cannam@85 112 #====================================================================================
cannam@85 113 # Determine endian-ness of target processor.
cannam@85 114
cannam@85 115 AC_C_FIND_ENDIAN
cannam@85 116
cannam@85 117 AC_DEFINE_UNQUOTED(CPU_IS_BIG_ENDIAN, ${ac_cv_c_big_endian},
cannam@85 118 [Target processor is big endian.])
cannam@85 119 AC_DEFINE_UNQUOTED(CPU_IS_LITTLE_ENDIAN, ${ac_cv_c_little_endian},
cannam@85 120 [Target processor is little endian.])
cannam@85 121
cannam@85 122 #====================================================================================
cannam@85 123 # Check for functions.
cannam@85 124
cannam@85 125 AC_CHECK_FUNCS(malloc calloc free memcpy memmove alarm signal)
cannam@85 126
cannam@85 127 AC_CHECK_LIB([m],floor)
cannam@85 128 AC_CHECK_FUNCS(floor ceil fmod)
cannam@85 129
cannam@85 130 AC_CHECK_SIGNAL(SIGALRM)
cannam@85 131
cannam@85 132 AC_C99_FUNC_LRINT
cannam@85 133 AC_C99_FUNC_LRINTF
cannam@85 134 # AC_C99_FUNC_LLRINT Don't need this (yet?).
cannam@85 135
cannam@85 136 case "x$ac_cv_c99_lrint$ac_cv_c99_lrintf" in
cannam@85 137 xyesyes)
cannam@85 138 ;;
cannam@85 139 *)
cannam@85 140 AC_MSG_WARN([[*** Missing C99 standard functions lrint() and lrintf().]])
cannam@85 141 AC_MSG_WARN([[*** This may cause benign compiler warnings on some systems (ie Solaris).]])
cannam@85 142 ;;
cannam@85 143 esac
cannam@85 144
cannam@85 145 #====================================================================================
cannam@85 146 # Determine if the processor can do clipping on float to int conversions.
cannam@85 147
cannam@85 148 if test x$ac_arg_cpu_clip = "xY" ; then
cannam@85 149 AC_C_CLIP_MODE
cannam@85 150 else
cannam@85 151 echo "checking processor clipping capabilities... disabled"
cannam@85 152 ac_cv_c_clip_positive=0
cannam@85 153 ac_cv_c_clip_negative=0
cannam@85 154 fi
cannam@85 155
cannam@85 156 AC_DEFINE_UNQUOTED(CPU_CLIPS_POSITIVE, ${ac_cv_c_clip_positive},
cannam@85 157 [Target processor clips on positive float to int conversion.])
cannam@85 158 AC_DEFINE_UNQUOTED(CPU_CLIPS_NEGATIVE, ${ac_cv_c_clip_negative},
cannam@85 159 [Target processor clips on negative float to int conversion.])
cannam@85 160
cannam@85 161 #====================================================================================
cannam@85 162 # Check for libsndfile which is required for the test and example programs.
cannam@85 163
cannam@85 164 AC_ARG_ENABLE(sndfile,
cannam@85 165 AC_HELP_STRING([--disable-sndfile], [disable support for sndfile (default=autodetect)]),
cannam@85 166 [ enable_sndfile=$enableval ], [ enable_sndfile=yes ])
cannam@85 167
cannam@85 168 # Check for pkg-config outside the if statement.
cannam@85 169 PKG_PROG_PKG_CONFIG
cannam@85 170
cannam@85 171 if test "x$enable_sndfile" = "xyes"; then
cannam@85 172 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.6, ac_cv_sndfile=1, ac_cv_sndfile=0)
cannam@85 173 else
cannam@85 174 ac_cv_sndfile=0
cannam@85 175 fi
cannam@85 176
cannam@85 177 AC_DEFINE_UNQUOTED([HAVE_SNDFILE],$ac_cv_sndfile,[Set to 1 if you have libsndfile.])
cannam@85 178
cannam@85 179 if test x$ac_cv_sndfile = x1 ; then
cannam@85 180 ac_cv_sndfile=yes
cannam@85 181 HAVE_SNDFILE=1
cannam@85 182 else
cannam@85 183 ac_cv_sndfile=no
cannam@85 184 HAVE_SNDFILE=0
cannam@85 185 fi
cannam@85 186
cannam@85 187 #====================================================================================
cannam@85 188 # Check for libfftw3 which is required for the test and example programs.
cannam@85 189
cannam@85 190 if test $ac_arg_fftw = "Y" ; then
cannam@85 191 PKG_CHECK_MODULES(FFTW3, fftw3 >= 0.15.0, ac_cv_fftw3=1, ac_cv_fftw3=0)
cannam@85 192 AC_DEFINE_UNQUOTED([HAVE_FFTW3],$ac_cv_fftw3,[Set to 1 if you have libfftw3.])
cannam@85 193
cannam@85 194 if test x$ac_cv_fftw3 = x1 ; then
cannam@85 195 ac_cv_fftw3=yes
cannam@85 196 HAVE_FFTW3=1
cannam@85 197 fi
cannam@85 198 fi
cannam@85 199
cannam@85 200 if test x$ac_cv_fftw3 != xyes ; then
cannam@85 201 ac_cv_fftw3=no
cannam@85 202 HAVE_FFTW3=0
cannam@85 203 fi
cannam@85 204
cannam@85 205 #====================================================================================
cannam@85 206 # GCC stuff.
cannam@85 207
cannam@85 208 if test $ac_cv_c_compiler_gnu = yes ; then
cannam@85 209 CFLAGS="$CFLAGS -std=gnu99 -W -Wstrict-prototypes -Wmissing-prototypes -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wpointer-arith"
cannam@85 210 # -Wundef -Wbad-function-cast -Wmissing-declarations -Wconversion -Winline"
cannam@85 211 if test "$ac_arg_gcc_opt" = "N" ; then
cannam@85 212 temp_CFLAGS=`echo $CFLAGS | sed "s/O2/O0/"`
cannam@85 213 CFLAGS=$temp_CFLAGS
cannam@85 214 AC_MSG_WARN([[*** Compiler optimisations switched off. ***]])
cannam@85 215 fi
cannam@85 216
cannam@85 217 # Disable -Wall for Apple Darwin/Rhapsody.
cannam@85 218 # System headers on these systems are broken.
cannam@85 219 case "$target_os" in
cannam@85 220 darwin* | rhapsody*)
cannam@85 221 temp_CFLAGS=`echo $CFLAGS | sed "s/-Wall//"`
cannam@85 222 CFLAGS=$temp_CFLAGS
cannam@85 223 ;;
cannam@85 224
cannam@85 225 linux*|kfreebsd*-gnu*|gnu*)
cannam@85 226 SHLIB_VERSION_ARG="-Wl,--version-script=Version_script"
cannam@85 227 ;;
cannam@85 228 *)
cannam@85 229 ;;
cannam@85 230 esac
cannam@85 231 if test x$ac_arg_gcc_pipe != "xN" ; then
cannam@85 232 CFLAGS="$CFLAGS -pipe"
cannam@85 233 fi
cannam@85 234
cannam@85 235 if test x$ac_arg_gcc_werror = "xyes" ; then
cannam@85 236 CFLAGS="-Werror $CFLAGS"
cannam@85 237 fi
cannam@85 238
cannam@85 239 AC_DEFINE([COMPILER_IS_GCC],1, [Set to 1 if the compile is GNU GCC.])
cannam@85 240 GCC_MAJOR_VERSION=`$CC -dumpversion | sed "s/\..*//"`
cannam@85 241 AC_DEFINE_UNQUOTED([GCC_MAJOR_VERSION],${GCC_MAJOR_VERSION}, [Major version of GCC or 3 otherwise.])
cannam@85 242 fi
cannam@85 243
cannam@85 244 #====================================================================================
cannam@85 245 # Find known target OS.
cannam@85 246
cannam@85 247 OS_SPECIFIC_INCLUDES=""
cannam@85 248 os_is_win32=0
cannam@85 249
cannam@85 250 case "$target_os" in
cannam@85 251 darwin* | rhapsody*)
cannam@85 252 OS_SPECIFIC_INCLUDES="-fpascal-strings -I/Developer/Headers/FlatCarbon"
cannam@85 253 OS_SPECIFIC_LINKS="-framework CoreAudio"
cannam@85 254 ;;
cannam@85 255 mingw32*)
cannam@85 256 OS_SPECIFIC_LINKS="-lwinmm"
cannam@85 257 os_is_win32=1
cannam@85 258 ;;
cannam@85 259 *)
cannam@85 260 OS_SPECIFIC_INCLUDES=""
cannam@85 261 OS_SPECIFIC_LINKS=""
cannam@85 262 ;;
cannam@85 263 esac
cannam@85 264
cannam@85 265 htmldocdir=$prefix/share/doc/libsamplerate0-dev/html
cannam@85 266
cannam@85 267 if test $prefix = "NONE" ; then
cannam@85 268 htmldocdir=/usr/local/share/doc/libsamplerate0-dev/html
cannam@85 269 else
cannam@85 270 htmldocdir=$prefix/share/doc/libsamplerate0-dev/html
cannam@85 271 fi
cannam@85 272
cannam@85 273 #====================================================================================
cannam@85 274 # Now use the information from the checking stage.
cannam@85 275
cannam@85 276 AC_DEFINE_UNQUOTED(OS_IS_WIN32, ${os_is_win32}, [Set to 1 if compiling for Win32])
cannam@85 277
cannam@85 278 AC_SUBST(htmldocdir)
cannam@85 279
cannam@85 280 AC_SUBST(SHLIB_VERSION_ARG)
cannam@85 281 AC_SUBST(SHARED_VERSION_INFO)
cannam@85 282 AC_SUBST(OS_SPECIFIC_INCLUDES)
cannam@85 283 AC_SUBST(OS_SPECIFIC_LINKS)
cannam@85 284
cannam@85 285 AC_SUBST(COMPILER_IS_GCC)
cannam@85 286 AC_SUBST(GCC_MAJOR_VERSION)
cannam@85 287
cannam@85 288 AC_SUBST(HAVE_FFTW3)
cannam@85 289 AC_SUBST(FFTW3_CFLAGS)
cannam@85 290 AC_SUBST(FFTW3_LIBS)
cannam@85 291
cannam@85 292 AC_SUBST(HAVE_SNDFILE)
cannam@85 293 AC_SUBST(SNDFILE_CFLAGS)
cannam@85 294 AC_SUBST(SNDFILE_LIBS)
cannam@85 295
cannam@85 296 AC_CONFIG_FILES([Makefile M4/Makefile src/Version_script \
cannam@85 297 Win32/Makefile Win32/Makefile.mingw \
cannam@85 298 src/Makefile examples/Makefile tests/Makefile doc/Makefile \
cannam@85 299 libsamplerate.spec samplerate.pc])
cannam@85 300 AC_OUTPUT
cannam@85 301
cannam@85 302 #====================================================================================
cannam@85 303
cannam@85 304 AC_MSG_RESULT([
cannam@85 305 -=-=-=-=-=-=-=-=-=-= Configuration Complete =-=-=-=-=-=-=-=-=-=-=-
cannam@85 306
cannam@85 307 Configuration summary :
cannam@85 308
cannam@85 309 Version : ..................... ${VERSION}
cannam@85 310
cannam@85 311 Host CPU : .................... ${host_cpu}
cannam@85 312 Host Vendor : ................. ${host_vendor}
cannam@85 313 Host OS : ..................... ${host_os}
cannam@85 314 ])
cannam@85 315
cannam@85 316 if test x$ac_cv_c_compiler_gnu = xyes ; then
cannam@85 317 echo -e " Tools :\n"
cannam@85 318 echo " Compiler is GCC : ............. ${ac_cv_c_compiler_gnu}"
cannam@85 319 echo " GCC major version : ........... ${GCC_MAJOR_VERSION}"
cannam@85 320 fi
cannam@85 321
cannam@85 322 AC_MSG_RESULT([
cannam@85 323 Extra tools required for testing and examples :
cannam@85 324
cannam@85 325 Use FFTW : .................... ${ac_cv_fftw3}])
cannam@85 326
cannam@85 327 AC_MSG_RESULT([ Have libsndfile : ............. ${ac_cv_sndfile}
cannam@85 328 ])
cannam@85 329
cannam@85 330 AC_MSG_RESULT([ Installation directories :
cannam@85 331
cannam@85 332 Library directory : ........... ${prefix}/lib
cannam@85 333 Program directory : ........... ${prefix}/bin
cannam@85 334 Pkgconfig directory : ......... ${prefix}/lib/pkgconfig
cannam@85 335 ])
cannam@85 336
cannam@85 337 if test x$prefix != "x/usr" ; then
cannam@85 338 echo "Compiling some other packages against ${PACKAGE} may require "
cannam@85 339 echo -e "the addition of \"${prefix}/lib/pkgconfig\" to the "
cannam@85 340 echo -e "PKG_CONFIG_PATH environment variable.\n"
cannam@85 341 fi
cannam@85 342