xref: /petsc/systems/Apple/iOS/bin/makeframework (revision 3d996552296fa5aff2ef76b1450b6d3231aa62c2)
1fce0c873SBarry Smith#!/bin/sh
2fce0c873SBarry Smith#
390a31879SBarry Smith# This script makes a Apple Mac iOS framework for PETSc  see ./makeall
4fce0c873SBarry Smith#
5fce0c873SBarry Smith# To use the framework:
6fce0c873SBarry Smith#
7fce0c873SBarry Smith#    1) replace all #include <petscXXX.h> in application with #import <PETSc/petscXXX.h>
889518752SBarry Smith#    2a) either run the installer or sudo -r mv ${PETSC_DIR}/${PETSC_ARCH}/PETSc-iOS /Library/Framework
989518752SBarry Smith#    2) use the framework inside Xcode by simply indicating the targets dependence on the PETSc framework located at /Library/Framework/PETSc-iOS/simulator
10fce0c873SBarry Smith#
11fce0c873SBarry Smith#
1289518752SBarry Smithrm -rf ${PETSC_DIR}/${PETSC_ARCH}/PETSc-iOS
13fce0c873SBarry Smith
1489518752SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-iOS
15d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-iOS/$1
16d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-iOS/$1/PETSc.framework
17d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-iOS/$1/PETSc.framework/Versions
18d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-iOS/$1/PETSc.framework/Versions/A
19d9dc08c3SBarry Smithcd ${PETSC_DIR}/${PETSC_ARCH}/PETSc-iOS/$1/PETSc.framework/Versions/
20fce0c873SBarry Smithln -s A Current
21fce0c873SBarry Smith
22fce0c873SBarry Smithcd A
23fce0c873SBarry Smithmkdir Headers
24fce0c873SBarry Smithcp  ${PETSC_DIR}/include/*.h Headers
25fce0c873SBarry Smithcp  ${PETSC_DIR}/${PETSC_ARCH}/include/*.h Headers
26e6e75211SBarry Smithcp -r  ${PETSC_DIR}/include/petsc Headers
27fce0c873SBarry Smith
28fce0c873SBarry Smithcd Headers
29e6e75211SBarry Smithsed -i "" "s?#include [ ]*<petsc?#import <PETSc/petsc?g" *.h petsc/private/*.h petsc/mpiuni/*.h
30e6e75211SBarry Smithsed -i "" "s?#include [ ]*<mpi?#import <PETSc/petsc/mpiuni/mpi?g" *.h  petsc/private/*.h petsc/mpiuni/*.h
31fce0c873SBarry Smithcd ..
32fce0c873SBarry Smith
335ce846c0SBarry Smithecho "framework module PETSc [system] { header \"petsc.h\"  export *}" > module.map
345ce846c0SBarry Smith
35*575a0592SBarry Smithcp  ${PETSC_DIR}/${PETSC_ARCH}/lib/PETSc_framework PETSc
366187e55bSBarry Smithinstall_name_tool -id /Library/Frameworks/PETSc-iOS/simulator/PETSc.framework/PETSc PETSc
37fce0c873SBarry Smithmkdir Resources
38fce0c873SBarry Smithcd Resources
39fce0c873SBarry Smithcat <<EOF > Info.plist
40fce0c873SBarry Smith<?xml version="1.0" encoding="UTF-8"?>
41fce0c873SBarry Smith<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
42fce0c873SBarry Smith<plist version="1.0">
43fce0c873SBarry Smith<dict>
44fce0c873SBarry Smith	<key>BuildMachineOSBuild</key>
45fce0c873SBarry Smith	<string>12A269</string>
46fce0c873SBarry Smith	<key>CFBundleDevelopmentRegion</key>
47fce0c873SBarry Smith	<string>English</string>
48fce0c873SBarry Smith	<key>CFBundleExecutable</key>
49fce0c873SBarry Smith	<string>PETSc</string>
50fce0c873SBarry Smith	<key>CFBundleIdentifier</key>
51fce0c873SBarry Smith	<string>gov.anl.mcs.PETSc</string>
52fce0c873SBarry Smith	<key>CFBundleInfoDictionaryVersion</key>
53fce0c873SBarry Smith	<string>6.0</string>
54fce0c873SBarry Smith	<key>CFBundleName</key>
55fce0c873SBarry Smith	<string>PETSc</string>
56fce0c873SBarry Smith	<key>CFBundlePackageType</key>
57fce0c873SBarry Smith	<string>FMWK</string>
58fce0c873SBarry Smith	<key>CFBundleShortVersionString</key>
59fce0c873SBarry Smith	<string>1.0</string>
60fce0c873SBarry Smith	<key>CFBundleSignature</key>
61fce0c873SBarry Smith	<string>????</string>
62fce0c873SBarry Smith	<key>CFBundleVersion</key>
63fce0c873SBarry Smith	<string>1</string>
64fce0c873SBarry Smith	<key>DTCompiler</key>
65fce0c873SBarry Smith	<string></string>
66fce0c873SBarry Smith	<key>DTPlatformBuild</key>
67fce0c873SBarry Smith	<string>4F250</string>
68fce0c873SBarry Smith	<key>DTPlatformVersion</key>
69fce0c873SBarry Smith	<string>GM</string>
70fce0c873SBarry Smith	<key>DTSDKBuild</key>
71fce0c873SBarry Smith	<string>12A264</string>
72fce0c873SBarry Smith	<key>DTSDKName</key>
73fce0c873SBarry Smith	<string>macosx10.8</string>
74fce0c873SBarry Smith	<key>DTXcode</key>
75fce0c873SBarry Smith	<string>0440</string>
76fce0c873SBarry Smith	<key>DTXcodeBuild</key>
77fce0c873SBarry Smith	<string>4F250</string>
78fce0c873SBarry Smith	<key>NSHumanReadableCopyright</key>
79fce0c873SBarry Smith	<string>Copyright © 2012 Argonne National Laboratory. All rights reserved.</string>
80fce0c873SBarry Smith</dict>
81fce0c873SBarry Smith</plist>
82fce0c873SBarry SmithEOF
83fce0c873SBarry Smith
84d9dc08c3SBarry Smithcd  ${PETSC_DIR}/${PETSC_ARCH}/PETSc-iOS/$1/PETSc.framework
85fce0c873SBarry Smithln -s Versions/Current/Headers Headers
86fce0c873SBarry Smithln -s Versions/Current/PETSc PETSc
87fce0c873SBarry Smithln -s Versions/Current/Resources Resources
885ce846c0SBarry Smithln -s Versions/Current/module.map module.map
89fce0c873SBarry Smith
90