xref: /petsc/systems/Apple/OSX/bin/makeframework (revision a2e9d02d4405e54b0e59ce3153a9238a50facc46)
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