ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ControlEngine / iPhone / CopyLibraries.sh
1 #!/bin/sh
2
3 if [ ! -d ../../ARDroneLib ] ; then
4 echo "../../ARDroneLib does not exist ! Checkout it with svn !"
5 exit 1
6 fi
7
8 echo ${EFFECTIVE_PLATFORM_NAME:1} ${CURRENT_ARCH:0:4}
9
10 export ARDRONE_TARGET_OS=${EFFECTIVE_PLATFORM_NAME:1}
11 if [ ${CONFIGURATION} = "Release" ]; then
12 export RELEASE_BUILD=yes
13 else    
14 export RELEASE_BUILD=no
15 fi
16
17 export ARDRONE_TARGET_OS_FORMAT=$ARDRONE_TARGET_OS CONFIGURATION_BUILD_DIR
18 export ARDRONE_TARGET_OS_FORMAT=`echo $ARDRONE_TARGET_OS_FORMAT | sed -e "s/iphone/iPhone/g"`
19 export ARDRONE_TARGET_OS_FORMAT=`echo $ARDRONE_TARGET_OS_FORMAT | sed -e "s/os/OS/g"`
20 export ARDRONE_TARGET_OS_FORMAT=`echo $ARDRONE_TARGET_OS_FORMAT | sed -e "s/simulator/Simulator/g"`
21
22 export ARDRONE_TARGET_BUILD=$RELEASE_BUILD
23 export ARDRONE_TARGET_BUILD=`echo $ARDRONE_TARGET_BUILD | sed -e "s/yes/PROD_MODE/g"`
24 export ARDRONE_TARGET_BUILD=`echo $ARDRONE_TARGET_BUILD | sed -e "s/no/DEBUG_MODE/g"`
25
26 if [ ! -d $TARGET_BUILD_DIR ] ; then
27 echo "Create "$TARGET_BUILD_DIR" directory."
28 mkdir $TARGET_BUILD_DIR 
29 fi
30
31 cd ../../ARDroneLib/Soft/Build
32 if [ ${CURRENT_ARCH:0:4} = "armv" ]; then
33 # Compiling for armv6
34 echo "Compiling ARDroneLib with options IPHONE_MODE = yes - IPHONE_SDK_PATH=${SDK_DIR} - RELEASE_BUILD = "$RELEASE_BUILD" - ARDRONE_TARGET_OS="${EFFECTIVE_PLATFORM_NAME:1}" - ARDRONE_TARGET_ARCH=armv6."
35 make IPHONE_MODE=yes IPHONE_SDK_PATH=${SDK_DIR} RELEASE_BUILD=$RELEASE_BUILD ARDRONE_TARGET_OS=${EFFECTIVE_PLATFORM_NAME:1} ARDRONE_TARGET_ARCH=armv6
36
37 # Compiling for armv7
38 echo "Compiling ARDroneLib with options IPHONE_MODE = yes - IPHONE_SDK_PATH=${SDK_DIR} - RELEASE_BUILD = "$RELEASE_BUILD" - ARDRONE_TARGET_OS="${EFFECTIVE_PLATFORM_NAME:1}" - ARDRONE_TARGET_ARCH=armv7."
39 make IPHONE_MODE=yes IPHONE_SDK_PATH=${SDK_DIR} RELEASE_BUILD=$RELEASE_BUILD ARDRONE_TARGET_OS=${EFFECTIVE_PLATFORM_NAME:1} ARDRONE_TARGET_ARCH=armv7
40
41 cd -
42 export ARDRONE_ARDRONELIB_ARMV6_PATH="../../ARDroneLib/Soft/Build/targets_versions/ardrone_lib_"$ARDRONE_TARGET_BUILD"_vlib_armv6_"$ARDRONE_TARGET_OS"_DeveloperPlatforms"$ARDRONE_TARGET_OS_FORMAT".platformDeveloperusrbingcc_4.2.1"
43 export ARDRONE_SDKDEV_ARMV6_PATH="../../ARDroneLib/Soft/Build/targets_versions/sdk_"$ARDRONE_TARGET_BUILD"_vlib_armv6_"$ARDRONE_TARGET_OS"_DeveloperPlatforms"$ARDRONE_TARGET_OS_FORMAT".platformDeveloperusrbingcc_4.2.1"
44 export ARDRONE_VLIB_ARMV6_PATH="../../ARDroneLib/Soft/Build/targets_versions/vlib_"$ARDRONE_TARGET_BUILD"_armv6_"$ARDRONE_TARGET_OS"_DeveloperPlatforms"$ARDRONE_TARGET_OS_FORMAT".platformDeveloperusrbingcc_4.2.1"
45
46 export ARDRONE_ARDRONELIB_ARMV7_PATH="../../ARDroneLib/Soft/Build/targets_versions/ardrone_lib_"$ARDRONE_TARGET_BUILD"_vlib_armv7_"$ARDRONE_TARGET_OS"_DeveloperPlatforms"$ARDRONE_TARGET_OS_FORMAT".platformDeveloperusrbingcc_4.2.1"
47 export ARDRONE_SDKDEV_ARMV7_PATH="../../ARDroneLib/Soft/Build/targets_versions/sdk_"$ARDRONE_TARGET_BUILD"_vlib_armv7_"$ARDRONE_TARGET_OS"_DeveloperPlatforms"$ARDRONE_TARGET_OS_FORMAT".platformDeveloperusrbingcc_4.2.1"
48 export ARDRONE_VLIB_ARMV7_PATH="../../ARDroneLib/Soft/Build/targets_versions/vlib_"$ARDRONE_TARGET_BUILD"_armv7_"$ARDRONE_TARGET_OS"_DeveloperPlatforms"$ARDRONE_TARGET_OS_FORMAT".platformDeveloperusrbingcc_4.2.1"
49
50 lipo -arch armv6 $ARDRONE_ARDRONELIB_ARMV6_PATH/libpc_ardrone.a -arch armv7 $ARDRONE_ARDRONELIB_ARMV7_PATH/libpc_ardrone.a -create -output $TARGET_BUILD_DIR/libpc_ardrone.a
51 lipo -arch armv6 $ARDRONE_SDKDEV_ARMV6_PATH/libsdk.a -arch armv7 $ARDRONE_SDKDEV_ARMV7_PATH/libsdk.a -create -output $TARGET_BUILD_DIR/libsdk.a
52 lipo -arch armv6 $ARDRONE_VLIB_ARMV6_PATH/libvlib.a -arch armv7 $ARDRONE_VLIB_ARMV7_PATH/libvlib.a -create -output $TARGET_BUILD_DIR/libvlib.a
53 else
54 # Compiling for i386
55 echo "Compiling ARDroneLib with options IPHONE_MODE = yes - IPHONE_SDK_PATH=${SDK_DIR} - RELEASE_BUILD = "$RELEASE_BUILD" - ARDRONE_TARGET_OS="${EFFECTIVE_PLATFORM_NAME:1}" - ARDRONE_TARGET_ARCH="${CURRENT_ARCH}"."
56 make IPHONE_MODE=yes IPHONE_SDK_PATH=${SDK_DIR} RELEASE_BUILD=$RELEASE_BUILD ARDRONE_TARGET_OS=${EFFECTIVE_PLATFORM_NAME:1} ARDRONE_TARGET_ARCH=${CURRENT_ARCH}
57
58 cd -
59 export ARDRONE_ARDRONELIB_PATH="../../ARDroneLib/Soft/Build/targets_versions/ardrone_lib_"$ARDRONE_TARGET_BUILD"_vlib_"${CURRENT_ARCH}"_"$ARDRONE_TARGET_OS"_DeveloperPlatforms"$ARDRONE_TARGET_OS_FORMAT".platformDeveloperusrbingcc_4.2.1"
60 export ARDRONE_SDKDEV_PATH="../../ARDroneLib/Soft/Build/targets_versions/sdk_"$ARDRONE_TARGET_BUILD"_vlib_"${CURRENT_ARCH}"_"$ARDRONE_TARGET_OS"_DeveloperPlatforms"$ARDRONE_TARGET_OS_FORMAT".platformDeveloperusrbingcc_4.2.1"
61 export ARDRONE_VLIB_PATH="../../ARDroneLib/Soft/Build/targets_versions/vlib_"$ARDRONE_TARGET_BUILD"_"${CURRENT_ARCH}"_"$ARDRONE_TARGET_OS"_DeveloperPlatforms"$ARDRONE_TARGET_OS_FORMAT".platformDeveloperusrbingcc_4.2.1"
62 cp $ARDRONE_ARDRONELIB_PATH/libpc_ardrone.a $TARGET_BUILD_DIR/
63 cp $ARDRONE_SDKDEV_PATH/libsdk.a $TARGET_BUILD_DIR/
64 cp $ARDRONE_VLIB_PATH/libvlib.a $TARGET_BUILD_DIR/
65 fi
66
67 echo "Generate files needed by ARDroneEngine."
68 rm -Rf Release/ARDroneGeneratedTypes.h
69 touch Release/ARDroneGeneratedTypes.h
70 echo "// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> Release/ARDroneGeneratedTypes.h
71 echo "// !!!! THIS FILE IS GENERATED AUTOMATICALLY, DO NOT CHANGE IT !!!!" >> Release/ARDroneGeneratedTypes.h
72 echo "// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> Release/ARDroneGeneratedTypes.h
73 echo "/*" >> Release/ARDroneGeneratedTypes.h
74 echo " *  ARDroneGeneratedTypes.h" >> Release/ARDroneGeneratedTypes.h
75 echo " *  ARDroneEngine" >> Release/ARDroneGeneratedTypes.h
76 echo " *" >> Release/ARDroneGeneratedTypes.h
77 echo " *  Automatically generated." >> Release/ARDroneGeneratedTypes.h
78 echo " *  Copyright 2010 Parrot SA. All rights reserved." >> Release/ARDroneGeneratedTypes.h
79 echo " *" >> Release/ARDroneGeneratedTypes.h
80 echo " */" >> Release/ARDroneGeneratedTypes.h
81 echo "#ifndef _ARDRONE_GENERATED_TYPES_H_" >> Release/ARDroneGeneratedTypes.h
82 echo "#define _ARDRONE_GENERATED_TYPES_H_" >> Release/ARDroneGeneratedTypes.h
83
84 echo ""  >> Release/ARDroneGeneratedTypes.h
85 grep -r ^\#define ../../ARDroneLib/Soft/Common/navdata_common.h | grep NB_NAVDATA_DETECTION_RESULTS | sed 's/^\#define NB_NAVDATA_DETECTION_RESULTS \(.*\)/\#define ARDRONE_MAX_ENEMIES \1/g' | sed 's/\/\*.*\*\///' >> Release/ARDroneGeneratedTypes.h
86
87 echo ""  >> Release/ARDroneGeneratedTypes.h
88 echo "typedef enum {" >> Release/ARDroneGeneratedTypes.h
89 grep -r ^LED_ANIMATION\( ../../ARDroneLib/Soft/Common/led_animation.h | tr -d ' ' | tr -d '\t' | sed 's/^LED_ANIMATION(\([A-Za-z_0-9=]*\),\(.*\))/ARDRONE_LED_ANIMATION_\1,/g' | sed 's/\/\*.*\*\///' >> Release/ARDroneGeneratedTypes.h
90 echo "} ARDRONE_LED_ANIMATION;" >> Release/ARDroneGeneratedTypes.h
91
92 echo ""  >> Release/ARDroneGeneratedTypes.h
93 echo "typedef enum {" >> Release/ARDroneGeneratedTypes.h
94 grep -r "\s*ARDRONE_ANIM_" ../../ARDroneLib/Soft/Common/config.h | tr -d ' ' | tr -d '\t' | sed 's/^ARDRONE_ANIM_\([A-Za-z_0-9=,]*\)/ARDRONE_ANIMATION_\1/' | sed 's/^ARDRONE_ANIM_\([A-Za-z_0-9,]*\)/ARDRONE_ANIMATION_\1/' | sed 's/\/\*.*\*\///' >> Release/ARDroneGeneratedTypes.h
95 echo "} ARDRONE_ANIMATION;" >> Release/ARDroneGeneratedTypes.h
96
97 echo ""  >> Release/ARDroneGeneratedTypes.h
98 echo "typedef enum {" >> Release/ARDroneGeneratedTypes.h
99 grep -r "\s*CAD_TYPE_" ../../ARDroneLib/Soft/Common/ardrone_api.h | tr -d ' ' | tr -d '\t' | sed 's/^CAD_TYPE_\([A-Za-z_0-9=,]*\)/ARDRONE_CAMERA_DETECTION_\1/' | sed 's/^CAD_TYPE_\([A-Za-z_0-9,]*\)/ARDRONE_CAMERA_DETECTION_\1/' | sed 's/\/\*.*\*\///' >> Release/ARDroneGeneratedTypes.h
100 echo "} ARDRONE_CAMERA_DETECTION_TYPE;" >> Release/ARDroneGeneratedTypes.h
101
102 echo ""  >> Release/ARDroneGeneratedTypes.h
103 echo "typedef enum {" >> Release/ARDroneGeneratedTypes.h
104 grep -r "\s*ZAP_CHANNEL_" ../../ARDroneLib/Soft/Common/ardrone_api.h | tr -d ' ' | tr -d '\t' | sed 's/ZAP_CHANNEL_\([A-Za-z_0-9=,]*\)/ARDRONE_VIDEO_CHANNEL_\1/' | sed 's/ZAP_CHANNEL_\([A-Za-z_0-9,]*\)/ARDRONE_VIDEO_CHANNEL_\1/' | sed 's/\/\*.*\*\///' >> Release/ARDroneGeneratedTypes.h
105 echo "} ARDRONE_VIDEO_CHANNEL;" >> Release/ARDroneGeneratedTypes.h
106
107 echo ""  >> Release/ARDroneGeneratedTypes.h
108 echo "typedef enum {" >> Release/ARDroneGeneratedTypes.h
109 grep -r "\s*VBC_" ../../ARDroneLib/Soft/Common/ardrone_api.h | tr -d ' ' | tr -d '\t' | sed 's/VBC_\([A-Za-z_0-9=,]*\)/ARDRONE_VARIABLE_BITRATE_\1/' | sed 's/VBC_\([A-Za-z_0-9,]*\)/ARDRONE_VARIABLE_BITRATE_\1/' | sed 's/\/\*.*\*\///' >> Release/ARDroneGeneratedTypes.h
110 echo "} ARDRONE_VARIABLE_BITRATE;" >> Release/ARDroneGeneratedTypes.h
111
112 echo ""  >> Release/ARDroneGeneratedTypes.h
113 echo "typedef enum {" >> Release/ARDroneGeneratedTypes.h
114 grep -r "\s*ARDRONE_DETECTION_COLOR_" ../../ARDroneLib/Soft/Common/ardrone_api.h | tr -d ' ' | tr -d '\t' | sed 's/ARDRONE_DETECTION_COLOR_\([A-Za-z_0-9=,]*\)/ARDRONE_ENEMY_COLOR_\1/' | sed 's/ARDRONE_DETECTION_COLOR_\([A-Za-z_0-9,]*\)/ARDRONE_ENEMY_COLOR_\1/' | sed 's/\/\*.*\*\///' >> Release/ARDroneGeneratedTypes.h
115 echo "} ARDRONE_ENEMY_COLOR;" >> Release/ARDroneGeneratedTypes.h
116
117 echo ""  >> Release/ARDroneGeneratedTypes.h
118 echo "typedef enum {" >> Release/ARDroneGeneratedTypes.h
119 grep -r ^ARDRONE_CONFIG_KEY_ ../../ARDroneLib/Soft/Common/config_keys.h | tr -d ' ' | tr -d '\t' | tr '[:lower:]' '[:upper:]' | grep K_WRITE | grep -e CONTROL -e NETWORK -e VIDEO -e LEDS -e DETECT -e GPS | sed 's/^ARDRONE_CONFIG_KEY_\([IMM|STR]*\)\(_A10\)*("\([A-Za-z_0-9=",]*\)",\([A-Za-z_0-9=]*\),INI_\([A-Za-z_0-9=]*\),\(.*\))/ARDRONE_CONFIG_KEY_\4,\/\/\5/g' | sed 's/\/\*.*\*\///' >> Release/ARDroneGeneratedTypes.h
120 echo "} ARDRONE_CONFIG_KEYS;" >> Release/ARDroneGeneratedTypes.h
121
122 echo "" >> Release/ARDroneGeneratedTypes.h
123 echo "typedef enum {" >> Release/ARDroneGeneratedTypes.h
124 grep -r _CODEC.*\ *=\ *0x ../../ARDroneLib/VLIB/video_codec.h | tr -d ' ' | tr -d '\t' | sed 's/\([a-zA-Z0-9]*\)_CODEC=0x\([0-9]*\).*/ARDRONE_VIDEO_CODEC_\1\ =\ 0x\2,/g' >> Release/ARDroneGeneratedTypes.h
125 echo "} ARDRONE_VIDEO_CODEC;" >> Release/ARDroneGeneratedTypes.h
126
127 echo "" >> Release/ARDroneGeneratedTypes.h
128 echo "typedef enum {" >> Release/ARDroneGeneratedTypes.h
129 grep -r FLYING_MODE_.*, ../../ARDroneLib/Soft/Common/ardrone_api.h | tr -d ' ' | tr -d '\t' | sed 's:FLYING_MODE_\(.*\),/.*:ARDRONE_FLYING_MODE_\1,:g' >> Release/ARDroneGeneratedTypes.h
130 echo "} ARDRONE_FLYING_MODE;" >> Release/ARDroneGeneratedTypes.h
131
132 echo "#endif // _ARDRONE_GENERATED_TYPES_H_" >> Release/ARDroneGeneratedTypes.h
133
134 KEY_FILE=../../ARDroneLib/Soft/Common/config_keys.h
135 TYPES_FILE=Release/ARDroneTypes.h
136 OUT_FILE=Release/ARDroneGeneratedCommandIn.h
137
138 TEMP_FILE=TEMPORARY
139
140 rm -f $OUT_FILE
141 rm -f $TEMP_FILE
142 touch $OUT_FILE
143 touch $TEMP_FILE
144
145 grep -r ^ARDRONE_CONFIG_KEY_ $KEY_FILE | grep K_WRITE | grep -e control -e network -e video -e leds -e detect -e gps | tr ',' ' ' >> $TEMP_FILE
146 awk '
147 BEGIN {
148 print "// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
149 print "// !!!! THIS FILE IS GENERATED AUTOMATICALLY, DO NOT CHANGE IT !!!!";
150 print "// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
151 print "/*";
152 print " *  ARDroneGeneratedCommandIn.h";
153 print " *  ARDroneEngine";
154 print " *";
155 print " *  Automatically generated.";
156 print " *  Copyright 2011 Parrot SA. All rights reserved";
157 print " *";
158 print " */";
159 print "";
160 print "#ifdef COMMAND_IN_CONFIG_KEY";
161 print "#ifdef COMMAND_IN_CONFIG_KEY_STRING";
162
163 INT_VAR="none"
164 UNS_VAR="none"
165 BOOL_VAR="none"
166 FLOAT_VAR="none"
167 DOUBLE_VAR="none"
168 }
169
170 /^\/\/[\ \t]*MATCH_TYPES\ :/ {
171 match ($0, /:\ .*\ :/);
172 VAR_NAME=substr($0, RSTART+2, RLENGTH-3);
173 if ($0 ~ /[\ \t]int32_t/) { INT_VAR=VAR_NAME }
174 if ($0 ~ /bool_t/) { BOOL_VAR=VAR_NAME }
175 if ($0 ~ /float32_t/) { FLOAT_VAR=VAR_NAME }
176 if ($0 ~ /float64_t/) { DOUBLE_VAR=VAR_NAME }
177 if ($0 ~ /uint32_t/) { UNS_VAR=VAR_NAME }
178 }
179
180 /^ARDRONE_CONFIG_KEY_/ {
181 CASE_NAME="ARDRONE_CONFIG_KEY_" toupper($2);
182 CONFIG_KEY=$2;
183 TYPE=$4;
184 ARG_TYPE=""
185 TYPE_PRINT=""
186 if (TYPE ~ /^int32_t/) { ARG_TYPE=INT_VAR; TYPE_PRINT="EQUAL" }
187 else if (TYPE ~ /bool_t/) { ARG_TYPE=BOOL_VAR; TYPE_PRINT="EQUAL" }
188 else if (TYPE ~ /float32_t/) { ARG_TYPE=FLOAT_VAR; TYPE_PRINT="EQUAL" }
189 else if (TYPE ~ /float64_t/) { ARG_TYPE=DOUBLE_VAR; TYPE_PRINT="EQUAL" }
190 else if (TYPE ~ /string_t/) { ARG_TYPE=STRING_VAR; TYPE_PRINT="STRCPY" }
191 else if (TYPE ~ /uint32_t/) { ARG_TYPE=UNS_VAR; TYPE_PRINT="EQUAL" }
192 if (TYPE_PRINT ~ /EQUAL/) { print "COMMAND_IN_CONFIG_KEY (" CASE_NAME ", " CONFIG_KEY ", " ARG_TYPE ")" }
193 else if (TYPE_PRINT ~ /STRCPY/) { print "COMMAND_IN_CONFIG_KEY_STRING (" CASE_NAME ", " CONFIG_KEY " )" }
194 }
195
196 END {
197 print "#endif //COMMAND_IN_CONFIG_KEY_STRING";
198 print "#endif //COMMAND_IN_CONFIG_KEY";
199 }
200 ' $TYPES_FILE $TEMP_FILE >> $OUT_FILE
201
202 rm -f $TEMP_FILE