xref: /petsc/systems/Apple/OSX/bin/makedmg (revision c20d77252dee0f9c80fc6f8b1a6f948e11175edb)
1e6363104SBarry Smith#!/bin/sh
2e6363104SBarry Smith#
3409736cdSBarry Smith# This script makes a Apple Mac OS X dmg from the PETSc framework and docset, see ./makeall
4e6363104SBarry Smith#
5e6363104SBarry Smith# Make sure that "Enable access for assistive devices" is checked in System Preferences>>Universal Access. It is required for the AppleScript to work.
63923b477SBarry Smith#
703fab7d9SBarry Smithhdiutil detach /Volumes/PETSc
803fab7d9SBarry Smith#
9d9dc08c3SBarry Smithecho "Creating ${PETSC_DIR}/PETSc-OSX.dmg from frameworks in ${PETSC_DIR}/arch-osx-release and debug/PETSc-OSX and ${PETSC_DIR}/PETSc.docset"
10d9dc08c3SBarry Smithecho "  and examples in ${PETSC_DIR}/systems/Apple/OSX/examples"
11d9dc08c3SBarry Smith
12d9dc08c3SBarry Smithrm -rf pack.temp.dmg tempsource ${PETSC_DIR}/PETSc-OSX.dmg
13e6363104SBarry Smithmkdir tempsource
14d9dc08c3SBarry Smithcp -r ${PETSC_DIR}/arch-osx-release/PETSc-OSX tempsource
15d9dc08c3SBarry Smithcp -r ${PETSC_DIR}/arch-osx-debug/PETSc-OSX tempsource
16d9dc08c3SBarry Smithcp -r ${PETSC_DIR}/PETSc.docset tempsource
17aa489236SBarry Smithcp -r  ${PETSC_DIR}/systems/Apple/OSX/examples tempsource/PETSc-OSX.examples
1803fab7d9SBarry Smith
1903fab7d9SBarry Smith# copy the PETSc source for the examples into the example directories and modify the include to point to them
2003fab7d9SBarry Smith# in the PETSc tree the examples point to the original source elsewhere in the PETSc tree
21*c4762a1bSJed Browncp ${PETSC_DIR}/src/snes/tutorials/ex19.c tempsource/PETSc-OSX.examples/PETSc\ command\ line\ example/PETSc\ command\ line\ example
22*c4762a1bSJed Brownsed -i "" s?../../../../../../src/snes/tutorials/??g tempsource/PETSc-OSX.examples/PETSc\ command\ line\ example/PETSc\ command\ line\ example/main.c
23*c4762a1bSJed Browncp ${PETSC_DIR}/src/snes/tutorials/ex19.c tempsource/PETSc-OSX.examples/PETSc\ cocoa\ example/PETSc\ cocoa\ example
24*c4762a1bSJed Brownsed -i "" s?../../../../../../src/snes/tutorials/??g tempsource/PETSc-OSX.examples/PETSc\ cocoa\ example/PETSc\ cocoa\ example/AppDelegate.m
255c3bfe30SBarry Smith
26e6363104SBarry Smithlet size=`du  -c tempsource | tail -1 | cut -f1`
27e6363104SBarry Smithlet size=2*$size
28e6363104SBarry Smith
29e6363104SBarry Smithhdiutil create -srcfolder tempsource -volname PETSc -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW -size ${size}k pack.temp.dmg
30e6363104SBarry Smithsleep 5
31e6363104SBarry Smithdevice=`hdiutil attach -readwrite -noverify -noautoopen "pack.temp.dmg" | head -1 | cut -f1`
32e6363104SBarry Smithecho Created device $device
331263af9aSBarry Smithsleep 5
34feff33eeSBarry Smithecho "
35feff33eeSBarry Smith   tell application \"Finder\"
36feff33eeSBarry Smith     tell disk \"PETSc\"
37e6363104SBarry Smith           open
38e6363104SBarry Smith           set current view of container window to icon view
39e6363104SBarry Smith           set toolbar visible of container window to false
40e6363104SBarry Smith           set statusbar visible of container window to false
41feff33eeSBarry Smith           make new alias file at container window to POSIX file \"/Library/Frameworks\" with properties {name:\"Copy in PETSc-OSX\"}
42feff33eeSBarry Smith           make new alias file at container window to POSIX file \"${HOME}/Library/Developer/Shared/Documentation/DocSets\" with properties {name:\"Copy in PETSc.docset\"}
43feff33eeSBarry Smith           make new alias file at container window to (path to home folder) with properties {name:\"Copy in PETSc-OSX.examples\"}
44e6363104SBarry Smith           eject
45e6363104SBarry Smith     end tell
46e6363104SBarry Smith   end tell
47feff33eeSBarry Smith" | osascript
48e6363104SBarry Smithsleep 8
49e6363104SBarry Smithsync
50e6363104SBarry Smithsync
51b0fb1394SBarry Smithecho 'Completed osascript'
52e6363104SBarry Smith#hdiutil detach ${device}
53d9dc08c3SBarry Smithhdiutil convert "pack.temp.dmg" -format UDZO -imagekey zlib-level=9 -o ${PETSC_DIR}/PETSc-OSX.dmg
54e6363104SBarry Smithrm -rf pack.temp.dmg tempsource
555c3bfe30SBarry Smithsync
565c3bfe30SBarry Smithsleep 2
57a211788bSBarry Smithhdiutil detach /Volumes/PETSc
581263af9aSBarry Smith
591263af9aSBarry Smith#           set the bounds of container window to {400, 100, 885, 630}
601263af9aSBarry Smith#           set theViewOptions to the icon view options of container window
611263af9aSBarry Smith#           set icon size of theViewOptions to 72
621263af9aSBarry Smith#           set arrangement of theViewOptions to not arranged
63