# The lines below extract out program names from the cmake cache # This is used to automatically generate a documentation page. C_ = $(shell sed -n -e 's/;/ /g' \ -e 's/SOLVER_EXECUTABLES:STRING=//gp' \ -e 's/PROGRAMS:STRING=//gp' \ build/CMakeCache.txt) C = $(addprefix bin/, $(C_)) Python_ = $(shell sed -n -e 's/;/ /g' \ -e 's/PYs:STRING=//gp' \ build/CMakeCache.txt) Python = $(addprefix bin/, $(Python_)) scripts_ = $(shell sed -n -e 's/;/ /g' \ -e 's/SCRIPTS:STRING=//gp' \ build/CMakeCache.txt) scripts = $(addprefix bin/, $(scripts_)) GUIs_ = $(shell sed -n -e 's/;/ /g' \ -e 's/GUIs:STRING=//gp' \ build/CMakeCache.txt) GUIs = $(addprefix bin/, $(GUIs_)) PWD := $(shell pwd) help: @echo "Makefile options:" @echo " make fab Compile all files and copy scripts from src to bin" @echo " make doc Saves command names and docstrings into commands.html" @echo " make zip Bundles relevant files in fab.zip" @echo " make dist Copies files to Web directory" @echo " make install Copies files to /usr/local/bin" @echo " make clean Removes compiled executables and scripts from bin" @echo " make wxpython2.9 Downloads, compiles, and installs wxpython 2.9.4.1" @echo " (Linux only)" fab: @echo "Building with CMake" @mkdir -p build @cd build; \ cmake ../src; \ make -j4; \ make install | sed "s@$(PWD)/src/../@@g" doc: commands.html commands.html: fab @# Dump all of the command names @echo " Storing command names" @echo "\n
\n\ncommands:" > commands.html @for name in $(C) $(scripts) $(GUIs); do \ echo " "$$name >> commands.html; \ done @echo "" >> commands.html @# Dump command docstrings @echo " Storing command docstrings" @for name in $(C) $(scripts) ; do \ ./$$name >> commands.html; \ echo "" >> commands.html; \ done zip: commands.html rm -f fab_src.zip rm -rf src/apps/dist rm -rf src/apps/build # @echo "Copying revision number to kokopelli About panel" # @if which hg &>/dev/null && hg summary &> /dev/null; \ # then \ # sed "s/CHANGESET = .*/CHANGESET = '`hg id --num`:`hg id --id`'/g" \ # src/guis/koko/__init__.py > tmp; \ # mv tmp src/guis/koko/__init__.py; \ # fi zip -r fab_src.zip commands.html Makefile src # @sed "s/CHANGESET = .*/CHANGESET = None/g" \ # src/guis/koko/__init__.py > tmp; \ # mv tmp src/guis/koko/__init__.py; \ dist: zip cp fab_src.zip ../../Web/fab_src.zip cp commands.html ../../Web/ sed -e "s/Snapshot from [^\)]*/Snapshot from `date '+%B %d, %Y, %I:%M%p'`/g" \ ../../Web/downloads.html > ../../Web/_downloads.html mv ../../Web/_downloads.html ../../Web/downloads.html install: fab @echo "Installing executables and scripts to /usr/local/bin" @if [ -e "/usr/local/bin/fab_send" ]; \ then \ mv /usr/local/bin/fab_send /usr/local/bin/fab_send.old; \ fi @cp -r bin/* /usr/local/bin/ @if [ -e "/usr/local/bin/fab_send.old" ]; \ then \ mv /usr/local/bin/fab_send /usr/local/bin/fab_send.new; \ mv /usr/local/bin/fab_send.old /usr/local/bin/fab_send; \ echo "Note:"; \ echo " Pre-existing fab_send has not been overwritten, and"; \ echo " the new version of fab_send has been named fab_send.new"; \ fi clean: @echo "Deleting build directory" @rm -rf build