#!/bin/sh # # makeframework release or debug # # This script makes a Apple Mac OS X framework for PETSc see ./makeall # # To use the framework: # # 1) replace all #include in application with #import # 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 # 2b) Run the installer or sudo mv -r ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX to /Library/Frameworks/ then use # cc -v ex19.c -o ex19 -DPETSC_APPLE_FRAMEWORK=1 -F /Library/Frameworks/PETSc-OSX/release or debug -framework PETSc # 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 # # rm -rf ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX mkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX mkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1 mkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework mkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework/Versions mkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework/Versions/A cd ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework/Versions/ ln -s A Current cd A mkdir Headers cp ${PETSC_DIR}/include/*.h Headers cp ${PETSC_DIR}/${PETSC_ARCH}/include/*.h Headers cp -r ${PETSC_DIR}/include/petsc Headers cd Headers sed -i "" "s?#include [ ]* module.map cp ${PETSC_DIR}/${PETSC_ARCH}/lib/libpetsc.dylib PETSc install_name_tool -id /Library/Frameworks/PETSc-OSX/$1/PETSc.Framework/PETSc PETSc mkdir Resources cd Resources cat < Info.plist BuildMachineOSBuild 12A269 CFBundleDevelopmentRegion English CFBundleExecutable PETSc CFBundleIdentifier gov.anl.mcs.PETSc CFBundleInfoDictionaryVersion 6.0 CFBundleName PETSc CFBundlePackageType FMWK CFBundleShortVersionString 1.0 CFBundleSignature ???? CFBundleVersion 1 DTCompiler DTPlatformBuild 4F250 DTPlatformVersion GM DTSDKBuild 12A264 DTSDKName macosx10.8 DTXcode 0440 DTXcodeBuild 4F250 NSHumanReadableCopyright Copyright © 2012 Argonne National Laboratory. All rights reserved. EOF cd ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework ln -s Versions/Current/Headers Headers ln -s Versions/Current/PETSc PETSc ln -s Versions/Current/Resources Resources ln -s Versions/Current/module.map module.map