1# c2hal user-guide
2
3## 1. Build
4
5```
6croot
7make c2hal -j64
8```
9
10## 2. Run
11
12```
13c2hal [-g] [-o dir] -p package (-r interface-root)+ (header-filepath)+
14```
15
16-o output path: If missing, the second half of a relevant interface-root will be used.
17
18-p package: For example android.hardware.baz@1.0.
19This will be used as the package in .hal files and will also be used to construct the correct directory structure.
20
21-g: Enabling this flag changes the behavior of c2hal to parse opengl files.
22
23-r package:path root: For example 'android.hardware:hardware/interfaces'.
24
25Examples:
26
27```
28# Build the test.h header:
29c2hal -r android.hardware:hardware/interfaces -p android.hardware.baz@1.0 system/tools/hidl/c2hal/test/test.h
30
31# Build the simple.h header:
32c2hal -r android.hardware:hardware/interfaces -p android.hardware.simple@1.0 system/tools/hidl/c2hal/test/simple.h
33
34# Build a particular libhardware header:
35c2hal -r android.hardware:hardware/interfaces -p android.hardware.nfc@1.0 hardware/libhardware/include/hardware/nfc.h
36
37# Build all headers from libhardware:
38python3 system/tools/hidl/c2hal/test/build_all.py ~/android/master/hardware/libhardware/include/hardware/
39
40# Build various OpenGl versions:
41python3 system/tools/hidl/c2hal/test/build_all.py -g ~/android/master/frameworks/native/opengl/include/EGL/
42python3 system/tools/hidl/c2hal/test/build_all.py -g ~/android/master/frameworks/native/opengl/include/ETC1/
43python3 system/tools/hidl/c2hal/test/build_all.py -g ~/android/master/frameworks/native/opengl/include/GLES/
44python3 system/tools/hidl/c2hal/test/build_all.py -g ~/android/master/frameworks/native/opengl/include/GLES2/
45python3 system/tools/hidl/c2hal/test/build_all.py -g ~/android/master/frameworks/native/opengl/include/GLES3/
46python3 system/tools/hidl/c2hal/test/build_all.py -g ~/android/master/frameworks/native/opengl/include/KHR/
47```
48
49