Admin/lib/Tools/build_doc
changeset 53208 bec95e287d26
parent 52740 bceec99254b0
child 56429 bc61161a5bd0
equal deleted inserted replaced
53207:9745b7d4cc79 53208:bec95e287d26
    15   echo "Usage: isabelle $PRG [OPTIONS] [SESSIONS ...]"
    15   echo "Usage: isabelle $PRG [OPTIONS] [SESSIONS ...]"
    16   echo
    16   echo
    17   echo "  Options are:"
    17   echo "  Options are:"
    18   echo "    -a           select all doc sessions"
    18   echo "    -a           select all doc sessions"
    19   echo "    -j INT       maximum number of parallel jobs (default 1)"
    19   echo "    -j INT       maximum number of parallel jobs (default 1)"
       
    20   echo "    -s           system build mode"
    20   echo
    21   echo
    21   echo "  Build Isabelle documentation from (doc) sessions."
    22   echo "  Build Isabelle documentation from (doc) sessions."
    22   echo
    23   echo
    23   exit 1
    24   exit 1
    24 }
    25 }
    35 }
    36 }
    36 
    37 
    37 
    38 
    38 ## process command line
    39 ## process command line
    39 
    40 
       
    41 declare -a BUILD_ARGS=()
       
    42 
       
    43 
    40 # options
    44 # options
    41 
    45 
    42 ALL_DOCS="false"
    46 ALL_DOCS="false"
    43 JOBS=""
       
    44 
    47 
    45 while getopts "aj:" OPT
    48 while getopts "aj:s" OPT
    46 do
    49 do
    47   case "$OPT" in
    50   case "$OPT" in
    48     a)
    51     a)
    49       ALL_DOCS="true"
    52       ALL_DOCS="true"
    50       ;;
    53       ;;
    51     j)
    54     j)
    52       check_number "$OPTARG"
    55       check_number "$OPTARG"
    53       JOBS="-j $OPTARG"
    56       BUILD_ARGS["${#BUILD_ARGS[@]}"]="-j"
       
    57       BUILD_ARGS["${#BUILD_ARGS[@]}"]="$OPTARG"
       
    58       ;;
       
    59     s)
       
    60       BUILD_ARGS["${#BUILD_ARGS[@]}"]="-s"
    54       ;;
    61       ;;
    55     \?)
    62     \?)
    56       usage
    63       usage
    57       ;;
    64       ;;
    58   esac
    65   esac
    62 
    69 
    63 
    70 
    64 # arguments
    71 # arguments
    65 
    72 
    66 if [ "$ALL_DOCS" = true ]; then
    73 if [ "$ALL_DOCS" = true ]; then
    67   declare -a BUILD_ARGS=(-g doc)
    74   BUILD_ARGS["${#BUILD_ARGS[@]}"]="-g"
       
    75   BUILD_ARGS["${#BUILD_ARGS[@]}"]="doc"
    68 else
    76 else
    69   declare -a BUILD_ARGS=()
       
    70   [ "$#" -eq 0 ] && usage
    77   [ "$#" -eq 0 ] && usage
    71 fi
    78 fi
    72 
    79 
    73 BUILD_ARGS["${#BUILD_ARGS[@]}"]="--"
    80 BUILD_ARGS["${#BUILD_ARGS[@]}"]="--"
    74 
    81 
    81 ## main
    88 ## main
    82 
    89 
    83 OUTPUT="$ISABELLE_TMP_PREFIX$$"
    90 OUTPUT="$ISABELLE_TMP_PREFIX$$"
    84 mkdir -p "$OUTPUT" || fail "Bad directory: \"$OUTPUT\""
    91 mkdir -p "$OUTPUT" || fail "Bad directory: \"$OUTPUT\""
    85 
    92 
    86 "$ISABELLE_TOOL" build -R -b $JOBS "${BUILD_ARGS[@]}"
    93 "$ISABELLE_TOOL" build -R -b "${BUILD_ARGS[@]}"
    87 RC=$?
    94 RC=$?
    88 
    95 
    89 if [ "$RC" = 0 ]; then
    96 if [ "$RC" = 0 ]; then
    90   "$ISABELLE_TOOL" build -o browser_info=false -o "document=pdf" \
    97   "$ISABELLE_TOOL" build -o browser_info=false -o "document=pdf" \
    91     -o "document_output=$OUTPUT" -c $JOBS "${BUILD_ARGS[@]}"
    98     -o "document_output=$OUTPUT" -c "${BUILD_ARGS[@]}"
    92   RC=$?
    99   RC=$?
    93 fi
   100 fi
    94 
   101 
    95 if [ "$RC" = 0 ]; then
   102 if [ "$RC" = 0 ]; then
    96   cp -f "$OUTPUT"/*.pdf "$ISABELLE_HOME/doc"
   103   cp -f "$OUTPUT"/*.pdf "$ISABELLE_HOME/doc"