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