/*
 * aegis - project change supervisor
 * Copyright (C) 2002, 2006-2008 Peter Miller
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or (at
 * your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */

doxygen = [find_command doxygen];
if [doxygen] then
        all += doxygen-targets;

doxygen-targets:
        archive/doxygen-html/index.html
        ;

archive/doxygen-html/-files =
        [match_mask common/%0%.h [source_files]]
        [match_mask libaegis/%0%.h [source_files]]
        /*
         * Each of these need a slightly different include path,
         * so I'll leave them out for now.  Maybe later.
         *
        [match_mask aegis/%0%.h [source_files]]
        [match_mask aedist/%0%.h [source_files]]
        [match_mask aefind/%0%.h [source_files]]
        [match_mask aepatch/%0%.h [source_files]]
        [match_mask aesub/%0%.h [source_files]]
        [match_mask aetar/%0%.h [source_files]]
        */
        ;

archive/doxygen-html/index.html: [archive/doxygen-html/-files] etc/doxygen.cfg
{
        rm -rf archive/doxygen-html doxygen-tmp;
        cat [resolve etc/doxygen.cfg] - > Doxyfile;
data
# The OUTPUT_DIRECTORY tag is used to specify the (relative or
# absolute) base path where the generated documentation will be
# put.  If a relative path is entered, it will be relative to the
# location where doxygen was started. If left blank the current
# directory will be used.
OUTPUT_DIRECTORY       = doxygen-tmp

# documented source files. You may enter file names like "myfile.cpp"
# or directories like "/usr/src/myproject". Separate the files or
# directories with spaces.
INPUT = [unsplit " \\\n" [resolve [stringset [need] - etc/doxygen.cfg]]]

# The PROJECT_NUMBER tag can be used to enter a project or revision
# number.  This could be handy for archiving the generated
# documentation or if some version control system is used.
PROJECT_NUMBER = [version]

# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by
# the preprocessor.
INCLUDE_PATH = [unsplit " \\\n"
    [fromto -I%0% %0%
        [cc_include_flags]
    ]
]
dataend
        [doxygen] Doxyfile -d archive/doxygen-html
                                                /*
                                                 * Have Cook tell us how long
                                                 * it takes to cook.
                                                 */
                                                set meter
                ;
        rm -rf archive/doxygen-htm;
        mv doxygen-tmp/html archive/doxygen-html;
        rm -rf Doxyfile doxygen-tmp
                set errok ;
}
