
# Makefile for voxbo scheduler and related executables

-include ../make_vars.txt
include ../make_stuff.txt

LIBS=$(LDFLAGS) $(LIBDIRS) -lvbprefs -lvbutil -lz
XXOUT=vbsingle vbsubmit
ALLBINS=voxbo vbsrvd voxq vbq vq vbconf idlfree vblock vbprefs

ifeq ($(VB_TARGET),all)
	BINS=$(ALLBINS)
else
	BINS=
endif

all: $(BINS)

install: $(BINS)
ifdef BINS
	cp -Pf $(BINS) $(VB_BINDIR)
else
	@echo "Nothing to install."
endif

clean:
	rm -f $(CLEANME) $(ALLBINS)

$(VBLIBS):
	+make -C ../lib $@

# here are all the executables

voxbo: voxbo.o schedlib.o $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o voxbo voxbo.o schedlib.o $(LIBS)

vbsrvd: vbsrvd.o $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o vbsrvd vbsrvd.o $(LIBS)

vbprefs: vbprefsutil.cpp $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o vbprefs vbprefsutil.cpp $(LIBS)

vbsingle: vbsingle.o voxbo.o $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o vbsingle vbsingle.o voxbo.o -lreadline -lcurses $(LIBS)

vbsubmit: vbsubmit.o $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o vbsubmit vbsubmit.o $(LIBS)

vbsubmit_private: vbsubmit_private.o $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o vbsubmit_private vbsubmit_private.o $(LIBS)

voxq: voxq.o $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o voxq voxq.o $(LIBS)

vbq: voxq
	ln -sf ./voxq vbq

vq: voxq
	ln -sf ./voxq vq

idlfree: idlfree.o $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o idlfree idlfree.o $(LIBS)

vblock: vblock.cpp $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o vblock vblock.cpp $(CXXFLAGS) $(LIBS)

vbconf: vbconf.cpp $(VBLIBS)
	$(CXX) $(CXXFLAGS) -o vbconf vbconf.cpp $(LIBS)

# and now for the building blocks

vbsrvd.o: vbsrvd.cpp
	$(CXX) $(CXXFLAGS) -c -o vbsrvd.o vbsrvd.cpp

vbsubmit.o: vbsubmit.cpp
	$(CXX) $(CXXFLAGS) -c -o vbsubmit.o vbsubmit.cpp

vbsubmit_private.o: vbsubmit_private.cpp
	$(CXX) $(CXXFLAGS) -c -o vbsubmit_private.o vbsubmit_private.cpp

vbsingle.o: vbsingle.cpp
	$(CXX) $(CXXFLAGS) -c -o vbsingle.o vbsingle.cpp

voxq.o: voxq.cpp
	$(VBRC) voxq.hlp.h -help1 voxq1.hlp -help2 voxq2.hlp
	$(CXX) $(CXXFLAGS) -c -o voxq.o voxq.cpp

voxbo.o: voxbo.cpp
	$(CXX) $(CXXFLAGS) -c -o voxbo.o voxbo.cpp

schedlib.o: schedlib.cpp
	$(CXX) $(CXXFLAGS) -c -o schedlib.o schedlib.cpp

processvbx.o: processvbx.cpp
	$(CXX) $(CXXFLAGS) -c -o processvbx.o processvbx.cpp

idlfree.o: idlfree.cpp
	$(CXX) $(CXXFLAGS) -c -o idlfree.o idlfree.cpp
