1*70d20fabSBarry Smith#!/bin/sh 2*70d20fabSBarry Smith# 3*70d20fabSBarry Smith# This script makes a Apple Mac OS X docset for PETSc see ./makeall 4*70d20fabSBarry Smith# 5*70d20fabSBarry Smith# 6*70d20fabSBarry Smithcd ${PETSC_DIR}/${PETSC_ARCH} 7*70d20fabSBarry Smithrm -rf PETSc.docset 8*70d20fabSBarry Smithmkdir PETSc.docset 9*70d20fabSBarry Smithmkdir PETSc.docset/Contents 10*70d20fabSBarry Smithmkdir PETSc.docset/Contents/Resources 11*70d20fabSBarry Smithmkdir PETSc.docset/Contents/Resources/Documents 12*70d20fabSBarry Smithcat <<EOF > PETSc.docset/Contents/Info.plist 13*70d20fabSBarry Smith<?xml version="1.0" encoding="UTF-8"?> 14*70d20fabSBarry Smith<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 15*70d20fabSBarry Smith<plist version="1.0"> 16*70d20fabSBarry Smith<dict> 17*70d20fabSBarry Smith <key>CFBundleName</key> 18*70d20fabSBarry Smith <string>PETSc Documentation</string> 19*70d20fabSBarry Smith <key>CFBundleIdentifier</key> 20*70d20fabSBarry Smith <string>gov.anl.mcs.PETSc.docset</string> 21*70d20fabSBarry Smith <key>DocSetPublisherIdentifier</key> 22*70d20fabSBarry Smith <string>gov.anl.mcs.PETSc.documentation</string> 23*70d20fabSBarry Smith <key>DocSetPublisherName</key> 24*70d20fabSBarry Smith <string>PETSc</string> 25*70d20fabSBarry Smith</dict> 26*70d20fabSBarry Smith</plist> 27*70d20fabSBarry SmithEOF 28*70d20fabSBarry Smith 29*70d20fabSBarry Smithcat <<EOF > PETSc.docset/Contents/Resources/Nodes.xml 30*70d20fabSBarry Smith<?xml version="1.0" encoding="UTF-8"?> 31*70d20fabSBarry Smith<DocSetNodes version="1.0"> 32*70d20fabSBarry Smith <TOC> 33*70d20fabSBarry Smith <Node type="file"> 34*70d20fabSBarry Smith <Name>All PETSc manual pages</Name> 35*70d20fabSBarry Smith <Path>manualpages</Path> 36*70d20fabSBarry Smith <File>singleindex.html</File> 37*70d20fabSBarry Smith <Subnodes> 38*70d20fabSBarry Smith <Node type="folder"> 39*70d20fabSBarry Smith <Name>ODE Integrators -- TS</Name> 40*70d20fabSBarry Smith <Path>manualpages/TS</Path> 41*70d20fabSBarry Smith <File>index.html</File> 42*70d20fabSBarry Smith </Node> 43*70d20fabSBarry Smith <Node type="folder"> 44*70d20fabSBarry Smith <Name>Nonlinear solvers -- SNES</Name> 45*70d20fabSBarry Smith <Path>manualpages/SNES</Path> 46*70d20fabSBarry Smith <File>index.html</File> 47*70d20fabSBarry Smith </Node> 48*70d20fabSBarry Smith <Node type="folder"> 49*70d20fabSBarry Smith <Name>Krylov solvers -- KSP</Name> 50*70d20fabSBarry Smith <Path>manualpages/KSP</Path> 51*70d20fabSBarry Smith <File>index.html</File> 52*70d20fabSBarry Smith </Node> 53*70d20fabSBarry Smith <Node type="folder"> 54*70d20fabSBarry Smith <Name>Preconditioners -- PC</Name> 55*70d20fabSBarry Smith <Path>manualpages/PC</Path> 56*70d20fabSBarry Smith <File>index.html</File> 57*70d20fabSBarry Smith </Node> 58*70d20fabSBarry Smith <Node type="folder"> 59*70d20fabSBarry Smith <Name>Semi-Lagrange solver</Name> 60*70d20fabSBarry Smith <Path>manualpages/SemiLagrange</Path> 61*70d20fabSBarry Smith <File>index.html</File> 62*70d20fabSBarry Smith </Node> 63*70d20fabSBarry Smith <Node type="folder"> 64*70d20fabSBarry Smith <Name>Mesh management -- DM</Name> 65*70d20fabSBarry Smith <Path>manualpages/DM</Path> 66*70d20fabSBarry Smith <File>index.html</File> 67*70d20fabSBarry Smith </Node> 68*70d20fabSBarry Smith <Node type="folder"> 69*70d20fabSBarry Smith <Name>Matrices -- Mat</Name> 70*70d20fabSBarry Smith <Path>manualpages/Mat</Path> 71*70d20fabSBarry Smith <File>index.html</File> 72*70d20fabSBarry Smith </Node> 73*70d20fabSBarry Smith <Node type="folder"> 74*70d20fabSBarry Smith <Name>Matrix-free operators -- MatFD</Name> 75*70d20fabSBarry Smith <Path>manualpages/MatFD</Path> 76*70d20fabSBarry Smith <File>index.html</File> 77*70d20fabSBarry Smith </Node> 78*70d20fabSBarry Smith <Node type="folder"> 79*70d20fabSBarry Smith <Name>Matrix orderings -- MatOrdering</Name> 80*70d20fabSBarry Smith <Path>manualpages/MatOrderings</Path> 81*70d20fabSBarry Smith <File>index.html</File> 82*70d20fabSBarry Smith </Node> 83*70d20fabSBarry Smith <Node type="folder"> 84*70d20fabSBarry Smith <Name>Vectors -- Vec</Name> 85*70d20fabSBarry Smith <Path>manualpages/Vec</Path> 86*70d20fabSBarry Smith <File>index.html</File> 87*70d20fabSBarry Smith </Node> 88*70d20fabSBarry Smith <Node type="folder"> 89*70d20fabSBarry Smith <Name>Indexing -- IS</Name> 90*70d20fabSBarry Smith <Path>manualpages/IS</Path> 91*70d20fabSBarry Smith <File>index.html</File> 92*70d20fabSBarry Smith </Node> 93*70d20fabSBarry Smith <Node type="folder"> 94*70d20fabSBarry Smith <Name>Numbering/Reordering -- AO</Name> 95*70d20fabSBarry Smith <Path>manualpages/AO</Path> 96*70d20fabSBarry Smith <File>index.html</File> 97*70d20fabSBarry Smith </Node> 98*70d20fabSBarry Smith <Node type="folder"> 99*70d20fabSBarry Smith <Name>Viewers -- PetscViewer</Name> 100*70d20fabSBarry Smith <Path>manualpages/Viewer</Path> 101*70d20fabSBarry Smith <File>index.html</File> 102*70d20fabSBarry Smith </Node> 103*70d20fabSBarry Smith <Node type="folder"> 104*70d20fabSBarry Smith <Name>Profiling -- PetscLog</Name> 105*70d20fabSBarry Smith <Path>manualpages/Profiling</Path> 106*70d20fabSBarry Smith <File>index.html</File> 107*70d20fabSBarry Smith </Node> 108*70d20fabSBarry Smith <Node type="folder"> 109*70d20fabSBarry Smith <Name>Utilities -- Sys</Name> 110*70d20fabSBarry Smith <Path>manualpages/Sys</Path> 111*70d20fabSBarry Smith <File>index.html</File> 112*70d20fabSBarry Smith </Node> 113*70d20fabSBarry Smith <Node type="folder"> 114*70d20fabSBarry Smith <Name>Thread parallelism -- PetscThreadComm</Name> 115*70d20fabSBarry Smith <Path>manualpages/PetscThreadComm</Path> 116*70d20fabSBarry Smith <File>index.html</File> 117*70d20fabSBarry Smith </Node> 118*70d20fabSBarry Smith <Node type="folder"> 119*70d20fabSBarry Smith <Name>Low-level communication -- PetscSF</Name> 120*70d20fabSBarry Smith <Path>manualpages/PetscSF</Path> 121*70d20fabSBarry Smith <File>index.html</File> 122*70d20fabSBarry Smith </Node> 123*70d20fabSBarry Smith <Node type="folder"> 124*70d20fabSBarry Smith <Name>Graphics -- PetscDraw</Name> 125*70d20fabSBarry Smith <Path>manualpages/Draw</Path> 126*70d20fabSBarry Smith <File>index.html</File> 127*70d20fabSBarry Smith </Node> 128*70d20fabSBarry Smith <Node type="folder"> 129*70d20fabSBarry Smith <Name>PF</Name> 130*70d20fabSBarry Smith <Path>manualpages/PF</Path> 131*70d20fabSBarry Smith <File>index.html</File> 132*70d20fabSBarry Smith </Node> 133*70d20fabSBarry Smith </Subnodes> 134*70d20fabSBarry Smith </Node> 135*70d20fabSBarry Smith </TOC> 136*70d20fabSBarry Smith</DocSetNodes> 137*70d20fabSBarry SmithEOF 138*70d20fabSBarry Smith 139*70d20fabSBarry Smithcat <<EOF > PETSc.docset/Contents/Resources/Tokens.xml 140*70d20fabSBarry Smith<?xml version="1.0" encoding="UTF-8"?> 141*70d20fabSBarry Smith<Tokens version="1.0"> 142*70d20fabSBarry SmithEOF 143*70d20fabSBarry Smith 144*70d20fabSBarry Smithcd ${LOC}/docs 145*70d20fabSBarry Smithfor i in manualpages/*/*.html; do 146*70d20fabSBarry Smith symbol=`echo $i | sed s?manualpages/[A-Za-z]*/??g | sed s?.html??g` 147*70d20fabSBarry Smith if [ ${symbol} != "index" ]; then 148*70d20fabSBarry Smith echo \<Token\> \<TokenIdentifier\>//apple_ref/c/func/${symbol}\</TokenIdentifier\>\<Path\>${i}\</Path\>\</Token\> >> ${PETSC_DIR}/${PETSC_ARCH}/PETSc.docset/Contents/Resources/Tokens.xml 149*70d20fabSBarry Smith fi; 150*70d20fabSBarry Smithdone 151*70d20fabSBarry Smith 152*70d20fabSBarry Smithcd ${PETSC_DIR}/${PETSC_ARCH} 153*70d20fabSBarry Smith 154*70d20fabSBarry Smithcat <<EOF >> PETSc.docset/Contents/Resources/Tokens.xml 155*70d20fabSBarry Smith</Tokens> 156*70d20fabSBarry SmithEOF 157*70d20fabSBarry Smith 158*70d20fabSBarry Smithcp -r ${LOC}/docs/manualpages PETSc.docset/Contents/Resources/Documents 159*70d20fabSBarry Smith 160*70d20fabSBarry Smith/Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil index -debug -verbose PETSc.docset 161*70d20fabSBarry Smith 162*70d20fabSBarry Smith 163