1*a2e9d02dSBarry Smith#!/bin/sh 2*a2e9d02dSBarry Smith# 3*a2e9d02dSBarry Smith# This script makes a Apple Mac OS X framework for PETSc 4*a2e9d02dSBarry Smith# 5*a2e9d02dSBarry Smith# ./configure --download-mpich --with-fc=0 -download-mpich-shared=0 --with-shared-libraries 6*a2e9d02dSBarry Smith# 7*a2e9d02dSBarry Smith# To use the framework: 8*a2e9d02dSBarry Smith# 9*a2e9d02dSBarry Smith# 1) replace all #include <petscXXX.h> in application with #import <PETSc/petscXXX.h> 10*a2e9d02dSBarry Smith# 2a) compile with, for example, cc -v ex1.c -o ex1 -I/opt/local/include -F ${PETSC_DIR}/${PETSC_ARCH} -framework PETSc or 11*a2e9d02dSBarry Smith# 2b) copy ${PETSC_DIR}/${PETSC_ARCH}/PETSc.framework to /System/Library/Frameworks/ then you do not need the -F option 12*a2e9d02dSBarry Smith# 3) you can also use the framework inside Xcode by simply indicating the targets dependence on the PETSc framework 13*a2e9d02dSBarry Smith# 14*a2e9d02dSBarry Smith# 15*a2e9d02dSBarry Smithrm -rf ${PETSC_DIR}/${PETSC_ARCH}/PETSc.framework 16*a2e9d02dSBarry Smith 17*a2e9d02dSBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc.framework 18*a2e9d02dSBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc.framework/Versions 19*a2e9d02dSBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc.framework/Versions/A 20*a2e9d02dSBarry Smithcd ${PETSC_DIR}/${PETSC_ARCH}/PETSc.framework/Versions/ 21*a2e9d02dSBarry Smithln -s A Current 22*a2e9d02dSBarry Smith 23*a2e9d02dSBarry Smithcd A 24*a2e9d02dSBarry Smithmkdir Headers 25*a2e9d02dSBarry Smithcp ${PETSC_DIR}/include/*.h Headers 26*a2e9d02dSBarry Smithcp ${PETSC_DIR}/${PETSC_ARCH}/include/*.h Headers 27*a2e9d02dSBarry Smithcp -r ${PETSC_DIR}/include/petsc-private Headers 28*a2e9d02dSBarry Smithcd Headers 29*a2e9d02dSBarry Smithsed -i "" "s?#include [ ]*<petsc-private?#import <PETSc/petsc-private?g" *.h petsc-private/*.h 30*a2e9d02dSBarry Smithsed -i "" "s?#include [ ]*<petsc?#import <PETSc/petsc?g" *.h petsc-private/*.h 31*a2e9d02dSBarry Smithsed -i "" "s?#include [ ]*<mpi?#import <PETSc/mpi?g" *.h petsc-private/*.h 32*a2e9d02dSBarry Smithcd .. 33*a2e9d02dSBarry Smith 34*a2e9d02dSBarry Smithcp ${PETSC_DIR}/${PETSC_ARCH}/lib/libpetsc.dylib PETSc 35*a2e9d02dSBarry Smithmkdir Resources 36*a2e9d02dSBarry Smithcd Resources 37*a2e9d02dSBarry Smithcat <<EOF > Info.plist 38*a2e9d02dSBarry Smith<?xml version="1.0" encoding="UTF-8"?> 39*a2e9d02dSBarry Smith<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 40*a2e9d02dSBarry Smith<plist version="1.0"> 41*a2e9d02dSBarry Smith<dict> 42*a2e9d02dSBarry Smith <key>BuildMachineOSBuild</key> 43*a2e9d02dSBarry Smith <string>12A269</string> 44*a2e9d02dSBarry Smith <key>CFBundleDevelopmentRegion</key> 45*a2e9d02dSBarry Smith <string>English</string> 46*a2e9d02dSBarry Smith <key>CFBundleExecutable</key> 47*a2e9d02dSBarry Smith <string>PETSc</string> 48*a2e9d02dSBarry Smith <key>CFBundleIdentifier</key> 49*a2e9d02dSBarry Smith <string>gov.anl.mcs.PETSc</string> 50*a2e9d02dSBarry Smith <key>CFBundleInfoDictionaryVersion</key> 51*a2e9d02dSBarry Smith <string>6.0</string> 52*a2e9d02dSBarry Smith <key>CFBundleName</key> 53*a2e9d02dSBarry Smith <string>PETSc</string> 54*a2e9d02dSBarry Smith <key>CFBundlePackageType</key> 55*a2e9d02dSBarry Smith <string>FMWK</string> 56*a2e9d02dSBarry Smith <key>CFBundleShortVersionString</key> 57*a2e9d02dSBarry Smith <string>1.0</string> 58*a2e9d02dSBarry Smith <key>CFBundleSignature</key> 59*a2e9d02dSBarry Smith <string>????</string> 60*a2e9d02dSBarry Smith <key>CFBundleVersion</key> 61*a2e9d02dSBarry Smith <string>1</string> 62*a2e9d02dSBarry Smith <key>DTCompiler</key> 63*a2e9d02dSBarry Smith <string></string> 64*a2e9d02dSBarry Smith <key>DTPlatformBuild</key> 65*a2e9d02dSBarry Smith <string>4F250</string> 66*a2e9d02dSBarry Smith <key>DTPlatformVersion</key> 67*a2e9d02dSBarry Smith <string>GM</string> 68*a2e9d02dSBarry Smith <key>DTSDKBuild</key> 69*a2e9d02dSBarry Smith <string>12A264</string> 70*a2e9d02dSBarry Smith <key>DTSDKName</key> 71*a2e9d02dSBarry Smith <string>macosx10.8</string> 72*a2e9d02dSBarry Smith <key>DTXcode</key> 73*a2e9d02dSBarry Smith <string>0440</string> 74*a2e9d02dSBarry Smith <key>DTXcodeBuild</key> 75*a2e9d02dSBarry Smith <string>4F250</string> 76*a2e9d02dSBarry Smith <key>NSHumanReadableCopyright</key> 77*a2e9d02dSBarry Smith <string>Copyright © 2012 Argonne National Laboratory. All rights reserved.</string> 78*a2e9d02dSBarry Smith</dict> 79*a2e9d02dSBarry Smith</plist> 80*a2e9d02dSBarry SmithEOF 81*a2e9d02dSBarry Smith 82*a2e9d02dSBarry Smithcd ${PETSC_DIR}/${PETSC_ARCH}/PETSc.framework 83*a2e9d02dSBarry Smithln -s Versions/Current/Headers Headers 84*a2e9d02dSBarry Smithln -s Versions/Current/PETSc PETSc 85*a2e9d02dSBarry Smithln -s Versions/Current/Resources Resources 86*a2e9d02dSBarry Smith 87