| These are some notes on our autotools setup, and some things to remember. | |
| plugin Makefile.am: | |
| - plugindir gets defined for you, don't set it in Makefile.am | |
| - plugin_LTLIBRARIES should contain the name of every plugin, | |
| starting with libgst and ending in .la | |
| - put compile/link variables in the following order: CFLAGS, LIBADD, LDFLAGS | |
| - order _CFLAGS and _LIBADD with the highest in the stack first; | |
| e.g. $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(MUSICBRAINZ_LIBS) | |
| this makes sure that the one you're most likely to be hacking on | |
| (GStreamer) has its -L flags pointing to your hacking directory, | |
| and comes first on the link line. If it were to come later and you | |
| had the library installed in the same place as the dependency, it | |
| would take that version instead | |
| - DO NOT put any libraries in _LDFLAGS. Typically, _LDFLAGS should only | |
| have $(GST_PLUGIN_LDFLAGS) | |
| - when using gst-plugins-base libraries, use $(GST_PLUGINS_BASE_LIBS) then | |
| add -lgst(library)-$(GST_API_VERSION). Example: | |
| libgstsdlvideosink_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ | |
| -lgstvideo-$(GST_API_VERSION) \ | |
| -lgstaudio-$(GST_API_VERSION) \ | |
| -lgstinterfaces-$(GST_API_VERSION) \ | |
| $(SDL_LIBS) | |
| - don't forget to use noinst_HEADERS if you have private headers | |
| plugin configure.ac snippet: | |
| - ORDER THEM ALPHABETICALLY PLEASE | |
| - wrap your check in a block like this: | |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DEP, true) | |
| GST_CHECK_FEATURE(DEP, [(dependency description)], (plug-in-name), [ | |
| (here go the checks) | |
| ]) | |
| - plug-in name is the name of the *plug-in*, not the element; ie, the | |
| first column when running gst-inspect | |
| - For the checks, in the simplest case, use something like: | |
| GST_PKG_CHECK_MODULES(FOO, foo-0.3 >= 0.3.2) | |
| This will: | |
| - do the check | |
| - show a decent message if it can't find it, without failing | |
| - set HAVE_FOO to yes or no | |
| - set FOO_CFLAGS and FOO_LIBS | |
| - if you want to make sure configure fails when this dependency is missing, | |
| use: | |
| GST_PKG_CHECK_MODULES(FOO, libfoo-0.3 >= 0.3.2, yes) | |
| - if your library does not come with a .pc file, you have to roll your own | |
| check | |
| pkg.m4: (last checked: version 0.20) | |
| - was changed at some point to hide the error message from you, and error | |
| out by default if no ACTION-IF-NOT-FOUND is given. | |
| - caller is responsible for doing AC_MSG_RESULT if ACTION-IF-NOT-FOUND | |
| is given | |
| - for automake-1.6, AC_SUBST((PKG)_CFLAGS) and AC_SUBST((PKG)_LIBS) is not | |
| done automatically. Starting from 1.7, it is. We require 1.7 now. |