summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2017-09-15 00:58:04 +0000
committerChris Johns <chrisj@rtems.org>2017-09-15 00:58:04 +0000
commit828bb2042915d50e48bc0cd724fc701df742c1c5 (patch)
treeba3ef29abfcae354eb8e163ee1d7cd85d3b04b05
parent52a117cab8a876594d635a7a35b2b5e058ed8c91 (diff)
Add doxygen support.
-rw-r--r--doxygen/builder/.gitignore1
-rwxr-xr-xdoxygen/builder/rtems-doxygen-build-branches183
-rwxr-xr-xdoxygen/builder/rtems-doxygen-build-cron23
-rwxr-xr-xdoxygen/builder/rtems-doxygen-upload61
4 files changed, 268 insertions, 0 deletions
diff --git a/doxygen/builder/.gitignore b/doxygen/builder/.gitignore
new file mode 100644
index 0000000..a0f9a4b
--- /dev/null
+++ b/doxygen/builder/.gitignore
@@ -0,0 +1 @@
+latest
diff --git a/doxygen/builder/rtems-doxygen-build-branches b/doxygen/builder/rtems-doxygen-build-branches
new file mode 100755
index 0000000..249582d
--- /dev/null
+++ b/doxygen/builder/rtems-doxygen-build-branches
@@ -0,0 +1,183 @@
+#! /bin/sh
+#
+# RTEMS Kernel Project
+#
+# Copyright 2017 Chris Johns <chrisj@rtems.org>
+# All rights reserved
+#
+# Public domain
+#
+
+#
+# Exit on error.
+#
+set -e
+
+#
+# Executables
+#
+git=/usr/local/bin/git
+doxygen=/usr/local/bin/doxygen
+
+#
+# Top directory
+#
+top=$PWD
+
+#
+# Directory of builds.
+#
+output=${top}/output
+
+#
+# The build tags files.
+#
+tags=${output}/.tags
+
+#
+# Branches to build and install as current
+#
+branches="master 4.11"
+
+#
+# Branch hash cache
+#
+hash_cache=${top}/git-hash-cache
+
+#
+# Lastest builds
+#
+latest=${top}/latest
+
+#
+# Git repository.
+#
+repo=rtems.git
+
+#
+# Logging.
+#
+log() {
+ echo $* >> ${log_file}
+}
+log_file=${top}/build.log
+for f in 9 8 7 6 5 4 3 2 1
+do
+ t=`expr $f + 1`
+ rm -f ${top}/build-${t}.log
+ if [ -f ${top}/build-${f}.log ]; then
+ mv ${top}/build-${f}.log ${top}/build-${t}.log
+ fi
+done
+if [ -f ${top}/build.log ]; then
+ mv ${top}/build.log ${top}/build-1.log
+fi
+rm -rf ${log_file}
+
+# Create or clone the repository and then check if a commit has been added on
+# each branch we are interesed in and if there is a commit build the doco and
+# install.
+
+log "RTEMS Kernel Doxygen Build: " `date`
+
+log rm -f rtems-doxygen-latest.tar.xz rtems-doxygen-latest-tags
+rm -f rtems-doxygen-latest.tar.xz rtems-doxygen-latest-tags
+
+if [ ! -d ${hash_cache} ]; then
+ mkdir ${hash_cache}
+fi
+
+#
+# If there is no repo create it.
+#
+if [ ! -d ${repo} ]; then
+ log git clone git://git.rtems.org/${repo} ${repo}
+ ${git} clone git://git.rtems.org/${repo} ${repo} >> ${log_file} 2>&1
+fi
+
+#
+# If output exists we have an existing build so clean it first.
+#
+builds=0
+log rm -rf ${output} ${latest}
+rm -rf ${output} ${latest}
+log mkdir ${latest}
+mkdir ${latest}
+
+log cd ${repo}
+cd ${repo}
+ #
+ # Fetch any updates and reset the repo to be safe.
+ #
+ log git fetch
+ ${git} fetch >> ${log_file} 2>&1
+ log git reset --hard
+ ${git} reset --hard >> ${log_file} 2>&1
+ for b in ${branches}
+ do
+ log git co ${b}
+ ${git} co ${b} >> ${log_file} 2>&1
+ log git pull
+ ${git} pull >> ${log_file} 2>&1
+ hash=`${git} log -n 1 --pretty=format:"%H"`
+ build=yes
+ if [ -f ${hash_cache}/${b} ]; then
+ if [ ${hash} = `cat ${hash_cache}/${b}` ]; then
+ build=no
+ fi
+ fi
+ log "Building ${b} : ${build}"
+ if [ ${build} = yes ]; then
+ cwd=$PWD
+ prefix=${output}/${b}
+ log rm -rf ${prefix}
+ rm -rf ${prefix}
+ log mkdir -p ${prefix}
+ mkdir -p ${prefix}
+ log cd ${prefix}
+ cd ${prefix}
+ log "Creating: Doxyfile"
+ top_srcdir=$(echo ${top}/${repo}/cpukit | sed -e 's/\//\\\//g')
+ perl=$(which perl | sed -e 's/\//\\\//g')
+ cat ${top}/${repo}/cpukit/Doxyfile.in | \
+ sed -e "s/@PACKAGE_VERSION@/${release}/g" \
+ -e "s/@top_srcdir@/${top_srcdir}/g" \
+ -e "s/@PERL@/${perl}/g" \
+ -e "s/^INPUT[[:space:]].*=.*$/INPUT = ${top_srcdir}/g" \
+ -e "s/^FULL_PATH_NAMES[[:space:]].*=.*$/FULL_PATH_NAMES = NO/g" \
+ -e "s/^GENERATE_LATEX[[:space:]].*=.*$/GENERATE_LATEX = no/g" \
+ -e "s/^HAVE_DOT[[:blank:]]/DOT_NUM_THREADS = 1\\
+ HAVE_DOT /g"> Doxyfile
+ log "Building: Doxyfile in ${prefix}"
+ ${doxygen} Doxyfile >> ${log_file} 2>&1
+ log cd ..
+ cd ..
+ log rm -rf tmp
+ rm -rf tmp
+ log mv ${b} tmp
+ mv ${b} tmp
+ log mv tmp/cpukit_doxy/html ${b}
+ mv tmp/cpukit_doxy/html ${b}
+ log rm -rf tmp
+ rm -rf tmp
+ log cd ${cwd}
+ cd ${cwd}
+ echo ${hash} > ${hash_cache}/${b}
+ echo "${b} ${hash}" >> ${tags}
+ builds=$(expr ${builds} + 1)
+ fi
+ done
+ log cd ${top}
+ cd ${top}
+
+if [ ${builds} -gt 0 ]; then
+ cd output
+ #
+ # Package the builds.
+ #
+ tar zcf ../rtems-doxygen-latest.tar.gz .tags *
+ cp .tags ../rtems-doxygen-latest-tags
+ cd .
+fi
+
+exit 0
diff --git a/doxygen/builder/rtems-doxygen-build-cron b/doxygen/builder/rtems-doxygen-build-cron
new file mode 100755
index 0000000..f49425a
--- /dev/null
+++ b/doxygen/builder/rtems-doxygen-build-cron
@@ -0,0 +1,23 @@
+#! /bin/sh
+#
+# RTEMS Documentation Project
+#
+# Copyright 2017 Chris Johns <chrisj@rtems.org>
+# All rights reserved
+#
+# Public domain
+#
+
+#
+# Exit on error.
+#
+set -e
+
+#
+# We run where the script is located.
+#
+cd $(dirname $0)
+
+./rtems-doxygen-upload
+
+exit 0
diff --git a/doxygen/builder/rtems-doxygen-upload b/doxygen/builder/rtems-doxygen-upload
new file mode 100755
index 0000000..f9cb7d8
--- /dev/null
+++ b/doxygen/builder/rtems-doxygen-upload
@@ -0,0 +1,61 @@
+#! /bin/sh
+#
+# RTEMS Documentation Project
+#
+# Copyright 2017 Chris Johns <chrisj@rtems.org>
+# All rights reserved
+#
+# Public domain
+#
+
+#
+# Exit on error.
+#
+set -e
+
+#
+# Executables
+#
+mkdir=/bin/mkdir
+
+#
+# Handover path.
+#
+handover=/data/ftp/pub/rtems/people/chrisj/docs.rtems.org/doxygen
+
+#
+# We run where the script is located.
+#
+cd $(dirname $0)
+
+#
+# If no update directory create it.
+#
+if [ ! -d latest ]; then
+ ${mkdir} latest
+fi
+
+cd latest
+ #../rtems-doxygen-build-branches
+ if [ -f rtems-doxygen-latest.tar.gz ] && [ -f rtems-doxygen-latest-tags ]; then
+ if [ ! -d ${handover} ]; then
+ ${mkdir} -p ${handover}
+ fi
+ #
+ # Empty the directory.
+ #
+ rm -rf ${handover}/*
+ #
+ # Copy to a holding directory on the destination file system and then move
+ # the files. The move will be quick while the move to the file system will be
+ # a slower copy and may result in the otherside looking at a partially copied
+ # file.
+ #
+ ${mkdir} -p ${handover}/hold
+ mv rtems-doxygen-latest.tar.gz rtems-doxygen-latest-tags ${handover}/hold/
+ mv ${handover}/hold/* ${handover}/
+ rm -rf ${handover}/hold
+ fi
+ cd ..
+
+exit 0