Revert "Allow the examples to build with --disable-http"
[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    PKG_CHECK_MODULES([URL_DEPS], [openssl])
82 ])
83 AM_CONDITIONAL(OP_ENABLE_HTTP, [test "x$enable_http" != "xno"])
84 AC_SUBST([openssl])
85
86 PKG_CHECK_MODULES([DEPS], [ogg >= 1.3 opus >= 1.0.1])
87
88 AC_ARG_ENABLE([fixed-point],
89   AS_HELP_STRING([--enable-fixed-point], [Enable fixed-point calculation]),,
90   enable_fixed_point=no)
91 AC_ARG_ENABLE([float],
92   AS_HELP_STRING([--disable-float], [Disable floating-point API]),,
93   enable_float=yes)
94
95 AS_IF([test "x$enable_float" = "xno"],
96   [enable_fixed_point=yes
97    AC_DEFINE([OP_DISABLE_FLOAT_API], [1], [Disable floating-point API])
98   ]
99 )
100
101 AS_IF([test "x$enable_fixed_point" = "xyes"],
102   [AC_DEFINE([OP_FIXED_POINT], [1], [Enable fixed-point calculation])],
103   [dnl This only has to be tested for if float->fixed conversions are required
104    AC_SEARCH_LIBS([lrintf], [m], [
105       AC_DEFINE([OP_HAVE_LRINTF], [1], [Enable use of lrintf function])
106       lrintf_notice="
107     Library for lrintf() ......... ${ac_cv_search_lrintf}"
108    ])
109   ]
110 )
111 lrintf_lib="$ac_cv_search_lrintf"
112 AS_IF([test "x$ac_cv_search_lrintf" = "xnone required"],
113   [lrintf_lib=""]
114 )
115 AC_SUBST(lrintf_lib)
116
117 CC_ATTRIBUTE_VISIBILITY([default], [
118   CC_FLAG_VISIBILITY([CFLAGS="${CFLAGS} -fvisibility=hidden"])
119 ])
120
121 dnl Check for doxygen
122 AC_ARG_ENABLE([doc],
123   AS_HELP_STRING([--disable-doc], [Do not build API documentation]),,
124   [enable_doc=yes]
125 )
126 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, yes, no)
127 if test "$HAVE_DOXYGEN" != "yes" -o "$enable_doc" != "yes" ; then
128   HAVE_DOXYGEN="no"
129   enable_doc="no"
130 fi
131 AM_CONDITIONAL(HAVE_DOXYGEN, [test $HAVE_DOXYGEN = yes])
132
133 AC_OUTPUT([
134   Makefile
135   opusfile.pc
136   opusurl.pc
137   opusfile-uninstalled.pc
138   opusurl-uninstalled.pc
139   doc/Doxyfile
140 ])
141
142 AC_MSG_NOTICE([
143 ------------------------------------------------------------------------
144   $PACKAGE $VERSION: Automatic configuration OK.
145
146     Assertions ................... ${enable_assertions}
147
148     HTTP support ................. ${enable_http}
149     Fixed-point .................. ${enable_fixed_point}
150     Floating-point API ........... ${enable_float}${lrintf_notice}
151
152     Hidden visibility ............ ${cc_cv_flag_visibility}
153
154     API documentation ............ ${enable_doc}
155 ------------------------------------------------------------------------
156 ])