/usr/share/doc/libam7xxx0.1-doc/HACKING.asciidoc is in libam7xxx0.1-doc 0.1.6-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | == Hacking libam7xxx
=== Coding style
libam7xxx uses the linux kernel coding style:
http://kernel.org/doc/Documentation/CodingStyle
=== Getting and compiling libam7xxx
libam7xxx depends on 'libusb-1.0' and optionally on 'libav' or 'ffmpeg' for
its example programs, the build system used is 'cmake'.
On a Debian based system, the dependencies can be installed with this command:
$ sudo aptitude install cmake \
libusb-1.0-0-dev \
libavformat-dev \
libavcodec-dev \
libavdevice-dev \
libswscale-dev
With libav/ffmpeg version previous than 0.9 this patch is needed:
http://git.ao2.it/libam7xxx.git/blob_plain/refs/heads/debian:/debian/patches/0001-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch
The library and the example programs can be compiled following these steps:
$ git clone git://git.ao2.it/libam7xxx.git
$ cd libam7xxx
$ mkdir build
$ cd build
$ cmake ../
$ make
After that the example programs can be found in the +bin/+ subdirectory.
=== Debug builds
The suggested way to hack on the project is:
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=debug -D STRICT_COMPILATION_CHECKS=ON ../
$ make
If you want to check the code with the ''sparse'' static analysis tool you
can run:
$ mkdir build
$ cd build
$ cmake -D CMAKE_C_COMPILER=cgcc ../
$ make
And for a pre-release check with a different compiler, which never hurts:
$ mkdir build
$ cd build
$ cmake -D CMAKE_C_COMPILER=clang -D CMAKE_BUILD_TYPE=debug -D STRICT_COMPILATION_CHECKS=ON ../
$ make
=== Cross Builds
If you want to build for MS Windows:
$ sudo aptitude install mingw-w64
$ mkdir build
$ cd build
$ wget -nv http://download.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.18/libusb-1.0.18-win.7z
$ 7z -olibusb-1.0.18-win x libusb-1.0.18-win.7z
$ wget -nv http://win32.libav.org/releases/libav-10.1-win32.7z
$ 7z -olibav-10.1-win32 x libav-10.1-win32.7z
$ cmake \
-D GNU_HOST=i686-w64-mingw32 \
-D CMAKE_TOOLCHAIN_FILE=../cmake_modules/mingw_cross_toolchain.cmake \
-D CMAKE_INSTALL_PREFIX=libam7xxx-win/ \
-D LIBUSB_1_INCLUDE_DIR=libusb-1.0.18-win/include/libusb-1.0 \
-D LIBUSB_1_LIBRARY=libusb-1.0.18-win/MinGW32/dll/libusb-1.0.dll \
-D FFMPEG_ROOT=$(pwd)/libav-10.1-win32/win32/usr \
../
$ make
After that you will find libam7xxx.dll in lib/ and picoproj.exe in the bin/
directory.
=== Valgrind
You can run the test program under the http://valgrind.org/[valgrind]
dynamic analyzer by using a command like:
$ valgrind --leak-check=full --show-reachable=yes --track-origins=yes \
./bin/picoproj -W 800 -H 480 -f my_image.jpg
or, for am7xxx-play:
$ valgrind --leak-check=full --show-reachable=yes --track-origins=yes \
./bin/am7xxx-play -f x11grab -i :0
|