3 # Original script available in the libhybris project:
4 # https://github.com/libhybris/libhybris/blob/master/utils/extract-headers.sh
16 if [ x
$ANDROID_ROOT = x
-o "x$HEADERPATH" = x
]; then
17 echo "Syntax: extract-headers.sh ANDROID_ROOT HEADERPATH [MAJOR] [MINOR] [PATCH] [PATCH2] [PATCH3]"
22 if [ x
$MAJOR = x
-o x
$MINOR = x
-o x
$PATCH = x
]; then
23 VERSION_DEFAULTS
=$ANDROID_ROOT/build
/core
/version_defaults.mk
25 parse_defaults_failed
() {
26 echo "Error: Cannot read PLATFORM_VERSION from ${VERSION_DEFAULTS}."
27 echo "Please specify MAJOR, MINOR and PATCH manually to continue."
31 if [ ! -f $VERSION_DEFAULTS ]; then
35 PLATFORM_VERSION
=$
(egrep -o "PLATFORM_VERSION := [0-9.]+" $VERSION_DEFAULTS |
awk '{ print $3 }')
36 if [ x
$PLATFORM_VERSION = x
]; then
40 MAJOR
=$
(echo $PLATFORM_VERSION | cut
-d.
-f1)
41 MINOR
=$
(echo $PLATFORM_VERSION | cut
-d.
-f2)
42 PATCH
=$
(echo $PLATFORM_VERSION | cut
-d.
-f3)
43 PATCH2
=$
(echo $PLATFORM_VERSION | cut
-d.
-f4)
44 PATCH3
=$
(echo $PLATFORM_VERSION | cut
-d.
-f5)
46 if [ x
$MAJOR = x
-o x
$MINOR = x
-o x
$PATCH = x
]; then
50 echo -n "Auto-detected version: ${MAJOR}.${MINOR}.${PATCH}"
51 if [ x
$PATCH3 != x
]; then
52 echo ".${PATCH2}.${PATCH3}"
53 elif [ x
$PATCH2 != x
]; then
60 # Make sure that the dir given contains at least some of the assumed structures.
61 if [ ! -d "$ANDROID_ROOT/hardware/libhardware/include/hardware/" ]; then
62 echo "Given Android root dir '$ANDROID_ROOT/hardware/libhardware/include/hardware/' doesn't exist."
68 if [ x
$PATCH2 = x
]; then
72 if [ x
$PATCH3 = x
]; then
76 cat > $HEADERPATH/android-version.h
<< EOF
77 #ifndef ANDROID_VERSION_H_
78 #define ANDROID_VERSION_H_
80 #define ANDROID_VERSION_MAJOR $MAJOR
81 #define ANDROID_VERSION_MINOR $MINOR
82 #define ANDROID_VERSION_PATCH $PATCH
83 #define ANDROID_VERSION_PATCH2 $PATCH2
84 #define ANDROID_VERSION_PATCH3 $PATCH3
89 mkdir
-p $HEADERPATH/hardware
/
90 cp $ANDROID_ROOT/hardware
/libhardware
/include
/hardware
/* $HEADERPATH/hardware
/
92 mkdir
-p $HEADERPATH/hardware_legacy
/
93 cp $ANDROID_ROOT/hardware
/libhardware_legacy
/include
/hardware_legacy
/audio_policy_conf.h
$HEADERPATH/hardware_legacy
/
95 mkdir
-p $HEADERPATH/cutils
/
96 cp $ANDROID_ROOT/system
/core
/include
/cutils
/* $HEADERPATH/cutils
/
98 mkdir
-p $HEADERPATH/system
/
99 cp $ANDROID_ROOT/system
/core
/include
/system
/* $HEADERPATH/system
/
101 mkdir
-p $HEADERPATH/android
/
102 cp $ANDROID_ROOT/system
/core
/include
/android
/* $HEADERPATH/android
/
104 if [ -e $ANDROID_ROOT/external
/kernel-headers
/original
/linux
/sync.h
]; then
105 mkdir
-p $HEADERPATH/linux
106 cp $ANDROID_ROOT/external
/kernel-headers
/original
/linux
/sync.h
$HEADERPATH/linux
107 cp $ANDROID_ROOT/external
/kernel-headers
/original
/linux
/sw_sync.h
$HEADERPATH/linux
110 if [ -e $ANDROID_ROOT/system
/core
/include
/sync
/sync.h
]; then
111 mkdir
-p $HEADERPATH/sync
/
112 cp $ANDROID_ROOT/system
/core
/include
/sync
/* $HEADERPATH/sync
/
115 if [ -e $ANDROID_ROOT/external
/libnfc-nxp
/inc
/phNfcConfig.h
]; then
116 mkdir
-p $HEADERPATH/libnfc-nxp
/
117 cp $ANDROID_ROOT/external
/libnfc-nxp
/inc
/*.h
$HEADERPATH/libnfc-nxp
/
118 cp $ANDROID_ROOT/external
/libnfc-nxp
/src
/*.h
$HEADERPATH/libnfc-nxp
/
121 mkdir
-p $HEADERPATH/private
122 cp $ANDROID_ROOT/system
/core
/include
/private
/android_filesystem_config.h
$HEADERPATH/private