Imported Upstream version 0.9.1
[platform/upstream/iotivity.git] / tools / darwin / mkfwk_ios.sh
1 #!/bin/sh
2
3
4 #VERSION_IOS="${MAJOR_VERSION}.${MINOR_VERSION}.${RELEASE_NUMBER}.${BUILD_NUMBER}"
5 VERSION_IOS="0.9.0.1"
6
7
8 OUTDIR=$PWD/out/ios
9 BUILD=debug
10 LIBCOAP=libcoap
11 SDKLIB=liboctbstack
12 LIPO="xcrun -sdk iphoneos lipo"
13
14
15 VERSION_TYPE=Alpha
16 FRAMEWORK_NAME=iotivity-csdk
17 FRAMEWORK_VERSION=A
18 FRAMEWORK_CURRENT_VERSION=${VERSION_IOS}
19 FRAMEWORK_COMPATIBILITY_VERSION=${VERSION_IOS}
20 FRAMEWORKDIR=out/ios
21
22 FRAMEWORK_BUNDLE=$FRAMEWORKDIR/$FRAMEWORK_NAME.framework
23 rm -rf $FRAMEWORK_BUNDLE
24
25 echo "Framework: Setting up directories..."
26 mkdir -p $FRAMEWORK_BUNDLE
27 mkdir -p $FRAMEWORK_BUNDLE/Versions
28 mkdir -p $FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION
29 mkdir -p $FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION/Resources
30 mkdir -p $FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION/Headers
31 mkdir -p $FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION/Documentation
32
33 echo "Framework: Creating symlinks..."
34 ln  -s $FRAMEWORK_VERSION               $FRAMEWORK_BUNDLE/Versions/Current
35 ln  -s Versions/Current/Headers         $FRAMEWORK_BUNDLE/Headers
36 ln  -s Versions/Current/Resources       $FRAMEWORK_BUNDLE/Resources
37 ln  -s Versions/Current/Documentation   $FRAMEWORK_BUNDLE/Documentation
38 ln  -s Versions/Current/$FRAMEWORK_NAME $FRAMEWORK_BUNDLE/$FRAMEWORK_NAME
39 FRAMEWORK_INSTALL_NAME=$FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION/$FRAMEWORK_NAME
40
41 lipolite()
42 {
43    PREV="$PWD"  
44    cd "$1"
45    ar -x "$2"
46    cd "$PREV"
47 }
48
49
50 echo "Extracting libraries..."
51 mkdir $OUTDIR/objs
52
53 ARCHS="armv7 armv7s arm64 i386 x86_64"
54 FATFILE=""
55
56 for ARCH in $ARCHS
57 do
58     echo "extracting $ARCH"
59         mkdir $OUTDIR/objs/$ARCH
60         lipolite $OUTDIR/objs/$ARCH "$OUTDIR/$ARCH/$BUILD/$LIBCOAP.a" 
61         lipolite $OUTDIR/objs/$ARCH "$OUTDIR/$ARCH/$BUILD/$SDKLIB.a" 
62         ar -r $OUTDIR/objs/$ARCH.a $OUTDIR/objs/$ARCH/*.o
63 done
64
65
66 echo "Lipoing library into $FRAMEWORK_INSTALL_NAME..."
67 $LIPO \
68         -create \
69         -arch armv7 "$OUTDIR/objs/armv7.a" \
70         -arch armv7s "$OUTDIR/objs/armv7s.a" \
71         -arch arm64 "$OUTDIR/objs/arm64.a" \
72         -arch i386 "$OUTDIR/objs/i386.a" \
73         -arch x86_64  "$OUTDIR/objs/x86_64.a" \
74         -output "$FRAMEWORK_INSTALL_NAME" \
75     || abort "Lipo $1 failed"
76
77 echo rm -rf objs
78 find $OUTDIR/objs -name "*.o" | xargs rm 
79
80 echo "Framework: Copying includes..."
81 cp -r  resource/csdk/stack/include/*.h  $FRAMEWORK_BUNDLE/Headers
82 cp -r  resource/csdk/ocsocket/include/*.h  $FRAMEWORK_BUNDLE/Headers
83 cp -r  resource/csdk/ocrandom/include/*.h  $FRAMEWORK_BUNDLE/Headers
84 cp -r  resource/csdk/ocmalloc/include/*.h  $FRAMEWORK_BUNDLE/Headers
85
86 echo "Framework: Creating plist..."
87 cat > $FRAMEWORK_BUNDLE/Resources/Info.plist <<EOF
88 <?xml version="1.0" encoding="UTF-8"?>
89 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
90 <plist version="1.0">
91 <dict>
92         <key>CFBundleDevelopmentRegion</key>
93         <string>English</string>
94         <key>CFBundleExecutable</key>
95         <string>${FRAMEWORK_NAME}</string>
96         <key>CFBundleIdentifier</key>
97         <string>org.iotivity</string>
98         <key>CFBundleInfoDictionaryVersion</key>
99         <string>6.0</string>
100         <key>CFBundlePackageType</key>
101         <string>FMWK</string>
102         <key>CFBundleSignature</key>
103         <string>????</string>
104         <key>CFBundleVersion</key>
105         <string>${FRAMEWORK_CURRENT_VERSION}</string>
106 </dict>
107 </plist>
108 EOF
109
110 echo
111 echo "    ================================================================="
112 echo "    Done"
113 echo