AlloSphere-Research-Group / AlloSystem

AlloSystem is a cross-platform suite of C++ components for building interactive multimedia tools and applications.
http://mat.ucsb.edu/allosphere/software.php
BSD 3-Clause "New" or "Revised" License
65 stars 22 forks source link

Makefile "doc" rule #22

Closed LancePutnam closed 10 years ago

LancePutnam commented 10 years ago

I believe someone (Matt?) had at some point mentioned creating a Makefile rule to run doxygen and create documentation for all the AlloSystem modules. However, I can't find it in any of the branches. If this exists somewhere out there, is there any chance it can find its way into the devel branch?

matthewjameswright commented 10 years ago

Karl talked me out of considering this part of the build/Makefile system, so I made a standalone "docs.sh" --- my most Makefile-esque bash script ever:

which doxygen || echo You need to install doxygen. type \"brew install doxygen\" in the terminal.

if [ which apt-get 2>/dev/null ]; then xdg-open AlloSystem/doc/www/doxy/html/index.html || (pushd AlloSystem/doc && doxygen Doxyfile && popd && xdg-open AlloSystem/doc/www/doxy/html/index.html) xdg-open Gamma/doc/html/index.html || (pushd Gamma/doc && doxygen Doxyfile && popd && xdg-open Gamma/doc/html/index.html) xdg-open GLV/doc/html/index.html || (pushd GLV/doc && doxygen Doxyfile && popd && xdg-open GLV/doc/html/index.html) else open AlloSystem/doc/www/doxy/html/index.html || (pushd AlloSystem/doc && doxygen Doxyfile && popd && open AlloSystem/doc/www/doxy/html/index.html) open Gamma/doc/html/index.html || (pushd Gamma/doc && doxygen Doxyfile && popd && open Gamma/doc/html/index.html) open GLV/doc/html/index.html || (pushd GLV/doc && doxygen Doxyfile && popd && open GLV/doc/html/index.html) fi

LancePutnam commented 10 years ago

Thanks.

It looks like this is placed one directory above allosystem/. It should just go directly in allosystem/ along with the main make file, no?

Also, would it make sense to automatically install doxygen if necessary?

matthewjameswright commented 10 years ago

The script is designed to go at the top level of AlloProject: git@github.com:AlloSphere-Research-Group/AlloProject.git

For historical reasons (Lance) although Gamma and GLV are "part of AlloSystem", they live in separate repos that must be beside the AlloSystem/ repo, hence the need for yet another level of holding the thing that holds the thing that holds allocore.

Of course just as there are Makefiles "all the way down" (just like the turtles), there could also be "show me the documentation" scripts that live inside each of AlloSystem, Gamma, and GLV.

I'm not sure I like automatically installing packages in a script that just tries to view the documentation. For class we just build the Doxygen and give students a course repo with the documentation already built. If anything I'd add doxygen to install-dependencies.

mantaraya36 commented 10 years ago

I'm closing the issue as it seems resolved.