xref: /petsc/systems/Apple/OSX/bin/makedocs (revision bacb95329690568aff0b1ce581edcd45f38ae3de)
140dfd57bSBarry Smith#!/bin/sh
240dfd57bSBarry Smith#
340dfd57bSBarry Smith# This script adds documentation to the Apple Mac OS X framework for PETSc created with makeframework
440dfd57bSBarry Smith#
540dfd57bSBarry Smith#After running makeframework and generating the PETSc documention then just run this script
640dfd57bSBarry Smith#    3) you can also use the framework inside Xcode by simply indicating the targets dependence on the PETSc framework
740dfd57bSBarry Smith#
840dfd57bSBarry Smith#
9a211788bSBarry Smithcd ${PETSC_DIR}/${PETSC_ARCH}
10a211788bSBarry Smithrm -rf PETSc.docset
1140dfd57bSBarry Smithmkdir PETSc.docset
1240dfd57bSBarry Smithmkdir PETSc.docset/Contents
1340dfd57bSBarry Smithmkdir PETSc.docset/Contents/Resources
1440dfd57bSBarry Smithmkdir PETSc.docset/Contents/Resources/Documents
1540dfd57bSBarry Smithcat <<EOF > PETSc.docset/Contents/Info.plist
1640dfd57bSBarry Smith<?xml version="1.0" encoding="UTF-8"?>
1740dfd57bSBarry Smith<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
1840dfd57bSBarry Smith<plist version="1.0">
1940dfd57bSBarry Smith<dict>
2040dfd57bSBarry Smith        <key>CFBundleName</key>
2140dfd57bSBarry Smith        <string>PETSc Documentation</string>
2240dfd57bSBarry Smith	<key>CFBundleIdentifier</key>
2340dfd57bSBarry Smith	<string>gov.anl.mcs.PETSc.docset</string>
2440dfd57bSBarry Smith        <key>DocSetPublisherIdentifier</key>
2540dfd57bSBarry Smith        <string>gov.anl.mcs.PETSc.documentation</string>
2640dfd57bSBarry Smith        <key>DocSetPublisherName</key>
2740dfd57bSBarry Smith        <string>PETSc</string>
2840dfd57bSBarry Smith</dict>
2940dfd57bSBarry Smith</plist>
3040dfd57bSBarry SmithEOF
3140dfd57bSBarry Smith
321b45c02dSBarry Smithcat <<EOF > PETSc.docset/Contents/Resources/Nodes.xml
3340dfd57bSBarry Smith<?xml version="1.0" encoding="UTF-8"?>
3440dfd57bSBarry Smith<DocSetNodes version="1.0">
3540dfd57bSBarry Smith    <TOC>
361b45c02dSBarry Smith        <Node type="file">
3740dfd57bSBarry Smith            <Name>All PETSc manual pages</Name>
381b45c02dSBarry Smith            <Path>manualpages</Path>
391b45c02dSBarry Smith            <File>singleindex.html</File>
40*bacb9532SBarry Smith            <Subnodes>
41*bacb9532SBarry Smith                <Node  type="folder">
42*bacb9532SBarry Smith                   <Name>ODE Integrators -- TS</Name>
43*bacb9532SBarry Smith                   <Path>manualpages/TS</Path>
44*bacb9532SBarry Smith                   <File>index.html</File>
45*bacb9532SBarry Smith                </Node>
46*bacb9532SBarry Smith                <Node  type="folder">
47*bacb9532SBarry Smith                   <Name>Nonlinear solvers -- SNES</Name>
48*bacb9532SBarry Smith                   <Path>manualpages/SNES</Path>
49*bacb9532SBarry Smith                   <File>index.html</File>
50*bacb9532SBarry Smith                </Node>
51*bacb9532SBarry Smith                <Node  type="folder">
52*bacb9532SBarry Smith                   <Name>Krylov solvers -- KSP</Name>
53*bacb9532SBarry Smith                   <Path>manualpages/KSP</Path>
54*bacb9532SBarry Smith                   <File>index.html</File>
55*bacb9532SBarry Smith                </Node>
56*bacb9532SBarry Smith                <Node  type="folder">
57*bacb9532SBarry Smith                   <Name>Preconditioners -- PC</Name>
58*bacb9532SBarry Smith                   <Path>manualpages/PC</Path>
59*bacb9532SBarry Smith                   <File>index.html</File>
60*bacb9532SBarry Smith                </Node>
61*bacb9532SBarry Smith               <Node  type="folder">
62*bacb9532SBarry Smith                   <Name>Semi-Lagrange solver</Name>
63*bacb9532SBarry Smith                   <Path>manualpages/SemiLagrange</Path>
64*bacb9532SBarry Smith                   <File>index.html</File>
65*bacb9532SBarry Smith                </Node>
66*bacb9532SBarry Smith               <Node  type="folder">
67*bacb9532SBarry Smith                   <Name>Mesh management -- DM</Name>
68*bacb9532SBarry Smith                   <Path>manualpages/DM</Path>
69*bacb9532SBarry Smith                   <File>index.html</File>
70*bacb9532SBarry Smith                </Node>
71*bacb9532SBarry Smith                <Node  type="folder">
72*bacb9532SBarry Smith                   <Name>Matrices -- Mat</Name>
73*bacb9532SBarry Smith                   <Path>manualpages/Mat</Path>
74*bacb9532SBarry Smith                   <File>index.html</File>
75*bacb9532SBarry Smith                </Node>
76*bacb9532SBarry Smith                <Node  type="folder">
77*bacb9532SBarry Smith                   <Name>Matrix-free operators -- MatFD</Name>
78*bacb9532SBarry Smith                   <Path>manualpages/MatFD</Path>
79*bacb9532SBarry Smith                   <File>index.html</File>
80*bacb9532SBarry Smith                </Node>
81*bacb9532SBarry Smith                <Node  type="folder">
82*bacb9532SBarry Smith                   <Name>Matrix orderings -- MatOrdering</Name>
83*bacb9532SBarry Smith                   <Path>manualpages/MatOrderings</Path>
84*bacb9532SBarry Smith                   <File>index.html</File>
85*bacb9532SBarry Smith                </Node>
86*bacb9532SBarry Smith                <Node  type="folder">
87*bacb9532SBarry Smith                   <Name>Vectors -- Vec</Name>
88*bacb9532SBarry Smith                   <Path>manualpages/Vec</Path>
89*bacb9532SBarry Smith                   <File>index.html</File>
90*bacb9532SBarry Smith                </Node>
91*bacb9532SBarry Smith                <Node  type="folder">
92*bacb9532SBarry Smith                   <Name>Indexing -- IS</Name>
93*bacb9532SBarry Smith                   <Path>manualpages/IS</Path>
94*bacb9532SBarry Smith                   <File>index.html</File>
95*bacb9532SBarry Smith                </Node>
96*bacb9532SBarry Smith               <Node  type="folder">
97*bacb9532SBarry Smith                   <Name>Numbering/Reordering -- AO</Name>
98*bacb9532SBarry Smith                   <Path>manualpages/AO</Path>
99*bacb9532SBarry Smith                   <File>index.html</File>
100*bacb9532SBarry Smith                </Node>
101*bacb9532SBarry Smith                <Node  type="folder">
102*bacb9532SBarry Smith                   <Name>Viewers -- PetscViewer</Name>
103*bacb9532SBarry Smith                   <Path>manualpages/Viewer</Path>
104*bacb9532SBarry Smith                   <File>index.html</File>
105*bacb9532SBarry Smith                </Node>
106*bacb9532SBarry Smith                <Node  type="folder">
107*bacb9532SBarry Smith                   <Name>Profiling -- PetscLog</Name>
108*bacb9532SBarry Smith                   <Path>manualpages/Profiling</Path>
109*bacb9532SBarry Smith                   <File>index.html</File>
110*bacb9532SBarry Smith                </Node>
111*bacb9532SBarry Smith                <Node  type="folder">
112*bacb9532SBarry Smith                   <Name>Utilities -- Sys</Name>
113*bacb9532SBarry Smith                   <Path>manualpages/Sys</Path>
114*bacb9532SBarry Smith                   <File>index.html</File>
115*bacb9532SBarry Smith                </Node>
116*bacb9532SBarry Smith                <Node  type="folder">
117*bacb9532SBarry Smith                   <Name>Thread parallelism -- PetscThreadComm</Name>
118*bacb9532SBarry Smith                   <Path>manualpages/PetscThreadComm</Path>
119*bacb9532SBarry Smith                   <File>index.html</File>
120*bacb9532SBarry Smith                </Node>
121*bacb9532SBarry Smith                <Node  type="folder">
122*bacb9532SBarry Smith                   <Name>Low-level communication -- PetscSF</Name>
123*bacb9532SBarry Smith                   <Path>manualpages/PetscSF</Path>
124*bacb9532SBarry Smith                   <File>index.html</File>
125*bacb9532SBarry Smith                </Node>
126*bacb9532SBarry Smith                <Node  type="folder">
127*bacb9532SBarry Smith                   <Name>Graphics -- PetscDraw</Name>
128*bacb9532SBarry Smith                   <Path>manualpages/Draw</Path>
129*bacb9532SBarry Smith                   <File>index.html</File>
130*bacb9532SBarry Smith                </Node>
131*bacb9532SBarry Smith                <Node  type="folder">
132*bacb9532SBarry Smith                   <Name>PF</Name>
133*bacb9532SBarry Smith                   <Path>manualpages/PF</Path>
134*bacb9532SBarry Smith                   <File>index.html</File>
135*bacb9532SBarry Smith                </Node>
136*bacb9532SBarry Smith            </Subnodes>
13740dfd57bSBarry Smith        </Node>
13840dfd57bSBarry Smith    </TOC>
13940dfd57bSBarry Smith</DocSetNodes>
14040dfd57bSBarry SmithEOF
14140dfd57bSBarry Smith
142*bacb9532SBarry Smithcat <<EOF > PETSc.docset/Contents/Resources/Tokens.xml
143*bacb9532SBarry Smith<?xml version="1.0" encoding="UTF-8"?>
144*bacb9532SBarry Smith<Tokens version="1.0">
145*bacb9532SBarry SmithEOF
146*bacb9532SBarry Smith
147*bacb9532SBarry Smithcd ${LOC}/docs
148*bacb9532SBarry Smithfor i in manualpages/*/*.html; do
149*bacb9532SBarry Smith  symbol=`echo $i | sed s?manualpages/[A-Za-z]*/??g | sed s?.html??g`
150*bacb9532SBarry Smith  if [ ${symbol} != "index" ]; then
151*bacb9532SBarry Smith    echo \<Token\> \<TokenIdentifier\>//apple_ref/c/func/${symbol}\</TokenIdentifier\>\<Path\>${i}\</Path\>\</Token\> >> ${PETSC_DIR}/${PETSC_ARCH}/PETSc.docset/Contents/Resources/Tokens.xml
152*bacb9532SBarry Smith  fi;
153*bacb9532SBarry Smithdone
154*bacb9532SBarry Smith
155*bacb9532SBarry Smithcd ${PETSC_DIR}/${PETSC_ARCH}
156*bacb9532SBarry Smith
157*bacb9532SBarry Smithcat <<EOF >> PETSc.docset/Contents/Resources/Tokens.xml
158*bacb9532SBarry Smith</Tokens>
159*bacb9532SBarry SmithEOF
160*bacb9532SBarry Smith
16140dfd57bSBarry Smithcp -r ${LOC}/docs/manualpages PETSc.docset/Contents/Resources/Documents
16240dfd57bSBarry Smith
163*bacb9532SBarry Smith/Applications/Xcode.app/Contents/Developer/usr/bin/docsetutil index -debug -verbose   PETSc.docset
16440dfd57bSBarry Smith
16540dfd57bSBarry Smith
166