1a2e9d02dSBarry Smith#!/bin/sh 2a2e9d02dSBarry Smith# 3d9dc08c3SBarry Smith# makeframework release or debug 4d9dc08c3SBarry Smith# 5409736cdSBarry Smith# This script makes a Apple Mac OS X framework for PETSc see ./makeall 6a2e9d02dSBarry Smith# 7a2e9d02dSBarry Smith# To use the framework: 8a2e9d02dSBarry Smith# 9a2e9d02dSBarry Smith# 1) replace all #include <petscXXX.h> in application with #import <PETSc/petscXXX.h> 10*c4762a1bSJed Brown# 2a) compile, for example, in src/snes/tutorials, with cc -v ex19.c -o ex19 -DPETSC_APPLE_FRAMEWORK=1 -F ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/release or debug -framework PETSc or 1189518752SBarry Smith# 2b) Run the installer or sudo mv -r ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX to /Library/Frameworks/ then use 12d9dc08c3SBarry Smith# cc -v ex19.c -o ex19 -DPETSC_APPLE_FRAMEWORK=1 -F /Library/Frameworks/PETSc-OSX/release or debug -framework PETSc 13d9dc08c3SBarry Smith# 2c) you can also use the framework inside Xcode by simply indicating the targets dependence on the PETSc framework located in /Library/Frameworks/PETSc-OSX/release or debug 14a2e9d02dSBarry Smith# 15a2e9d02dSBarry Smith# 16aa489236SBarry Smithrm -rf ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX 17a2e9d02dSBarry Smith 18aa489236SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX 19d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1 20d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework 21d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework/Versions 22d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework/Versions/A 23d9dc08c3SBarry Smithcd ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework/Versions/ 24a2e9d02dSBarry Smithln -s A Current 25a2e9d02dSBarry Smith 26a2e9d02dSBarry Smithcd A 27a2e9d02dSBarry Smithmkdir Headers 28a2e9d02dSBarry Smithcp ${PETSC_DIR}/include/*.h Headers 29a2e9d02dSBarry Smithcp ${PETSC_DIR}/${PETSC_ARCH}/include/*.h Headers 30e6e75211SBarry Smithcp -r ${PETSC_DIR}/include/petsc Headers 31a2e9d02dSBarry Smithcd Headers 32e6e75211SBarry Smithsed -i "" "s?#include [ ]*<petsc?#import <PETSc/petsc?g" *.h petsc/private/*.h petsc/mpiuni/*.h 33e6e75211SBarry Smithsed -i "" "s?#include [ ]*<mpi?#import <PETSc/mpi?g" *.h petsc/private/*.h petsc/mpiuni/*.h 34a2e9d02dSBarry Smithcd .. 35a2e9d02dSBarry Smith 36a3780099SBarry Smithecho "framework module PETSc [system] { header \"petsc.h\" export *}" > module.map 37a3780099SBarry Smith 38a2e9d02dSBarry Smithcp ${PETSC_DIR}/${PETSC_ARCH}/lib/libpetsc.dylib PETSc 396187e55bSBarry Smithinstall_name_tool -id /Library/Frameworks/PETSc-OSX/$1/PETSc.Framework/PETSc PETSc 406187e55bSBarry Smith 41a2e9d02dSBarry Smithmkdir Resources 42a2e9d02dSBarry Smithcd Resources 43a2e9d02dSBarry Smithcat <<EOF > Info.plist 44a2e9d02dSBarry Smith<?xml version="1.0" encoding="UTF-8"?> 45a2e9d02dSBarry Smith<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 46a2e9d02dSBarry Smith<plist version="1.0"> 47a2e9d02dSBarry Smith<dict> 48a2e9d02dSBarry Smith <key>BuildMachineOSBuild</key> 49a2e9d02dSBarry Smith <string>12A269</string> 50a2e9d02dSBarry Smith <key>CFBundleDevelopmentRegion</key> 51a2e9d02dSBarry Smith <string>English</string> 52a2e9d02dSBarry Smith <key>CFBundleExecutable</key> 53a2e9d02dSBarry Smith <string>PETSc</string> 54a2e9d02dSBarry Smith <key>CFBundleIdentifier</key> 55a2e9d02dSBarry Smith <string>gov.anl.mcs.PETSc</string> 56a2e9d02dSBarry Smith <key>CFBundleInfoDictionaryVersion</key> 57a2e9d02dSBarry Smith <string>6.0</string> 58a2e9d02dSBarry Smith <key>CFBundleName</key> 59a2e9d02dSBarry Smith <string>PETSc</string> 60a2e9d02dSBarry Smith <key>CFBundlePackageType</key> 61a2e9d02dSBarry Smith <string>FMWK</string> 62a2e9d02dSBarry Smith <key>CFBundleShortVersionString</key> 63a2e9d02dSBarry Smith <string>1.0</string> 64a2e9d02dSBarry Smith <key>CFBundleSignature</key> 65a2e9d02dSBarry Smith <string>????</string> 66a2e9d02dSBarry Smith <key>CFBundleVersion</key> 67a2e9d02dSBarry Smith <string>1</string> 68a2e9d02dSBarry Smith <key>DTCompiler</key> 69a2e9d02dSBarry Smith <string></string> 70a2e9d02dSBarry Smith <key>DTPlatformBuild</key> 71a2e9d02dSBarry Smith <string>4F250</string> 72a2e9d02dSBarry Smith <key>DTPlatformVersion</key> 73a2e9d02dSBarry Smith <string>GM</string> 74a2e9d02dSBarry Smith <key>DTSDKBuild</key> 75a2e9d02dSBarry Smith <string>12A264</string> 76a2e9d02dSBarry Smith <key>DTSDKName</key> 77a2e9d02dSBarry Smith <string>macosx10.8</string> 78a2e9d02dSBarry Smith <key>DTXcode</key> 79a2e9d02dSBarry Smith <string>0440</string> 80a2e9d02dSBarry Smith <key>DTXcodeBuild</key> 81a2e9d02dSBarry Smith <string>4F250</string> 82a2e9d02dSBarry Smith <key>NSHumanReadableCopyright</key> 83a2e9d02dSBarry Smith <string>Copyright © 2012 Argonne National Laboratory. All rights reserved.</string> 84a2e9d02dSBarry Smith</dict> 85a2e9d02dSBarry Smith</plist> 86a2e9d02dSBarry SmithEOF 87a2e9d02dSBarry Smith 88d9dc08c3SBarry Smithcd ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework 89a2e9d02dSBarry Smithln -s Versions/Current/Headers Headers 90a2e9d02dSBarry Smithln -s Versions/Current/PETSc PETSc 91a2e9d02dSBarry Smithln -s Versions/Current/Resources Resources 92a3780099SBarry Smithln -s Versions/Current/module.map module.map 93