Add a simple usb_mode_switch clone for am7xxx devices
[libam7xxx.git] / HACKING.asciidoc
1 == Hacking libam7xxx
2
3 === Coding style
4
5 libam7xxx uses the linux kernel coding style:
6 http://kernel.org/doc/Documentation/CodingStyle
7
8 === Debug builds
9
10 The suggested way to hack on the project is:
11
12   $ mkdir build
13   $ cd build
14   $ cmake -D CMAKE_BUILD_TYPE=debug -D STRICT_COMPILATION_CHECKS=ON ../
15   $ make
16
17 If you want to check the code with the ''sparse'' static analysis tool you
18 can run:
19
20   $ mkdir build
21   $ cd build
22   $ cmake -D CMAKE_C_COMPILER=cgcc ../
23   $ make
24
25 === Cross Builds
26
27 If you want to build for MS Windows:
28
29   $ sudo aptitude install mingw-w64
30   $ mkdir build
31   $ cd build
32   $ wget -nv http://sourceforge.net/projects/libusbx/files/releases/1.0.11/Windows/libusbx-1.0.11-win.7z
33   $ 7z -olibusbx-1.0.11-win x libusbx-1.0.11-win.7z
34   $ cmake  \
35           -D GNU_HOST=i686-w64-mingw32 \
36           -D CMAKE_TOOLCHAIN_FILE=../cmake_modules/mingw_cross_toolchain.cmake \
37           -D CMAKE_INSTALL_PREFIX=libam7xxx-win/ \
38           -D LIBUSB_1_INCLUDE_DIR=libusbx-1.0.11-win/include/libusbx-1.0 \
39           -D LIBUSB_1_LIBRARY=libusbx-1.0.11-win/MinGW32/dll/libusb-1.0.dll \
40           -D BUILD_AM7XXX-PLAY:BOOL=FALSE \
41           ../
42   $ make
43
44 After that you will find libam7xxx.dll in lib/ and picoproj.exe in the bin/
45 directory.
46
47 === Valgrind
48
49 You can run the test program under the http://valgrind.org/[valgrind]
50 dynamic analyzer by using a command like:
51
52   $ valgrind --leak-check=full --show-reachable=yes --track-origins=yes \
53     ./bin/picoproj -W 800 -H 480 -f my_image.jpg