am7xxx-play: uniform coding style
[libam7xxx.git] / HACKING.asciidoc
index ed2a46b..a6595fe 100644 (file)
@@ -5,6 +5,34 @@
 libam7xxx uses the linux kernel coding style:
 http://kernel.org/doc/Documentation/CodingStyle
 
 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/0002-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:
 === Debug builds
 
 The suggested way to hack on the project is:
@@ -31,13 +59,15 @@ If you want to build for MS Windows:
   $ cd build
   $ wget -nv http://sourceforge.net/projects/libusbx/files/releases/1.0.11/Windows/libusbx-1.0.11-win.7z
   $ 7z -olibusbx-1.0.11-win x libusbx-1.0.11-win.7z
   $ cd build
   $ wget -nv http://sourceforge.net/projects/libusbx/files/releases/1.0.11/Windows/libusbx-1.0.11-win.7z
   $ 7z -olibusbx-1.0.11-win x libusbx-1.0.11-win.7z
+  $ wget -nv http://win32.libav.org/win32/libav-win32-20120521.7z
+  $ 7z x libav-win32-20120521.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=libusbx-1.0.11-win/include/libusbx-1.0 \
           -D LIBUSB_1_LIBRARY=libusbx-1.0.11-win/MinGW32/dll/libusb-1.0.dll \
   $ 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=libusbx-1.0.11-win/include/libusbx-1.0 \
           -D LIBUSB_1_LIBRARY=libusbx-1.0.11-win/MinGW32/dll/libusb-1.0.dll \
-          -D BUILD_AM7XXX-PLAY:BOOL=FALSE \
+          -D FFMPEG_ROOT=$(pwd)/libav-win32-20120521/usr \
           ../
   $ make
 
           ../
   $ make