Fixes a crash on destroy with the pull API
[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([libopusenc],[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 libopusenc])
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=2
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-sign-compare -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 m4_ifndef([PKG_PROG_PKG_CONFIG],
77   [m4_fatal([Could not locate the pkg-config autoconf macros.
78 Please make sure pkg-config is installed and, if necessary, set the environment
79 variable ACLOCAL="aclocal -I/path/to/pkg.m4".])])
80
81 PKG_CHECK_MODULES([DEPS], [opus >= 1.1])
82
83 AC_ARG_ENABLE([fixed-point],
84   AS_HELP_STRING([--enable-fixed-point], [Enable fixed-point calculation]),,
85   enable_fixed_point=no)
86 AC_ARG_ENABLE([float],
87   AS_HELP_STRING([--disable-float], [Disable floating-point API]),,
88   enable_float=yes)
89
90 AC_DEFINE([RESAMPLE_FULL_SINC_TABLE], [1], [Faster, takes more memory])
91
92 AS_IF([test "$enable_float" = "no"],
93   [enable_fixed_point=yes
94    AC_DEFINE([OP_DISABLE_FLOAT_API], [1], [Disable floating-point API])
95   ]
96 )
97
98 AS_IF([test "$enable_fixed_point" = "yes"],
99   [AC_DEFINE([OP_FIXED_POINT], [1], [Enable fixed-point calculation])],
100   [dnl This only has to be tested for if float->fixed conversions are required
101    saved_LIBS="$LIBS"
102    AC_SEARCH_LIBS([lrintf], [m], [
103       AC_DEFINE([OP_HAVE_LRINTF], [1], [Enable use of lrintf function])
104       lrintf_notice="
105     Library for lrintf() ......... ${ac_cv_search_lrintf}"
106    ])
107    LIBS="$saved_LIBS"
108   ]
109 )
110
111 AC_ARG_ENABLE([examples],
112   AS_HELP_STRING([--disable-examples], [Do not build example applications]),,
113   enable_examples=yes)
114 AM_CONDITIONAL([OP_ENABLE_EXAMPLES], [test "$enable_examples" = "yes"])
115
116 AS_CASE(["$ac_cv_search_lrintf"],
117   ["no"],[],
118   ["none required"],[],
119   [lrintf_lib="$ac_cv_search_lrintf"])
120
121 AC_SUBST([lrintf_lib])
122
123 CC_ATTRIBUTE_VISIBILITY([default], [
124   CC_FLAG_VISIBILITY([CFLAGS="${CFLAGS} -fvisibility=hidden"])
125 ])
126
127 dnl Check for doxygen
128 AC_ARG_ENABLE([doc],
129   AS_HELP_STRING([--disable-doc], [Do not build API documentation]),,
130   [enable_doc=yes]
131 )
132
133 AS_IF([test "$enable_doc" = "yes"], [
134   AC_CHECK_PROG([HAVE_DOXYGEN], [doxygen], [yes], [no])
135   AC_CHECK_PROG([HAVE_DOT], [dot], [yes], [no])
136 ],[
137   HAVE_DOXYGEN=no
138 ])
139
140 AM_CONDITIONAL([HAVE_DOXYGEN], [test "$HAVE_DOXYGEN" = "yes"])
141
142 AC_CONFIG_FILES([
143   Makefile
144   libopusenc.pc
145   libopusenc-uninstalled.pc
146   doc/Doxyfile
147 ])
148 AC_CONFIG_HEADERS([config.h])
149 AC_OUTPUT
150
151 AC_MSG_NOTICE([
152 ------------------------------------------------------------------------
153   $PACKAGE_NAME $PACKAGE_VERSION: Automatic configuration OK.
154
155     Assertions ................... ${enable_assertions}
156
157     Fixed-point .................. ${enable_fixed_point}
158     Floating-point API ........... ${enable_float}${lrintf_notice}
159
160     Hidden visibility ............ ${cc_cv_flag_visibility}
161
162     API code examples ............ ${enable_examples}
163     API documentation ............ ${enable_doc}
164 ------------------------------------------------------------------------
165 ])