1AC_PREREQ([2.69])
2
3dnl initialize autoconf
4dnl when going to/from release please set the nano (fourth number) right !
5dnl releases only do Wall, git and prerelease does Werror too
6dnl
7AC_INIT([GStreamer],[1.16.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
8AG_GST_INIT
9
10dnl initialize automake (we require GNU make)
11AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
12
13dnl define PACKAGE_VERSION_* variables
14AS_VERSION
15
16dnl check if this is a release version
17AS_NANO(GST_GIT="no", GST_GIT="yes")
18
19dnl can autoconf find the source ?
20AC_CONFIG_SRCDIR([gst/gst.c])
21
22dnl define the output header for config
23AC_CONFIG_HEADERS([config.h])
24
25dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26AM_MAINTAINER_MODE([enable])
27
28dnl sets host_* variables
29AC_CANONICAL_HOST
30
31dnl use pretty build output by default
32AM_SILENT_RULES([yes])
33
34dnl GStreamer versioning, this is mostly informational
35GST_VERSION_MAJOR=$PACKAGE_VERSION_MAJOR
36GST_VERSION_MINOR=$PACKAGE_VERSION_MINOR
37GST_VERSION_MICRO=$PACKAGE_VERSION_MICRO
38GST_VERSION_NANO=$PACKAGE_VERSION_NANO
39AC_SUBST(GST_VERSION_MAJOR)
40AC_SUBST(GST_VERSION_MINOR)
41AC_SUBST(GST_VERSION_MICRO)
42AC_SUBST(GST_VERSION_NANO)
43
44dnl our libraries and install dirs use GST_API_VERSION in the filename
45dnl to allow side-by-side installation of different API versions
46GST_API_VERSION=1.0
47AC_SUBST(GST_API_VERSION)
48AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
49  [GStreamer API Version])
50
51dnl CURRENT, REVISION, AGE
52dnl - library source changed -> increment REVISION
53dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
54dnl - interfaces added -> increment AGE
55dnl - interfaces removed -> AGE = 0
56dnl
57dnl Keep CURRENT as MINOR * 100 + MICRO
58dnl Ex : 1.0.0 => 0
59dnl      1.0.3 => 3
60dnl      1.1.0 => 100
61dnl      1.2.5 => 205
62dnl      1.10.9 (who knows) => 1009
63dnl
64dnl sets GST_LT_LDFLAGS
65AS_LIBTOOL(GST, 1602, 0, 1602)
66
67dnl *** autotools stuff ****
68
69dnl allow for different autotools
70AS_AUTOTOOLS_ALTERNATE
71
72dnl Add parameters for aclocal (keep in sync with Makefile.am)
73AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
74
75dnl set up gettext
76dnl the version check needs to stay here because autopoint greps for it
77AM_GNU_GETTEXT_VERSION([0.17])
78AM_GNU_GETTEXT([external])
79AG_GST_GETTEXT([gstreamer-$GST_API_VERSION])
80
81dnl *** check for arguments to configure ***
82
83AG_GST_ARG_DISABLE_FATAL_WARNINGS
84AG_GST_ARG_ENABLE_EXTRA_CHECKS
85
86dnl subsystems - can influence other decisions so needs to be high up
87dnl we need to AM_CONDITIONAL them here for automake 1.6.x compatibility
88AG_GST_CHECK_SUBSYSTEM_DISABLE(GST_DEBUG,[debugging subsystem])
89AM_CONDITIONAL(GST_DISABLE_GST_DEBUG, test "x$GST_DISABLE_GST_DEBUG" = "xyes")
90AG_GST_CHECK_SUBSYSTEM_DISABLE(GST_TRACER_HOOKS,[tracing subsystem hooks])
91AM_CONDITIONAL(GST_DISABLE_GST_TRACER_HOOKS, test "x$GST_DISABLE_GST_TRACER_HOOKS" = "xyes")
92if test "x$GST_DISABLE_GST_TRACER_HOOKS" = xyes; then
93  AC_DEFINE(GST_DISABLE_GST_TRACER_HOOKS, 1,
94    [Define if tracing subsystem hooks is disabled])
95fi
96AG_GST_CHECK_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
97AM_CONDITIONAL(GST_DISABLE_PARSE, test "x$GST_DISABLE_PARSE" = "xyes")
98if test "x$GST_DISABLE_PARSE" = xyes; then
99  AC_DEFINE(GST_DISABLE_PARSE, 1,
100    [Define if pipeline parsing code is disabled])
101fi
102AG_GST_CHECK_SUBSYSTEM_DISABLE(OPTION_PARSING,[option parsing when gst_init])
103AM_CONDITIONAL(GST_DISABLE_OPTION_PARSING, test "x$GST_DISABLE_OPTION_PARSING" = "xyes")
104if test "x$GST_DISABLE_OPTION_PARSING" = xyes; then
105  AC_DEFINE(GST_DISABLE_OPTION_PARSING, 1,
106    [Define if option parsing is disabled])
107fi
108AG_GST_CHECK_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
109AM_CONDITIONAL(GST_DISABLE_REGISTRY, test "x$GST_DISABLE_REGISTRY" = "xyes")
110dnl define a substitution to use in docs/gst/gstreamer.types
111if test "x$GST_DISABLE_REGISTRY" = "xyes"
112then
113  GST_REGISTRY_DOC_TYPES="%"
114else
115  GST_REGISTRY_DOC_TYPES=
116fi
117AC_SUBST(GST_REGISTRY_DOC_TYPES)
118AG_GST_CHECK_SUBSYSTEM_DISABLE(PLUGIN,[plugin])
119AM_CONDITIONAL(GST_DISABLE_PLUGIN, test "x$GST_DISABLE_PLUGIN" = "xyes")
120
121GST_DISABLE_CAST_CHECKS_DEFINE=0
122AC_SUBST(GST_DISABLE_CAST_CHECKS_DEFINE)
123
124GST_DISABLE_GLIB_ASSERTS_DEFINE=0
125AC_SUBST(GST_DISABLE_GLIB_ASSERTS_DEFINE)
126
127GST_DISABLE_GLIB_CHECKS_DEFINE=0
128AC_SUBST(GST_DISABLE_GLIB_CHECKS_DEFINE)
129
130
131AG_GST_ARG_DEBUG
132AG_GST_ARG_PROFILING
133AG_GST_ARG_VALGRIND
134AG_GST_ARG_GCOV
135
136AG_GST_ARG_EXAMPLES
137
138AG_GST_ARG_WITH_PKG_CONFIG_PATH
139AG_GST_ARG_WITH_PACKAGE_NAME
140AG_GST_ARG_WITH_PACKAGE_ORIGIN
141
142AG_GST_PKG_CONFIG_PATH
143
144AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
145  ["${srcdir}/gstreamer.doap"],
146  [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
147
148# We only use this when building with MSVC, which is only done with the
149# alternate Meson build system files
150GSTCONFIG_BUILT_WITH_MSVC=0
151AC_SUBST(GSTCONFIG_BUILT_WITH_MSVC)
152
153dnl check for bash completion
154AC_ARG_WITH([bash-completion-dir],
155    AS_HELP_STRING([--with-bash-completion-dir[=PATH]],
156        [Install the bash auto-completion script in this directory. @<:@default=yes@:>@]),
157    [],
158    [with_bash_completion_dir=yes])
159
160if test "x$with_bash_completion_dir" = "xyes"
161then
162    extra_args=
163
164    if test "x$prefix" != "xNONE"
165    then
166        extra_args="--define-variable=prefix=\"$prefix\""
167    fi
168
169    PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0],
170        [
171          BASH_COMPLETION_DIR="`eval pkg-config $extra_args --variable=completionsdir bash-completion`"
172          BASH_HELPERS_DIR="`eval pkg-config $extra_args --variable=helpersdir bash-completion`"
173        ],
174        [
175          BASH_COMPLETION_DIR="$datadir/bash-completion/completions"
176          BASH_HELPERS_DIR="$datadir/bash-completion/helpers"
177        ])
178else
179    BASH_COMPLETION_DIR="$with_bash_completion_dir/completions"
180    BASH_HELPERS_DIR="$with_bash_completion_dir/helpers"
181fi
182
183AC_SUBST([BASH_COMPLETION_DIR])
184AC_SUBST([BASH_HELPERS_DIR])
185AM_CONDITIONAL([ENABLE_BASH_COMPLETION],[test "x$with_bash_completion_dir" != "xno"])
186
187dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
188dnl needed only on Windows, but it doesn't hurt to have it everywhere.
189if test x$enable_static = xyes -a x$enable_shared = xno; then
190  GST_OBJ_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
191fi
192
193dnl building of tests
194AC_ARG_ENABLE(tests,
195  AS_HELP_STRING([--disable-tests],[disable building test apps]),
196  [
197    case "${enableval}" in
198      yes) BUILD_TESTS=yes ;;
199      no)  BUILD_TESTS=no ;;
200      *)   AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
201    esac
202  ],
203[BUILD_TESTS=yes]) dnl Default value
204AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
205
206dnl tests known to fail
207AC_ARG_ENABLE(failing-tests,
208  AS_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]),
209  [
210    case "${enableval}" in
211      yes) BUILD_FAILING_TESTS=yes ;;
212      no)  BUILD_FAILING_TESTS=no ;;
213      *)   AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;;
214    esac
215  ],
216  [BUILD_FAILING_TESTS=no]) dnl Default value
217AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes")
218if test x$BUILD_FAILING_TESTS = xyes; then
219  AC_MSG_WARN([building tests known to fail, use --disable-failing-tests to disable])
220else
221  AC_MSG_WARN([Sissy ! By asking to not build the tests known to fail, you hereby waive your right to customer support.  If you do not agree with this EULA, please press Ctrl-C before the next line is printed.  By allowing the next line to be printed, you expressly acknowledge your acceptance of this EULA.])
222fi
223
224dnl building of benchmarks
225AC_ARG_ENABLE(benchmarks,
226  AS_HELP_STRING([--disable-benchmarks],[disable building benchmarks apps]),
227  [
228    case "${enableval}" in
229      yes) BUILD_BENCHMARKS=yes ;;
230      no)  BUILD_BENCHMARKS=no ;;
231      *)   AC_MSG_ERROR(bad value ${enableval} for --disable-benchmarks) ;;
232    esac
233  ],
234[BUILD_BENCHMARKS=yes]) dnl Default value
235AM_CONDITIONAL(BUILD_BENCHMARKS, test "x$BUILD_BENCHMARKS" = "xyes")
236
237dnl building of tools
238AC_ARG_ENABLE(tools,
239  AS_HELP_STRING([--disable-tools],[disable building tools]),
240  [
241    case "${enableval}" in
242      yes) BUILD_TOOLS=yes ;;
243      no)  BUILD_TOOLS=no ;;
244      *)   AC_MSG_ERROR(bad value ${enableval} for --disable-tools) ;;
245    esac
246  ],
247[BUILD_TOOLS=yes]) dnl Default value
248AM_CONDITIONAL(BUILD_TOOLS, test "x$BUILD_TOOLS" = "xyes")
249
250dnl poison destroyed objects
251AC_ARG_ENABLE(poisoning,
252  AS_HELP_STRING([--enable-poisoning],[enable poisoning of deallocated objects]),
253  [
254    case "${enableval}" in
255      yes) USE_POISONING=yes ;;
256      no)  USE_POISONING=no ;;
257      *)   AC_MSG_ERROR(bad value ${enableval} for --enable-poisoning) ;;
258    esac
259  ],
260  [USE_POISONING=$GST_GIT]) dnl Default value
261if test "x$USE_POISONING" = xyes; then
262  AC_DEFINE(USE_POISONING, 1,
263    [Define if we should poison deallocated memory])
264fi
265
266dnl PTP support parts
267AC_MSG_CHECKING([whether PTP support can be enabled])
268case "$host_os" in
269  *android*)
270    dnl Can't run on Android because of permissions
271    HAVE_PTP=no
272    ;;
273  mingw*|pw32*|cygwin*)
274    dnl Not ported to Windows yet
275    HAVE_PTP=no
276    ;;
277  darwin*)
278    dnl Can't run on iOS because of permissions
279    AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_PTP="no", HAVE_PTP="yes", [-])
280    ;;
281  linux*|darwin*|solaris*|netbsd*|freebsd*|openbsd*|kfreebsd*|dragonfly*|gnu*)
282    HAVE_PTP=yes
283    ;;
284  *)
285    HAVE_PTP=no
286    ;;
287esac
288AC_MSG_RESULT([$HAVE_PTP])
289
290dnl user/group to change to in gst-ptp-helper
291AC_ARG_WITH([ptp-helper-setuid-user],
292  AS_HELP_STRING([--with-ptp-helper-setuid-user],[User to switch to when installing gst-ptp-helper setuid root]),
293  [
294    if test "x$withval" != "x"
295    then
296      AC_DEFINE_UNQUOTED(HAVE_PTP_HELPER_SETUID_USER, "$withval", [PTP helper setuid user])
297    fi
298  ], []
299)
300
301dnl group/group to change to in gst-ptp-helper
302AC_ARG_WITH([ptp-helper-setuid-group],
303  AS_HELP_STRING([--with-ptp-helper-setuid-group],[Group to switch to when installing gst-ptp-helper setuid root]),
304  [
305    if test "x$withval" != "x"
306    then
307      AC_DEFINE_UNQUOTED(HAVE_PTP_HELPER_SETUID_GROUP, "$withval", [PTP helper setuid group])
308    fi
309  ], []
310)
311
312AC_ARG_WITH(
313  ptp-helper-permissions,
314  AC_HELP_STRING(
315    [--with-ptp-helper-permissions],
316    [how to gain PTP permissions (none, setuid-root, capabilities, auto)]),
317    [],
318    [with_ptp_helper_permissions=auto])
319
320gst_ptp_have_cap=no
321AG_GST_CHECK_LIBHEADER(CAP, cap,
322                       cap_init, ,
323                       sys/capability.h,
324                       CAP_LIBS="-lcap"
325                       AC_SUBST(CAP_LIBS)
326                       gst_ptp_have_cap=yes)
327
328AC_PATH_PROG([SETCAP], [setcap], [no], [$PATH:/usr/bin:/bin:/usr/sbin:/sbin])
329
330if test "x$HAVE_PTP" = "xyes"; then
331AC_DEFINE(HAVE_PTP, 1, [PTP support available])
332
333AC_MSG_CHECKING([for SIOCGIFCONF, SIOCGIFFLAGS and SIOCGIFHWADDR])
334AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
335    [[
336        #include <sys/ioctl.h>
337        #include <net/if.h>
338    ]],
339    [[
340        struct ifreq ifr;
341        struct ifconf ifc;
342        ioctl(0, SIOCGIFCONF, &ifc);
343        ioctl(0, SIOCGIFFLAGS, &ifr);
344        ioctl(0, SIOCGIFHWADDR, &ifr);
345        int dummy = ifr.ifr_hwaddr.sa_data[0];
346    ]])], [
347        AC_MSG_RESULT(yes)
348        AC_DEFINE(HAVE_SIOCGIFCONF_SIOCGIFFLAGS_SIOCGIFHWADDR, 1, [SIOCGIFCONF, SIOCGIFFLAGS and SIOCGIFHWADDR is available])
349    ], [
350        AC_MSG_RESULT(no)
351])
352
353AC_MSG_CHECKING([for getifaddrs() and AF_LINK])
354AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
355    [[
356        #include <ifaddrs.h>
357        #include <net/if.h>
358        #include <net/if_dl.h>
359    ]],
360    [[
361        struct ifaddrs *ifaddr;
362        getifaddrs(&ifaddr);
363        int dummy = (ifaddr->ifa_flags & IFF_LOOPBACK) && ifaddr->ifa_addr->sa_family != AF_LINK;
364    ]])], [
365        AC_MSG_RESULT(yes)
366        AC_DEFINE(HAVE_GETIFADDRS_AF_LINK, 1, [getifaddrs() and AF_LINK is available])
367    ], [
368        AC_MSG_RESULT(no)
369    ])
370
371AC_MSG_CHECKING([how to install gst-ptp-helper])
372if test "x$with_ptp_helper_permissions" = "xauto"; then
373    if test "x$gst_ptp_have_cap" = "xyes" -a "x$SETCAP" != "xno"; then
374        with_ptp_helper_permissions="capabilities"
375    else
376        with_ptp_helper_permissions="setuid-root"
377    fi
378fi
379AC_MSG_RESULT([$with_ptp_helper_permissions])
380
381case "$with_ptp_helper_permissions" in
382  none)
383    ;;
384  setuid-root)
385     AC_DEFINE(HAVE_PTP_HELPER_SETUID, 1,
386        [Use setuid-root for permissions in PTP helper])
387    ;;
388  capabilities)
389     AC_DEFINE(HAVE_PTP_HELPER_CAPABILITIES, 1,
390        [Use capabilities for permissions in PTP helper])
391    ;;
392  *)
393    AC_MSG_ERROR(Invalid parameter [$with_ptp_helper_permissions])
394    ;;
395esac
396
397fi
398
399AM_CONDITIONAL(HAVE_PTP, test "x$HAVE_PTP" = "xyes")
400AM_CONDITIONAL(HAVE_PTP_HELPER_SETUID, test "x$with_ptp_helper_permissions" = "xsetuid-root")
401AM_CONDITIONAL(HAVE_PTP_HELPER_CAPABILITIES, test "x$with_ptp_helper_permissions" = "xcapabilities")
402
403dnl *** checks for platform ***
404
405dnl * hardware/architecture *
406
407dnl common/m4/gst-arch.m4
408dnl check CPU type
409AG_GST_ARCH
410
411dnl check for platform specific settings
412AG_GST_PLATFORM
413
414dnl * software *
415
416dnl check for large file support
417dnl affected plugins must include config.h
418AC_SYS_LARGEFILE
419
420dnl *** checks for programs ***
421
422dnl find a compiler
423AC_PROG_CC
424AC_PROG_CC_STDC
425
426dnl check if the compiler supports '-c' and '-o' options
427AM_PROG_CC_C_O
428
429dnl find an assembler
430AM_PROG_AS
431
432dnl determine if c++ is available on this system
433AC_PROG_CXX
434dnl CXX may be set to some default even if no c++ compiler is available
435dnl (thanks autotools!), so just try to compile some c++ code to make sure
436AC_LANG_PUSH([C++])
437AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ class Foo { int bar; };]], [[]])],[working_cxx=yes],[working_cxx=no])
438AC_LANG_POP([C++])
439AC_MSG_NOTICE([working c++ compiler found: $working_cxx])
440AM_CONDITIONAL(HAVE_CXX, test "x$working_cxx" = "xyes")
441
442dnl Perl is used in building documentation and in the version checks
443AC_PATH_PROG(PERL_PATH, perl, no)
444if test x$PERL_PATH = xno; then
445  AC_MSG_ERROR(Could not find perl)
446fi
447
448dnl we require flex and bison for building the parser
449if test "x$GST_DISABLE_PARSE" != xyes; then
450  AG_GST_BISON_CHECK
451  AG_GST_FLEX_CHECK
452fi
453
454AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
455AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
456
457dnl check for gobject-introspection
458GOBJECT_INTROSPECTION_CHECK([1.31.1])
459
460dnl check for documentation tools
461GTK_DOC_CHECK([1.12])
462AG_GST_PLUGIN_DOCS([1.12])
463
464dnl *** checks for libraries ***
465
466dnl check for libm, for sin()
467LT_LIB_M
468AC_SUBST(LIBM)
469
470dnl *** checks for header files ***
471
472dnl check if we have ANSI C header files
473AC_HEADER_STDC
474
475dnl Check for ucontext.h
476AC_CHECK_HEADERS([ucontext.h], [], [], [AC_INCLUDES_DEFAULT])
477
478dnl Check for sys/socket.h
479AC_CHECK_HEADERS([sys/socket.h], [HAVE_SYS_SOCKET_H=yes], [HAVE_SYS_SOCKET_H=no], [AC_INCLUDES_DEFAULT])
480AM_CONDITIONAL(HAVE_SYS_SOCKET_H, test "x$HAVE_SYS_SOCKET_H" = "xyes")
481
482dnl check for sys/times.h for tests/examples/adapter/
483AC_CHECK_HEADERS([sys/times.h], [HAVE_SYS_TIMES_H=yes], [HAVE_SYS_TIME_H=no], [AC_INCLUDES_DEFAULT])
484AC_CHECK_HEADERS([unistd.h], [HAVE_UNISTD_H=yes], [HAVE_UNISTD_H=no], [AC_INCLUDES_DEFAULT])
485AM_CONDITIONAL(HAVE_SYS_TIMES_H_AND_UNISTD_H, test "x$HAVE_SYS_TIMES_H" = "xyes" -a "x$HAVE_UNISTD_H" = "xyes")
486
487dnl Check for process.h for getpid() on win32
488AC_CHECK_HEADERS([process.h], [], [], [AC_INCLUDES_DEFAULT])
489
490dnl Check for sys/utsname.h for uname
491AC_CHECK_HEADERS([sys/utsname.h], [], [], [AC_INCLUDES_DEFAULT])
492
493dnl Check for stdio_ext.f for __fbufsize
494AC_CHECK_HEADERS([stdio_ext.h], [], [], [AC_INCLUDES_DEFAULT])
495
496dnl check for pthreads
497dnl without arguments AX_PTHREAD() will do AC_DEFINE(HAVE_PTHREAD)
498dnl which later checks use in their test code
499AX_PTHREAD()
500AM_CONDITIONAL(HAVE_PTHREAD, test "x$ax_pthread_ok" = "xyes")
501
502dnl check for sys/prctl for setting thread name on Linux
503AC_CHECK_HEADERS([sys/prctl.h], [], [], [AC_INCLUDES_DEFAULT])
504
505dnl check for pthread_setname_np(const char*)
506dnl which is present on OS X 10.6, iOS 3.2 and above
507AC_MSG_CHECKING(for pthread_setname_np(const char*))
508AC_LINK_IFELSE(
509    [AC_LANG_PROGRAM(
510        [#include <pthread.h>],
511        [pthread_setname_np("example")])],
512    [AC_MSG_RESULT(yes)
513     AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID,1,
514        [Have function pthread_setname_np(const char*)])],
515    [AC_MSG_RESULT(no)])
516
517dnl check for sys/uio.h for writev()
518AC_CHECK_HEADERS([sys/uio.h], [], [], [AC_INCLUDES_DEFAULT])
519
520dnl Check for valgrind.h
521dnl separate from HAVE_VALGRIND because you can have the program, but not
522dnl the dev package
523AC_CHECK_HEADERS([valgrind/valgrind.h], [], [], [AC_INCLUDES_DEFAULT])
524
525dnl used in gst/gstpoll.c
526AC_CHECK_HEADERS([winsock2.h], [HAVE_WINSOCK2_H=yes], [HAVE_WINSOCK2_H=no], [AC_INCLUDES_DEFAULT])
527AM_CONDITIONAL(HAVE_WINSOCK2_H, test "x$HAVE_WINSOCK2_H" = "xyes")
528if test "x$HAVE_WINSOCK2_H" = "xyes"; then
529  WIN32_LIBS="-lws2_32"
530  AC_SUBST(WIN32_LIBS)
531fi
532
533dnl check for GMP/GSL, used by the gst_util_uint64_scale unit test only
534if test "x$BUILD_TESTS" = "xyes"; then
535  AG_GST_CHECK_LIBHEADER(GMP, gmp,
536                         __gmpz_init_set_d, ,
537                         gmp.h,
538                         GMP_LIBS="-lgmp"
539                         AC_SUBST(GMP_LIBS)
540                         AC_DEFINE(HAVE_GMP, [1],[Have GMP library]))
541  AG_GST_CHECK_LIBHEADER(GSL, gsl,
542                         gsl_rng_uniform_int, -lgslcblas,
543                         gsl/gsl_rng.h,
544                         GSL_LIBS="-lgsl -lgslcblas"
545                         AC_SUBST(GSL_LIBS)
546                         AC_DEFINE(HAVE_GSL, [1],[Have GSL library]))
547fi
548
549dnl *** checks for types/defines ***
550
551dnl *** checks for structures ***
552
553dnl *** checks for compiler characteristics ***
554
555dnl check if the compiler supports __uint128_t (gcc)
556dnl Actually check for 128-bit division, since that's what we use
557dnl uint128_t for.
558AC_CACHE_CHECK(for __uint128_t, gst_cv_uint128_t,
559    AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[
560      static __uint128_t v1 = 100;
561      static __uint128_t v2 = 10;
562      static __uint128_t u;
563      u = v1 / v2;
564    ]])],[
565      gst_cv_uint128_t=yes
566    ],[
567      gst_cv_uint128_t=no
568    ])
569)
570if test x$gst_cv_uint128_t = xyes; then
571  AC_DEFINE(HAVE_UINT128_T, 1, [Have __uint128_t type])
572fi
573
574dnl *** checking for tm_gmtoff ***
575AC_MSG_CHECKING([for tm_gmtoff])
576AC_RUN_IFELSE([AC_LANG_SOURCE([[
577	#include <time.h>
578	int main(void) {
579	  struct tm t;
580	  t.tm_gmtoff = 0;
581	  exit(0);
582	}]])],
583  [have_tm_gmtoff=yes
584   AC_DEFINE(HAVE_TM_GMTOFF,1,[Have tm_gmtoff field in struct tm])],
585  [have_tm_gmtoff=no],
586  [have_tm_gmtoff="no (cross compiling)"])
587AC_MSG_RESULT($have_tm_gmtoff)
588
589
590dnl *** checks for library functions ***
591
592AC_CHECK_FUNCS([strcasestr])
593
594AC_CHECK_FUNCS([gmtime_r])
595AC_CHECK_FUNCS([localtime_r])
596AC_CHECK_FUNCS([sigaction])
597AC_CHECK_FUNCS([getrusage])
598AM_CONDITIONAL(HAVE_GETRUSAGE, test "x$ac_cv_func_getrusage" = "xyes")
599AC_CHECK_HEADERS([sys/resource.h])
600
601dnl check for fseeko()
602AC_FUNC_FSEEKO
603dnl check for ftello()
604AC_CHECK_FUNCS([ftello])
605
606AC_CHECK_FUNCS([fgetpos])
607AC_CHECK_FUNCS([fsetpos])
608
609dnl check for poll(), ppoll() and pselect()
610AC_CHECK_HEADERS([sys/poll.h], [], [], [AC_INCLUDES_DEFAULT])
611AC_CHECK_HEADERS([poll.h], [], [], [AC_INCLUDES_DEFAULT])
612AC_CHECK_FUNCS([poll])
613AC_CHECK_FUNCS([ppoll])
614AC_CHECK_FUNCS([pselect])
615
616dnl check for socketpair()
617AC_CHECK_FUNC(socketpair, [], [
618  AC_CHECK_LIB(socket, socketpair, [
619    SOCKET_LIBS="-lsocket"
620    AC_SUBST(SOCKET_LIBS)
621  ])
622])
623
624dnl ****************************************
625dnl *** GLib POLL* compatibility defines ***
626dnl ****************************************
627
628AC_MSG_CHECKING([for broken poll])
629AC_RUN_IFELSE([AC_LANG_SOURCE([[
630	#include <stdlib.h>
631	#include <fcntl.h>
632	#ifdef HAVE_SYS_POLL_H
633	#include <sys/poll.h>
634	#endif
635	#ifdef HAVE_POLL_H
636	#include <poll.h>
637	#endif
638	int main(void) {
639	  struct pollfd fds[1];
640	  int fd;
641	  fd = open("/dev/null", 1);
642	  fds[0].fd = fd;
643	  fds[0].events = POLLIN;
644	  fds[0].revents = 0;
645	  if (poll(fds, 1, 0) < 0 || (fds[0].revents & POLLNVAL) != 0) {
646		exit(1);  /* Does not work for devices -- fail */
647	  }
648	  exit(0);
649	}]])],
650  [broken_poll=no],
651  [broken_poll=yes
652   AC_DEFINE(BROKEN_POLL,1,[poll doesn't work on devices])],
653  [broken_poll="no (cross compiling)"])
654AC_MSG_RESULT($broken_poll)
655
656dnl check for getpagesize()
657AC_CHECK_FUNCS([getpagesize])
658
659dnl Check for POSIX timers
660CLOCK_GETTIME_FOUND="no"
661AC_CHECK_FUNC(clock_gettime, [CLOCK_GETTIME_FOUND="yes"], [
662  AC_CHECK_LIB(rt, clock_gettime, [
663    CLOCK_GETTIME_FOUND="yes"
664    LIBS="$LIBS -lrt"
665  ], [
666    AC_CHECK_LIB(pthread, clock_gettime, [
667      CLOCK_GETTIME_FOUND="yes"
668      LIBS="$LIBS -lpthread"
669    ])
670  ])
671])
672
673# With XCode 8, clock_gettime will be incorrectly detected as being available
674# regardless of what version of OS X you target because the symbol is available
675# in the .tbd file as a weak symbol.
676# See: https://bugzilla.gnome.org/show_bug.cgi?id=772451
677#
678# We cannot simply do AC_CHECK_FUNCS with -Wl,-no_weak_imports because the
679# autoconf check does its own prototype declaration that doesn't trigger that
680# compiler flag.
681#
682# It's only starting from macOS 10.12 and iOS 10.0 that clock_gettime is
683# actually available, so we can unconditionally disable it for older versions.
684case "$host_os" in
685  darwin*)
686    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
687#include <AvailabilityMacros.h>
688#include <TargetConditionals.h>
689#if defined(TARGET_OS_MAC)
690#  if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12
691#    error "Not compiling for OS X 10.12 or later"
692#  endif
693#else
694#  if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0
695#    error "Not compiling for iOS 10.0 or later"
696#  endif
697#endif
698    ]])], [], [
699    if test "$CLOCK_GETTIME_FOUND" = "yes"; then
700      AC_MSG_NOTICE([Disabling incorrectly detected clock_gettime on OS X])
701    fi
702    CLOCK_GETTIME_FOUND="no"
703    ])
704    ;;
705esac
706
707if test "$CLOCK_GETTIME_FOUND" = "yes"; then
708  AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Have clock_gettime])
709fi
710
711AC_CACHE_CHECK(for posix timers, gst_cv_posix_timers,
712    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
713#include <time.h>
714#ifdef HAVE_UNISTD_H
715#include <unistd.h>
716#endif
717    ]], [[
718#if !defined(_POSIX_TIMERS) || _POSIX_TIMERS < 0 || !defined(CLOCK_REALTIME)
719#error Either _POSIX_TIMERS or CLOCK_REALTIME not defined
720#endif
721    ]])],[
722      gst_cv_posix_timers=yes
723    ],[
724      gst_cv_posix_timers=no
725    ])
726)
727
728if test "$gst_cv_posix_timers" = "yes"; then
729  AC_DEFINE(HAVE_POSIX_TIMERS,1,[Have posix timers])
730  GST_HAVE_POSIX_TIMERS_DEFINE="#define GST_HAVE_POSIX_TIMERS 1"
731else
732  GST_HAVE_POSIX_TIMERS_DEFINE="#define GST_HAVE_POSIX_TIMERS 0"
733fi
734AC_SUBST(GST_HAVE_POSIX_TIMERS_DEFINE)
735AM_CONDITIONAL(GST_HAVE_POSIX_TIMERS, test "$gst_cv_posix_timers" = "yes")
736
737AC_CACHE_CHECK(for monotonic clock, gst_cv_monotonic_clock,
738    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
739#include <time.h>
740#ifdef HAVE_UNISTD_H
741#include <unistd.h>
742#endif
743    ]], [[
744#if !defined(_POSIX_MONOTONIC_CLOCK) || _POSIX_MONOTONIC_CLOCK < 0 || !defined(CLOCK_MONOTONIC)
745#error Either _POSIX_MONOTONIC_CLOCK or CLOCK_MONOTONIC not defined
746#endif
747    ]])],[
748      gst_cv_monotonic_clock=yes
749    ],[
750      gst_cv_monotonic_clock=no
751    ])
752)
753
754if test "$gst_cv_monotonic_clock" = "yes"; then
755  AC_DEFINE(HAVE_MONOTONIC_CLOCK,1,[Have a monotonic clock])
756  GST_HAVE_MONOTONIC_CLOCK_DEFINE="#define GST_HAVE_MONOTONIC_CLOCK 1"
757else
758  GST_HAVE_MONOTONIC_CLOCK_DEFINE="#define GST_HAVE_MONOTONIC_CLOCK 0"
759fi
760AC_SUBST(GST_HAVE_MONOTONIC_CLOCK_DEFINE)
761AM_CONDITIONAL(GST_HAVE_MONOTONIC_CLOCK, test "$gst_cv_monotonic_clock" = "yes")
762
763dnl Check for a way to display the function name in debug output
764AG_GST_CHECK_FUNCTION
765
766dnl test if we have dladdr(); we use it for debugging; see gst/gstinfo.c
767save_cflags="$CFLAGS"
768CFLAGS="$CFLAGS -D_GNU_SOURCE"
769AC_CHECK_LIB(dl, dladdr,
770   AC_DEFINE(HAVE_DLADDR, 1, [Defined if we have dladdr ()])
771   LIBS="$LIBS -ldl")
772CFLAGS="$save_cflags"
773
774dnl Check printf stuff
775if test "x${GST_DISABLE_GST_DEBUG}" != "xyes"; then
776  AC_TYPE_LONG_LONG_INT
777  AC_TYPE_UNSIGNED_LONG_LONG_INT
778
779  if test x$ac_cv_type_long_long_int$ac_cv_type_unsigned_long_long_int = xyesyes; then
780    AC_DEFINE([HAVE_LONG_LONG], [1], [Define to 1 if the system has the type long long])
781  fi
782
783  dnl /usr/share/aclocal/inttypes_h.m4 - ships with gettext apparently
784  gl_AC_HEADER_INTTYPES_H
785
786  dnl /usr/share/aclocal/stdint_h.m4 - ships with gettext apparently
787  gl_AC_HEADER_STDINT_H
788
789  AC_CHECK_TYPES(ptrdiff_t)
790
791  AC_TYPE_INTMAX_T
792  AC_TYPE_SIZE_T
793fi
794
795dnl *** checks for dependency libraries ***
796
797dnl GLib
798GLIB_REQ=2.40.0
799AG_GST_GLIB_CHECK([$GLIB_REQ])
800
801dnl Check for documentation xrefs
802GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
803AC_SUBST(GLIB_PREFIX)
804
805dnl GTK is optional and only used in examples
806HAVE_GTK=no
807GTK_REQ=3.10
808if test "x$BUILD_EXAMPLES" = "xyes"; then
809  PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
810  AC_SUBST(GTK_LIBS)
811  AC_SUBST(GTK_CFLAGS)
812fi
813AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
814
815dnl libunwind is optionally used by the leaks tracer
816AC_ARG_WITH([unwind],[AS_HELP_STRING([--with-unwind=yes|no|auto],[use libunwind])],
817            [], [with_unwind=auto])
818if [ test "x${with_unwind}" != "xno" ]; then
819  PKG_CHECK_MODULES(UNWIND, [libunwind],
820      [
821        HAVE_UNWIND=yes
822        AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
823        UNWIND_REQUIRE=libunwind
824        AC_SUBST(UNWIND_REQUIRE)
825      ],
826      [
827        HAVE_UNWIND=no
828        if [ test "x${with_unwind}" = "xyes" ]; then
829          AC_MSG_ERROR([could not find libunwind])
830        fi
831      ])
832else
833  HAVE_UNWIND=no
834fi
835
836dnl libdw is optionally used to add source lines and numbers to backtraces
837AC_ARG_WITH([dw],[AS_HELP_STRING([--with-dw=yes|no|auto],[use libdw])],
838            [], [with_dw=auto])
839if [ test "x${with_dw}" != "xno" ]; then
840  PKG_CHECK_MODULES(DW, [libdw],
841      [
842        HAVE_DW=yes
843        AC_DEFINE(HAVE_DW, 1, [libdw available])
844        DW_REQUIRE=libdw
845        AC_SUBST(DW_REQUIRE)
846      ],
847      [
848        HAVE_DW=no
849        if [ test "x${with_dw}" = "xyes" ]; then
850          AC_MSG_ERROR([could not find libdw])
851        fi
852      ])
853else
854  HAVE_DW=no
855fi
856
857dnl Check for backtrace() from libc
858AC_CHECK_FUNC(backtrace, [
859  AC_CHECK_HEADERS([execinfo.h], [
860    AC_DEFINE(HAVE_BACKTRACE,1,[Have backtrace])
861  ], [], [])
862])
863
864dnl building of unit test libraries
865AC_ARG_ENABLE(check,
866  AS_HELP_STRING([--disable-check],[disable building unit test libraries]),
867  [
868    case "${enableval}" in
869      yes) BUILD_CHECK=yes ;;
870      no)  BUILD_CHECK=no ;;
871      *)   AC_MSG_ERROR(bad value ${enableval} for --disable-check) ;;
872    esac
873  ], [
874    dnl Default value
875    case $host_os in
876      mingw* | msvc* | mks*) BUILD_CHECK=no ;;
877      *) BUILD_CHECK=yes ;;
878    esac
879])
880dnl bit of a misnomer, but keep the conditional named like this so we don't
881dnl have to change too much elsewhere
882AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes")
883
884dnl configure the desired memory alignment
885AC_ARG_WITH([memory-alignment],
886  AS_HELP_STRING([--with-memory-alignment],[8,N,malloc,pagesize (default is 32)]),
887  [
888    if test "x$withval" = "xyes"
889    then
890      AC_DEFINE(MEMORY_ALIGNMENT, 32, [Memory alignment to use])
891    else
892      case "${withval}" in
893        malloc) AC_DEFINE(MEMORY_ALIGNMENT_MALLOC, 1, [Memory alignment by malloc default]) ;;
894        pagesize)  AC_DEFINE(MEMORY_ALIGNMENT_PAGESIZE, 1, [Memory alignment by pagesize]) ;;
895        *)   AC_DEFINE_UNQUOTED(MEMORY_ALIGNMENT, ${withval}, [Memory alignment to use]) ;;
896      esac
897    fi
898  ], [
899    AC_DEFINE(MEMORY_ALIGNMENT_MALLOC, 1, [Memory alignment by malloc default])
900  ]
901)
902
903dnl Symbol visibility
904VISIBILITY_CFLAGS=""
905AS_COMPILER_FLAG([-fvisibility=hidden], [
906  VISIBILITY_CFLAGS="-fvisibility=hidden"
907  AC_DEFINE(GST_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
908], [
909  VISIBILITY_CFLAGS=""
910  AC_DEFINE(GST_API_EXPORT, [extern], [public symbol export define])
911])
912AC_SUBST(VISIBILITY_CFLAGS)
913
914dnl Check for -Bsymbolic-functions linker flag used to avoid
915dnl intra-library PLT jumps, if available.
916AC_ARG_ENABLE(Bsymbolic,
917              [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
918              [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
919               AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
920               LDFLAGS=-Wl,-Bsymbolic-functions
921               LIBS=
922               AC_TRY_LINK([], [return 0],
923                           AC_MSG_RESULT(yes)
924                           enable_Bsymbolic=yes,
925                           AC_MSG_RESULT(no)
926                           enable_Bsymbolic=no)
927               LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
928
929
930dnl *** set variables based on configure arguments
931
932dnl set license and copyright notice
933GST_LICENSE="LGPL"
934AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
935AC_SUBST(GST_LICENSE)
936
937dnl define LIBDIR, GST_DATADIR so we can inform people where we live
938AS_AC_EXPAND(LIBDIR, $libdir)
939AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
940AS_AC_EXPAND(DATADIR, $datadir)
941AC_DEFINE_UNQUOTED(GST_DATADIR, "$DATADIR", [data dir])
942
943dnl set location of plugin directory
944AG_GST_SET_PLUGINDIR
945
946dnl make sure it doesn't complain about unused variables if debugging is disabled
947NO_WARNINGS=""
948if test "x${GST_DISABLE_GST_DEBUG}" = "xyes"; then
949  NO_WARNINGS="-Wno-unused"
950fi
951
952dnl define an ERROR_CFLAGS Makefile variable
953AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs $NO_WARNINGS])
954
955dnl special warning flags for gst/printf
956AS_COMPILER_FLAG([-Wno-format-nonliteral], [PRINTF_CFLAGS="-Wno-format-nonliteral"])
957AC_SUBST(PRINTF_CFLAGS)
958
959dnl disable strict aliasing
960AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
961AC_SUBST(EXTRA_CFLAGS)
962
963dnl define correct level for debugging messages
964AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
965
966dnl *** finalize CFLAGS, LDFLAGS, LIBS
967
968dnl Overview:
969dnl GST_OPTION_CFLAGS:  common cflags for profiling, debugging, errors, ...
970dnl GST_ALL_*:          vars shared by all built objects
971dnl GST_LIB_LDFLAGS:    additional linker flags for all libraries
972dnl GST_OBJ_*:          additional vars to link to the core library
973dnl			include GST_ALL_*
974dnl GST_LT_LDFLAGS:	library versioning of our libraries
975dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
976
977dnl GST_OPTION_CFLAGS
978if test "x$USE_DEBUG" = xyes; then
979   PROFILE_CFLAGS="-g"
980fi
981AC_SUBST(PROFILE_CFLAGS)
982
983# GST_DISABLE_DEPRECATED: hide the visibility of deprecated
984# functionality from the API that gstreamer uses
985# GST_REMOVE_DEPRECATED: don't compile deprecated functionality (breaks ABI)
986if test "x$PACKAGE_VERSION_NANO" = "x1"; then
987  dnl Define _only_ when compiling from git (not for pre-releases or releases)
988  DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
989else
990  DEPRECATED_CFLAGS=""
991fi
992AC_SUBST(DEPRECATED_CFLAGS)
993
994dnl every flag in GST_OPTION_CFLAGS can be overridden at make time via e.g.
995dnl make DEPRECATED_CFLAGS=''
996GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
997GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
998GST_OPTION_CFLAGS="$GST_OPTION_CFLAGS"
999GST_OPTION_CXXFLAGS="$GST_OPTION_CXXFLAGS"
1000AC_SUBST(GST_OPTION_CFLAGS)
1001AC_SUBST(GST_OPTION_CXXFLAGS)
1002
1003dnl GST_ALL_*
1004dnl vars common to for all internal objects (core libs, elements, applications)
1005dnl CFLAGS:
1006dnl - src and build dirs need to be added because every piece that gets built
1007dnl   will need the GStreamer source and generated headers
1008dnl LIBS: XML doesn't need to be added because we don't explicitly use symbols
1009dnl       from LibXML except for in the core library
1010GST_ALL_CXXFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(ERROR_CXXFLAGS)"
1011GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(ERROR_CFLAGS) \$(VISIBILITY_CFLAGS)"
1012
1013dnl FIXME: check if LTLIBINTL is needed everywhere
1014dnl I presume it is given that it contains the symbols that _() stuff maps to
1015GST_ALL_LIBS="$GLIB_LIBS $LTLIBINTL \$(GCOV_LIBS)"
1016
1017dnl LDFLAGS really should only contain flags, not libs - they get added before
1018dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1019GST_ALL_LDFLAGS="-no-undefined"
1020if test "x${enable_Bsymbolic}" = "xyes"; then
1021  GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
1022fi
1023
1024AC_SUBST(GST_ALL_CFLAGS)
1025AC_SUBST(GST_ALL_CXXFLAGS)
1026AC_SUBST(GST_ALL_LIBS)
1027AC_SUBST(GST_ALL_LDFLAGS)
1028
1029dnl GST_LIB_LDFLAGS
1030dnl linker flags shared by all libraries
1031dnl LDFLAGS modifier defining exported symbols from built libraries
1032GST_LIB_LDFLAGS=""
1033AC_SUBST(GST_LIB_LDFLAGS)
1034
1035dnl GST_OBJ_*
1036dnl default vars for all internal objects built on libgstreamer
1037dnl includes GST_ALL_*
1038GST_OBJ_CFLAGS="\$(GST_ALL_CFLAGS) $GST_OBJ_STATIC_CFLAGS"
1039GST_OBJ_CXXFLAGS="\$(GST_ALL_CXXFLAGS) $GST_OBJ_STATIC_CFLAGS"
1040GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_API_VERSION.la \$(GST_ALL_LIBS)"
1041AC_SUBST(GST_OBJ_CFLAGS)
1042AC_SUBST(GST_OBJ_CXXFLAGS)
1043AC_SUBST(GST_OBJ_LIBS)
1044
1045dnl GST_PLUGIN_LDFLAGS
1046dnl LDFLAGS for plugins; includes GST_ALL_LDFLAGS
1047GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
1048AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
1049
1050dnl plugin scanner locations
1051AS_AC_EXPAND(GST_PLUGIN_SCANNER_INSTALLED,${libexecdir}/gstreamer-$GST_API_VERSION/gst-plugin-scanner)
1052AC_DEFINE_UNQUOTED(GST_PLUGIN_SCANNER_INSTALLED,
1053    "$GST_PLUGIN_SCANNER_INSTALLED", [location of the installed gst-plugin-scanner])
1054AC_SUBST(GST_PLUGIN_SCANNER_INSTALLED)
1055
1056case "${libexecdir}" in
1057  *libexec)
1058    GST_PLUGIN_SCANNER_SUBDIR="libexec";;
1059  *lib)
1060    GST_PLUGIN_SCANNER_SUBDIR="lib";;
1061  *)
1062    GST_PLUGIN_SCANNER_SUBDIR=`basename ${libexecdir}`;
1063    if test -z "$GST_PLUGIN_SCANNER_SUBDIR"; then
1064      AC_MSG_WARN([Couldn't determined libexecdir suffix, using "lib"])
1065      GST_PLUGIN_SCANNER_SUBDIR="lib";
1066    fi
1067    ;;
1068esac
1069AC_DEFINE_UNQUOTED(GST_PLUGIN_SCANNER_SUBDIR,
1070    "$GST_PLUGIN_SCANNER_SUBDIR", [libexecdir path component, used to find plugin-scanner on relocatable builds on windows])
1071
1072case "${libdir}" in
1073  *lib64)
1074    GST_PLUGIN_SUBDIR="lib64";;
1075  *lib32)
1076    GST_PLUGIN_SUBDIR="lib32";;
1077  *lib)
1078    GST_PLUGIN_SUBDIR="lib";;
1079  *)
1080    GST_PLUGIN_SUBDIR=`basename ${libdir}`;
1081    if test -z "$GST_PLUGIN_SUBDIR"; then
1082      AC_MSG_WARN([Couldn't determined libdir suffix, using "lib"])
1083      GST_PLUGIN_SUBDIR="lib";
1084    fi
1085    ;;
1086esac
1087AC_DEFINE_UNQUOTED(GST_PLUGIN_SUBDIR,
1088    "$GST_PLUGIN_SUBDIR", [plugin directory path component, used to find plugins on relocatable builds on windows])
1089
1090dnl completion helper locations
1091AS_AC_EXPAND(GST_COMPLETION_HELPER_INSTALLED,${libexecdir}/gstreamer-$GST_API_VERSION/gst-completion-helper)
1092AC_DEFINE_UNQUOTED(GST_COMPLETION_HELPER_INSTALLED,
1093    "$GST_COMPLETION_HELPER_INSTALLED", [location of the installed gst-completion-helper])
1094AC_SUBST(GST_COMPLETION_HELPER_INSTALLED)
1095
1096dnl ptp helper locations
1097AS_AC_EXPAND(GST_PTP_HELPER_INSTALLED,${libexecdir}/gstreamer-$GST_API_VERSION/gst-ptp-helper)
1098AC_DEFINE_UNQUOTED(GST_PTP_HELPER_INSTALLED,
1099    "$GST_PTP_HELPER_INSTALLED", [location of the installed gst-ptp-helper])
1100AC_SUBST(GST_PTP_HELPER_INSTALLED)
1101
1102dnl things for our internal libcheck (must be called even if building
1103dnl libcheck is disabled because it defines conditionals)
1104AG_GST_CHECK_CHECKS
1105
1106AC_CONFIG_FILES(
1107Makefile
1108data/Makefile
1109data/bash-completion/helpers/gst
1110gst/Makefile
1111gst/gstconfig.h
1112gst/gstversion.h
1113libs/gst/helpers/libgstreamer-gdb.py
1114gst/parse/Makefile
1115gst/printf/Makefile
1116libs/Makefile
1117libs/gst/Makefile
1118libs/gst/base/Makefile
1119libs/gst/check/Makefile
1120libs/gst/check/libcheck/Makefile
1121libs/gst/check/internal-check.h:libs/gst/check/libcheck/check.h.in
1122libs/gst/controller/Makefile
1123libs/gst/helpers/Makefile
1124libs/gst/net/Makefile
1125plugins/Makefile
1126plugins/elements/Makefile
1127plugins/tracers/Makefile
1128po/Makefile.in
1129tests/Makefile
1130tests/benchmarks/Makefile
1131tests/check/Makefile
1132tests/misc/Makefile
1133tests/examples/Makefile
1134tests/examples/adapter/Makefile
1135tests/examples/controller/Makefile
1136tests/examples/stepping/Makefile
1137tests/examples/helloworld/Makefile
1138tests/examples/memory/Makefile
1139tests/examples/netclock/Makefile
1140tests/examples/ptp/Makefile
1141tests/examples/streamiddemux/Makefile
1142tests/examples/streams/Makefile
1143tools/Makefile
1144common/Makefile
1145common/m4/Makefile
1146docs/Makefile
1147docs/gst/Makefile
1148docs/gst/gstreamer.types
1149docs/libs/Makefile
1150docs/plugins/Makefile
1151docs/version.entities
1152m4/Makefile
1153pkgconfig/Makefile
1154stamp.h
1155pkgconfig/gstreamer.pc
1156pkgconfig/gstreamer-uninstalled.pc
1157pkgconfig/gstreamer-base.pc
1158pkgconfig/gstreamer-base-uninstalled.pc
1159pkgconfig/gstreamer-check.pc
1160pkgconfig/gstreamer-check-uninstalled.pc
1161pkgconfig/gstreamer-controller.pc
1162pkgconfig/gstreamer-controller-uninstalled.pc
1163pkgconfig/gstreamer-net.pc
1164pkgconfig/gstreamer-net-uninstalled.pc
1165)
1166
1167AC_OUTPUT
1168
1169dnl negate for output
1170if test "x${GST_DISABLE_GST_DEBUG}" = "xno"; then enable_gst_debug="yes"; fi
1171if test "x${GST_DISABLE_GST_TRACER_HOOKS}" = "xno"; then enable_gst_tracer_hooks="yes"; fi
1172if test "x${GST_DISABLE_PARSE}" = "xno"; then enable_parse="yes"; fi
1173if test "x${GST_DISABLE_OPTION_PARSING}" = "xno"; then enable_option_parsing="yes"; fi
1174if test "x${GST_DISABLE_PLUGIN}" = "xno"; then enable_plugin="yes"; fi
1175if test "x${GST_DISABLE_REGISTRY}" = "xno"; then enable_registry="yes"; fi
1176
1177echo "
1178
1179Configuration
1180	Version                    : ${VERSION}
1181	Source code location       : ${srcdir}
1182	Prefix                     : ${prefix}
1183	Compiler                   : ${CC}
1184	Package name               : ${GST_PACKAGE_NAME}
1185	Package origin             : ${GST_PACKAGE_ORIGIN}
1186
1187	API Documentation          : ${enable_gtk_doc}
1188
1189	Debug logging              : ${enable_gst_debug}
1190	Tracing subsystem hooks    : ${enable_gst_tracer_hooks}
1191	Command-line parser        : ${enable_parse}
1192	Option parsing in gst_init : ${enable_option_parsing}
1193	Plugin registry            : ${enable_registry}
1194	Plugin support	           : ${enable_plugin}
1195	Static plugins             : ${enable_static_plugins}
1196	Unit testing support       : ${BUILD_CHECK}
1197	PTP clock support          : ${HAVE_PTP}
1198	libunwind support          : ${HAVE_UNWIND}
1199	libdw support              : ${HAVE_DW}
1200
1201	Debug                      : ${USE_DEBUG}
1202	Profiling                  : ${USE_PROFILING}
1203
1204	Building benchmarks        : ${BUILD_BENCHMARKS}
1205	Building examples          : ${BUILD_EXAMPLES}
1206	Building test apps         : ${BUILD_TESTS}
1207	Building tests that fail   : ${BUILD_FAILING_TESTS}
1208	Building tools             : ${BUILD_TOOLS}
1209"
1210