Motion - Configure Tweaks
You are here: Foswiki>Motion Web>ConfigureTweaks (24 Apr 2014, DavidWales)Edit Attach

Some autoconf portability improvements

Description of Patch

While hacking on Motion on OSX and OpenBSD I have had to adjust to make fewer assumptions about the host system.

This patch makes Motion more functional on OSX and OpenBSD machines and should make the configure script more able to automatically handle other OSs and distributions.

I have tested this patch on OpenBSD (4.6, i386), MacOSX (10.6, x86_64), and Linux (Debian 6 "Squeeze", i386).

The patch is broken into three parts, which probably need to be applied in order:
  • configtweaks-defs makes better use of the config.h file for communicating configuration results to the program
  • configtweaks-portability is the main part of the patch, and consists of more accurate tests for a number of system features. Where an existing autoconf test existed, I used that instead of relying on OS defines. In other places I changed autoconf to test for the feature itself instead of relying on a (necessarily incomplete and often outdated) knowledge of which OSs have which features.
  • configtweaks-v4l12 allows Motion to use the V4L2 interface even on systems that don't have V4L1, such as OpenBSD.

Installation of Patch

Download the patch file and apply it to the source code in the usual way. (This patch is against the svn head, r523, and probably won't apply cleanly to the last released version.) Apply -defs, then -portability, then -v4l12.

You will need to rerun 'autoheader' (to update and 'autoconf' (to regenerate configure).

Then re-build Motion and test the patch.

Change History of Patch

  • 1.0 Initial version
Version 1 of the patch is a fairly straightforward patch to the configure machinery: explicitly tests for some system features instead of guessing; uses the uint32_t typedef if available; moves some defines from the command line to config.h. Version 2 of the patch incorporates everything in version 1, but I discovered that OpenBSD currently incudes a v4l2-compatible /dev/video (but no v4l1-compatible interfaces). So I added the ability to enable V4L1 and V4L2 independently, even on BSD systems. This involved some more elaborate changes to I'm not completely sure my changes will interact well with the FreeBSD bktr and PWCBSD support, so hopefully someone can test that (as well as the Linux support; I've compiled this on a Linux system but I do not have a Linux box with a webcam attached so I haven't run it there).
  • 3.0 Updated to apply cleanly to r517; work around an incompatibility in /bin/sh's echo builtin on MacOSX
  • 4.0 Updated to apply cleanly to r523. Split the patch into three parts for clarity. Fixed some problems discovered testing it on Debian.

Discussion and Comments

Please can you create a new patch againts current SVN or GIT version ?

Thanks !


-- AngelCarpintero - 30 Oct 2011

Very useful patch, wish it worked on r550 frown, sad smile

-- RomanGaufman - 21 Jan 2012

would be interested to test, am using motion on wheezy, but would like to trial on os x 10.8.2

is it possible to provide a fork, or source to build? I don't have recent experience with applying patches,

the MacOSX pages are dated 2005 which is a concern.


-- PeepoCom - 11 Jan 2013

Is there a chance that these patches can be updated to work with the current source? Also, is there a reason they haven't been pulled into git yet?

-- DavidWales - 24 Apr 2014
I Attachment Action Size Date Who Comment
configtweaks-wiml4.tar.gzgz configtweaks-wiml4.tar.gz manage 8 K 12 Feb 2011 - 03:01 UnknownUser Split into a series of 3 patches, tested on Debian
configure-wiml1.patchpatch configure-wiml1.patch manage 10 K 06 Aug 2010 - 21:39 UnknownUser  
configure-wiml2.patchpatch configure-wiml2.patch manage 18 K 18 Aug 2010 - 07:37 UnknownUser Revised version of the patch, this time with OpenBSD support
configure-wiml3.patchpatch configure-wiml3.patch manage 19 K 16 Nov 2010 - 05:51 UnknownUser Revised to apply cleanly to svn r517
Topic revision: r8 - 24 Apr 2014, DavidWales
Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Please do not email Kenneth for support questions (read why). Use the Support Requests page or join the Mailing List.
This website only use harmless session cookies. See Cookie Policy for details. By using this website you accept the use of these cookies.