
# All of the SCAT commands
CMDS = nodeset createnode nodels listrange expandtree listmac showcluster restorecluster deletenode nodetype

# common files referenced by just about everyone
COMMON = pathnames.asd cl-cli.asd config.lisp config.asd
all: $(CMDS)

.PHONY: all

## make sure the source dir is set up correctly - shouldn't need these, but its CYA mode
pathnames.asd: pathnames/pathnames.asd
	ln -s pathnames/pathnames.asd pathnames.asd

cl-cli.asd: cl-cli/cl-cli.asd
	ln -s cl-cli/cl-cli.asd cl-cli.asd

## Actual command building
nodeset: $(COMMON) nodeset.lisp Build-Nodeset.lisp scatlib.lisp nodeset.asd
	sbcl --load ./Build-Nodeset.lisp 

nodetype: $(COMMON) nodetype.lisp Build-Nodetype.lisp scatlib.lisp nodetype.asd
	sbcl --load ./Build-Nodetype.lisp 

nodels: $(COMMON) nodels.lisp config.lisp Build-Nodels.lisp scatlib.lisp
	  sbcl --load ./Build-Nodels.lisp 

listmac: $(COMMON) listmac.lisp config.lisp Build-Listmac.lisp scatlib.lisp
	  sbcl --load ./Build-Listmac.lisp 

showcluster: $(COMMON) showcluster.lisp config.lisp Build-Showcluster.lisp scatlib.lisp
	  sbcl --load ./Build-Showcluster.lisp 

restorecluster: $(COMMON) restorecluster.lisp config.lisp Build-Showcluster.lisp scatlib.lisp
	  sbcl --load ./Build-Restorecluster.lisp 

listrange: $(COMMON) listrange.lisp config.lisp Build-Listrange.lisp scatlib.lisp
	  sbcl --load ./Build-Listrange.lisp 

createnode: $(COMMON) createnode.lisp config.lisp Build-Create_Node.lisp scatlib.lisp
	  sbcl --load ./Build-Create_Node.lisp 

deletenode: $(COMMON) deletenode.lisp config.lisp Build-Delete_Node.lisp scatlib.lisp
	  sbcl --load ./Build-Delete_Node.lisp 

expandtree: $(COMMON) listrange.lisp config.lisp Build-Expandtree.lisp scatlib.lisp
	sbcl --load ./Build-Expandtree.lisp 

## These two aren't anywhere near done yet.  Don't even build them by default :P
nodeset-GUI: $(COMMON) nodeset-GUI.lisp config.lisp Build-Nodeset.lisp scatlib.lisp
	sbcl --load ./Build-Nodeset-GUI.lisp 

installer: $(COMMON) installer.lisp config.lisp Build-Installer.lisp scatlib.lisp
	sbcl --load ./Build-Installer.lisp 

install: all
	mkdir -p /opt/scat/bin/
	cp $(CMDS) /opt/scat/bin/
	mkdir -p /opt/scat/etc/
	cp etc/Scat.cfg /opt/scat/etc/

clean:
	rm -rf *~ *.fasl */*.fasl $(CMDS)

