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