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