Imported Upstream version 0.0.9
Sjoerd Simons
15 years ago
0 | commit 4fe6016ec86e748342ee3fa35b607cbefc049109 | |
1 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
2 | Date: Mon Apr 6 20:29:37 2009 -0400 | |
3 | ||
4 | Version 0.0.9 | |
5 | ||
6 | commit 6025f3cedd2171d596513effe1d40fb00ae318df | |
7 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
8 | Date: Thu Apr 2 19:10:11 2009 -0400 | |
9 | ||
10 | Make libnice non-optional | |
11 | ||
12 | commit ac7dc4a43ac6098397ca8feaff5c4f75c00fec45 | |
13 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
14 | Date: Tue Nov 18 19:09:59 2008 -0500 | |
15 | ||
16 | Improve dtmf tests a bit | |
17 | ||
18 | commit a020bf8c34656e8c5b1ebfde478847e6aebbfa51 | |
19 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
20 | Date: Tue Nov 18 15:16:13 2008 -0500 | |
21 | ||
22 | Add transmitter sink just in time | |
23 | ||
24 | commit 5c91c2278e85a4465640ba398fc47fbdf73dc6a8 | |
25 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
26 | Date: Tue Nov 18 15:06:24 2008 -0500 | |
27 | ||
28 | Factor out the transmitter sink addition | |
29 | ||
30 | commit f9fc5976df3cd689b2f2950e8e486bdaeaae64e8 | |
31 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
32 | Date: Tue Mar 31 13:40:34 2009 -0400 | |
33 | ||
34 | Check if both fields are not NULL before strcmping them | |
35 | ||
36 | commit c3ceaf59765f90dcc438bf38ceae8d0669121b55 | |
37 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
38 | Date: Tue Mar 31 13:38:51 2009 -0400 | |
39 | ||
40 | Ignore stun binding responses with no mapped address | |
41 | ||
42 | commit ec64b568b2c471f94eff579f86de944e63ce00c2 | |
43 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
44 | Date: Tue Mar 31 13:36:14 2009 -0400 | |
45 | ||
46 | Don't offerflow if nice candidate is inet6 | |
47 | ||
48 | commit d3083e1068ff1c3bbb7cf46ae1ae2af34458b895 | |
49 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
50 | Date: Tue Mar 31 12:35:37 2009 -0400 | |
51 | ||
52 | Remove unused variables | |
53 | ||
54 | commit 6883c96812a322f5717b758488c160da6efbc77e | |
55 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
56 | Date: Mon Mar 23 14:58:22 2009 -0400 | |
57 | ||
58 | Drop the buffers before decoding if the direction is not receiving or both | |
59 | ||
60 | commit ded8205cc9d9c6e98961fb620a3dca3cd9ea8801 | |
61 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
62 | Date: Sun Mar 15 20:56:20 2009 -0400 | |
63 | ||
64 | Remove rtp/rtcp tee fakesinks | |
65 | ||
66 | commit c2b1bf7104f9e367cb199bf906e05c34c4071390 | |
67 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
68 | Date: Tue Mar 17 18:00:12 2009 -0400 | |
69 | ||
70 | Disallow invalid relay-info parameters | |
71 | ||
72 | commit 3338bab01a35a792bff24397d53e50fce3a0b2c3 | |
73 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
74 | Date: Tue Mar 17 18:12:54 2009 -0400 | |
75 | ||
76 | Test for invalid relay info argument correctly | |
77 | ||
78 | commit 2cc6bb13aeb056c317b2eeacb091b6ebc05a917c | |
79 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
80 | Date: Fri Mar 20 19:22:35 2009 +0200 | |
81 | ||
82 | Already always requires gst 0.10.12 | |
83 | ||
84 | commit 68d2c034c6e12e5e7219c0e7885179fc9cd6ebe2 | |
85 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
86 | Date: Wed Mar 18 04:44:51 2009 -0400 | |
87 | ||
88 | Update python requirements | |
89 | ||
90 | commit 8615191479ed0842bb9082cedd17e2259c7edb9b | |
91 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
92 | Date: Wed Mar 18 04:38:57 2009 -0400 | |
93 | ||
94 | Use AM_PYTHON_PATH instead of AS_PYTHON_PATH | |
95 | ||
96 | commit aa8fc29ab49dae0e51e246837f55f88dd6907783 | |
97 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
98 | Date: Sun Mar 22 20:12:59 2009 -0400 | |
99 | ||
100 | fsvalve is now valve in -bad | |
101 | ||
102 | commit 21a170180c69f8af4ead8efb66ce493b46c8ecb8 | |
103 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
104 | Date: Sun Mar 22 20:11:40 2009 -0400 | |
105 | ||
106 | Officially depend on new gst-plugins-bad | |
107 | ||
108 | commit 9eddf78c30d18c5b68fb8c5b808dacb9764917cd | |
109 | Author: Olivier Crête <olivier.crete@collabora.co.uk> | |
110 | Date: Sun Mar 15 17:01:38 2009 -0400 | |
111 | ||
112 | Version 0.0.8.1 | |
113 | ||
0 | 114 | commit c2f4b1c52f7d601678d8008ba5ed8fa5d82dcd4d |
1 | 115 | Author: Olivier Crête <olivier.crete@collabora.co.uk> |
2 | 116 | Date: Sun Mar 15 16:53:21 2009 -0400 |
43 | 43 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
44 | 44 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
45 | 45 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
46 | $(top_srcdir)/common/m4/as-python.m4 \ | |
47 | 46 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
48 | 47 | $(top_srcdir)/common/m4/as-version.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
55 | 54 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
56 | 55 | $(top_srcdir)/common/m4/gst.m4 \ |
57 | 56 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
58 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
59 | 57 | $(top_srcdir)/common/m4/pkg.m4 \ |
60 | 58 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
61 | 59 | $(top_srcdir)/configure.ac |
211 | 209 | PKG_CONFIG = @PKG_CONFIG@ |
212 | 210 | PLUGINDIR = @PLUGINDIR@ |
213 | 211 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
214 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
215 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
216 | 212 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
217 | 213 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
218 | 214 | PYTHON = @PYTHON@ |
17 | 17 | - gstreamer 0.10.22 |
18 | 18 | - gst-plugins-base 0.10.22 |
19 | 19 | - glib 2.16 |
20 | - Python 2.4 | |
21 | - libnice 0.0.3 | |
20 | 22 | |
21 | 23 | For UPnP support: |
22 | 24 | - GUPnP-IGD |
23 | 25 | |
24 | For the ICE transmitter: | |
25 | - libnice 0.0.3 | |
26 | 26 | |
27 | 27 | Run time for the RTP plugin: |
28 | 28 | All of the build time requirements (except gtk-doc) plus |
29 | 29 | - gst-plugins-good 0.10.7 |
30 | - gst-plugins-bad 0.10.10 | |
31 | - gst-plugins-farsight 0.12.10 (or lower) OR -bad 0.10.11 | |
30 | - gst-plugins-bad 0.10.11 | |
32 | 31 | |
33 | 32 | For the python module and examples you also need: |
34 | - Python 2.1 | |
35 | 33 | - PyGObject 2.12 |
36 | 34 | - PyGTK 2.10 |
37 | 35 | - gst-python 0.10.10 |
7589 | 7589 | sys.exit(sys.hexversion < minverhex)" |
7590 | 7590 | AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) |
7591 | 7591 | |
7592 | # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. | |
7593 | # | |
7594 | # This file is free software; the Free Software Foundation | |
7595 | # gives unlimited permission to copy and/or distribute it, | |
7596 | # with or without modifications, as long as this notice is preserved. | |
7597 | ||
7598 | # AM_RUN_LOG(COMMAND) | |
7599 | # ------------------- | |
7600 | # Run COMMAND, save the exit status in ac_status, and log it. | |
7601 | # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) | |
7602 | AC_DEFUN([AM_RUN_LOG], | |
7603 | [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD | |
7604 | ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD | |
7605 | ac_status=$? | |
7606 | echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD | |
7607 | (exit $ac_status); }]) | |
7608 | ||
7592 | 7609 | # Check to make sure that the build environment is sane. -*- Autoconf -*- |
7593 | 7610 | |
7594 | 7611 | # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 |
7781 | 7798 | m4_include([common/m4/as-auto-alt.m4]) |
7782 | 7799 | m4_include([common/m4/as-compiler-flag.m4]) |
7783 | 7800 | m4_include([common/m4/as-libtool.m4]) |
7784 | m4_include([common/m4/as-python.m4]) | |
7785 | 7801 | m4_include([common/m4/as-scrub-include.m4]) |
7786 | 7802 | m4_include([common/m4/as-version.m4]) |
7787 | 7803 | m4_include([common/m4/gst-arch.m4]) |
7793 | 7809 | m4_include([common/m4/gst-plugindir.m4]) |
7794 | 7810 | m4_include([common/m4/gst.m4]) |
7795 | 7811 | m4_include([common/m4/gtk-doc.m4]) |
7796 | m4_include([common/m4/isc-posix.m4]) | |
7797 | 7812 | m4_include([common/m4/pkg.m4]) |
7798 | 7813 | m4_include([m4/as-check-python-headers.m4]) |
0 | 0 | SUBDIRS = m4 |
1 | 1 | |
2 | 2 | EXTRA_DIST = \ |
3 | gtk-doc.mak \ | |
3 | ChangeLog \ | |
4 | gettext.patch \ | |
5 | glib-gen.mak gtk-doc.mak upload.mak upload-doc.mak \ | |
6 | release.mak win32.mak po.mak \ | |
4 | 7 | gst-autogen.sh \ |
5 | gst.supp \ | |
6 | check.mak \ | |
8 | check-exports \ | |
9 | c-to-xml.py gst-xmlinspect.py mangle-tmpl.py scangobj-merge.py \ | |
7 | 10 | gtk-doc-plugins.mak \ |
8 | plugins.xsl \ | |
9 | gstdoc-scangobj \ | |
10 | coverage/coverage-report.pl \ | |
11 | coverage/coverage-report.xsl \ | |
12 | coverage/coverage-report-entry.pl \ | |
13 | gst-xmlinspect.py mangle-tmpl.py scangobj-merge.py | |
11 | plugins.xsl gstdoc-scangobj \ | |
12 | gst.supp check.mak \ | |
13 | coverage/lcov.mak \ | |
14 | coverage/coverage-report.pl \ | |
15 | coverage/coverage-report.xsl \ | |
16 | coverage/coverage-report-entry.pl \ | |
17 | download-translations |
37 | 37 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
38 | 38 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
40 | $(top_srcdir)/common/m4/as-python.m4 \ | |
41 | 40 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
42 | 41 | $(top_srcdir)/common/m4/as-version.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
52 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
53 | 51 | $(top_srcdir)/common/m4/pkg.m4 \ |
54 | 52 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
55 | 53 | $(top_srcdir)/configure.ac |
185 | 183 | PKG_CONFIG = @PKG_CONFIG@ |
186 | 184 | PLUGINDIR = @PLUGINDIR@ |
187 | 185 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
188 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
189 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
190 | 186 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
191 | 187 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
192 | 188 | PYTHON = @PYTHON@ |
263 | 259 | top_srcdir = @top_srcdir@ |
264 | 260 | SUBDIRS = m4 |
265 | 261 | EXTRA_DIST = \ |
266 | gtk-doc.mak \ | |
262 | ChangeLog \ | |
263 | gettext.patch \ | |
264 | glib-gen.mak gtk-doc.mak upload.mak upload-doc.mak \ | |
265 | release.mak win32.mak po.mak \ | |
267 | 266 | gst-autogen.sh \ |
268 | gst.supp \ | |
269 | check.mak \ | |
267 | check-exports \ | |
268 | c-to-xml.py gst-xmlinspect.py mangle-tmpl.py scangobj-merge.py \ | |
270 | 269 | gtk-doc-plugins.mak \ |
271 | plugins.xsl \ | |
272 | gstdoc-scangobj \ | |
273 | coverage/coverage-report.pl \ | |
274 | coverage/coverage-report.xsl \ | |
275 | coverage/coverage-report-entry.pl \ | |
276 | gst-xmlinspect.py mangle-tmpl.py scangobj-merge.py | |
270 | plugins.xsl gstdoc-scangobj \ | |
271 | gst.supp check.mak \ | |
272 | coverage/lcov.mak \ | |
273 | coverage/coverage-report.pl \ | |
274 | coverage/coverage-report.xsl \ | |
275 | coverage/coverage-report-entry.pl \ | |
276 | download-translations | |
277 | 277 | |
278 | 278 | all: all-recursive |
279 | 279 |
0 | # -*- Mode: Python -*- | |
1 | # vi:si:et:sw=4:sts=4:ts=4 | |
2 | ||
3 | """ | |
4 | Convert a C program to valid XML to be included in docbook | |
5 | """ | |
6 | ||
7 | import sys | |
8 | import os | |
9 | from xml.sax import saxutils | |
10 | ||
11 | def main(): | |
12 | if len(sys.argv) == 1: | |
13 | sys.stderr.write("Please specify a source file to convert") | |
14 | sys.exit(1) | |
15 | source = sys.argv[1] | |
16 | ||
17 | if not os.path.exists(source): | |
18 | sys.stderr.write("%s does not exist.\n" % source) | |
19 | sys.exit(1) | |
20 | ||
21 | content = open(source, "r").read() | |
22 | ||
23 | # print header | |
24 | print '<?xml version="1.0"?>' | |
25 | print '<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">' | |
26 | ||
27 | print '<programlisting>' | |
28 | ||
29 | # print content | |
30 | print saxutils.escape(content).encode('UTF-8') | |
31 | print '</programlisting>' | |
32 | ||
33 | main() |
0 | #!/bin/sh | |
1 | # check-exports | |
2 | # | |
3 | # quick'n'dirty script that retrieves the list of exported symbols of a given | |
4 | # library using 'nm', and compares that against the list of symbols-to-export | |
5 | # of our win32/common/libfoo.def files. | |
6 | ||
7 | if [ $# -ne 2 ]; then | |
8 | echo "Usage: $0 library.def library.so" | |
9 | exit 1 | |
10 | fi | |
11 | ||
12 | def_path="$1" | |
13 | def_name="$(basename $def_path)" | |
14 | lib_path="$2" | |
15 | ||
16 | lib_result="`mktemp /tmp/defname.XXXXXX`" | |
17 | ||
18 | LC_ALL=C | |
19 | export LC_ALL | |
20 | ||
21 | # On Solaris, add -p to get the correct output format | |
22 | NMARGS= | |
23 | if nm -V 2>&1 |grep Solaris > /dev/null; then | |
24 | NMARGS=-p | |
25 | fi | |
26 | ||
27 | # FIXME 0.11: in 0.11, we should change the export filter to only export | |
28 | # _gst_foo, but not __gst_foo (we can't change this now, since we added | |
29 | # __gst_debug_min and __gst_debug_enabled at some point and need to keep | |
30 | # ABI compatibility). So below we special-case some symbols that shouldn't | |
31 | # really be exported, either because we're too lazy to rename them to something | |
32 | # that's not exported (like the _gst_parse_* stuff) or because we had them in | |
33 | # public headers at some point although they shouldn't be and so we need to | |
34 | # keep them exported now (like _gst_debug_init, | |
35 | # __gst_element_factory_add_interface or | |
36 | # __gst_element_factory_add_static_pad_template). We suppress them here to | |
37 | # make sure they're at least not exported in the windows msvc build (they | |
38 | # were never in the .def file, so they never got exported). | |
39 | # _end is special cased because for some reason it is reported as an exported | |
40 | # BSS symbol, unlike on linux where it's a local absolute symbol. | |
41 | nm $NMARGS $lib_path | awk \ | |
42 | '{ | |
43 | if ($3 !~ /^_gst_parse_yy/ && \ | |
44 | $3 !~ /^_gst_[a-z]*_init/ && \ | |
45 | $3 !~ /^_gst_parse_launch/ && \ | |
46 | $3 !~ /^__gst_element_details_/ && \ | |
47 | $3 !~ /^__gst_element_factory_add_/ && \ | |
48 | $3 !~ /^gst_interfaces_marshal/ && \ | |
49 | $3 ~ /^[_]*(gst_|Gst|GST_).*/) | |
50 | { | |
51 | if ($2 ~ /^[BSDG]$/) | |
52 | print "\t" $3 " DATA" | |
53 | else if ($2 == "T") | |
54 | print "\t" $3 | |
55 | } | |
56 | }' | sort | awk '{ if (NR == 1) print "EXPORTS"; print $0; }' \ | |
57 | > $lib_result | |
58 | ||
59 | diffoutput=`diff -u $def_path $lib_result` | |
60 | ||
61 | rm $lib_result | |
62 | ||
63 | if test "x$diffoutput" = "x"; then | |
64 | exit 0; | |
65 | else | |
66 | echo -n "$diffoutput" >&2 | |
67 | echo >&2 | |
68 | exit 1; | |
69 | fi | |
70 |
5 | 5 | if HAVE_VALGRIND |
6 | 6 | # hangs spectacularly on some machines, so let's not do this by default yet |
7 | 7 | check-valgrind: |
8 | make valgrind | |
8 | $(MAKE) valgrind | |
9 | 9 | else |
10 | 10 | check-valgrind: |
11 | 11 | @true |
70 | 70 | |
71 | 71 | # valgrind any given test until failure by running make test.valgrind-forever |
72 | 72 | %.valgrind-forever: % |
73 | @while make $*.valgrind; do \ | |
73 | @while $(MAKE) $*.valgrind; do \ | |
74 | 74 | true; done |
75 | 75 | |
76 | 76 | # gdb any given test by running make test.gdb |
85 | 85 | -rm test-registry.xml |
86 | 86 | @echo "Torturing tests ..." |
87 | 87 | for i in `seq 1 $(LOOPS)`; do \ |
88 | make check || \ | |
88 | $(MAKE) check || \ | |
89 | 89 | (echo "Failure after $$i runs"; exit 1) || \ |
90 | 90 | exit 1; \ |
91 | 91 | done |
98 | 98 | -rm test-registry.xml |
99 | 99 | @echo "Forever tests ..." |
100 | 100 | while true; do \ |
101 | make check || \ | |
101 | $(MAKE) check || \ | |
102 | 102 | (echo "Failure"; exit 1) || \ |
103 | 103 | exit 1; \ |
104 | 104 | done |
108 | 108 | @echo "Valgrinding tests ..." |
109 | 109 | @failed=0; \ |
110 | 110 | for t in $(filter-out $(VALGRIND_TESTS_DISABLE),$(TESTS)); do \ |
111 | make $$t.valgrind; \ | |
111 | $(MAKE) $$t.valgrind; \ | |
112 | 112 | if test "$$?" -ne 0; then \ |
113 | 113 | echo "Valgrind error for test $$t"; \ |
114 | 114 | failed=`expr $$failed + 1`; \ |
131 | 131 | $(GST_INSPECT) $$e > /dev/null 2>&1; done |
132 | 132 | |
133 | 133 | help: |
134 | @echo | |
134 | 135 | @echo "make check -- run all checks" |
135 | 136 | @echo "make torture -- run all checks $(LOOPS) times" |
136 | 137 | @echo "make (dir)/(test).check -- run the given check once" |
145 | 146 | @echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions" |
146 | 147 | @echo " and save to suppressions.log" |
147 | 148 | @echo "make inspect -- inspect all plugin features" |
149 | @echo | |
150 | @echo | |
151 | @echo "Additionally, you can use the GST_CHECKS environment variable to" | |
152 | @echo "specify which test(s) should be run. This is useful if you are" | |
153 | @echo "debugging a failure in one particular test, or want to reproduce" | |
154 | @echo "a race condition in a single test." | |
155 | @echo | |
156 | @echo "Examples:" | |
157 | @echo | |
158 | @echo " GST_CHECKS=test_this,test_that make element/foobar.check" | |
159 | @echo " GST_CHECKS=test_many_threads make element/foobar.forever" | |
160 | @echo | |
148 | 161 |
0 | #!/bin/sh | |
1 | # Shell script to download the latest translations for a given GStreamer | |
2 | # package from translationproject.org | |
3 | ||
4 | ||
5 | # DOMAINS based on http://translationproject.org/extra/matrix.html | |
6 | # We need to check all domains, not only po/LINGUAS, since there might be | |
7 | # new translations | |
8 | DOMAINS=\ | |
9 | "af am ar az be bg pt_BR bs ca zh_CN cs cy da de el eo es et eu fa fi fr "\ | |
10 | "ga en_GB gl gu he hi zh_HK hr hu id is it ja ko ku ky lg lt lv mk mn ms "\ | |
11 | "mt nb ne nl nn or pa pl pt rm ro ru rw sk sl sq sr sv ta tq th tk "\ | |
12 | "tr zh_TW uk ven vi wa xh zu" | |
13 | ||
14 | # for testing/debugging: | |
15 | #DOMAINS="es fr hu sv pl xx" | |
16 | ||
17 | # check for 'diff' program | |
18 | diff --version 2>/dev/null >/dev/null | |
19 | if [ ! $? ]; then | |
20 | echo "==== You must have the 'diff' program installed for this script ====" | |
21 | exit 1 | |
22 | fi | |
23 | ||
24 | # check for 'wget' program | |
25 | wget --version 2>/dev/null >/dev/null | |
26 | if [ ! $? ]; then | |
27 | echo "==== You must have the 'wget' program installed for this script ====" | |
28 | exit 1 | |
29 | fi | |
30 | ||
31 | # make sure we're in the top-level directory | |
32 | if [ ! -d ./po ]; then | |
33 | echo "==== No ./po directory in the current working directory ====" | |
34 | exit 1 | |
35 | fi | |
36 | ||
37 | # make sure a package argument was passed to us | |
38 | if [ -z "$1" ]; then | |
39 | echo "Usage: $0 PACKAGE, e.g. $0 gst-plugins-good" | |
40 | exit 1 | |
41 | fi | |
42 | ||
43 | if test "$1" != "gstreamer" -a \ | |
44 | "$1" != "gst-plugins-base" -a \ | |
45 | "$1" != "gst-plugins-good" -a \ | |
46 | "$1" != "gst-plugins-ugly" -a \ | |
47 | "$1" != "gst-plugins-bad"; then | |
48 | echo "Unexpected package '$1' ?!" | |
49 | exit 1 | |
50 | fi | |
51 | ||
52 | PACKAGE="$1" | |
53 | ||
54 | DOMAINS_TO_ADD="" | |
55 | DOMAINS_UPDATED="" | |
56 | ||
57 | echo "Downloading latest translation files for package $PACKAGE ..." | |
58 | echo | |
59 | ||
60 | for d in $DOMAINS | |
61 | do | |
62 | PACKAGE_PO_URL_BASE="http://translationproject.org/latest/$PACKAGE" | |
63 | PO_URL="$PACKAGE_PO_URL_BASE/$d.po" | |
64 | PO_FILENAME="$PACKAGE.$d.po" | |
65 | if wget -q -nc -O $PO_FILENAME $PO_URL; then | |
66 | if [ -f "po/$d.po" ]; then | |
67 | # ./po/foo.po exists, so let's check if ours matches the latest from the | |
68 | # translation project website | |
69 | if diff $PO_FILENAME "po/$d.po" >/dev/null; then | |
70 | echo "$d.po: up-to-date" | |
71 | rm -f $PO_FILENAME | |
72 | else | |
73 | mv $PO_FILENAME "po/$d.po" | |
74 | echo "$d.po: updated" | |
75 | DOMAINS_UPDATED="$DOMAINS_UPDATED $d" | |
76 | fi | |
77 | else | |
78 | # ./po/foo.po doesn't exist, but foo.po exists on the translation project | |
79 | # website, so it's probably a new translation | |
80 | echo "$d.po: new language" | |
81 | mv $PO_FILENAME "po/$d.po" | |
82 | DOMAINS_UPDATED="$DOMAINS_UPDATED $d" | |
83 | DOMAINS_TO_ADD="$DOMAINS_TO_ADD $d" | |
84 | fi | |
85 | else | |
86 | rm -f $PO_FILENAME | |
87 | echo "$d.po: failure (does probably not exist)" | |
88 | fi | |
89 | done | |
90 | ||
91 | if [ -n "$DOMAINS_UPDATED" ]; then | |
92 | echo "====================================================================" | |
93 | echo | |
94 | echo "Language domains updated :$DOMAINS_UPDATED" | |
95 | echo "Language domains to cvs add :$DOMAINS_TO_ADD" | |
96 | echo | |
97 | echo "Source: http://translationproject.org/latest/$PACKAGE/" | |
98 | echo | |
99 | if [ -n "$DOMAINS_TO_ADD" ]; then | |
100 | CMD_STRING="cvs add" | |
101 | for d in $DOMAINS_TO_ADD; do | |
102 | CMD_STRING="$CMD_STRING po/$d.po" | |
103 | done | |
104 | echo "Please run" | |
105 | echo | |
106 | echo " $CMD_STRING" | |
107 | echo | |
108 | echo "now and add the following domains to the po/LINGUAS file:" | |
109 | echo | |
110 | echo " $DOMAINS_TO_ADD" | |
111 | echo | |
112 | echo | |
113 | fi | |
114 | echo "====================================================================" | |
115 | fi | |
116 | ||
117 |
0 | --- po/Makefile.in.in.orig 2006-01-07 12:03:45.000000000 +0100 | |
1 | +++ po/Makefile.in.in 2006-01-07 12:04:23.000000000 +0100 | |
2 | @@ -11,6 +11,9 @@ | |
3 | PACKAGE = @PACKAGE@ | |
4 | VERSION = @VERSION@ | |
5 | ||
6 | +# thomas: add GETTEXT_PACKAGE substitution as used in Makevars | |
7 | +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ | |
8 | + | |
9 | SHELL = /bin/sh | |
10 | @SET_MAKE@ | |
11 |
0 | # these are the variables your Makefile.am should set | |
1 | # the example is based on the colorbalance interface | |
2 | ||
3 | #glib_enum_headers=$(colorbalance_headers) | |
4 | #glib_enum_define=GST_COLOR_BALANCE | |
5 | #glib_enum_prefix=gst_color_balance | |
6 | ||
7 | enum_headers=$(foreach h,$(glib_enum_headers),\n\#include \"$(h)\") | |
8 | ||
9 | # these are all the rules generating the relevant files | |
10 | %-marshal.h: %-marshal.list | |
11 | glib-genmarshal --header --prefix=$(glib_enum_prefix)_marshal $^ > $*-marshal.h.tmp | |
12 | mv $*-marshal.h.tmp $*-marshal.h | |
13 | ||
14 | %-marshal.c: %-marshal.list | |
15 | echo "#include \"$*-marshal.h\"" >> $*-marshal.c.tmp | |
16 | glib-genmarshal --body --prefix=$(glib_enum_prefix)_marshal $^ >> $*-marshal.c.tmp | |
17 | mv $*-marshal.c.tmp $*-marshal.c | |
18 | ||
19 | %-enumtypes.h: $(glib_enum_headers) | |
20 | glib-mkenums \ | |
21 | --fhead "#ifndef __$(glib_enum_define)_ENUM_TYPES_H__\n#define __$(glib_enum_define)_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \ | |
22 | --fprod "\n/* enumerations from \"@filename@\" */\n" \ | |
23 | --vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ | |
24 | --ftail "G_END_DECLS\n\n#endif /* __$(glib_enum_define)_ENUM_TYPES_H__ */" \ | |
25 | $^ > $@ | |
26 | ||
27 | %-enumtypes.c: $(glib_enum_headers) | |
28 | @if test "x$(glib_enum_headers)" == "x"; then echo "ERROR: glib_enum_headers is empty, please fix Makefile"; exit 1; fi | |
29 | glib-mkenums \ | |
30 | --fhead "#include \"$*-enumtypes.h\"\n$(enum_headers)" \ | |
31 | --fprod "\n/* enumerations from \"@filename@\" */" \ | |
32 | --vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {" \ | |
33 | --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ | |
34 | --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ | |
35 | $^ > $@ | |
36 | ||
37 | # a hack rule to make sure .Plo files exist because they get include'd | |
38 | # from Makefile's | |
39 | .deps/%-marshal.Plo: | |
40 | touch $@ | |
41 | ||
42 | .deps/%-enumtypes.Plo: | |
43 | touch $@ |
32 | 32 | { |
33 | 33 | <conditional jump on wim's debian 2/2/06> |
34 | 34 | Memcheck:Cond |
35 | obj:/lib/ld-2.3.*.so | |
35 | obj:/lib/ld-2.*.so | |
36 | 36 | fun:dl_open_worker |
37 | obj:/lib/ld-2.3.*.so | |
37 | obj:/lib/ld-2.*.so | |
38 | 38 | fun:_dl_open |
39 | 39 | fun:dlopen_doit |
40 | obj:/lib/ld-2.3.*.so | |
40 | obj:/lib/ld-2.*.so | |
41 | 41 | fun:_dlerror_run |
42 | fun:dlopen@@GLIBC_2.1 | |
42 | fun:dlopen | |
43 | 43 | fun:g_module_open |
44 | 44 | fun:gst_plugin_load_file |
45 | } | |
46 | ||
47 | { | |
48 | <Conditional jump> | |
49 | Memcheck:Cond | |
50 | fun:strlen | |
51 | fun:fillin_rpath | |
52 | fun:_dl_init_paths | |
53 | fun:dl_main | |
54 | fun:_dl_sysdep_start | |
55 | fun:_dl_start | |
56 | obj:/lib64/ld-2.*.so | |
57 | obj:* | |
58 | obj:* | |
59 | } | |
60 | ||
61 | { | |
62 | <Conditional jump> | |
63 | Memcheck:Cond | |
64 | fun:_dl_relocate_object | |
65 | fun:dl_main | |
66 | fun:_dl_sysdep_start | |
67 | fun:_dl_start | |
68 | obj:/lib64/ld-2.*.so | |
69 | obj:* | |
70 | obj:* | |
71 | } | |
72 | ||
73 | { | |
74 | <insert a suppression name here> | |
75 | Memcheck:Cond | |
76 | fun:_dl_relocate_object | |
77 | fun:dl_open_worker | |
78 | fun:_dl_catch_error | |
79 | fun:_dl_open | |
80 | fun:dlopen_doit | |
81 | fun:_dl_catch_error | |
82 | fun:_dlerror_run | |
83 | fun:dlopen@@GLIBC_2.2.5 | |
84 | fun:g_module_open | |
45 | 85 | } |
46 | 86 | |
47 | 87 | # glibc does not deallocate thread-local storage |
631 | 671 | fun:_Exit |
632 | 672 | } |
633 | 673 | |
674 | # same as above, just so it works for tpm on gutsy/x86-64 | |
675 | { | |
676 | <workaround glibc bug on gutsy x86-64> | |
677 | Memcheck:Free | |
678 | fun:free | |
679 | fun:free_mem | |
680 | fun:__libc_freeres | |
681 | } | |
682 | ||
634 | 683 | # valgrind doesn't allow me to specify a suppression for Addr1, Addr2, Addr4 |
635 | 684 | # as Addr*, so 3 copies for that; and then 2 of each for that pesky memcpy |
636 | 685 | { |
1625 | 1674 | fun:calloc |
1626 | 1675 | fun:g_malloc0 |
1627 | 1676 | fun:ORBit_alloc_tcval |
1628 | obj:/usr/lib/libORBit-2.so.* | |
1677 | obj:* | |
1629 | 1678 | fun:PortableServer_POA_servant_to_reference |
1630 | obj:/usr/lib/libgconf-2.so.* | |
1631 | obj:/usr/lib/libgconf-2.so.* | |
1632 | obj:/usr/lib/libgconf-2.so.* | |
1679 | fun:* | |
1680 | fun:* | |
1681 | fun:* | |
1633 | 1682 | fun:gconf_engine_get_default |
1634 | 1683 | } |
1635 | 1684 | { |
1655 | 1704 | fun:calloc |
1656 | 1705 | fun:g_malloc0 |
1657 | 1706 | fun:ORBit_alloc* |
1658 | obj:/usr/lib/libORBit-2.so.* | |
1707 | fun:* | |
1659 | 1708 | fun:ORBit_demarshal_IOR |
1660 | 1709 | fun:ORBit_demarshal_object |
1661 | 1710 | fun:ORBit_demarshal_value |
1662 | obj:/usr/lib/libORBit-2.so.* | |
1711 | fun:* | |
1663 | 1712 | fun:ORBit_small_invoke_stub |
1664 | 1713 | fun:ConfigServer_get_default_database |
1665 | obj:/usr/lib/libgconf-2.so.* | |
1714 | fun:* | |
1666 | 1715 | fun:gconf_engine_get_default |
1667 | 1716 | } |
1668 | 1717 | { |
1671 | 1720 | fun:calloc |
1672 | 1721 | fun:g_malloc0 |
1673 | 1722 | fun:ORBit_alloc* |
1674 | obj:/usr/lib/libORBit-2.so.* | |
1723 | fun:* | |
1675 | 1724 | fun:IOP_generate_profiles |
1676 | 1725 | fun:ORBit_marshal_object |
1677 | 1726 | fun:ORBit_marshal_value |
1678 | obj:/usr/lib/libORBit-2.so.* | |
1727 | fun:* | |
1679 | 1728 | fun:ORBit_small_invoke_stub |
1680 | 1729 | fun:ConfigServer_add_client |
1681 | obj:/usr/lib/libgconf-2.so.* | |
1682 | obj:/usr/lib/libgconf-2.so.* | |
1730 | fun:* | |
1731 | fun:* | |
1683 | 1732 | fun:gconf_engine_get_default |
1684 | 1733 | } |
1685 | 1734 | { |
1688 | 1737 | fun:calloc |
1689 | 1738 | fun:g_malloc0 |
1690 | 1739 | fun:ORBit_alloc_by_tc |
1691 | obj:/usr/lib/libORBit-2.so.* | |
1740 | fun:* | |
1692 | 1741 | fun:PortableServer_POA_servant_to_reference |
1693 | obj:/usr/lib/libgconf-2.so.* | |
1694 | obj:/usr/lib/libgconf-2.so.* | |
1695 | obj:/usr/lib/libgconf-2.so.* | |
1742 | fun:* | |
1743 | fun:* | |
1744 | fun:* | |
1696 | 1745 | fun:gconf_engine_get_default |
1697 | 1746 | } |
1698 | 1747 | { |
1713 | 1762 | fun:gconf_engine_get_default |
1714 | 1763 | } |
1715 | 1764 | |
1765 | { | |
1766 | <insert a suppression name here> | |
1767 | Memcheck:Leak | |
1768 | fun:calloc | |
1769 | fun:g_malloc0 | |
1770 | fun:ORBit_alloc* | |
1771 | fun:* | |
1772 | fun:ORBit_demarshal_IOR | |
1773 | fun:ORBit_demarshal_object | |
1774 | fun:* | |
1775 | fun:* | |
1776 | fun:gconf_activate_server | |
1777 | } | |
1778 | ||
1716 | 1779 | # Some libORBit/bonobo initialisation stuff |
1717 | 1780 | { |
1718 | 1781 | <bonobo init> |
1757 | 1820 | fun:g_malloc0 |
1758 | 1821 | fun:ORBit_alloc_tcval |
1759 | 1822 | fun:ORBit_adaptor_setup |
1760 | obj:/usr/lib/libORBit-2.so* | |
1823 | fun:* | |
1761 | 1824 | fun:ORBit_POA_setup_root |
1762 | 1825 | fun:ORBit_init_internals |
1763 | 1826 | fun:CORBA_ORB_init |
1985 | 2048 | fun:FcInitLoadConfigAndFonts |
1986 | 2049 | } |
1987 | 2050 | |
2051 | # Issues with ubuntu Hardy, same crack as for previous ubuntus | |
2052 | { | |
2053 | <tls leak generic ubuntu hardy x86> | |
2054 | Memcheck:Leak | |
2055 | fun:calloc | |
2056 | obj:* | |
2057 | fun:_dl_allocate_tls | |
2058 | fun:pthread_create@@* | |
2059 | obj:/usr/lib/libgthread* | |
2060 | fun:g_thread_* | |
2061 | } | |
2062 | ||
2063 | # I've made this version generic, so that it covers future modifications | |
2064 | # of library names | |
2065 | { | |
2066 | <tls leak generic> | |
2067 | Memcheck:Leak | |
2068 | fun:calloc | |
2069 | obj:* | |
2070 | fun:_dl_allocate_tls | |
2071 | fun:pthread_create@@* | |
2072 | fun:g_thread_* | |
2073 | } | |
2074 | ||
2075 | # series of invalid read of size 4 in g_module_open for ubuntu | |
2076 | # hardy x86/32bit | |
2077 | { | |
2078 | <invalid read of size 4 within <g_module_open> | |
2079 | Memcheck:Addr4 | |
2080 | obj:/lib/ld-2.7.so | |
2081 | obj:/lib/ld-2.7.so | |
2082 | obj:/lib/ld-2.7.so | |
2083 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2084 | obj:/lib/ld-2.7.so | |
2085 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2086 | fun:dlopen | |
2087 | fun:g_module_open | |
2088 | fun:gst_plugin_load_* | |
2089 | } | |
2090 | ||
2091 | { | |
2092 | <invalid read of size 4 within <g_module_open> | |
2093 | Memcheck:Addr4 | |
2094 | obj:/lib/ld-2.7.so | |
2095 | obj:/lib/ld-2.7.so | |
2096 | obj:/lib/ld-2.7.so | |
2097 | obj:/lib/ld-2.7.so | |
2098 | obj:/lib/ld-2.7.so | |
2099 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2100 | obj:/lib/ld-2.7.so | |
2101 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2102 | fun:dlopen | |
2103 | fun:g_module_open | |
2104 | fun:gst_plugin_load_* | |
2105 | } | |
2106 | ||
2107 | { | |
2108 | <invalid read of size 4 within <g_module_open> | |
2109 | Memcheck:Addr4 | |
2110 | obj:/lib/ld-2.7.so | |
2111 | obj:/lib/ld-2.7.so | |
2112 | obj:/lib/ld-2.7.so | |
2113 | obj:/lib/ld-2.7.so | |
2114 | obj:/lib/ld-2.7.so | |
2115 | obj:/lib/ld-2.7.so | |
2116 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2117 | obj:/lib/ld-2.7.so | |
2118 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2119 | fun:dlopen | |
2120 | fun:g_module_open | |
2121 | fun:gst_plugin_load_* | |
2122 | } | |
2123 | ||
2124 | { | |
2125 | <invalid read of size 4 within <g_module_open> | |
2126 | Memcheck:Addr4 | |
2127 | obj:/lib/ld-2.7.so | |
2128 | obj:/lib/ld-2.7.so | |
2129 | obj:/lib/ld-2.7.so | |
2130 | obj:/lib/ld-2.7.so | |
2131 | obj:/lib/ld-2.7.so | |
2132 | obj:/lib/ld-2.7.so | |
2133 | obj:/lib/ld-2.7.so | |
2134 | obj:/lib/ld-2.7.so | |
2135 | obj:/lib/ld-2.7.so | |
2136 | obj:/lib/ld-2.7.so | |
2137 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2138 | obj:/lib/ld-2.7.so | |
2139 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2140 | fun:dlopen | |
2141 | fun:g_module_open | |
2142 | fun:gst_plugin_load_* | |
2143 | } | |
2144 | ||
2145 | { | |
2146 | <invalid read of size 4 within <g_module_open> | |
2147 | Memcheck:Addr4 | |
2148 | obj:/lib/ld-2.7.so | |
2149 | obj:/lib/ld-2.7.so | |
2150 | obj:/lib/ld-2.7.so | |
2151 | obj:/lib/ld-2.7.so | |
2152 | obj:/lib/ld-2.7.so | |
2153 | obj:/lib/ld-2.7.so | |
2154 | obj:/lib/ld-2.7.so | |
2155 | obj:/lib/ld-2.7.so | |
2156 | obj:/lib/ld-2.7.so | |
2157 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2158 | obj:/lib/ld-2.7.so | |
2159 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2160 | fun:dlopen | |
2161 | fun:g_module_open | |
2162 | fun:gst_plugin_load* | |
2163 | } | |
2164 | ||
2165 | { | |
2166 | <invalid read of size 4 within <g_module_open> | |
2167 | Memcheck:Addr4 | |
2168 | obj:/lib/ld-2.7.so | |
2169 | obj:/lib/ld-2.7.so | |
2170 | obj:/lib/ld-2.7.so | |
2171 | obj:/lib/tls/i686/cmov/libc-2.7.so | |
2172 | fun:_dl_sym | |
2173 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2174 | obj:/lib/ld-2.7.so | |
2175 | obj:/lib/tls/i686/cmov/libdl-2.7.so | |
2176 | fun:dlsym | |
2177 | fun:g_module_symbol | |
2178 | fun:g_module_open | |
2179 | fun:gst_plugin_load_* | |
2180 | } | |
2181 | ||
2182 | # series of invalid read of size 8 in g_module_open for ubuntu | |
2183 | # hardy x86/64bit | |
2184 | { | |
2185 | <invalid read of size 8 within <g_module_open> | |
2186 | Memcheck:Addr8 | |
2187 | obj:/lib/ld-2.7.so | |
2188 | obj:/lib/ld-2.7.so | |
2189 | obj:/lib/ld-2.7.so | |
2190 | obj:/lib/ld-2.7.so | |
2191 | obj:/lib/ld-2.7.so | |
2192 | obj:/lib/ld-2.7.so | |
2193 | obj:/lib/ld-2.7.so | |
2194 | obj:/lib/libdl-2.7.so | |
2195 | obj:/lib/ld-2.7.so | |
2196 | obj:/lib/libdl-2.7.so | |
2197 | fun:dlopen | |
2198 | fun:g_module_open | |
2199 | } | |
2200 | ||
2201 | { | |
2202 | <invalid read of size 8 within <g_module_open> | |
2203 | Memcheck:Addr8 | |
2204 | obj:/lib/ld-2.7.so | |
2205 | obj:/lib/ld-2.7.so | |
2206 | obj:/lib/ld-2.7.so | |
2207 | obj:/lib/ld-2.7.so | |
2208 | obj:/lib/libdl-2.7.so | |
2209 | obj:/lib/ld-2.7.so | |
2210 | obj:/lib/libdl-2.7.so | |
2211 | fun:dlopen | |
2212 | fun:g_module_open | |
2213 | } | |
2214 | ||
2215 | { | |
2216 | <invalid read of size 8 within <g_module_open> | |
2217 | Memcheck:Addr8 | |
2218 | obj:/lib/ld-2.7.so | |
2219 | obj:/lib/ld-2.7.so | |
2220 | obj:/lib/ld-2.7.so | |
2221 | obj:/lib/ld-2.7.so | |
2222 | obj:/lib/ld-2.7.so | |
2223 | obj:/lib/ld-2.7.so | |
2224 | obj:/lib/libdl-2.7.so | |
2225 | obj:/lib/ld-2.7.so | |
2226 | obj:/lib/libdl-2.7.so | |
2227 | fun:dlopen | |
2228 | fun:g_module_open | |
2229 | } | |
2230 | ||
2231 | { | |
2232 | <invalid read of size 8 within <g_module_open> | |
2233 | Memcheck:Addr8 | |
2234 | obj:/lib/ld-2.7.so | |
2235 | obj:/lib/ld-2.7.so | |
2236 | obj:/lib/ld-2.7.so | |
2237 | obj:/lib/ld-2.7.so | |
2238 | obj:/lib/ld-2.7.so | |
2239 | obj:/lib/ld-2.7.so | |
2240 | obj:/lib/ld-2.7.so | |
2241 | obj:/lib/ld-2.7.so | |
2242 | obj:/lib/ld-2.7.so | |
2243 | obj:/lib/ld-2.7.so | |
2244 | obj:/lib/libdl-2.7.so | |
2245 | obj:/lib/ld-2.7.so | |
2246 | obj:/lib/libdl-2.7.so | |
2247 | fun:dlopen | |
2248 | fun:g_module_open | |
2249 | } | |
2250 | ||
2251 | { | |
2252 | <invalid read of size 8 within <g_module_open> | |
2253 | Memcheck:Addr8 | |
2254 | obj:/lib/ld-2.7.so | |
2255 | obj:/lib/ld-2.7.so | |
2256 | obj:/lib/ld-2.7.so | |
2257 | obj:/lib/ld-2.7.so | |
2258 | obj:/lib/ld-2.7.so | |
2259 | obj:/lib/libdl-2.7.so | |
2260 | obj:/lib/ld-2.7.so | |
2261 | obj:/lib/libdl-2.7.so | |
2262 | fun:dlopen | |
2263 | fun:g_module_open | |
2264 | } | |
2265 | ||
2266 | { | |
2267 | <invalid read of size 8 within <g_module_open> | |
2268 | Memcheck:Addr8 | |
2269 | obj:/lib/ld-2.7.so | |
2270 | obj:/lib/ld-2.7.so | |
2271 | obj:/lib/libdl-2.7.so | |
2272 | obj:/lib/ld-2.7.so | |
2273 | obj:/lib/libdl-2.7.so | |
2274 | fun:dlopen | |
2275 | fun:g_module_open | |
2276 | } | |
2277 | ||
2278 | { | |
2279 | <invalid read of size 8 within <g_module_open> | |
2280 | Memcheck:Addr8 | |
2281 | obj:/lib/ld-2.7.so | |
2282 | obj:/lib/ld-2.7.so | |
2283 | obj:/lib/ld-2.7.so | |
2284 | obj:/lib/ld-2.7.so | |
2285 | obj:/lib/libc-2.7.so | |
2286 | obj:/lib/libdl-2.7.so | |
2287 | obj:/lib/ld-2.7.so | |
2288 | obj:/lib/libdl-2.7.so | |
2289 | fun:dlsym | |
2290 | fun:g_module_symbol | |
2291 | fun:g_module_open | |
2292 | } | |
2293 | ||
2294 | { | |
2295 | <GLib caching> | |
2296 | Memcheck:Addr4 | |
2297 | obj:/lib/ld-2.7.so | |
2298 | obj:/lib/ld-2.7.so | |
2299 | obj:/lib/ld-2.7.so | |
2300 | obj:/lib/ld-2.7.so | |
2301 | obj:/lib/ld-2.7.so | |
2302 | obj:/lib/ld-2.7.so | |
2303 | obj:/lib/tls/i686/cmov/libc-2.7.so | |
2304 | obj:/lib/ld-2.7.so | |
2305 | fun:__libc_dlopen_mode | |
2306 | fun:__nss_lookup_function | |
2307 | obj:/lib/tls/i686/cmov/libc-2.7.so | |
2308 | fun:__nss_passwd_lookup | |
2309 | fun:getpwnam_r | |
2310 | } | |
2311 | ||
2312 | { | |
2313 | <GLib caching> | |
2314 | Memcheck:Addr4 | |
2315 | obj:/lib/ld-2.7.so | |
2316 | obj:/lib/ld-2.7.so | |
2317 | obj:/lib/ld-2.7.so | |
2318 | obj:/lib/ld-2.7.so | |
2319 | obj:/lib/ld-2.7.so | |
2320 | obj:/lib/ld-2.7.so | |
2321 | obj:/lib/ld-2.7.so | |
2322 | obj:/lib/ld-2.7.so | |
2323 | obj:/lib/ld-2.7.so | |
2324 | obj:/lib/tls/i686/cmov/libc-2.7.so | |
2325 | obj:/lib/ld-2.7.so | |
2326 | fun:__libc_dlopen_mode | |
2327 | fun:__nss_lookup_function | |
2328 | obj:/lib/tls/i686/cmov/libc-2.7.so | |
2329 | fun:__nss_passwd_lookup | |
2330 | fun:getpwnam_r | |
2331 | } | |
2332 | ||
2333 | { | |
2334 | <GLib caching> | |
2335 | Memcheck:Addr4 | |
2336 | obj:/lib/ld-2.7.so | |
2337 | obj:/lib/ld-2.7.so | |
2338 | obj:/lib/ld-2.7.so | |
2339 | obj:/lib/ld-2.7.so | |
2340 | obj:/lib/ld-2.7.so | |
2341 | obj:/lib/ld-2.7.so | |
2342 | obj:/lib/tls/i686/cmov/libc-2.7.so | |
2343 | obj:/lib/ld-2.7.so | |
2344 | fun:__libc_dlopen_mode | |
2345 | fun:__nss_lookup_function | |
2346 | obj:/lib/tls/i686/cmov/libnss_compat-2.7.so | |
2347 | fun:_nss_compat_getpwnam_r | |
2348 | fun:getpwnam_r | |
2349 | } | |
2350 | ||
2351 | { | |
2352 | <GLib caching> | |
2353 | Memcheck:Addr4 | |
2354 | obj:/lib/ld-2.7.so | |
2355 | obj:/lib/ld-2.7.so | |
2356 | obj:/lib/ld-2.7.so | |
2357 | obj:/lib/ld-2.7.so | |
2358 | obj:/lib/ld-2.7.so | |
2359 | obj:/lib/ld-2.7.so | |
2360 | obj:/lib/ld-2.7.so | |
2361 | obj:/lib/ld-2.7.so | |
2362 | obj:/lib/ld-2.7.so | |
2363 | obj:/lib/tls/i686/cmov/libc-2.7.so | |
2364 | obj:/lib/ld-2.7.so | |
2365 | fun:__libc_dlopen_mode | |
2366 | fun:__nss_lookup_function | |
2367 | obj:/lib/tls/i686/cmov/libnss_compat-2.7.so | |
2368 | fun:_nss_compat_getpwnam_r | |
2369 | fun:getpwnam_r | |
2370 | } | |
2371 | ||
2372 | { | |
2373 | <GLib caching> | |
2374 | Memcheck:Addr8 | |
2375 | obj:/lib/ld-2.7.so | |
2376 | obj:/lib/ld-2.7.so | |
2377 | obj:/lib/ld-2.7.so | |
2378 | obj:/lib/ld-2.7.so | |
2379 | obj:/lib/ld-2.7.so | |
2380 | obj:/lib/ld-2.7.so | |
2381 | obj:/lib/ld-2.7.so | |
2382 | obj:/lib/ld-2.7.so | |
2383 | obj:/lib/ld-2.7.so | |
2384 | obj:/lib/ld-2.7.so | |
2385 | obj:/lib/libc-2.7.so | |
2386 | obj:/lib/ld-2.7.so | |
2387 | fun:__libc_dlopen_mode | |
2388 | fun:__nss_lookup_function | |
2389 | obj:/lib/libc-2.7.so | |
2390 | fun:getpwnam_r | |
2391 | } | |
2392 | ||
2393 | ## Leaks in ALSA (variations of leak from snd_config_load1) | |
2394 | ||
2395 | { | |
2396 | <Alsa leak> | |
2397 | Memcheck:Leak | |
2398 | fun:calloc | |
2399 | fun:_snd_config_make | |
2400 | fun:_snd_config_make_add | |
2401 | fun:* | |
2402 | fun:* | |
2403 | fun:* | |
2404 | fun:* | |
2405 | fun:snd_config_load1 | |
2406 | } | |
2407 | ||
2408 | { | |
2409 | <Alsa leak> | |
2410 | Memcheck:Leak | |
2411 | fun:calloc | |
2412 | fun:_snd_config_make | |
2413 | fun:_snd_config_make_add | |
2414 | fun:* | |
2415 | fun:* | |
2416 | fun:snd_config_load1 | |
2417 | } | |
2418 | { | |
2419 | <Alsa leak> | |
2420 | Memcheck:Leak | |
2421 | fun:calloc | |
2422 | fun:_snd_config_make | |
2423 | fun:_snd_config_make_add | |
2424 | fun:* | |
2425 | fun:* | |
2426 | fun:* | |
2427 | fun:snd_config_load1 | |
2428 | } | |
2429 | { | |
2430 | <Alsa leak> | |
2431 | Memcheck:Leak | |
2432 | fun:calloc | |
2433 | fun:_snd_config_make | |
2434 | fun:_snd_config_make_add | |
2435 | fun:* | |
2436 | fun:* | |
2437 | fun:* | |
2438 | fun:* | |
2439 | fun:* | |
2440 | fun:snd_config_load1 | |
2441 | } | |
2442 | ||
2443 | { | |
2444 | <Alsa leak> | |
2445 | Memcheck:Leak | |
2446 | fun:calloc | |
2447 | fun:_snd_config_make | |
2448 | fun:_snd_config_make_add | |
2449 | fun:* | |
2450 | fun:* | |
2451 | fun:* | |
2452 | fun:* | |
2453 | fun:* | |
2454 | fun:* | |
2455 | fun:snd_config_load1 | |
2456 | } | |
2457 | ||
2458 | { | |
2459 | <Alsa leak> | |
2460 | Memcheck:Leak | |
2461 | fun:calloc | |
2462 | fun:_snd_config_make | |
2463 | fun:_snd_config_make_add | |
2464 | fun:* | |
2465 | fun:* | |
2466 | fun:* | |
2467 | fun:* | |
2468 | fun:* | |
2469 | fun:* | |
2470 | fun:* | |
2471 | fun:snd_config_load1 | |
2472 | } | |
2473 | { | |
2474 | <Alsa leak> | |
2475 | Memcheck:Leak | |
2476 | fun:calloc | |
2477 | fun:_snd_config_make | |
2478 | fun:_snd_config_make_add | |
2479 | fun:* | |
2480 | fun:* | |
2481 | fun:* | |
2482 | fun:* | |
2483 | fun:* | |
2484 | fun:* | |
2485 | fun:* | |
2486 | fun:* | |
2487 | fun:snd_config_load1 | |
2488 | } | |
2489 | ||
2490 | { | |
2491 | <Alsa leak> | |
2492 | Memcheck:Leak | |
2493 | fun:malloc | |
2494 | fun:snd1_dlobj_cache_add | |
2495 | fun:snd_ctl_open_noupdate | |
2496 | } | |
2497 | ||
2498 | # The following are leaks of caps that need to be created dynamically | |
2499 | # in the type registration of the plugin (used for pad templates). | |
2500 | ||
2501 | { | |
2502 | <Leak in ogmparsers> | |
2503 | Memcheck:Leak | |
2504 | fun:malloc | |
2505 | fun:g_malloc | |
2506 | fun:g_slice_alloc | |
2507 | fun:gst_caps_new_empty | |
2508 | fun:gst_caps_new_simple | |
2509 | fun:* | |
2510 | fun:g_type_class_ref | |
2511 | fun:gst_element_register | |
2512 | } | |
2513 | ||
2514 | { | |
2515 | <Leak in ogmparsers> | |
2516 | Memcheck:Leak | |
2517 | fun:malloc | |
2518 | fun:g_malloc | |
2519 | fun:g_slice_alloc | |
2520 | fun:gst_caps_new_empty | |
2521 | fun:* | |
2522 | fun:* | |
2523 | fun:g_type_class_ref | |
2524 | fun:gst_element_register | |
2525 | fun:gst_ogm_parse_plugin_init | |
2526 | fun:plugin_init | |
2527 | } | |
2528 | ||
2529 | { | |
2530 | <Leak in videotestsrc> | |
2531 | Memcheck:Leak | |
2532 | fun:malloc | |
2533 | fun:g_malloc | |
2534 | fun:g_slice_alloc | |
2535 | fun:gst_caps_new_empty | |
2536 | fun:gst_caps_copy | |
2537 | fun:gst_video_test_src_base_init | |
2538 | fun:g_type_class_ref | |
2539 | fun:gst_element_register | |
2540 | } | |
2541 | ||
2542 | { | |
2543 | <Leak in ffmpegcolorspace> | |
2544 | Memcheck:Leak | |
2545 | fun:malloc | |
2546 | fun:g_malloc | |
2547 | fun:g_slice_alloc | |
2548 | fun:gst_caps_new_empty | |
2549 | fun:gst_ffmpegcsp_codectype_to_caps | |
2550 | fun:gst_ffmpegcolorspace_register | |
2551 | fun:plugin_init | |
2552 | } | |
2553 | ||
2554 | { | |
2555 | <Leak in ffmpegocolorspace> | |
2556 | Memcheck:Leak | |
2557 | fun:malloc | |
2558 | fun:g_malloc | |
2559 | fun:g_slice_alloc | |
2560 | fun:gst_caps_new_empty | |
2561 | fun:gst_caps_copy | |
2562 | fun:gst_ffmpegcolorspace_register | |
2563 | fun:plugin_init | |
2564 | } | |
2565 | ||
2566 | { | |
2567 | <Leak in gstffmpegdemux> | |
2568 | Memcheck:Leak | |
2569 | fun:malloc | |
2570 | fun:g_malloc | |
2571 | fun:g_slice_alloc | |
2572 | fun:gst_caps_new_empty | |
2573 | fun:gst_caps_new_any | |
2574 | fun:gst_ffmpegdemux_register | |
2575 | fun:plugin_init | |
2576 | } | |
2577 | ||
2578 | { | |
2579 | <Leak in GstAudioFilter subclasses> | |
2580 | Memcheck:Leak | |
2581 | fun:malloc | |
2582 | fun:g_malloc | |
2583 | fun:g_slice_alloc | |
2584 | fun:gst_caps_new_empty | |
2585 | fun:gst_caps_copy | |
2586 | fun:gst_audio_filter_class_add_pad_templates | |
2587 | } | |
2588 | ||
2589 | { | |
2590 | <Leak in GstAudioFilter subclasses, variant> | |
2591 | Memcheck:Leak | |
2592 | fun:realloc | |
2593 | fun:g_realloc | |
2594 | fun:g_ptr_array_maybe_expand | |
2595 | fun:g_ptr_array_add | |
2596 | fun:gst_caps_append | |
2597 | fun:gst_audio_filter_class_add_pad_templates | |
2598 | } | |
2599 | ||
2600 | { | |
2601 | <Leak in GstAudioFilter subclasses, variant> | |
2602 | Memcheck:Leak | |
2603 | fun:malloc | |
2604 | fun:realloc | |
2605 | fun:g_realloc | |
2606 | fun:g_ptr_array_maybe_expand | |
2607 | fun:g_ptr_array_add | |
2608 | fun:gst_caps_append | |
2609 | fun:gst_audio_filter_class_add_pad_templates | |
2610 | } | |
2611 | ||
2612 | { | |
2613 | <Leak in GstAudioFilter subclasses, variant> | |
2614 | Memcheck:Leak | |
2615 | fun:malloc | |
2616 | fun:realloc | |
2617 | fun:g_realloc | |
2618 | fun:g_ptr_array_maybe_expand | |
2619 | fun:g_ptr_array_add | |
2620 | fun:gst_caps_copy | |
2621 | fun:gst_audio_filter_class_add_pad_templates | |
2622 | } | |
2623 | ||
2624 | { | |
2625 | <Leak in GstAudioFilter subclasses, variant2> | |
2626 | Memcheck:Leak | |
2627 | fun:malloc | |
2628 | fun:g_malloc | |
2629 | fun:g_slice_alloc | |
2630 | fun:g_ptr_array_sized_new | |
2631 | fun:gst_caps_new_empty | |
2632 | fun:gst_caps_copy | |
2633 | fun:gst_audio_filter_class_add_pad_templates | |
2634 | } | |
2635 | ||
2636 | { | |
2637 | <Leak in riff-media> | |
2638 | Memcheck:Leak | |
2639 | fun:malloc | |
2640 | fun:g_malloc | |
2641 | fun:g_slice_alloc | |
2642 | fun:gst_caps_new_empty | |
2643 | fun:gst_riff_create_*_template_caps | |
2644 | } | |
2645 | ||
2646 | ## Leaks in pango (bilboed: gentoo unstable amd64) | |
2647 | ||
2648 | { | |
2649 | <insert a suppression name here> | |
2650 | Memcheck:Leak | |
2651 | fun:realloc | |
2652 | fun:FcPatternObjectInsertElt | |
2653 | fun:* | |
2654 | fun:* | |
2655 | fun:* | |
2656 | fun:* | |
2657 | fun:* | |
2658 | fun:* | |
2659 | fun:pango_layout_get_extents* | |
2660 | fun:pango_layout_get_pixel_extents | |
2661 | fun:gst_text_overlay_render_text | |
2662 | } | |
2663 | { | |
2664 | <insert a suppression name here> | |
2665 | Memcheck:Leak | |
2666 | fun:calloc | |
2667 | fun:g_malloc0 | |
2668 | fun:pango_language_from_string | |
2669 | fun:pango_language_get_default | |
2670 | fun:pango_context_init | |
2671 | fun:g_type_create_instance | |
2672 | fun:g_object_constructor | |
2673 | fun:g_object_newv | |
2674 | fun:g_object_new_valist | |
2675 | fun:g_object_new | |
2676 | fun:pango_font_map_create_context | |
2677 | } | |
2678 | ||
2679 | { | |
2680 | <PangoLanguage can never be freed> | |
2681 | Memcheck:Leak | |
2682 | fun:calloc | |
2683 | fun:g_malloc0 | |
2684 | fun:pango_language_from_string | |
2685 | } | |
2686 | ||
2687 | ## Leak of property_list in gstffmpegcfg.c | |
2688 | ## This list is created in gst_ffmpegcsp_init(), called from | |
2689 | ## gst_ffmpegenc_register. | |
2690 | { | |
2691 | <insert a suppression name here> | |
2692 | Memcheck:Leak | |
2693 | fun:malloc | |
2694 | fun:g_malloc | |
2695 | fun:g_slice_alloc | |
2696 | fun:g_datalist_id_set_data_full | |
2697 | fun:gst_ffmpeg_cfg_init | |
2698 | fun:gst_ffmpegenc_register | |
2699 | fun:plugin_init | |
2700 | } | |
2701 | ||
2702 | ## Leak of GIO module through gnomevfs | |
2703 | ||
2704 | { | |
2705 | <gio leak> | |
2706 | Memcheck:Leak | |
2707 | fun:malloc | |
2708 | fun:g_malloc | |
2709 | fun:* | |
2710 | fun:* | |
2711 | fun:g_type_create_instance | |
2712 | fun:* | |
2713 | fun:* | |
2714 | fun:* | |
2715 | fun:* | |
2716 | fun:g_io_module_new | |
2717 | fun:g_io_modules_load_all_in_directory | |
2718 | fun:* | |
2719 | fun:get_default_vfs | |
2720 | } | |
2721 | ||
2722 | ## Conditional jump in getaddrinfo (bilboed, gentoo ~amd64, Dec 13 2008) | |
2723 | { | |
2724 | <Leak of addrinfo in esd> | |
2725 | Memcheck:Cond | |
2726 | fun:gaih_inet | |
2727 | fun:getaddrinfo | |
2728 | } | |
2729 |
0 | 0 | # This is an include file specifically tuned for building documentation |
1 | 1 | # for GStreamer plug-ins |
2 | # It has been further specialized to farsight2 plugins stuff | |
3 | 2 | |
4 | 3 | help: |
5 | 4 | @echo |
28 | 27 | TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@ |
29 | 28 | |
30 | 29 | EXTRA_DIST = \ |
30 | scanobj-build.stamp \ | |
31 | 31 | $(srcdir)/inspect/*.xml \ |
32 | 32 | inspect.stamp \ |
33 | 33 | inspect-build.stamp \ |
39 | 39 | $(DOC_OVERRIDES) \ |
40 | 40 | $(DOC_MODULE)-sections.txt |
41 | 41 | |
42 | MAINTAINER_DOC_STAMPS = \ | |
43 | scanobj-build.stamp \ | |
44 | inspect-build.stamp \ | |
45 | inspect.stamp | |
46 | ||
47 | # we don't add inspect-build.stamp and scanobj-build.stamp here since they are | |
48 | # built manually by docs maintainers and result is commited to CVS | |
42 | 49 | DOC_STAMPS = \ |
43 | 50 | scan-build.stamp \ |
44 | 51 | tmpl-build.stamp \ |
47 | 54 | scan.stamp \ |
48 | 55 | tmpl.stamp \ |
49 | 56 | sgml.stamp \ |
50 | html.stamp \ | |
51 | scanobj-build.stamp \ | |
52 | scanobj-trans-build.stamp | |
57 | html.stamp | |
53 | 58 | |
54 | 59 | # files generated/updated by gtkdoc-scangobj |
55 | 60 | SCANOBJ_FILES = \ |
56 | $(DOC_MODULE).signals \ | |
57 | $(DOC_MODULE).hierarchy \ | |
58 | $(DOC_MODULE).interfaces \ | |
59 | $(DOC_MODULE).prerequisites \ | |
61 | $(DOC_MODULE).signals \ | |
62 | $(DOC_MODULE).hierarchy \ | |
63 | $(DOC_MODULE).interfaces \ | |
64 | $(DOC_MODULE).prerequisites \ | |
60 | 65 | $(DOC_MODULE).types \ |
61 | $(DOC_MODULE).args | |
66 | $(DOC_MODULE).args | |
62 | 67 | |
63 | 68 | SCANOBJ_FILES_O = \ |
64 | 69 | .libs/$(DOC_MODULE)-scan.o |
121 | 126 | fi |
122 | 127 | touch scanobj-build.stamp |
123 | 128 | |
124 | $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(SCANOBJ_FILES_O): scan-build.stamp scanobj-trans-build.stamp | |
129 | $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(SCANOBJ_FILES_O): scan-build.stamp | |
125 | 130 | @true |
126 | 131 | |
127 | 132 | ### inspect GStreamer plug-ins; done by documentation maintainer ### |
133 | 138 | GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \ |
134 | 139 | GST_REGISTRY=$(INSPECT_REGISTRY) |
135 | 140 | |
141 | # update the element and plugin XML descriptions; store in inspect/ | |
142 | inspect: | |
143 | mkdir inspect | |
144 | ||
136 | 145 | inspect-update: inspect |
137 | 146 | -rm -f $(INSPECT_REGISTRY) inspect-build.stamp |
138 | 147 | $(MAKE) inspect-build.stamp |
139 | ||
140 | if ENABLE_PLUGIN_DOCS | |
141 | 148 | |
142 | 149 | # FIXME: inspect.stamp should be written to by gst-xmlinspect.py |
143 | 150 | # IF the output changed; see gtkdoc-mktmpl |
144 | 151 | inspect-build.stamp: |
145 | 152 | @echo '*** Rebuilding plugin inspection files ***' |
146 | if test -d inspect; then rm -rf inspect; fi | |
147 | mkdir inspect | |
148 | 153 | if test x"$(srcdir)" != x. ; then \ |
149 | 154 | cp $(srcdir)/inspect.stamp . ; \ |
150 | 155 | cp $(srcdir)/inspect-build.stamp . ; \ |
155 | 160 | touch inspect-build.stamp; \ |
156 | 161 | fi |
157 | 162 | |
158 | else | |
159 | inspect-build.stamp: | |
160 | @true: | |
161 | endif | |
162 | ||
163 | 163 | ### scan headers; done on every build ### |
164 | scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES) $(basefiles) scanobj-build.stamp inspect-build.stamp scanobj-trans-build.stamp | |
164 | scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES) $(basefiles) scanobj-build.stamp inspect-build.stamp | |
165 | 165 | if test "x$(top_srcdir)" != "x$(top_builddir)" && \ |
166 | 166 | test -d "$(top_builddir)/gst"; \ |
167 | 167 | then \ |
200 | 200 | #### build xml; done on every build #### |
201 | 201 | |
202 | 202 | ### FIXME: make this error out again when docs are fixed for 0.9 |
203 | sgml-build.stamp: tmpl.stamp inspect.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl | |
203 | sgml-build.stamp: tmpl.stamp inspect.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl $(expand_content_files) | |
204 | 204 | @echo '*** Building XML ***' |
205 | 205 | @-mkdir -p xml |
206 | 206 | @for a in $(srcdir)/inspect/*.xml; do \ |
211 | 211 | gtkdoc-mkdb \ |
212 | 212 | --module=$(DOC_MODULE) \ |
213 | 213 | --source-dir=$(DOC_SOURCE_DIR) \ |
214 | --expand-content-files="$(expand_content_files)" \ | |
214 | 215 | --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \ |
215 | 216 | --output-format=xml \ |
216 | 217 | --ignore-files="$(IGNORE_HFILES) $(IGNORE_CFILES)" \ |
248 | 249 | test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ |
249 | 250 | if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done |
250 | 251 | @echo '-- Fixing Crossreferences' |
251 | gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) | |
252 | gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) | |
252 | 253 | touch html-build.stamp |
253 | 254 | |
254 | 255 | clean-local-gtkdoc: |
256 | 257 | # clean files copied for nonsrcdir templates build |
257 | 258 | if test x"$(srcdir)" != x. ; then \ |
258 | 259 | rm -rf $(SCANOBJ_FILES) $(SCAN_FILES); \ |
259 | rm -f *.stamp; \ | |
260 | 260 | fi |
261 | 261 | else |
262 | 262 | all-local: |
295 | 295 | $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp \ |
296 | 296 | $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ |
297 | 297 | if test -e $(srcdir)/html/$(DOC_MODULE).devhelp2; then \ |
298 | $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp2 \ | |
298 | $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp2 \ | |
299 | 299 | $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ |
300 | 300 | fi; \ |
301 | 301 | (which gtkdoc-rebase >/dev/null && \ |
302 | 302 | gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \ |
303 | 303 | fi) |
304 | 304 | uninstall-local: |
305 | (installfiles=`echo ./html/*.html`; \ | |
306 | if test "$$installfiles" = './html/*.html'; \ | |
307 | then echo '-- Nothing to uninstall' ; \ | |
305 | if test -d $(DESTDIR)$(TARGET_DIR); then \ | |
306 | rm -rf $(DESTDIR)$(TARGET_DIR)/*; \ | |
307 | rmdir -p $(DESTDIR)$(TARGET_DIR) 2>/dev/null || true; \ | |
308 | 308 | else \ |
309 | for i in $$installfiles; do \ | |
310 | rmfile=`basename $$i` ; \ | |
311 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ | |
312 | rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ | |
313 | done; \ | |
314 | pngfiles=`echo ./html/*.png`; \ | |
315 | if test "$$pngfiles" != './html/*.png'; then \ | |
316 | for i in $$pngfiles; do \ | |
317 | rmfile=`basename $$i` ; \ | |
318 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ | |
319 | rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ | |
320 | done; \ | |
321 | fi; \ | |
322 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp' ; \ | |
323 | rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ | |
324 | if test -e $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; then \ | |
325 | rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ | |
326 | fi; \ | |
327 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/index.sgml' ; \ | |
328 | rm -f $(DESTDIR)$(TARGET_DIR)/index.sgml; \ | |
329 | if test -e $(DESTDIR)$(TARGET_DIR)/style.css; then \ | |
330 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/style.css' ; \ | |
331 | rm -f $(DESTDIR)$(TARGET_DIR)/style.css; \ | |
332 | fi; \ | |
333 | fi) | |
334 | if test -d $(DESTDIR)$(TARGET_DIR); then rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(TARGET_DIR) 2>/dev/null; fi; true | |
309 | echo '-- Nothing to uninstall' ; \ | |
310 | fi; | |
335 | 311 | |
336 | 312 | # |
337 | 313 | # Checks |
360 | 336 | done ; \ |
361 | 337 | exit $$fail |
362 | 338 | |
363 | scanobj-trans-update: | |
364 | -rm scanobj-trans-build.stamp | |
365 | $(MAKE) scanobj-trans-build.stamp | |
366 | ||
367 | # We have a scanobj-build.stamp just to prevent both from running at the same | |
368 | # time as they use temp files with the same name | |
369 | ||
370 | scanobj-trans-build.stamp: $(SCANOBJ_DEPS) $(basefiles) scanobj-build.stamp | |
371 | @echo '*** Scanning Transmitters ***' | |
372 | if test x"$(srcdir)" = x. ; then \ | |
373 | GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/ext \ | |
374 | GST_REGISTRY=$(INSPECT_REGISTRY) \ | |
375 | FS_PLUGIN_PATH="$(FS_PLUGIN_PATH)" \ | |
376 | CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ | |
377 | CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" \ | |
378 | LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ | |
379 | $(srcdir)/gtkdoc-scangobj-transmitters \ | |
380 | --type-init-func="gst_init(NULL,NULL)" \ | |
381 | --types=farsight2-transmitters.types \ | |
382 | --module=$(DOC_MODULE) && \ | |
383 | $(PYTHON) \ | |
384 | $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE); \ | |
385 | fi | |
386 | touch scanobj-trans-build.stamp | |
387 | ||
388 | 339 | # |
389 | 340 | # Require gtk-doc when making dist |
390 | 341 | # |
34 | 34 | SCANOBJ_FILES = \ |
35 | 35 | $(DOC_MODULE).args \ |
36 | 36 | $(DOC_MODULE).hierarchy \ |
37 | $(DOC_MODULE).interfaces \ | |
37 | $(DOC_MODULE).interfaces \ | |
38 | 38 | $(DOC_MODULE).prerequisites \ |
39 | .libs/$(DOC_MODULE)-scan.o \ | |
40 | $(DOC_MODULE).signals | |
39 | $(DOC_MODULE).signals \ | |
40 | .libs/$(DOC_MODULE)-scan.o | |
41 | 41 | |
42 | 42 | REPORT_FILES = \ |
43 | 43 | $(DOC_MODULE)-undocumented.txt \ |
44 | 44 | $(DOC_MODULE)-undeclared.txt \ |
45 | 45 | $(DOC_MODULE)-unused.txt |
46 | 46 | |
47 | CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) | |
47 | CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) doc-registry.xml | |
48 | 48 | |
49 | 49 | if ENABLE_GTK_DOC |
50 | 50 | all-local: html-build.stamp |
63 | 63 | fi ; \ |
64 | 64 | GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd` \ |
65 | 65 | GST_PLUGIN_PATH= \ |
66 | CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ | |
67 | CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" \ | |
66 | GST_REGISTRY=doc-registry.xml \ | |
67 | CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ | |
68 | CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" \ | |
69 | LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ | |
68 | 70 | gtkdoc-scangobj --type-init-func="gst_init(NULL,NULL)" \ |
69 | 71 | --module=$(DOC_MODULE) ; \ |
70 | 72 | else \ |
108 | 110 | #### xml #### |
109 | 111 | |
110 | 112 | ### FIXME: make this error out again when docs are complete |
111 | sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) | |
113 | sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(expand_content_files) | |
112 | 114 | @echo '*** Building XML ***' |
113 | gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log | |
115 | gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --expand-content-files="$(expand_content_files)" --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log | |
114 | 116 | @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi |
117 | cp ../version.entities xml | |
115 | 118 | rm sgml-build.log |
116 | 119 | touch sgml-build.stamp |
117 | 120 | |
138 | 141 | test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ |
139 | 142 | if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done |
140 | 143 | @echo '-- Fixing Crossreferences' |
141 | gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) | |
144 | gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) | |
142 | 145 | touch html-build.stamp |
146 | ||
147 | clean-local-gtkdoc: | |
148 | rm -rf xml tmpl html | |
149 | # clean files copied for nonsrcdir templates build | |
150 | if test x"$(srcdir)" != x. ; then \ | |
151 | rm -rf $(DOC_MODULE).types; \ | |
152 | fi | |
143 | 153 | else |
144 | 154 | all-local: |
155 | clean-local-gtkdoc: | |
145 | 156 | endif |
146 | 157 | |
147 | clean-local: | |
158 | clean-local: clean-local-gtkdoc | |
148 | 159 | rm -f *~ *.bak |
149 | rm -rf xml html | |
150 | 160 | rm -rf .libs |
151 | ||
152 | maintainer-clean-local: clean | |
153 | cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt | |
154 | 161 | |
155 | 162 | # company: don't delete .sgml and -sections.txt as they're in CVS |
156 | 163 | # FIXME : thomas added all sgml files and some other things to make |
157 | 164 | # make distcheck work |
158 | 165 | distclean-local: clean |
159 | rm -f $(DOC_MODULE)-decl-list.txt | |
160 | rm -f $(DOC_MODULE)-decl.txt | |
161 | rm -f $(REPORT_FILES) | |
166 | rm -f $(REPORT_FILES) \ | |
167 | $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt | |
162 | 168 | rm -rf tmpl/*.sgml.bak |
163 | 169 | rm -f $(DOC_MODULE).hierarchy |
164 | 170 | rm -f *.stamp || true |
173 | 179 | fi |
174 | 180 | rm -rf *.o |
175 | 181 | |
182 | maintainer-clean-local: clean | |
183 | cd $(srcdir) && rm -rf html \ | |
184 | xml $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt | |
185 | ||
176 | 186 | # thomas: make docs parallel installable; devhelp requires majorminor too |
177 | 187 | install-data-local: |
178 | $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) | |
179 | (installfiles=`echo ./html/*.html`; \ | |
180 | if test "$$installfiles" = './html/*.html'; \ | |
188 | (installfiles=`echo $(srcdir)/html/*.sgml $(srcdir)/html/*.html $(srcdir)/html/*.png $(srcdir)/html/*.css`; \ | |
189 | if test "$$installfiles" = '$(srcdir)/html/*.sgml $(srcdir)/html/*.html $(srcdir)/html/*.png $(srcdir)/html/*.css'; \ | |
181 | 190 | then echo '-- Nothing to install' ; \ |
182 | 191 | else \ |
192 | $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ | |
183 | 193 | for i in $$installfiles; do \ |
184 | 194 | echo '-- Installing '$$i ; \ |
185 | 195 | $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ |
186 | 196 | done; \ |
187 | pngfiles=`echo ./html/*.png`; \ | |
188 | if test "$$pngfiles" != './html/*.png'; then \ | |
189 | for i in $$pngfiles; do \ | |
190 | echo '-- Installing '$$i ; \ | |
191 | $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ | |
192 | done; \ | |
193 | fi; \ | |
194 | 197 | echo '-- Installing $(srcdir)/html/$(DOC_MODULE).devhelp' ; \ |
195 | 198 | $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp \ |
196 | 199 | $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ |
197 | 200 | if test -e $(srcdir)/html/$(DOC_MODULE).devhelp2; then \ |
198 | $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp2 \ | |
201 | $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp2 \ | |
199 | 202 | $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ |
200 | 203 | fi; \ |
201 | echo '-- Installing $(srcdir)/html/index.sgml' ; \ | |
202 | $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \ | |
203 | if test -e $(srcdir)/html/style.css; then \ | |
204 | echo '-- Installing $(srcdir)/html/style.css' ; \ | |
205 | $(INSTALL_DATA) $(srcdir)/html/style.css $(DESTDIR)$(TARGET_DIR); \ | |
206 | fi; \ | |
204 | (which gtkdoc-rebase >/dev/null && \ | |
205 | gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \ | |
207 | 206 | fi) |
208 | 207 | uninstall-local: |
209 | (installfiles=`echo ./html/*.html`; \ | |
210 | if test "$$installfiles" = './html/*.html'; \ | |
211 | then echo '-- Nothing to uninstall' ; \ | |
208 | if test -d $(DESTDIR)$(TARGET_DIR); then \ | |
209 | rm -rf $(DESTDIR)$(TARGET_DIR)/*; \ | |
210 | rmdir -p $(DESTDIR)$(TARGET_DIR) 2>/dev/null || true; \ | |
212 | 211 | else \ |
213 | for i in $$installfiles; do \ | |
214 | rmfile=`basename $$i` ; \ | |
215 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ | |
216 | rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ | |
217 | done; \ | |
218 | pngfiles=`echo ./html/*.png`; \ | |
219 | if test "$$pngfiles" != './html/*.png'; then \ | |
220 | for i in $$pngfiles; do \ | |
221 | rmfile=`basename $$i` ; \ | |
222 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ | |
223 | rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ | |
224 | done; \ | |
225 | fi; \ | |
226 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp' ; \ | |
227 | rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ | |
228 | if test -e $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; then \ | |
229 | rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ | |
230 | fi; \ | |
231 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/index.sgml' ; \ | |
232 | rm -f $(DESTDIR)$(TARGET_DIR)/index.sgml; \ | |
233 | if test -e $(DESTDIR)$(TARGET_DIR)/style.css; then \ | |
234 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/style.css' ; \ | |
235 | rm -f $(DESTDIR)$(TARGET_DIR)/style.css; \ | |
236 | fi; \ | |
237 | fi) | |
238 | if test -d $(DESTDIR)$(TARGET_DIR); then rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(TARGET_DIR) 2>/dev/null; fi; true | |
212 | echo '-- Nothing to uninstall' ; \ | |
213 | fi; | |
214 | ||
239 | 215 | |
240 | 216 | # |
241 | 217 | # Require gtk-doc when making dist |
249 | 225 | endif |
250 | 226 | |
251 | 227 | dist-hook: dist-check-gtkdoc dist-hook-local |
252 | mkdir $(distdir)/tmpl | |
253 | mkdir $(distdir)/xml | |
254 | 228 | mkdir $(distdir)/html |
255 | -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl | |
256 | -cp $(srcdir)/sgml/*.xml $(distdir)/xml | |
257 | -cp $(srcdir)/html/index.sgml $(distdir)/html | |
258 | -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html | |
259 | -cp $(srcdir)/html/$(DOC_MODULE).devhelp* $(distdir)/html | |
260 | ||
261 | images=$(HTML_IMAGES) ; \ | |
262 | for i in "" $$images ; do \ | |
263 | if test "$$i" != ""; then cp $(srcdir)/$$i $(distdir)/html ; fi; \ | |
264 | done | |
265 | ||
266 | .PHONY : dist-hook-local | |
229 | cp $(srcdir)/html/* $(distdir)/html | |
230 | -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ | |
231 | -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ | |
232 | cd $(distdir) && rm -f $(DISTCLEANFILES) | |
233 | -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html | |
234 | ||
235 | .PHONY : dist-hook-local docs |
0 | 0 | EXTRA_DIST = \ |
1 | README \ | |
1 | 2 | as-ac-expand.m4 \ |
2 | codeset.m4 \ | |
3 | as-auto-alt.m4 \ | |
4 | as-compiler-flag.m4 \ | |
5 | as-compiler.m4 \ | |
6 | as-docbook.m4 \ | |
7 | as-gcc-inline-assembly.m4 \ | |
8 | as-libtool.m4 \ | |
9 | as-libtool-tags.m4 \ | |
10 | as-objc.m4 \ | |
11 | as-python.m4 \ | |
12 | as-scrub-include.m4 \ | |
13 | as-version.m4 \ | |
14 | ax_create_stdint_h.m4 \ | |
15 | glib-gettext.m4 \ | |
16 | gst-arch.m4 \ | |
17 | gst-args.m4 \ | |
18 | gst-check.m4 \ | |
19 | gst-debuginfo.m4 \ | |
3 | 20 | gst-default.m4 \ |
21 | gst-doc.m4 \ | |
22 | gst-dowhile.m4 \ | |
23 | gst-error.m4 \ | |
24 | gst-feature.m4 \ | |
25 | gst-function.m4 \ | |
26 | gst-gettext.m4 \ | |
27 | gst-glib2.m4 \ | |
28 | gst-libxml2.m4 \ | |
29 | gst-parser.m4 \ | |
30 | gst-plugindir.m4 \ | |
31 | gst-plugin-docs.m4 \ | |
32 | gst-valgrind.m4 \ | |
33 | gst-x11.m4 \ | |
4 | 34 | gst.m4 \ |
5 | inttypes.m4 \ | |
6 | progtest.m4 \ | |
7 | as-auto-alt.m4 \ | |
8 | gettext.m4 \ | |
9 | gst-doc.m4 \ | |
10 | gst-plugindir.m4 \ | |
11 | inttypes-pri.m4 \ | |
12 | stdint_h.m4 \ | |
13 | as-compiler-flag.m4 \ | |
14 | glibc21.m4 \ | |
15 | gst-error.m4 \ | |
16 | gst-plugin-docs.m4 \ | |
17 | isc-posix.m4 \ | |
18 | uintmax_t.m4 \ | |
19 | as-libtool.m4\ | |
20 | gst-arch.m4\ | |
21 | gst-feature.m4 \ | |
22 | gst-valgrind.m4 \ | |
23 | lcmessage.m4 \ | |
24 | ulonglong.m4 \ | |
25 | as-python.m4 \ | |
26 | gst-args.m4 \ | |
27 | gst-function.m4 \ | |
28 | iconv.m4 \ | |
29 | lib-ld.m4 \ | |
30 | as-scrub-include.m4 \ | |
31 | gst-check.m4 \ | |
32 | gst-gettext.m4 \ | |
33 | intdiv0.m4 \ | |
34 | lib-link.m4 \ | |
35 | as-version.m4 \ | |
36 | gst-debuginfo.m4 \ | |
37 | gst-glib2.m4 \ | |
38 | inttypes_h.m4 \ | |
39 | lib-prefix.m4 | |
35 | gtk-doc.m4 \ | |
36 | pkg.m4 \ | |
37 | check.m4 |
37 | 37 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
38 | 38 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
40 | $(top_srcdir)/common/m4/as-python.m4 \ | |
41 | 40 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
42 | 41 | $(top_srcdir)/common/m4/as-version.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
52 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
53 | 51 | $(top_srcdir)/common/m4/pkg.m4 \ |
54 | 52 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
55 | 53 | $(top_srcdir)/configure.ac |
173 | 171 | PKG_CONFIG = @PKG_CONFIG@ |
174 | 172 | PLUGINDIR = @PLUGINDIR@ |
175 | 173 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
176 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
177 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
178 | 174 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
179 | 175 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
180 | 176 | PYTHON = @PYTHON@ |
250 | 246 | top_builddir = @top_builddir@ |
251 | 247 | top_srcdir = @top_srcdir@ |
252 | 248 | EXTRA_DIST = \ |
249 | README \ | |
253 | 250 | as-ac-expand.m4 \ |
254 | codeset.m4 \ | |
251 | as-auto-alt.m4 \ | |
252 | as-compiler-flag.m4 \ | |
253 | as-compiler.m4 \ | |
254 | as-docbook.m4 \ | |
255 | as-gcc-inline-assembly.m4 \ | |
256 | as-libtool.m4 \ | |
257 | as-libtool-tags.m4 \ | |
258 | as-objc.m4 \ | |
259 | as-python.m4 \ | |
260 | as-scrub-include.m4 \ | |
261 | as-version.m4 \ | |
262 | ax_create_stdint_h.m4 \ | |
263 | glib-gettext.m4 \ | |
264 | gst-arch.m4 \ | |
265 | gst-args.m4 \ | |
266 | gst-check.m4 \ | |
267 | gst-debuginfo.m4 \ | |
255 | 268 | gst-default.m4 \ |
269 | gst-doc.m4 \ | |
270 | gst-dowhile.m4 \ | |
271 | gst-error.m4 \ | |
272 | gst-feature.m4 \ | |
273 | gst-function.m4 \ | |
274 | gst-gettext.m4 \ | |
275 | gst-glib2.m4 \ | |
276 | gst-libxml2.m4 \ | |
277 | gst-parser.m4 \ | |
278 | gst-plugindir.m4 \ | |
279 | gst-plugin-docs.m4 \ | |
280 | gst-valgrind.m4 \ | |
281 | gst-x11.m4 \ | |
256 | 282 | gst.m4 \ |
257 | inttypes.m4 \ | |
258 | progtest.m4 \ | |
259 | as-auto-alt.m4 \ | |
260 | gettext.m4 \ | |
261 | gst-doc.m4 \ | |
262 | gst-plugindir.m4 \ | |
263 | inttypes-pri.m4 \ | |
264 | stdint_h.m4 \ | |
265 | as-compiler-flag.m4 \ | |
266 | glibc21.m4 \ | |
267 | gst-error.m4 \ | |
268 | gst-plugin-docs.m4 \ | |
269 | isc-posix.m4 \ | |
270 | uintmax_t.m4 \ | |
271 | as-libtool.m4\ | |
272 | gst-arch.m4\ | |
273 | gst-feature.m4 \ | |
274 | gst-valgrind.m4 \ | |
275 | lcmessage.m4 \ | |
276 | ulonglong.m4 \ | |
277 | as-python.m4 \ | |
278 | gst-args.m4 \ | |
279 | gst-function.m4 \ | |
280 | iconv.m4 \ | |
281 | lib-ld.m4 \ | |
282 | as-scrub-include.m4 \ | |
283 | gst-check.m4 \ | |
284 | gst-gettext.m4 \ | |
285 | intdiv0.m4 \ | |
286 | lib-link.m4 \ | |
287 | as-version.m4 \ | |
288 | gst-debuginfo.m4 \ | |
289 | gst-glib2.m4 \ | |
290 | inttypes_h.m4 \ | |
291 | lib-prefix.m4 | |
283 | gtk-doc.m4 \ | |
284 | pkg.m4 \ | |
285 | check.m4 | |
292 | 286 | |
293 | 287 | all: all-am |
294 | 288 |
0 | dnl as-compiler.m4 0.1.0 | |
1 | ||
2 | dnl autostars m4 macro for detection of compiler flavor | |
3 | ||
4 | dnl Thomas Vander Stichele <thomas at apestaart dot org> | |
5 | ||
6 | dnl $Id: as-compiler.m4,v 1.4 2004/06/01 09:44:19 thomasvs Exp $ | |
7 | ||
8 | dnl AS_COMPILER(COMPILER) | |
9 | dnl will set variable COMPILER to | |
10 | dnl - gcc | |
11 | dnl - forte | |
12 | dnl - (empty) if no guess could be made | |
13 | ||
14 | AC_DEFUN([AS_COMPILER], | |
15 | [ | |
16 | as_compiler= | |
17 | AC_MSG_CHECKING(for compiler flavour) | |
18 | ||
19 | dnl is it gcc ? | |
20 | if test "x$GCC" = "xyes"; then | |
21 | as_compiler="gcc" | |
22 | fi | |
23 | ||
24 | dnl is it forte ? | |
25 | AC_TRY_RUN([ | |
26 | int main | |
27 | (int argc, char *argv[]) | |
28 | { | |
29 | #ifdef __sun | |
30 | return 0; | |
31 | #else | |
32 | return 1; | |
33 | #endif | |
34 | } | |
35 | ], as_compiler="forte", ,) | |
36 | ||
37 | if test "x$as_compiler" = "x"; then | |
38 | AC_MSG_RESULT([unknown !]) | |
39 | else | |
40 | AC_MSG_RESULT($as_compiler) | |
41 | fi | |
42 | [$1]=$as_compiler | |
43 | ]) |
0 | dnl AS_DOCBOOK([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) | |
1 | dnl checks if xsltproc can build docbook documentation | |
2 | dnl (which is possible if the catalog is set up properly | |
3 | dnl I also tried checking for a specific version and type of docbook | |
4 | dnl but xsltproc seemed to happily run anyway, so we can't check for that | |
5 | dnl and version | |
6 | dnl this macro takes inspiration from | |
7 | dnl http://www.movement.uklinux.net/docs/docbook-autotools/configure.html | |
8 | AC_DEFUN([AS_DOCBOOK], | |
9 | [ | |
10 | XSLTPROC_FLAGS=--nonet | |
11 | DOCBOOK_ROOT= | |
12 | TYPE_LC=xml | |
13 | TYPE_UC=XML | |
14 | DOCBOOK_VERSION=4.1.2 | |
15 | ||
16 | if test ! -f /etc/xml/catalog; then | |
17 | for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/ /usr/local/share/xsl/docbook ; | |
18 | do | |
19 | if test -d "$i"; then | |
20 | DOCBOOK_ROOT=$i | |
21 | fi | |
22 | done | |
23 | else | |
24 | XML_CATALOG=/etc/xml/catalog | |
25 | CAT_ENTRY_START='<!--' | |
26 | CAT_ENTRY_END='-->' | |
27 | fi | |
28 | ||
29 | dnl We need xsltproc to process the test | |
30 | AC_CHECK_PROG(XSLTPROC,xsltproc,xsltproc,) | |
31 | XSLTPROC_WORKS=no | |
32 | if test -n "$XSLTPROC"; then | |
33 | AC_MSG_CHECKING([whether xsltproc docbook processing works]) | |
34 | ||
35 | if test -n "$XML_CATALOG"; then | |
36 | DB_FILE="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" | |
37 | else | |
38 | DB_FILE="$DOCBOOK_ROOT/xhtml/docbook.xsl" | |
39 | fi | |
40 | $XSLTPROC $XSLTPROC_FLAGS $DB_FILE >/dev/null 2>&1 << END | |
41 | <?xml version="1.0" encoding='ISO-8859-1'?> | |
42 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook $TYPE_UC V$DOCBOOK_VERSION//EN" "http://www.oasis-open.org/docbook/$TYPE_LC/$DOCBOOK_VERSION/docbookx.dtd"> | |
43 | <book id="test"> | |
44 | </book> | |
45 | END | |
46 | if test "$?" = 0; then | |
47 | XSLTPROC_WORKS=yes | |
48 | fi | |
49 | AC_MSG_RESULT($XSLTPROC_WORKS) | |
50 | fi | |
51 | ||
52 | if test "x$XSLTPROC_WORKS" = "xyes"; then | |
53 | dnl execute ACTION-IF-FOUND | |
54 | ifelse([$1], , :, [$1]) | |
55 | else | |
56 | dnl execute ACTION-IF-NOT-FOUND | |
57 | ifelse([$2], , :, [$2]) | |
58 | fi | |
59 | ||
60 | AC_SUBST(XML_CATALOG) | |
61 | AC_SUBST(XSLTPROC_FLAGS) | |
62 | AC_SUBST(DOCBOOK_ROOT) | |
63 | AC_SUBST(CAT_ENTRY_START) | |
64 | AC_SUBST(CAT_ENTRY_END) | |
65 | ]) |
0 | dnl as-gcc-inline-assembly.m4 0.1.0 | |
1 | ||
2 | dnl autostars m4 macro for detection of gcc inline assembly | |
3 | ||
4 | dnl David Schleef <ds@schleef.org> | |
5 | ||
6 | dnl $Id$ | |
7 | ||
8 | dnl AS_COMPILER_FLAG(ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) | |
9 | dnl Tries to compile with the given CFLAGS. | |
10 | dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags, | |
11 | dnl and ACTION-IF-NOT-ACCEPTED otherwise. | |
12 | ||
13 | AC_DEFUN([AS_GCC_INLINE_ASSEMBLY], | |
14 | [ | |
15 | AC_MSG_CHECKING([if compiler supports gcc-style inline assembly]) | |
16 | ||
17 | AC_TRY_COMPILE([], [ | |
18 | #ifdef __GNUC_MINOR__ | |
19 | #if (__GNUC__ * 1000 + __GNUC_MINOR__) < 3004 | |
20 | #error GCC before 3.4 has critical bugs compiling inline assembly | |
21 | #endif | |
22 | #endif | |
23 | __asm__ (""::) ], [flag_ok=yes], [flag_ok=no]) | |
24 | ||
25 | if test "X$flag_ok" = Xyes ; then | |
26 | $1 | |
27 | true | |
28 | else | |
29 | $2 | |
30 | true | |
31 | fi | |
32 | AC_MSG_RESULT([$flag_ok]) | |
33 | ]) | |
34 | ||
35 | ||
36 | AC_DEFUN([AS_GCC_ASM_POWERPC_FPU], | |
37 | [ | |
38 | AC_MSG_CHECKING([if compiler supports FPU instructions on PowerPC]) | |
39 | ||
40 | AC_TRY_COMPILE([], [__asm__ ("fadd 0,0,0"::) ], [flag_ok=yes], [flag_ok=no]) | |
41 | ||
42 | if test "X$flag_ok" = Xyes ; then | |
43 | $1 | |
44 | true | |
45 | else | |
46 | $2 | |
47 | true | |
48 | fi | |
49 | AC_MSG_RESULT([$flag_ok]) | |
50 | ]) | |
51 |
0 | dnl as-libtool-tags.m4 0.1.4 | |
1 | ||
2 | dnl autostars m4 macro for selecting libtool "tags" (languages) | |
3 | ||
4 | dnl Andy Wingo does not claim credit for this macro | |
5 | dnl backported from libtool 1.6 by Paolo Bonzini | |
6 | dnl see http://lists.gnu.org/archive/html/libtool/2003-12/msg00007.html | |
7 | ||
8 | dnl $Id$ | |
9 | ||
10 | dnl AS_LIBTOOL_TAGS([tags...]) | |
11 | ||
12 | dnl example | |
13 | dnl AS_LIBTOOL_TAGS([]) for only C (no fortran, etc) | |
14 | ||
15 | dnl When AC_LIBTOOL_TAGS is used, I redefine _LT_AC_TAGCONFIG | |
16 | dnl to be more similar to the libtool 1.6 implementation, which | |
17 | dnl uses an m4 loop and m4 case instead of a shell loop. This | |
18 | dnl way the CXX/GCJ/F77/RC tests are not always expanded. | |
19 | ||
20 | dnl AS_LIBTOOL_TAGS | |
21 | dnl --------------- | |
22 | dnl tags to enable | |
23 | AC_DEFUN([AS_LIBTOOL_TAGS], | |
24 | [m4_define([_LT_TAGS],[$1]) | |
25 | m4_define([_LT_AC_TAGCONFIG], [ | |
26 | # redefined LT AC TAGCONFIG | |
27 | if test -f "$ltmain"; then | |
28 | if test ! -f "${ofile}"; then | |
29 | AC_MSG_WARN([output file `$ofile' does not exist]) | |
30 | fi | |
31 | ||
32 | if test -z "$LTCC"; then | |
33 | eval "`$SHELL ${ofile} --config | grep '^LTCC='`" | |
34 | if test -z "$LTCC"; then | |
35 | AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) | |
36 | else | |
37 | AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) | |
38 | fi | |
39 | fi | |
40 | ||
41 | AC_FOREACH([_LT_TAG], _LT_TAGS, | |
42 | echo THOMAS: tag _LT_TAG | |
43 | [m4_case(_LT_TAG, | |
44 | [CXX], [ | |
45 | if test -n "$CXX" && test "X$CXX" != "Xno"; then | |
46 | echo "THOMAS: YAY CXX" | |
47 | AC_LIBTOOL_LANG_CXX_CONFIG | |
48 | available_tags="$available_tags _LT_TAG" | |
49 | fi], | |
50 | [F77], [ | |
51 | if test -n "$F77" && test "X$F77" != "Xno"; then | |
52 | AC_LIBTOOL_LANG_F77_CONFIG | |
53 | available_tags="$available_tags _LT_TAG" | |
54 | fi], | |
55 | [GCJ], [ | |
56 | if test -n "$GCJ" && test "X$GCJ" != "Xno"; then | |
57 | AC_LIBTOOL_LANG_GCJ_CONFIG | |
58 | available_tags="$available_tags _LT_TAG" | |
59 | fi], | |
60 | [RC], [ | |
61 | if test -n "$RC" && test "X$RC" != "Xno"; then | |
62 | AC_LIBTOOL_LANG_RC_CONFIG | |
63 | available_tags="$available_tags _LT_TAG" | |
64 | fi], | |
65 | [m4_errprintn(m4_location[: error: invalid tag name: ]"_LT_TAG") | |
66 | m4_exit(1)]) | |
67 | ]) | |
68 | echo THOMAS: available tags: $available_tags | |
69 | fi | |
70 | # Now substitute the updated list of available tags. | |
71 | if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then | |
72 | mv "${ofile}T" "$ofile" | |
73 | chmod +x "$ofile" | |
74 | AC_MSG_NOTICE([updated available libtool tags with $available_tags.]) | |
75 | else | |
76 | rm -f "${ofile}T" | |
77 | AC_MSG_ERROR([unable to update list of available tagged configurations.]) | |
78 | ||
79 | fi | |
80 | ||
81 | ])dnl _LT_AC_TAG_CONFIG | |
82 | ]) |
3 | 3 | |
4 | 4 | dnl Thomas Vander Stichele <thomas at apestaart dot org> |
5 | 5 | |
6 | dnl $Id: as-libtool.m4,v 1.6 2004/06/01 10:04:44 thomasvs Exp $ | |
6 | dnl $Id: as-libtool.m4,v 1.10 2005/10/15 13:44:23 thomasvs Exp $ | |
7 | 7 | |
8 | 8 | dnl AS_LIBTOOL(PREFIX, CURRENT, REVISION, AGE, [RELEASE]) |
9 | 9 |
0 | ||
1 | ||
2 | # AC_PROG_OBJC([LIST-OF-COMPILERS]) | |
3 | # | |
4 | AC_DEFUN([AS_PROG_OBJC], | |
5 | [ | |
6 | AC_CHECK_TOOLS(OBJC, | |
7 | [m4_default([$1], [objcc objc gcc cc CC])], | |
8 | none) | |
9 | AC_SUBST(OBJC) | |
10 | OBJC_LDFLAGS="-lobjc" | |
11 | AC_SUBST(OBJC_LDFLAGS) | |
12 | if test "x$OBJC" != xnone ; then | |
13 | _AM_DEPENDENCIES(OBJC) | |
14 | AC_MSG_CHECKING([if Objective C compiler works]) | |
15 | cat >>conftest.m <<EOF | |
16 | #include <objc/Object.h> | |
17 | @interface Moo:Object | |
18 | { | |
19 | } | |
20 | - moo; | |
21 | int main(); | |
22 | @end | |
23 | ||
24 | @implementation Moo | |
25 | - moo | |
26 | { | |
27 | exit(0); | |
28 | } | |
29 | ||
30 | int main() | |
31 | { | |
32 | id moo; | |
33 | moo = [[Moo new]]; | |
34 | [[moo moo]]; | |
35 | return 1; | |
36 | } | |
37 | @end | |
38 | EOF | |
39 | ${OBJC} conftest.m ${OBJC_LDFLAGS} >&5 2>&5 | |
40 | if test -f a.out -o -f a.exe ; then | |
41 | result=yes | |
42 | else | |
43 | result=no | |
44 | echo failed program is: >&5 | |
45 | cat conftest.m >&5 | |
46 | fi | |
47 | rm -f conftest.m a.out a.exe | |
48 | AC_MSG_RESULT([$result]) | |
49 | else | |
50 | _AM_DEPENDENCIES(OBJC) | |
51 | fi | |
52 | ||
53 | ]) | |
54 | ||
55 |
4 | 4 | |
5 | 5 | dnl Thomas Vander Stichele <thomas at apestaart dot org> |
6 | 6 | |
7 | dnl $Id: as-scrub-include.m4,v 1.5 2004/06/12 08:19:09 thomasvs Exp $ | |
7 | dnl $Id: as-scrub-include.m4,v 1.7 2004/06/12 08:30:20 thomasvs Exp $ | |
8 | 8 | |
9 | 9 | dnl This macro uses output of cpp -v and expects it to contain text that |
10 | 10 | dnl looks a little bit like this: |
3 | 3 | |
4 | 4 | dnl Thomas Vander Stichele <thomas at apestaart dot org> |
5 | 5 | |
6 | dnl $Id: as-version.m4,v 1.4 2004/06/01 09:40:05 thomasvs Exp $ | |
6 | dnl $Id: as-version.m4,v 1.15 2006/04/01 09:40:24 thomasvs Exp $ | |
7 | 7 | |
8 | 8 | dnl AS_VERSION |
9 | 9 |
0 | ##### http://autoconf-archive.cryp.to/ax_create_stdint_h.html | |
1 | # | |
2 | # SYNOPSIS | |
3 | # | |
4 | # AX_CREATE_STDINT_H [( HEADER-TO-GENERATE [, HEDERS-TO-CHECK])] | |
5 | # | |
6 | # DESCRIPTION | |
7 | # | |
8 | # the "ISO C9X: 7.18 Integer types <stdint.h>" section requires the | |
9 | # existence of an include file <stdint.h> that defines a set of | |
10 | # typedefs, especially uint8_t,int32_t,uintptr_t. Many older | |
11 | # installations will not provide this file, but some will have the | |
12 | # very same definitions in <inttypes.h>. In other enviroments we can | |
13 | # use the inet-types in <sys/types.h> which would define the typedefs | |
14 | # int8_t and u_int8_t respectivly. | |
15 | # | |
16 | # This macros will create a local "_stdint.h" or the headerfile given | |
17 | # as an argument. In many cases that file will just "#include | |
18 | # <stdint.h>" or "#include <inttypes.h>", while in other environments | |
19 | # it will provide the set of basic 'stdint's definitions/typedefs: | |
20 | # | |
21 | # int8_t,uint8_t,int16_t,uint16_t,int32_t,uint32_t,intptr_t,uintptr_t | |
22 | # int_least32_t.. int_fast32_t.. intmax_t | |
23 | # | |
24 | # which may or may not rely on the definitions of other files, or | |
25 | # using the AC_CHECK_SIZEOF macro to determine the actual sizeof each | |
26 | # type. | |
27 | # | |
28 | # if your header files require the stdint-types you will want to | |
29 | # create an installable file mylib-int.h that all your other | |
30 | # installable header may include. So if you have a library package | |
31 | # named "mylib", just use | |
32 | # | |
33 | # AX_CREATE_STDINT_H(mylib-int.h) | |
34 | # | |
35 | # in configure.ac and go to install that very header file in | |
36 | # Makefile.am along with the other headers (mylib.h) - and the | |
37 | # mylib-specific headers can simply use "#include <mylib-int.h>" to | |
38 | # obtain the stdint-types. | |
39 | # | |
40 | # Remember, if the system already had a valid <stdint.h>, the | |
41 | # generated file will include it directly. No need for fuzzy | |
42 | # HAVE_STDINT_H things... (oops, GCC 4.2.x has deliberatly disabled | |
43 | # its stdint.h for non-c99 compilation and the c99-mode is not the | |
44 | # default. Therefore this macro will not use the compiler's stdint.h | |
45 | # - please complain to the GCC developers). | |
46 | # | |
47 | # LAST MODIFICATION | |
48 | # | |
49 | # 2007-06-27 | |
50 | # | |
51 | # COPYLEFT | |
52 | # | |
53 | # Copyright (c) 2007 Guido U. Draheim <guidod@gmx.de> | |
54 | # | |
55 | # This program is free software; you can redistribute it and/or | |
56 | # modify it under the terms of the GNU General Public License as | |
57 | # published by the Free Software Foundation; either version 2 of the | |
58 | # License, or (at your option) any later version. | |
59 | # | |
60 | # This program is distributed in the hope that it will be useful, but | |
61 | # WITHOUT ANY WARRANTY; without even the implied warranty of | |
62 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
63 | # General Public License for more details. | |
64 | # | |
65 | # You should have received a copy of the GNU General Public License | |
66 | # along with this program; if not, write to the Free Software | |
67 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
68 | # 02111-1307, USA. | |
69 | # | |
70 | # As a special exception, the respective Autoconf Macro's copyright | |
71 | # owner gives unlimited permission to copy, distribute and modify the | |
72 | # configure scripts that are the output of Autoconf when processing | |
73 | # the Macro. You need not follow the terms of the GNU General Public | |
74 | # License when using or distributing such scripts, even though | |
75 | # portions of the text of the Macro appear in them. The GNU General | |
76 | # Public License (GPL) does govern all other use of the material that | |
77 | # constitutes the Autoconf Macro. | |
78 | # | |
79 | # This special exception to the GPL applies to versions of the | |
80 | # Autoconf Macro released by the Autoconf Macro Archive. When you | |
81 | # make and distribute a modified version of the Autoconf Macro, you | |
82 | # may extend this special exception to the GPL to apply to your | |
83 | # modified version as well. | |
84 | ||
85 | AC_DEFUN([AX_CHECK_DATA_MODEL],[ | |
86 | AC_CHECK_SIZEOF(char) | |
87 | AC_CHECK_SIZEOF(short) | |
88 | AC_CHECK_SIZEOF(int) | |
89 | AC_CHECK_SIZEOF(long) | |
90 | AC_CHECK_SIZEOF(void*) | |
91 | ac_cv_char_data_model="" | |
92 | ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char" | |
93 | ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short" | |
94 | ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int" | |
95 | ac_cv_long_data_model="" | |
96 | ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int" | |
97 | ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long" | |
98 | ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp" | |
99 | AC_MSG_CHECKING([data model]) | |
100 | case "$ac_cv_char_data_model/$ac_cv_long_data_model" in | |
101 | 122/242) ac_cv_data_model="IP16" ; n="standard 16bit machine" ;; | |
102 | 122/244) ac_cv_data_model="LP32" ; n="standard 32bit machine" ;; | |
103 | 122/*) ac_cv_data_model="i16" ; n="unusual int16 model" ;; | |
104 | 124/444) ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;; | |
105 | 124/488) ac_cv_data_model="LP64" ; n="standard 64bit unixish" ;; | |
106 | 124/448) ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;; | |
107 | 124/*) ac_cv_data_model="i32" ; n="unusual int32 model" ;; | |
108 | 128/888) ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;; | |
109 | 128/*) ac_cv_data_model="i64" ; n="unusual int64 model" ;; | |
110 | 222/*2) ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;; | |
111 | 333/*3) ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;; | |
112 | 444/*4) ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;; | |
113 | 666/*6) ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;; | |
114 | 888/*8) ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;; | |
115 | 222/*|333/*|444/*|666/*|888/*) : | |
116 | ac_cv_data_model="iDSP" ; n="unusual dsptype" ;; | |
117 | *) ac_cv_data_model="none" ; n="very unusual model" ;; | |
118 | esac | |
119 | AC_MSG_RESULT([$ac_cv_data_model ($ac_cv_long_data_model, $n)]) | |
120 | ]) | |
121 | ||
122 | dnl AX_CHECK_HEADER_STDINT_X([HEADERLIST][,ACTION-IF]) | |
123 | AC_DEFUN([AX_CHECK_HEADER_STDINT_X],[ | |
124 | AC_CACHE_CHECK([for stdint uintptr_t], [ac_cv_header_stdint_x],[ | |
125 | ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h) | |
126 | AC_MSG_RESULT([(..)]) | |
127 | for i in m4_ifval([$1],[$1],[stdint.h inttypes.h sys/inttypes.h sys/types.h]) | |
128 | do | |
129 | unset ac_cv_type_uintptr_t | |
130 | unset ac_cv_type_uint64_t | |
131 | AC_CHECK_TYPE(uintptr_t,[ac_cv_header_stdint_x=$i],continue,[#include <$i>]) | |
132 | AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) | |
133 | m4_ifvaln([$2],[$2]) break | |
134 | done | |
135 | AC_MSG_CHECKING([for stdint uintptr_t]) | |
136 | ]) | |
137 | ]) | |
138 | ||
139 | AC_DEFUN([AX_CHECK_HEADER_STDINT_O],[ | |
140 | AC_CACHE_CHECK([for stdint uint32_t], [ac_cv_header_stdint_o],[ | |
141 | ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h) | |
142 | AC_MSG_RESULT([(..)]) | |
143 | for i in m4_ifval([$1],[$1],[inttypes.h sys/inttypes.h sys/types.h stdint.h]) | |
144 | do | |
145 | unset ac_cv_type_uint32_t | |
146 | unset ac_cv_type_uint64_t | |
147 | AC_CHECK_TYPE(uint32_t,[ac_cv_header_stdint_o=$i],continue,[#include <$i>]) | |
148 | AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) | |
149 | m4_ifvaln([$2],[$2]) break | |
150 | break; | |
151 | done | |
152 | AC_MSG_CHECKING([for stdint uint32_t]) | |
153 | ]) | |
154 | ]) | |
155 | ||
156 | AC_DEFUN([AX_CHECK_HEADER_STDINT_U],[ | |
157 | AC_CACHE_CHECK([for stdint u_int32_t], [ac_cv_header_stdint_u],[ | |
158 | ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h) | |
159 | AC_MSG_RESULT([(..)]) | |
160 | for i in m4_ifval([$1],[$1],[sys/types.h inttypes.h sys/inttypes.h]) ; do | |
161 | unset ac_cv_type_u_int32_t | |
162 | unset ac_cv_type_u_int64_t | |
163 | AC_CHECK_TYPE(u_int32_t,[ac_cv_header_stdint_u=$i],continue,[#include <$i>]) | |
164 | AC_CHECK_TYPE(u_int64_t,[and64="/u_int64_t"],[and64=""],[#include<$i>]) | |
165 | m4_ifvaln([$2],[$2]) break | |
166 | break; | |
167 | done | |
168 | AC_MSG_CHECKING([for stdint u_int32_t]) | |
169 | ]) | |
170 | ]) | |
171 | ||
172 | AC_DEFUN([AX_CREATE_STDINT_H], | |
173 | [# ------ AX CREATE STDINT H ------------------------------------- | |
174 | AC_MSG_CHECKING([for stdint types]) | |
175 | ac_stdint_h=`echo ifelse($1, , _stdint.h, $1)` | |
176 | # try to shortcircuit - if the default include path of the compiler | |
177 | # can find a "stdint.h" header then we assume that all compilers can. | |
178 | AC_CACHE_VAL([ac_cv_header_stdint_t],[ | |
179 | old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS="" | |
180 | old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="" | |
181 | old_CFLAGS="$CFLAGS" ; CFLAGS="" | |
182 | AC_TRY_COMPILE([#include <stdint.h>],[int_least32_t v = 0;], | |
183 | [ac_cv_stdint_result="(assuming C99 compatible system)" | |
184 | ac_cv_header_stdint_t="stdint.h"; ], | |
185 | [ac_cv_header_stdint_t=""]) | |
186 | if test "$GCC" = "yes" && test ".$ac_cv_header_stdint_t" = "."; then | |
187 | CFLAGS="-std=c99" | |
188 | AC_TRY_COMPILE([#include <stdint.h>],[int_least32_t v = 0;], | |
189 | [AC_MSG_WARN(your GCC compiler has a defunct stdint.h for its default-mode)]) | |
190 | fi | |
191 | CXXFLAGS="$old_CXXFLAGS" | |
192 | CPPFLAGS="$old_CPPFLAGS" | |
193 | CFLAGS="$old_CFLAGS" ]) | |
194 | ||
195 | v="... $ac_cv_header_stdint_h" | |
196 | if test "$ac_stdint_h" = "stdint.h" ; then | |
197 | AC_MSG_RESULT([(are you sure you want them in ./stdint.h?)]) | |
198 | elif test "$ac_stdint_h" = "inttypes.h" ; then | |
199 | AC_MSG_RESULT([(are you sure you want them in ./inttypes.h?)]) | |
200 | elif test "_$ac_cv_header_stdint_t" = "_" ; then | |
201 | AC_MSG_RESULT([(putting them into $ac_stdint_h)$v]) | |
202 | else | |
203 | ac_cv_header_stdint="$ac_cv_header_stdint_t" | |
204 | AC_MSG_RESULT([$ac_cv_header_stdint (shortcircuit)]) | |
205 | fi | |
206 | ||
207 | if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit.. | |
208 | ||
209 | dnl .....intro message done, now do a few system checks..... | |
210 | dnl btw, all old CHECK_TYPE macros do automatically "DEFINE" a type, | |
211 | dnl therefore we use the autoconf implementation detail CHECK_TYPE_NEW | |
212 | dnl instead that is triggered with 3 or more arguments (see types.m4) | |
213 | ||
214 | inttype_headers=`echo $2 | sed -e 's/,/ /g'` | |
215 | ||
216 | ac_cv_stdint_result="(no helpful system typedefs seen)" | |
217 | AX_CHECK_HEADER_STDINT_X(dnl | |
218 | stdint.h inttypes.h sys/inttypes.h $inttype_headers, | |
219 | ac_cv_stdint_result="(seen uintptr_t$and64 in $i)") | |
220 | ||
221 | if test "_$ac_cv_header_stdint_x" = "_" ; then | |
222 | AX_CHECK_HEADER_STDINT_O(dnl, | |
223 | inttypes.h sys/inttypes.h stdint.h $inttype_headers, | |
224 | ac_cv_stdint_result="(seen uint32_t$and64 in $i)") | |
225 | fi | |
226 | ||
227 | if test "_$ac_cv_header_stdint_x" = "_" ; then | |
228 | if test "_$ac_cv_header_stdint_o" = "_" ; then | |
229 | AX_CHECK_HEADER_STDINT_U(dnl, | |
230 | sys/types.h inttypes.h sys/inttypes.h $inttype_headers, | |
231 | ac_cv_stdint_result="(seen u_int32_t$and64 in $i)") | |
232 | fi fi | |
233 | ||
234 | dnl if there was no good C99 header file, do some typedef checks... | |
235 | if test "_$ac_cv_header_stdint_x" = "_" ; then | |
236 | AC_MSG_CHECKING([for stdint datatype model]) | |
237 | AC_MSG_RESULT([(..)]) | |
238 | AX_CHECK_DATA_MODEL | |
239 | fi | |
240 | ||
241 | if test "_$ac_cv_header_stdint_x" != "_" ; then | |
242 | ac_cv_header_stdint="$ac_cv_header_stdint_x" | |
243 | elif test "_$ac_cv_header_stdint_o" != "_" ; then | |
244 | ac_cv_header_stdint="$ac_cv_header_stdint_o" | |
245 | elif test "_$ac_cv_header_stdint_u" != "_" ; then | |
246 | ac_cv_header_stdint="$ac_cv_header_stdint_u" | |
247 | else | |
248 | ac_cv_header_stdint="stddef.h" | |
249 | fi | |
250 | ||
251 | AC_MSG_CHECKING([for extra inttypes in chosen header]) | |
252 | AC_MSG_RESULT([($ac_cv_header_stdint)]) | |
253 | dnl see if int_least and int_fast types are present in _this_ header. | |
254 | unset ac_cv_type_int_least32_t | |
255 | unset ac_cv_type_int_fast32_t | |
256 | AC_CHECK_TYPE(int_least32_t,,,[#include <$ac_cv_header_stdint>]) | |
257 | AC_CHECK_TYPE(int_fast32_t,,,[#include<$ac_cv_header_stdint>]) | |
258 | AC_CHECK_TYPE(intmax_t,,,[#include <$ac_cv_header_stdint>]) | |
259 | ||
260 | fi # shortcircut to system "stdint.h" | |
261 | # ------------------ PREPARE VARIABLES ------------------------------ | |
262 | if test "$GCC" = "yes" ; then | |
263 | ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1` | |
264 | else | |
265 | ac_cv_stdint_message="using $CC" | |
266 | fi | |
267 | ||
268 | AC_MSG_RESULT([make use of $ac_cv_header_stdint in $ac_stdint_h dnl | |
269 | $ac_cv_stdint_result]) | |
270 | ||
271 | dnl ----------------------------------------------------------------- | |
272 | # ----------------- DONE inttypes.h checks START header ------------- | |
273 | AC_CONFIG_COMMANDS([$ac_stdint_h],[ | |
274 | AC_MSG_NOTICE(creating $ac_stdint_h : $_ac_stdint_h) | |
275 | ac_stdint=$tmp/_stdint.h | |
276 | ||
277 | echo "#ifndef" $_ac_stdint_h >$ac_stdint | |
278 | echo "#define" $_ac_stdint_h "1" >>$ac_stdint | |
279 | echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint | |
280 | echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint | |
281 | echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint | |
282 | if test "_$ac_cv_header_stdint_t" != "_" ; then | |
283 | echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint | |
284 | echo "#include <stdint.h>" >>$ac_stdint | |
285 | echo "#endif" >>$ac_stdint | |
286 | echo "#endif" >>$ac_stdint | |
287 | else | |
288 | ||
289 | cat >>$ac_stdint <<STDINT_EOF | |
290 | ||
291 | /* ................... shortcircuit part ........................... */ | |
292 | ||
293 | #if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H | |
294 | #include <stdint.h> | |
295 | #else | |
296 | #include <stddef.h> | |
297 | ||
298 | /* .................... configured part ............................ */ | |
299 | ||
300 | STDINT_EOF | |
301 | ||
302 | echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint | |
303 | if test "_$ac_cv_header_stdint_x" != "_" ; then | |
304 | ac_header="$ac_cv_header_stdint_x" | |
305 | echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint | |
306 | else | |
307 | echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint | |
308 | fi | |
309 | ||
310 | echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint | |
311 | if test "_$ac_cv_header_stdint_o" != "_" ; then | |
312 | ac_header="$ac_cv_header_stdint_o" | |
313 | echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint | |
314 | else | |
315 | echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint | |
316 | fi | |
317 | ||
318 | echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint | |
319 | if test "_$ac_cv_header_stdint_u" != "_" ; then | |
320 | ac_header="$ac_cv_header_stdint_u" | |
321 | echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint | |
322 | else | |
323 | echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint | |
324 | fi | |
325 | ||
326 | echo "" >>$ac_stdint | |
327 | ||
328 | if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then | |
329 | echo "#include <$ac_header>" >>$ac_stdint | |
330 | echo "" >>$ac_stdint | |
331 | fi fi | |
332 | ||
333 | echo "/* which 64bit typedef has been found */" >>$ac_stdint | |
334 | if test "$ac_cv_type_uint64_t" = "yes" ; then | |
335 | echo "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdint | |
336 | else | |
337 | echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint | |
338 | fi | |
339 | if test "$ac_cv_type_u_int64_t" = "yes" ; then | |
340 | echo "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdint | |
341 | else | |
342 | echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint | |
343 | fi | |
344 | echo "" >>$ac_stdint | |
345 | ||
346 | echo "/* which type model has been detected */" >>$ac_stdint | |
347 | if test "_$ac_cv_char_data_model" != "_" ; then | |
348 | echo "#define _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint | |
349 | echo "#define _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint | |
350 | else | |
351 | echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint | |
352 | echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint | |
353 | fi | |
354 | echo "" >>$ac_stdint | |
355 | ||
356 | echo "/* whether int_least types were detected */" >>$ac_stdint | |
357 | if test "$ac_cv_type_int_least32_t" = "yes"; then | |
358 | echo "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdint | |
359 | else | |
360 | echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint | |
361 | fi | |
362 | echo "/* whether int_fast types were detected */" >>$ac_stdint | |
363 | if test "$ac_cv_type_int_fast32_t" = "yes"; then | |
364 | echo "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint | |
365 | else | |
366 | echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint | |
367 | fi | |
368 | echo "/* whether intmax_t type was detected */" >>$ac_stdint | |
369 | if test "$ac_cv_type_intmax_t" = "yes"; then | |
370 | echo "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint | |
371 | else | |
372 | echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint | |
373 | fi | |
374 | echo "" >>$ac_stdint | |
375 | ||
376 | cat >>$ac_stdint <<STDINT_EOF | |
377 | /* .................... detections part ............................ */ | |
378 | ||
379 | /* whether we need to define bitspecific types from compiler base types */ | |
380 | #ifndef _STDINT_HEADER_INTPTR | |
381 | #ifndef _STDINT_HEADER_UINT32 | |
382 | #ifndef _STDINT_HEADER_U_INT32 | |
383 | #define _STDINT_NEED_INT_MODEL_T | |
384 | #else | |
385 | #define _STDINT_HAVE_U_INT_TYPES | |
386 | #endif | |
387 | #endif | |
388 | #endif | |
389 | ||
390 | #ifdef _STDINT_HAVE_U_INT_TYPES | |
391 | #undef _STDINT_NEED_INT_MODEL_T | |
392 | #endif | |
393 | ||
394 | #ifdef _STDINT_CHAR_MODEL | |
395 | #if _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124 | |
396 | #ifndef _STDINT_BYTE_MODEL | |
397 | #define _STDINT_BYTE_MODEL 12 | |
398 | #endif | |
399 | #endif | |
400 | #endif | |
401 | ||
402 | #ifndef _STDINT_HAVE_INT_LEAST32_T | |
403 | #define _STDINT_NEED_INT_LEAST_T | |
404 | #endif | |
405 | ||
406 | #ifndef _STDINT_HAVE_INT_FAST32_T | |
407 | #define _STDINT_NEED_INT_FAST_T | |
408 | #endif | |
409 | ||
410 | #ifndef _STDINT_HEADER_INTPTR | |
411 | #define _STDINT_NEED_INTPTR_T | |
412 | #ifndef _STDINT_HAVE_INTMAX_T | |
413 | #define _STDINT_NEED_INTMAX_T | |
414 | #endif | |
415 | #endif | |
416 | ||
417 | ||
418 | /* .................... definition part ............................ */ | |
419 | ||
420 | /* some system headers have good uint64_t */ | |
421 | #ifndef _HAVE_UINT64_T | |
422 | #if defined _STDINT_HAVE_UINT64_T || defined HAVE_UINT64_T | |
423 | #define _HAVE_UINT64_T | |
424 | #elif defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T | |
425 | #define _HAVE_UINT64_T | |
426 | typedef u_int64_t uint64_t; | |
427 | #endif | |
428 | #endif | |
429 | ||
430 | #ifndef _HAVE_UINT64_T | |
431 | /* .. here are some common heuristics using compiler runtime specifics */ | |
432 | #if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L | |
433 | #define _HAVE_UINT64_T | |
434 | #define _HAVE_LONGLONG_UINT64_T | |
435 | typedef long long int64_t; | |
436 | typedef unsigned long long uint64_t; | |
437 | ||
438 | #elif !defined __STRICT_ANSI__ | |
439 | #if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ | |
440 | #define _HAVE_UINT64_T | |
441 | typedef __int64 int64_t; | |
442 | typedef unsigned __int64 uint64_t; | |
443 | ||
444 | #elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ | |
445 | /* note: all ELF-systems seem to have loff-support which needs 64-bit */ | |
446 | #if !defined _NO_LONGLONG | |
447 | #define _HAVE_UINT64_T | |
448 | #define _HAVE_LONGLONG_UINT64_T | |
449 | typedef long long int64_t; | |
450 | typedef unsigned long long uint64_t; | |
451 | #endif | |
452 | ||
453 | #elif defined __alpha || (defined __mips && defined _ABIN32) | |
454 | #if !defined _NO_LONGLONG | |
455 | typedef long int64_t; | |
456 | typedef unsigned long uint64_t; | |
457 | #endif | |
458 | /* compiler/cpu type to define int64_t */ | |
459 | #endif | |
460 | #endif | |
461 | #endif | |
462 | ||
463 | #if defined _STDINT_HAVE_U_INT_TYPES | |
464 | /* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ | |
465 | typedef u_int8_t uint8_t; | |
466 | typedef u_int16_t uint16_t; | |
467 | typedef u_int32_t uint32_t; | |
468 | ||
469 | /* glibc compatibility */ | |
470 | #ifndef __int8_t_defined | |
471 | #define __int8_t_defined | |
472 | #endif | |
473 | #endif | |
474 | ||
475 | #ifdef _STDINT_NEED_INT_MODEL_T | |
476 | /* we must guess all the basic types. Apart from byte-adressable system, */ | |
477 | /* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ | |
478 | /* (btw, those nibble-addressable systems are way off, or so we assume) */ | |
479 | ||
480 | dnl /* have a look at "64bit and data size neutrality" at */ | |
481 | dnl /* http://unix.org/version2/whatsnew/login_64bit.html */ | |
482 | dnl /* (the shorthand "ILP" types always have a "P" part) */ | |
483 | ||
484 | #if defined _STDINT_BYTE_MODEL | |
485 | #if _STDINT_LONG_MODEL+0 == 242 | |
486 | /* 2:4:2 = IP16 = a normal 16-bit system */ | |
487 | typedef unsigned char uint8_t; | |
488 | typedef unsigned short uint16_t; | |
489 | typedef unsigned long uint32_t; | |
490 | #ifndef __int8_t_defined | |
491 | #define __int8_t_defined | |
492 | typedef char int8_t; | |
493 | typedef short int16_t; | |
494 | typedef long int32_t; | |
495 | #endif | |
496 | #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 | |
497 | /* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ | |
498 | /* 4:4:4 = ILP32 = a normal 32-bit system */ | |
499 | typedef unsigned char uint8_t; | |
500 | typedef unsigned short uint16_t; | |
501 | typedef unsigned int uint32_t; | |
502 | #ifndef __int8_t_defined | |
503 | #define __int8_t_defined | |
504 | typedef char int8_t; | |
505 | typedef short int16_t; | |
506 | typedef int int32_t; | |
507 | #endif | |
508 | #elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 | |
509 | /* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ | |
510 | /* 4:8:8 = LP64 = a normal 64-bit system */ | |
511 | typedef unsigned char uint8_t; | |
512 | typedef unsigned short uint16_t; | |
513 | typedef unsigned int uint32_t; | |
514 | #ifndef __int8_t_defined | |
515 | #define __int8_t_defined | |
516 | typedef char int8_t; | |
517 | typedef short int16_t; | |
518 | typedef int int32_t; | |
519 | #endif | |
520 | /* this system has a "long" of 64bit */ | |
521 | #ifndef _HAVE_UINT64_T | |
522 | #define _HAVE_UINT64_T | |
523 | typedef unsigned long uint64_t; | |
524 | typedef long int64_t; | |
525 | #endif | |
526 | #elif _STDINT_LONG_MODEL+0 == 448 | |
527 | /* LLP64 a 64-bit system derived from a 32-bit system */ | |
528 | typedef unsigned char uint8_t; | |
529 | typedef unsigned short uint16_t; | |
530 | typedef unsigned int uint32_t; | |
531 | #ifndef __int8_t_defined | |
532 | #define __int8_t_defined | |
533 | typedef char int8_t; | |
534 | typedef short int16_t; | |
535 | typedef int int32_t; | |
536 | #endif | |
537 | /* assuming the system has a "long long" */ | |
538 | #ifndef _HAVE_UINT64_T | |
539 | #define _HAVE_UINT64_T | |
540 | #define _HAVE_LONGLONG_UINT64_T | |
541 | typedef unsigned long long uint64_t; | |
542 | typedef long long int64_t; | |
543 | #endif | |
544 | #else | |
545 | #define _STDINT_NO_INT32_T | |
546 | #endif | |
547 | #else | |
548 | #define _STDINT_NO_INT8_T | |
549 | #define _STDINT_NO_INT32_T | |
550 | #endif | |
551 | #endif | |
552 | ||
553 | /* | |
554 | * quote from SunOS-5.8 sys/inttypes.h: | |
555 | * Use at your own risk. As of February 1996, the committee is squarely | |
556 | * behind the fixed sized types; the "least" and "fast" types are still being | |
557 | * discussed. The probability that the "fast" types may be removed before | |
558 | * the standard is finalized is high enough that they are not currently | |
559 | * implemented. | |
560 | */ | |
561 | ||
562 | #if defined _STDINT_NEED_INT_LEAST_T | |
563 | typedef int8_t int_least8_t; | |
564 | typedef int16_t int_least16_t; | |
565 | typedef int32_t int_least32_t; | |
566 | #ifdef _HAVE_UINT64_T | |
567 | typedef int64_t int_least64_t; | |
568 | #endif | |
569 | ||
570 | typedef uint8_t uint_least8_t; | |
571 | typedef uint16_t uint_least16_t; | |
572 | typedef uint32_t uint_least32_t; | |
573 | #ifdef _HAVE_UINT64_T | |
574 | typedef uint64_t uint_least64_t; | |
575 | #endif | |
576 | /* least types */ | |
577 | #endif | |
578 | ||
579 | #if defined _STDINT_NEED_INT_FAST_T | |
580 | typedef int8_t int_fast8_t; | |
581 | typedef int int_fast16_t; | |
582 | typedef int32_t int_fast32_t; | |
583 | #ifdef _HAVE_UINT64_T | |
584 | typedef int64_t int_fast64_t; | |
585 | #endif | |
586 | ||
587 | typedef uint8_t uint_fast8_t; | |
588 | typedef unsigned uint_fast16_t; | |
589 | typedef uint32_t uint_fast32_t; | |
590 | #ifdef _HAVE_UINT64_T | |
591 | typedef uint64_t uint_fast64_t; | |
592 | #endif | |
593 | /* fast types */ | |
594 | #endif | |
595 | ||
596 | #ifdef _STDINT_NEED_INTMAX_T | |
597 | #ifdef _HAVE_UINT64_T | |
598 | typedef int64_t intmax_t; | |
599 | typedef uint64_t uintmax_t; | |
600 | #else | |
601 | typedef long intmax_t; | |
602 | typedef unsigned long uintmax_t; | |
603 | #endif | |
604 | #endif | |
605 | ||
606 | #ifdef _STDINT_NEED_INTPTR_T | |
607 | #ifndef __intptr_t_defined | |
608 | #define __intptr_t_defined | |
609 | /* we encourage using "long" to store pointer values, never use "int" ! */ | |
610 | #if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 | |
611 | typedef unsigned int uintptr_t; | |
612 | typedef int intptr_t; | |
613 | #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 | |
614 | typedef unsigned long uintptr_t; | |
615 | typedef long intptr_t; | |
616 | #elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T | |
617 | typedef uint64_t uintptr_t; | |
618 | typedef int64_t intptr_t; | |
619 | #else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ | |
620 | typedef unsigned long uintptr_t; | |
621 | typedef long intptr_t; | |
622 | #endif | |
623 | #endif | |
624 | #endif | |
625 | ||
626 | /* The ISO C99 standard specifies that in C++ implementations these | |
627 | should only be defined if explicitly requested. */ | |
628 | #if !defined __cplusplus || defined __STDC_CONSTANT_MACROS | |
629 | #ifndef UINT32_C | |
630 | ||
631 | /* Signed. */ | |
632 | # define INT8_C(c) c | |
633 | # define INT16_C(c) c | |
634 | # define INT32_C(c) c | |
635 | # ifdef _HAVE_LONGLONG_UINT64_T | |
636 | # define INT64_C(c) c ## L | |
637 | # else | |
638 | # define INT64_C(c) c ## LL | |
639 | # endif | |
640 | ||
641 | /* Unsigned. */ | |
642 | # define UINT8_C(c) c ## U | |
643 | # define UINT16_C(c) c ## U | |
644 | # define UINT32_C(c) c ## U | |
645 | # ifdef _HAVE_LONGLONG_UINT64_T | |
646 | # define UINT64_C(c) c ## UL | |
647 | # else | |
648 | # define UINT64_C(c) c ## ULL | |
649 | # endif | |
650 | ||
651 | /* Maximal type. */ | |
652 | # ifdef _HAVE_LONGLONG_UINT64_T | |
653 | # define INTMAX_C(c) c ## L | |
654 | # define UINTMAX_C(c) c ## UL | |
655 | # else | |
656 | # define INTMAX_C(c) c ## LL | |
657 | # define UINTMAX_C(c) c ## ULL | |
658 | # endif | |
659 | ||
660 | /* literalnumbers */ | |
661 | #endif | |
662 | #endif | |
663 | ||
664 | /* These limits are merily those of a two complement byte-oriented system */ | |
665 | ||
666 | /* Minimum of signed integral types. */ | |
667 | # define INT8_MIN (-128) | |
668 | # define INT16_MIN (-32767-1) | |
669 | # define INT32_MIN (-2147483647-1) | |
670 | # define INT64_MIN (-__INT64_C(9223372036854775807)-1) | |
671 | /* Maximum of signed integral types. */ | |
672 | # define INT8_MAX (127) | |
673 | # define INT16_MAX (32767) | |
674 | # define INT32_MAX (2147483647) | |
675 | # define INT64_MAX (__INT64_C(9223372036854775807)) | |
676 | ||
677 | /* Maximum of unsigned integral types. */ | |
678 | # define UINT8_MAX (255) | |
679 | # define UINT16_MAX (65535) | |
680 | # define UINT32_MAX (4294967295U) | |
681 | # define UINT64_MAX (__UINT64_C(18446744073709551615)) | |
682 | ||
683 | /* Minimum of signed integral types having a minimum size. */ | |
684 | # define INT_LEAST8_MIN INT8_MIN | |
685 | # define INT_LEAST16_MIN INT16_MIN | |
686 | # define INT_LEAST32_MIN INT32_MIN | |
687 | # define INT_LEAST64_MIN INT64_MIN | |
688 | /* Maximum of signed integral types having a minimum size. */ | |
689 | # define INT_LEAST8_MAX INT8_MAX | |
690 | # define INT_LEAST16_MAX INT16_MAX | |
691 | # define INT_LEAST32_MAX INT32_MAX | |
692 | # define INT_LEAST64_MAX INT64_MAX | |
693 | ||
694 | /* Maximum of unsigned integral types having a minimum size. */ | |
695 | # define UINT_LEAST8_MAX UINT8_MAX | |
696 | # define UINT_LEAST16_MAX UINT16_MAX | |
697 | # define UINT_LEAST32_MAX UINT32_MAX | |
698 | # define UINT_LEAST64_MAX UINT64_MAX | |
699 | ||
700 | /* shortcircuit*/ | |
701 | #endif | |
702 | /* once */ | |
703 | #endif | |
704 | #endif | |
705 | STDINT_EOF | |
706 | fi | |
707 | if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then | |
708 | AC_MSG_NOTICE([$ac_stdint_h is unchanged]) | |
709 | else | |
710 | ac_dir=`AS_DIRNAME(["$ac_stdint_h"])` | |
711 | AS_MKDIR_P(["$ac_dir"]) | |
712 | rm -f $ac_stdint_h | |
713 | mv $ac_stdint $ac_stdint_h | |
714 | fi | |
715 | ],[# variables for create stdint.h replacement | |
716 | PACKAGE="$PACKAGE" | |
717 | VERSION="$VERSION" | |
718 | ac_stdint_h="$ac_stdint_h" | |
719 | _ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h) | |
720 | ac_cv_stdint_message="$ac_cv_stdint_message" | |
721 | ac_cv_header_stdint_t="$ac_cv_header_stdint_t" | |
722 | ac_cv_header_stdint_x="$ac_cv_header_stdint_x" | |
723 | ac_cv_header_stdint_o="$ac_cv_header_stdint_o" | |
724 | ac_cv_header_stdint_u="$ac_cv_header_stdint_u" | |
725 | ac_cv_type_uint64_t="$ac_cv_type_uint64_t" | |
726 | ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t" | |
727 | ac_cv_char_data_model="$ac_cv_char_data_model" | |
728 | ac_cv_long_data_model="$ac_cv_long_data_model" | |
729 | ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t" | |
730 | ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t" | |
731 | ac_cv_type_intmax_t="$ac_cv_type_intmax_t" | |
732 | ]) | |
733 | ]) |
0 | dnl _AM_TRY_CHECK(MINIMUM-VERSION, EXTRA-CFLAGS, EXTRA-LIBS, CHECK-LIB-NAME | |
1 | dnl [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) | |
2 | dnl Test for check, and define CHECK_CFLAGS and CHECK_LIBS | |
3 | dnl Done this way because of the brokenness that is | |
4 | dnl https://launchpad.net/distros/ubuntu/+source/check/+bug/5840 | |
5 | dnl | |
6 | ||
7 | AC_DEFUN([_AM_TRY_CHECK], | |
8 | [ | |
9 | min_check_version=$1 | |
10 | extra_cflags=$2 | |
11 | extra_libs=$3 | |
12 | check_lib_name=$4 | |
13 | ||
14 | CHECK_CFLAGS="$extra_cflags" | |
15 | CHECK_LIBS="$extra_libs -l$check_lib_name" | |
16 | ||
17 | ac_save_CFLAGS="$CFLAGS" | |
18 | ac_save_LIBS="$LIBS" | |
19 | ||
20 | CFLAGS="$CFLAGS $CHECK_CFLAGS" | |
21 | LIBS="$CHECK_LIBS $LIBS" | |
22 | ||
23 | AC_MSG_CHECKING(for check named $check_lib_name - version >= $min_check_version) | |
24 | ||
25 | rm -f conf.check-test | |
26 | dnl unset no_check, since in our second run it would have been set to yes | |
27 | dnl before | |
28 | no_check= | |
29 | AC_TRY_RUN([ | |
30 | #include <stdio.h> | |
31 | #include <stdlib.h> | |
32 | ||
33 | #include <check.h> | |
34 | ||
35 | int main () | |
36 | { | |
37 | int major, minor, micro; | |
38 | char *tmp_version; | |
39 | ||
40 | system ("touch conf.check-test"); | |
41 | ||
42 | /* HP/UX 9 (%@#!) writes to sscanf strings */ | |
43 | tmp_version = strdup("$min_check_version"); | |
44 | if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { | |
45 | printf("%s, bad version string\n", "$min_check_version"); | |
46 | return 1; | |
47 | } | |
48 | ||
49 | if ((CHECK_MAJOR_VERSION != check_major_version) || | |
50 | (CHECK_MINOR_VERSION != check_minor_version) || | |
51 | (CHECK_MICRO_VERSION != check_micro_version)) | |
52 | { | |
53 | printf("\n*** The check header file (version %d.%d.%d) does not match\n", | |
54 | CHECK_MAJOR_VERSION, CHECK_MINOR_VERSION, CHECK_MICRO_VERSION); | |
55 | printf("*** the check library (version %d.%d.%d).\n", | |
56 | check_major_version, check_minor_version, check_micro_version); | |
57 | return 1; | |
58 | } | |
59 | ||
60 | if ((check_major_version > major) || | |
61 | ((check_major_version == major) && (check_minor_version > minor)) || | |
62 | ((check_major_version == major) && (check_minor_version == minor) && (check_micro_version >= micro))) | |
63 | { | |
64 | return 0; | |
65 | } | |
66 | else | |
67 | { | |
68 | printf("\n*** An old version of check (%d.%d.%d) was found.\n", | |
69 | check_major_version, check_minor_version, check_micro_version); | |
70 | printf("*** You need a version of check being at least %d.%d.%d.\n", major, minor, micro); | |
71 | printf("***\n"); | |
72 | printf("*** If you have already installed a sufficiently new version, this error\n"); | |
73 | printf("*** probably means that the wrong copy of the check library and header\n"); | |
74 | printf("*** file is being found. Rerun configure with the --with-check=PATH option\n"); | |
75 | printf("*** to specify the prefix where the correct version was installed.\n"); | |
76 | } | |
77 | ||
78 | return 1; | |
79 | } | |
80 | ],, no_check=yes, [echo $ac_n "cross compiling; assumed OK... $ac_c"]) | |
81 | ||
82 | CFLAGS="$ac_save_CFLAGS" | |
83 | LIBS="$ac_save_LIBS" | |
84 | ||
85 | if test "x$no_check" = x ; then | |
86 | AC_MSG_RESULT(yes) | |
87 | ifelse([$5], , :, [$5]) | |
88 | else | |
89 | AC_MSG_RESULT(no) | |
90 | if test -f conf.check-test ; then | |
91 | : | |
92 | else | |
93 | echo "*** Could not run check test program, checking why..." | |
94 | CFLAGS="$CFLAGS $CHECK_CFLAGS" | |
95 | LIBS="$CHECK_LIBS $LIBS" | |
96 | AC_TRY_LINK([ | |
97 | #include <stdio.h> | |
98 | #include <stdlib.h> | |
99 | ||
100 | #include <check.h> | |
101 | ], , [ echo "*** The test program compiled, but did not run. This usually means" | |
102 | echo "*** that the run-time linker is not finding check. You'll need to set your" | |
103 | echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" | |
104 | echo "*** to the installed location Also, make sure you have run ldconfig if that" | |
105 | echo "*** is required on your system" | |
106 | echo "***" | |
107 | echo "*** If you have an old version installed, it is best to remove it, although" | |
108 | echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], | |
109 | [ echo "*** The test program failed to compile or link. See the file config.log for" | |
110 | echo "*** the exact error that occured." ]) | |
111 | ||
112 | CFLAGS="$ac_save_CFLAGS" | |
113 | LIBS="$ac_save_LIBS" | |
114 | fi | |
115 | ||
116 | CHECK_CFLAGS="" | |
117 | CHECK_LIBS="" | |
118 | ||
119 | rm -f conf.check-test | |
120 | ifelse([$6], , AC_MSG_ERROR([check not found]), [$6]) | |
121 | fi | |
122 | ]) | |
123 | ||
124 | ||
125 | dnl AM_PATH_CHECK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) | |
126 | dnl Test for check, and define CHECK_CFLAGS and CHECK_LIBS | |
127 | dnl | |
128 | ||
129 | AC_DEFUN([AM_PATH_CHECK], | |
130 | [ | |
131 | AC_ARG_WITH(check, | |
132 | [ --with-check=PATH prefix where check is installed [default=auto]]) | |
133 | ||
134 | AC_ARG_WITH(checklibname, | |
135 | AC_HELP_STRING([--with-check-lib-name=NAME], | |
136 | [name of the PIC check library (default=check)])) | |
137 | ||
138 | min_check_version=ifelse([$1], ,0.8.2,$1) | |
139 | ||
140 | if test x$with_check = xno; then | |
141 | AC_MSG_RESULT(disabled) | |
142 | ifelse([$3], , AC_MSG_ERROR([disabling check is not supported]), [$3]) | |
143 | else | |
144 | if test "x$with_check" != x; then | |
145 | CHECK_EXTRA_CFLAGS="-I$with_check/include" | |
146 | CHECK_EXTRA_LIBS="-L$with_check/lib" | |
147 | else | |
148 | CHECK_EXTRA_CFLAGS="" | |
149 | CHECK_EXTRA_LIBS="" | |
150 | fi | |
151 | ||
152 | if test x$with_checklibname = x; then | |
153 | _AM_TRY_CHECK($min_check_version, $CHECK_EXTRA_CFLAGS, $CHECK_EXTRA_LIBS, | |
154 | check_pic, [have_check=true], [have_check=false]) | |
155 | if test x$have_check = xtrue; then | |
156 | ifelse([$2], , :, [$2]) | |
157 | else | |
158 | _AM_TRY_CHECK($min_check_version, $CHECK_EXTRA_CFLAGS, $CHECK_EXTRA_LIBS, | |
159 | check, [have_check=true], [have_check=false]) | |
160 | if test x$have_check = xtrue; then | |
161 | ifelse([$2], , :, [$2]) | |
162 | else | |
163 | ifelse([$3], , AC_MSG_ERROR([check not found]), [$3]) | |
164 | fi | |
165 | fi | |
166 | else | |
167 | _AM_TRY_CHECK($min_check_version, $CHECK_EXTRA_CFLAGS, $CHECK_EXTRA_LIBS, | |
168 | $with_checklibname, [have_check=true], [have_check=false]) | |
169 | if test x$have_check = xtrue; then | |
170 | ifelse([$2], , :, [$2]) | |
171 | else | |
172 | ifelse([$3], , AC_MSG_ERROR([check not found]), [$3]) | |
173 | fi | |
174 | fi | |
175 | ||
176 | AC_SUBST(CHECK_CFLAGS) | |
177 | AC_SUBST(CHECK_LIBS) | |
178 | rm -f conf.check-test | |
179 | fi | |
180 | ]) |
0 | # codeset.m4 serial AM1 (gettext-0.10.40) | |
1 | dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Bruno Haible. | |
9 | ||
10 | AC_DEFUN([AM_LANGINFO_CODESET], | |
11 | [ | |
12 | AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, | |
13 | [AC_TRY_LINK([#include <langinfo.h>], | |
14 | [char* cs = nl_langinfo(CODESET);], | |
15 | am_cv_langinfo_codeset=yes, | |
16 | am_cv_langinfo_codeset=no) | |
17 | ]) | |
18 | if test $am_cv_langinfo_codeset = yes; then | |
19 | AC_DEFINE(HAVE_LANGINFO_CODESET, 1, | |
20 | [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) | |
21 | fi | |
22 | ]) |
0 | # gettext.m4 serial 17 (gettext-0.11.5) | |
1 | dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | dnl | |
8 | dnl This file can can be used in projects which are not available under | |
9 | dnl the GNU General Public License or the GNU Library General Public | |
10 | dnl License but which still want to provide support for the GNU gettext | |
11 | dnl functionality. | |
12 | dnl Please note that the actual code of the GNU gettext library is covered | |
13 | dnl by the GNU Library General Public License, and the rest of the GNU | |
14 | dnl gettext package package is covered by the GNU General Public License. | |
15 | dnl They are *not* in the public domain. | |
16 | ||
17 | dnl Authors: | |
18 | dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. | |
19 | dnl Bruno Haible <haible@clisp.cons.org>, 2000-2002. | |
20 | ||
21 | dnl Macro to add for using GNU gettext. | |
22 | ||
23 | dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). | |
24 | dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The | |
25 | dnl default (if it is not specified or empty) is 'no-libtool'. | |
26 | dnl INTLSYMBOL should be 'external' for packages with no intl directory, | |
27 | dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. | |
28 | dnl If INTLSYMBOL is 'use-libtool', then a libtool library | |
29 | dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, | |
30 | dnl depending on --{enable,disable}-{shared,static} and on the presence of | |
31 | dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library | |
32 | dnl $(top_builddir)/intl/libintl.a will be created. | |
33 | dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext | |
34 | dnl implementations (in libc or libintl) without the ngettext() function | |
35 | dnl will be ignored. If NEEDSYMBOL is specified and is | |
36 | dnl 'need-formatstring-macros', then GNU gettext implementations that don't | |
37 | dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored. | |
38 | dnl INTLDIR is used to find the intl libraries. If empty, | |
39 | dnl the value `$(top_builddir)/intl/' is used. | |
40 | dnl | |
41 | dnl The result of the configuration is one of three cases: | |
42 | dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled | |
43 | dnl and used. | |
44 | dnl Catalog format: GNU --> install in $(datadir) | |
45 | dnl Catalog extension: .mo after installation, .gmo in source tree | |
46 | dnl 2) GNU gettext has been found in the system's C library. | |
47 | dnl Catalog format: GNU --> install in $(datadir) | |
48 | dnl Catalog extension: .mo after installation, .gmo in source tree | |
49 | dnl 3) No internationalization, always use English msgid. | |
50 | dnl Catalog format: none | |
51 | dnl Catalog extension: none | |
52 | dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. | |
53 | dnl The use of .gmo is historical (it was needed to avoid overwriting the | |
54 | dnl GNU format catalogs when building on a platform with an X/Open gettext), | |
55 | dnl but we keep it in order not to force irrelevant filename changes on the | |
56 | dnl maintainers. | |
57 | dnl | |
58 | AC_DEFUN([AM_GNU_GETTEXT], | |
59 | [ | |
60 | dnl Argument checking. | |
61 | ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , | |
62 | [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT | |
63 | ])])])])]) | |
64 | ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , | |
65 | [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT | |
66 | ])])])]) | |
67 | define(gt_included_intl, ifelse([$1], [external], [no], [yes])) | |
68 | define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) | |
69 | ||
70 | AC_REQUIRE([AM_PO_SUBDIRS])dnl | |
71 | ifelse(gt_included_intl, yes, [ | |
72 | AC_REQUIRE([AM_INTL_SUBDIR])dnl | |
73 | ]) | |
74 | ||
75 | dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. | |
76 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | |
77 | AC_REQUIRE([AC_LIB_RPATH]) | |
78 | ||
79 | dnl Sometimes libintl requires libiconv, so first search for libiconv. | |
80 | dnl Ideally we would do this search only after the | |
81 | dnl if test "$USE_NLS" = "yes"; then | |
82 | dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then | |
83 | dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT | |
84 | dnl the configure script would need to contain the same shell code | |
85 | dnl again, outside any 'if'. There are two solutions: | |
86 | dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. | |
87 | dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. | |
88 | dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not | |
89 | dnl documented, we avoid it. | |
90 | ifelse(gt_included_intl, yes, , [ | |
91 | AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) | |
92 | ]) | |
93 | ||
94 | AC_MSG_CHECKING([whether NLS is requested]) | |
95 | dnl Default is enabled NLS | |
96 | AC_ARG_ENABLE(nls, | |
97 | [ --disable-nls do not use Native Language Support], | |
98 | USE_NLS=$enableval, USE_NLS=yes) | |
99 | AC_MSG_RESULT($USE_NLS) | |
100 | AC_SUBST(USE_NLS) | |
101 | ||
102 | ifelse(gt_included_intl, yes, [ | |
103 | BUILD_INCLUDED_LIBINTL=no | |
104 | USE_INCLUDED_LIBINTL=no | |
105 | ]) | |
106 | LIBINTL= | |
107 | LTLIBINTL= | |
108 | POSUB= | |
109 | ||
110 | dnl If we use NLS figure out what method | |
111 | if test "$USE_NLS" = "yes"; then | |
112 | gt_use_preinstalled_gnugettext=no | |
113 | ifelse(gt_included_intl, yes, [ | |
114 | AC_MSG_CHECKING([whether included gettext is requested]) | |
115 | AC_ARG_WITH(included-gettext, | |
116 | [ --with-included-gettext use the GNU gettext library included here], | |
117 | nls_cv_force_use_gnu_gettext=$withval, | |
118 | nls_cv_force_use_gnu_gettext=no) | |
119 | AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) | |
120 | ||
121 | nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" | |
122 | if test "$nls_cv_force_use_gnu_gettext" != "yes"; then | |
123 | ]) | |
124 | dnl User does not insist on using GNU NLS library. Figure out what | |
125 | dnl to use. If GNU gettext is available we use this. Else we have | |
126 | dnl to fall back to GNU NLS library. | |
127 | ||
128 | dnl Add a version number to the cache macros. | |
129 | define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) | |
130 | define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) | |
131 | define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) | |
132 | ||
133 | AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, | |
134 | [AC_TRY_LINK([#include <libintl.h> | |
135 | ]ifelse([$2], [need-formatstring-macros], | |
136 | [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION | |
137 | #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) | |
138 | #endif | |
139 | changequote(,)dnl | |
140 | typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; | |
141 | changequote([,])dnl | |
142 | ], [])[extern int _nl_msg_cat_cntr; | |
143 | extern int *_nl_domain_bindings;], | |
144 | [bindtextdomain ("", ""); | |
145 | return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], | |
146 | gt_cv_func_gnugettext_libc=yes, | |
147 | gt_cv_func_gnugettext_libc=no)]) | |
148 | ||
149 | if test "$gt_cv_func_gnugettext_libc" != "yes"; then | |
150 | dnl Sometimes libintl requires libiconv, so first search for libiconv. | |
151 | ifelse(gt_included_intl, yes, , [ | |
152 | AM_ICONV_LINK | |
153 | ]) | |
154 | dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL | |
155 | dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) | |
156 | dnl because that would add "-liconv" to LIBINTL and LTLIBINTL | |
157 | dnl even if libiconv doesn't exist. | |
158 | AC_LIB_LINKFLAGS_BODY([intl]) | |
159 | AC_CACHE_CHECK([for GNU gettext in libintl], | |
160 | gt_cv_func_gnugettext_libintl, | |
161 | [gt_save_CPPFLAGS="$CPPFLAGS" | |
162 | CPPFLAGS="$CPPFLAGS $INCINTL" | |
163 | gt_save_LIBS="$LIBS" | |
164 | LIBS="$LIBS $LIBINTL" | |
165 | dnl Now see whether libintl exists and does not depend on libiconv. | |
166 | AC_TRY_LINK([#include <libintl.h> | |
167 | ]ifelse([$2], [need-formatstring-macros], | |
168 | [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION | |
169 | #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) | |
170 | #endif | |
171 | changequote(,)dnl | |
172 | typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; | |
173 | changequote([,])dnl | |
174 | ], [])[extern int _nl_msg_cat_cntr; | |
175 | extern | |
176 | #ifdef __cplusplus | |
177 | "C" | |
178 | #endif | |
179 | const char *_nl_expand_alias ();], | |
180 | [bindtextdomain ("", ""); | |
181 | return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], | |
182 | gt_cv_func_gnugettext_libintl=yes, | |
183 | gt_cv_func_gnugettext_libintl=no) | |
184 | dnl Now see whether libintl exists and depends on libiconv. | |
185 | if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then | |
186 | LIBS="$LIBS $LIBICONV" | |
187 | AC_TRY_LINK([#include <libintl.h> | |
188 | ]ifelse([$2], [need-formatstring-macros], | |
189 | [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION | |
190 | #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) | |
191 | #endif | |
192 | changequote(,)dnl | |
193 | typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; | |
194 | changequote([,])dnl | |
195 | ], [])[extern int _nl_msg_cat_cntr; | |
196 | extern | |
197 | #ifdef __cplusplus | |
198 | "C" | |
199 | #endif | |
200 | const char *_nl_expand_alias ();], | |
201 | [bindtextdomain ("", ""); | |
202 | return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], | |
203 | [LIBINTL="$LIBINTL $LIBICONV" | |
204 | LTLIBINTL="$LTLIBINTL $LTLIBICONV" | |
205 | gt_cv_func_gnugettext_libintl=yes | |
206 | ]) | |
207 | fi | |
208 | CPPFLAGS="$gt_save_CPPFLAGS" | |
209 | LIBS="$gt_save_LIBS"]) | |
210 | fi | |
211 | ||
212 | dnl If an already present or preinstalled GNU gettext() is found, | |
213 | dnl use it. But if this macro is used in GNU gettext, and GNU | |
214 | dnl gettext is already preinstalled in libintl, we update this | |
215 | dnl libintl. (Cf. the install rule in intl/Makefile.in.) | |
216 | if test "$gt_cv_func_gnugettext_libc" = "yes" \ | |
217 | || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ | |
218 | && test "$PACKAGE" != gettext; }; then | |
219 | gt_use_preinstalled_gnugettext=yes | |
220 | else | |
221 | dnl Reset the values set by searching for libintl. | |
222 | LIBINTL= | |
223 | LTLIBINTL= | |
224 | INCINTL= | |
225 | fi | |
226 | ||
227 | ifelse(gt_included_intl, yes, [ | |
228 | if test "$gt_use_preinstalled_gnugettext" != "yes"; then | |
229 | dnl GNU gettext is not found in the C library. | |
230 | dnl Fall back on included GNU gettext library. | |
231 | nls_cv_use_gnu_gettext=yes | |
232 | fi | |
233 | fi | |
234 | ||
235 | if test "$nls_cv_use_gnu_gettext" = "yes"; then | |
236 | dnl Mark actions used to generate GNU NLS library. | |
237 | INTLOBJS="\$(GETTOBJS)" | |
238 | BUILD_INCLUDED_LIBINTL=yes | |
239 | USE_INCLUDED_LIBINTL=yes | |
240 | LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" | |
241 | LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" | |
242 | LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` | |
243 | fi | |
244 | ||
245 | if test "$gt_use_preinstalled_gnugettext" = "yes" \ | |
246 | || test "$nls_cv_use_gnu_gettext" = "yes"; then | |
247 | dnl Mark actions to use GNU gettext tools. | |
248 | CATOBJEXT=.gmo | |
249 | fi | |
250 | ]) | |
251 | ||
252 | if test "$gt_use_preinstalled_gnugettext" = "yes" \ | |
253 | || test "$nls_cv_use_gnu_gettext" = "yes"; then | |
254 | AC_DEFINE(ENABLE_NLS, 1, | |
255 | [Define to 1 if translation of program messages to the user's native language | |
256 | is requested.]) | |
257 | else | |
258 | USE_NLS=no | |
259 | fi | |
260 | fi | |
261 | ||
262 | if test "$USE_NLS" = "yes"; then | |
263 | ||
264 | if test "$gt_use_preinstalled_gnugettext" = "yes"; then | |
265 | if test "$gt_cv_func_gnugettext_libintl" = "yes"; then | |
266 | AC_MSG_CHECKING([how to link with libintl]) | |
267 | AC_MSG_RESULT([$LIBINTL]) | |
268 | AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) | |
269 | fi | |
270 | ||
271 | dnl For backward compatibility. Some packages may be using this. | |
272 | AC_DEFINE(HAVE_GETTEXT, 1, | |
273 | [Define if the GNU gettext() function is already present or preinstalled.]) | |
274 | AC_DEFINE(HAVE_DCGETTEXT, 1, | |
275 | [Define if the GNU dcgettext() function is already present or preinstalled.]) | |
276 | fi | |
277 | ||
278 | dnl We need to process the po/ directory. | |
279 | POSUB=po | |
280 | fi | |
281 | ||
282 | ifelse(gt_included_intl, yes, [ | |
283 | dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL | |
284 | dnl to 'yes' because some of the testsuite requires it. | |
285 | if test "$PACKAGE" = gettext; then | |
286 | BUILD_INCLUDED_LIBINTL=yes | |
287 | fi | |
288 | ||
289 | dnl Make all variables we use known to autoconf. | |
290 | AC_SUBST(BUILD_INCLUDED_LIBINTL) | |
291 | AC_SUBST(USE_INCLUDED_LIBINTL) | |
292 | AC_SUBST(CATOBJEXT) | |
293 | AC_SUBST(INTLOBJS) | |
294 | ||
295 | dnl For backward compatibility. Some configure.ins may be using this. | |
296 | nls_cv_header_intl= | |
297 | nls_cv_header_libgt= | |
298 | ||
299 | dnl For backward compatibility. Some Makefiles may be using this. | |
300 | DATADIRNAME=share | |
301 | AC_SUBST(DATADIRNAME) | |
302 | ||
303 | dnl For backward compatibility. Some Makefiles may be using this. | |
304 | INSTOBJEXT=.mo | |
305 | AC_SUBST(INSTOBJEXT) | |
306 | ||
307 | dnl For backward compatibility. Some Makefiles may be using this. | |
308 | GENCAT=gencat | |
309 | AC_SUBST(GENCAT) | |
310 | ||
311 | dnl Enable libtool support if the surrounding package wishes it. | |
312 | INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix | |
313 | AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) | |
314 | ]) | |
315 | ||
316 | dnl For backward compatibility. Some Makefiles may be using this. | |
317 | INTLLIBS="$LIBINTL" | |
318 | AC_SUBST(INTLLIBS) | |
319 | ||
320 | dnl Make all documented variables known to autoconf. | |
321 | AC_SUBST(LIBINTL) | |
322 | AC_SUBST(LTLIBINTL) | |
323 | AC_SUBST(POSUB) | |
324 | ]) | |
325 | ||
326 | ||
327 | dnl Checks for all prerequisites of the po subdirectory, | |
328 | dnl except for USE_NLS. | |
329 | AC_DEFUN([AM_PO_SUBDIRS], | |
330 | [ | |
331 | AC_REQUIRE([AC_PROG_MAKE_SET])dnl | |
332 | AC_REQUIRE([AC_PROG_INSTALL])dnl | |
333 | AC_REQUIRE([AM_MKINSTALLDIRS])dnl | |
334 | ||
335 | dnl Perform the following tests also if --disable-nls has been given, | |
336 | dnl because they are needed for "make dist" to work. | |
337 | ||
338 | dnl Search for GNU msgfmt in the PATH. | |
339 | dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. | |
340 | dnl The second test excludes FreeBSD msgfmt. | |
341 | AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, | |
342 | [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && | |
343 | (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], | |
344 | :) | |
345 | AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) | |
346 | ||
347 | dnl Search for GNU xgettext 0.11 or newer in the PATH. | |
348 | dnl The first test excludes Solaris xgettext and early GNU xgettext versions. | |
349 | dnl The second test excludes FreeBSD xgettext. | |
350 | AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, | |
351 | [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && | |
352 | (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], | |
353 | :) | |
354 | dnl Remove leftover from FreeBSD xgettext call. | |
355 | rm -f messages.po | |
356 | ||
357 | dnl Search for GNU msgmerge 0.11 or newer in the PATH. | |
358 | AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, | |
359 | [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) | |
360 | ||
361 | dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. | |
362 | dnl Test whether we really found GNU msgfmt. | |
363 | if test "$GMSGFMT" != ":"; then | |
364 | dnl If it is no GNU msgfmt we define it as : so that the | |
365 | dnl Makefiles still can work. | |
366 | if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && | |
367 | (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then | |
368 | : ; | |
369 | else | |
370 | GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` | |
371 | AC_MSG_RESULT( | |
372 | [found $GMSGFMT program is not GNU msgfmt; ignore it]) | |
373 | GMSGFMT=":" | |
374 | fi | |
375 | fi | |
376 | ||
377 | dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. | |
378 | dnl Test whether we really found GNU xgettext. | |
379 | if test "$XGETTEXT" != ":"; then | |
380 | dnl If it is no GNU xgettext we define it as : so that the | |
381 | dnl Makefiles still can work. | |
382 | if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && | |
383 | (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then | |
384 | : ; | |
385 | else | |
386 | AC_MSG_RESULT( | |
387 | [found xgettext program is not GNU xgettext; ignore it]) | |
388 | XGETTEXT=":" | |
389 | fi | |
390 | dnl Remove leftover from FreeBSD xgettext call. | |
391 | rm -f messages.po | |
392 | fi | |
393 | ||
394 | AC_OUTPUT_COMMANDS([ | |
395 | for ac_file in $CONFIG_FILES; do | |
396 | # Support "outfile[:infile[:infile...]]" | |
397 | case "$ac_file" in | |
398 | *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; | |
399 | esac | |
400 | # PO directories have a Makefile.in generated from Makefile.in.in. | |
401 | case "$ac_file" in */Makefile.in) | |
402 | # Adjust a relative srcdir. | |
403 | ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` | |
404 | ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" | |
405 | ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` | |
406 | # In autoconf-2.13 it is called $ac_given_srcdir. | |
407 | # In autoconf-2.50 it is called $srcdir. | |
408 | test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" | |
409 | case "$ac_given_srcdir" in | |
410 | .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; | |
411 | /*) top_srcdir="$ac_given_srcdir" ;; | |
412 | *) top_srcdir="$ac_dots$ac_given_srcdir" ;; | |
413 | esac | |
414 | if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then | |
415 | rm -f "$ac_dir/POTFILES" | |
416 | test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" | |
417 | cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" | |
418 | # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend | |
419 | # on $ac_dir but don't depend on user-specified configuration | |
420 | # parameters. | |
421 | if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then | |
422 | # The LINGUAS file contains the set of available languages. | |
423 | if test -n "$ALL_LINGUAS"; then | |
424 | test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" | |
425 | fi | |
426 | ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` | |
427 | # Hide the ALL_LINGUAS assigment from automake. | |
428 | eval 'ALL_LINGUAS''=$ALL_LINGUAS_' | |
429 | fi | |
430 | case "$ac_given_srcdir" in | |
431 | .) srcdirpre= ;; | |
432 | *) srcdirpre='$(srcdir)/' ;; | |
433 | esac | |
434 | POFILES= | |
435 | GMOFILES= | |
436 | UPDATEPOFILES= | |
437 | DUMMYPOFILES= | |
438 | for lang in $ALL_LINGUAS; do | |
439 | POFILES="$POFILES $srcdirpre$lang.po" | |
440 | GMOFILES="$GMOFILES $srcdirpre$lang.gmo" | |
441 | UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" | |
442 | DUMMYPOFILES="$DUMMYPOFILES $lang.nop" | |
443 | done | |
444 | # CATALOGS depends on both $ac_dir and the user's LINGUAS | |
445 | # environment variable. | |
446 | INST_LINGUAS= | |
447 | if test -n "$ALL_LINGUAS"; then | |
448 | for presentlang in $ALL_LINGUAS; do | |
449 | useit=no | |
450 | if test "%UNSET%" != "$LINGUAS"; then | |
451 | desiredlanguages="$LINGUAS" | |
452 | else | |
453 | desiredlanguages="$ALL_LINGUAS" | |
454 | fi | |
455 | for desiredlang in $desiredlanguages; do | |
456 | # Use the presentlang catalog if desiredlang is | |
457 | # a. equal to presentlang, or | |
458 | # b. a variant of presentlang (because in this case, | |
459 | # presentlang can be used as a fallback for messages | |
460 | # which are not translated in the desiredlang catalog). | |
461 | case "$desiredlang" in | |
462 | "$presentlang"*) useit=yes;; | |
463 | esac | |
464 | done | |
465 | if test $useit = yes; then | |
466 | INST_LINGUAS="$INST_LINGUAS $presentlang" | |
467 | fi | |
468 | done | |
469 | fi | |
470 | CATALOGS= | |
471 | if test -n "$INST_LINGUAS"; then | |
472 | for lang in $INST_LINGUAS; do | |
473 | CATALOGS="$CATALOGS $lang.gmo" | |
474 | done | |
475 | fi | |
476 | test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" | |
477 | sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" | |
478 | for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do | |
479 | if test -f "$f"; then | |
480 | case "$f" in | |
481 | *.orig | *.bak | *~) ;; | |
482 | *) cat "$f" >> "$ac_dir/Makefile" ;; | |
483 | esac | |
484 | fi | |
485 | done | |
486 | fi | |
487 | ;; | |
488 | esac | |
489 | done], | |
490 | [# Capture the value of obsolete ALL_LINGUAS because we need it to compute | |
491 | # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it | |
492 | # from automake. | |
493 | eval 'ALL_LINGUAS''="$ALL_LINGUAS"' | |
494 | # Capture the value of LINGUAS because we need it to compute CATALOGS. | |
495 | LINGUAS="${LINGUAS-%UNSET%}" | |
496 | ]) | |
497 | ]) | |
498 | ||
499 | ||
500 | dnl Checks for all prerequisites of the intl subdirectory, | |
501 | dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, | |
502 | dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. | |
503 | AC_DEFUN([AM_INTL_SUBDIR], | |
504 | [ | |
505 | AC_REQUIRE([AC_PROG_INSTALL])dnl | |
506 | AC_REQUIRE([AM_MKINSTALLDIRS])dnl | |
507 | AC_REQUIRE([AC_PROG_CC])dnl | |
508 | AC_REQUIRE([AC_CANONICAL_HOST])dnl | |
509 | AC_REQUIRE([AC_PROG_RANLIB])dnl | |
510 | AC_REQUIRE([AC_ISC_POSIX])dnl | |
511 | AC_REQUIRE([AC_HEADER_STDC])dnl | |
512 | AC_REQUIRE([AC_C_CONST])dnl | |
513 | AC_REQUIRE([AC_C_INLINE])dnl | |
514 | AC_REQUIRE([AC_TYPE_OFF_T])dnl | |
515 | AC_REQUIRE([AC_TYPE_SIZE_T])dnl | |
516 | AC_REQUIRE([AC_FUNC_ALLOCA])dnl | |
517 | AC_REQUIRE([AC_FUNC_MMAP])dnl | |
518 | AC_REQUIRE([jm_GLIBC21])dnl | |
519 | AC_REQUIRE([gt_INTDIV0])dnl | |
520 | AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl | |
521 | AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl | |
522 | AC_REQUIRE([gt_INTTYPES_PRI])dnl | |
523 | ||
524 | AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ | |
525 | stdlib.h string.h unistd.h sys/param.h]) | |
526 | AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ | |
527 | geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ | |
528 | strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) | |
529 | ||
530 | AM_ICONV | |
531 | AM_LANGINFO_CODESET | |
532 | if test $ac_cv_header_locale_h = yes; then | |
533 | AM_LC_MESSAGES | |
534 | fi | |
535 | ||
536 | dnl intl/plural.c is generated from intl/plural.y. It requires bison, | |
537 | dnl because plural.y uses bison specific features. It requires at least | |
538 | dnl bison-1.26 because earlier versions generate a plural.c that doesn't | |
539 | dnl compile. | |
540 | dnl bison is only needed for the maintainer (who touches plural.y). But in | |
541 | dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put | |
542 | dnl the rule in general Makefile. Now, some people carelessly touch the | |
543 | dnl files or have a broken "make" program, hence the plural.c rule will | |
544 | dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not | |
545 | dnl present or too old. | |
546 | AC_CHECK_PROGS([INTLBISON], [bison]) | |
547 | if test -z "$INTLBISON"; then | |
548 | ac_verc_fail=yes | |
549 | else | |
550 | dnl Found it, now check the version. | |
551 | AC_MSG_CHECKING([version of bison]) | |
552 | changequote(<<,>>)dnl | |
553 | ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` | |
554 | case $ac_prog_version in | |
555 | '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; | |
556 | 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) | |
557 | changequote([,])dnl | |
558 | ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; | |
559 | *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; | |
560 | esac | |
561 | AC_MSG_RESULT([$ac_prog_version]) | |
562 | fi | |
563 | if test $ac_verc_fail = yes; then | |
564 | INTLBISON=: | |
565 | fi | |
566 | ]) | |
567 | ||
568 | ||
569 | AC_DEFUN([AM_MKINSTALLDIRS], | |
570 | [ | |
571 | dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly | |
572 | dnl find the mkinstalldirs script in another subdir but $(top_srcdir). | |
573 | dnl Try to locate is. | |
574 | MKINSTALLDIRS= | |
575 | if test -n "$ac_aux_dir"; then | |
576 | MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" | |
577 | fi | |
578 | if test -z "$MKINSTALLDIRS"; then | |
579 | MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" | |
580 | fi | |
581 | AC_SUBST(MKINSTALLDIRS) | |
582 | ]) | |
583 | ||
584 | ||
585 | dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) | |
586 | AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) |
0 | # Copyright (C) 1995-2002 Free Software Foundation, Inc. | |
1 | # Copyright (C) 2001-2003,2004 Red Hat, Inc. | |
2 | # | |
3 | # This file is free software, distributed under the terms of the GNU | |
4 | # General Public License. As a special exception to the GNU General | |
5 | # Public License, this file may be distributed as part of a program | |
6 | # that contains a configuration script generated by Autoconf, under | |
7 | # the same distribution terms as the rest of that program. | |
8 | # | |
9 | # This file can be copied and used freely without restrictions. It can | |
10 | # be used in projects which are not available under the GNU Public License | |
11 | # but which still want to provide support for the GNU gettext functionality. | |
12 | # | |
13 | # Macro to add for using GNU gettext. | |
14 | # Ulrich Drepper <drepper@cygnus.com>, 1995, 1996 | |
15 | # | |
16 | # Modified to never use included libintl. | |
17 | # Owen Taylor <otaylor@redhat.com>, 12/15/1998 | |
18 | # | |
19 | # Major rework to remove unused code | |
20 | # Owen Taylor <otaylor@redhat.com>, 12/11/2002 | |
21 | # | |
22 | # Added better handling of ALL_LINGUAS from GNU gettext version | |
23 | # written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002 | |
24 | # | |
25 | # Modified to require ngettext | |
26 | # Matthias Clasen <mclasen@redhat.com> 08/06/2004 | |
27 | # | |
28 | # We need this here as well, since someone might use autoconf-2.5x | |
29 | # to configure GLib then an older version to configure a package | |
30 | # using AM_GLIB_GNU_GETTEXT | |
31 | AC_PREREQ(2.53) | |
32 | ||
33 | dnl | |
34 | dnl We go to great lengths to make sure that aclocal won't | |
35 | dnl try to pull in the installed version of these macros | |
36 | dnl when running aclocal in the glib directory. | |
37 | dnl | |
38 | m4_copy([AC_DEFUN],[glib_DEFUN]) | |
39 | m4_copy([AC_REQUIRE],[glib_REQUIRE]) | |
40 | dnl | |
41 | dnl At the end, if we're not within glib, we'll define the public | |
42 | dnl definitions in terms of our private definitions. | |
43 | dnl | |
44 | ||
45 | # GLIB_LC_MESSAGES | |
46 | #-------------------- | |
47 | glib_DEFUN([GLIB_LC_MESSAGES], | |
48 | [AC_CHECK_HEADERS([locale.h]) | |
49 | if test $ac_cv_header_locale_h = yes; then | |
50 | AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, | |
51 | [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], | |
52 | am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) | |
53 | if test $am_cv_val_LC_MESSAGES = yes; then | |
54 | AC_DEFINE(HAVE_LC_MESSAGES, 1, | |
55 | [Define if your <locale.h> file defines LC_MESSAGES.]) | |
56 | fi | |
57 | fi]) | |
58 | ||
59 | # GLIB_PATH_PROG_WITH_TEST | |
60 | #---------------------------- | |
61 | dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, | |
62 | dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) | |
63 | glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], | |
64 | [# Extract the first word of "$2", so it can be a program name with args. | |
65 | set dummy $2; ac_word=[$]2 | |
66 | AC_MSG_CHECKING([for $ac_word]) | |
67 | AC_CACHE_VAL(ac_cv_path_$1, | |
68 | [case "[$]$1" in | |
69 | /*) | |
70 | ac_cv_path_$1="[$]$1" # Let the user override the test with a path. | |
71 | ;; | |
72 | *) | |
73 | IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
74 | for ac_dir in ifelse([$5], , $PATH, [$5]); do | |
75 | test -z "$ac_dir" && ac_dir=. | |
76 | if test -f $ac_dir/$ac_word; then | |
77 | if [$3]; then | |
78 | ac_cv_path_$1="$ac_dir/$ac_word" | |
79 | break | |
80 | fi | |
81 | fi | |
82 | done | |
83 | IFS="$ac_save_ifs" | |
84 | dnl If no 4th arg is given, leave the cache variable unset, | |
85 | dnl so AC_PATH_PROGS will keep looking. | |
86 | ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" | |
87 | ])dnl | |
88 | ;; | |
89 | esac])dnl | |
90 | $1="$ac_cv_path_$1" | |
91 | if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then | |
92 | AC_MSG_RESULT([$]$1) | |
93 | else | |
94 | AC_MSG_RESULT(no) | |
95 | fi | |
96 | AC_SUBST($1)dnl | |
97 | ]) | |
98 | ||
99 | # GLIB_WITH_NLS | |
100 | #----------------- | |
101 | glib_DEFUN([GLIB_WITH_NLS], | |
102 | dnl NLS is obligatory | |
103 | [USE_NLS=yes | |
104 | AC_SUBST(USE_NLS) | |
105 | ||
106 | gt_cv_have_gettext=no | |
107 | ||
108 | CATOBJEXT=NONE | |
109 | XGETTEXT=: | |
110 | INTLLIBS= | |
111 | ||
112 | AC_CHECK_HEADER(libintl.h, | |
113 | [gt_cv_func_dgettext_libintl="no" | |
114 | libintl_extra_libs="" | |
115 | ||
116 | # | |
117 | # First check in libc | |
118 | # | |
119 | AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, | |
120 | [AC_TRY_LINK([ | |
121 | #include <libintl.h> | |
122 | ], | |
123 | [return !ngettext ("","", 1)], | |
124 | gt_cv_func_ngettext_libc=yes, | |
125 | gt_cv_func_ngettext_libc=no) | |
126 | ]) | |
127 | ||
128 | if test "$gt_cv_func_ngettext_libc" = "yes" ; then | |
129 | AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, | |
130 | [AC_TRY_LINK([ | |
131 | #include <libintl.h> | |
132 | ], | |
133 | [return !dgettext ("","")], | |
134 | gt_cv_func_dgettext_libc=yes, | |
135 | gt_cv_func_dgettext_libc=no) | |
136 | ]) | |
137 | fi | |
138 | ||
139 | if test "$gt_cv_func_ngettext_libc" = "yes" ; then | |
140 | AC_CHECK_FUNCS(bind_textdomain_codeset) | |
141 | fi | |
142 | ||
143 | # | |
144 | # If we don't have everything we want, check in libintl | |
145 | # | |
146 | if test "$gt_cv_func_dgettext_libc" != "yes" \ | |
147 | || test "$gt_cv_func_ngettext_libc" != "yes" \ | |
148 | || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then | |
149 | ||
150 | AC_CHECK_LIB(intl, bindtextdomain, | |
151 | [AC_CHECK_LIB(intl, ngettext, | |
152 | [AC_CHECK_LIB(intl, dgettext, | |
153 | gt_cv_func_dgettext_libintl=yes)])]) | |
154 | ||
155 | if test "$gt_cv_func_dgettext_libintl" != "yes" ; then | |
156 | AC_MSG_CHECKING([if -liconv is needed to use gettext]) | |
157 | AC_MSG_RESULT([]) | |
158 | AC_CHECK_LIB(intl, ngettext, | |
159 | [AC_CHECK_LIB(intl, dcgettext, | |
160 | [gt_cv_func_dgettext_libintl=yes | |
161 | libintl_extra_libs=-liconv], | |
162 | :,-liconv)], | |
163 | :,-liconv) | |
164 | fi | |
165 | ||
166 | # | |
167 | # If we found libintl, then check in it for bind_textdomain_codeset(); | |
168 | # we'll prefer libc if neither have bind_textdomain_codeset(), | |
169 | # and both have dgettext and ngettext | |
170 | # | |
171 | if test "$gt_cv_func_dgettext_libintl" = "yes" ; then | |
172 | glib_save_LIBS="$LIBS" | |
173 | LIBS="$LIBS -lintl $libintl_extra_libs" | |
174 | unset ac_cv_func_bind_textdomain_codeset | |
175 | AC_CHECK_FUNCS(bind_textdomain_codeset) | |
176 | LIBS="$glib_save_LIBS" | |
177 | ||
178 | if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then | |
179 | gt_cv_func_dgettext_libc=no | |
180 | else | |
181 | if test "$gt_cv_func_dgettext_libc" = "yes" \ | |
182 | && test "$gt_cv_func_ngettext_libc" = "yes"; then | |
183 | gt_cv_func_dgettext_libintl=no | |
184 | fi | |
185 | fi | |
186 | fi | |
187 | fi | |
188 | ||
189 | if test "$gt_cv_func_dgettext_libc" = "yes" \ | |
190 | || test "$gt_cv_func_dgettext_libintl" = "yes"; then | |
191 | gt_cv_have_gettext=yes | |
192 | fi | |
193 | ||
194 | if test "$gt_cv_func_dgettext_libintl" = "yes"; then | |
195 | INTLLIBS="-lintl $libintl_extra_libs" | |
196 | fi | |
197 | ||
198 | if test "$gt_cv_have_gettext" = "yes"; then | |
199 | AC_DEFINE(HAVE_GETTEXT,1, | |
200 | [Define if the GNU gettext() function is already present or preinstalled.]) | |
201 | GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, | |
202 | [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl | |
203 | if test "$MSGFMT" != "no"; then | |
204 | glib_save_LIBS="$LIBS" | |
205 | LIBS="$LIBS $INTLLIBS" | |
206 | AC_CHECK_FUNCS(dcgettext) | |
207 | MSGFMT_OPTS= | |
208 | AC_MSG_CHECKING([if msgfmt accepts -c]) | |
209 | GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ | |
210 | msgid "" | |
211 | msgstr "" | |
212 | "Content-Type: text/plain; charset=UTF-8\n" | |
213 | "Project-Id-Version: test 1.0\n" | |
214 | "PO-Revision-Date: 2007-02-15 12:01+0100\n" | |
215 | "Last-Translator: test <foo@bar.xx>\n" | |
216 | "Language-Team: C <LL@li.org>\n" | |
217 | "MIME-Version: 1.0\n" | |
218 | "Content-Transfer-Encoding: 8bit\n" | |
219 | ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) | |
220 | AC_SUBST(MSGFMT_OPTS) | |
221 | AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) | |
222 | GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, | |
223 | [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) | |
224 | AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; | |
225 | return _nl_msg_cat_cntr], | |
226 | [CATOBJEXT=.gmo | |
227 | DATADIRNAME=share], | |
228 | [case $host in | |
229 | *-*-solaris*) | |
230 | dnl On Solaris, if bind_textdomain_codeset is in libc, | |
231 | dnl GNU format message catalog is always supported, | |
232 | dnl since both are added to the libc all together. | |
233 | dnl Hence, we'd like to go with DATADIRNAME=share and | |
234 | dnl and CATOBJEXT=.gmo in this case. | |
235 | AC_CHECK_FUNC(bind_textdomain_codeset, | |
236 | [CATOBJEXT=.gmo | |
237 | DATADIRNAME=share], | |
238 | [CATOBJEXT=.mo | |
239 | DATADIRNAME=lib]) | |
240 | ;; | |
241 | *) | |
242 | CATOBJEXT=.mo | |
243 | DATADIRNAME=lib | |
244 | ;; | |
245 | esac]) | |
246 | LIBS="$glib_save_LIBS" | |
247 | INSTOBJEXT=.mo | |
248 | else | |
249 | gt_cv_have_gettext=no | |
250 | fi | |
251 | fi | |
252 | ]) | |
253 | ||
254 | if test "$gt_cv_have_gettext" = "yes" ; then | |
255 | AC_DEFINE(ENABLE_NLS, 1, | |
256 | [always defined to indicate that i18n is enabled]) | |
257 | fi | |
258 | ||
259 | dnl Test whether we really found GNU xgettext. | |
260 | if test "$XGETTEXT" != ":"; then | |
261 | dnl If it is not GNU xgettext we define it as : so that the | |
262 | dnl Makefiles still can work. | |
263 | if $XGETTEXT --omit-header /dev/null 2> /dev/null; then | |
264 | : ; | |
265 | else | |
266 | AC_MSG_RESULT( | |
267 | [found xgettext program is not GNU xgettext; ignore it]) | |
268 | XGETTEXT=":" | |
269 | fi | |
270 | fi | |
271 | ||
272 | # We need to process the po/ directory. | |
273 | POSUB=po | |
274 | ||
275 | AC_OUTPUT_COMMANDS( | |
276 | [case "$CONFIG_FILES" in *po/Makefile.in*) | |
277 | sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile | |
278 | esac]) | |
279 | ||
280 | dnl These rules are solely for the distribution goal. While doing this | |
281 | dnl we only have to keep exactly one list of the available catalogs | |
282 | dnl in configure.in. | |
283 | for lang in $ALL_LINGUAS; do | |
284 | GMOFILES="$GMOFILES $lang.gmo" | |
285 | POFILES="$POFILES $lang.po" | |
286 | done | |
287 | ||
288 | dnl Make all variables we use known to autoconf. | |
289 | AC_SUBST(CATALOGS) | |
290 | AC_SUBST(CATOBJEXT) | |
291 | AC_SUBST(DATADIRNAME) | |
292 | AC_SUBST(GMOFILES) | |
293 | AC_SUBST(INSTOBJEXT) | |
294 | AC_SUBST(INTLLIBS) | |
295 | AC_SUBST(PO_IN_DATADIR_TRUE) | |
296 | AC_SUBST(PO_IN_DATADIR_FALSE) | |
297 | AC_SUBST(POFILES) | |
298 | AC_SUBST(POSUB) | |
299 | ]) | |
300 | ||
301 | # AM_GLIB_GNU_GETTEXT | |
302 | # ------------------- | |
303 | # Do checks necessary for use of gettext. If a suitable implementation | |
304 | # of gettext is found in either in libintl or in the C library, | |
305 | # it will set INTLLIBS to the libraries needed for use of gettext | |
306 | # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable | |
307 | # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() | |
308 | # on various variables needed by the Makefile.in.in installed by | |
309 | # glib-gettextize. | |
310 | dnl | |
311 | glib_DEFUN([GLIB_GNU_GETTEXT], | |
312 | [AC_REQUIRE([AC_PROG_CC])dnl | |
313 | AC_REQUIRE([AC_HEADER_STDC])dnl | |
314 | ||
315 | GLIB_LC_MESSAGES | |
316 | GLIB_WITH_NLS | |
317 | ||
318 | if test "$gt_cv_have_gettext" = "yes"; then | |
319 | if test "x$ALL_LINGUAS" = "x"; then | |
320 | LINGUAS= | |
321 | else | |
322 | AC_MSG_CHECKING(for catalogs to be installed) | |
323 | NEW_LINGUAS= | |
324 | for presentlang in $ALL_LINGUAS; do | |
325 | useit=no | |
326 | if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then | |
327 | desiredlanguages="$LINGUAS" | |
328 | else | |
329 | desiredlanguages="$ALL_LINGUAS" | |
330 | fi | |
331 | for desiredlang in $desiredlanguages; do | |
332 | # Use the presentlang catalog if desiredlang is | |
333 | # a. equal to presentlang, or | |
334 | # b. a variant of presentlang (because in this case, | |
335 | # presentlang can be used as a fallback for messages | |
336 | # which are not translated in the desiredlang catalog). | |
337 | case "$desiredlang" in | |
338 | "$presentlang"*) useit=yes;; | |
339 | esac | |
340 | done | |
341 | if test $useit = yes; then | |
342 | NEW_LINGUAS="$NEW_LINGUAS $presentlang" | |
343 | fi | |
344 | done | |
345 | LINGUAS=$NEW_LINGUAS | |
346 | AC_MSG_RESULT($LINGUAS) | |
347 | fi | |
348 | ||
349 | dnl Construct list of names of catalog files to be constructed. | |
350 | if test -n "$LINGUAS"; then | |
351 | for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done | |
352 | fi | |
353 | fi | |
354 | ||
355 | dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly | |
356 | dnl find the mkinstalldirs script in another subdir but ($top_srcdir). | |
357 | dnl Try to locate is. | |
358 | MKINSTALLDIRS= | |
359 | if test -n "$ac_aux_dir"; then | |
360 | MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" | |
361 | fi | |
362 | if test -z "$MKINSTALLDIRS"; then | |
363 | MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" | |
364 | fi | |
365 | AC_SUBST(MKINSTALLDIRS) | |
366 | ||
367 | dnl Generate list of files to be processed by xgettext which will | |
368 | dnl be included in po/Makefile. | |
369 | test -d po || mkdir po | |
370 | if test "x$srcdir" != "x."; then | |
371 | if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then | |
372 | posrcprefix="$srcdir/" | |
373 | else | |
374 | posrcprefix="../$srcdir/" | |
375 | fi | |
376 | else | |
377 | posrcprefix="../" | |
378 | fi | |
379 | rm -f po/POTFILES | |
380 | sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ | |
381 | < $srcdir/po/POTFILES.in > po/POTFILES | |
382 | ]) | |
383 | ||
384 | # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) | |
385 | # ------------------------------- | |
386 | # Define VARIABLE to the location where catalog files will | |
387 | # be installed by po/Makefile. | |
388 | glib_DEFUN([GLIB_DEFINE_LOCALEDIR], | |
389 | [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl | |
390 | glib_save_prefix="$prefix" | |
391 | glib_save_exec_prefix="$exec_prefix" | |
392 | glib_save_datarootdir="$datarootdir" | |
393 | test "x$prefix" = xNONE && prefix=$ac_default_prefix | |
394 | test "x$exec_prefix" = xNONE && exec_prefix=$prefix | |
395 | datarootdir=`eval echo "${datarootdir}"` | |
396 | if test "x$CATOBJEXT" = "x.mo" ; then | |
397 | localedir=`eval echo "${libdir}/locale"` | |
398 | else | |
399 | localedir=`eval echo "${datadir}/locale"` | |
400 | fi | |
401 | prefix="$glib_save_prefix" | |
402 | exec_prefix="$glib_save_exec_prefix" | |
403 | datarootdir="$glib_save_datarootdir" | |
404 | AC_DEFINE_UNQUOTED($1, "$localedir", | |
405 | [Define the location where the catalogs will be installed]) | |
406 | ]) | |
407 | ||
408 | dnl | |
409 | dnl Now the definitions that aclocal will find | |
410 | dnl | |
411 | ifdef(glib_configure_in,[],[ | |
412 | AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) | |
413 | AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) | |
414 | ])dnl | |
415 | ||
416 | # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) | |
417 | # | |
418 | # Create a temporary file with TEST-FILE as its contents and pass the | |
419 | # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with | |
420 | # 0 and perform ACTION-IF-FAIL for any other exit status. | |
421 | AC_DEFUN([GLIB_RUN_PROG], | |
422 | [cat >conftest.foo <<_ACEOF | |
423 | $2 | |
424 | _ACEOF | |
425 | if AC_RUN_LOG([$1 conftest.foo]); then | |
426 | m4_ifval([$3], [$3], [:]) | |
427 | m4_ifvaln([$4], [else $4])dnl | |
428 | echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD | |
429 | sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD | |
430 | fi]) | |
431 |
0 | # glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) | |
1 | dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | # Test for the GNU C Library, version 2.1 or newer. | |
9 | # From Bruno Haible. | |
10 | ||
11 | AC_DEFUN([jm_GLIBC21], | |
12 | [ | |
13 | AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, | |
14 | ac_cv_gnu_library_2_1, | |
15 | [AC_EGREP_CPP([Lucky GNU user], | |
16 | [ | |
17 | #include <features.h> | |
18 | #ifdef __GNU_LIBRARY__ | |
19 | #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) | |
20 | Lucky GNU user | |
21 | #endif | |
22 | #endif | |
23 | ], | |
24 | ac_cv_gnu_library_2_1=yes, | |
25 | ac_cv_gnu_library_2_1=no) | |
26 | ] | |
27 | ) | |
28 | AC_SUBST(GLIBC21) | |
29 | GLIBC21="$ac_cv_gnu_library_2_1" | |
30 | ] | |
31 | ) |
112 | 112 | esac |
113 | 113 | ], |
114 | 114 | [ |
115 | DEFAULT_AUDIOSINK="$DEFAULT_VISUALIZER" | |
115 | DEFAULT_VISUALIZER="$DEFAULT_VISUALIZER" | |
116 | 116 | ] dnl Default value as determined above |
117 | 117 | ) |
118 | 118 | AC_MSG_NOTICE(Using $DEFAULT_VISUALIZER as default visualizer) |
0 | dnl | |
1 | dnl Check for working do while(0) macros. This is used by G_STMT_START | |
2 | dnl and G_STMT_END in glib/gmacros.h. Without having this defined we | |
3 | dnl get "ambigious if-else" compiler warnings when compling C++ code. | |
4 | dnl | |
5 | dnl Copied from GLib's configure.in | |
6 | dnl | |
7 | AC_DEFUN([AG_GST_CHECK_DOWHILE_MACROS],[ | |
8 | ||
9 | dnl *** check for working do while(0) macros *** | |
10 | AC_CACHE_CHECK([for working do while(0) macros], g_support_dowhile_macros, [ | |
11 | AC_TRY_COMPILE([],[ | |
12 | #define STMT_START do | |
13 | #define STMT_END while(0) | |
14 | #define STMT_TEST STMT_START { i = 0; } STMT_END | |
15 | int main(void) { int i = 1; STMT_TEST; return i; }], | |
16 | [g_support_dowhile_macros=yes], | |
17 | [g_support_dowhile_macros=no], | |
18 | [g_support_dowhile_macros=yes]) | |
19 | ]) | |
20 | if test x$g_support_dowhile_macros = xyes; then | |
21 | AC_DEFINE(HAVE_DOWHILE_MACROS, 1, [define for working do while(0) macros]) | |
22 | fi | |
23 | ]) |
27 | 27 | AS_COMPILER_FLAG(-Wall, |
28 | 28 | ERROR_CFLAGS="-Wall", |
29 | 29 | ERROR_CFLAGS="") |
30 | ||
30 | ||
31 | dnl Warn if declarations after statements are used (C99 extension) | |
32 | AS_COMPILER_FLAG(-Wdeclaration-after-statement, | |
33 | ERROR_CFLAGS="$ERROR_CFLAGS -Wdeclaration-after-statement") | |
34 | ||
35 | dnl Warn if variable length arrays are used (C99 extension) | |
36 | AS_COMPILER_FLAG(-Wvla, | |
37 | ERROR_CFLAGS="$ERROR_CFLAGS -Wvla") | |
38 | ||
31 | 39 | dnl if asked for, add -Werror if supported |
32 | 40 | if test "x$1" != "xno" |
33 | 41 | then |
48 | 56 | for f in 'no%E_EMPTY_DECLARATION' \ |
49 | 57 | 'no%E_STATEMENT_NOT_REACHED' \ |
50 | 58 | 'no%E_ARGUEMENT_MISMATCH' \ |
51 | 'no%E_MACRO_REDEFINED' | |
59 | 'no%E_MACRO_REDEFINED' \ | |
60 | 'no%E_LOOP_NOT_ENTERED_AT_TOP' | |
52 | 61 | do |
53 | 62 | AS_COMPILER_FLAG([-errwarn=%all,$f], [ |
54 | 63 | ERROR_CFLAGS="$ERROR_CFLAGS,$f" |
55 | 64 | ]) |
56 | 65 | done |
57 | 66 | ]) |
67 | else | |
68 | AS_COMPILER_FLAG(-fno-strict-aliasing, | |
69 | ERROR_CFLAGS="$ERROR_CFLAGS -fno-strict-aliasing") | |
58 | 70 | fi |
59 | 71 | fi |
60 | 72 | |
92 | 104 | ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror" |
93 | 105 | |
94 | 106 | dnl add exceptions |
95 | for f in '-Wno-non-virtual-dtor' | |
107 | for f in '-Wno-non-virtual-dtor' '-fno-strict-aliasing' | |
96 | 108 | do |
97 | 109 | AS_CXX_COMPILER_FLAG([$f], ERROR_CXXFLAGS="$ERROR_CXXFLAGS $f") |
98 | 110 | done |
113 | 125 | for f in 'no%E_EMPTY_DECLARATION' \ |
114 | 126 | 'no%E_STATEMENT_NOT_REACHED' \ |
115 | 127 | 'no%E_ARGUEMENT_MISMATCH' \ |
116 | 'no%E_MACRO_REDEFINED' | |
128 | 'no%E_MACRO_REDEFINED' \ | |
129 | 'no%E_LOOP_NOT_ENTERED_AT_TOP' | |
117 | 130 | do |
118 | 131 | AS_CXX_COMPILER_FLAG([-errwarn=%all,$f], [ |
119 | 132 | ERROR_CXXFLAGS="$ERROR_CXXFLAGS,$f" |
242 | 242 | AG_GST_PARSE_SUBSYSTEM_DISABLE($1,TRACE) |
243 | 243 | AG_GST_PARSE_SUBSYSTEM_DISABLE($1,ALLOC_TRACE) |
244 | 244 | AG_GST_PARSE_SUBSYSTEM_DISABLE($1,REGISTRY) |
245 | AG_GST_PARSE_SUBSYSTEM_DISABLE($1,ENUMTYPES) | |
246 | AG_GST_PARSE_SUBSYSTEM_DISABLE($1,INDEX) | |
247 | 245 | AG_GST_PARSE_SUBSYSTEM_DISABLE($1,PLUGIN) |
248 | AG_GST_PARSE_SUBSYSTEM_DISABLE($1,URI) | |
249 | 246 | AG_GST_PARSE_SUBSYSTEM_DISABLE($1,XML) |
250 | 247 | ]) |
251 | 248 | |
261 | 258 | |
262 | 259 | printf "configure: *** Plug-ins without external dependencies that will NOT be built:\n" |
263 | 260 | ( for i in $GST_PLUGINS_ALL; do |
264 | case $GST_PLUGINS_SELECTED in | |
265 | *$i*) | |
261 | case " $GST_PLUGINS_SELECTED " in | |
262 | *\ $i\ *) | |
266 | 263 | ;; |
267 | 264 | *) |
268 | 265 | printf '\t'$i'\n' |
4 | 4 | AC_DEFUN([AG_GST_CHECK_FUNCTION],[ |
5 | 5 | dnl #1: __PRETTY_FUNCTION__ |
6 | 6 | AC_MSG_CHECKING(whether $CC implements __PRETTY_FUNCTION__) |
7 | AC_CACHE_VAL(have_pretty_function,[ | |
7 | AC_CACHE_VAL(gst_cv_have_pretty_function,[ | |
8 | 8 | AC_TRY_LINK([#include <stdio.h>], |
9 | 9 | [printf("%s", __PRETTY_FUNCTION__);], |
10 | have_pretty_function=yes, | |
11 | have_pretty_function=no) | |
10 | gst_cv_have_pretty_function=yes, | |
11 | gst_cv_have_pretty_function=no) | |
12 | 12 | ]) |
13 | AC_MSG_RESULT($have_pretty_function) | |
14 | if test "$have_pretty_function" = yes; then | |
13 | AC_MSG_RESULT($gst_cv_have_pretty_function) | |
14 | if test "$gst_cv_have_pretty_function" = yes; then | |
15 | 15 | AC_DEFINE(HAVE_PRETTY_FUNCTION, 1, |
16 | 16 | [defined if the compiler implements __PRETTY_FUNCTION__]) |
17 | 17 | fi |
18 | 18 | |
19 | 19 | dnl #2: __FUNCTION__ |
20 | 20 | AC_MSG_CHECKING(whether $CC implements __FUNCTION__) |
21 | AC_CACHE_VAL(have_function,[ | |
21 | AC_CACHE_VAL(gst_cv_have_function,[ | |
22 | 22 | AC_TRY_LINK([#include <stdio.h>], |
23 | 23 | [printf("%s", __FUNCTION__);], |
24 | have_function=yes, | |
25 | have_function=no) | |
24 | gst_cv_have_function=yes, | |
25 | gst_cv_have_function=no) | |
26 | 26 | ]) |
27 | AC_MSG_RESULT($have_function) | |
28 | if test "$have_function" = yes; then | |
27 | AC_MSG_RESULT($gst_cv_have_function) | |
28 | if test "$gst_cv_have_function" = yes; then | |
29 | 29 | AC_DEFINE(HAVE_FUNCTION, 1, |
30 | 30 | [defined if the compiler implements __FUNCTION__]) |
31 | 31 | fi |
32 | 32 | |
33 | 33 | dnl #3: __func__ |
34 | 34 | AC_MSG_CHECKING(whether $CC implements __func__) |
35 | AC_CACHE_VAL(have_func,[ | |
35 | AC_CACHE_VAL(gst_cv_have_func,[ | |
36 | 36 | AC_TRY_LINK([#include <stdio.h>], |
37 | 37 | [printf("%s", __func__);], |
38 | have_func=yes, | |
39 | have_func=no) | |
38 | gst_cv_have_func=yes, | |
39 | gst_cv_have_func=no) | |
40 | 40 | ]) |
41 | AC_MSG_RESULT($have_func) | |
42 | if test "$have_func" = yes; then | |
41 | AC_MSG_RESULT($gst_cv_have_func) | |
42 | if test "$gst_cv_have_func" = yes; then | |
43 | 43 | AC_DEFINE(HAVE_FUNC, 1, |
44 | 44 | [defined if the compiler implements __func__]) |
45 | 45 | fi |
46 | 46 | |
47 | 47 | dnl now define FUNCTION to whatever works, and fallback to "" |
48 | if test "$have_pretty_function" = yes; then | |
48 | if test "$gst_cv_have_pretty_function" = yes; then | |
49 | 49 | function=__PRETTY_FUNCTION__ |
50 | 50 | else |
51 | if test "$have_function" = yes; then | |
51 | if test "$gst_cv_have_function" = yes; then | |
52 | 52 | function=__FUNCTION__ |
53 | 53 | else |
54 | if test "$have_func" = yes; then | |
54 | if test "$gst_cv_have_func" = yes; then | |
55 | 55 | function=__func__ |
56 | 56 | else |
57 | 57 | function=\"\" |
0 | dnl call this macro with the minimum required version as an argument | |
1 | dnl this macro sets and AC_SUBSTs XML_CFLAGS and XML_LIBS | |
2 | dnl it also sets LIBXML_PKG, used for the pkg-config file | |
3 | ||
4 | AC_DEFUN([AG_GST_LIBXML2_CHECK], | |
5 | [ | |
6 | dnl Minimum required version of libxml2 | |
7 | dnl default to 2.4.9 if not specified | |
8 | LIBXML2_REQ=ifelse([$1],,2.4.9,[$1]) | |
9 | AC_SUBST(LIBXML2_REQ) | |
10 | ||
11 | dnl check for libxml2 | |
12 | PKG_CHECK_MODULES(XML, libxml-2.0 >= $LIBXML2_REQ, | |
13 | HAVE_LIBXML2=yes, [ | |
14 | AC_MSG_RESULT(no) | |
15 | HAVE_LIBXML2=no | |
16 | ]) | |
17 | if test "x$HAVE_LIBXML2" = "xyes"; then | |
18 | AC_DEFINE(HAVE_LIBXML2, 1, [Define if libxml2 is available]) | |
19 | else | |
20 | AC_MSG_ERROR([Need libxml2 for glib2 builds -- you should be able to do without it -- this needs fixing]) | |
21 | fi | |
22 | dnl this is for the .pc file | |
23 | LIBXML_PKG=', libxml-2.0' | |
24 | AC_SUBST(LIBXML_PKG) | |
25 | AC_SUBST(XML_LIBS) | |
26 | AC_SUBST(XML_CFLAGS) | |
27 | ||
28 | dnl XML_LIBS might pull in -lz without zlib actually being on the system, so | |
29 | dnl try linking with these LIBS and CFLAGS | |
30 | ac_save_CFLAGS=$CFLAGS | |
31 | ac_save_LIBS=$LIBS | |
32 | CFLAGS="$CFLAGS $XML_CFLAGS" | |
33 | LIBS="$LIBS $XML_LIBS" | |
34 | AC_TRY_LINK([ | |
35 | #include <libxml/tree.h> | |
36 | #include <stdio.h> | |
37 | ],[ | |
38 | /* function body */ | |
39 | ], | |
40 | AC_MSG_NOTICE([Test xml2 program linked]), | |
41 | AC_MSG_ERROR([Could not link libxml2 test program. Check if you have the necessary dependencies.]) | |
42 | ) | |
43 | CFLAGS="$ac_save_CFLAGS" | |
44 | LIBS="$ac_save_LIBS" | |
45 | ]) |
0 | AC_DEFUN([AG_GST_BISON_CHECK], | |
1 | [ | |
2 | dnl FIXME: check if AC_PROG_YACC is suitable here | |
3 | dnl FIXME: make precious | |
4 | AC_PATH_PROG(BISON_PATH, bison, no) | |
5 | if test x$BISON_PATH = xno; then | |
6 | AC_MSG_ERROR(Could not find bison) | |
7 | fi | |
8 | ||
9 | dnl check bison version | |
10 | dnl we need version >= 1.875 for the reentrancy support | |
11 | dnl in the parser. | |
12 | dnl First lines observed: 'bison (GNU Bison) 2.3' or 'GNU Bison version 1.28' | |
13 | bison_min_version=1.875 | |
14 | bison_version=`$BISON_PATH --version | head -n 1 | sed 's/^[[^0-9]]*//' | sed 's/[[^0-9]]*$//' | cut -d' ' -f1` | |
15 | AC_MSG_CHECKING([bison version $bison_version >= $bison_min_version]) | |
16 | ||
17 | if perl -we "exit ((v$bison_version ge v$bison_min_version) ? 0 : 1)"; then | |
18 | AC_MSG_RESULT([yes]) | |
19 | else | |
20 | AC_MSG_ERROR([no]) | |
21 | fi | |
22 | ]) | |
23 | ||
24 | AC_DEFUN([AG_GST_FLEX_CHECK], | |
25 | [ | |
26 | dnl we require flex for building the parser | |
27 | AC_PATH_PROG(FLEX_PATH, flex, no) | |
28 | if test x$FLEX_PATH = xno; then | |
29 | AC_MSG_ERROR(Could not find flex) | |
30 | fi | |
31 | ||
32 | dnl check flex version | |
33 | dnl we need version >= 2.5.31 for the reentrancy support | |
34 | dnl in the parser. | |
35 | flex_min_version=2.5.31 | |
36 | flex_version=`$FLEX_PATH --version | head -n 1 | sed 's/^.* //' | sed 's/[[a-zA-Z]]*$//' | cut -d' ' -f1` | |
37 | AC_MSG_CHECKING([flex version $flex_version >= $flex_min_version]) | |
38 | if perl -w <<EOF | |
39 | (\$min_version_major, \$min_version_minor, \$min_version_micro ) = "$flex_min_version" =~ /(\d+)\.(\d+)\.(\d+)/; | |
40 | (\$flex_version_major, \$flex_version_minor, \$flex_version_micro ) = "$flex_version" =~ /(\d+)\.(\d+)\.(\d+)/; | |
41 | exit (((\$flex_version_major > \$min_version_major) || | |
42 | ((\$flex_version_major == \$min_version_major) && | |
43 | (\$flex_version_minor > \$min_version_minor)) || | |
44 | ((\$flex_version_major == \$min_version_major) && | |
45 | (\$flex_version_minor == \$min_version_minor) && | |
46 | (\$flex_version_micro >= \$min_version_micro))) | |
47 | ? 0 : 1); | |
48 | EOF | |
49 | then | |
50 | AC_MSG_RESULT(yes) | |
51 | else | |
52 | AC_MSG_ERROR([no]) | |
53 | fi | |
54 | ]) |
8 | 8 | AC_BEFORE([AS_PATH_PYTHON],[$1])dnl find python first |
9 | 9 | |
10 | 10 | build_plugin_docs=no |
11 | have_pygst=no | |
12 | PKG_CHECK_MODULES(PYDOCSTUFF, [ gst-python-0.10 ], [have_pygst=yes], | |
13 | [have_pygst=no]) | |
14 | 11 | AC_MSG_CHECKING([whether to build plugin documentation]) |
15 | if test x$enable_gtk_doc = xyes -a x$have_pygst = xyes; then | |
12 | if test x$enable_gtk_doc = xyes; then | |
16 | 13 | build_plugin_docs=yes |
17 | 14 | AC_MSG_RESULT([yes]) |
18 | 15 | else |
19 | AC_MSG_RESULT([no (gtk-doc/pygst disabled or not available)]) | |
16 | AC_MSG_RESULT([no (gtk-doc disabled or not available)]) | |
20 | 17 | fi |
21 | 18 | |
22 | 19 | AM_CONDITIONAL(ENABLE_PLUGIN_DOCS, test x$build_plugin_docs = xyes) |
0 | dnl macros for X-related detections | |
1 | dnl AC_SUBST's HAVE_X, X_CFLAGS, X_LIBS | |
2 | AC_DEFUN([AG_GST_CHECK_X], | |
3 | [ | |
4 | AC_PATH_XTRA | |
5 | ac_cflags_save="$CFLAGS" | |
6 | ac_cppflags_save="$CPPFLAGS" | |
7 | CFLAGS="$CFLAGS $X_CFLAGS" | |
8 | CPPFLAGS="$CPPFLAGS $X_CFLAGS" | |
9 | ||
10 | dnl now try to find the HEADER | |
11 | AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no") | |
12 | ||
13 | if test "x$HAVE_X" = "xno" | |
14 | then | |
15 | AC_MSG_NOTICE([cannot find X11 development files]) | |
16 | else | |
17 | dnl this is much more than we want | |
18 | X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS" | |
19 | dnl AC_PATH_XTRA only defines the path needed to find the X libs, | |
20 | dnl it does not add the libs; therefore we add them here | |
21 | X_LIBS="$X_LIBS -lX11" | |
22 | AC_SUBST(X_CFLAGS) | |
23 | AC_SUBST(X_LIBS) | |
24 | fi | |
25 | AC_SUBST(HAVE_X) | |
26 | ||
27 | CFLAGS="$ac_cflags_save" | |
28 | CPPFLAGS="$ac_cppflags_save" | |
29 | ]) | |
30 | ||
31 | dnl *** XVideo *** | |
32 | dnl Look for the PIC library first, Debian requires it. | |
33 | dnl Check debian-devel archives for gory details. | |
34 | dnl 20020110: | |
35 | dnl At the moment XFree86 doesn't distribute shared libXv due | |
36 | dnl to unstable API. On many platforms you CAN NOT link a shared | |
37 | dnl lib to a static non-PIC lib. This is what the xvideo GStreamer | |
38 | dnl plug-in wants to do. So Debian distributes a PIC compiled | |
39 | dnl version of the static lib for plug-ins to link to when it is | |
40 | dnl inappropriate to link the main application to libXv directly. | |
41 | dnl FIXME: add check if this platform can support linking to a | |
42 | dnl non-PIC libXv, if not then don not use Xv. | |
43 | dnl FIXME: perhaps warn user if they have a shared libXv since | |
44 | dnl this is an error until XFree86 starts shipping one | |
45 | AC_DEFUN([AG_GST_CHECK_XV], | |
46 | [ | |
47 | if test x$HAVE_X = xyes; then | |
48 | AC_CHECK_LIB(Xv_pic, XvQueryExtension, | |
49 | HAVE_XVIDEO="yes", HAVE_XVIDEO="no", | |
50 | $X_LIBS -lXext) | |
51 | ||
52 | if test x$HAVE_XVIDEO = xyes; then | |
53 | XVIDEO_LIBS="-lXv_pic -lXext" | |
54 | AC_SUBST(XVIDEO_LIBS) | |
55 | else | |
56 | dnl try again using something else if we didn't find it first | |
57 | if test x$HAVE_XVIDEO = xno; then | |
58 | AC_CHECK_LIB(Xv, XvQueryExtension, | |
59 | HAVE_XVIDEO="yes", HAVE_XVIDEO="no", | |
60 | $X_LIBS -lXext) | |
61 | ||
62 | if test x$HAVE_XVIDEO = xyes; then | |
63 | XVIDEO_LIBS="-lXv -lXext" | |
64 | AC_SUBST(XVIDEO_LIBS) | |
65 | fi | |
66 | fi | |
67 | fi | |
68 | fi | |
69 | ]) |
0 | # iconv.m4 serial AM4 (gettext-0.11.3) | |
1 | dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Bruno Haible. | |
9 | ||
10 | AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], | |
11 | [ | |
12 | dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. | |
13 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | |
14 | AC_REQUIRE([AC_LIB_RPATH]) | |
15 | ||
16 | dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV | |
17 | dnl accordingly. | |
18 | AC_LIB_LINKFLAGS_BODY([iconv]) | |
19 | ]) | |
20 | ||
21 | AC_DEFUN([AM_ICONV_LINK], | |
22 | [ | |
23 | dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and | |
24 | dnl those with the standalone portable GNU libiconv installed). | |
25 | ||
26 | dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV | |
27 | dnl accordingly. | |
28 | AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) | |
29 | ||
30 | dnl Add $INCICONV to CPPFLAGS before performing the following checks, | |
31 | dnl because if the user has installed libiconv and not disabled its use | |
32 | dnl via --without-libiconv-prefix, he wants to use it. The first | |
33 | dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. | |
34 | am_save_CPPFLAGS="$CPPFLAGS" | |
35 | AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) | |
36 | ||
37 | AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ | |
38 | am_cv_func_iconv="no, consider installing GNU libiconv" | |
39 | am_cv_lib_iconv=no | |
40 | AC_TRY_LINK([#include <stdlib.h> | |
41 | #include <iconv.h>], | |
42 | [iconv_t cd = iconv_open("",""); | |
43 | iconv(cd,NULL,NULL,NULL,NULL); | |
44 | iconv_close(cd);], | |
45 | am_cv_func_iconv=yes) | |
46 | if test "$am_cv_func_iconv" != yes; then | |
47 | am_save_LIBS="$LIBS" | |
48 | LIBS="$LIBS $LIBICONV" | |
49 | AC_TRY_LINK([#include <stdlib.h> | |
50 | #include <iconv.h>], | |
51 | [iconv_t cd = iconv_open("",""); | |
52 | iconv(cd,NULL,NULL,NULL,NULL); | |
53 | iconv_close(cd);], | |
54 | am_cv_lib_iconv=yes | |
55 | am_cv_func_iconv=yes) | |
56 | LIBS="$am_save_LIBS" | |
57 | fi | |
58 | ]) | |
59 | if test "$am_cv_func_iconv" = yes; then | |
60 | AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) | |
61 | fi | |
62 | if test "$am_cv_lib_iconv" = yes; then | |
63 | AC_MSG_CHECKING([how to link with libiconv]) | |
64 | AC_MSG_RESULT([$LIBICONV]) | |
65 | else | |
66 | dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV | |
67 | dnl either. | |
68 | CPPFLAGS="$am_save_CPPFLAGS" | |
69 | LIBICONV= | |
70 | LTLIBICONV= | |
71 | fi | |
72 | AC_SUBST(LIBICONV) | |
73 | AC_SUBST(LTLIBICONV) | |
74 | ]) | |
75 | ||
76 | AC_DEFUN([AM_ICONV], | |
77 | [ | |
78 | AM_ICONV_LINK | |
79 | if test "$am_cv_func_iconv" = yes; then | |
80 | AC_MSG_CHECKING([for iconv declaration]) | |
81 | AC_CACHE_VAL(am_cv_proto_iconv, [ | |
82 | AC_TRY_COMPILE([ | |
83 | #include <stdlib.h> | |
84 | #include <iconv.h> | |
85 | extern | |
86 | #ifdef __cplusplus | |
87 | "C" | |
88 | #endif | |
89 | #if defined(__STDC__) || defined(__cplusplus) | |
90 | size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); | |
91 | #else | |
92 | size_t iconv(); | |
93 | #endif | |
94 | ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") | |
95 | am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) | |
96 | am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` | |
97 | AC_MSG_RESULT([$]{ac_t:- | |
98 | }[$]am_cv_proto_iconv) | |
99 | AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, | |
100 | [Define as const if the declaration of iconv() needs const.]) | |
101 | fi | |
102 | ]) |
0 | # intdiv0.m4 serial 1 (gettext-0.11.3) | |
1 | dnl Copyright (C) 2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Bruno Haible. | |
9 | ||
10 | AC_DEFUN([gt_INTDIV0], | |
11 | [ | |
12 | AC_REQUIRE([AC_PROG_CC])dnl | |
13 | AC_REQUIRE([AC_CANONICAL_HOST])dnl | |
14 | ||
15 | AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], | |
16 | gt_cv_int_divbyzero_sigfpe, | |
17 | [ | |
18 | AC_TRY_RUN([ | |
19 | #include <stdlib.h> | |
20 | #include <signal.h> | |
21 | ||
22 | static void | |
23 | #ifdef __cplusplus | |
24 | sigfpe_handler (int sig) | |
25 | #else | |
26 | sigfpe_handler (sig) int sig; | |
27 | #endif | |
28 | { | |
29 | /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ | |
30 | exit (sig != SIGFPE); | |
31 | } | |
32 | ||
33 | int x = 1; | |
34 | int y = 0; | |
35 | int z; | |
36 | int nan; | |
37 | ||
38 | int main () | |
39 | { | |
40 | signal (SIGFPE, sigfpe_handler); | |
41 | /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ | |
42 | #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) | |
43 | signal (SIGTRAP, sigfpe_handler); | |
44 | #endif | |
45 | /* Linux/SPARC yields signal SIGILL. */ | |
46 | #if defined (__sparc__) && defined (__linux__) | |
47 | signal (SIGILL, sigfpe_handler); | |
48 | #endif | |
49 | ||
50 | z = x / y; | |
51 | nan = y / y; | |
52 | exit (1); | |
53 | } | |
54 | ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, | |
55 | [ | |
56 | # Guess based on the CPU. | |
57 | case "$host_cpu" in | |
58 | alpha* | i[34567]86 | m68k | s390*) | |
59 | gt_cv_int_divbyzero_sigfpe="guessing yes";; | |
60 | *) | |
61 | gt_cv_int_divbyzero_sigfpe="guessing no";; | |
62 | esac | |
63 | ]) | |
64 | ]) | |
65 | case "$gt_cv_int_divbyzero_sigfpe" in | |
66 | *yes) value=1;; | |
67 | *) value=0;; | |
68 | esac | |
69 | AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, | |
70 | [Define if integer division by zero raises signal SIGFPE.]) | |
71 | ]) |
0 | # inttypes-pri.m4 serial 1 (gettext-0.11.4) | |
1 | dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Bruno Haible. | |
9 | ||
10 | # Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI* | |
11 | # macros to non-string values. This is the case on AIX 4.3.3. | |
12 | ||
13 | AC_DEFUN([gt_INTTYPES_PRI], | |
14 | [ | |
15 | AC_REQUIRE([gt_HEADER_INTTYPES_H]) | |
16 | if test $gt_cv_header_inttypes_h = yes; then | |
17 | AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], | |
18 | gt_cv_inttypes_pri_broken, | |
19 | [ | |
20 | AC_TRY_COMPILE([#include <inttypes.h> | |
21 | #ifdef PRId32 | |
22 | char *p = PRId32; | |
23 | #endif | |
24 | ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) | |
25 | ]) | |
26 | fi | |
27 | if test "$gt_cv_inttypes_pri_broken" = yes; then | |
28 | AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, | |
29 | [Define if <inttypes.h> exists and defines unusable PRI* macros.]) | |
30 | fi | |
31 | ]) |
0 | # inttypes.m4 serial 1 (gettext-0.11.4) | |
1 | dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Paul Eggert. | |
9 | ||
10 | # Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with | |
11 | # <sys/types.h>. | |
12 | ||
13 | AC_DEFUN([gt_HEADER_INTTYPES_H], | |
14 | [ | |
15 | AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, | |
16 | [ | |
17 | AC_TRY_COMPILE( | |
18 | [#include <sys/types.h> | |
19 | #include <inttypes.h>], | |
20 | [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) | |
21 | ]) | |
22 | if test $gt_cv_header_inttypes_h = yes; then | |
23 | AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, | |
24 | [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.]) | |
25 | fi | |
26 | ]) |
0 | # inttypes_h.m4 serial 4 (gettext-0.11.4) | |
1 | dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Paul Eggert. | |
9 | ||
10 | # Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists, | |
11 | # doesn't clash with <sys/types.h>, and declares uintmax_t. | |
12 | ||
13 | AC_DEFUN([jm_AC_HEADER_INTTYPES_H], | |
14 | [ | |
15 | AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h, | |
16 | [AC_TRY_COMPILE( | |
17 | [#include <sys/types.h> | |
18 | #include <inttypes.h>], | |
19 | [uintmax_t i = (uintmax_t) -1;], | |
20 | jm_ac_cv_header_inttypes_h=yes, | |
21 | jm_ac_cv_header_inttypes_h=no)]) | |
22 | if test $jm_ac_cv_header_inttypes_h = yes; then | |
23 | AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, | |
24 | [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, | |
25 | and declares uintmax_t. ]) | |
26 | fi | |
27 | ]) |
0 | # isc-posix.m4 serial 2 (gettext-0.11.2) | |
1 | dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. | |
9 | ||
10 | # This test replaces the one in autoconf. | |
11 | # Currently this macro should have the same name as the autoconf macro | |
12 | # because gettext's gettext.m4 (distributed in the automake package) | |
13 | # still uses it. Otherwise, the use in gettext.m4 makes autoheader | |
14 | # give these diagnostics: | |
15 | # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX | |
16 | # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX | |
17 | ||
18 | undefine([AC_ISC_POSIX]) | |
19 | ||
20 | AC_DEFUN([AC_ISC_POSIX], | |
21 | [ | |
22 | dnl This test replaces the obsolescent AC_ISC_POSIX kludge. | |
23 | AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) | |
24 | ] | |
25 | ) |
0 | # lcmessage.m4 serial 3 (gettext-0.11.3) | |
1 | dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | dnl | |
8 | dnl This file can can be used in projects which are not available under | |
9 | dnl the GNU General Public License or the GNU Library General Public | |
10 | dnl License but which still want to provide support for the GNU gettext | |
11 | dnl functionality. | |
12 | dnl Please note that the actual code of the GNU gettext library is covered | |
13 | dnl by the GNU Library General Public License, and the rest of the GNU | |
14 | dnl gettext package package is covered by the GNU General Public License. | |
15 | dnl They are *not* in the public domain. | |
16 | ||
17 | dnl Authors: | |
18 | dnl Ulrich Drepper <drepper@cygnus.com>, 1995. | |
19 | ||
20 | # Check whether LC_MESSAGES is available in <locale.h>. | |
21 | ||
22 | AC_DEFUN([AM_LC_MESSAGES], | |
23 | [ | |
24 | AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, | |
25 | [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], | |
26 | am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) | |
27 | if test $am_cv_val_LC_MESSAGES = yes; then | |
28 | AC_DEFINE(HAVE_LC_MESSAGES, 1, | |
29 | [Define if your <locale.h> file defines LC_MESSAGES.]) | |
30 | fi | |
31 | ]) |
0 | # lib-ld.m4 serial 1 (gettext-0.11) | |
1 | dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl Subroutines of libtool.m4, | |
9 | dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision | |
10 | dnl with libtool.m4. | |
11 | ||
12 | dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. | |
13 | AC_DEFUN([AC_LIB_PROG_LD_GNU], | |
14 | [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, | |
15 | [# I'd rather use --version here, but apparently some GNU ld's only accept -v. | |
16 | if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then | |
17 | acl_cv_prog_gnu_ld=yes | |
18 | else | |
19 | acl_cv_prog_gnu_ld=no | |
20 | fi]) | |
21 | with_gnu_ld=$acl_cv_prog_gnu_ld | |
22 | ]) | |
23 | ||
24 | dnl From libtool-1.4. Sets the variable LD. | |
25 | AC_DEFUN([AC_LIB_PROG_LD], | |
26 | [AC_ARG_WITH(gnu-ld, | |
27 | [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], | |
28 | test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) | |
29 | AC_REQUIRE([AC_PROG_CC])dnl | |
30 | AC_REQUIRE([AC_CANONICAL_HOST])dnl | |
31 | ac_prog=ld | |
32 | if test "$GCC" = yes; then | |
33 | # Check if gcc -print-prog-name=ld gives a path. | |
34 | AC_MSG_CHECKING([for ld used by GCC]) | |
35 | case $host in | |
36 | *-*-mingw*) | |
37 | # gcc leaves a trailing carriage return which upsets mingw | |
38 | ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; | |
39 | *) | |
40 | ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; | |
41 | esac | |
42 | case $ac_prog in | |
43 | # Accept absolute paths. | |
44 | [[\\/]* | [A-Za-z]:[\\/]*)] | |
45 | [re_direlt='/[^/][^/]*/\.\./'] | |
46 | # Canonicalize the path of ld | |
47 | ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` | |
48 | while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do | |
49 | ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` | |
50 | done | |
51 | test -z "$LD" && LD="$ac_prog" | |
52 | ;; | |
53 | "") | |
54 | # If it fails, then pretend we aren't using GCC. | |
55 | ac_prog=ld | |
56 | ;; | |
57 | *) | |
58 | # If it is relative, then search for the first ld in PATH. | |
59 | with_gnu_ld=unknown | |
60 | ;; | |
61 | esac | |
62 | elif test "$with_gnu_ld" = yes; then | |
63 | AC_MSG_CHECKING([for GNU ld]) | |
64 | else | |
65 | AC_MSG_CHECKING([for non-GNU ld]) | |
66 | fi | |
67 | AC_CACHE_VAL(acl_cv_path_LD, | |
68 | [if test -z "$LD"; then | |
69 | IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" | |
70 | for ac_dir in $PATH; do | |
71 | test -z "$ac_dir" && ac_dir=. | |
72 | if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then | |
73 | acl_cv_path_LD="$ac_dir/$ac_prog" | |
74 | # Check to see if the program is GNU ld. I'd rather use --version, | |
75 | # but apparently some GNU ld's only accept -v. | |
76 | # Break only if it was the GNU/non-GNU ld that we prefer. | |
77 | if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then | |
78 | test "$with_gnu_ld" != no && break | |
79 | else | |
80 | test "$with_gnu_ld" != yes && break | |
81 | fi | |
82 | fi | |
83 | done | |
84 | IFS="$ac_save_ifs" | |
85 | else | |
86 | acl_cv_path_LD="$LD" # Let the user override the test with a path. | |
87 | fi]) | |
88 | LD="$acl_cv_path_LD" | |
89 | if test -n "$LD"; then | |
90 | AC_MSG_RESULT($LD) | |
91 | else | |
92 | AC_MSG_RESULT(no) | |
93 | fi | |
94 | test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) | |
95 | AC_LIB_PROG_LD_GNU | |
96 | ]) |
0 | # lib-link.m4 serial 3 (gettext-0.11.3) | |
1 | dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Bruno Haible. | |
9 | ||
10 | dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and | |
11 | dnl the libraries corresponding to explicit and implicit dependencies. | |
12 | dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and | |
13 | dnl augments the CPPFLAGS variable. | |
14 | AC_DEFUN([AC_LIB_LINKFLAGS], | |
15 | [ | |
16 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | |
17 | AC_REQUIRE([AC_LIB_RPATH]) | |
18 | define([Name],[translit([$1],[./-], [___])]) | |
19 | define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], | |
20 | [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) | |
21 | AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ | |
22 | AC_LIB_LINKFLAGS_BODY([$1], [$2]) | |
23 | ac_cv_lib[]Name[]_libs="$LIB[]NAME" | |
24 | ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" | |
25 | ac_cv_lib[]Name[]_cppflags="$INC[]NAME" | |
26 | ]) | |
27 | LIB[]NAME="$ac_cv_lib[]Name[]_libs" | |
28 | LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" | |
29 | INC[]NAME="$ac_cv_lib[]Name[]_cppflags" | |
30 | AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) | |
31 | AC_SUBST([LIB]NAME) | |
32 | AC_SUBST([LTLIB]NAME) | |
33 | dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the | |
34 | dnl results of this search when this library appears as a dependency. | |
35 | HAVE_LIB[]NAME=yes | |
36 | undefine([Name]) | |
37 | undefine([NAME]) | |
38 | ]) | |
39 | ||
40 | dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) | |
41 | dnl searches for libname and the libraries corresponding to explicit and | |
42 | dnl implicit dependencies, together with the specified include files and | |
43 | dnl the ability to compile and link the specified testcode. If found, it | |
44 | dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and | |
45 | dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and | |
46 | dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs | |
47 | dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. | |
48 | AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], | |
49 | [ | |
50 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | |
51 | AC_REQUIRE([AC_LIB_RPATH]) | |
52 | define([Name],[translit([$1],[./-], [___])]) | |
53 | define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], | |
54 | [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) | |
55 | ||
56 | dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME | |
57 | dnl accordingly. | |
58 | AC_LIB_LINKFLAGS_BODY([$1], [$2]) | |
59 | ||
60 | dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, | |
61 | dnl because if the user has installed lib[]Name and not disabled its use | |
62 | dnl via --without-lib[]Name-prefix, he wants to use it. | |
63 | ac_save_CPPFLAGS="$CPPFLAGS" | |
64 | AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) | |
65 | ||
66 | AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ | |
67 | ac_save_LIBS="$LIBS" | |
68 | LIBS="$LIBS $LIB[]NAME" | |
69 | AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) | |
70 | LIBS="$ac_save_LIBS" | |
71 | ]) | |
72 | if test "$ac_cv_lib[]Name" = yes; then | |
73 | HAVE_LIB[]NAME=yes | |
74 | AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) | |
75 | AC_MSG_CHECKING([how to link with lib[]$1]) | |
76 | AC_MSG_RESULT([$LIB[]NAME]) | |
77 | else | |
78 | HAVE_LIB[]NAME=no | |
79 | dnl If $LIB[]NAME didn't lead to a usable library, we don't need | |
80 | dnl $INC[]NAME either. | |
81 | CPPFLAGS="$ac_save_CPPFLAGS" | |
82 | LIB[]NAME= | |
83 | LTLIB[]NAME= | |
84 | fi | |
85 | AC_SUBST([HAVE_LIB]NAME) | |
86 | AC_SUBST([LIB]NAME) | |
87 | AC_SUBST([LTLIB]NAME) | |
88 | undefine([Name]) | |
89 | undefine([NAME]) | |
90 | ]) | |
91 | ||
92 | dnl Determine the platform dependent parameters needed to use rpath: | |
93 | dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, | |
94 | dnl hardcode_direct, hardcode_minus_L, | |
95 | dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec. | |
96 | AC_DEFUN([AC_LIB_RPATH], | |
97 | [ | |
98 | AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS | |
99 | AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld | |
100 | AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host | |
101 | AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir | |
102 | AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ | |
103 | CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ | |
104 | ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh | |
105 | . ./conftest.sh | |
106 | rm -f ./conftest.sh | |
107 | acl_cv_rpath=done | |
108 | ]) | |
109 | wl="$acl_cv_wl" | |
110 | libext="$acl_cv_libext" | |
111 | shlibext="$acl_cv_shlibext" | |
112 | hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" | |
113 | hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" | |
114 | hardcode_direct="$acl_cv_hardcode_direct" | |
115 | hardcode_minus_L="$acl_cv_hardcode_minus_L" | |
116 | sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec" | |
117 | sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec" | |
118 | dnl Determine whether the user wants rpath handling at all. | |
119 | AC_ARG_ENABLE(rpath, | |
120 | [ --disable-rpath do not hardcode runtime library paths], | |
121 | :, enable_rpath=yes) | |
122 | ]) | |
123 | ||
124 | dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and | |
125 | dnl the libraries corresponding to explicit and implicit dependencies. | |
126 | dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. | |
127 | AC_DEFUN([AC_LIB_LINKFLAGS_BODY], | |
128 | [ | |
129 | define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], | |
130 | [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) | |
131 | dnl By default, look in $includedir and $libdir. | |
132 | use_additional=yes | |
133 | AC_LIB_WITH_FINAL_PREFIX([ | |
134 | eval additional_includedir=\"$includedir\" | |
135 | eval additional_libdir=\"$libdir\" | |
136 | ]) | |
137 | AC_ARG_WITH([lib$1-prefix], | |
138 | [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib | |
139 | --without-lib$1-prefix don't search for lib$1 in includedir and libdir], | |
140 | [ | |
141 | if test "X$withval" = "Xno"; then | |
142 | use_additional=no | |
143 | else | |
144 | if test "X$withval" = "X"; then | |
145 | AC_LIB_WITH_FINAL_PREFIX([ | |
146 | eval additional_includedir=\"$includedir\" | |
147 | eval additional_libdir=\"$libdir\" | |
148 | ]) | |
149 | else | |
150 | additional_includedir="$withval/include" | |
151 | additional_libdir="$withval/lib" | |
152 | fi | |
153 | fi | |
154 | ]) | |
155 | dnl Search the library and its dependencies in $additional_libdir and | |
156 | dnl $LDFLAGS. Using breadth-first-seach. | |
157 | LIB[]NAME= | |
158 | LTLIB[]NAME= | |
159 | INC[]NAME= | |
160 | rpathdirs= | |
161 | ltrpathdirs= | |
162 | names_already_handled= | |
163 | names_next_round='$1 $2' | |
164 | while test -n "$names_next_round"; do | |
165 | names_this_round="$names_next_round" | |
166 | names_next_round= | |
167 | for name in $names_this_round; do | |
168 | already_handled= | |
169 | for n in $names_already_handled; do | |
170 | if test "$n" = "$name"; then | |
171 | already_handled=yes | |
172 | break | |
173 | fi | |
174 | done | |
175 | if test -z "$already_handled"; then | |
176 | names_already_handled="$names_already_handled $name" | |
177 | dnl See if it was already located by an earlier AC_LIB_LINKFLAGS | |
178 | dnl or AC_LIB_HAVE_LINKFLAGS call. | |
179 | uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` | |
180 | eval value=\"\$HAVE_LIB$uppername\" | |
181 | if test -n "$value"; then | |
182 | if test "$value" = yes; then | |
183 | eval value=\"\$LIB$uppername\" | |
184 | test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" | |
185 | eval value=\"\$LTLIB$uppername\" | |
186 | test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" | |
187 | else | |
188 | dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined | |
189 | dnl that this library doesn't exist. So just drop it. | |
190 | : | |
191 | fi | |
192 | else | |
193 | dnl Search the library lib$name in $additional_libdir and $LDFLAGS | |
194 | dnl and the already constructed $LIBNAME/$LTLIBNAME. | |
195 | found_dir= | |
196 | found_la= | |
197 | found_so= | |
198 | found_a= | |
199 | if test $use_additional = yes; then | |
200 | if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then | |
201 | found_dir="$additional_libdir" | |
202 | found_so="$additional_libdir/lib$name.$shlibext" | |
203 | if test -f "$additional_libdir/lib$name.la"; then | |
204 | found_la="$additional_libdir/lib$name.la" | |
205 | fi | |
206 | else | |
207 | if test -f "$additional_libdir/lib$name.$libext"; then | |
208 | found_dir="$additional_libdir" | |
209 | found_a="$additional_libdir/lib$name.$libext" | |
210 | if test -f "$additional_libdir/lib$name.la"; then | |
211 | found_la="$additional_libdir/lib$name.la" | |
212 | fi | |
213 | fi | |
214 | fi | |
215 | fi | |
216 | if test "X$found_dir" = "X"; then | |
217 | for x in $LDFLAGS $LTLIB[]NAME; do | |
218 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | |
219 | case "$x" in | |
220 | -L*) | |
221 | dir=`echo "X$x" | sed -e 's/^X-L//'` | |
222 | if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then | |
223 | found_dir="$dir" | |
224 | found_so="$dir/lib$name.$shlibext" | |
225 | if test -f "$dir/lib$name.la"; then | |
226 | found_la="$dir/lib$name.la" | |
227 | fi | |
228 | else | |
229 | if test -f "$dir/lib$name.$libext"; then | |
230 | found_dir="$dir" | |
231 | found_a="$dir/lib$name.$libext" | |
232 | if test -f "$dir/lib$name.la"; then | |
233 | found_la="$dir/lib$name.la" | |
234 | fi | |
235 | fi | |
236 | fi | |
237 | ;; | |
238 | esac | |
239 | if test "X$found_dir" != "X"; then | |
240 | break | |
241 | fi | |
242 | done | |
243 | fi | |
244 | if test "X$found_dir" != "X"; then | |
245 | dnl Found the library. | |
246 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" | |
247 | if test "X$found_so" != "X"; then | |
248 | dnl Linking with a shared library. We attempt to hardcode its | |
249 | dnl directory into the executable's runpath, unless it's the | |
250 | dnl standard /usr/lib. | |
251 | if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then | |
252 | dnl No hardcoding is needed. | |
253 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" | |
254 | else | |
255 | dnl Use an explicit option to hardcode DIR into the resulting | |
256 | dnl binary. | |
257 | dnl Potentially add DIR to ltrpathdirs. | |
258 | dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. | |
259 | haveit= | |
260 | for x in $ltrpathdirs; do | |
261 | if test "X$x" = "X$found_dir"; then | |
262 | haveit=yes | |
263 | break | |
264 | fi | |
265 | done | |
266 | if test -z "$haveit"; then | |
267 | ltrpathdirs="$ltrpathdirs $found_dir" | |
268 | fi | |
269 | dnl The hardcoding into $LIBNAME is system dependent. | |
270 | if test "$hardcode_direct" = yes; then | |
271 | dnl Using DIR/libNAME.so during linking hardcodes DIR into the | |
272 | dnl resulting binary. | |
273 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" | |
274 | else | |
275 | if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then | |
276 | dnl Use an explicit option to hardcode DIR into the resulting | |
277 | dnl binary. | |
278 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" | |
279 | dnl Potentially add DIR to rpathdirs. | |
280 | dnl The rpathdirs will be appended to $LIBNAME at the end. | |
281 | haveit= | |
282 | for x in $rpathdirs; do | |
283 | if test "X$x" = "X$found_dir"; then | |
284 | haveit=yes | |
285 | break | |
286 | fi | |
287 | done | |
288 | if test -z "$haveit"; then | |
289 | rpathdirs="$rpathdirs $found_dir" | |
290 | fi | |
291 | else | |
292 | dnl Rely on "-L$found_dir". | |
293 | dnl But don't add it if it's already contained in the LDFLAGS | |
294 | dnl or the already constructed $LIBNAME | |
295 | haveit= | |
296 | for x in $LDFLAGS $LIB[]NAME; do | |
297 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | |
298 | if test "X$x" = "X-L$found_dir"; then | |
299 | haveit=yes | |
300 | break | |
301 | fi | |
302 | done | |
303 | if test -z "$haveit"; then | |
304 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" | |
305 | fi | |
306 | if test "$hardcode_minus_L" != no; then | |
307 | dnl FIXME: Not sure whether we should use | |
308 | dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" | |
309 | dnl here. | |
310 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" | |
311 | else | |
312 | dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH | |
313 | dnl here, because this doesn't fit in flags passed to the | |
314 | dnl compiler. So give up. No hardcoding. This affects only | |
315 | dnl very old systems. | |
316 | dnl FIXME: Not sure whether we should use | |
317 | dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" | |
318 | dnl here. | |
319 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" | |
320 | fi | |
321 | fi | |
322 | fi | |
323 | fi | |
324 | else | |
325 | if test "X$found_a" != "X"; then | |
326 | dnl Linking with a static library. | |
327 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" | |
328 | else | |
329 | dnl We shouldn't come here, but anyway it's good to have a | |
330 | dnl fallback. | |
331 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" | |
332 | fi | |
333 | fi | |
334 | dnl Assume the include files are nearby. | |
335 | additional_includedir= | |
336 | case "$found_dir" in | |
337 | */lib | */lib/) | |
338 | basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` | |
339 | additional_includedir="$basedir/include" | |
340 | ;; | |
341 | esac | |
342 | if test "X$additional_includedir" != "X"; then | |
343 | dnl Potentially add $additional_includedir to $INCNAME. | |
344 | dnl But don't add it | |
345 | dnl 1. if it's the standard /usr/include, | |
346 | dnl 2. if it's /usr/local/include and we are using GCC on Linux, | |
347 | dnl 3. if it's already present in $CPPFLAGS or the already | |
348 | dnl constructed $INCNAME, | |
349 | dnl 4. if it doesn't exist as a directory. | |
350 | if test "X$additional_includedir" != "X/usr/include"; then | |
351 | haveit= | |
352 | if test "X$additional_includedir" = "X/usr/local/include"; then | |
353 | if test -n "$GCC"; then | |
354 | case $host_os in | |
355 | linux*) haveit=yes;; | |
356 | esac | |
357 | fi | |
358 | fi | |
359 | if test -z "$haveit"; then | |
360 | for x in $CPPFLAGS $INC[]NAME; do | |
361 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | |
362 | if test "X$x" = "X-I$additional_includedir"; then | |
363 | haveit=yes | |
364 | break | |
365 | fi | |
366 | done | |
367 | if test -z "$haveit"; then | |
368 | if test -d "$additional_includedir"; then | |
369 | dnl Really add $additional_includedir to $INCNAME. | |
370 | INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" | |
371 | fi | |
372 | fi | |
373 | fi | |
374 | fi | |
375 | fi | |
376 | dnl Look for dependencies. | |
377 | if test -n "$found_la"; then | |
378 | dnl Read the .la file. It defines the variables | |
379 | dnl dlname, library_names, old_library, dependency_libs, current, | |
380 | dnl age, revision, installed, dlopen, dlpreopen, libdir. | |
381 | save_libdir="$libdir" | |
382 | case "$found_la" in | |
383 | */* | *\\*) . "$found_la" ;; | |
384 | *) . "./$found_la" ;; | |
385 | esac | |
386 | libdir="$save_libdir" | |
387 | dnl We use only dependency_libs. | |
388 | for dep in $dependency_libs; do | |
389 | case "$dep" in | |
390 | -L*) | |
391 | additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` | |
392 | dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. | |
393 | dnl But don't add it | |
394 | dnl 1. if it's the standard /usr/lib, | |
395 | dnl 2. if it's /usr/local/lib and we are using GCC on Linux, | |
396 | dnl 3. if it's already present in $LDFLAGS or the already | |
397 | dnl constructed $LIBNAME, | |
398 | dnl 4. if it doesn't exist as a directory. | |
399 | if test "X$additional_libdir" != "X/usr/lib"; then | |
400 | haveit= | |
401 | if test "X$additional_libdir" = "X/usr/local/lib"; then | |
402 | if test -n "$GCC"; then | |
403 | case $host_os in | |
404 | linux*) haveit=yes;; | |
405 | esac | |
406 | fi | |
407 | fi | |
408 | if test -z "$haveit"; then | |
409 | haveit= | |
410 | for x in $LDFLAGS $LIB[]NAME; do | |
411 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | |
412 | if test "X$x" = "X-L$additional_libdir"; then | |
413 | haveit=yes | |
414 | break | |
415 | fi | |
416 | done | |
417 | if test -z "$haveit"; then | |
418 | if test -d "$additional_libdir"; then | |
419 | dnl Really add $additional_libdir to $LIBNAME. | |
420 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" | |
421 | fi | |
422 | fi | |
423 | haveit= | |
424 | for x in $LDFLAGS $LTLIB[]NAME; do | |
425 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | |
426 | if test "X$x" = "X-L$additional_libdir"; then | |
427 | haveit=yes | |
428 | break | |
429 | fi | |
430 | done | |
431 | if test -z "$haveit"; then | |
432 | if test -d "$additional_libdir"; then | |
433 | dnl Really add $additional_libdir to $LTLIBNAME. | |
434 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" | |
435 | fi | |
436 | fi | |
437 | fi | |
438 | fi | |
439 | ;; | |
440 | -R*) | |
441 | dir=`echo "X$dep" | sed -e 's/^X-R//'` | |
442 | if test "$enable_rpath" != no; then | |
443 | dnl Potentially add DIR to rpathdirs. | |
444 | dnl The rpathdirs will be appended to $LIBNAME at the end. | |
445 | haveit= | |
446 | for x in $rpathdirs; do | |
447 | if test "X$x" = "X$dir"; then | |
448 | haveit=yes | |
449 | break | |
450 | fi | |
451 | done | |
452 | if test -z "$haveit"; then | |
453 | rpathdirs="$rpathdirs $dir" | |
454 | fi | |
455 | dnl Potentially add DIR to ltrpathdirs. | |
456 | dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. | |
457 | haveit= | |
458 | for x in $ltrpathdirs; do | |
459 | if test "X$x" = "X$dir"; then | |
460 | haveit=yes | |
461 | break | |
462 | fi | |
463 | done | |
464 | if test -z "$haveit"; then | |
465 | ltrpathdirs="$ltrpathdirs $dir" | |
466 | fi | |
467 | fi | |
468 | ;; | |
469 | -l*) | |
470 | dnl Handle this in the next round. | |
471 | names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` | |
472 | ;; | |
473 | *.la) | |
474 | dnl Handle this in the next round. Throw away the .la's | |
475 | dnl directory; it is already contained in a preceding -L | |
476 | dnl option. | |
477 | names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` | |
478 | ;; | |
479 | *) | |
480 | dnl Most likely an immediate library name. | |
481 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" | |
482 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" | |
483 | ;; | |
484 | esac | |
485 | done | |
486 | fi | |
487 | else | |
488 | dnl Didn't find the library; assume it is in the system directories | |
489 | dnl known to the linker and runtime loader. (All the system | |
490 | dnl directories known to the linker should also be known to the | |
491 | dnl runtime loader, otherwise the system is severely misconfigured.) | |
492 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" | |
493 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" | |
494 | fi | |
495 | fi | |
496 | fi | |
497 | done | |
498 | done | |
499 | if test "X$rpathdirs" != "X"; then | |
500 | if test -n "$hardcode_libdir_separator"; then | |
501 | dnl Weird platform: only the last -rpath option counts, the user must | |
502 | dnl pass all path elements in one option. We can arrange that for a | |
503 | dnl single library, but not when more than one $LIBNAMEs are used. | |
504 | alldirs= | |
505 | for found_dir in $rpathdirs; do | |
506 | alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" | |
507 | done | |
508 | dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. | |
509 | acl_save_libdir="$libdir" | |
510 | libdir="$alldirs" | |
511 | eval flag=\"$hardcode_libdir_flag_spec\" | |
512 | libdir="$acl_save_libdir" | |
513 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" | |
514 | else | |
515 | dnl The -rpath options are cumulative. | |
516 | for found_dir in $rpathdirs; do | |
517 | acl_save_libdir="$libdir" | |
518 | libdir="$found_dir" | |
519 | eval flag=\"$hardcode_libdir_flag_spec\" | |
520 | libdir="$acl_save_libdir" | |
521 | LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" | |
522 | done | |
523 | fi | |
524 | fi | |
525 | if test "X$ltrpathdirs" != "X"; then | |
526 | dnl When using libtool, the option that works for both libraries and | |
527 | dnl executables is -R. The -R options are cumulative. | |
528 | for found_dir in $ltrpathdirs; do | |
529 | LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" | |
530 | done | |
531 | fi | |
532 | ]) | |
533 | ||
534 | dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, | |
535 | dnl unless already present in VAR. | |
536 | dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes | |
537 | dnl contains two or three consecutive elements that belong together. | |
538 | AC_DEFUN([AC_LIB_APPENDTOVAR], | |
539 | [ | |
540 | for element in [$2]; do | |
541 | haveit= | |
542 | for x in $[$1]; do | |
543 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | |
544 | if test "X$x" = "X$element"; then | |
545 | haveit=yes | |
546 | break | |
547 | fi | |
548 | done | |
549 | if test -z "$haveit"; then | |
550 | [$1]="${[$1]}${[$1]:+ }$element" | |
551 | fi | |
552 | done | |
553 | ]) |
0 | # lib-prefix.m4 serial 1 (gettext-0.11) | |
1 | dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Bruno Haible. | |
9 | ||
10 | dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed | |
11 | dnl to access previously installed libraries. The basic assumption is that | |
12 | dnl a user will want packages to use other packages he previously installed | |
13 | dnl with the same --prefix option. | |
14 | dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate | |
15 | dnl libraries, but is otherwise very convenient. | |
16 | AC_DEFUN([AC_LIB_PREFIX], | |
17 | [ | |
18 | AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) | |
19 | AC_REQUIRE([AC_PROG_CC]) | |
20 | AC_REQUIRE([AC_CANONICAL_HOST]) | |
21 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | |
22 | dnl By default, look in $includedir and $libdir. | |
23 | use_additional=yes | |
24 | AC_LIB_WITH_FINAL_PREFIX([ | |
25 | eval additional_includedir=\"$includedir\" | |
26 | eval additional_libdir=\"$libdir\" | |
27 | ]) | |
28 | AC_ARG_WITH([lib-prefix], | |
29 | [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib | |
30 | --without-lib-prefix don't search for libraries in includedir and libdir], | |
31 | [ | |
32 | if test "X$withval" = "Xno"; then | |
33 | use_additional=no | |
34 | else | |
35 | if test "X$withval" = "X"; then | |
36 | AC_LIB_WITH_FINAL_PREFIX([ | |
37 | eval additional_includedir=\"$includedir\" | |
38 | eval additional_libdir=\"$libdir\" | |
39 | ]) | |
40 | else | |
41 | additional_includedir="$withval/include" | |
42 | additional_libdir="$withval/lib" | |
43 | fi | |
44 | fi | |
45 | ]) | |
46 | if test $use_additional = yes; then | |
47 | dnl Potentially add $additional_includedir to $CPPFLAGS. | |
48 | dnl But don't add it | |
49 | dnl 1. if it's the standard /usr/include, | |
50 | dnl 2. if it's already present in $CPPFLAGS, | |
51 | dnl 3. if it's /usr/local/include and we are using GCC on Linux, | |
52 | dnl 4. if it doesn't exist as a directory. | |
53 | if test "X$additional_includedir" != "X/usr/include"; then | |
54 | haveit= | |
55 | for x in $CPPFLAGS; do | |
56 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | |
57 | if test "X$x" = "X-I$additional_includedir"; then | |
58 | haveit=yes | |
59 | break | |
60 | fi | |
61 | done | |
62 | if test -z "$haveit"; then | |
63 | if test "X$additional_includedir" = "X/usr/local/include"; then | |
64 | if test -n "$GCC"; then | |
65 | case $host_os in | |
66 | linux*) haveit=yes;; | |
67 | esac | |
68 | fi | |
69 | fi | |
70 | if test -z "$haveit"; then | |
71 | if test -d "$additional_includedir"; then | |
72 | dnl Really add $additional_includedir to $CPPFLAGS. | |
73 | CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" | |
74 | fi | |
75 | fi | |
76 | fi | |
77 | fi | |
78 | dnl Potentially add $additional_libdir to $LDFLAGS. | |
79 | dnl But don't add it | |
80 | dnl 1. if it's the standard /usr/lib, | |
81 | dnl 2. if it's already present in $LDFLAGS, | |
82 | dnl 3. if it's /usr/local/lib and we are using GCC on Linux, | |
83 | dnl 4. if it doesn't exist as a directory. | |
84 | if test "X$additional_libdir" != "X/usr/lib"; then | |
85 | haveit= | |
86 | for x in $LDFLAGS; do | |
87 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | |
88 | if test "X$x" = "X-L$additional_libdir"; then | |
89 | haveit=yes | |
90 | break | |
91 | fi | |
92 | done | |
93 | if test -z "$haveit"; then | |
94 | if test "X$additional_libdir" = "X/usr/local/lib"; then | |
95 | if test -n "$GCC"; then | |
96 | case $host_os in | |
97 | linux*) haveit=yes;; | |
98 | esac | |
99 | fi | |
100 | fi | |
101 | if test -z "$haveit"; then | |
102 | if test -d "$additional_libdir"; then | |
103 | dnl Really add $additional_libdir to $LDFLAGS. | |
104 | LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" | |
105 | fi | |
106 | fi | |
107 | fi | |
108 | fi | |
109 | fi | |
110 | ]) | |
111 | ||
112 | dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, | |
113 | dnl acl_final_exec_prefix, containing the values to which $prefix and | |
114 | dnl $exec_prefix will expand at the end of the configure script. | |
115 | AC_DEFUN([AC_LIB_PREPARE_PREFIX], | |
116 | [ | |
117 | dnl Unfortunately, prefix and exec_prefix get only finally determined | |
118 | dnl at the end of configure. | |
119 | if test "X$prefix" = "XNONE"; then | |
120 | acl_final_prefix="$ac_default_prefix" | |
121 | else | |
122 | acl_final_prefix="$prefix" | |
123 | fi | |
124 | if test "X$exec_prefix" = "XNONE"; then | |
125 | acl_final_exec_prefix='${prefix}' | |
126 | else | |
127 | acl_final_exec_prefix="$exec_prefix" | |
128 | fi | |
129 | acl_save_prefix="$prefix" | |
130 | prefix="$acl_final_prefix" | |
131 | eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" | |
132 | prefix="$acl_save_prefix" | |
133 | ]) | |
134 | ||
135 | dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the | |
136 | dnl variables prefix and exec_prefix bound to the values they will have | |
137 | dnl at the end of the configure script. | |
138 | AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], | |
139 | [ | |
140 | acl_save_prefix="$prefix" | |
141 | prefix="$acl_final_prefix" | |
142 | acl_save_exec_prefix="$exec_prefix" | |
143 | exec_prefix="$acl_final_exec_prefix" | |
144 | $1 | |
145 | exec_prefix="$acl_save_exec_prefix" | |
146 | prefix="$acl_save_prefix" | |
147 | ]) |
0 | # progtest.m4 serial 2 (gettext-0.10.40) | |
1 | dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | dnl | |
8 | dnl This file can can be used in projects which are not available under | |
9 | dnl the GNU General Public License or the GNU Library General Public | |
10 | dnl License but which still want to provide support for the GNU gettext | |
11 | dnl functionality. | |
12 | dnl Please note that the actual code of the GNU gettext library is covered | |
13 | dnl by the GNU Library General Public License, and the rest of the GNU | |
14 | dnl gettext package package is covered by the GNU General Public License. | |
15 | dnl They are *not* in the public domain. | |
16 | ||
17 | dnl Authors: | |
18 | dnl Ulrich Drepper <drepper@cygnus.com>, 1996. | |
19 | ||
20 | # Search path for a program which passes the given test. | |
21 | ||
22 | dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, | |
23 | dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) | |
24 | AC_DEFUN([AM_PATH_PROG_WITH_TEST], | |
25 | [# Extract the first word of "$2", so it can be a program name with args. | |
26 | set dummy $2; ac_word=[$]2 | |
27 | AC_MSG_CHECKING([for $ac_word]) | |
28 | AC_CACHE_VAL(ac_cv_path_$1, | |
29 | [case "[$]$1" in | |
30 | /*) | |
31 | ac_cv_path_$1="[$]$1" # Let the user override the test with a path. | |
32 | ;; | |
33 | *) | |
34 | IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" | |
35 | for ac_dir in ifelse([$5], , $PATH, [$5]); do | |
36 | test -z "$ac_dir" && ac_dir=. | |
37 | if test -f $ac_dir/$ac_word; then | |
38 | if [$3]; then | |
39 | ac_cv_path_$1="$ac_dir/$ac_word" | |
40 | break | |
41 | fi | |
42 | fi | |
43 | done | |
44 | IFS="$ac_save_ifs" | |
45 | dnl If no 4th arg is given, leave the cache variable unset, | |
46 | dnl so AC_PATH_PROGS will keep looking. | |
47 | ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" | |
48 | ])dnl | |
49 | ;; | |
50 | esac])dnl | |
51 | $1="$ac_cv_path_$1" | |
52 | if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then | |
53 | AC_MSG_RESULT([$]$1) | |
54 | else | |
55 | AC_MSG_RESULT(no) | |
56 | fi | |
57 | AC_SUBST($1)dnl | |
58 | ]) |
0 | # stdint_h.m4 serial 2 (gettext-0.11.4) | |
1 | dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Paul Eggert. | |
9 | ||
10 | # Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists, | |
11 | # doesn't clash with <sys/types.h>, and declares uintmax_t. | |
12 | ||
13 | AC_DEFUN([jm_AC_HEADER_STDINT_H], | |
14 | [ | |
15 | AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h, | |
16 | [AC_TRY_COMPILE( | |
17 | [#include <sys/types.h> | |
18 | #include <stdint.h>], | |
19 | [uintmax_t i = (uintmax_t) -1;], | |
20 | jm_ac_cv_header_stdint_h=yes, | |
21 | jm_ac_cv_header_stdint_h=no)]) | |
22 | if test $jm_ac_cv_header_stdint_h = yes; then | |
23 | AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, | |
24 | [Define if <stdint.h> exists, doesn't clash with <sys/types.h>, | |
25 | and declares uintmax_t. ]) | |
26 | fi | |
27 | ]) |
0 | # uintmax_t.m4 serial 6 (gettext-0.11) | |
1 | dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Paul Eggert. | |
9 | ||
10 | AC_PREREQ(2.13) | |
11 | ||
12 | # Define uintmax_t to `unsigned long' or `unsigned long long' | |
13 | # if <inttypes.h> does not exist. | |
14 | ||
15 | AC_DEFUN([jm_AC_TYPE_UINTMAX_T], | |
16 | [ | |
17 | AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) | |
18 | AC_REQUIRE([jm_AC_HEADER_STDINT_H]) | |
19 | if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then | |
20 | AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) | |
21 | test $ac_cv_type_unsigned_long_long = yes \ | |
22 | && ac_type='unsigned long long' \ | |
23 | || ac_type='unsigned long' | |
24 | AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, | |
25 | [Define to unsigned long or unsigned long long | |
26 | if <inttypes.h> and <stdint.h> don't define.]) | |
27 | fi | |
28 | ]) |
0 | # ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40) | |
1 | dnl Copyright (C) 1999-2002 Free Software Foundation, Inc. | |
2 | dnl This file is free software, distributed under the terms of the GNU | |
3 | dnl General Public License. As a special exception to the GNU General | |
4 | dnl Public License, this file may be distributed as part of a program | |
5 | dnl that contains a configuration script generated by Autoconf, under | |
6 | dnl the same distribution terms as the rest of that program. | |
7 | ||
8 | dnl From Paul Eggert. | |
9 | ||
10 | AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], | |
11 | [ | |
12 | AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, | |
13 | [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], | |
14 | [unsigned long long ullmax = (unsigned long long) -1; | |
15 | return ull << i | ull >> i | ullmax / ull | ullmax % ull;], | |
16 | ac_cv_type_unsigned_long_long=yes, | |
17 | ac_cv_type_unsigned_long_long=no)]) | |
18 | if test $ac_cv_type_unsigned_long_long = yes; then | |
19 | AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, | |
20 | [Define if you have the unsigned long long type.]) | |
21 | fi | |
22 | ]) |
0 | # rule to download the latest .po files | |
1 | download-po: $(top_srcdir)/common/download-translations | |
2 | $(top_srcdir)/common/download-translations $(PACKAGE) | |
3 |
0 | # include this snippet to add a common release: target by using | |
1 | # include $(top_srcdir)/common/release.mak | |
2 | ||
3 | # make bz2 as well | |
4 | AUTOMAKE_OPTIONS = dist-bzip2 | |
5 | ||
6 | release: dist | |
7 | $(MAKE) $(PACKAGE)-$(VERSION).tar.gz.md5 | |
8 | $(MAKE) $(PACKAGE)-$(VERSION).tar.bz2.md5 | |
9 | ||
10 | # generate md5 sum files | |
11 | %.md5: % | |
12 | md5sum $< > $@ | |
13 | ||
14 | # check that no marshal or enumtypes files are included | |
15 | # this in turn ensures that distcheck fails for missing .list files which is currently | |
16 | # shadowed when the corresponding .c and .h files are included. | |
17 | distcheck-hook: | |
18 | @test "x" = "x`find $(distdir) -name \*-enumtypes.[ch] | grep -v win32`" && \ | |
19 | test "x" = "x`find $(distdir) -name \*-marshal.[ch]`" || \ | |
20 | ( $(ECHO) "*** Leftover enumtypes or marshal files in the tarball." && \ | |
21 | $(ECHO) "*** Make sure the following files are not disted:" && \ | |
22 | find $(distdir) -name \*-enumtypes.[ch] | grep -v win32 && \ | |
23 | find $(distdir) -name \*-marshal.[ch] && \ | |
24 | false ) |
0 | # this snippet is to be included by both our docbook manuals | |
1 | # and gtk-doc API references | |
2 | ||
3 | # it adds an upload target to each of these dir's Makefiles | |
4 | ||
5 | # each Makefile.am should define the following variables: | |
6 | # - DOC: the base name of the documentation | |
7 | # (faq, manual, pwg, gstreamer, gstreamer-libs) | |
8 | # - FORMATS: the formats in which DOC is output | |
9 | # (html ps pdf) | |
10 | ||
11 | # if you want to use it, make sure your ..sh/config file contains the | |
12 | # correct User entry for the Host entry for the DOC_SERVER | |
13 | ||
14 | # these variables define the location of the online docs | |
15 | DOC_SERVER=gstreamer.freedesktop.org | |
16 | DOC_BASE=/srv/gstreamer.freedesktop.org/www/data/doc | |
17 | DOC_URL=$(DOC_SERVER):$(DOC_BASE) | |
18 | ||
19 | ||
20 | upload: $(FORMATS) | |
21 | @if test "x$(GST_VERSION_NANO)" = x0; then \ | |
22 | export DOCVERSION=$(VERSION); \ | |
23 | else export DOCVERSION=head; \ | |
24 | fi; \ | |
25 | export DIR=$(DOC_BASE)/gstreamer/$$DOCVERSION/$(DOC); \ | |
26 | ssh $(DOC_SERVER) mkdir -p $$DIR; \ | |
27 | if echo $(FORMATS) | grep html > /dev/null; then export SRC="$$SRC html"; fi; \ | |
28 | if echo $(FORMATS) | grep ps > /dev/null; then export SRC="$$SRC $(DOC).ps"; fi; \ | |
29 | if echo $(FORMATS) | grep pdf > /dev/null; then export SRC="$$SRC $(DOC).pdf"; fi; \ | |
30 | echo Uploading $$SRC to $(DOC_SERVER):$$DIR; \ | |
31 | rsync -rv -e ssh --delete $$SRC $(DOC_SERVER):$$DIR; \ | |
32 | ssh $(DOC_SERVER) chmod -R g+w $$DIR; \ | |
33 | echo Done |
0 | # this snippet is to be included by both our docbook manuals | |
1 | # and gtk-doc API references | |
2 | ||
3 | # it adds an upload target to each of these dir's Makefiles | |
4 | ||
5 | # each Makefile.am should define the following variables: | |
6 | # - DOC: the base name of the documentation | |
7 | # (faq, manual, pwg, gstreamer, gstreamer-libs) | |
8 | # - FORMATS: the formats in which DOC is output | |
9 | # (html ps pdf) | |
10 | ||
11 | # if you want to use it, make sure your $HOME/.ssh/config file contains the | |
12 | # correct User entry for the Host entry for the DOC_SERVER | |
13 | ||
14 | # these variables define the location of the online docs | |
15 | DOC_SERVER = gstreamer.freedesktop.org | |
16 | DOC_BASE = /srv/gstreamer.freedesktop.org/www/data/doc | |
17 | DOC_URL = $(DOC_SERVER):$(DOC_BASE) | |
18 | ||
19 | upload: $(FORMATS) | |
20 | @if test "x$(PACKAGE_VERSION_NANO)" = x0; then \ | |
21 | export DOCVERSION=$(VERSION); \ | |
22 | else export DOCVERSION=head; \ | |
23 | fi; \ | |
24 | export DIR=$(DOC_BASE)/gstreamer/$$DOCVERSION/$(DOC); \ | |
25 | ssh $(DOC_SERVER) mkdir -p $$DIR; \ | |
26 | if echo $(FORMATS) | grep html > /dev/null; then export SRC="$$SRC html"; fi; \ | |
27 | if echo $(FORMATS) | grep ps > /dev/null; then export SRC="$$SRC $(DOC).ps"; fi; \ | |
28 | if echo $(FORMATS) | grep pdf > /dev/null; then export SRC="$$SRC $(DOC).pdf"; fi; \ | |
29 | echo Uploading $$SRC to $(DOC_SERVER):$$DIR; \ | |
30 | rsync -rv -e ssh --delete $$SRC $(DOC_SERVER):$$DIR; \ | |
31 | ssh $(DOC_SERVER) chmod -R g+w $$DIR; \ | |
32 | echo Done |
0 | # various tests to make sure we dist the win32 stuff (for MSVC builds) right | |
1 | ||
2 | # the MANIFEST contains all win32 related files that should be disted | |
3 | win32 = $(shell cat $(top_srcdir)/win32/MANIFEST) | |
4 | ||
5 | # wildcard is apparently not portable to other makes, hence the use of find | |
6 | # these are library .def files with the symbols to export | |
7 | win32defs = $(shell find $(top_srcdir)/win32/common -name '*.def') | |
8 | ||
9 | # wildcard is apparently not portable to other makes, hence the use of find | |
10 | # these are files that need to be disted with CRLF line endings: | |
11 | win32crlf = $(shell find $(top_srcdir)/win32 -name '*.dsw' -o -name '*.dsp') | |
12 | ||
13 | win32-debug: | |
14 | @echo; \ | |
15 | echo win32 = $(win32); \ | |
16 | echo; \ | |
17 | echo win32defs = $(win32defs); \ | |
18 | echo; \ | |
19 | echo win32crlf = $(win32crlf); \ | |
20 | echo | |
21 | ||
22 | win32-check-crlf: | |
23 | @echo Checking win32 files for CR LF line endings ...; \ | |
24 | fail=0 ; \ | |
25 | for each in $(win32crlf) ; do \ | |
26 | if ! (file $$each | grep CRLF >/dev/null) ; then \ | |
27 | echo $$each must be fixed to have CRLF line endings ; \ | |
28 | fail=1; \ | |
29 | fi ; \ | |
30 | done ; \ | |
31 | exit $$fail | |
32 | ||
33 | # make sure all symbols we export on linux are defined in the win32 .def too | |
34 | # (don't care about other unixes for now, it's enough if it works on one of | |
35 | # the linux build bots; we assume .so ) | |
36 | check-exports: | |
37 | fail=0 ; \ | |
38 | for l in $(win32defs); do \ | |
39 | libbase=`basename "$$l" ".def"`; \ | |
40 | libso=`find "$(top_builddir)" -name "$$libbase-@GST_MAJORMINOR@.so"`; \ | |
41 | libdef="$(top_srcdir)/win32/common/$$libbase.def"; \ | |
42 | if test "x$$libso" != "x"; then \ | |
43 | echo Checking symbols in $$libso; \ | |
44 | if ! ($(top_srcdir)/common/check-exports $$libdef $$libso) ; then \ | |
45 | fail=1; \ | |
46 | fi; \ | |
47 | fi; \ | |
48 | done | |
49 | ||
50 | ||
51 | dist-hook: check-exports win32-check-crlf | |
52 | ||
53 |
37 | 37 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
38 | 38 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
40 | $(top_srcdir)/common/m4/as-python.m4 \ | |
41 | 40 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
42 | 41 | $(top_srcdir)/common/m4/as-version.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
52 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
53 | 51 | $(top_srcdir)/common/m4/pkg.m4 \ |
54 | 52 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
55 | 53 | $(top_srcdir)/configure.ac |
173 | 171 | PKG_CONFIG = @PKG_CONFIG@ |
174 | 172 | PLUGINDIR = @PLUGINDIR@ |
175 | 173 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
176 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
177 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
178 | 174 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
179 | 175 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
180 | 176 | PYTHON = @PYTHON@ |
0 | 0 | #! /bin/sh |
1 | 1 | # Guess values for system-dependent variables and create Makefiles. |
2 | # Generated by GNU Autoconf 2.63 for Farsight2 0.0.8. | |
2 | # Generated by GNU Autoconf 2.63 for Farsight2 0.0.9. | |
3 | 3 | # |
4 | 4 | # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=Farsight>. |
5 | 5 | # |
749 | 749 | # Identity of this package. |
750 | 750 | PACKAGE_NAME='Farsight2' |
751 | 751 | PACKAGE_TARNAME='farsight2' |
752 | PACKAGE_VERSION='0.0.8' | |
753 | PACKAGE_STRING='Farsight2 0.0.8' | |
752 | PACKAGE_VERSION='0.0.9' | |
753 | PACKAGE_STRING='Farsight2 0.0.9' | |
754 | 754 | PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=Farsight' |
755 | 755 | |
756 | 756 | ac_unique_file="gst-libs/gst/farsight/fs-candidate.c" |
833 | 833 | GLIB_REQ |
834 | 834 | ENABLE_PLUGIN_DOCS_FALSE |
835 | 835 | ENABLE_PLUGIN_DOCS_TRUE |
836 | PYDOCSTUFF_LIBS | |
837 | PYDOCSTUFF_CFLAGS | |
838 | 836 | pkgpyexecdir |
839 | 837 | pyexecdir |
840 | 838 | pkgpythondir |
883 | 881 | HAVE_CPU_I386_TRUE |
884 | 882 | FS2_PLUGIN_PATH |
885 | 883 | FS2_TRANSMITTER_PLUGINS_SELECTED |
886 | USE_NICE_FALSE | |
887 | USE_NICE_TRUE | |
888 | 884 | NICE_LIBS |
889 | 885 | NICE_CFLAGS |
890 | 886 | FS2_TRANSMITTER_PLUGINS_ALL |
1070 | 1066 | VALGRIND_LIBS |
1071 | 1067 | NICE_CFLAGS |
1072 | 1068 | NICE_LIBS |
1073 | PYDOCSTUFF_CFLAGS | |
1074 | PYDOCSTUFF_LIBS | |
1075 | 1069 | GLIB_CFLAGS |
1076 | 1070 | GLIB_LIBS |
1077 | 1071 | GST_CFLAGS |
1638 | 1632 | # Omit some internal or obsolete options to make the list less imposing. |
1639 | 1633 | # This message is too long to be a string in the A/UX 3.1 sh. |
1640 | 1634 | cat <<_ACEOF |
1641 | \`configure' configures Farsight2 0.0.8 to adapt to many kinds of systems. | |
1635 | \`configure' configures Farsight2 0.0.9 to adapt to many kinds of systems. | |
1642 | 1636 | |
1643 | 1637 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1644 | 1638 | |
1708 | 1702 | |
1709 | 1703 | if test -n "$ac_init_help"; then |
1710 | 1704 | case $ac_init_help in |
1711 | short | recursive ) echo "Configuration of Farsight2 0.0.8:";; | |
1705 | short | recursive ) echo "Configuration of Farsight2 0.0.9:";; | |
1712 | 1706 | esac |
1713 | 1707 | cat <<\_ACEOF |
1714 | 1708 | |
1779 | 1773 | linker flags for VALGRIND, overriding pkg-config |
1780 | 1774 | NICE_CFLAGS C compiler flags for NICE, overriding pkg-config |
1781 | 1775 | NICE_LIBS linker flags for NICE, overriding pkg-config |
1782 | PYDOCSTUFF_CFLAGS | |
1783 | C compiler flags for PYDOCSTUFF, overriding pkg-config | |
1784 | PYDOCSTUFF_LIBS | |
1785 | linker flags for PYDOCSTUFF, overriding pkg-config | |
1786 | 1776 | GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config |
1787 | 1777 | GLIB_LIBS linker flags for GLIB, overriding pkg-config |
1788 | 1778 | GST_CFLAGS C compiler flags for GST, overriding pkg-config |
1873 | 1863 | test -n "$ac_init_help" && exit $ac_status |
1874 | 1864 | if $ac_init_version; then |
1875 | 1865 | cat <<\_ACEOF |
1876 | Farsight2 configure 0.0.8 | |
1866 | Farsight2 configure 0.0.9 | |
1877 | 1867 | generated by GNU Autoconf 2.63 |
1878 | 1868 | |
1879 | 1869 | Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, |
1887 | 1877 | This file contains any messages produced by compilers while |
1888 | 1878 | running configure, to aid debugging if configure makes a mistake. |
1889 | 1879 | |
1890 | It was created by Farsight2 $as_me 0.0.8, which was | |
1880 | It was created by Farsight2 $as_me 0.0.9, which was | |
1891 | 1881 | generated by GNU Autoconf 2.63. Invocation command line was |
1892 | 1882 | |
1893 | 1883 | $ $0 $@ |
2608 | 2598 | |
2609 | 2599 | # Define the identity of the package. |
2610 | 2600 | PACKAGE='farsight2' |
2611 | VERSION='0.0.8' | |
2601 | VERSION='0.0.9' | |
2612 | 2602 | |
2613 | 2603 | |
2614 | 2604 | cat >>confdefs.h <<_ACEOF |
2752 | 2742 | |
2753 | 2743 | |
2754 | 2744 | |
2755 | PACKAGE_VERSION_MAJOR=$(echo 0.0.8 | cut -d'.' -f1) | |
2756 | PACKAGE_VERSION_MINOR=$(echo 0.0.8 | cut -d'.' -f2) | |
2757 | PACKAGE_VERSION_MICRO=$(echo 0.0.8 | cut -d'.' -f3) | |
2745 | PACKAGE_VERSION_MAJOR=$(echo 0.0.9 | cut -d'.' -f1) | |
2746 | PACKAGE_VERSION_MINOR=$(echo 0.0.9 | cut -d'.' -f2) | |
2747 | PACKAGE_VERSION_MICRO=$(echo 0.0.9 | cut -d'.' -f3) | |
2758 | 2748 | |
2759 | 2749 | |
2760 | 2750 | |
2765 | 2755 | { $as_echo "$as_me:$LINENO: checking nano version" >&5 |
2766 | 2756 | $as_echo_n "checking nano version... " >&6; } |
2767 | 2757 | |
2768 | NANO=$(echo 0.0.8 | cut -d'.' -f4) | |
2758 | NANO=$(echo 0.0.9 | cut -d'.' -f4) | |
2769 | 2759 | |
2770 | 2760 | if test x"$NANO" = x || test "x$NANO" = "x0" ; then |
2771 | 2761 | { $as_echo "$as_me:$LINENO: result: 0 (release)" >&5 |
4707 | 4697 | ;; |
4708 | 4698 | *-*-irix6*) |
4709 | 4699 | # Find out which ABI we are using. |
4710 | echo '#line 4711 "configure"' > conftest.$ac_ext | |
4700 | echo '#line 4701 "configure"' > conftest.$ac_ext | |
4711 | 4701 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 |
4712 | 4702 | (eval $ac_compile) 2>&5 |
4713 | 4703 | ac_status=$? |
7853 | 7843 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
7854 | 7844 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
7855 | 7845 | -e 's:$: $lt_compiler_flag:'` |
7856 | (eval echo "\"\$as_me:7857: $lt_compile\"" >&5) | |
7846 | (eval echo "\"\$as_me:7847: $lt_compile\"" >&5) | |
7857 | 7847 | (eval "$lt_compile" 2>conftest.err) |
7858 | 7848 | ac_status=$? |
7859 | 7849 | cat conftest.err >&5 |
7860 | echo "$as_me:7861: \$? = $ac_status" >&5 | |
7850 | echo "$as_me:7851: \$? = $ac_status" >&5 | |
7861 | 7851 | if (exit $ac_status) && test -s "$ac_outfile"; then |
7862 | 7852 | # The compiler can only warn and ignore the option if not recognized |
7863 | 7853 | # So say no if there are warnings other than the usual output. |
8143 | 8133 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
8144 | 8134 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
8145 | 8135 | -e 's:$: $lt_compiler_flag:'` |
8146 | (eval echo "\"\$as_me:8147: $lt_compile\"" >&5) | |
8136 | (eval echo "\"\$as_me:8137: $lt_compile\"" >&5) | |
8147 | 8137 | (eval "$lt_compile" 2>conftest.err) |
8148 | 8138 | ac_status=$? |
8149 | 8139 | cat conftest.err >&5 |
8150 | echo "$as_me:8151: \$? = $ac_status" >&5 | |
8140 | echo "$as_me:8141: \$? = $ac_status" >&5 | |
8151 | 8141 | if (exit $ac_status) && test -s "$ac_outfile"; then |
8152 | 8142 | # The compiler can only warn and ignore the option if not recognized |
8153 | 8143 | # So say no if there are warnings other than the usual output. |
8247 | 8237 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
8248 | 8238 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
8249 | 8239 | -e 's:$: $lt_compiler_flag:'` |
8250 | (eval echo "\"\$as_me:8251: $lt_compile\"" >&5) | |
8240 | (eval echo "\"\$as_me:8241: $lt_compile\"" >&5) | |
8251 | 8241 | (eval "$lt_compile" 2>out/conftest.err) |
8252 | 8242 | ac_status=$? |
8253 | 8243 | cat out/conftest.err >&5 |
8254 | echo "$as_me:8255: \$? = $ac_status" >&5 | |
8244 | echo "$as_me:8245: \$? = $ac_status" >&5 | |
8255 | 8245 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
8256 | 8246 | then |
8257 | 8247 | # The compiler can only warn and ignore the option if not recognized |
10660 | 10650 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
10661 | 10651 | lt_status=$lt_dlunknown |
10662 | 10652 | cat > conftest.$ac_ext <<EOF |
10663 | #line 10664 "configure" | |
10653 | #line 10654 "configure" | |
10664 | 10654 | #include "confdefs.h" |
10665 | 10655 | |
10666 | 10656 | #if HAVE_DLFCN_H |
10760 | 10750 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
10761 | 10751 | lt_status=$lt_dlunknown |
10762 | 10752 | cat > conftest.$ac_ext <<EOF |
10763 | #line 10764 "configure" | |
10753 | #line 10754 "configure" | |
10764 | 10754 | #include "confdefs.h" |
10765 | 10755 | |
10766 | 10756 | #if HAVE_DLFCN_H |
13169 | 13159 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
13170 | 13160 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
13171 | 13161 | -e 's:$: $lt_compiler_flag:'` |
13172 | (eval echo "\"\$as_me:13173: $lt_compile\"" >&5) | |
13162 | (eval echo "\"\$as_me:13163: $lt_compile\"" >&5) | |
13173 | 13163 | (eval "$lt_compile" 2>conftest.err) |
13174 | 13164 | ac_status=$? |
13175 | 13165 | cat conftest.err >&5 |
13176 | echo "$as_me:13177: \$? = $ac_status" >&5 | |
13166 | echo "$as_me:13167: \$? = $ac_status" >&5 | |
13177 | 13167 | if (exit $ac_status) && test -s "$ac_outfile"; then |
13178 | 13168 | # The compiler can only warn and ignore the option if not recognized |
13179 | 13169 | # So say no if there are warnings other than the usual output. |
13273 | 13263 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
13274 | 13264 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
13275 | 13265 | -e 's:$: $lt_compiler_flag:'` |
13276 | (eval echo "\"\$as_me:13277: $lt_compile\"" >&5) | |
13266 | (eval echo "\"\$as_me:13267: $lt_compile\"" >&5) | |
13277 | 13267 | (eval "$lt_compile" 2>out/conftest.err) |
13278 | 13268 | ac_status=$? |
13279 | 13269 | cat out/conftest.err >&5 |
13280 | echo "$as_me:13281: \$? = $ac_status" >&5 | |
13270 | echo "$as_me:13271: \$? = $ac_status" >&5 | |
13281 | 13271 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
13282 | 13272 | then |
13283 | 13273 | # The compiler can only warn and ignore the option if not recognized |
14869 | 14859 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
14870 | 14860 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
14871 | 14861 | -e 's:$: $lt_compiler_flag:'` |
14872 | (eval echo "\"\$as_me:14873: $lt_compile\"" >&5) | |
14862 | (eval echo "\"\$as_me:14863: $lt_compile\"" >&5) | |
14873 | 14863 | (eval "$lt_compile" 2>conftest.err) |
14874 | 14864 | ac_status=$? |
14875 | 14865 | cat conftest.err >&5 |
14876 | echo "$as_me:14877: \$? = $ac_status" >&5 | |
14866 | echo "$as_me:14867: \$? = $ac_status" >&5 | |
14877 | 14867 | if (exit $ac_status) && test -s "$ac_outfile"; then |
14878 | 14868 | # The compiler can only warn and ignore the option if not recognized |
14879 | 14869 | # So say no if there are warnings other than the usual output. |
14973 | 14963 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
14974 | 14964 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
14975 | 14965 | -e 's:$: $lt_compiler_flag:'` |
14976 | (eval echo "\"\$as_me:14977: $lt_compile\"" >&5) | |
14966 | (eval echo "\"\$as_me:14967: $lt_compile\"" >&5) | |
14977 | 14967 | (eval "$lt_compile" 2>out/conftest.err) |
14978 | 14968 | ac_status=$? |
14979 | 14969 | cat out/conftest.err >&5 |
14980 | echo "$as_me:14981: \$? = $ac_status" >&5 | |
14970 | echo "$as_me:14971: \$? = $ac_status" >&5 | |
14981 | 14971 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
14982 | 14972 | then |
14983 | 14973 | # The compiler can only warn and ignore the option if not recognized |
17201 | 17191 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
17202 | 17192 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
17203 | 17193 | -e 's:$: $lt_compiler_flag:'` |
17204 | (eval echo "\"\$as_me:17205: $lt_compile\"" >&5) | |
17194 | (eval echo "\"\$as_me:17195: $lt_compile\"" >&5) | |
17205 | 17195 | (eval "$lt_compile" 2>conftest.err) |
17206 | 17196 | ac_status=$? |
17207 | 17197 | cat conftest.err >&5 |
17208 | echo "$as_me:17209: \$? = $ac_status" >&5 | |
17198 | echo "$as_me:17199: \$? = $ac_status" >&5 | |
17209 | 17199 | if (exit $ac_status) && test -s "$ac_outfile"; then |
17210 | 17200 | # The compiler can only warn and ignore the option if not recognized |
17211 | 17201 | # So say no if there are warnings other than the usual output. |
17491 | 17481 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
17492 | 17482 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
17493 | 17483 | -e 's:$: $lt_compiler_flag:'` |
17494 | (eval echo "\"\$as_me:17495: $lt_compile\"" >&5) | |
17484 | (eval echo "\"\$as_me:17485: $lt_compile\"" >&5) | |
17495 | 17485 | (eval "$lt_compile" 2>conftest.err) |
17496 | 17486 | ac_status=$? |
17497 | 17487 | cat conftest.err >&5 |
17498 | echo "$as_me:17499: \$? = $ac_status" >&5 | |
17488 | echo "$as_me:17489: \$? = $ac_status" >&5 | |
17499 | 17489 | if (exit $ac_status) && test -s "$ac_outfile"; then |
17500 | 17490 | # The compiler can only warn and ignore the option if not recognized |
17501 | 17491 | # So say no if there are warnings other than the usual output. |
17595 | 17585 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
17596 | 17586 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
17597 | 17587 | -e 's:$: $lt_compiler_flag:'` |
17598 | (eval echo "\"\$as_me:17599: $lt_compile\"" >&5) | |
17588 | (eval echo "\"\$as_me:17589: $lt_compile\"" >&5) | |
17599 | 17589 | (eval "$lt_compile" 2>out/conftest.err) |
17600 | 17590 | ac_status=$? |
17601 | 17591 | cat out/conftest.err >&5 |
17602 | echo "$as_me:17603: \$? = $ac_status" >&5 | |
17592 | echo "$as_me:17593: \$? = $ac_status" >&5 | |
17603 | 17593 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
17604 | 17594 | then |
17605 | 17595 | # The compiler can only warn and ignore the option if not recognized |
20989 | 20979 | |
20990 | 20980 | |
20991 | 20981 | |
20992 | if echo $FS2_TRANSMITTER_PLUGINS_SELECTED | grep -qi nice; then | |
20993 | ||
20994 | NICE_REQUIRED=0.0.3 | |
20982 | NICE_REQUIRED=0.0.3 | |
20995 | 20983 | |
20996 | 20984 | |
20997 | 20985 | pkg_failed=no |
21062 | 21050 | |
21063 | 21051 | { $as_echo "$as_me:$LINENO: result: no" >&5 |
21064 | 21052 | $as_echo "no" >&6; } |
21065 | HAVE_NICE=no | |
21053 | { { $as_echo "$as_me:$LINENO: error: Need libnice >= $NICE_REQUIRED" >&5 | |
21054 | $as_echo "$as_me: error: Need libnice >= $NICE_REQUIRED" >&2;} | |
21055 | { (exit 1); exit 1; }; } | |
21066 | 21056 | elif test $pkg_failed = untried; then |
21067 | HAVE_NICE=no | |
21057 | { { $as_echo "$as_me:$LINENO: error: Need libnice >= $NICE_REQUIRED" >&5 | |
21058 | $as_echo "$as_me: error: Need libnice >= $NICE_REQUIRED" >&2;} | |
21059 | { (exit 1); exit 1; }; } | |
21068 | 21060 | else |
21069 | 21061 | NICE_CFLAGS=$pkg_cv_NICE_CFLAGS |
21070 | 21062 | NICE_LIBS=$pkg_cv_NICE_LIBS |
21071 | 21063 | { $as_echo "$as_me:$LINENO: result: yes" >&5 |
21072 | 21064 | $as_echo "yes" >&6; } |
21073 | HAVE_NICE=yes | |
21074 | fi | |
21075 | ||
21076 | if test "x$HAVE_NICE" = "xno"; then | |
21077 | if test "x$TRANSMITTERS_DEFAULT" = "xyes"; then | |
21078 | FS2_TRANSMITTER_PLUGINS_SELECTED="${FS2_TRANSMITTER_PLUGINS_SELECTED/nice/}" | |
21079 | { $as_echo "$as_me:$LINENO: WARNING: Will not build libnice transmitter because libnice is not available" >&5 | |
21080 | $as_echo "$as_me: WARNING: Will not build libnice transmitter because libnice is not available" >&2;} | |
21081 | else | |
21082 | { { $as_echo "$as_me:$LINENO: error: Can not build requested libnice transmitter because libnice is not installed" >&5 | |
21083 | $as_echo "$as_me: error: Can not build requested libnice transmitter because libnice is not installed" >&2;} | |
21084 | { (exit 1); exit 1; }; } | |
21085 | fi | |
21086 | else | |
21087 | USE_NICE=yes | |
21088 | fi | |
21089 | ||
21090 | ||
21091 | ||
21092 | else | |
21093 | { $as_echo "$as_me:$LINENO: nice transmitter disabled by user request" >&5 | |
21094 | $as_echo "$as_me: nice transmitter disabled by user request" >&6;} | |
21095 | fi | |
21096 | ||
21097 | if test "x$USE_NICE" == "xyes"; then | |
21098 | USE_NICE_TRUE= | |
21099 | USE_NICE_FALSE='#' | |
21100 | else | |
21101 | USE_NICE_TRUE='#' | |
21102 | USE_NICE_FALSE= | |
21103 | fi | |
21065 | : | |
21066 | fi | |
21067 | ||
21104 | 21068 | |
21105 | 21069 | |
21106 | 21070 | |
22804 | 22768 | |
22805 | 22769 | |
22806 | 22770 | |
22807 | PYTHON_CANDIDATES="python python2.2 python2.1 python2.0 python2 \ | |
22808 | python1.6 python1.5" | |
22809 | ||
22810 | { $as_echo "$as_me:$LINENO: Looking for Python version >= 2.4" >&5 | |
22811 | $as_echo "$as_me: Looking for Python version >= 2.4" >&6;} | |
22812 | prog=" | |
22813 | import sys, string | |
22814 | minver = '2.4' | |
22815 | # split string by '.' and convert to numeric | |
22816 | minver_info = map(string.atoi, string.split(minver, '.')) | |
22817 | # we can now do comparisons on the two lists: | |
22818 | if sys.version_info >= tuple(minver_info): | |
22819 | sys.exit(0) | |
22820 | else: | |
22821 | sys.exit(1)" | |
22822 | ||
22823 | python_good=false | |
22824 | for python_candidate in $PYTHON_CANDIDATES; do | |
22825 | unset PYTHON | |
22826 | # Extract the first word of "$python_candidate", so it can be a program name with args. | |
22827 | set dummy $python_candidate; ac_word=$2 | |
22771 | ||
22772 | ||
22773 | if test -n "$PYTHON"; then | |
22774 | # If the user set $PYTHON, use it and don't search something else. | |
22775 | { $as_echo "$as_me:$LINENO: checking whether $PYTHON version >= 2.4" >&5 | |
22776 | $as_echo_n "checking whether $PYTHON version >= 2.4... " >&6; } | |
22777 | prog="import sys, string | |
22778 | # split strings by '.' and convert to numeric. Append some zeros | |
22779 | # because we need at least 4 digits for the hex conversion. | |
22780 | minver = map(int, string.split('2.4', '.')) + [0, 0, 0] | |
22781 | minverhex = 0 | |
22782 | for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] | |
22783 | sys.exit(sys.hexversion < minverhex)" | |
22784 | if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 | |
22785 | ($PYTHON -c "$prog") >&5 2>&5 | |
22786 | ac_status=$? | |
22787 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
22788 | (exit $ac_status); }; then | |
22789 | { $as_echo "$as_me:$LINENO: result: yes" >&5 | |
22790 | $as_echo "yes" >&6; } | |
22791 | else | |
22792 | { { $as_echo "$as_me:$LINENO: error: too old" >&5 | |
22793 | $as_echo "$as_me: error: too old" >&2;} | |
22794 | { (exit 1); exit 1; }; } | |
22795 | fi | |
22796 | ||
22797 | am_display_PYTHON=$PYTHON | |
22798 | else | |
22799 | # Otherwise, try each interpreter until we find one that satisfies | |
22800 | # VERSION. | |
22801 | { $as_echo "$as_me:$LINENO: checking for a Python interpreter with version >= 2.4" >&5 | |
22802 | $as_echo_n "checking for a Python interpreter with version >= 2.4... " >&6; } | |
22803 | if test "${am_cv_pathless_PYTHON+set}" = set; then | |
22804 | $as_echo_n "(cached) " >&6 | |
22805 | else | |
22806 | ||
22807 | for am_cv_pathless_PYTHON in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do | |
22808 | test "$am_cv_pathless_PYTHON" = none && break | |
22809 | prog="import sys, string | |
22810 | # split strings by '.' and convert to numeric. Append some zeros | |
22811 | # because we need at least 4 digits for the hex conversion. | |
22812 | minver = map(int, string.split('2.4', '.')) + [0, 0, 0] | |
22813 | minverhex = 0 | |
22814 | for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] | |
22815 | sys.exit(sys.hexversion < minverhex)" | |
22816 | if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 | |
22817 | ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 | |
22818 | ac_status=$? | |
22819 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
22820 | (exit $ac_status); }; then | |
22821 | break | |
22822 | fi | |
22823 | ||
22824 | done | |
22825 | fi | |
22826 | { $as_echo "$as_me:$LINENO: result: $am_cv_pathless_PYTHON" >&5 | |
22827 | $as_echo "$am_cv_pathless_PYTHON" >&6; } | |
22828 | # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. | |
22829 | if test "$am_cv_pathless_PYTHON" = none; then | |
22830 | PYTHON=: | |
22831 | else | |
22832 | # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. | |
22833 | set dummy $am_cv_pathless_PYTHON; ac_word=$2 | |
22828 | 22834 | { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 |
22829 | 22835 | $as_echo_n "checking for $ac_word... " >&6; } |
22830 | 22836 | if test "${ac_cv_path_PYTHON+set}" = set; then |
22862 | 22868 | $as_echo "no" >&6; } |
22863 | 22869 | fi |
22864 | 22870 | |
22865 | 1> /dev/null 2> /dev/null | |
22866 | ||
22867 | if test "x$PYTHON" = "x"; then continue; fi | |
22868 | ||
22869 | if $PYTHON -c "$prog" 1>&5 2>&5; then | |
22870 | { $as_echo "$as_me:$LINENO: checking \"$PYTHON\":" >&5 | |
22871 | $as_echo_n "checking \"$PYTHON\":... " >&6; } | |
22872 | { $as_echo "$as_me:$LINENO: result: okay" >&5 | |
22873 | $as_echo "okay" >&6; } | |
22874 | python_good=true | |
22875 | break; | |
22876 | else | |
22877 | unset ac_cv_path_PYTHON | |
22871 | ||
22878 | 22872 | fi |
22879 | done | |
22880 | ||
22881 | ||
22882 | if test "$python_good" != "true"; then | |
22883 | { $as_echo "$as_me:$LINENO: WARNING: No suitable version of python found" >&5 | |
22884 | $as_echo "$as_me: WARNING: No suitable version of python found" >&2;} | |
22885 | PYTHON= | |
22873 | am_display_PYTHON=$am_cv_pathless_PYTHON | |
22874 | fi | |
22875 | ||
22876 | ||
22877 | if test "$PYTHON" = :; then | |
22878 | { { $as_echo "$as_me:$LINENO: error: no suitable Python interpreter found" >&5 | |
22879 | $as_echo "$as_me: error: no suitable Python interpreter found" >&2;} | |
22880 | { (exit 1); exit 1; }; } | |
22886 | 22881 | else |
22887 | 22882 | |
22888 | { $as_echo "$as_me:$LINENO: checking local Python configuration" >&5 | |
22889 | $as_echo_n "checking local Python configuration... " >&6; } | |
22890 | ||
22891 | ||
22892 | ||
22893 | PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` | |
22894 | ||
22883 | ||
22884 | { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5 | |
22885 | $as_echo_n "checking for $am_display_PYTHON version... " >&6; } | |
22886 | if test "${am_cv_python_version+set}" = set; then | |
22887 | $as_echo_n "(cached) " >&6 | |
22888 | else | |
22889 | am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"` | |
22890 | fi | |
22891 | { $as_echo "$as_me:$LINENO: result: $am_cv_python_version" >&5 | |
22892 | $as_echo "$am_cv_python_version" >&6; } | |
22893 | PYTHON_VERSION=$am_cv_python_version | |
22895 | 22894 | |
22896 | 22895 | |
22897 | 22896 | |
22898 | 22897 | PYTHON_PREFIX='${prefix}' |
22899 | 22898 | |
22900 | ||
22901 | 22899 | PYTHON_EXEC_PREFIX='${exec_prefix}' |
22902 | 22900 | |
22903 | 22901 | |
22904 | 22902 | |
22905 | PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` | |
22906 | ||
22907 | ||
22908 | ||
22909 | ||
22910 | ||
22911 | pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages | |
22903 | { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5 | |
22904 | $as_echo_n "checking for $am_display_PYTHON platform... " >&6; } | |
22905 | if test "${am_cv_python_platform+set}" = set; then | |
22906 | $as_echo_n "(cached) " >&6 | |
22907 | else | |
22908 | am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"` | |
22909 | fi | |
22910 | { $as_echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5 | |
22911 | $as_echo "$am_cv_python_platform" >&6; } | |
22912 | PYTHON_PLATFORM=$am_cv_python_platform | |
22913 | ||
22914 | ||
22915 | ||
22916 | ||
22917 | { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5 | |
22918 | $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } | |
22919 | if test "${am_cv_python_pythondir+set}" = set; then | |
22920 | $as_echo_n "(cached) " >&6 | |
22921 | else | |
22922 | am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || | |
22923 | echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` | |
22924 | fi | |
22925 | { $as_echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5 | |
22926 | $as_echo "$am_cv_python_pythondir" >&6; } | |
22927 | pythondir=$am_cv_python_pythondir | |
22912 | 22928 | |
22913 | 22929 | |
22914 | 22930 | |
22915 | 22931 | pkgpythondir=\${pythondir}/$PACKAGE |
22916 | 22932 | |
22917 | 22933 | |
22918 | ||
22919 | pyexecdir=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages | |
22934 | { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5 | |
22935 | $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } | |
22936 | if test "${am_cv_python_pyexecdir+set}" = set; then | |
22937 | $as_echo_n "(cached) " >&6 | |
22938 | else | |
22939 | am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || | |
22940 | echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"` | |
22941 | fi | |
22942 | { $as_echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5 | |
22943 | $as_echo "$am_cv_python_pyexecdir" >&6; } | |
22944 | pyexecdir=$am_cv_python_pyexecdir | |
22920 | 22945 | |
22921 | 22946 | |
22922 | 22947 | |
22923 | 22948 | pkgpyexecdir=\${pyexecdir}/$PACKAGE |
22924 | 22949 | |
22925 | { $as_echo "$as_me:$LINENO: result: looks good" >&5 | |
22926 | $as_echo "looks good" >&6; } | |
22950 | ||
22927 | 22951 | |
22928 | 22952 | fi |
22953 | ||
22929 | 22954 | |
22930 | 22955 | { $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 |
22931 | 22956 | $as_echo_n "checking for a sed that does not truncate output... " >&6; } |
22989 | 23014 | |
22990 | 23015 | |
22991 | 23016 | build_plugin_docs=no |
22992 | have_pygst=no | |
22993 | ||
22994 | pkg_failed=no | |
22995 | { $as_echo "$as_me:$LINENO: checking for PYDOCSTUFF" >&5 | |
22996 | $as_echo_n "checking for PYDOCSTUFF... " >&6; } | |
22997 | ||
22998 | if test -n "$PKG_CONFIG"; then | |
22999 | if test -n "$PYDOCSTUFF_CFLAGS"; then | |
23000 | pkg_cv_PYDOCSTUFF_CFLAGS="$PYDOCSTUFF_CFLAGS" | |
23001 | else | |
23002 | if test -n "$PKG_CONFIG" && \ | |
23003 | { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" gst-python-0.10 \"") >&5 | |
23004 | ($PKG_CONFIG --exists --print-errors " gst-python-0.10 ") 2>&5 | |
23005 | ac_status=$? | |
23006 | $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
23007 | (exit $ac_status); }; then | |
23008 | pkg_cv_PYDOCSTUFF_CFLAGS=`$PKG_CONFIG --cflags " gst-python-0.10 " 2>/dev/null` | |
23009 | else | |
23010 | pkg_failed=yes | |
23011 | fi | |
23012 | fi | |
23013 | else | |
23014 | pkg_failed=untried | |
23015 | fi | |
23016 | if test -n "$PKG_CONFIG"; then | |
23017 | if test -n "$PYDOCSTUFF_LIBS"; then | |
23018 | pkg_cv_PYDOCSTUFF_LIBS="$PYDOCSTUFF_LIBS" | |
23019 | else | |
23020 | if test -n "$PKG_CONFIG" && \ | |
23021 | { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \" gst-python-0.10 \"") >&5 | |
23022 | ($PKG_CONFIG --exists --print-errors " gst-python-0.10 ") 2>&5 | |
23023 | ac_status=$? | |
23024 | $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
23025 | (exit $ac_status); }; then | |
23026 | pkg_cv_PYDOCSTUFF_LIBS=`$PKG_CONFIG --libs " gst-python-0.10 " 2>/dev/null` | |
23027 | else | |
23028 | pkg_failed=yes | |
23029 | fi | |
23030 | fi | |
23031 | else | |
23032 | pkg_failed=untried | |
23033 | fi | |
23034 | ||
23035 | ||
23036 | ||
23037 | if test $pkg_failed = yes; then | |
23038 | ||
23039 | if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | |
23040 | _pkg_short_errors_supported=yes | |
23041 | else | |
23042 | _pkg_short_errors_supported=no | |
23043 | fi | |
23044 | if test $_pkg_short_errors_supported = yes; then | |
23045 | PYDOCSTUFF_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " gst-python-0.10 "` | |
23046 | else | |
23047 | PYDOCSTUFF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " gst-python-0.10 "` | |
23048 | fi | |
23049 | # Put the nasty error message in config.log where it belongs | |
23050 | echo "$PYDOCSTUFF_PKG_ERRORS" >&5 | |
23051 | ||
23052 | { $as_echo "$as_me:$LINENO: result: no" >&5 | |
23053 | $as_echo "no" >&6; } | |
23054 | have_pygst=no | |
23055 | elif test $pkg_failed = untried; then | |
23056 | have_pygst=no | |
23057 | else | |
23058 | PYDOCSTUFF_CFLAGS=$pkg_cv_PYDOCSTUFF_CFLAGS | |
23059 | PYDOCSTUFF_LIBS=$pkg_cv_PYDOCSTUFF_LIBS | |
23060 | { $as_echo "$as_me:$LINENO: result: yes" >&5 | |
23061 | $as_echo "yes" >&6; } | |
23062 | have_pygst=yes | |
23063 | fi | |
23064 | 23017 | { $as_echo "$as_me:$LINENO: checking whether to build plugin documentation" >&5 |
23065 | 23018 | $as_echo_n "checking whether to build plugin documentation... " >&6; } |
23066 | if test x$enable_gtk_doc = xyes -a x$have_pygst = xyes; then | |
23019 | if test x$enable_gtk_doc = xyes; then | |
23067 | 23020 | build_plugin_docs=yes |
23068 | 23021 | { $as_echo "$as_me:$LINENO: result: yes" >&5 |
23069 | 23022 | $as_echo "yes" >&6; } |
23070 | 23023 | else |
23071 | { $as_echo "$as_me:$LINENO: result: no (gtk-doc/pygst disabled or not available)" >&5 | |
23072 | $as_echo "no (gtk-doc/pygst disabled or not available)" >&6; } | |
23024 | { $as_echo "$as_me:$LINENO: result: no (gtk-doc disabled or not available)" >&5 | |
23025 | $as_echo "no (gtk-doc disabled or not available)" >&6; } | |
23073 | 23026 | fi |
23074 | 23027 | |
23075 | 23028 | if test x$build_plugin_docs = xyes; then |
23217 | 23170 | |
23218 | 23171 | |
23219 | 23172 | |
23220 | ||
23221 | { $as_echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 | |
23222 | $as_echo_n "checking for strerror in -lcposix... " >&6; } | |
23223 | if test "${ac_cv_lib_cposix_strerror+set}" = set; then | |
23173 | { $as_echo "$as_me:$LINENO: checking for library containing strerror" >&5 | |
23174 | $as_echo_n "checking for library containing strerror... " >&6; } | |
23175 | if test "${ac_cv_search_strerror+set}" = set; then | |
23224 | 23176 | $as_echo_n "(cached) " >&6 |
23225 | 23177 | else |
23226 | ac_check_lib_save_LIBS=$LIBS | |
23227 | LIBS="-lcposix $LIBS" | |
23178 | ac_func_search_save_LIBS=$LIBS | |
23228 | 23179 | cat >conftest.$ac_ext <<_ACEOF |
23229 | 23180 | /* confdefs.h. */ |
23230 | 23181 | _ACEOF |
23247 | 23198 | return 0; |
23248 | 23199 | } |
23249 | 23200 | _ACEOF |
23250 | rm -f conftest.$ac_objext conftest$ac_exeext | |
23201 | for ac_lib in '' cposix; do | |
23202 | if test -z "$ac_lib"; then | |
23203 | ac_res="none required" | |
23204 | else | |
23205 | ac_res=-l$ac_lib | |
23206 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | |
23207 | fi | |
23208 | rm -f conftest.$ac_objext conftest$ac_exeext | |
23251 | 23209 | if { (ac_try="$ac_link" |
23252 | 23210 | case "(($ac_try" in |
23253 | 23211 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; |
23268 | 23226 | test "$cross_compiling" = yes || |
23269 | 23227 | $as_test_x conftest$ac_exeext |
23270 | 23228 | }; then |
23271 | ac_cv_lib_cposix_strerror=yes | |
23229 | ac_cv_search_strerror=$ac_res | |
23272 | 23230 | else |
23273 | 23231 | $as_echo "$as_me: failed program was:" >&5 |
23274 | 23232 | sed 's/^/| /' conftest.$ac_ext >&5 |
23275 | 23233 | |
23276 | ac_cv_lib_cposix_strerror=no | |
23234 | ||
23277 | 23235 | fi |
23278 | 23236 | |
23279 | 23237 | rm -rf conftest.dSYM |
23280 | 23238 | rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ |
23281 | conftest$ac_exeext conftest.$ac_ext | |
23282 | LIBS=$ac_check_lib_save_LIBS | |
23283 | fi | |
23284 | { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 | |
23285 | $as_echo "$ac_cv_lib_cposix_strerror" >&6; } | |
23286 | if test "x$ac_cv_lib_cposix_strerror" = x""yes; then | |
23287 | LIBS="$LIBS -lcposix" | |
23288 | fi | |
23289 | ||
23290 | ||
23239 | conftest$ac_exeext | |
23240 | if test "${ac_cv_search_strerror+set}" = set; then | |
23241 | break | |
23242 | fi | |
23243 | done | |
23244 | if test "${ac_cv_search_strerror+set}" = set; then | |
23245 | : | |
23246 | else | |
23247 | ac_cv_search_strerror=no | |
23248 | fi | |
23249 | rm conftest.$ac_ext | |
23250 | LIBS=$ac_func_search_save_LIBS | |
23251 | fi | |
23252 | { $as_echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 | |
23253 | $as_echo "$ac_cv_search_strerror" >&6; } | |
23254 | ac_res=$ac_cv_search_strerror | |
23255 | if test "$ac_res" != no; then | |
23256 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | |
23257 | ||
23258 | fi | |
23291 | 23259 | |
23292 | 23260 | |
23293 | 23261 | |
24478 | 24446 | $as_echo "$flag_ok" >&6; } |
24479 | 24447 | |
24480 | 24448 | |
24481 | if test "x$FS2_CVS" != "xno" | |
24482 | then | |
24483 | ||
24484 | { $as_echo "$as_me:$LINENO: checking to see if compiler understands -Werror" >&5 | |
24485 | $as_echo_n "checking to see if compiler understands -Werror... " >&6; } | |
24449 | ||
24450 | { $as_echo "$as_me:$LINENO: checking to see if compiler understands -Wdeclaration-after-statement" >&5 | |
24451 | $as_echo_n "checking to see if compiler understands -Wdeclaration-after-statement... " >&6; } | |
24486 | 24452 | |
24487 | 24453 | save_CFLAGS="$CFLAGS" |
24488 | CFLAGS="$CFLAGS -Werror" | |
24454 | CFLAGS="$CFLAGS -Wdeclaration-after-statement" | |
24489 | 24455 | |
24490 | 24456 | cat >conftest.$ac_ext <<_ACEOF |
24491 | 24457 | /* confdefs.h. */ |
24532 | 24498 | CFLAGS="$save_CFLAGS" |
24533 | 24499 | |
24534 | 24500 | if test "X$flag_ok" = Xyes ; then |
24535 | ERROR_CFLAGS="$ERROR_CFLAGS -Werror" | |
24501 | ERROR_CFLAGS="$ERROR_CFLAGS -Wdeclaration-after-statement" | |
24536 | 24502 | true |
24537 | 24503 | else |
24538 | 24504 | |
24542 | 24508 | $as_echo "$flag_ok" >&6; } |
24543 | 24509 | |
24544 | 24510 | |
24545 | if test "x$ERROR_CFLAGS" == "x" | |
24546 | then | |
24547 | ||
24548 | { $as_echo "$as_me:$LINENO: checking to see if compiler understands -errwarn=%all" >&5 | |
24549 | $as_echo_n "checking to see if compiler understands -errwarn=%all... " >&6; } | |
24511 | ||
24512 | { $as_echo "$as_me:$LINENO: checking to see if compiler understands -Wvla" >&5 | |
24513 | $as_echo_n "checking to see if compiler understands -Wvla... " >&6; } | |
24550 | 24514 | |
24551 | 24515 | save_CFLAGS="$CFLAGS" |
24552 | CFLAGS="$CFLAGS -errwarn=%all" | |
24516 | CFLAGS="$CFLAGS -Wvla" | |
24553 | 24517 | |
24554 | 24518 | cat >conftest.$ac_ext <<_ACEOF |
24555 | 24519 | /* confdefs.h. */ |
24596 | 24560 | CFLAGS="$save_CFLAGS" |
24597 | 24561 | |
24598 | 24562 | if test "X$flag_ok" = Xyes ; then |
24599 | ||
24600 | ERROR_CFLAGS="-errwarn=%all" | |
24601 | for f in 'no%E_EMPTY_DECLARATION' \ | |
24602 | 'no%E_STATEMENT_NOT_REACHED' \ | |
24603 | 'no%E_ARGUEMENT_MISMATCH' \ | |
24604 | 'no%E_MACRO_REDEFINED' | |
24605 | do | |
24606 | ||
24607 | { $as_echo "$as_me:$LINENO: checking to see if compiler understands -errwarn=%all,$f" >&5 | |
24608 | $as_echo_n "checking to see if compiler understands -errwarn=%all,$f... " >&6; } | |
24563 | ERROR_CFLAGS="$ERROR_CFLAGS -Wvla" | |
24564 | true | |
24565 | else | |
24566 | ||
24567 | true | |
24568 | fi | |
24569 | { $as_echo "$as_me:$LINENO: result: $flag_ok" >&5 | |
24570 | $as_echo "$flag_ok" >&6; } | |
24571 | ||
24572 | ||
24573 | if test "x$FS2_CVS" != "xno" | |
24574 | then | |
24575 | ||
24576 | { $as_echo "$as_me:$LINENO: checking to see if compiler understands -Werror" >&5 | |
24577 | $as_echo_n "checking to see if compiler understands -Werror... " >&6; } | |
24609 | 24578 | |
24610 | 24579 | save_CFLAGS="$CFLAGS" |
24611 | CFLAGS="$CFLAGS -errwarn=%all,$f" | |
24580 | CFLAGS="$CFLAGS -Werror" | |
24612 | 24581 | |
24613 | 24582 | cat >conftest.$ac_ext <<_ACEOF |
24614 | 24583 | /* confdefs.h. */ |
24655 | 24624 | CFLAGS="$save_CFLAGS" |
24656 | 24625 | |
24657 | 24626 | if test "X$flag_ok" = Xyes ; then |
24658 | ||
24659 | ERROR_CFLAGS="$ERROR_CFLAGS,$f" | |
24660 | ||
24627 | ERROR_CFLAGS="$ERROR_CFLAGS -Werror" | |
24661 | 24628 | true |
24662 | 24629 | else |
24663 | 24630 | |
24666 | 24633 | { $as_echo "$as_me:$LINENO: result: $flag_ok" >&5 |
24667 | 24634 | $as_echo "$flag_ok" >&6; } |
24668 | 24635 | |
24636 | ||
24637 | if test "x$ERROR_CFLAGS" == "x" | |
24638 | then | |
24639 | ||
24640 | { $as_echo "$as_me:$LINENO: checking to see if compiler understands -errwarn=%all" >&5 | |
24641 | $as_echo_n "checking to see if compiler understands -errwarn=%all... " >&6; } | |
24642 | ||
24643 | save_CFLAGS="$CFLAGS" | |
24644 | CFLAGS="$CFLAGS -errwarn=%all" | |
24645 | ||
24646 | cat >conftest.$ac_ext <<_ACEOF | |
24647 | /* confdefs.h. */ | |
24648 | _ACEOF | |
24649 | cat confdefs.h >>conftest.$ac_ext | |
24650 | cat >>conftest.$ac_ext <<_ACEOF | |
24651 | /* end confdefs.h. */ | |
24652 | ||
24653 | int | |
24654 | main () | |
24655 | { | |
24656 | ||
24657 | ; | |
24658 | return 0; | |
24659 | } | |
24660 | _ACEOF | |
24661 | rm -f conftest.$ac_objext | |
24662 | if { (ac_try="$ac_compile" | |
24663 | case "(($ac_try" in | |
24664 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | |
24665 | *) ac_try_echo=$ac_try;; | |
24666 | esac | |
24667 | eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" | |
24668 | $as_echo "$ac_try_echo") >&5 | |
24669 | (eval "$ac_compile") 2>conftest.er1 | |
24670 | ac_status=$? | |
24671 | grep -v '^ *+' conftest.er1 >conftest.err | |
24672 | rm -f conftest.er1 | |
24673 | cat conftest.err >&5 | |
24674 | $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
24675 | (exit $ac_status); } && { | |
24676 | test -z "$ac_c_werror_flag" || | |
24677 | test ! -s conftest.err | |
24678 | } && test -s conftest.$ac_objext; then | |
24679 | flag_ok=yes | |
24680 | else | |
24681 | $as_echo "$as_me: failed program was:" >&5 | |
24682 | sed 's/^/| /' conftest.$ac_ext >&5 | |
24683 | ||
24684 | flag_ok=no | |
24685 | fi | |
24686 | ||
24687 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | |
24688 | CFLAGS="$save_CFLAGS" | |
24689 | ||
24690 | if test "X$flag_ok" = Xyes ; then | |
24691 | ||
24692 | ERROR_CFLAGS="-errwarn=%all" | |
24693 | for f in 'no%E_EMPTY_DECLARATION' \ | |
24694 | 'no%E_STATEMENT_NOT_REACHED' \ | |
24695 | 'no%E_ARGUEMENT_MISMATCH' \ | |
24696 | 'no%E_MACRO_REDEFINED' \ | |
24697 | 'no%E_LOOP_NOT_ENTERED_AT_TOP' | |
24698 | do | |
24699 | ||
24700 | { $as_echo "$as_me:$LINENO: checking to see if compiler understands -errwarn=%all,$f" >&5 | |
24701 | $as_echo_n "checking to see if compiler understands -errwarn=%all,$f... " >&6; } | |
24702 | ||
24703 | save_CFLAGS="$CFLAGS" | |
24704 | CFLAGS="$CFLAGS -errwarn=%all,$f" | |
24705 | ||
24706 | cat >conftest.$ac_ext <<_ACEOF | |
24707 | /* confdefs.h. */ | |
24708 | _ACEOF | |
24709 | cat confdefs.h >>conftest.$ac_ext | |
24710 | cat >>conftest.$ac_ext <<_ACEOF | |
24711 | /* end confdefs.h. */ | |
24712 | ||
24713 | int | |
24714 | main () | |
24715 | { | |
24716 | ||
24717 | ; | |
24718 | return 0; | |
24719 | } | |
24720 | _ACEOF | |
24721 | rm -f conftest.$ac_objext | |
24722 | if { (ac_try="$ac_compile" | |
24723 | case "(($ac_try" in | |
24724 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | |
24725 | *) ac_try_echo=$ac_try;; | |
24726 | esac | |
24727 | eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" | |
24728 | $as_echo "$ac_try_echo") >&5 | |
24729 | (eval "$ac_compile") 2>conftest.er1 | |
24730 | ac_status=$? | |
24731 | grep -v '^ *+' conftest.er1 >conftest.err | |
24732 | rm -f conftest.er1 | |
24733 | cat conftest.err >&5 | |
24734 | $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
24735 | (exit $ac_status); } && { | |
24736 | test -z "$ac_c_werror_flag" || | |
24737 | test ! -s conftest.err | |
24738 | } && test -s conftest.$ac_objext; then | |
24739 | flag_ok=yes | |
24740 | else | |
24741 | $as_echo "$as_me: failed program was:" >&5 | |
24742 | sed 's/^/| /' conftest.$ac_ext >&5 | |
24743 | ||
24744 | flag_ok=no | |
24745 | fi | |
24746 | ||
24747 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | |
24748 | CFLAGS="$save_CFLAGS" | |
24749 | ||
24750 | if test "X$flag_ok" = Xyes ; then | |
24751 | ||
24752 | ERROR_CFLAGS="$ERROR_CFLAGS,$f" | |
24753 | ||
24754 | true | |
24755 | else | |
24756 | ||
24757 | true | |
24758 | fi | |
24759 | { $as_echo "$as_me:$LINENO: result: $flag_ok" >&5 | |
24760 | $as_echo "$flag_ok" >&6; } | |
24761 | ||
24669 | 24762 | done |
24670 | 24763 | |
24764 | true | |
24765 | else | |
24766 | ||
24767 | true | |
24768 | fi | |
24769 | { $as_echo "$as_me:$LINENO: result: $flag_ok" >&5 | |
24770 | $as_echo "$flag_ok" >&6; } | |
24771 | ||
24772 | else | |
24773 | ||
24774 | { $as_echo "$as_me:$LINENO: checking to see if compiler understands -fno-strict-aliasing" >&5 | |
24775 | $as_echo_n "checking to see if compiler understands -fno-strict-aliasing... " >&6; } | |
24776 | ||
24777 | save_CFLAGS="$CFLAGS" | |
24778 | CFLAGS="$CFLAGS -fno-strict-aliasing" | |
24779 | ||
24780 | cat >conftest.$ac_ext <<_ACEOF | |
24781 | /* confdefs.h. */ | |
24782 | _ACEOF | |
24783 | cat confdefs.h >>conftest.$ac_ext | |
24784 | cat >>conftest.$ac_ext <<_ACEOF | |
24785 | /* end confdefs.h. */ | |
24786 | ||
24787 | int | |
24788 | main () | |
24789 | { | |
24790 | ||
24791 | ; | |
24792 | return 0; | |
24793 | } | |
24794 | _ACEOF | |
24795 | rm -f conftest.$ac_objext | |
24796 | if { (ac_try="$ac_compile" | |
24797 | case "(($ac_try" in | |
24798 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | |
24799 | *) ac_try_echo=$ac_try;; | |
24800 | esac | |
24801 | eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" | |
24802 | $as_echo "$ac_try_echo") >&5 | |
24803 | (eval "$ac_compile") 2>conftest.er1 | |
24804 | ac_status=$? | |
24805 | grep -v '^ *+' conftest.er1 >conftest.err | |
24806 | rm -f conftest.er1 | |
24807 | cat conftest.err >&5 | |
24808 | $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
24809 | (exit $ac_status); } && { | |
24810 | test -z "$ac_c_werror_flag" || | |
24811 | test ! -s conftest.err | |
24812 | } && test -s conftest.$ac_objext; then | |
24813 | flag_ok=yes | |
24814 | else | |
24815 | $as_echo "$as_me: failed program was:" >&5 | |
24816 | sed 's/^/| /' conftest.$ac_ext >&5 | |
24817 | ||
24818 | flag_ok=no | |
24819 | fi | |
24820 | ||
24821 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | |
24822 | CFLAGS="$save_CFLAGS" | |
24823 | ||
24824 | if test "X$flag_ok" = Xyes ; then | |
24825 | ERROR_CFLAGS="$ERROR_CFLAGS -fno-strict-aliasing" | |
24671 | 24826 | true |
24672 | 24827 | else |
24673 | 24828 | |
24849 | 25004 | |
24850 | 25005 | if test "x$WANT_PYTHON" = "xyes"; then |
24851 | 25006 | |
24852 | ||
24853 | ||
24854 | ||
24855 | # Find any Python interpreter. | |
24856 | if test -z "$PYTHON"; then | |
24857 | for ac_prog in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 | |
24858 | do | |
24859 | # Extract the first word of "$ac_prog", so it can be a program name with args. | |
24860 | set dummy $ac_prog; ac_word=$2 | |
24861 | { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 | |
24862 | $as_echo_n "checking for $ac_word... " >&6; } | |
24863 | if test "${ac_cv_path_PYTHON+set}" = set; then | |
24864 | $as_echo_n "(cached) " >&6 | |
24865 | else | |
24866 | case $PYTHON in | |
24867 | [\\/]* | ?:[\\/]*) | |
24868 | ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. | |
24869 | ;; | |
24870 | *) | |
24871 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
24872 | for as_dir in $PATH | |
24873 | do | |
24874 | IFS=$as_save_IFS | |
24875 | test -z "$as_dir" && as_dir=. | |
24876 | for ac_exec_ext in '' $ac_executable_extensions; do | |
24877 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | |
24878 | ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" | |
24879 | $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
24880 | break 2 | |
24881 | fi | |
24882 | done | |
24883 | done | |
24884 | IFS=$as_save_IFS | |
24885 | ||
24886 | ;; | |
24887 | esac | |
24888 | fi | |
24889 | PYTHON=$ac_cv_path_PYTHON | |
24890 | if test -n "$PYTHON"; then | |
24891 | { $as_echo "$as_me:$LINENO: result: $PYTHON" >&5 | |
24892 | $as_echo "$PYTHON" >&6; } | |
24893 | else | |
24894 | { $as_echo "$as_me:$LINENO: result: no" >&5 | |
24895 | $as_echo "no" >&6; } | |
24896 | fi | |
24897 | ||
24898 | ||
24899 | test -n "$PYTHON" && break | |
24900 | done | |
24901 | test -n "$PYTHON" || PYTHON=":" | |
24902 | ||
24903 | fi | |
24904 | am_display_PYTHON=python | |
24905 | ||
24906 | ||
24907 | if test "$PYTHON" = :; then | |
24908 | { { $as_echo "$as_me:$LINENO: error: no suitable Python interpreter found" >&5 | |
24909 | $as_echo "$as_me: error: no suitable Python interpreter found" >&2;} | |
24910 | { (exit 1); exit 1; }; } | |
24911 | else | |
24912 | ||
24913 | ||
24914 | { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5 | |
24915 | $as_echo_n "checking for $am_display_PYTHON version... " >&6; } | |
24916 | if test "${am_cv_python_version+set}" = set; then | |
24917 | $as_echo_n "(cached) " >&6 | |
24918 | else | |
24919 | am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"` | |
24920 | fi | |
24921 | { $as_echo "$as_me:$LINENO: result: $am_cv_python_version" >&5 | |
24922 | $as_echo "$am_cv_python_version" >&6; } | |
24923 | PYTHON_VERSION=$am_cv_python_version | |
24924 | ||
24925 | ||
24926 | ||
24927 | PYTHON_PREFIX='${prefix}' | |
24928 | ||
24929 | PYTHON_EXEC_PREFIX='${exec_prefix}' | |
24930 | ||
24931 | ||
24932 | ||
24933 | { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5 | |
24934 | $as_echo_n "checking for $am_display_PYTHON platform... " >&6; } | |
24935 | if test "${am_cv_python_platform+set}" = set; then | |
24936 | $as_echo_n "(cached) " >&6 | |
24937 | else | |
24938 | am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"` | |
24939 | fi | |
24940 | { $as_echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5 | |
24941 | $as_echo "$am_cv_python_platform" >&6; } | |
24942 | PYTHON_PLATFORM=$am_cv_python_platform | |
24943 | ||
24944 | ||
24945 | ||
24946 | ||
24947 | { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5 | |
24948 | $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } | |
24949 | if test "${am_cv_python_pythondir+set}" = set; then | |
24950 | $as_echo_n "(cached) " >&6 | |
24951 | else | |
24952 | am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || | |
24953 | echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` | |
24954 | fi | |
24955 | { $as_echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5 | |
24956 | $as_echo "$am_cv_python_pythondir" >&6; } | |
24957 | pythondir=$am_cv_python_pythondir | |
24958 | ||
24959 | ||
24960 | ||
24961 | pkgpythondir=\${pythondir}/$PACKAGE | |
24962 | ||
24963 | ||
24964 | { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5 | |
24965 | $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } | |
24966 | if test "${am_cv_python_pyexecdir+set}" = set; then | |
24967 | $as_echo_n "(cached) " >&6 | |
24968 | else | |
24969 | am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || | |
24970 | echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"` | |
24971 | fi | |
24972 | { $as_echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5 | |
24973 | $as_echo "$am_cv_python_pyexecdir" >&6; } | |
24974 | pyexecdir=$am_cv_python_pyexecdir | |
24975 | ||
24976 | ||
24977 | ||
24978 | pkgpyexecdir=\${pyexecdir}/$PACKAGE | |
24979 | ||
24980 | ||
24981 | ||
24982 | fi | |
24983 | ||
24984 | ||
24985 | ||
24986 | 25007 | { $as_echo "$as_me:$LINENO: checking for headers required to compile python extensions" >&5 |
24987 | 25008 | $as_echo_n "checking for headers required to compile python extensions... " >&6; } |
24988 | 25009 | py_prefix=`$PYTHON -c "import sys; print sys.prefix"` |
25414 | 25435 | Usually this means the macro was only invoked conditionally." >&2;} |
25415 | 25436 | { (exit 1); exit 1; }; } |
25416 | 25437 | fi |
25417 | if test -z "${USE_NICE_TRUE}" && test -z "${USE_NICE_FALSE}"; then | |
25418 | { { $as_echo "$as_me:$LINENO: error: conditional \"USE_NICE\" was never defined. | |
25419 | Usually this means the macro was only invoked conditionally." >&5 | |
25420 | $as_echo "$as_me: error: conditional \"USE_NICE\" was never defined. | |
25421 | Usually this means the macro was only invoked conditionally." >&2;} | |
25422 | { (exit 1); exit 1; }; } | |
25423 | fi | |
25424 | 25438 | |
25425 | 25439 | if test -z "${HAVE_CPU_I386_TRUE}" && test -z "${HAVE_CPU_I386_FALSE}"; then |
25426 | 25440 | { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_CPU_I386\" was never defined. |
25891 | 25905 | # report actual input values of CONFIG_FILES etc. instead of their |
25892 | 25906 | # values after options handling. |
25893 | 25907 | ac_log=" |
25894 | This file was extended by Farsight2 $as_me 0.0.8, which was | |
25908 | This file was extended by Farsight2 $as_me 0.0.9, which was | |
25895 | 25909 | generated by GNU Autoconf 2.63. Invocation command line was |
25896 | 25910 | |
25897 | 25911 | CONFIG_FILES = $CONFIG_FILES |
25954 | 25968 | _ACEOF |
25955 | 25969 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
25956 | 25970 | ac_cs_version="\\ |
25957 | Farsight2 config.status 0.0.8 | |
25971 | Farsight2 config.status 0.0.9 | |
25958 | 25972 | configured by $0, generated by GNU Autoconf 2.63, |
25959 | 25973 | with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" |
25960 | 25974 |
4 | 4 | dnl initialize autoconf |
5 | 5 | dnl releases only do -Wall, cvs and prerelease does -Werror too |
6 | 6 | dnl use a three digit version number for releases, and four for cvs/prerelease |
7 | AC_INIT(Farsight2, 0.0.8, | |
7 | AC_INIT(Farsight2, 0.0.9, | |
8 | 8 | https://bugs.freedesktop.org/enter_bug.cgi?product=Farsight, |
9 | 9 | farsight2) |
10 | 10 | |
153 | 153 | [FS2_TRANSMITTER_PLUGINS_SELECTED=$FS2_TRANSMITTER_PLUGINS_ALL]) |
154 | 154 | |
155 | 155 | |
156 | dnl check for libnice | |
157 | if echo $FS2_TRANSMITTER_PLUGINS_SELECTED | grep -qi nice; then | |
158 | ||
159 | NICE_REQUIRED=0.0.3 | |
160 | ||
161 | PKG_CHECK_MODULES(NICE, \ | |
162 | nice >= $NICE_REQUIRED, | |
163 | HAVE_NICE=yes, | |
164 | HAVE_NICE=no) | |
165 | ||
166 | if test "x$HAVE_NICE" = "xno"; then | |
167 | if test "x$TRANSMITTERS_DEFAULT" = "xyes"; then | |
168 | FS2_TRANSMITTER_PLUGINS_SELECTED="${FS2_TRANSMITTER_PLUGINS_SELECTED/nice/}" | |
169 | AC_MSG_WARN([Will not build libnice transmitter because libnice is not available]) | |
170 | else | |
171 | AC_MSG_ERROR([Can not build requested libnice transmitter because libnice is not installed]) | |
172 | fi | |
173 | else | |
174 | USE_NICE=yes | |
175 | fi | |
176 | ||
177 | AC_SUBST(NICE_CFLAGS) | |
178 | AC_SUBST(NICE_LIBS) | |
179 | else | |
180 | AC_MSG_NOTICE(nice transmitter disabled by user request) | |
181 | fi | |
182 | ||
183 | AM_CONDITIONAL(USE_NICE, test "x$USE_NICE" == "xyes") | |
156 | NICE_REQUIRED=0.0.3 | |
157 | ||
158 | PKG_CHECK_MODULES(NICE, \ | |
159 | nice >= $NICE_REQUIRED,, AC_MSG_ERROR([Need libnice >= $NICE_REQUIRED])) | |
160 | AC_SUBST(NICE_CFLAGS) | |
161 | AC_SUBST(NICE_LIBS) | |
184 | 162 | |
185 | 163 | AC_SUBST(FS2_TRANSMITTER_PLUGINS_SELECTED) |
186 | 164 | |
206 | 184 | |
207 | 185 | dnl check for documentation tools |
208 | 186 | GTK_DOC_CHECK([1.8]) |
209 | AS_PATH_PYTHON([2.4]) | |
187 | AM_PATH_PYTHON([2.4]) | |
210 | 188 | LT_AC_PROG_SED |
211 | 189 | AG_GST_PLUGIN_DOCS([1.8],[2.1]) |
212 | 190 | AC_SUBST(SED) |
354 | 332 | esac], |
355 | 333 | WANT_PYTHON=yes) |
356 | 334 | if test "x$WANT_PYTHON" = "xyes"; then |
357 | AM_PATH_PYTHON | |
358 | 335 | AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)]) |
359 | 336 | PKG_CHECK_MODULES(PYFARSIGHT, [ pygobject-2.0 >= 2.12.0 |
360 | 337 | gst-python-0.10 >= 0.10.10 |
38 | 38 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
40 | 40 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
41 | $(top_srcdir)/common/m4/as-python.m4 \ | |
42 | 41 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/as-version.m4 \ |
44 | 43 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gst.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
53 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
54 | 52 | $(top_srcdir)/common/m4/pkg.m4 \ |
55 | 53 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
56 | 54 | $(top_srcdir)/configure.ac |
186 | 184 | PKG_CONFIG = @PKG_CONFIG@ |
187 | 185 | PLUGINDIR = @PLUGINDIR@ |
188 | 186 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
189 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
190 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
191 | 187 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
192 | 188 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
193 | 189 | PYTHON = @PYTHON@ |
46 | 46 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
47 | 47 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
48 | 48 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
49 | $(top_srcdir)/common/m4/as-python.m4 \ | |
50 | 49 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/as-version.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
58 | 57 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
59 | 58 | $(top_srcdir)/common/m4/gst.m4 \ |
60 | 59 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
61 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
62 | 60 | $(top_srcdir)/common/m4/pkg.m4 \ |
63 | 61 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
64 | 62 | $(top_srcdir)/configure.ac |
182 | 180 | PKG_CONFIG = @PKG_CONFIG@ |
183 | 181 | PLUGINDIR = @PLUGINDIR@ |
184 | 182 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
185 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
186 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
187 | 183 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
188 | 184 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
189 | 185 | PYTHON = @PYTHON@ |
365 | 361 | SCANOBJ_FILES = \ |
366 | 362 | $(DOC_MODULE).args \ |
367 | 363 | $(DOC_MODULE).hierarchy \ |
368 | $(DOC_MODULE).interfaces \ | |
364 | $(DOC_MODULE).interfaces \ | |
369 | 365 | $(DOC_MODULE).prerequisites \ |
370 | .libs/$(DOC_MODULE)-scan.o \ | |
371 | $(DOC_MODULE).signals | |
366 | $(DOC_MODULE).signals \ | |
367 | .libs/$(DOC_MODULE)-scan.o | |
372 | 368 | |
373 | 369 | REPORT_FILES = \ |
374 | 370 | $(DOC_MODULE)-undocumented.txt \ |
375 | 371 | $(DOC_MODULE)-undeclared.txt \ |
376 | 372 | $(DOC_MODULE)-unused.txt |
377 | 373 | |
378 | CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) | |
374 | CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) doc-registry.xml | |
379 | 375 | all: all-am |
380 | 376 | |
381 | 377 | .SUFFIXES: |
567 | 563 | @ENABLE_GTK_DOC_TRUE@ fi ; \ |
568 | 564 | @ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd` \ |
569 | 565 | @ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_PATH= \ |
570 | @ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ | |
571 | @ENABLE_GTK_DOC_TRUE@ CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" \ | |
566 | @ENABLE_GTK_DOC_TRUE@ GST_REGISTRY=doc-registry.xml \ | |
567 | @ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ | |
568 | @ENABLE_GTK_DOC_TRUE@ CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" \ | |
569 | @ENABLE_GTK_DOC_TRUE@ LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ | |
572 | 570 | @ENABLE_GTK_DOC_TRUE@ gtkdoc-scangobj --type-init-func="gst_init(NULL,NULL)" \ |
573 | 571 | @ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) ; \ |
574 | 572 | @ENABLE_GTK_DOC_TRUE@ else \ |
612 | 610 | #### xml #### |
613 | 611 | |
614 | 612 | ### FIXME: make this error out again when docs are complete |
615 | @ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) | |
613 | @ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(expand_content_files) | |
616 | 614 | @ENABLE_GTK_DOC_TRUE@ @echo '*** Building XML ***' |
617 | @ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log | |
615 | @ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --expand-content-files="$(expand_content_files)" --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log | |
618 | 616 | @ENABLE_GTK_DOC_TRUE@ @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi |
617 | @ENABLE_GTK_DOC_TRUE@ cp ../version.entities xml | |
619 | 618 | @ENABLE_GTK_DOC_TRUE@ rm sgml-build.log |
620 | 619 | @ENABLE_GTK_DOC_TRUE@ touch sgml-build.stamp |
621 | 620 | |
642 | 641 | @ENABLE_GTK_DOC_TRUE@ test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ |
643 | 642 | @ENABLE_GTK_DOC_TRUE@ if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done |
644 | 643 | @ENABLE_GTK_DOC_TRUE@ @echo '-- Fixing Crossreferences' |
645 | @ENABLE_GTK_DOC_TRUE@ gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) | |
644 | @ENABLE_GTK_DOC_TRUE@ gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) | |
646 | 645 | @ENABLE_GTK_DOC_TRUE@ touch html-build.stamp |
646 | ||
647 | @ENABLE_GTK_DOC_TRUE@clean-local-gtkdoc: | |
648 | @ENABLE_GTK_DOC_TRUE@ rm -rf xml tmpl html | |
649 | # clean files copied for nonsrcdir templates build | |
650 | @ENABLE_GTK_DOC_TRUE@ if test x"$(srcdir)" != x. ; then \ | |
651 | @ENABLE_GTK_DOC_TRUE@ rm -rf $(DOC_MODULE).types; \ | |
652 | @ENABLE_GTK_DOC_TRUE@ fi | |
647 | 653 | @ENABLE_GTK_DOC_FALSE@all-local: |
648 | ||
649 | clean-local: | |
654 | @ENABLE_GTK_DOC_FALSE@clean-local-gtkdoc: | |
655 | ||
656 | clean-local: clean-local-gtkdoc | |
650 | 657 | rm -f *~ *.bak |
651 | rm -rf xml html | |
652 | 658 | rm -rf .libs |
653 | ||
654 | maintainer-clean-local: clean | |
655 | cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt | |
656 | 659 | |
657 | 660 | # company: don't delete .sgml and -sections.txt as they're in CVS |
658 | 661 | # FIXME : thomas added all sgml files and some other things to make |
659 | 662 | # make distcheck work |
660 | 663 | distclean-local: clean |
661 | rm -f $(DOC_MODULE)-decl-list.txt | |
662 | rm -f $(DOC_MODULE)-decl.txt | |
663 | rm -f $(REPORT_FILES) | |
664 | rm -f $(REPORT_FILES) \ | |
665 | $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt | |
664 | 666 | rm -rf tmpl/*.sgml.bak |
665 | 667 | rm -f $(DOC_MODULE).hierarchy |
666 | 668 | rm -f *.stamp || true |
675 | 677 | fi |
676 | 678 | rm -rf *.o |
677 | 679 | |
680 | maintainer-clean-local: clean | |
681 | cd $(srcdir) && rm -rf html \ | |
682 | xml $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt | |
683 | ||
678 | 684 | # thomas: make docs parallel installable; devhelp requires majorminor too |
679 | 685 | install-data-local: |
680 | $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR) | |
681 | (installfiles=`echo ./html/*.html`; \ | |
682 | if test "$$installfiles" = './html/*.html'; \ | |
686 | (installfiles=`echo $(srcdir)/html/*.sgml $(srcdir)/html/*.html $(srcdir)/html/*.png $(srcdir)/html/*.css`; \ | |
687 | if test "$$installfiles" = '$(srcdir)/html/*.sgml $(srcdir)/html/*.html $(srcdir)/html/*.png $(srcdir)/html/*.css'; \ | |
683 | 688 | then echo '-- Nothing to install' ; \ |
684 | 689 | else \ |
690 | $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ | |
685 | 691 | for i in $$installfiles; do \ |
686 | 692 | echo '-- Installing '$$i ; \ |
687 | 693 | $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ |
688 | 694 | done; \ |
689 | pngfiles=`echo ./html/*.png`; \ | |
690 | if test "$$pngfiles" != './html/*.png'; then \ | |
691 | for i in $$pngfiles; do \ | |
692 | echo '-- Installing '$$i ; \ | |
693 | $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ | |
694 | done; \ | |
695 | fi; \ | |
696 | 695 | echo '-- Installing $(srcdir)/html/$(DOC_MODULE).devhelp' ; \ |
697 | 696 | $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp \ |
698 | 697 | $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ |
699 | 698 | if test -e $(srcdir)/html/$(DOC_MODULE).devhelp2; then \ |
700 | $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp2 \ | |
699 | $(INSTALL_DATA) $(srcdir)/html/$(DOC_MODULE).devhelp2 \ | |
701 | 700 | $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ |
702 | 701 | fi; \ |
703 | echo '-- Installing $(srcdir)/html/index.sgml' ; \ | |
704 | $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \ | |
705 | if test -e $(srcdir)/html/style.css; then \ | |
706 | echo '-- Installing $(srcdir)/html/style.css' ; \ | |
707 | $(INSTALL_DATA) $(srcdir)/html/style.css $(DESTDIR)$(TARGET_DIR); \ | |
708 | fi; \ | |
702 | (which gtkdoc-rebase >/dev/null && \ | |
703 | gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \ | |
709 | 704 | fi) |
710 | 705 | uninstall-local: |
711 | (installfiles=`echo ./html/*.html`; \ | |
712 | if test "$$installfiles" = './html/*.html'; \ | |
713 | then echo '-- Nothing to uninstall' ; \ | |
706 | if test -d $(DESTDIR)$(TARGET_DIR); then \ | |
707 | rm -rf $(DESTDIR)$(TARGET_DIR)/*; \ | |
708 | rmdir -p $(DESTDIR)$(TARGET_DIR) 2>/dev/null || true; \ | |
714 | 709 | else \ |
715 | for i in $$installfiles; do \ | |
716 | rmfile=`basename $$i` ; \ | |
717 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ | |
718 | rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ | |
719 | done; \ | |
720 | pngfiles=`echo ./html/*.png`; \ | |
721 | if test "$$pngfiles" != './html/*.png'; then \ | |
722 | for i in $$pngfiles; do \ | |
723 | rmfile=`basename $$i` ; \ | |
724 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/'$$rmfile ; \ | |
725 | rm -f $(DESTDIR)$(TARGET_DIR)/$$rmfile; \ | |
726 | done; \ | |
727 | fi; \ | |
728 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE).devhelp' ; \ | |
729 | rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ | |
730 | if test -e $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; then \ | |
731 | rm -f $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ | |
732 | fi; \ | |
733 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/index.sgml' ; \ | |
734 | rm -f $(DESTDIR)$(TARGET_DIR)/index.sgml; \ | |
735 | if test -e $(DESTDIR)$(TARGET_DIR)/style.css; then \ | |
736 | echo '-- Uninstalling $(DESTDIR)$(TARGET_DIR)/style.css' ; \ | |
737 | rm -f $(DESTDIR)$(TARGET_DIR)/style.css; \ | |
738 | fi; \ | |
739 | fi) | |
740 | if test -d $(DESTDIR)$(TARGET_DIR); then rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(TARGET_DIR) 2>/dev/null; fi; true | |
710 | echo '-- Nothing to uninstall' ; \ | |
711 | fi; | |
741 | 712 | |
742 | 713 | # |
743 | 714 | # Require gtk-doc when making dist |
748 | 719 | @ENABLE_GTK_DOC_FALSE@ @false |
749 | 720 | |
750 | 721 | dist-hook: dist-check-gtkdoc dist-hook-local |
751 | mkdir $(distdir)/tmpl | |
752 | mkdir $(distdir)/xml | |
753 | 722 | mkdir $(distdir)/html |
754 | -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl | |
755 | -cp $(srcdir)/sgml/*.xml $(distdir)/xml | |
756 | -cp $(srcdir)/html/index.sgml $(distdir)/html | |
757 | -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html | |
758 | -cp $(srcdir)/html/$(DOC_MODULE).devhelp* $(distdir)/html | |
759 | ||
760 | images=$(HTML_IMAGES) ; \ | |
761 | for i in "" $$images ; do \ | |
762 | if test "$$i" != ""; then cp $(srcdir)/$$i $(distdir)/html ; fi; \ | |
763 | done | |
764 | ||
765 | .PHONY : dist-hook-local | |
723 | cp $(srcdir)/html/* $(distdir)/html | |
724 | -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ | |
725 | -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ | |
726 | cd $(distdir) && rm -f $(DISTCLEANFILES) | |
727 | -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html | |
728 | ||
729 | .PHONY : dist-hook-local docs | |
766 | 730 | # Tell versions [3.59,3.63) of GNU make to not export all variables. |
767 | 731 | # Otherwise a system limit (for SysV at least) may be exceeded. |
768 | 732 | .NOEXPORT: |
114 | 114 | ><span class="type">GstBus</span></a>. |
115 | 115 | </p> |
116 | 116 | <div class="refsect2" lang="en"> |
117 | <a name="id2603056"></a><h3>The "<code class="literal">farsight-error</code>" message</h3> | |
117 | <a name="id2576999"></a><h3>The "<code class="literal">farsight-error</code>" message</h3> | |
118 | 118 | <div class="informalexample"><pre class="programlisting"> |
119 | 119 | "src-object" <a |
120 | 120 | href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject" |
170 | 170 | ><span class="type">GstBus</span></a>. |
171 | 171 | </p> |
172 | 172 | <div class="refsect2" lang="en"> |
173 | <a name="id2667034"></a><h3>The "<code class="literal">farsight-send-codec-changed</code>" | |
173 | <a name="id2644079"></a><h3>The "<code class="literal">farsight-send-codec-changed</code>" | |
174 | 174 | message</h3> |
175 | 175 | <div class="informalexample"><pre class="programlisting"> |
176 | 176 | "session" <a class="link" href="FsSession.html" title="FsSession">FsSession</a> The session that emits the message |
183 | 183 | </div> |
184 | 184 | <hr> |
185 | 185 | <div class="refsect2" lang="en"> |
186 | <a name="id2667078"></a><h3>The "<code class="literal">farsight-codecs-changed</code>" | |
186 | <a name="id2644123"></a><h3>The "<code class="literal">farsight-codecs-changed</code>" | |
187 | 187 | message</h3> |
188 | 188 | <div class="informalexample"><pre class="programlisting"> |
189 | 189 | "session" <a class="link" href="FsSession.html" title="FsSession">FsSession</a> The session that emits the message |
146 | 146 | ><span class="type">GstBus</span></a>. |
147 | 147 | </p> |
148 | 148 | <div class="refsect2" lang="en"> |
149 | <a name="id2653821"></a><h3>The "<code class="literal">farsight-new-local-candidate</code>" message</h3> | |
149 | <a name="id2662807"></a><h3>The "<code class="literal">farsight-new-local-candidate</code>" message</h3> | |
150 | 150 | <div class="informalexample"><pre class="programlisting"> |
151 | 151 | "stream" <a class="link" href="FsStream.html" title="FsStream">FsStream</a> The stream that emits the message |
152 | 152 | "candidate" <a class="link" href="farsight2-libs-FsCandidate.html#FsCandidate" title="FsCandidate">FsCandidate</a> The new candidate |
157 | 157 | </div> |
158 | 158 | <hr> |
159 | 159 | <div class="refsect2" lang="en"> |
160 | <a name="id2653858"></a><h3>The "<code class="literal">farsight-local-candidates-prepared</code>" message</h3> | |
160 | <a name="id2662843"></a><h3>The "<code class="literal">farsight-local-candidates-prepared</code>" message</h3> | |
161 | 161 | <div class="informalexample"><pre class="programlisting"> |
162 | 162 | "stream" <a class="link" href="FsStream.html" title="FsStream">FsStream</a> The stream that emits the message |
163 | 163 | </pre></div> |
168 | 168 | </div> |
169 | 169 | <hr> |
170 | 170 | <div class="refsect2" lang="en"> |
171 | <a name="id2653890"></a><h3>The "<code class="literal">farsight-new-active-candidate-pair</code>" message</h3> | |
171 | <a name="id2662875"></a><h3>The "<code class="literal">farsight-new-active-candidate-pair</code>" message</h3> | |
172 | 172 | <div class="informalexample"><pre class="programlisting"> |
173 | 173 | "stream" <a class="link" href="FsStream.html" title="FsStream">FsStream</a> The stream that emits the message |
174 | 174 | "local-candidate" <a class="link" href="farsight2-libs-FsCandidate.html#FsCandidate" title="FsCandidate">FsCandidate</a> Local candidate being used |
184 | 184 | </div> |
185 | 185 | <hr> |
186 | 186 | <div class="refsect2" lang="en"> |
187 | <a name="id2653939"></a><h3>The "<code class="literal">farsight-recv-codecs-changed</code>" message</h3> | |
187 | <a name="id2662924"></a><h3>The "<code class="literal">farsight-recv-codecs-changed</code>" message</h3> | |
188 | 188 | <div class="informalexample"><pre class="programlisting"> |
189 | 189 | "stream" <a class="link" href="FsStream.html" title="FsStream">FsStream</a> The stream that emits the message |
190 | 190 | "codecs" FsCodecGList A <a |
202 | 202 | </div> |
203 | 203 | <hr> |
204 | 204 | <div class="refsect2" lang="en"> |
205 | <a name="id2654007"></a><h3>The "<code class="literal">farsight-component-state-changed</code>" message</h3> | |
205 | <a name="id2662992"></a><h3>The "<code class="literal">farsight-component-state-changed</code>" message</h3> | |
206 | 206 | <div class="informalexample"><pre class="programlisting"> |
207 | 207 | "stream" <a class="link" href="FsStream.html" title="FsStream">FsStream</a> The stream that emits the message |
208 | 208 | "component" <a |
28 | 28 | </tr></table> |
29 | 29 | <div class="chapter" lang="en"> |
30 | 30 | <div class="titlepage"><div><div><h2 class="title"> |
31 | <a name="id2637463"></a>Farsight GStreamer Interfaces</h2></div></div></div> | |
31 | <a name="id2610903"></a>Farsight GStreamer Interfaces</h2></div></div></div> | |
32 | 32 | <div class="toc"><dl><dt> |
33 | 33 | <span class="refentrytitle"><a href="FsConference.html">FsConference</a></span><span class="refpurpose"> — Interface for farsight conference elements</span> |
34 | 34 | </dt></dl></div> |
28 | 28 | </tr></table> |
29 | 29 | <div class="chapter" lang="en"> |
30 | 30 | <div class="titlepage"><div><div><h2 class="title"> |
31 | <a name="id2603642"></a>Farsight Core Library</h2></div></div></div> | |
31 | <a name="id2572026"></a>Farsight Core Library</h2></div></div></div> | |
32 | 32 | <div class="toc"><dl> |
33 | 33 | <dt> |
34 | 34 | <span class="refentrytitle"><a href="FsParticipant.html">FsParticipant</a></span><span class="refpurpose"> — A participant in a conference</span> |
28 | 28 | </tr></table> |
29 | 29 | <div class="chapter" lang="en"> |
30 | 30 | <div class="titlepage"><div><div><h2 class="title"> |
31 | <a name="id2603670"></a>Farsight Utility Functions and Objects</h2></div></div></div> | |
31 | <a name="id2572054"></a>Farsight Utility Functions and Objects</h2></div></div></div> | |
32 | 32 | <div class="toc"><dl> |
33 | 33 | <dt> |
34 | 34 | <span class="refentrytitle"><a href="FsElementAddedNotifier.html">FsElementAddedNotifier</a></span><span class="refpurpose"> — Recursive element addition notifier</span> |
28 | 28 | </tr></table> |
29 | 29 | <div class="chapter" lang="en"> |
30 | 30 | <div class="titlepage"><div><div><h2 class="title"> |
31 | <a name="id2603691"></a>Farsight Classes Base Implementations</h2></div></div></div> | |
31 | <a name="id2610950"></a>Farsight Classes Base Implementations</h2></div></div></div> | |
32 | 32 | <div class="toc"><dl><dt> |
33 | 33 | <span class="refentrytitle"><a href="FsBaseConference.html">FsBaseConference</a></span><span class="refpurpose"> — Base class for Farsight Conference Gstreamer Elements</span> |
34 | 34 | </dt></dl></div> |
28 | 28 | </tr></table> |
29 | 29 | <div class="chapter" lang="en"> |
30 | 30 | <div class="titlepage"><div><div><h2 class="title"> |
31 | <a name="id2637500"></a>Farsight Transmitter Classes</h2></div></div></div> | |
31 | <a name="id2610961"></a>Farsight Transmitter Classes</h2></div></div></div> | |
32 | 32 | <div class="toc"><dl> |
33 | 33 | <dt> |
34 | 34 | <span class="refentrytitle"><a href="FsTransmitter.html">FsTransmitter</a></span><span class="refpurpose"> — A transmitter object linked to a session</span> |
28 | 28 | </tr></table> |
29 | 29 | <div class="chapter" lang="en"> |
30 | 30 | <div class="titlepage"><div><div><h2 class="title"> |
31 | <a name="id2637515"></a>Farsight Plugins Infrastructure</h2></div></div></div> | |
31 | <a name="id2610976"></a>Farsight Plugins Infrastructure</h2></div></div></div> | |
32 | 32 | <div class="toc"><dl><dt> |
33 | 33 | <span class="refentrytitle"><a href="farsight2-libs-FsPlugin.html">FsPlugin</a></span><span class="refpurpose"> — A class for defining Farsight plugins</span> |
34 | 34 | </dt></dl></div> |
31 | 31 | </sub> |
32 | 32 | </chapters> |
33 | 33 | <functions> |
34 | <function name="The "farsight-error" message" link="FsConference.html#id2603056"/> | |
34 | <function name="The "farsight-error" message" link="FsConference.html#id2576999"/> | |
35 | 35 | <function name="FsConference" link="FsConference.html#FsConference-struct"/> |
36 | 36 | <function name="fs_conference_new_session ()" link="FsConference.html#fs-conference-new-session"/> |
37 | 37 | <function name="fs_conference_new_participant ()" link="FsConference.html#fs-conference-new-participant"/> |
44 | 44 | <function name="FS_PARTICIPANT_DATA_UNLOCK()" link="FsParticipant.html#FS-PARTICIPANT-DATA-UNLOCK:CAPS"/> |
45 | 45 | <function name="The "cname" property" link="FsParticipant.html#FsParticipant--cname"/> |
46 | 46 | <function name="The "error" signal" link="FsParticipant.html#FsParticipant-error"/> |
47 | <function name="The "farsight-send-codec-changed" message" link="FsSession.html#id2667034"/> | |
48 | <function name="The "farsight-codecs-changed" message" link="FsSession.html#id2667078"/> | |
47 | <function name="The "farsight-send-codec-changed" message" link="FsSession.html#id2644079"/> | |
48 | <function name="The "farsight-codecs-changed" message" link="FsSession.html#id2644123"/> | |
49 | 49 | <function name="enum FsDTMFEvent" link="FsSession.html#FsDTMFEvent"/> |
50 | 50 | <function name="enum FsDTMFMethod" link="FsSession.html#FsDTMFMethod"/> |
51 | 51 | <function name="FsSession" link="FsSession.html#FsSession-struct"/> |
66 | 66 | <function name="The "media-type" property" link="FsSession.html#FsSession--media-type"/> |
67 | 67 | <function name="The "sink-pad" property" link="FsSession.html#FsSession--sink-pad"/> |
68 | 68 | <function name="The "error" signal" link="FsSession.html#FsSession-error"/> |
69 | <function name="The "farsight-new-local-candidate" message" link="FsStream.html#id2653821"/> | |
70 | <function name="The "farsight-local-candidates-prepared" message" link="FsStream.html#id2653858"/> | |
71 | <function name="The "farsight-new-active-candidate-pair" message" link="FsStream.html#id2653890"/> | |
72 | <function name="The "farsight-recv-codecs-changed" message" link="FsStream.html#id2653939"/> | |
73 | <function name="The "farsight-component-state-changed" message" link="FsStream.html#id2654007"/> | |
69 | <function name="The "farsight-new-local-candidate" message" link="FsStream.html#id2662807"/> | |
70 | <function name="The "farsight-local-candidates-prepared" message" link="FsStream.html#id2662843"/> | |
71 | <function name="The "farsight-new-active-candidate-pair" message" link="FsStream.html#id2662875"/> | |
72 | <function name="The "farsight-recv-codecs-changed" message" link="FsStream.html#id2662924"/> | |
73 | <function name="The "farsight-component-state-changed" message" link="FsStream.html#id2662992"/> | |
74 | 74 | <function name="FsStream" link="FsStream.html#FsStream-struct"/> |
75 | 75 | <function name="FsStreamClass" link="FsStream.html#FsStreamClass"/> |
76 | 76 | <function name="enum FsStreamDirection" link="FsStream.html#FsStreamDirection"/> |
31 | 31 | </sub> |
32 | 32 | </chapters> |
33 | 33 | <functions> |
34 | <keyword type="" name="The "farsight-error" message" link="FsConference.html#id2603056"/> | |
34 | <keyword type="" name="The "farsight-error" message" link="FsConference.html#id2576999"/> | |
35 | 35 | <keyword type="struct" name="FsConference" link="FsConference.html#FsConference-struct"/> |
36 | 36 | <keyword type="function" name="fs_conference_new_session ()" link="FsConference.html#fs-conference-new-session"/> |
37 | 37 | <keyword type="function" name="fs_conference_new_participant ()" link="FsConference.html#fs-conference-new-participant"/> |
44 | 44 | <keyword type="macro" name="FS_PARTICIPANT_DATA_UNLOCK()" link="FsParticipant.html#FS-PARTICIPANT-DATA-UNLOCK:CAPS"/> |
45 | 45 | <keyword type="" name="The "cname" property" link="FsParticipant.html#FsParticipant--cname"/> |
46 | 46 | <keyword type="" name="The "error" signal" link="FsParticipant.html#FsParticipant-error"/> |
47 | <keyword type="" name="The "farsight-send-codec-changed" message" link="FsSession.html#id2667034"/> | |
48 | <keyword type="" name="The "farsight-codecs-changed" message" link="FsSession.html#id2667078"/> | |
47 | <keyword type="" name="The "farsight-send-codec-changed" message" link="FsSession.html#id2644079"/> | |
48 | <keyword type="" name="The "farsight-codecs-changed" message" link="FsSession.html#id2644123"/> | |
49 | 49 | <keyword type="enum" name="enum FsDTMFEvent" link="FsSession.html#FsDTMFEvent"/> |
50 | 50 | <keyword type="enum" name="enum FsDTMFMethod" link="FsSession.html#FsDTMFMethod"/> |
51 | 51 | <keyword type="struct" name="FsSession" link="FsSession.html#FsSession-struct"/> |
66 | 66 | <keyword type="" name="The "media-type" property" link="FsSession.html#FsSession--media-type"/> |
67 | 67 | <keyword type="" name="The "sink-pad" property" link="FsSession.html#FsSession--sink-pad"/> |
68 | 68 | <keyword type="" name="The "error" signal" link="FsSession.html#FsSession-error"/> |
69 | <keyword type="" name="The "farsight-new-local-candidate" message" link="FsStream.html#id2653821"/> | |
70 | <keyword type="" name="The "farsight-local-candidates-prepared" message" link="FsStream.html#id2653858"/> | |
71 | <keyword type="" name="The "farsight-new-active-candidate-pair" message" link="FsStream.html#id2653890"/> | |
72 | <keyword type="" name="The "farsight-recv-codecs-changed" message" link="FsStream.html#id2653939"/> | |
73 | <keyword type="" name="The "farsight-component-state-changed" message" link="FsStream.html#id2654007"/> | |
69 | <keyword type="" name="The "farsight-new-local-candidate" message" link="FsStream.html#id2662807"/> | |
70 | <keyword type="" name="The "farsight-local-candidates-prepared" message" link="FsStream.html#id2662843"/> | |
71 | <keyword type="" name="The "farsight-new-active-candidate-pair" message" link="FsStream.html#id2662875"/> | |
72 | <keyword type="" name="The "farsight-recv-codecs-changed" message" link="FsStream.html#id2662924"/> | |
73 | <keyword type="" name="The "farsight-component-state-changed" message" link="FsStream.html#id2662992"/> | |
74 | 74 | <keyword type="struct" name="FsStream" link="FsStream.html#FsStream-struct"/> |
75 | 75 | <keyword type="struct" name="FsStreamClass" link="FsStream.html#FsStreamClass"/> |
76 | 76 | <keyword type="enum" name="enum FsStreamDirection" link="FsStream.html#FsStreamDirection"/> |
Binary diff not shown
22 | 22 | <div> |
23 | 23 | <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Farsight2 Reference Manual</p></th></tr></table></div> |
24 | 24 | <div><p class="releaseinfo"> |
25 | for version 0.0.7.1. | |
25 | for version 0.0.8.1. | |
26 | 26 | The latest version of this documentation can be found on-line at |
27 | 27 | <a class="ulink" href="http://farsight.freedesktop.org/apidoc/farsight2/" target="_top">http://farsight.freedesktop.org/apidoc/farsight2/</a>. |
28 | 28 | </p></div> |
Binary diff not shown
28 | 28 | </tr></table> |
29 | 29 | <div class="part" lang="en"> |
30 | 30 | <div class="titlepage"><div><div><h1 class="title"> |
31 | <a name="id2637476"></a>Part I. User-oriented classes, interfaces and functions</h1></div></div></div> | |
31 | <a name="id2610916"></a>Part I. User-oriented classes, interfaces and functions</h1></div></div></div> | |
32 | 32 | <div class="toc"> |
33 | 33 | <p><b>Table of Contents</b></p> |
34 | 34 | <dl> |
28 | 28 | </tr></table> |
29 | 29 | <div class="part" lang="en"> |
30 | 30 | <div class="titlepage"><div><div><h1 class="title"> |
31 | <a name="id2603686"></a>Part II. Classes used to implement Farsight plugins</h1></div></div></div> | |
31 | <a name="id2610945"></a>Part II. Classes used to implement Farsight plugins</h1></div></div></div> | |
32 | 32 | <div class="toc"> |
33 | 33 | <p><b>Table of Contents</b></p> |
34 | 34 | <dl> |
Binary diff not shown
Binary diff not shown
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsBaseConference | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsBaseConference ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | ||
25 | <!-- ##### STRUCT FsBaseConferenceClass ##### --> | |
26 | <para> | |
27 | ||
28 | </para> | |
29 | ||
30 | @parent_class: | |
31 | @new_session: | |
32 | @new_participant: | |
33 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsCandidate | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsCandidate ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | @foundation: | |
25 | @component_id: | |
26 | @ip: | |
27 | @port: | |
28 | @base_ip: | |
29 | @base_port: | |
30 | @proto: | |
31 | @priority: | |
32 | @type: | |
33 | @username: | |
34 | @password: | |
35 | @ttl: | |
36 | ||
37 | <!-- ##### ENUM FsCandidateType ##### --> | |
38 | <para> | |
39 | ||
40 | </para> | |
41 | ||
42 | @FS_CANDIDATE_TYPE_HOST: | |
43 | @FS_CANDIDATE_TYPE_SRFLX: | |
44 | @FS_CANDIDATE_TYPE_PRFLX: | |
45 | @FS_CANDIDATE_TYPE_RELAY: | |
46 | @FS_CANDIDATE_TYPE_MULTICAST: | |
47 | ||
48 | <!-- ##### ENUM FsNetworkProtocol ##### --> | |
49 | <para> | |
50 | ||
51 | </para> | |
52 | ||
53 | @FS_NETWORK_PROTOCOL_UDP: | |
54 | @FS_NETWORK_PROTOCOL_TCP: | |
55 | ||
56 | <!-- ##### ENUM FsComponentType ##### --> | |
57 | <para> | |
58 | ||
59 | </para> | |
60 | ||
61 | @FS_COMPONENT_NONE: | |
62 | @FS_COMPONENT_RTP: | |
63 | @FS_COMPONENT_RTCP: | |
64 | ||
65 | <!-- ##### FUNCTION fs_candidate_new ##### --> | |
66 | <para> | |
67 | ||
68 | </para> | |
69 | ||
70 | @foundation: | |
71 | @component_id: | |
72 | @type: | |
73 | @proto: | |
74 | @ip: | |
75 | @port: | |
76 | @Returns: | |
77 | ||
78 | ||
79 | <!-- ##### FUNCTION fs_candidate_destroy ##### --> | |
80 | <para> | |
81 | ||
82 | </para> | |
83 | ||
84 | @cand: | |
85 | ||
86 | ||
87 | <!-- ##### FUNCTION fs_candidate_copy ##### --> | |
88 | <para> | |
89 | ||
90 | </para> | |
91 | ||
92 | @cand: | |
93 | @Returns: | |
94 | ||
95 | ||
96 | <!-- ##### FUNCTION fs_candidate_list_destroy ##### --> | |
97 | <para> | |
98 | ||
99 | </para> | |
100 | ||
101 | @candidate_list: | |
102 | ||
103 | ||
104 | <!-- ##### FUNCTION fs_candidate_list_copy ##### --> | |
105 | <para> | |
106 | ||
107 | </para> | |
108 | ||
109 | @candidate_list: | |
110 | @Returns: | |
111 | ||
112 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsCodec | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsCodec ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | @id: | |
25 | @encoding_name: | |
26 | @media_type: | |
27 | @clock_rate: | |
28 | @channels: | |
29 | @optional_params: | |
30 | ||
31 | <!-- ##### ENUM FsMediaType ##### --> | |
32 | <para> | |
33 | ||
34 | </para> | |
35 | ||
36 | @FS_MEDIA_TYPE_AUDIO: | |
37 | @FS_MEDIA_TYPE_VIDEO: | |
38 | @FS_MEDIA_TYPE_LAST: | |
39 | ||
40 | <!-- ##### STRUCT FsCodecParameter ##### --> | |
41 | <para> | |
42 | ||
43 | </para> | |
44 | ||
45 | @name: | |
46 | @value: | |
47 | ||
48 | <!-- ##### MACRO FS_CODEC_ID_ANY ##### --> | |
49 | <para> | |
50 | ||
51 | </para> | |
52 | ||
53 | ||
54 | ||
55 | <!-- ##### MACRO FS_CODEC_ID_DISABLE ##### --> | |
56 | <para> | |
57 | ||
58 | </para> | |
59 | ||
60 | ||
61 | ||
62 | <!-- ##### FUNCTION fs_codec_new ##### --> | |
63 | <para> | |
64 | ||
65 | </para> | |
66 | ||
67 | @id: | |
68 | @encoding_name: | |
69 | @media_type: | |
70 | @clock_rate: | |
71 | @Returns: | |
72 | ||
73 | ||
74 | <!-- ##### FUNCTION fs_codec_destroy ##### --> | |
75 | <para> | |
76 | ||
77 | </para> | |
78 | ||
79 | @codec: | |
80 | ||
81 | ||
82 | <!-- ##### FUNCTION fs_codec_copy ##### --> | |
83 | <para> | |
84 | ||
85 | </para> | |
86 | ||
87 | @codec: | |
88 | @Returns: | |
89 | ||
90 | ||
91 | <!-- ##### FUNCTION fs_codec_are_equal ##### --> | |
92 | <para> | |
93 | ||
94 | </para> | |
95 | ||
96 | @codec1: | |
97 | @codec2: | |
98 | @Returns: | |
99 | ||
100 | ||
101 | <!-- ##### FUNCTION fs_codec_list_from_keyfile ##### --> | |
102 | <para> | |
103 | ||
104 | </para> | |
105 | ||
106 | @filename: | |
107 | @error: | |
108 | @Returns: | |
109 | ||
110 | ||
111 | <!-- ##### FUNCTION fs_codec_list_destroy ##### --> | |
112 | <para> | |
113 | ||
114 | </para> | |
115 | ||
116 | @codec_list: | |
117 | ||
118 | ||
119 | <!-- ##### FUNCTION fs_codec_list_copy ##### --> | |
120 | <para> | |
121 | ||
122 | </para> | |
123 | ||
124 | @codec_list: | |
125 | @Returns: | |
126 | ||
127 | ||
128 | <!-- ##### FUNCTION fs_codec_list_are_equal ##### --> | |
129 | <para> | |
130 | ||
131 | </para> | |
132 | ||
133 | @list1: | |
134 | @list2: | |
135 | @Returns: | |
136 | ||
137 | ||
138 | <!-- ##### FUNCTION fs_codec_to_string ##### --> | |
139 | <para> | |
140 | ||
141 | </para> | |
142 | ||
143 | @codec: | |
144 | @Returns: | |
145 | ||
146 | ||
147 | <!-- ##### FUNCTION fs_codec_add_optional_parameter ##### --> | |
148 | <para> | |
149 | ||
150 | </para> | |
151 | ||
152 | @codec: | |
153 | @name: | |
154 | @value: | |
155 | ||
156 | ||
157 | <!-- ##### FUNCTION fs_codec_remove_optional_parameter ##### --> | |
158 | <para> | |
159 | ||
160 | </para> | |
161 | ||
162 | @codec: | |
163 | @param: | |
164 | ||
165 | ||
166 | <!-- ##### FUNCTION fs_codec_get_optional_parameter ##### --> | |
167 | <para> | |
168 | ||
169 | </para> | |
170 | ||
171 | @codec: | |
172 | @name: | |
173 | @value: | |
174 | @Returns: | |
175 | ||
176 | ||
177 | <!-- ##### MACRO FS_CODEC_FORMAT ##### --> | |
178 | <para> | |
179 | ||
180 | </para> | |
181 | ||
182 | ||
183 | ||
184 | <!-- ##### MACRO FS_CODEC_ARGS ##### --> | |
185 | <para> | |
186 | ||
187 | </para> | |
188 | ||
189 | @codec: | |
190 | ||
191 | ||
192 | <!-- ##### FUNCTION fs_media_type_to_string ##### --> | |
193 | <para> | |
194 | ||
195 | </para> | |
196 | ||
197 | @media_type: | |
198 | @Returns: | |
199 | ||
200 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsConference | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsConference ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | ||
25 | <!-- ##### FUNCTION fs_conference_new_session ##### --> | |
26 | <para> | |
27 | ||
28 | </para> | |
29 | ||
30 | @conference: | |
31 | @media_type: | |
32 | @error: | |
33 | @Returns: | |
34 | ||
35 | ||
36 | <!-- ##### FUNCTION fs_conference_new_participant ##### --> | |
37 | <para> | |
38 | ||
39 | </para> | |
40 | ||
41 | @conference: | |
42 | @cname: | |
43 | @error: | |
44 | @Returns: | |
45 | ||
46 | ||
47 | <!-- ##### MACRO FS_ERROR ##### --> | |
48 | <para> | |
49 | ||
50 | </para> | |
51 | ||
52 | ||
53 | ||
54 | <!-- ##### ENUM FsError ##### --> | |
55 | <para> | |
56 | ||
57 | </para> | |
58 | ||
59 | @FS_ERROR_CONSTRUCTION: | |
60 | @FS_ERROR_INTERNAL: | |
61 | @FS_ERROR_INVALID_ARGUMENTS: | |
62 | @FS_ERROR_NETWORK: | |
63 | @FS_ERROR_NOT_IMPLEMENTED: | |
64 | @FS_ERROR_NEGOTIATION_FAILED: | |
65 | @FS_ERROR_UNKNOWN_CODEC: | |
66 | @FS_ERROR_UNKNOWN_CNAME: | |
67 | @FS_ERROR_NO_CODECS: | |
68 | @FS_ERROR_NO_CODECS_LEFT: | |
69 | @FS_ERROR_CONNECTION_FAILED: | |
70 | @FS_ERROR_DISPOSED: | |
71 | ||
72 | <!-- ##### MACRO FS_ERROR_IS_FATAL ##### --> | |
73 | <para> | |
74 | ||
75 | </para> | |
76 | ||
77 | @error: | |
78 | ||
79 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsElementAddedNotifier | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsElementAddedNotifier ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | ||
25 | <!-- ##### SIGNAL FsElementAddedNotifier::element-added ##### --> | |
26 | <para> | |
27 | ||
28 | </para> | |
29 | ||
30 | @fselementaddednotifier: the object which received the signal. | |
31 | @arg1: | |
32 | @arg2: | |
33 | ||
34 | <!-- ##### FUNCTION fs_element_added_notifier_new ##### --> | |
35 | <para> | |
36 | ||
37 | </para> | |
38 | ||
39 | @Returns: | |
40 | ||
41 | ||
42 | <!-- ##### FUNCTION fs_element_added_notifier_add ##### --> | |
43 | <para> | |
44 | ||
45 | </para> | |
46 | ||
47 | @notifier: | |
48 | @bin: | |
49 | ||
50 | ||
51 | <!-- ##### FUNCTION fs_element_added_notifier_remove ##### --> | |
52 | <para> | |
53 | ||
54 | </para> | |
55 | ||
56 | @notifier: | |
57 | @bin: | |
58 | @Returns: | |
59 | ||
60 | ||
61 | <!-- ##### FUNCTION fs_element_added_notifier_set_properties_from_keyfile ##### --> | |
62 | <para> | |
63 | ||
64 | </para> | |
65 | ||
66 | @notifier: | |
67 | @keyfile: | |
68 | ||
69 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | Network interfaces discovery | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### FUNCTION fs_interfaces_get_ip_for_interface ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | @interface_name: | |
25 | @Returns: | |
26 | ||
27 | ||
28 | <!-- ##### FUNCTION fs_interfaces_get_local_interfaces ##### --> | |
29 | <para> | |
30 | ||
31 | </para> | |
32 | ||
33 | @Returns: | |
34 | ||
35 | ||
36 | <!-- ##### FUNCTION fs_interfaces_get_local_ips ##### --> | |
37 | <para> | |
38 | ||
39 | </para> | |
40 | ||
41 | @include_loopback: | |
42 | @Returns: | |
43 | ||
44 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsParticipant | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsParticipant ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | ||
25 | <!-- ##### SIGNAL FsParticipant::error ##### --> | |
26 | <para> | |
27 | ||
28 | </para> | |
29 | ||
30 | @fsparticipant: the object which received the signal. | |
31 | @arg1: | |
32 | @arg2: | |
33 | @arg3: | |
34 | @arg4: | |
35 | ||
36 | <!-- ##### ARG FsParticipant:cname ##### --> | |
37 | <para> | |
38 | ||
39 | </para> | |
40 | ||
41 | <!-- ##### STRUCT FsParticipantClass ##### --> | |
42 | <para> | |
43 | ||
44 | </para> | |
45 | ||
46 | @parent_class: | |
47 | ||
48 | <!-- ##### MACRO FS_PARTICIPANT_DATA_LOCK ##### --> | |
49 | <para> | |
50 | ||
51 | </para> | |
52 | ||
53 | @participant: | |
54 | ||
55 | ||
56 | <!-- ##### MACRO FS_PARTICIPANT_DATA_UNLOCK ##### --> | |
57 | <para> | |
58 | ||
59 | </para> | |
60 | ||
61 | @participant: | |
62 | ||
63 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsPlugin | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsPlugin ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | @parent: | |
25 | ||
26 | <!-- ##### FUNCTION fs_plugin_create_valist ##### --> | |
27 | <para> | |
28 | ||
29 | </para> | |
30 | ||
31 | @name: | |
32 | @type_suffix: | |
33 | @error: | |
34 | @first_property_name: | |
35 | @var_args: | |
36 | @Returns: | |
37 | ||
38 | ||
39 | <!-- ##### FUNCTION fs_plugin_create ##### --> | |
40 | <para> | |
41 | ||
42 | </para> | |
43 | ||
44 | @name: | |
45 | @type_suffix: | |
46 | @error: | |
47 | @first_property_name: | |
48 | @Varargs: | |
49 | @Returns: | |
50 | ||
51 | ||
52 | <!-- ##### MACRO FS_INIT_PLUGIN ##### --> | |
53 | <para> | |
54 | ||
55 | </para> | |
56 | ||
57 | @type_register_func: | |
58 | ||
59 | ||
60 | <!-- ##### FUNCTION fs_plugin_list_available ##### --> | |
61 | <para> | |
62 | ||
63 | </para> | |
64 | ||
65 | @type_suffix: | |
66 | @Returns: | |
67 | ||
68 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsSession | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### ENUM FsDTMFEvent ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | @FS_DTMF_EVENT_0: | |
25 | @FS_DTMF_EVENT_1: | |
26 | @FS_DTMF_EVENT_2: | |
27 | @FS_DTMF_EVENT_3: | |
28 | @FS_DTMF_EVENT_4: | |
29 | @FS_DTMF_EVENT_5: | |
30 | @FS_DTMF_EVENT_6: | |
31 | @FS_DTMF_EVENT_7: | |
32 | @FS_DTMF_EVENT_8: | |
33 | @FS_DTMF_EVENT_9: | |
34 | @FS_DTMF_EVENT_STAR: | |
35 | @FS_DTMF_EVENT_POUND: | |
36 | @FS_DTMF_EVENT_A: | |
37 | @FS_DTMF_EVENT_B: | |
38 | @FS_DTMF_EVENT_C: | |
39 | @FS_DTMF_EVENT_D: | |
40 | ||
41 | <!-- ##### ENUM FsDTMFMethod ##### --> | |
42 | <para> | |
43 | ||
44 | </para> | |
45 | ||
46 | @FS_DTMF_METHOD_AUTO: | |
47 | @FS_DTMF_METHOD_RTP_RFC4733: | |
48 | @FS_DTMF_METHOD_IN_BAND: | |
49 | ||
50 | <!-- ##### STRUCT FsSession ##### --> | |
51 | <para> | |
52 | ||
53 | </para> | |
54 | ||
55 | ||
56 | <!-- ##### SIGNAL FsSession::error ##### --> | |
57 | <para> | |
58 | ||
59 | </para> | |
60 | ||
61 | @fssession: the object which received the signal. | |
62 | @arg1: | |
63 | @arg2: | |
64 | @arg3: | |
65 | @arg4: | |
66 | ||
67 | <!-- ##### ARG FsSession:codec-preferences ##### --> | |
68 | <para> | |
69 | ||
70 | </para> | |
71 | ||
72 | <!-- ##### ARG FsSession:codecs ##### --> | |
73 | <para> | |
74 | ||
75 | </para> | |
76 | ||
77 | <!-- ##### ARG FsSession:codecs-ready ##### --> | |
78 | <para> | |
79 | ||
80 | </para> | |
81 | ||
82 | <!-- ##### ARG FsSession:codecs-without-config ##### --> | |
83 | <para> | |
84 | ||
85 | </para> | |
86 | ||
87 | <!-- ##### ARG FsSession:current-send-codec ##### --> | |
88 | <para> | |
89 | ||
90 | </para> | |
91 | ||
92 | <!-- ##### ARG FsSession:id ##### --> | |
93 | <para> | |
94 | ||
95 | </para> | |
96 | ||
97 | <!-- ##### ARG FsSession:media-type ##### --> | |
98 | <para> | |
99 | ||
100 | </para> | |
101 | ||
102 | <!-- ##### ARG FsSession:sink-pad ##### --> | |
103 | <para> | |
104 | ||
105 | </para> | |
106 | ||
107 | <!-- ##### STRUCT FsSessionClass ##### --> | |
108 | <para> | |
109 | ||
110 | </para> | |
111 | ||
112 | @parent_class: | |
113 | @new_stream: | |
114 | @start_telephony_event: | |
115 | @stop_telephony_event: | |
116 | @set_send_codec: | |
117 | @set_codec_preferences: | |
118 | @list_transmitters: | |
119 | ||
120 | <!-- ##### FUNCTION fs_session_new_stream ##### --> | |
121 | <para> | |
122 | ||
123 | </para> | |
124 | ||
125 | @session: | |
126 | @participant: | |
127 | @direction: | |
128 | @transmitter: | |
129 | @stream_transmitter_n_parameters: | |
130 | @stream_transmitter_parameters: | |
131 | @error: | |
132 | @Returns: | |
133 | ||
134 | ||
135 | <!-- ##### FUNCTION fs_session_start_telephony_event ##### --> | |
136 | <para> | |
137 | ||
138 | </para> | |
139 | ||
140 | @session: | |
141 | @event: | |
142 | @volume: | |
143 | @method: | |
144 | @Returns: | |
145 | ||
146 | ||
147 | <!-- ##### FUNCTION fs_session_stop_telephony_event ##### --> | |
148 | <para> | |
149 | ||
150 | </para> | |
151 | ||
152 | @session: | |
153 | @method: | |
154 | @Returns: | |
155 | ||
156 | ||
157 | <!-- ##### FUNCTION fs_session_set_send_codec ##### --> | |
158 | <para> | |
159 | ||
160 | </para> | |
161 | ||
162 | @session: | |
163 | @send_codec: | |
164 | @error: | |
165 | @Returns: | |
166 | ||
167 | ||
168 | <!-- ##### FUNCTION fs_session_set_codec_preferences ##### --> | |
169 | <para> | |
170 | ||
171 | </para> | |
172 | ||
173 | @session: | |
174 | @codec_preferences: | |
175 | @error: | |
176 | @Returns: | |
177 | ||
178 | ||
179 | <!-- ##### FUNCTION fs_session_list_transmitters ##### --> | |
180 | <para> | |
181 | ||
182 | </para> | |
183 | ||
184 | @session: | |
185 | @Returns: | |
186 | ||
187 | ||
188 | <!-- ##### FUNCTION fs_session_emit_error ##### --> | |
189 | <para> | |
190 | ||
191 | </para> | |
192 | ||
193 | @session: | |
194 | @error_no: | |
195 | @error_msg: | |
196 | @debug_msg: | |
197 | ||
198 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsStreamTransmitter | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsStreamTransmitter ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | ||
25 | <!-- ##### SIGNAL FsStreamTransmitter::error ##### --> | |
26 | <para> | |
27 | ||
28 | </para> | |
29 | ||
30 | @fsstreamtransmitter: the object which received the signal. | |
31 | @arg1: | |
32 | @arg2: | |
33 | @arg3: | |
34 | ||
35 | <!-- ##### SIGNAL FsStreamTransmitter::known-source-packet-received ##### --> | |
36 | <para> | |
37 | ||
38 | </para> | |
39 | ||
40 | @fsstreamtransmitter: the object which received the signal. | |
41 | @arg1: | |
42 | @arg2: | |
43 | ||
44 | <!-- ##### SIGNAL FsStreamTransmitter::local-candidates-prepared ##### --> | |
45 | <para> | |
46 | ||
47 | </para> | |
48 | ||
49 | @fsstreamtransmitter: the object which received the signal. | |
50 | ||
51 | <!-- ##### SIGNAL FsStreamTransmitter::new-active-candidate-pair ##### --> | |
52 | <para> | |
53 | ||
54 | </para> | |
55 | ||
56 | @fsstreamtransmitter: the object which received the signal. | |
57 | @arg1: | |
58 | @arg2: | |
59 | ||
60 | <!-- ##### SIGNAL FsStreamTransmitter::new-local-candidate ##### --> | |
61 | <para> | |
62 | ||
63 | </para> | |
64 | ||
65 | @fsstreamtransmitter: the object which received the signal. | |
66 | @arg1: | |
67 | ||
68 | <!-- ##### SIGNAL FsStreamTransmitter::state-changed ##### --> | |
69 | <para> | |
70 | ||
71 | </para> | |
72 | ||
73 | @fsstreamtransmitter: the object which received the signal. | |
74 | @arg1: | |
75 | @arg2: | |
76 | ||
77 | <!-- ##### ARG FsStreamTransmitter:associate-on-source ##### --> | |
78 | <para> | |
79 | ||
80 | </para> | |
81 | ||
82 | <!-- ##### ARG FsStreamTransmitter:preferred-local-candidates ##### --> | |
83 | <para> | |
84 | ||
85 | </para> | |
86 | ||
87 | <!-- ##### ARG FsStreamTransmitter:sending ##### --> | |
88 | <para> | |
89 | ||
90 | </para> | |
91 | ||
92 | <!-- ##### STRUCT FsStreamTransmitterClass ##### --> | |
93 | <para> | |
94 | ||
95 | </para> | |
96 | ||
97 | @parent_class: | |
98 | @set_remote_candidates: | |
99 | @force_remote_candidates: | |
100 | @gather_local_candidates: | |
101 | @stop: | |
102 | ||
103 | <!-- ##### FUNCTION fs_stream_transmitter_set_remote_candidates ##### --> | |
104 | <para> | |
105 | ||
106 | </para> | |
107 | ||
108 | @streamtransmitter: | |
109 | @candidates: | |
110 | @error: | |
111 | @Returns: | |
112 | ||
113 | ||
114 | <!-- ##### FUNCTION fs_stream_transmitter_gather_local_candidates ##### --> | |
115 | <para> | |
116 | ||
117 | </para> | |
118 | ||
119 | @streamtransmitter: | |
120 | @error: | |
121 | @Returns: | |
122 | ||
123 | ||
124 | <!-- ##### FUNCTION fs_stream_transmitter_force_remote_candidates ##### --> | |
125 | <para> | |
126 | ||
127 | </para> | |
128 | ||
129 | @streamtransmitter: | |
130 | @remote_candidates: | |
131 | @error: | |
132 | @Returns: | |
133 | ||
134 | ||
135 | <!-- ##### FUNCTION fs_stream_transmitter_stop ##### --> | |
136 | <para> | |
137 | ||
138 | </para> | |
139 | ||
140 | @streamtransmitter: | |
141 | ||
142 | ||
143 | <!-- ##### FUNCTION fs_stream_transmitter_emit_error ##### --> | |
144 | <para> | |
145 | ||
146 | </para> | |
147 | ||
148 | @streamtransmitter: | |
149 | @error_no: | |
150 | @error_msg: | |
151 | @debug_msg: | |
152 | ||
153 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsStream | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsStream ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | ||
25 | <!-- ##### SIGNAL FsStream::error ##### --> | |
26 | <para> | |
27 | ||
28 | </para> | |
29 | ||
30 | @fsstream: the object which received the signal. | |
31 | @arg1: | |
32 | @arg2: | |
33 | @arg3: | |
34 | ||
35 | <!-- ##### SIGNAL FsStream::src-pad-added ##### --> | |
36 | <para> | |
37 | ||
38 | </para> | |
39 | ||
40 | @fsstream: the object which received the signal. | |
41 | @arg1: | |
42 | @arg2: | |
43 | ||
44 | <!-- ##### ARG FsStream:current-recv-codecs ##### --> | |
45 | <para> | |
46 | ||
47 | </para> | |
48 | ||
49 | <!-- ##### ARG FsStream:direction ##### --> | |
50 | <para> | |
51 | ||
52 | </para> | |
53 | ||
54 | <!-- ##### ARG FsStream:negotiated-codecs ##### --> | |
55 | <para> | |
56 | ||
57 | </para> | |
58 | ||
59 | <!-- ##### ARG FsStream:participant ##### --> | |
60 | <para> | |
61 | ||
62 | </para> | |
63 | ||
64 | <!-- ##### ARG FsStream:remote-codecs ##### --> | |
65 | <para> | |
66 | ||
67 | </para> | |
68 | ||
69 | <!-- ##### ARG FsStream:session ##### --> | |
70 | <para> | |
71 | ||
72 | </para> | |
73 | ||
74 | <!-- ##### ARG FsStream:stream-transmitter ##### --> | |
75 | <para> | |
76 | ||
77 | </para> | |
78 | ||
79 | <!-- ##### STRUCT FsStreamClass ##### --> | |
80 | <para> | |
81 | ||
82 | </para> | |
83 | ||
84 | @parent_class: | |
85 | @set_remote_candidates: | |
86 | @force_remote_candidates: | |
87 | @set_remote_codecs: | |
88 | ||
89 | <!-- ##### ENUM FsStreamDirection ##### --> | |
90 | <para> | |
91 | ||
92 | </para> | |
93 | ||
94 | @FS_DIRECTION_NONE: | |
95 | @FS_DIRECTION_SEND: | |
96 | @FS_DIRECTION_RECV: | |
97 | @FS_DIRECTION_BOTH: | |
98 | ||
99 | <!-- ##### ENUM FsStreamState ##### --> | |
100 | <para> | |
101 | ||
102 | </para> | |
103 | ||
104 | @FS_STREAM_STATE_FAILED: | |
105 | @FS_STREAM_STATE_DISCONNECTED: | |
106 | @FS_STREAM_STATE_GATHERING: | |
107 | @FS_STREAM_STATE_CONNECTING: | |
108 | @FS_STREAM_STATE_CONNECTED: | |
109 | @FS_STREAM_STATE_READY: | |
110 | ||
111 | <!-- ##### FUNCTION fs_stream_set_remote_candidates ##### --> | |
112 | <para> | |
113 | ||
114 | </para> | |
115 | ||
116 | @stream: | |
117 | @candidates: | |
118 | @error: | |
119 | @Returns: | |
120 | ||
121 | ||
122 | <!-- ##### FUNCTION fs_stream_set_remote_codecs ##### --> | |
123 | <para> | |
124 | ||
125 | </para> | |
126 | ||
127 | @stream: | |
128 | @remote_codecs: | |
129 | @error: | |
130 | @Returns: | |
131 | ||
132 | ||
133 | <!-- ##### FUNCTION fs_stream_force_remote_candidates ##### --> | |
134 | <para> | |
135 | ||
136 | </para> | |
137 | ||
138 | @stream: | |
139 | @remote_candidates: | |
140 | @error: | |
141 | @Returns: | |
142 | ||
143 | ||
144 | <!-- ##### FUNCTION fs_stream_emit_error ##### --> | |
145 | <para> | |
146 | ||
147 | </para> | |
148 | ||
149 | @stream: | |
150 | @error_no: | |
151 | @error_msg: | |
152 | @debug_msg: | |
153 | ||
154 | ||
155 | <!-- ##### FUNCTION fs_stream_emit_src_pad_added ##### --> | |
156 | <para> | |
157 | ||
158 | </para> | |
159 | ||
160 | @stream: | |
161 | @pad: | |
162 | @codec: | |
163 | ||
164 |
0 | <!-- ##### SECTION Title ##### --> | |
1 | FsTransmitter | |
2 | ||
3 | <!-- ##### SECTION Short_Description ##### --> | |
4 | ||
5 | ||
6 | <!-- ##### SECTION Long_Description ##### --> | |
7 | <para> | |
8 | ||
9 | </para> | |
10 | ||
11 | <!-- ##### SECTION See_Also ##### --> | |
12 | <para> | |
13 | ||
14 | </para> | |
15 | ||
16 | <!-- ##### SECTION Stability_Level ##### --> | |
17 | ||
18 | ||
19 | <!-- ##### STRUCT FsTransmitter ##### --> | |
20 | <para> | |
21 | ||
22 | </para> | |
23 | ||
24 | ||
25 | <!-- ##### SIGNAL FsTransmitter::error ##### --> | |
26 | <para> | |
27 | ||
28 | </para> | |
29 | ||
30 | @fstransmitter: the object which received the signal. | |
31 | @arg1: | |
32 | @arg2: | |
33 | @arg3: | |
34 | ||
35 | <!-- ##### SIGNAL FsTransmitter::get-recvonly-filter ##### --> | |
36 | <para> | |
37 | ||
38 | </para> | |
39 | ||
40 | @fstransmitter: the object which received the signal. | |
41 | @arg1: | |
42 | @Returns: | |
43 | ||
44 | <!-- ##### ARG FsTransmitter:components ##### --> | |
45 | <para> | |
46 | ||
47 | </para> | |
48 | ||
49 | <!-- ##### ARG FsTransmitter:gst-sink ##### --> | |
50 | <para> | |
51 | ||
52 | </para> | |
53 | ||
54 | <!-- ##### ARG FsTransmitter:gst-src ##### --> | |
55 | <para> | |
56 | ||
57 | </para> | |
58 | ||
59 | <!-- ##### STRUCT FsTransmitterClass ##### --> | |
60 | <para> | |
61 | ||
62 | </para> | |
63 | ||
64 | @parent_class: | |
65 | @new_stream_transmitter: | |
66 | @get_stream_transmitter_type: | |
67 | ||
68 | <!-- ##### FUNCTION fs_transmitter_new ##### --> | |
69 | <para> | |
70 | ||
71 | </para> | |
72 | ||
73 | @type: | |
74 | @components: | |
75 | @error: | |
76 | @Returns: | |
77 | ||
78 | ||
79 | <!-- ##### FUNCTION fs_transmitter_new_stream_transmitter ##### --> | |
80 | <para> | |
81 | ||
82 | </para> | |
83 | ||
84 | @transmitter: | |
85 | @participant: | |
86 | @n_parameters: | |
87 | @parameters: | |
88 | @error: | |
89 | @Returns: | |
90 | ||
91 | ||
92 | <!-- ##### FUNCTION fs_transmitter_get_stream_transmitter_type ##### --> | |
93 | <para> | |
94 | ||
95 | </para> | |
96 | ||
97 | @transmitter: | |
98 | @Returns: | |
99 | ||
100 | ||
101 | <!-- ##### FUNCTION fs_transmitter_emit_error ##### --> | |
102 | <para> | |
103 | ||
104 | </para> | |
105 | ||
106 | @transmitter: | |
107 | @error_no: | |
108 | @error_msg: | |
109 | @debug_msg: | |
110 | ||
111 | ||
112 | <!-- ##### FUNCTION fs_transmitter_get_recvonly_filter ##### --> | |
113 | <para> | |
114 | ||
115 | </para> | |
116 | ||
117 | @transmitter: | |
118 | @component: | |
119 | @Returns: | |
120 | ||
121 | ||
122 | <!-- ##### FUNCTION fs_transmitter_list_available ##### --> | |
123 | <para> | |
124 | ||
125 | </para> | |
126 | ||
127 | @Returns: | |
128 | ||
129 |
56 | 56 | SCANOBJ_DEPS = \ |
57 | 57 | $(top_builddir)/transmitters/multicast/libmulticast-transmitter.la \ |
58 | 58 | $(top_builddir)/transmitters/rawudp/librawudp-transmitter.la \ |
59 | $(top_builddir)/transmitters/nice/libnice-transmitter.la \ | |
59 | 60 | $(top_builddir)/gst/fsrtpconference/libfsrtpconference_doc.la \ |
60 | 61 | $(top_builddir)/gst/funnel/libfsfunnel.la \ |
61 | 62 | $(top_builddir)/gst/videoanyrate/libfsvideoanyrate.la |
62 | ||
63 | if USE_NICE | |
64 | SCANOBJ_DEPS += $(top_builddir)/transmitters/nice/libnice-transmitter.la | |
65 | endif | |
66 | 63 | |
67 | 64 | # Header files to ignore when scanning. |
68 | 65 | IGNORE_HFILES = |
86 | 83 | $(top_srcdir)/transmitters/rawudp/fs-rawudp-transmitter.h \ |
87 | 84 | $(top_srcdir)/transmitters/rawudp/fs-rawudp-stream-transmitter.h \ |
88 | 85 | $(top_srcdir)/transmitters/multicast/fs-multicast-transmitter.h \ |
89 | $(top_srcdir)/transmitters/multicast/fs-multicast-stream-transmitter.h | |
90 | ||
91 | if USE_NICE | |
92 | EXTRA_HFILES += \ | |
86 | $(top_srcdir)/transmitters/multicast/fs-multicast-stream-transmitter.h \ | |
93 | 87 | $(top_srcdir)/transmitters/nice/fs-nice-transmitter.h \ |
94 | 88 | $(top_srcdir)/transmitters/nice/fs-nice-stream-transmitter.h |
95 | ||
96 | endif | |
97 | ||
98 | 89 | |
99 | 90 | # Images to copy into HTML directory. |
100 | 91 | HTML_IMAGES = |
34 | 34 | POST_UNINSTALL = : |
35 | 35 | build_triplet = @build@ |
36 | 36 | host_triplet = @host@ |
37 | @USE_NICE_TRUE@am__append_1 = $(top_builddir)/transmitters/nice/libnice-transmitter.la | |
38 | @USE_NICE_TRUE@am__append_2 = \ | |
39 | @USE_NICE_TRUE@ $(top_srcdir)/transmitters/nice/fs-nice-transmitter.h \ | |
40 | @USE_NICE_TRUE@ $(top_srcdir)/transmitters/nice/fs-nice-stream-transmitter.h | |
41 | ||
42 | 37 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ |
43 | 38 | $(top_srcdir)/common-modified/gtk-doc-plugins.mak |
44 | 39 | subdir = docs/plugins |
47 | 42 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
48 | 43 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
49 | 44 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
50 | $(top_srcdir)/common/m4/as-python.m4 \ | |
51 | 45 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
52 | 46 | $(top_srcdir)/common/m4/as-version.m4 \ |
53 | 47 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
59 | 53 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
60 | 54 | $(top_srcdir)/common/m4/gst.m4 \ |
61 | 55 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
62 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
63 | 56 | $(top_srcdir)/common/m4/pkg.m4 \ |
64 | 57 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
65 | 58 | $(top_srcdir)/configure.ac |
183 | 176 | PKG_CONFIG = @PKG_CONFIG@ |
184 | 177 | PLUGINDIR = @PLUGINDIR@ |
185 | 178 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
186 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
187 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
188 | 179 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
189 | 180 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
190 | 181 | PYTHON = @PYTHON@ |
312 | 303 | # this is a wingo addition |
313 | 304 | # thomasvs: another nice wingo addition would be an explanation on why |
314 | 305 | # this is useful ;) |
315 | SCANOBJ_DEPS = $(top_builddir)/transmitters/multicast/libmulticast-transmitter.la \ | |
306 | SCANOBJ_DEPS = \ | |
307 | $(top_builddir)/transmitters/multicast/libmulticast-transmitter.la \ | |
316 | 308 | $(top_builddir)/transmitters/rawudp/librawudp-transmitter.la \ |
309 | $(top_builddir)/transmitters/nice/libnice-transmitter.la \ | |
317 | 310 | $(top_builddir)/gst/fsrtpconference/libfsrtpconference_doc.la \ |
318 | 311 | $(top_builddir)/gst/funnel/libfsfunnel.la \ |
319 | $(top_builddir)/gst/videoanyrate/libfsvideoanyrate.la \ | |
320 | $(am__append_1) | |
312 | $(top_builddir)/gst/videoanyrate/libfsvideoanyrate.la | |
313 | ||
321 | 314 | |
322 | 315 | # Header files to ignore when scanning. |
323 | 316 | IGNORE_HFILES = |
330 | 323 | # or not the plugin will actually build |
331 | 324 | # but I'm not sure about that - it might be this Just Works given that |
332 | 325 | # the registry won't have the element |
333 | EXTRA_HFILES = $(top_srcdir)/gst/funnel/fs-funnel.h \ | |
326 | EXTRA_HFILES = \ | |
327 | $(top_srcdir)/gst/funnel/fs-funnel.h \ | |
334 | 328 | $(top_srcdir)/gst/videoanyrate/videoanyrate.h \ |
335 | 329 | $(top_srcdir)/gst/fsrtpconference/fs-rtp-conference.h \ |
336 | 330 | $(top_srcdir)/gst/fsrtpconference/fs-rtp-session.h \ |
340 | 334 | $(top_srcdir)/transmitters/rawudp/fs-rawudp-stream-transmitter.h \ |
341 | 335 | $(top_srcdir)/transmitters/multicast/fs-multicast-transmitter.h \ |
342 | 336 | $(top_srcdir)/transmitters/multicast/fs-multicast-stream-transmitter.h \ |
343 | $(am__append_2) | |
337 | $(top_srcdir)/transmitters/nice/fs-nice-transmitter.h \ | |
338 | $(top_srcdir)/transmitters/nice/fs-nice-stream-transmitter.h | |
339 | ||
344 | 340 | |
345 | 341 | # Images to copy into HTML directory. |
346 | 342 | HTML_IMAGES = |
24 | 24 | </tr></table> |
25 | 25 | <div class="chapter" lang="en"> |
26 | 26 | <div class="titlepage"><div><div><h2 class="title"> |
27 | <a name="id2695012"></a>Core interface classes</h2></div></div></div> | |
27 | <a name="id2609265"></a>Core interface classes</h2></div></div></div> | |
28 | 28 | <div class="toc"><dl> |
29 | 29 | <dt> |
30 | 30 | <span class="refentrytitle"><a href="farsight2-plugins-FsRtpConference.html">FsRtpConference</a></span><span class="refpurpose"> — Farsight RTP Conference Gstreamer Elements</span> |
24 | 24 | </tr></table> |
25 | 25 | <div class="chapter" lang="en"> |
26 | 26 | <div class="titlepage"><div><div><h2 class="title"> |
27 | <a name="id2661202"></a>Transmitters</h2></div></div></div> | |
27 | <a name="id2570400"></a>Transmitters</h2></div></div></div> | |
28 | 28 | <div class="toc"><dl> |
29 | 29 | <dt> |
30 | 30 | <span class="refentrytitle"><a href="farsight2-plugins-FsRawUdpStreamTransmitter.html">FsRawUdpStreamTransmitter</a></span><span class="refpurpose"> — A stream transmitter object for UDP with STUN</span> |
49 | 49 | <div class="refsynopsisdiv"> |
50 | 50 | <h2>Synopsis</h2> |
51 | 51 | <div class="refsect2" lang="en"> |
52 | <a name="id2707820"></a><h3>Element Information</h3> | |
52 | <a name="id2662076"></a><h3>Element Information</h3> | |
53 | 53 | <div class="variablelist"><table border="0"> |
54 | 54 | <col align="left" valign="top"> |
55 | 55 | <tbody> |
72 | 72 | </div> |
73 | 73 | <hr> |
74 | 74 | <div class="refsect2" lang="en"> |
75 | <a name="id2728755"></a><h3>Element Pads</h3> | |
75 | <a name="id2659709"></a><h3>Element Pads</h3> | |
76 | 76 | <div class="variablelist"><table border="0"> |
77 | 77 | <col align="left" valign="top"> |
78 | 78 | <tbody> |
85 | 85 | <div class="refsynopsisdiv"> |
86 | 86 | <h2>Synopsis</h2> |
87 | 87 | <div class="refsect2" lang="en"> |
88 | <a name="id2730166"></a><h3>Element Information</h3> | |
88 | <a name="id2643642"></a><h3>Element Information</h3> | |
89 | 89 | <div class="variablelist"><table border="0"> |
90 | 90 | <col align="left" valign="top"> |
91 | 91 | <tbody> |
108 | 108 | </div> |
109 | 109 | <hr> |
110 | 110 | <div class="refsect2" lang="en"> |
111 | <a name="id2660474"></a><h3>Element Pads</h3> | |
111 | <a name="id2575466"></a><h3>Element Pads</h3> | |
112 | 112 | <div class="variablelist"><table border="0"> |
113 | 113 | <col align="left" valign="top"> |
114 | 114 | <tbody> |
64 | 64 | SSRC (although if there is a SSRC collision, that SSRC may change). |
65 | 65 | </p> |
66 | 66 | <div class="refsect2" lang="en"> |
67 | <a name="id2705161"></a><h3>Codec profiles</h3> | |
67 | <a name="id2649667"></a><h3>Codec profiles</h3> | |
68 | 68 | <p> |
69 | 69 | It is possible to define "codec profiles", that is non-autodetected |
70 | 70 | encoding and decoding pipelines for codecs. It is even possible to declare |
49 | 49 | <div class="refsynopsisdiv"> |
50 | 50 | <h2>Synopsis</h2> |
51 | 51 | <div class="refsect2" lang="en"> |
52 | <a name="id2714376"></a><h3>Element Information</h3> | |
52 | <a name="id2621212"></a><h3>Element Information</h3> | |
53 | 53 | <div class="variablelist"><table border="0"> |
54 | 54 | <col align="left" valign="top"> |
55 | 55 | <tbody> |
72 | 72 | </div> |
73 | 73 | <hr> |
74 | 74 | <div class="refsect2" lang="en"> |
75 | <a name="id2741846"></a><h3>Element Pads</h3> | |
75 | <a name="id2644845"></a><h3>Element Pads</h3> | |
76 | 76 | <div class="variablelist"><table border="0"> |
77 | 77 | <col align="left" valign="top"> |
78 | 78 | <tbody> |
20 | 20 | </sub> |
21 | 21 | </chapters> |
22 | 22 | <functions> |
23 | <function name="Element Information" link="farsight2-plugins-FsRtpConference.html#id2730166"/> | |
24 | <function name="Element Pads" link="farsight2-plugins-FsRtpConference.html#id2660474"/> | |
23 | <function name="Element Information" link="farsight2-plugins-FsRtpConference.html#id2643642"/> | |
24 | <function name="Element Pads" link="farsight2-plugins-FsRtpConference.html#id2575466"/> | |
25 | 25 | <function name="FsRtpConference" link="farsight2-plugins-FsRtpConference.html#FsRtpConference"/> |
26 | 26 | <function name="The "sdes-cname" property" link="farsight2-plugins-FsRtpConference.html#FsRtpConference--sdes-cname"/> |
27 | 27 | <function name="The "sdes-email" property" link="farsight2-plugins-FsRtpConference.html#FsRtpConference--sdes-email"/> |
31 | 31 | <function name="The "sdes-phone" property" link="farsight2-plugins-FsRtpConference.html#FsRtpConference--sdes-phone"/> |
32 | 32 | <function name="The "sdes-tool" property" link="farsight2-plugins-FsRtpConference.html#FsRtpConference--sdes-tool"/> |
33 | 33 | <function name="FsRtpParticipant" link="farsight2-plugins-FsRtpParticipant.html#FsRtpParticipant"/> |
34 | <function name="Codec profiles" link="farsight2-plugins-FsRtpSession.html#id2705161"/> | |
34 | <function name="Codec profiles" link="farsight2-plugins-FsRtpSession.html#id2649667"/> | |
35 | 35 | <function name="FsRtpSession" link="farsight2-plugins-FsRtpSession.html#FsRtpSession"/> |
36 | 36 | <function name="The "no-rtcp-timeout" property" link="farsight2-plugins-FsRtpSession.html#FsRtpSession--no-rtcp-timeout"/> |
37 | 37 | <function name="The "conference" property" link="farsight2-plugins-FsRtpSession.html#FsRtpSession--conference"/> |
54 | 54 | <function name="The "stream-id" property" link="farsight2-plugins-FsNiceStreamTransmitter.html#FsNiceStreamTransmitter--stream-id"/> |
55 | 55 | <function name="The "stun-ip" property" link="farsight2-plugins-FsNiceStreamTransmitter.html#FsNiceStreamTransmitter--stun-ip"/> |
56 | 56 | <function name="The "stun-port" property" link="farsight2-plugins-FsNiceStreamTransmitter.html#FsNiceStreamTransmitter--stun-port"/> |
57 | <function name="Element Information" link="farsight2-plugins-FsFunnel.html#id2707820"/> | |
58 | <function name="Element Pads" link="farsight2-plugins-FsFunnel.html#id2728755"/> | |
57 | <function name="Element Information" link="farsight2-plugins-FsFunnel.html#id2662076"/> | |
58 | <function name="Element Pads" link="farsight2-plugins-FsFunnel.html#id2659709"/> | |
59 | 59 | <function name="FsFunnel" link="farsight2-plugins-FsFunnel.html#FsFunnel"/> |
60 | <function name="Element Information" link="farsight2-plugins-GstVideoanyrate.html#id2714376"/> | |
61 | <function name="Element Pads" link="farsight2-plugins-GstVideoanyrate.html#id2741846"/> | |
60 | <function name="Element Information" link="farsight2-plugins-GstVideoanyrate.html#id2621212"/> | |
61 | <function name="Element Pads" link="farsight2-plugins-GstVideoanyrate.html#id2644845"/> | |
62 | 62 | <function name="GstVideoanyrate" link="farsight2-plugins-GstVideoanyrate.html#GstVideoanyrate"/> |
63 | 63 | </functions> |
64 | 64 | </book> |
20 | 20 | </sub> |
21 | 21 | </chapters> |
22 | 22 | <functions> |
23 | <keyword type="" name="Element Information" link="farsight2-plugins-FsRtpConference.html#id2730166"/> | |
24 | <keyword type="" name="Element Pads" link="farsight2-plugins-FsRtpConference.html#id2660474"/> | |
23 | <keyword type="" name="Element Information" link="farsight2-plugins-FsRtpConference.html#id2643642"/> | |
24 | <keyword type="" name="Element Pads" link="farsight2-plugins-FsRtpConference.html#id2575466"/> | |
25 | 25 | <keyword type="struct" name="FsRtpConference" link="farsight2-plugins-FsRtpConference.html#FsRtpConference"/> |
26 | 26 | <keyword type="" name="The "sdes-cname" property" link="farsight2-plugins-FsRtpConference.html#FsRtpConference--sdes-cname"/> |
27 | 27 | <keyword type="" name="The "sdes-email" property" link="farsight2-plugins-FsRtpConference.html#FsRtpConference--sdes-email"/> |
31 | 31 | <keyword type="" name="The "sdes-phone" property" link="farsight2-plugins-FsRtpConference.html#FsRtpConference--sdes-phone"/> |
32 | 32 | <keyword type="" name="The "sdes-tool" property" link="farsight2-plugins-FsRtpConference.html#FsRtpConference--sdes-tool"/> |
33 | 33 | <keyword type="struct" name="FsRtpParticipant" link="farsight2-plugins-FsRtpParticipant.html#FsRtpParticipant"/> |
34 | <keyword type="" name="Codec profiles" link="farsight2-plugins-FsRtpSession.html#id2705161"/> | |
34 | <keyword type="" name="Codec profiles" link="farsight2-plugins-FsRtpSession.html#id2649667"/> | |
35 | 35 | <keyword type="struct" name="FsRtpSession" link="farsight2-plugins-FsRtpSession.html#FsRtpSession"/> |
36 | 36 | <keyword type="" name="The "no-rtcp-timeout" property" link="farsight2-plugins-FsRtpSession.html#FsRtpSession--no-rtcp-timeout"/> |
37 | 37 | <keyword type="" name="The "conference" property" link="farsight2-plugins-FsRtpSession.html#FsRtpSession--conference"/> |
54 | 54 | <keyword type="" name="The "stream-id" property" link="farsight2-plugins-FsNiceStreamTransmitter.html#FsNiceStreamTransmitter--stream-id"/> |
55 | 55 | <keyword type="" name="The "stun-ip" property" link="farsight2-plugins-FsNiceStreamTransmitter.html#FsNiceStreamTransmitter--stun-ip"/> |
56 | 56 | <keyword type="" name="The "stun-port" property" link="farsight2-plugins-FsNiceStreamTransmitter.html#FsNiceStreamTransmitter--stun-port"/> |
57 | <keyword type="" name="Element Information" link="farsight2-plugins-FsFunnel.html#id2707820"/> | |
58 | <keyword type="" name="Element Pads" link="farsight2-plugins-FsFunnel.html#id2728755"/> | |
57 | <keyword type="" name="Element Information" link="farsight2-plugins-FsFunnel.html#id2662076"/> | |
58 | <keyword type="" name="Element Pads" link="farsight2-plugins-FsFunnel.html#id2659709"/> | |
59 | 59 | <keyword type="struct" name="FsFunnel" link="farsight2-plugins-FsFunnel.html#FsFunnel"/> |
60 | <keyword type="" name="Element Information" link="farsight2-plugins-GstVideoanyrate.html#id2714376"/> | |
61 | <keyword type="" name="Element Pads" link="farsight2-plugins-GstVideoanyrate.html#id2741846"/> | |
60 | <keyword type="" name="Element Information" link="farsight2-plugins-GstVideoanyrate.html#id2621212"/> | |
61 | <keyword type="" name="Element Pads" link="farsight2-plugins-GstVideoanyrate.html#id2644845"/> | |
62 | 62 | <keyword type="struct" name="GstVideoanyrate" link="farsight2-plugins-GstVideoanyrate.html#GstVideoanyrate"/> |
63 | 63 | </functions> |
64 | 64 | </book> |
18 | 18 | <div> |
19 | 19 | <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Farsight2 Plugins Manual</p></th></tr></table></div> |
20 | 20 | <div><p class="releaseinfo"> |
21 | for version 0.0.7.1. | |
21 | for version 0.0.8.1. | |
22 | 22 | The latest version of this documentation can be found on-line at |
23 | 23 | <a class="ulink" href="http://farsight.freedesktop.org/apidoc/farsight2-plugins/" target="_top">http://farsight.freedesktop.org/apidoc/farsight2-plugins/</a>. |
24 | 24 | </p></div> |
24 | 24 | </tr></table> |
25 | 25 | <div class="part" lang="en"> |
26 | 26 | <div class="titlepage"><div><div><h1 class="title"> |
27 | <a name="id2695025"></a>Part I. RTP Plugin</h1></div></div></div> | |
27 | <a name="id2609278"></a>Part I. RTP Plugin</h1></div></div></div> | |
28 | 28 | <div class="toc"> |
29 | 29 | <p><b>Table of Contents</b></p> |
30 | 30 | <dl> |
24 | 24 | </tr></table> |
25 | 25 | <div class="part" lang="en"> |
26 | 26 | <div class="titlepage"><div><div><h1 class="title"> |
27 | <a name="id2661222"></a>Part II. Utility elements</h1></div></div></div> | |
27 | <a name="id2609295"></a>Part II. Utility elements</h1></div></div></div> | |
28 | 28 | <div class="toc"> |
29 | 29 | <p><b>Table of Contents</b></p> |
30 | 30 | <dl> |
37 | 37 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
38 | 38 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
40 | $(top_srcdir)/common/m4/as-python.m4 \ | |
41 | 40 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
42 | 41 | $(top_srcdir)/common/m4/as-version.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
52 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
53 | 51 | $(top_srcdir)/common/m4/pkg.m4 \ |
54 | 52 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
55 | 53 | $(top_srcdir)/configure.ac |
185 | 183 | PKG_CONFIG = @PKG_CONFIG@ |
186 | 184 | PLUGINDIR = @PLUGINDIR@ |
187 | 185 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
188 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
189 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
190 | 186 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
191 | 187 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
192 | 188 | PYTHON = @PYTHON@ |
39 | 39 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
40 | 40 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
41 | 41 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
42 | $(top_srcdir)/common/m4/as-python.m4 \ | |
43 | 42 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
44 | 43 | $(top_srcdir)/common/m4/as-version.m4 \ |
45 | 44 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gst.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
54 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
55 | 53 | $(top_srcdir)/common/m4/pkg.m4 \ |
56 | 54 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
57 | 55 | $(top_srcdir)/configure.ac |
197 | 195 | PKG_CONFIG = @PKG_CONFIG@ |
198 | 196 | PLUGINDIR = @PLUGINDIR@ |
199 | 197 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
200 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
201 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
202 | 198 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
203 | 199 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
204 | 200 | PYTHON = @PYTHON@ |
37 | 37 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
38 | 38 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
40 | $(top_srcdir)/common/m4/as-python.m4 \ | |
41 | 40 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
42 | 41 | $(top_srcdir)/common/m4/as-version.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
52 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
53 | 51 | $(top_srcdir)/common/m4/pkg.m4 \ |
54 | 52 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
55 | 53 | $(top_srcdir)/configure.ac |
173 | 171 | PKG_CONFIG = @PKG_CONFIG@ |
174 | 172 | PLUGINDIR = @PLUGINDIR@ |
175 | 173 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
176 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
177 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
178 | 174 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
179 | 175 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
180 | 176 | PYTHON = @PYTHON@ |
37 | 37 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
38 | 38 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
40 | $(top_srcdir)/common/m4/as-python.m4 \ | |
41 | 40 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
42 | 41 | $(top_srcdir)/common/m4/as-version.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
52 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
53 | 51 | $(top_srcdir)/common/m4/pkg.m4 \ |
54 | 52 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
55 | 53 | $(top_srcdir)/configure.ac |
184 | 182 | PKG_CONFIG = @PKG_CONFIG@ |
185 | 183 | PLUGINDIR = @PLUGINDIR@ |
186 | 184 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
187 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
188 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
189 | 185 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
190 | 186 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
191 | 187 | PYTHON = @PYTHON@ |
49 | 49 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
50 | 50 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
51 | 51 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
52 | $(top_srcdir)/common/m4/as-python.m4 \ | |
53 | 52 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
54 | 53 | $(top_srcdir)/common/m4/as-version.m4 \ |
55 | 54 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
61 | 60 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
62 | 61 | $(top_srcdir)/common/m4/gst.m4 \ |
63 | 62 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
64 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
65 | 63 | $(top_srcdir)/common/m4/pkg.m4 \ |
66 | 64 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
67 | 65 | $(top_srcdir)/configure.ac |
266 | 264 | PKG_CONFIG = @PKG_CONFIG@ |
267 | 265 | PLUGINDIR = @PLUGINDIR@ |
268 | 266 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
269 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
270 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
271 | 267 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
272 | 268 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
273 | 269 | PYTHON = @PYTHON@ |
109 | 109 | |
110 | 110 | GHashTable *transmitters; |
111 | 111 | |
112 | GList *transmitters_add_sink; | |
113 | ||
112 | 114 | /* We keep references to these elements |
113 | 115 | */ |
114 | 116 | |
119 | 121 | GstElement *transmitter_rtcp_tee; |
120 | 122 | GstElement *transmitter_rtp_funnel; |
121 | 123 | GstElement *transmitter_rtcp_funnel; |
122 | GstElement *transmitter_rtp_fakesink; | |
123 | GstElement *transmitter_rtcp_fakesink; | |
124 | 124 | |
125 | 125 | GstElement *rtpmuxer; |
126 | 126 | |
392 | 392 | FsRtpSession *self = FS_RTP_SESSION (user_data); |
393 | 393 | FsTransmitter *transmitter = FS_TRANSMITTER (value); |
394 | 394 | GstElement *src, *sink; |
395 | GstObject *parent; | |
395 | 396 | |
396 | 397 | g_object_get (transmitter, "gst-sink", &sink, "gst-src", &src, NULL); |
397 | 398 | |
398 | 399 | gst_element_set_locked_state (src, TRUE); |
399 | 400 | gst_element_set_state (src, GST_STATE_NULL); |
400 | 401 | gst_bin_remove (GST_BIN (self->priv->conference), src); |
401 | gst_element_set_locked_state (src, FALSE); | |
402 | 402 | |
403 | 403 | gst_element_set_locked_state (sink, TRUE); |
404 | 404 | gst_element_set_state (sink, GST_STATE_NULL); |
405 | gst_bin_remove (GST_BIN (self->priv->conference), sink); | |
406 | gst_element_set_locked_state (sink, FALSE); | |
405 | if ((parent = gst_object_get_parent (GST_OBJECT (sink)))) | |
406 | { | |
407 | gst_object_unref (parent); | |
408 | gst_bin_remove (GST_BIN (self->priv->conference), sink); | |
409 | } | |
407 | 410 | |
408 | 411 | gst_object_unref (src); |
409 | 412 | gst_object_unref (sink); |
463 | 466 | g_hash_table_foreach (self->priv->transmitters, _stop_transmitter_elem, |
464 | 467 | "gst-sink"); |
465 | 468 | |
466 | stop_and_remove (conferencebin, &self->priv->transmitter_rtp_fakesink, TRUE); | |
467 | stop_and_remove (conferencebin, &self->priv->transmitter_rtcp_fakesink, TRUE); | |
468 | 469 | stop_and_remove (conferencebin, &self->priv->transmitter_rtp_tee, TRUE); |
469 | 470 | stop_and_remove (conferencebin, &self->priv->transmitter_rtcp_tee, TRUE); |
470 | 471 | |
628 | 629 | g_hash_table_destroy (self->priv->transmitters); |
629 | 630 | self->priv->transmitters = NULL; |
630 | 631 | } |
632 | ||
633 | g_list_foreach (self->priv->transmitters_add_sink, (GFunc) g_object_unref, | |
634 | NULL); | |
635 | g_list_free (self->priv->transmitters_add_sink); | |
636 | self->priv->transmitters_add_sink = NULL; | |
631 | 637 | |
632 | 638 | if (self->priv->free_substreams) |
633 | 639 | { |
844 | 850 | GstElement *tee = NULL; |
845 | 851 | GstElement *funnel = NULL; |
846 | 852 | GstElement *muxer = NULL; |
847 | GstElement *fakesink = NULL; | |
848 | 853 | GstPad *tee_sink_pad = NULL; |
849 | 854 | GstPad *valve_sink_pad = NULL; |
850 | 855 | GstPad *funnel_src_pad = NULL; |
851 | 856 | GstPad *muxer_src_pad = NULL; |
852 | 857 | GstPad *transmitter_rtcp_tee_sink_pad; |
853 | GstPad *pad1, *pad2; | |
858 | GstPad *pad; | |
854 | 859 | GstPadLinkReturn ret; |
855 | 860 | gchar *tmp; |
856 | 861 | |
954 | 959 | } |
955 | 960 | |
956 | 961 | tmp = g_strdup_printf ("valve_send_%u", self->id); |
957 | valve = gst_element_factory_make ("fsvalve", tmp); | |
962 | valve = gst_element_factory_make ("valve", tmp); | |
958 | 963 | g_free (tmp); |
959 | 964 | |
960 | 965 | if (!valve) |
961 | 966 | { |
962 | 967 | self->priv->construction_error = g_error_new (FS_ERROR, |
963 | 968 | FS_ERROR_CONSTRUCTION, |
964 | "Could not create the fsvalve element"); | |
969 | "Could not create the valve element"); | |
965 | 970 | return; |
966 | 971 | } |
967 | 972 | |
1195 | 1200 | } |
1196 | 1201 | g_free (tmp); |
1197 | 1202 | |
1198 | /* Now add a fakesink to the RTP tee */ | |
1199 | ||
1200 | tmp = g_strdup_printf ("sink_rtp_fakesink_%u", self->id); | |
1201 | fakesink = gst_element_factory_make ("fakesink", tmp); | |
1202 | g_free (tmp); | |
1203 | ||
1204 | if (!fakesink) | |
1205 | { | |
1206 | self->priv->construction_error = g_error_new (FS_ERROR, | |
1207 | FS_ERROR_CONSTRUCTION, | |
1208 | "Could not create the rtp fakesink element"); | |
1209 | return; | |
1210 | } | |
1211 | ||
1212 | if (!gst_bin_add (GST_BIN (self->priv->conference), fakesink)) | |
1213 | { | |
1214 | self->priv->construction_error = g_error_new (FS_ERROR, | |
1215 | FS_ERROR_CONSTRUCTION, | |
1216 | "Could not add the rtp fakesink element to the FsRtpConference"); | |
1217 | gst_object_unref (tee); | |
1218 | return; | |
1219 | } | |
1220 | ||
1221 | g_object_set (fakesink, "sync", FALSE, "async", FALSE, NULL); | |
1222 | ||
1223 | gst_element_set_state (fakesink, GST_STATE_PLAYING); | |
1224 | ||
1225 | self->priv->transmitter_rtp_fakesink = gst_object_ref (fakesink); | |
1226 | ||
1227 | pad1 = gst_element_get_request_pad (tee, "src%d"); | |
1228 | pad2 = gst_element_get_static_pad (fakesink, "sink"); | |
1229 | ||
1230 | ret = gst_pad_link (pad1, pad2); | |
1231 | ||
1232 | gst_object_unref (pad2); | |
1233 | gst_object_unref (pad1); | |
1234 | ||
1235 | if (GST_PAD_LINK_FAILED (ret)) | |
1236 | { | |
1237 | self->priv->construction_error = g_error_new (FS_ERROR, | |
1238 | FS_ERROR_CONSTRUCTION, | |
1239 | "Could not link the rtp tee to its fakesink"); | |
1240 | return; | |
1241 | } | |
1242 | ||
1243 | 1203 | /* Now create the transmitter RTCP tee */ |
1244 | 1204 | |
1245 | 1205 | tmp = g_strdup_printf ("send_rtcp_tee_%u", self->id); |
1299 | 1259 | return; |
1300 | 1260 | } |
1301 | 1261 | |
1302 | /* Now add a fakesink to the RTCP tee */ | |
1303 | ||
1304 | tmp = g_strdup_printf ("sink_rtcp_fakesink_%u", self->id); | |
1305 | fakesink = gst_element_factory_make ("fakesink", tmp); | |
1306 | g_free (tmp); | |
1307 | ||
1308 | if (!fakesink) | |
1309 | { | |
1310 | self->priv->construction_error = g_error_new (FS_ERROR, | |
1311 | FS_ERROR_CONSTRUCTION, | |
1312 | "Could not create the rtcp fakesink element"); | |
1313 | return; | |
1314 | } | |
1315 | ||
1316 | if (!gst_bin_add (GST_BIN (self->priv->conference), fakesink)) | |
1317 | { | |
1318 | self->priv->construction_error = g_error_new (FS_ERROR, | |
1319 | FS_ERROR_CONSTRUCTION, | |
1320 | "Could not add the rtcp fakesink element to the FsRtcpConference"); | |
1321 | gst_object_unref (tee); | |
1322 | return; | |
1323 | } | |
1324 | ||
1325 | g_object_set (fakesink, "sync", FALSE, "async", FALSE, NULL); | |
1326 | ||
1327 | gst_element_set_state (fakesink, GST_STATE_PLAYING); | |
1328 | ||
1329 | self->priv->transmitter_rtcp_fakesink = gst_object_ref (fakesink); | |
1330 | ||
1331 | pad1 = gst_element_get_request_pad (tee, "src%d"); | |
1332 | pad2 = gst_element_get_static_pad (fakesink, "sink"); | |
1333 | ||
1334 | ret = gst_pad_link (pad1, pad2); | |
1335 | ||
1336 | gst_object_unref (pad2); | |
1337 | gst_object_unref (pad1); | |
1338 | ||
1339 | if (GST_PAD_LINK_FAILED (ret)) | |
1340 | { | |
1341 | self->priv->construction_error = g_error_new (FS_ERROR, | |
1342 | FS_ERROR_CONSTRUCTION, | |
1343 | "Could not link the rtcp tee to its fakesink"); | |
1344 | return; | |
1345 | } | |
1346 | ||
1347 | 1262 | /* Lets now do the send_capsfilter */ |
1348 | 1263 | |
1349 | 1264 | tmp = g_strdup_printf ("send_rtp_capsfilter_%u", self->id); |
1367 | 1282 | return; |
1368 | 1283 | } |
1369 | 1284 | |
1370 | pad1 = gst_element_get_static_pad (capsfilter, "src"); | |
1371 | g_signal_connect (pad1, "notify::caps", G_CALLBACK (_send_caps_changed), | |
1285 | pad = gst_element_get_static_pad (capsfilter, "src"); | |
1286 | g_signal_connect (pad, "notify::caps", G_CALLBACK (_send_caps_changed), | |
1372 | 1287 | self); |
1373 | gst_object_unref (pad1); | |
1288 | gst_object_unref (pad); | |
1374 | 1289 | |
1375 | 1290 | self->priv->send_capsfilter = gst_object_ref (capsfilter); |
1376 | 1291 | |
1813 | 1728 | return TRUE; |
1814 | 1729 | } |
1815 | 1730 | |
1816 | ||
1817 | 1731 | static void |
1818 | 1732 | _transmitter_error ( |
1819 | 1733 | FsStreamTransmitter *stream_transmitter, |
1837 | 1751 | return NULL; |
1838 | 1752 | } |
1839 | 1753 | |
1754 | static gboolean | |
1755 | fs_rtp_session_add_transmitter_gst_sink (FsRtpSession *self, | |
1756 | FsTransmitter *transmitter, | |
1757 | GError **error) | |
1758 | { | |
1759 | GstElement *sink; | |
1760 | ||
1761 | g_object_get (transmitter, "gst-sink", &sink, NULL); | |
1762 | ||
1763 | if (!gst_bin_add (GST_BIN (self->priv->conference), sink)) | |
1764 | { | |
1765 | g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, | |
1766 | "Could not add the transmitter sink for %s to the conference", | |
1767 | G_OBJECT_TYPE_NAME(transmitter)); | |
1768 | goto error; | |
1769 | } | |
1770 | ||
1771 | if (!_get_request_pad_and_link (self->priv->transmitter_rtp_tee, | |
1772 | "rtp tee", sink, "sink1", GST_PAD_SINK, error)) | |
1773 | goto error; | |
1774 | ||
1775 | if (!_get_request_pad_and_link (self->priv->transmitter_rtcp_tee, | |
1776 | "rtcp tee", sink, "sink2", GST_PAD_SINK, error)) | |
1777 | goto error; | |
1778 | ||
1779 | gst_element_sync_state_with_parent (sink); | |
1780 | ||
1781 | gst_object_unref (sink); | |
1782 | ||
1783 | return TRUE; | |
1784 | ||
1785 | error: | |
1786 | if (sink) | |
1787 | gst_object_unref (sink); | |
1788 | ||
1789 | return FALSE; | |
1790 | } | |
1840 | 1791 | |
1841 | 1792 | /** |
1842 | 1793 | * fs_rtp_session_get_new_stream_transmitter: |
1858 | 1809 | GParameter *parameters, GError **error) |
1859 | 1810 | { |
1860 | 1811 | FsTransmitter *transmitter; |
1861 | GstElement *src, *sink; | |
1812 | GstElement *src; | |
1813 | gboolean sink_add_later = FALSE; | |
1862 | 1814 | |
1863 | 1815 | FS_RTP_SESSION_LOCK (self); |
1864 | 1816 | |
1882 | 1834 | if (!transmitter) |
1883 | 1835 | return NULL; |
1884 | 1836 | |
1885 | g_object_get (transmitter, "gst-sink", &sink, "gst-src", &src, NULL); | |
1886 | ||
1887 | 1837 | g_signal_connect (transmitter, "error", G_CALLBACK (_transmitter_error), |
1888 | 1838 | self); |
1889 | 1839 | g_signal_connect (transmitter, "get-recvonly-filter", |
1890 | 1840 | G_CALLBACK (_get_recvonly_filter), NULL); |
1891 | 1841 | |
1892 | if (!gst_bin_add (GST_BIN (self->priv->conference), sink)) | |
1893 | { | |
1894 | g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, | |
1895 | "Could not add the transmitter sink for %s to the conference", | |
1896 | transmitter_name); | |
1897 | goto error; | |
1898 | } | |
1842 | if (self->priv->send_codecbin) | |
1843 | { | |
1844 | if (!fs_rtp_session_add_transmitter_gst_sink (self, transmitter, error)) | |
1845 | goto error; | |
1846 | } | |
1847 | else | |
1848 | { | |
1849 | sink_add_later = TRUE; | |
1850 | } | |
1851 | ||
1852 | g_object_get (transmitter, "gst-src", &src, NULL); | |
1899 | 1853 | |
1900 | 1854 | if (!gst_bin_add (GST_BIN (self->priv->conference), src)) |
1901 | 1855 | { |
1905 | 1859 | goto error; |
1906 | 1860 | } |
1907 | 1861 | |
1908 | if (!_get_request_pad_and_link (self->priv->transmitter_rtp_tee, | |
1909 | "rtp tee", sink, "sink1", GST_PAD_SINK, error)) | |
1910 | goto error; | |
1911 | ||
1912 | if (!_get_request_pad_and_link (self->priv->transmitter_rtcp_tee, | |
1913 | "rtcp tee", sink, "sink2", GST_PAD_SINK, error)) | |
1914 | goto error; | |
1915 | ||
1916 | 1862 | if (!_get_request_pad_and_link (self->priv->transmitter_rtp_funnel, |
1917 | 1863 | "rtp funnel", src, "src1", GST_PAD_SRC, error)) |
1918 | 1864 | goto error; |
1922 | 1868 | goto error; |
1923 | 1869 | |
1924 | 1870 | gst_element_sync_state_with_parent (src); |
1925 | gst_element_sync_state_with_parent (sink); | |
1926 | 1871 | |
1927 | 1872 | FS_RTP_SESSION_LOCK (self); |
1928 | 1873 | /* Check if two were added at the same time */ |
1931 | 1876 | FS_RTP_SESSION_UNLOCK (self); |
1932 | 1877 | |
1933 | 1878 | gst_element_set_locked_state (src, TRUE); |
1934 | gst_element_set_locked_state (sink, TRUE); | |
1935 | 1879 | gst_element_set_state (src, GST_STATE_NULL); |
1936 | gst_element_set_state (sink, GST_STATE_NULL); | |
1937 | 1880 | goto error; |
1938 | 1881 | } |
1939 | 1882 | |
1883 | if (sink_add_later) | |
1884 | self->priv->transmitters_add_sink = g_list_prepend ( | |
1885 | self->priv->transmitters_add_sink, g_object_ref (transmitter)); | |
1940 | 1886 | g_hash_table_insert (self->priv->transmitters, g_strdup (transmitter_name), |
1941 | transmitter); | |
1887 | transmitter); | |
1942 | 1888 | FS_RTP_SESSION_UNLOCK (self); |
1943 | 1889 | |
1944 | 1890 | gst_object_unref (src); |
1945 | gst_object_unref (sink); | |
1946 | 1891 | |
1947 | 1892 | return fs_transmitter_new_stream_transmitter (transmitter, participant, |
1948 | 1893 | n_parameters, parameters, error); |
1956 | 1901 | error: |
1957 | 1902 | if (src) |
1958 | 1903 | gst_object_unref (src); |
1959 | if (sink) | |
1960 | gst_object_unref (sink); | |
1961 | 1904 | if (transmitter) |
1962 | 1905 | g_object_unref (transmitter); |
1963 | 1906 | |
2682 | 2625 | current_element = gst_element_factory_make ("autoconvert", NULL); |
2683 | 2626 | |
2684 | 2627 | if (!current_element) |
2685 | current_element = gst_element_factory_make ("fsselector", NULL); | |
2686 | ||
2687 | if (!current_element) | |
2688 | 2628 | { |
2689 | 2629 | g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, |
2690 | "Could not create autoconvert (ex-fsselector) element"); | |
2630 | "Could not create autoconvert element"); | |
2691 | 2631 | goto error; |
2692 | 2632 | } |
2693 | 2633 | |
3306 | 3246 | GstIterator *iter; |
3307 | 3247 | GValue link_rv = {0}; |
3308 | 3248 | struct link_data data; |
3249 | GList *item; | |
3309 | 3250 | |
3310 | 3251 | GST_DEBUG ("Trying to add send codecbin for " FS_CODEC_FORMAT, |
3311 | 3252 | FS_CODEC_ARGS (codec)); |
3410 | 3351 | " of the conference", codec->id); |
3411 | 3352 | goto error; |
3412 | 3353 | } |
3354 | ||
3355 | ||
3356 | FS_RTP_SESSION_LOCK (session); | |
3357 | while ((item = session->priv->transmitters_add_sink) != NULL) | |
3358 | { | |
3359 | FsTransmitter *transmitter = item->data; | |
3360 | ||
3361 | session->priv->transmitters_add_sink = g_list_delete_link ( | |
3362 | session->priv->transmitters_add_sink, item); | |
3363 | ||
3364 | FS_RTP_SESSION_UNLOCK (session); | |
3365 | ||
3366 | if (!fs_rtp_session_add_transmitter_gst_sink (session, transmitter, error)) | |
3367 | { | |
3368 | FS_RTP_SESSION_LOCK (session); | |
3369 | g_object_unref (transmitter); | |
3370 | g_list_foreach (session->priv->transmitters_add_sink, | |
3371 | (GFunc) g_object_unref, NULL); | |
3372 | g_list_free (session->priv->transmitters_add_sink); | |
3373 | session->priv->transmitters_add_sink = NULL; | |
3374 | goto error; | |
3375 | } | |
3376 | ||
3377 | g_object_unref (transmitter); | |
3378 | FS_RTP_SESSION_LOCK (session); | |
3379 | } | |
3380 | FS_RTP_SESSION_UNLOCK (session); | |
3413 | 3381 | |
3414 | 3382 | g_object_set (session->priv->media_sink_valve, "drop", FALSE, NULL); |
3415 | 3383 |
40 | 40 | * |
41 | 41 | * This object controls a part of the receive pipeline, with the following shape |
42 | 42 | * |
43 | * rtpbin_pad -> capsfilter -> codecbin -> valve -> output_ghostad | |
43 | * rtpbin_pad -> input_valve -> capsfilter -> codecbin -> output_valve -> output_ghostad | |
44 | 44 | * |
45 | 45 | */ |
46 | 46 | |
83 | 83 | |
84 | 84 | GstPad *rtpbin_pad; |
85 | 85 | |
86 | GstElement *valve; | |
86 | GstElement *input_valve; | |
87 | GstElement *output_valve; | |
87 | 88 | |
88 | 89 | GstElement *capsfilter; |
89 | 90 | |
491 | 492 | fs_rtp_sub_stream_constructed (GObject *object) |
492 | 493 | { |
493 | 494 | FsRtpSubStream *self = FS_RTP_SUB_STREAM (object); |
494 | GstPad *capsfilter_sink_pad = NULL; | |
495 | GstPad *valve_sink_pad = NULL; | |
495 | 496 | GstPadLinkReturn linkret; |
496 | 497 | gchar *tmp; |
497 | 498 | |
504 | 505 | return; |
505 | 506 | } |
506 | 507 | |
507 | tmp = g_strdup_printf ("recv_valve_%d_%d_%d", self->priv->session->id, | |
508 | tmp = g_strdup_printf ("output_recv_valve_%d_%d_%d", self->priv->session->id, | |
508 | 509 | self->ssrc, self->pt); |
509 | self->priv->valve = gst_element_factory_make ("fsvalve", tmp); | |
510 | self->priv->output_valve = gst_element_factory_make ("valve", tmp); | |
510 | 511 | g_free (tmp); |
511 | 512 | |
512 | if (!self->priv->valve) { | |
513 | if (!self->priv->output_valve) { | |
513 | 514 | self->priv->construction_error = g_error_new (FS_ERROR, |
514 | FS_ERROR_CONSTRUCTION, "Could not create a fsvalve element for" | |
515 | FS_ERROR_CONSTRUCTION, "Could not create a valve element for" | |
515 | 516 | " session substream with ssrc: %u and pt:%d", self->ssrc, |
516 | 517 | self->pt); |
517 | 518 | return; |
518 | 519 | } |
519 | 520 | |
520 | if (!gst_bin_add (GST_BIN (self->priv->conference), self->priv->valve)) { | |
521 | if (!gst_bin_add (GST_BIN (self->priv->conference), self->priv->output_valve)) | |
522 | { | |
521 | 523 | self->priv->construction_error = g_error_new (FS_ERROR, |
522 | FS_ERROR_CONSTRUCTION, "Could not add the fsvalve element for session" | |
524 | FS_ERROR_CONSTRUCTION, "Could not add the valve element for session" | |
523 | 525 | " substream with ssrc: %u and pt:%d to the conference bin", |
524 | 526 | self->ssrc, self->pt); |
525 | 527 | return; |
526 | 528 | } |
527 | 529 | |
528 | 530 | /* We set the valve to dropping, the stream will unblock it when its linked */ |
529 | g_object_set (self->priv->valve, | |
530 | "drop", TRUE, | |
531 | NULL); | |
532 | ||
533 | if (gst_element_set_state (self->priv->valve, GST_STATE_PLAYING) == | |
531 | g_object_set (self->priv->output_valve, "drop", TRUE, NULL); | |
532 | ||
533 | if (gst_element_set_state (self->priv->output_valve, GST_STATE_PLAYING) == | |
534 | 534 | GST_STATE_CHANGE_FAILURE) { |
535 | 535 | self->priv->construction_error = g_error_new (FS_ERROR, |
536 | FS_ERROR_CONSTRUCTION, "Could not set the fsvalve element for session" | |
536 | FS_ERROR_CONSTRUCTION, "Could not set the valve element for session" | |
537 | 537 | " substream with ssrc: %u and pt:%d to the playing state", |
538 | 538 | self->ssrc, self->pt); |
539 | 539 | return; |
569 | 569 | return; |
570 | 570 | } |
571 | 571 | |
572 | capsfilter_sink_pad = gst_element_get_static_pad (self->priv->capsfilter, | |
572 | tmp = g_strdup_printf ("input_recv_valve_%d_%d_%d", self->priv->session->id, | |
573 | self->ssrc, self->pt); | |
574 | self->priv->input_valve = gst_element_factory_make ("valve", tmp); | |
575 | g_free (tmp); | |
576 | ||
577 | if (!self->priv->input_valve) { | |
578 | self->priv->construction_error = g_error_new (FS_ERROR, | |
579 | FS_ERROR_CONSTRUCTION, "Could not create a valve element for" | |
580 | " session substream with ssrc: %u and pt:%d", self->ssrc, | |
581 | self->pt); | |
582 | return; | |
583 | } | |
584 | ||
585 | if (!gst_bin_add (GST_BIN (self->priv->conference), self->priv->input_valve)) | |
586 | { | |
587 | self->priv->construction_error = g_error_new (FS_ERROR, | |
588 | FS_ERROR_CONSTRUCTION, "Could not add the valve element for session" | |
589 | " substream with ssrc: %u and pt:%d to the conference bin", | |
590 | self->ssrc, self->pt); | |
591 | return; | |
592 | } | |
593 | ||
594 | if (gst_element_set_state (self->priv->input_valve, GST_STATE_PLAYING) == | |
595 | GST_STATE_CHANGE_FAILURE) { | |
596 | self->priv->construction_error = g_error_new (FS_ERROR, | |
597 | FS_ERROR_CONSTRUCTION, "Could not set the valve element for session" | |
598 | " substream with ssrc: %u and pt:%d to the playing state", | |
599 | self->ssrc, self->pt); | |
600 | return; | |
601 | } | |
602 | ||
603 | if (!gst_element_link (self->priv->input_valve, self->priv->capsfilter)) | |
604 | { | |
605 | self->priv->construction_error = g_error_new (FS_ERROR, | |
606 | FS_ERROR_CONSTRUCTION, "Could not link the input valve" | |
607 | " and the capsfilter"); | |
608 | return; | |
609 | } | |
610 | ||
611 | valve_sink_pad = gst_element_get_static_pad (self->priv->input_valve, | |
573 | 612 | "sink"); |
574 | if (!capsfilter_sink_pad) | |
613 | if (!valve_sink_pad) | |
575 | 614 | { |
576 | 615 | self->priv->construction_error = g_error_new (FS_ERROR, |
577 | 616 | FS_ERROR_CONSTRUCTION, |
578 | "Could not get the capsfilter's sink pad"); | |
579 | return; | |
580 | } | |
581 | ||
582 | linkret = gst_pad_link (self->priv->rtpbin_pad, capsfilter_sink_pad); | |
583 | ||
584 | gst_object_unref (capsfilter_sink_pad); | |
617 | "Could not get the valve's sink pad"); | |
618 | return; | |
619 | } | |
620 | ||
621 | linkret = gst_pad_link (self->priv->rtpbin_pad, valve_sink_pad); | |
622 | ||
623 | gst_object_unref (valve_sink_pad); | |
585 | 624 | |
586 | 625 | if (GST_PAD_LINK_FAILED (linkret)) |
587 | 626 | { |
590 | 629 | "Could not link the rtpbin to the codec bin (%d)", linkret); |
591 | 630 | return; |
592 | 631 | } |
593 | ||
594 | 632 | |
595 | 633 | if (self->no_rtcp_timeout > 0) |
596 | 634 | if (!fs_rtp_sub_stream_start_no_rtcp_timeout_thread (self, |
617 | 655 | self->priv->output_ghostpad = NULL; |
618 | 656 | } |
619 | 657 | |
620 | if (self->priv->valve) { | |
621 | gst_element_set_locked_state (self->priv->valve, TRUE); | |
622 | gst_element_set_state (self->priv->valve, GST_STATE_NULL); | |
623 | gst_bin_remove (GST_BIN (self->priv->conference), self->priv->valve); | |
624 | self->priv->valve = NULL; | |
658 | if (self->priv->output_valve) { | |
659 | gst_element_set_locked_state (self->priv->output_valve, TRUE); | |
660 | gst_element_set_state (self->priv->output_valve, GST_STATE_NULL); | |
661 | gst_bin_remove (GST_BIN (self->priv->conference), self->priv->output_valve); | |
662 | self->priv->output_valve = NULL; | |
625 | 663 | } |
626 | 664 | |
627 | 665 | if (self->priv->codecbin) { |
638 | 676 | self->priv->capsfilter = NULL; |
639 | 677 | } |
640 | 678 | |
679 | if (self->priv->input_valve) { | |
680 | gst_element_set_locked_state (self->priv->input_valve, TRUE); | |
681 | gst_element_set_state (self->priv->input_valve, GST_STATE_NULL); | |
682 | gst_bin_remove (GST_BIN (self->priv->conference), self->priv->input_valve); | |
683 | self->priv->input_valve = NULL; | |
684 | } | |
685 | ||
641 | 686 | if (self->priv->blocking_id) |
642 | 687 | { |
643 | 688 | gst_pad_remove_data_probe (self->priv->rtpbin_pad, |
710 | 755 | break; |
711 | 756 | case PROP_RECEIVING: |
712 | 757 | self->priv->receiving = g_value_get_boolean (value); |
713 | if (self->priv->output_ghostpad && self->priv->valve) | |
714 | g_object_set (G_OBJECT (self->priv->valve), | |
758 | if (self->priv->input_valve) | |
759 | g_object_set (G_OBJECT (self->priv->input_valve), | |
715 | 760 | "drop", !self->priv->receiving, |
716 | 761 | NULL); |
717 | 762 | break; |
877 | 922 | } |
878 | 923 | |
879 | 924 | if (!gst_element_link_pads (codecbin, "src", |
880 | substream->priv->valve, "sink")) | |
925 | substream->priv->output_valve, "sink")) | |
881 | 926 | { |
882 | 927 | g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION, |
883 | "Could not link the codec bin to the valve"); | |
928 | "Could not link the codec bin to the output_valve"); | |
884 | 929 | goto error; |
885 | 930 | } |
886 | 931 | |
1008 | 1053 | if (substream->priv->output_ghostpad) |
1009 | 1054 | gst_pad_set_active (substream->priv->output_ghostpad, FALSE); |
1010 | 1055 | |
1011 | if (substream->priv->valve) | |
1012 | { | |
1013 | gst_element_set_locked_state (substream->priv->valve, TRUE); | |
1014 | gst_element_set_state (substream->priv->valve, GST_STATE_NULL); | |
1056 | if (substream->priv->output_valve) | |
1057 | { | |
1058 | gst_element_set_locked_state (substream->priv->output_valve, TRUE); | |
1059 | gst_element_set_state (substream->priv->output_valve, GST_STATE_NULL); | |
1015 | 1060 | } |
1016 | 1061 | |
1017 | 1062 | if (substream->priv->codecbin) |
1024 | 1069 | { |
1025 | 1070 | gst_element_set_locked_state (substream->priv->capsfilter, TRUE); |
1026 | 1071 | gst_element_set_state (substream->priv->capsfilter, GST_STATE_NULL); |
1072 | } | |
1073 | ||
1074 | if (substream->priv->input_valve) | |
1075 | { | |
1076 | gst_element_set_locked_state (substream->priv->input_valve, TRUE); | |
1077 | gst_element_set_state (substream->priv->input_valve, GST_STATE_NULL); | |
1027 | 1078 | } |
1028 | 1079 | } |
1029 | 1080 | |
1079 | 1130 | |
1080 | 1131 | FS_RTP_SESSION_UNLOCK (substream->priv->session); |
1081 | 1132 | |
1082 | valve_srcpad = gst_element_get_static_pad (substream->priv->valve, | |
1133 | valve_srcpad = gst_element_get_static_pad (substream->priv->output_valve, | |
1083 | 1134 | "src"); |
1084 | 1135 | g_assert (valve_srcpad); |
1085 | 1136 | |
1139 | 1190 | |
1140 | 1191 | fs_codec_destroy (codec); |
1141 | 1192 | |
1142 | if (receiving) | |
1143 | g_object_set (substream->priv->valve, "drop", FALSE, NULL); | |
1193 | g_object_set (substream->priv->output_valve, "drop", FALSE, NULL); | |
1144 | 1194 | |
1145 | 1195 | fs_rtp_sub_stream_try_stop (substream); |
1146 | 1196 |
40 | 40 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
41 | 41 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
42 | 42 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
43 | $(top_srcdir)/common/m4/as-python.m4 \ | |
44 | 43 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
45 | 44 | $(top_srcdir)/common/m4/as-version.m4 \ |
46 | 45 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/gst.m4 \ |
54 | 53 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
55 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
56 | 54 | $(top_srcdir)/common/m4/pkg.m4 \ |
57 | 55 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
58 | 56 | $(top_srcdir)/configure.ac |
208 | 206 | PKG_CONFIG = @PKG_CONFIG@ |
209 | 207 | PLUGINDIR = @PLUGINDIR@ |
210 | 208 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
211 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
212 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
213 | 209 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
214 | 210 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
215 | 211 | PYTHON = @PYTHON@ |
48 | 48 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
49 | 49 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
50 | 50 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
51 | $(top_srcdir)/common/m4/as-python.m4 \ | |
52 | 51 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/as-version.m4 \ |
54 | 53 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
60 | 59 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
61 | 60 | $(top_srcdir)/common/m4/gst.m4 \ |
62 | 61 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
63 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
64 | 62 | $(top_srcdir)/common/m4/pkg.m4 \ |
65 | 63 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
66 | 64 | $(top_srcdir)/configure.ac |
217 | 215 | PKG_CONFIG = @PKG_CONFIG@ |
218 | 216 | PLUGINDIR = @PLUGINDIR@ |
219 | 217 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
220 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
221 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
222 | 218 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
223 | 219 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
224 | 220 | PYTHON = @PYTHON@ |
40 | 40 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
41 | 41 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
42 | 42 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
43 | $(top_srcdir)/common/m4/as-python.m4 \ | |
44 | 43 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
45 | 44 | $(top_srcdir)/common/m4/as-version.m4 \ |
46 | 45 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/gst.m4 \ |
54 | 53 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
55 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
56 | 54 | $(top_srcdir)/common/m4/pkg.m4 \ |
57 | 55 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
58 | 56 | $(top_srcdir)/configure.ac |
210 | 208 | PKG_CONFIG = @PKG_CONFIG@ |
211 | 209 | PLUGINDIR = @PLUGINDIR@ |
212 | 210 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
213 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
214 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
215 | 211 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
216 | 212 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
217 | 213 | PYTHON = @PYTHON@ |
37 | 37 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
38 | 38 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
40 | $(top_srcdir)/common/m4/as-python.m4 \ | |
41 | 40 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
42 | 41 | $(top_srcdir)/common/m4/as-version.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
52 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
53 | 51 | $(top_srcdir)/common/m4/pkg.m4 \ |
54 | 52 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
55 | 53 | $(top_srcdir)/configure.ac |
185 | 183 | PKG_CONFIG = @PKG_CONFIG@ |
186 | 184 | PLUGINDIR = @PLUGINDIR@ |
187 | 185 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
188 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
189 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
190 | 186 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
191 | 187 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
192 | 188 | PYTHON = @PYTHON@ |
39 | 39 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
40 | 40 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
41 | 41 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
42 | $(top_srcdir)/common/m4/as-python.m4 \ | |
43 | 42 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
44 | 43 | $(top_srcdir)/common/m4/as-version.m4 \ |
45 | 44 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gst.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
54 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
55 | 53 | $(top_srcdir)/common/m4/pkg.m4 \ |
56 | 54 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
57 | 55 | $(top_srcdir)/configure.ac |
188 | 186 | PKG_CONFIG = @PKG_CONFIG@ |
189 | 187 | PLUGINDIR = @PLUGINDIR@ |
190 | 188 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
191 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
192 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
193 | 189 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
194 | 190 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
195 | 191 | PYTHON = @PYTHON@ |
48 | 48 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
49 | 49 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
50 | 50 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
51 | $(top_srcdir)/common/m4/as-python.m4 \ | |
52 | 51 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/as-version.m4 \ |
54 | 53 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
60 | 59 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
61 | 60 | $(top_srcdir)/common/m4/gst.m4 \ |
62 | 61 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
63 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
64 | 62 | $(top_srcdir)/common/m4/pkg.m4 \ |
65 | 63 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
66 | 64 | $(top_srcdir)/configure.ac |
240 | 238 | PKG_CONFIG = @PKG_CONFIG@ |
241 | 239 | PLUGINDIR = @PLUGINDIR@ |
242 | 240 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
243 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
244 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
245 | 241 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
246 | 242 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
247 | 243 | PYTHON = @PYTHON@ |
95 | 95 | static void |
96 | 96 | fs_base_conference_class_init (FsBaseConferenceClass * klass) |
97 | 97 | { |
98 | GObjectClass *gobject_class; | |
99 | ||
100 | gobject_class = G_OBJECT_CLASS (klass); | |
101 | ||
102 | // g_type_class_add_private (klass, sizeof (FsBaseConferencePrivate)); | |
103 | ||
104 | 98 | parent_class = g_type_class_peek_parent (klass); |
105 | 99 | } |
106 | 100 |
322 | 322 | case G_TYPE_UINT64: |
323 | 323 | case G_TYPE_INT64: |
324 | 324 | case G_TYPE_DOUBLE: |
325 | /* FIXME it seems get_double is only in 2.12, so for now get a | |
326 | * string and convert it to double */ | |
327 | #if GLIB_CHECK_VERSION(2,12,0) | |
328 | 325 | double_key_value = g_key_file_get_double (keyfile, name, |
329 | 326 | keys[i], NULL); |
330 | #else | |
331 | str_key_value = g_key_file_get_value (keyfile, name, keys[i], | |
332 | NULL); | |
333 | double_key_value = g_strtod (str_key_value, NULL); | |
334 | #endif | |
335 | 327 | g_value_init (&key_value, G_TYPE_DOUBLE); |
336 | 328 | g_value_set_double (&key_value, double_key_value); |
337 | 329 | DEBUG ("%s is a uint64", keys[i]); |
37 | 37 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
38 | 38 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
40 | $(top_srcdir)/common/m4/as-python.m4 \ | |
41 | 40 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
42 | 41 | $(top_srcdir)/common/m4/as-version.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
52 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
53 | 51 | $(top_srcdir)/common/m4/pkg.m4 \ |
54 | 52 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
55 | 53 | $(top_srcdir)/configure.ac |
173 | 171 | PKG_CONFIG = @PKG_CONFIG@ |
174 | 172 | PLUGINDIR = @PLUGINDIR@ |
175 | 173 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
176 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
177 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
178 | 174 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
179 | 175 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
180 | 176 | PYTHON = @PYTHON@ |
38 | 38 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
40 | 40 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
41 | $(top_srcdir)/common/m4/as-python.m4 \ | |
42 | 41 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/as-version.m4 \ |
44 | 43 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gst.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
53 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
54 | 52 | $(top_srcdir)/common/m4/pkg.m4 \ |
55 | 53 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
56 | 54 | $(top_srcdir)/configure.ac |
207 | 205 | PKG_CONFIG = @PKG_CONFIG@ |
208 | 206 | PLUGINDIR = @PLUGINDIR@ |
209 | 207 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
210 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
211 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
212 | 208 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
213 | 209 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
214 | 210 | PYTHON = @PYTHON@ |
38 | 38 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
40 | 40 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
41 | $(top_srcdir)/common/m4/as-python.m4 \ | |
42 | 41 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/as-version.m4 \ |
44 | 43 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gst.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
53 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
54 | 52 | $(top_srcdir)/common/m4/pkg.m4 \ |
55 | 53 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
56 | 54 | $(top_srcdir)/configure.ac |
185 | 183 | PKG_CONFIG = @PKG_CONFIG@ |
186 | 184 | PLUGINDIR = @PLUGINDIR@ |
187 | 185 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
188 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
189 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
190 | 186 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
191 | 187 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
192 | 188 | PYTHON = @PYTHON@ |
35 | 35 | upnp/WANIPConnection.xml \ |
36 | 36 | base/test1.conf |
37 | 37 | |
38 | if USE_NICE | |
39 | NICE_TRANSMITTER = transmitter/nice | |
40 | else | |
41 | NICE_TRANSMITTER = | |
42 | endif | |
43 | ||
44 | 38 | ####### |
45 | 39 | # From here.. Its a list of our tests and their sub stuff |
46 | 40 | # |
49 | 43 | base/fstransmitter \ |
50 | 44 | transmitter/rawudp \ |
51 | 45 | transmitter/multicast \ |
52 | $(NICE_TRANSMITTER) \ | |
46 | transmitter/nice \ | |
53 | 47 | rtp/codecs \ |
54 | 48 | rtp/sendcodecs \ |
55 | 49 | rtp/conference \ |
34 | 34 | $(top_srcdir)/common/check.mak |
35 | 35 | check_PROGRAMS = base/fscodec$(EXEEXT) base/fstransmitter$(EXEEXT) \ |
36 | 36 | transmitter/rawudp$(EXEEXT) transmitter/multicast$(EXEEXT) \ |
37 | $(am__EXEEXT_1) rtp/codecs$(EXEEXT) rtp/sendcodecs$(EXEEXT) \ | |
38 | rtp/conference$(EXEEXT) utils/binadded$(EXEEXT) \ | |
39 | elements/rtcpfilter$(EXEEXT) | |
37 | transmitter/nice$(EXEEXT) rtp/codecs$(EXEEXT) \ | |
38 | rtp/sendcodecs$(EXEEXT) rtp/conference$(EXEEXT) \ | |
39 | utils/binadded$(EXEEXT) elements/rtcpfilter$(EXEEXT) | |
40 | 40 | subdir = tests/check |
41 | 41 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
42 | 42 | am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ |
43 | 43 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
44 | 44 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
45 | 45 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
46 | $(top_srcdir)/common/m4/as-python.m4 \ | |
47 | 46 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
48 | 47 | $(top_srcdir)/common/m4/as-version.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
55 | 54 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
56 | 55 | $(top_srcdir)/common/m4/gst.m4 \ |
57 | 56 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
58 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
59 | 57 | $(top_srcdir)/common/m4/pkg.m4 \ |
60 | 58 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
61 | 59 | $(top_srcdir)/configure.ac |
64 | 62 | mkinstalldirs = $(install_sh) -d |
65 | 63 | CONFIG_HEADER = $(top_builddir)/config.h |
66 | 64 | CONFIG_CLEAN_FILES = |
67 | @USE_NICE_TRUE@am__EXEEXT_1 = transmitter/nice$(EXEEXT) | |
68 | 65 | base_fscodec_SOURCES = base/fscodec.c |
69 | 66 | base_fscodec_OBJECTS = fscodec.$(OBJEXT) |
70 | 67 | base_fscodec_LDADD = $(LDADD) |
297 | 294 | PKG_CONFIG = @PKG_CONFIG@ |
298 | 295 | PLUGINDIR = @PLUGINDIR@ |
299 | 296 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
300 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
301 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
302 | 297 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
303 | 298 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
304 | 299 | PYTHON = @PYTHON@ |
402 | 397 | upnp/WANIPConnection.xml \ |
403 | 398 | base/test1.conf |
404 | 399 | |
405 | @USE_NICE_FALSE@NICE_TRANSMITTER = | |
406 | @USE_NICE_TRUE@NICE_TRANSMITTER = transmitter/nice | |
407 | 400 | AM_CFLAGS = \ |
408 | 401 | $(CFLAGS) \ |
409 | 402 | $(FS2_INTERNAL_CFLAGS) \ |
1160 | 1153 | |
1161 | 1154 | # hangs spectacularly on some machines, so let's not do this by default yet |
1162 | 1155 | @HAVE_VALGRIND_TRUE@check-valgrind: |
1163 | @HAVE_VALGRIND_TRUE@ make valgrind | |
1156 | @HAVE_VALGRIND_TRUE@ $(MAKE) valgrind | |
1164 | 1157 | @HAVE_VALGRIND_FALSE@check-valgrind: |
1165 | 1158 | @HAVE_VALGRIND_FALSE@ @true |
1166 | 1159 | |
1221 | 1214 | |
1222 | 1215 | # valgrind any given test until failure by running make test.valgrind-forever |
1223 | 1216 | %.valgrind-forever: % |
1224 | @while make $*.valgrind; do \ | |
1217 | @while $(MAKE) $*.valgrind; do \ | |
1225 | 1218 | true; done |
1226 | 1219 | |
1227 | 1220 | # gdb any given test by running make test.gdb |
1236 | 1229 | -rm test-registry.xml |
1237 | 1230 | @echo "Torturing tests ..." |
1238 | 1231 | for i in `seq 1 $(LOOPS)`; do \ |
1239 | make check || \ | |
1232 | $(MAKE) check || \ | |
1240 | 1233 | (echo "Failure after $$i runs"; exit 1) || \ |
1241 | 1234 | exit 1; \ |
1242 | 1235 | done |
1249 | 1242 | -rm test-registry.xml |
1250 | 1243 | @echo "Forever tests ..." |
1251 | 1244 | while true; do \ |
1252 | make check || \ | |
1245 | $(MAKE) check || \ | |
1253 | 1246 | (echo "Failure"; exit 1) || \ |
1254 | 1247 | exit 1; \ |
1255 | 1248 | done |
1259 | 1252 | @echo "Valgrinding tests ..." |
1260 | 1253 | @failed=0; \ |
1261 | 1254 | for t in $(filter-out $(VALGRIND_TESTS_DISABLE),$(TESTS)); do \ |
1262 | make $$t.valgrind; \ | |
1255 | $(MAKE) $$t.valgrind; \ | |
1263 | 1256 | if test "$$?" -ne 0; then \ |
1264 | 1257 | echo "Valgrind error for test $$t"; \ |
1265 | 1258 | failed=`expr $$failed + 1`; \ |
1279 | 1272 | $(GST_INSPECT) $$e > /dev/null 2>&1; done |
1280 | 1273 | |
1281 | 1274 | help: |
1275 | @echo | |
1282 | 1276 | @echo "make check -- run all checks" |
1283 | 1277 | @echo "make torture -- run all checks $(LOOPS) times" |
1284 | 1278 | @echo "make (dir)/(test).check -- run the given check once" |
1293 | 1287 | @echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions" |
1294 | 1288 | @echo " and save to suppressions.log" |
1295 | 1289 | @echo "make inspect -- inspect all plugin features" |
1290 | @echo | |
1291 | @echo | |
1292 | @echo "Additionally, you can use the GST_CHECKS environment variable to" | |
1293 | @echo "specify which test(s) should be run. This is useful if you are" | |
1294 | @echo "debugging a failure in one particular test, or want to reproduce" | |
1295 | @echo "a race condition in a single test." | |
1296 | @echo | |
1297 | @echo "Examples:" | |
1298 | @echo | |
1299 | @echo " GST_CHECKS=test_this,test_that make element/foobar.check" | |
1300 | @echo " GST_CHECKS=test_many_threads make element/foobar.forever" | |
1301 | @echo | |
1296 | 1302 | |
1297 | 1303 | clean-local: clean-local-check |
1298 | 1304 | rm -rf cache |
297 | 297 | cleanup_simple_conference (dat); |
298 | 298 | gst_object_unref (recv_pipeline); |
299 | 299 | |
300 | digit = 0; | |
301 | ||
302 | 300 | g_main_loop_unref (loop); |
303 | 301 | } |
304 | 302 | |
340 | 338 | ret = gst_element_get_state (dat->pipeline, &state, NULL, 0); |
341 | 339 | ts_fail_if (ret == GST_STATE_CHANGE_FAILURE); |
342 | 340 | |
343 | if (state != GST_STATE_PLAYING) | |
341 | if (ret != GST_STATE_CHANGE_SUCCESS || state != GST_STATE_PLAYING) | |
344 | 342 | return TRUE; |
345 | 343 | |
346 | if(!ready_to_send) | |
344 | if (!ready_to_send) | |
347 | 345 | return TRUE; |
348 | 346 | |
349 | 347 |
721 | 721 | |
722 | 722 | /* no IP */ |
723 | 723 | va = g_value_array_new (1); |
724 | s = gst_structure_new ("aa", NULL); | |
724 | s = gst_structure_new ("aa", | |
725 | "port", G_TYPE_UINT, 7654, | |
726 | "username", G_TYPE_STRING, "blah", | |
727 | "password", G_TYPE_STRING, "blah2", | |
728 | NULL); | |
725 | 729 | g_value_init (&val, GST_TYPE_STRUCTURE); |
726 | 730 | g_value_take_boxed (&val, s); |
727 | 731 | g_value_array_append (va, &val); |
737 | 741 | va = g_value_array_new (1); |
738 | 742 | s = gst_structure_new ("aa", |
739 | 743 | "ip", G_TYPE_STRING, "127.0.0.1", |
744 | "username", G_TYPE_STRING, "blah", | |
745 | "password", G_TYPE_STRING, "blah2", | |
746 | NULL); | |
747 | g_value_take_boxed (&val, s); | |
748 | g_value_array_append (va, &val); | |
749 | g_value_take_boxed (¶ms[0].value, va); | |
750 | st = fs_transmitter_new_stream_transmitter (trans, p, 1, params, &error); | |
751 | ts_fail_unless (st == NULL); | |
752 | ts_fail_unless (error && | |
753 | error->domain == FS_ERROR && | |
754 | error->code == FS_ERROR_INVALID_ARGUMENTS); | |
755 | g_clear_error (&error); | |
756 | ||
757 | ||
758 | /* invalid port */ | |
759 | va = g_value_array_new (1); | |
760 | s = gst_structure_new ("aa", | |
761 | "ip", G_TYPE_STRING, "127.0.0.1", | |
762 | "port", G_TYPE_UINT, 0, | |
763 | "username", G_TYPE_STRING, "blah", | |
764 | "password", G_TYPE_STRING, "blah2", | |
765 | NULL); | |
766 | g_value_take_boxed (&val, s); | |
767 | g_value_array_append (va, &val); | |
768 | g_value_take_boxed (¶ms[0].value, va); | |
769 | st = fs_transmitter_new_stream_transmitter (trans, p, 1, params, &error); | |
770 | ts_fail_unless (st == NULL); | |
771 | ts_fail_unless (error && | |
772 | error->domain == FS_ERROR && | |
773 | error->code == FS_ERROR_INVALID_ARGUMENTS); | |
774 | g_clear_error (&error); | |
775 | ||
776 | /* no username */ | |
777 | va = g_value_array_new (1); | |
778 | s = gst_structure_new ("aa", | |
779 | "ip", G_TYPE_STRING, "127.0.0.1", | |
780 | "port", G_TYPE_UINT, 7654, | |
781 | "password", G_TYPE_STRING, "blah2", | |
782 | NULL); | |
783 | g_value_take_boxed (&val, s); | |
784 | g_value_array_append (va, &val); | |
785 | g_value_take_boxed (¶ms[0].value, va); | |
786 | st = fs_transmitter_new_stream_transmitter (trans, p, 1, params, &error); | |
787 | ts_fail_unless (st == NULL); | |
788 | ts_fail_unless (error && | |
789 | error->domain == FS_ERROR && | |
790 | error->code == FS_ERROR_INVALID_ARGUMENTS); | |
791 | g_clear_error (&error); | |
792 | ||
793 | /* no password */ | |
794 | va = g_value_array_new (1); | |
795 | s = gst_structure_new ("aa", | |
796 | "ip", G_TYPE_STRING, "127.0.0.1", | |
797 | "port", G_TYPE_UINT, 7654, | |
798 | "username", G_TYPE_STRING, "blah", | |
740 | 799 | NULL); |
741 | 800 | g_value_take_boxed (&val, s); |
742 | 801 | g_value_array_append (va, &val); |
753 | 812 | s = gst_structure_new ("aa", |
754 | 813 | "ip", G_TYPE_STRING, "127.0.0.1", |
755 | 814 | "port", G_TYPE_UINT, 7654, |
815 | "username", G_TYPE_STRING, "blah", | |
816 | "password", G_TYPE_STRING, "blah2", | |
756 | 817 | NULL); |
757 | 818 | g_value_take_boxed (&val, s); |
758 | 819 | g_value_array_append (va, &val); |
39 | 39 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
40 | 40 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
41 | 41 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
42 | $(top_srcdir)/common/m4/as-python.m4 \ | |
43 | 42 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
44 | 43 | $(top_srcdir)/common/m4/as-version.m4 \ |
45 | 44 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gst.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
54 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
55 | 53 | $(top_srcdir)/common/m4/pkg.m4 \ |
56 | 54 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
57 | 55 | $(top_srcdir)/configure.ac |
217 | 215 | PKG_CONFIG = @PKG_CONFIG@ |
218 | 216 | PLUGINDIR = @PLUGINDIR@ |
219 | 217 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
220 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
221 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
222 | 218 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
223 | 219 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
224 | 220 | PYTHON = @PYTHON@ |
37 | 37 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
38 | 38 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
39 | 39 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
40 | $(top_srcdir)/common/m4/as-python.m4 \ | |
41 | 40 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
42 | 41 | $(top_srcdir)/common/m4/as-version.m4 \ |
43 | 42 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
49 | 48 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
50 | 49 | $(top_srcdir)/common/m4/gst.m4 \ |
51 | 50 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
52 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
53 | 51 | $(top_srcdir)/common/m4/pkg.m4 \ |
54 | 52 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
55 | 53 | $(top_srcdir)/configure.ac |
184 | 182 | PKG_CONFIG = @PKG_CONFIG@ |
185 | 183 | PLUGINDIR = @PLUGINDIR@ |
186 | 184 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
187 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
188 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
189 | 185 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
190 | 186 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
191 | 187 | PYTHON = @PYTHON@ |
40 | 40 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
41 | 41 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
42 | 42 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
43 | $(top_srcdir)/common/m4/as-python.m4 \ | |
44 | 43 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
45 | 44 | $(top_srcdir)/common/m4/as-version.m4 \ |
46 | 45 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/gst.m4 \ |
54 | 53 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
55 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
56 | 54 | $(top_srcdir)/common/m4/pkg.m4 \ |
57 | 55 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
58 | 56 | $(top_srcdir)/configure.ac |
214 | 212 | PKG_CONFIG = @PKG_CONFIG@ |
215 | 213 | PLUGINDIR = @PLUGINDIR@ |
216 | 214 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
217 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
218 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
219 | 215 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
220 | 216 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
221 | 217 | PYTHON = @PYTHON@ |
824 | 824 | if (port == udpsock->port && |
825 | 825 | !strcmp (multicast_ip, udpsock->multicast_ip) && |
826 | 826 | ((local_ip == NULL && udpsock->local_ip == NULL) || |
827 | !strcmp (local_ip, udpsock->local_ip))) | |
827 | (local_ip && udpsock->local_ip && | |
828 | !strcmp (local_ip, udpsock->local_ip)))) | |
828 | 829 | { |
829 | 830 | if (ttl > udpsock->current_ttl) |
830 | 831 | { |
40 | 40 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
41 | 41 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
42 | 42 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
43 | $(top_srcdir)/common/m4/as-python.m4 \ | |
44 | 43 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
45 | 44 | $(top_srcdir)/common/m4/as-version.m4 \ |
46 | 45 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
52 | 51 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/gst.m4 \ |
54 | 53 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
55 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
56 | 54 | $(top_srcdir)/common/m4/pkg.m4 \ |
57 | 55 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
58 | 56 | $(top_srcdir)/configure.ac |
214 | 212 | PKG_CONFIG = @PKG_CONFIG@ |
215 | 213 | PLUGINDIR = @PLUGINDIR@ |
216 | 214 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
217 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
218 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
219 | 215 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
220 | 216 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
221 | 217 | PYTHON = @PYTHON@ |
973 | 973 | gboolean local) |
974 | 974 | { |
975 | 975 | FsCandidate *fscandidate; |
976 | gchar *ipaddr = g_malloc (INET_ADDRSTRLEN); | |
976 | gchar *ipaddr = g_malloc (INET6_ADDRSTRLEN); | |
977 | 977 | |
978 | 978 | nice_address_to_string (&nicecandidate->addr, ipaddr); |
979 | 979 | |
1057 | 1057 | g_object_unref (participant); |
1058 | 1058 | } |
1059 | 1059 | |
1060 | static void | |
1060 | static gboolean | |
1061 | 1061 | fs_nice_stream_transmitter_set_relay_info (FsNiceStreamTransmitter *self, |
1062 | const GstStructure *s, guint component_id) | |
1062 | const GstStructure *s, guint component_id, GError **error) | |
1063 | 1063 | { |
1064 | 1064 | const gchar *username, *password, *ip; |
1065 | 1065 | const gchar *relay_type_string; |
1072 | 1072 | password = gst_structure_get_string (s, "password"); |
1073 | 1073 | relay_type_string = gst_structure_get_string (s, "relay-type"); |
1074 | 1074 | |
1075 | if (!ip || !port || !username || !password) | |
1076 | { | |
1077 | g_set_error (error, FS_ERROR, FS_ERROR_INVALID_ARGUMENTS, | |
1078 | "Need to pass an ip, port, username and password for a relay"); | |
1079 | return FALSE; | |
1080 | } | |
1081 | ||
1075 | 1082 | if (relay_type_string) |
1076 | 1083 | { |
1077 | 1084 | if (!g_ascii_strcasecmp(relay_type_string, "tcp")) |
1083 | 1090 | nice_agent_set_relay_info(self->priv->agent->agent, |
1084 | 1091 | self->priv->stream_id, component_id, ip, port, username, password, |
1085 | 1092 | relay_type); |
1093 | ||
1094 | return TRUE; | |
1086 | 1095 | } |
1087 | 1096 | |
1088 | 1097 | static gboolean |
1313 | 1322 | if (gst_structure_get_uint (s, "component", &component_id) && |
1314 | 1323 | component_id == c) |
1315 | 1324 | { |
1316 | fs_nice_stream_transmitter_set_relay_info (self, s, c); | |
1325 | if (!fs_nice_stream_transmitter_set_relay_info (self, s, c, error)) | |
1326 | return FALSE; | |
1317 | 1327 | relay_info_set = TRUE; |
1318 | 1328 | } |
1319 | 1329 | } |
1326 | 1336 | const GstStructure *s = gst_value_get_structure (val); |
1327 | 1337 | |
1328 | 1338 | if (!gst_structure_has_field (s, "component")) |
1329 | fs_nice_stream_transmitter_set_relay_info (self, s, c); | |
1339 | if (!fs_nice_stream_transmitter_set_relay_info (self, s, c, error)) | |
1340 | return FALSE; | |
1330 | 1341 | } |
1331 | 1342 | } |
1332 | 1343 | } |
48 | 48 | $(top_srcdir)/common/m4/as-auto-alt.m4 \ |
49 | 49 | $(top_srcdir)/common/m4/as-compiler-flag.m4 \ |
50 | 50 | $(top_srcdir)/common/m4/as-libtool.m4 \ |
51 | $(top_srcdir)/common/m4/as-python.m4 \ | |
52 | 51 | $(top_srcdir)/common/m4/as-scrub-include.m4 \ |
53 | 52 | $(top_srcdir)/common/m4/as-version.m4 \ |
54 | 53 | $(top_srcdir)/common/m4/gst-arch.m4 \ |
60 | 59 | $(top_srcdir)/common/m4/gst-plugindir.m4 \ |
61 | 60 | $(top_srcdir)/common/m4/gst.m4 \ |
62 | 61 | $(top_srcdir)/common/m4/gtk-doc.m4 \ |
63 | $(top_srcdir)/common/m4/isc-posix.m4 \ | |
64 | 62 | $(top_srcdir)/common/m4/pkg.m4 \ |
65 | 63 | $(top_srcdir)/m4/as-check-python-headers.m4 \ |
66 | 64 | $(top_srcdir)/configure.ac |
228 | 226 | PKG_CONFIG = @PKG_CONFIG@ |
229 | 227 | PLUGINDIR = @PLUGINDIR@ |
230 | 228 | PROFILE_CFLAGS = @PROFILE_CFLAGS@ |
231 | PYDOCSTUFF_CFLAGS = @PYDOCSTUFF_CFLAGS@ | |
232 | PYDOCSTUFF_LIBS = @PYDOCSTUFF_LIBS@ | |
233 | 229 | PYFARSIGHT_CFLAGS = @PYFARSIGHT_CFLAGS@ |
234 | 230 | PYFARSIGHT_LIBS = @PYFARSIGHT_LIBS@ |
235 | 231 | PYTHON = @PYTHON@ |
1410 | 1410 | } |
1411 | 1411 | } |
1412 | 1412 | |
1413 | if (!candidate) | |
1414 | { | |
1415 | stun_message_free (msg); | |
1416 | return TRUE; | |
1417 | } | |
1418 | ||
1413 | 1419 | FS_RAWUDP_COMPONENT_LOCK(self); |
1414 | 1420 | fs_rawudp_component_stop_stun_locked (self); |
1415 | 1421 | #ifdef HAVE_GUPNP |
775 | 775 | udpport = udpport_e->data; |
776 | 776 | if (requested_port == udpport->requested_port && |
777 | 777 | ((requested_ip == NULL && udpport->requested_ip == NULL) || |
778 | !strcmp (requested_ip, udpport->requested_ip))) | |
778 | (requested_ip && udpport->requested_ip && | |
779 | !strcmp (requested_ip, udpport->requested_ip)))) | |
779 | 780 | { |
780 | 781 | GST_LOG ("Got port refcount %d->%d", udpport->refcount, |
781 | 782 | udpport->refcount+1); |