-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL
105 lines (76 loc) · 3.08 KB
/
INSTALL
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
96
97
98
99
100
101
102
103
104
105
Requirements:
-------------
* make and a C and C++ compiler
* optionally libjpeg v6 or later
* optionally Qt5 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
Building static binaries:
-------------------------
There are two options in building static binaries: either fully static or
dynamically linking to system shared libraries while statically linking
libraries that are a part of v4l-utils.
In either case, building static binaries requires telling pkg-config the
static libraries will be needed, and telling configure to disable building
of shared libraries. This way system libraries will still be linked
dynamically:
$ PKG_CONFIG="pkg-config --static" ./configure --disable-shared
Fully static binares can be built by further setting LDFLAGS for the
configure:
$ PKG_CONFIG="pkg-config --static" LDFLAGS="--static -static" \
./configure --disable-shared
Note that this requires static variants of all the libraries needed for
linking which may not be available in all systems.
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 <utility>
mm
Output binary will be located in the Android out directory, below the
target/product/<name>/system/bin/<v4l-utils executable name> path.
The binary executable can be pushed to the target Android device using
adb push <v4l-utils executable> /system/bin