Fix warnings when compiling with a recent MSVC.
[opusfile.git] / configure.ac
1 # autoconf source script for generating configure
2
3 AC_INIT([opusfile], m4_esyscmd([doc/git-version.sh]))
4
5 AC_USE_SYSTEM_EXTENSIONS
6 AC_SYS_LARGEFILE
7
8 AM_INIT_AUTOMAKE([1.11 foreign])
9 AM_MAINTAINER_MODE([enable])
10 LT_INIT
11
12 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
14 AC_CONFIG_MACRO_DIR([m4])
15
16 dnl Library versioning for libtool.
17 dnl Please update these for releases.
18 dnl CURRENT, REVISION, AGE
19 dnl - library source changed -> increment REVISION
20 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
21 dnl - interfaces added -> increment AGE
22 dnl - interfaces removed -> AGE = 0
23
24 OP_LT_CURRENT=0
25 OP_LT_REVISION=1
26 OP_LT_AGE=0
27
28 AC_SUBST(OP_LT_CURRENT)
29 AC_SUBST(OP_LT_REVISION)
30 AC_SUBST(OP_LT_AGE)
31
32 CC_CHECK_CFLAGS_APPEND(
33   [-std=c89 -pedantic -Wall -Wextra -Wno-parentheses -Wno-long-long])
34
35 # Platform-specific tweaks
36 case $host in
37   *-mingw*)
38     # -std=c89 causes some warnings under mingw.
39     CC_CHECK_CFLAGS_APPEND([-U__STRICT_ANSI__])
40     # We need WINNT>=0x501 (WindowsXP) for getaddrinfo/freeaddrinfo.
41     # It's okay to define this even when HTTP support is disabled, as it only
42     #  affects header declarations, not linking (unless we actually use some
43     #  XP-only functions).
44     AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x501,
45      [We need at least WindowsXP for getaddrinfo/freaddrinfo])
46     host_mingw=true
47     ;;
48 esac
49 AM_CONDITIONAL(OP_WIN32, test "x$host_mingw" = xtrue)
50
51 AC_ARG_ENABLE([assertions],
52   AS_HELP_STRING([--enable-assertions], [Enable assertions in code]),,
53   enable_assertions=no)
54
55 AS_IF([test "x$enable_assertions" = "xyes"], [
56   AC_DEFINE([OP_ENABLE_ASSERTIONS], [1], [Enable assertions in code])
57 ])
58
59 AC_ARG_ENABLE([http],
60   AS_HELP_STRING([--disable-http], [Disable HTTP support]),,
61   enable_http=yes)
62
63 AM_COND_IF(OP_WIN32,
64   AS_IF([test "x$enable_http" != "xno"],
65     AC_CHECK_HEADER([winsock2.h],,
66       AC_MSG_WARN([HTTP support requires a Winsock socket library.])
67       enable_http=no
68     )
69   ),
70   AS_IF([test "x$enable_http" != "xno"],
71     AC_CHECK_HEADER([sys/socket.h],,
72       AC_MSG_WARN([HTTP support requires a POSIX socket library.])
73       enable_http=no
74     )
75   )
76 )
77
78 AS_IF([test "x$enable_http" != "xno"], [
79    openssl="openssl"
80    AC_DEFINE([OP_ENABLE_HTTP], [1], [Enable HTTP support])
81 ])
82 AM_CONDITIONAL(OP_ENABLE_HTTP, [test "x$enable_http" != "xno"])
83 AC_SUBST(openssl)
84
85 PKG_CHECK_MODULES([DEPS], [ogg >= 1.3 opus >= 1.0.1 ${openssl}])
86
87 AC_ARG_ENABLE([fixed-point],
88   AS_HELP_STRING([--enable-fixed-point], [Enable fixed-point calculation]),,
89   enable_fixed_point=no)
90 AC_ARG_ENABLE([float],
91   AS_HELP_STRING([--disable-float], [Disable floating-point API]),,
92   enable_float=yes)
93
94 AS_IF([test "x$enable_float" = "xno"],
95   [enable_fixed_point=yes
96    AC_DEFINE([OP_DISABLE_FLOAT_API], [1], [Disable floating-point API])
97   ]
98 )
99
100 AS_IF([test "x$enable_fixed_point" = "xyes"],
101   [AC_DEFINE([OP_FIXED_POINT], [1], [Enable fixed-point calculation])],
102   [dnl This only has to be tested for if float->fixed conversions are required
103    AC_SEARCH_LIBS([lrintf], [m], [
104       AC_DEFINE([OP_HAVE_LRINTF], [1], [Enable use of lrintf function])
105       lrintf_notice="
106     Library for lrintf() ......... ${ac_cv_search_lrintf}"
107    ])
108   ]
109 )
110 AC_SUBST(ac_cv_search_lrintf)
111
112 CC_ATTRIBUTE_VISIBILITY([default], [
113   CC_FLAG_VISIBILITY([CFLAGS="${CFLAGS} -fvisibility=hidden"])
114 ])
115
116 dnl Check for doxygen
117 AC_ARG_ENABLE([doc],
118   AS_HELP_STRING([--disable-doc], [Do not build API documentation]),,
119   [enable_doc=yes]
120 )
121 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, yes, no)
122 if test "$HAVE_DOXYGEN" != "yes" -o "$enable_doc" != "yes" ; then
123   HAVE_DOXYGEN="no"
124   enable_doc="no"
125 fi
126 AM_CONDITIONAL(HAVE_DOXYGEN, [test $HAVE_DOXYGEN = yes])
127
128 AC_OUTPUT([
129   Makefile
130   opusfile.pc
131   opusfile-uninstalled.pc
132   doc/Doxyfile
133 ])
134
135 AC_MSG_NOTICE([
136 ------------------------------------------------------------------------
137   $PACKAGE $VERSION: Automatic configuration OK.
138
139     Assertions ................... ${enable_assertions}
140
141     HTTP support ................. ${enable_http}
142     Fixed-point .................. ${enable_fixed_point}
143     Floating-point API ........... ${enable_float}${lrintf_notice}
144
145     Hidden visibility ............ ${cc_cv_flag_visibility}
146
147     API documentation ............ ${enable_doc}
148 ------------------------------------------------------------------------
149 ])