more splitting
[libopusenc.git] / configure.ac
1 # autoconf source script for generating configure
2
3 dnl The package_version file will be automatically synced to the git revision
4 dnl by the update_version script when configured in the repository, but will
5 dnl remain constant in tarball releases unless it is manually edited.
6 m4_define([CURRENT_VERSION],
7           m4_esyscmd([ ./update_version 2>/dev/null || true
8                        if test -e package_version; then
9                            . ./package_version
10                            printf "$PACKAGE_VERSION"
11                        else
12                            printf "unknown"
13                        fi ]))
14
15 AC_INIT([opusenc],[CURRENT_VERSION],[opus@xiph.org])
16 AC_CONFIG_SRCDIR([src/opusenc.c])
17 AC_CONFIG_MACRO_DIR([m4])
18
19 AC_USE_SYSTEM_EXTENSIONS
20 AC_SYS_LARGEFILE
21
22 AM_INIT_AUTOMAKE([1.11 foreign no-define dist-zip subdir-objects])
23 AM_MAINTAINER_MODE([enable])
24
25 AC_C_INLINE
26
27 LT_INIT
28
29 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
30
31 AC_DEFINE([OPE_BUILD], [], [This is a build of opusenc])
32
33 dnl Library versioning for libtool.
34 dnl Please update these for releases.
35 dnl CURRENT, REVISION, AGE
36 dnl - library source changed -> increment REVISION
37 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
38 dnl - interfaces added -> increment AGE
39 dnl - interfaces removed -> AGE = 0
40
41 OP_LT_CURRENT=4
42 OP_LT_REVISION=1
43 OP_LT_AGE=4
44
45 AC_SUBST(OP_LT_CURRENT)
46 AC_SUBST(OP_LT_REVISION)
47 AC_SUBST(OP_LT_AGE)
48
49 CC_CHECK_CFLAGS_APPEND(
50   [-pedantic -Wall -Wextra -Wno-parentheses -Wno-long-long])
51
52 # Platform-specific tweaks
53 case $host in
54   *-mingw*)
55     # -std=c89 causes some warnings under mingw.
56     CC_CHECK_CFLAGS_APPEND([-U__STRICT_ANSI__])
57     # We need WINNT>=0x501 (WindowsXP) for getaddrinfo/freeaddrinfo.
58     # It's okay to define this even when HTTP support is disabled, as it only
59     #  affects header declarations, not linking (unless we actually use some
60     #  XP-only functions).
61     AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x501,
62      [We need at least WindowsXP for getaddrinfo/freeaddrinfo])
63     host_mingw=true
64     ;;
65 esac
66 AM_CONDITIONAL(OP_WIN32, test "$host_mingw" = "true")
67
68 AC_ARG_ENABLE([assertions],
69   AS_HELP_STRING([--enable-assertions], [Enable assertions in code]),,
70   enable_assertions=no)
71
72 AS_IF([test "$enable_assertions" = "yes"], [
73   AC_DEFINE([OP_ENABLE_ASSERTIONS], [1], [Enable assertions in code])
74 ])
75
76 AC_ARG_ENABLE([http],
77   AS_HELP_STRING([--disable-http], [Disable HTTP support]),,
78   enable_http=yes)
79
80 AM_COND_IF(OP_WIN32,
81   AS_IF([test "$enable_http" != "no"],
82     AC_CHECK_HEADER([winsock2.h],,
83       AC_MSG_WARN([HTTP support requires a Winsock socket library.])
84       enable_http=no
85     )
86   ),
87   AS_IF([test "$enable_http" != "no"],
88     AC_CHECK_HEADER([sys/socket.h],,
89       AC_MSG_WARN([HTTP support requires a POSIX socket library.])
90       enable_http=no
91     )
92   )
93 )
94 AC_SEARCH_LIBS(ftime, [compat], , [enable_http=no])
95
96 AS_IF([test "$enable_http" != "no"], [
97    openssl="openssl"
98    AC_DEFINE([OP_ENABLE_HTTP], [1], [Enable HTTP support])
99    PKG_CHECK_MODULES([URL_DEPS], [openssl])
100 ])
101 AM_CONDITIONAL(OP_ENABLE_HTTP, [test "$enable_http" != "no"])
102 AC_SUBST([openssl])
103
104 PKG_CHECK_MODULES([DEPS], [ogg >= 1.3 opus >= 1.0.1])
105
106 AC_ARG_ENABLE([fixed-point],
107   AS_HELP_STRING([--enable-fixed-point], [Enable fixed-point calculation]),,
108   enable_fixed_point=no)
109 AC_ARG_ENABLE([float],
110   AS_HELP_STRING([--disable-float], [Disable floating-point API]),,
111   enable_float=yes)
112
113 AS_IF([test "$enable_float" = "no"],
114   [enable_fixed_point=yes
115    AC_DEFINE([OP_DISABLE_FLOAT_API], [1], [Disable floating-point API])
116   ]
117 )
118
119 AS_IF([test "$enable_fixed_point" = "yes"],
120   [AC_DEFINE([OP_FIXED_POINT], [1], [Enable fixed-point calculation])],
121   [dnl This only has to be tested for if float->fixed conversions are required
122    saved_LIBS="$LIBS"
123    AC_SEARCH_LIBS([lrintf], [m], [
124       AC_DEFINE([OP_HAVE_LRINTF], [1], [Enable use of lrintf function])
125       lrintf_notice="
126     Library for lrintf() ......... ${ac_cv_search_lrintf}"
127    ])
128    LIBS="$saved_LIBS"
129   ]
130 )
131
132 AC_ARG_ENABLE([examples],
133   AS_HELP_STRING([--disable-examples], [Do not build example applications]),,
134   enable_examples=yes)
135 AM_CONDITIONAL([OP_ENABLE_EXAMPLES], [test "$enable_examples" = "yes"])
136
137 AS_CASE(["$ac_cv_search_lrintf"],
138   ["no"],[],
139   ["none required"],[],
140   [lrintf_lib="$ac_cv_search_lrintf"])
141
142 AC_SUBST([lrintf_lib])
143
144 CC_ATTRIBUTE_VISIBILITY([default], [
145   CC_FLAG_VISIBILITY([CFLAGS="${CFLAGS} -fvisibility=hidden"])
146 ])
147
148 dnl Check for doxygen
149 AC_ARG_ENABLE([doc],
150   AS_HELP_STRING([--disable-doc], [Do not build API documentation]),,
151   [enable_doc=yes]
152 )
153
154 AS_IF([test "$enable_doc" = "yes"], [
155   AC_CHECK_PROG([HAVE_DOXYGEN], [doxygen], [yes], [no])
156   AC_CHECK_PROG([HAVE_DOT], [dot], [yes], [no])
157 ],[
158   HAVE_DOXYGEN=no
159 ])
160
161 AM_CONDITIONAL([HAVE_DOXYGEN], [test "$HAVE_DOXYGEN" = "yes"])
162
163 AC_CONFIG_FILES([
164   Makefile
165   opusenc.pc
166   opusenc-uninstalled.pc
167   doc/Doxyfile
168 ])
169 AC_CONFIG_HEADERS([config.h])
170 AC_OUTPUT
171
172 AC_MSG_NOTICE([
173 ------------------------------------------------------------------------
174   $PACKAGE_NAME $PACKAGE_VERSION: Automatic configuration OK.
175
176     Assertions ................... ${enable_assertions}
177
178     HTTP support ................. ${enable_http}
179     Fixed-point .................. ${enable_fixed_point}
180     Floating-point API ........... ${enable_float}${lrintf_notice}
181
182     Hidden visibility ............ ${cc_cv_flag_visibility}
183
184     API code examples ............ ${enable_examples}
185     API documentation ............ ${enable_doc}
186 ------------------------------------------------------------------------
187 ])