xref: /petsc/systems/Apple/OSX/bin/makeframework (revision d9dc08c3c4ad86f608e3e00539e955e6b7ec9a29)
1a2e9d02dSBarry Smith#!/bin/sh
2a2e9d02dSBarry Smith#
3*d9dc08c3SBarry Smith# makeframework release or debug
4*d9dc08c3SBarry 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*d9dc08c3SBarry Smith#    2a) compile, for example, in src/snes/examples/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
12*d9dc08c3SBarry Smith#        cc -v ex19.c -o ex19 -DPETSC_APPLE_FRAMEWORK=1 -F /Library/Frameworks/PETSc-OSX/release or debug -framework PETSc
13*d9dc08c3SBarry 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
19*d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1
20*d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework
21*d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework/Versions
22*d9dc08c3SBarry Smithmkdir ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework/Versions/A
23*d9dc08c3SBarry 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
30a2e9d02dSBarry Smithcp -r  ${PETSC_DIR}/include/petsc-private Headers
31a2e9d02dSBarry Smithcd Headers
32a2e9d02dSBarry Smithsed -i "" "s?#include [ ]*<petsc-private?#import <PETSc/petsc-private?g" *.h petsc-private/*.h
33a2e9d02dSBarry Smithsed -i "" "s?#include [ ]*<petsc?#import <PETSc/petsc?g" *.h petsc-private/*.h
34a2e9d02dSBarry Smithsed -i "" "s?#include [ ]*<mpi?#import <PETSc/mpi?g" *.h petsc-private/*.h
35a2e9d02dSBarry Smithcd ..
36a2e9d02dSBarry Smith
37a2e9d02dSBarry Smithcp  ${PETSC_DIR}/${PETSC_ARCH}/lib/libpetsc.dylib PETSc
38a2e9d02dSBarry Smithmkdir Resources
39a2e9d02dSBarry Smithcd Resources
40a2e9d02dSBarry Smithcat <<EOF > Info.plist
41a2e9d02dSBarry Smith<?xml version="1.0" encoding="UTF-8"?>
42a2e9d02dSBarry Smith<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
43a2e9d02dSBarry Smith<plist version="1.0">
44a2e9d02dSBarry Smith<dict>
45a2e9d02dSBarry Smith	<key>BuildMachineOSBuild</key>
46a2e9d02dSBarry Smith	<string>12A269</string>
47a2e9d02dSBarry Smith	<key>CFBundleDevelopmentRegion</key>
48a2e9d02dSBarry Smith	<string>English</string>
49a2e9d02dSBarry Smith	<key>CFBundleExecutable</key>
50a2e9d02dSBarry Smith	<string>PETSc</string>
51a2e9d02dSBarry Smith	<key>CFBundleIdentifier</key>
52a2e9d02dSBarry Smith	<string>gov.anl.mcs.PETSc</string>
53a2e9d02dSBarry Smith	<key>CFBundleInfoDictionaryVersion</key>
54a2e9d02dSBarry Smith	<string>6.0</string>
55a2e9d02dSBarry Smith	<key>CFBundleName</key>
56a2e9d02dSBarry Smith	<string>PETSc</string>
57a2e9d02dSBarry Smith	<key>CFBundlePackageType</key>
58a2e9d02dSBarry Smith	<string>FMWK</string>
59a2e9d02dSBarry Smith	<key>CFBundleShortVersionString</key>
60a2e9d02dSBarry Smith	<string>1.0</string>
61a2e9d02dSBarry Smith	<key>CFBundleSignature</key>
62a2e9d02dSBarry Smith	<string>????</string>
63a2e9d02dSBarry Smith	<key>CFBundleVersion</key>
64a2e9d02dSBarry Smith	<string>1</string>
65a2e9d02dSBarry Smith	<key>DTCompiler</key>
66a2e9d02dSBarry Smith	<string></string>
67a2e9d02dSBarry Smith	<key>DTPlatformBuild</key>
68a2e9d02dSBarry Smith	<string>4F250</string>
69a2e9d02dSBarry Smith	<key>DTPlatformVersion</key>
70a2e9d02dSBarry Smith	<string>GM</string>
71a2e9d02dSBarry Smith	<key>DTSDKBuild</key>
72a2e9d02dSBarry Smith	<string>12A264</string>
73a2e9d02dSBarry Smith	<key>DTSDKName</key>
74a2e9d02dSBarry Smith	<string>macosx10.8</string>
75a2e9d02dSBarry Smith	<key>DTXcode</key>
76a2e9d02dSBarry Smith	<string>0440</string>
77a2e9d02dSBarry Smith	<key>DTXcodeBuild</key>
78a2e9d02dSBarry Smith	<string>4F250</string>
79a2e9d02dSBarry Smith	<key>NSHumanReadableCopyright</key>
80a2e9d02dSBarry Smith	<string>Copyright © 2012 Argonne National Laboratory. All rights reserved.</string>
81a2e9d02dSBarry Smith</dict>
82a2e9d02dSBarry Smith</plist>
83a2e9d02dSBarry SmithEOF
84a2e9d02dSBarry Smith
85*d9dc08c3SBarry Smithcd  ${PETSC_DIR}/${PETSC_ARCH}/PETSc-OSX/$1/PETSc.framework
86a2e9d02dSBarry Smithln -s Versions/Current/Headers Headers
87a2e9d02dSBarry Smithln -s Versions/Current/PETSc PETSc
88a2e9d02dSBarry Smithln -s Versions/Current/Resources Resources
89a2e9d02dSBarry Smith
90