Requirements: ------------- * make and a C and C++ compiler * optionally libjpeg v6 or later * optionally Qt4 for building qv4l2 Building: --------- If you checked out the source repository you need to install the autotools environment and gettext first. The autotools/gettext should be updated to the version that are shipped on your distro. This can be done by running: $ ./bootstrap.sh Then you need to configure any any desired options with: $ ./configure You can get a summary of possible configurations via the --help option. If used without arguments, it will set the install prefix to /usr/local/. After configuration you need to start the build process with: $ make Installing: ----------- To install it at the prefix configured by ./configure, do, as root: # make install Note that v4l-utils' "make install" supports DESTDIR for installing into a build root for example: # make install DESTDIR=/mnt/sysimage Cross Compiling: ---------------- Cross compiling has been tested with the Code Sourcery and Linaro ARM Linux toolchain. To cross compile with the Code Sourcery toolchain run the following commands: export PATH=/opt/arm-2009q3/bin:$PATH export PKG_CONFIG_LIBDIR=/path/to/cross/root/lib ./configure --host=arm-none-linux-gnueabi --without-jpeg make To cross compile with the Linaro toolchain run the following commands: export PATH=/opt/gcc-linaro-arm-linux-gnueabihf-2012.09-20120921_linux/bin:$PATH export PKG_CONFIG_LIBDIR=/path/to/cross/root/lib ./configure --host=arm-linux-gnueabihf --without-jpeg make Android Cross Compiling and Installing: ---------------- v4l-utils will only build using the complete AOSP source tree, because of the stlport dependency. List of v4l-utils that supply an Android.mk makefile: * utils/v4l2-compliance * utils/v4l2-ctl * utils/v4l2-dbg To cross compile an utility you must first configure the shell with Android's envsetup.sh to add the mm alias, before running lunch to select your target device. cd /path/to/aosp source build/envsetup.sh lunch cd /path/to/v4l-utils cd mm Output binary will be located in the Android out directory, below the target/product//system/bin/ path. The binary executable can be pushed to the target Android device using adb push /system/bin