
CLASSES = EdgeQueue_Win InputLoader_TestA

LIB = 
RUNS = testA testB testC testD testE testF \
	testWinB testWinC testWinD testWinE \
	testMsa testMsaMT oma \
	testFacetrie testTrie testTrieGraycode \
	testTypeinfo testHash testDMatrix testCpp \
	testLibdca testDcaA \

RUN = oma

EXTRAOBJS = $(addsuffix .o,$(RUN))

LIBUSE_FLAGS=-lgsa -ltypes -lzinc -lm -lL

LIB_SUBDIRS = zinc types gsa dca

STATIC_LIBS = $(addprefix lib, $(addsuffix .a,$(LIB_SUBDIRS)))

all: $(RUN)

runs: $(RUNS)

include Make.general
include Make.$(HOST)
#include Make.depend

Make.$(HOST):
	@echo ---------- ---------- ---------- ---------- ---------- ----------
	@echo - WARNING: Make.(HOST) WAS MISSING. CREATED A STD-TECHFAK LINK! -
	@echo ---------- ---------- ---------- ---------- ---------- ----------
	ln -s Make.techfak Make.$(HOST)

libs: $(STATIC_LIBS)

libzinc.a:
	$(MAKE) $(MAKE_FLAGS) -C zinc all

libtypes.a:
	$(MAKE) $(MAKE_FLAGS) -C types all

libgsa.a:
	$(MAKE) $(MAKE_FLAGS) -C gsa all

libdca.a:
	$(MAKE) $(MAKE_FLAGS) -C dca all


testLibdca: testLibdca.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS) -ldca

testDcaA: testDcaA.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS) -ldca

testB: testB.o InputLoader_TestA.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS)

testA: testA.o InputLoader_TestA.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS)

testC: testC.o InputLoader_TestA.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS) -ldca

testD: testD.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS) -ldca

testE: testE.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS) -ldca

testF: testF.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS) -ldca

oma: oma.o
	$(CPPCOMPILER) -o $@ $^  -lpthread $(LINKFLAGS) -ldca

testMsa: testMsa.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS) -ldca 

testMsaMT: testMsaMT.o
	$(CPPCOMPILER) -o $@ $^ -lpthread $(LINKFLAGS) -ldca 

testWinB: testWinB.o EdgeQueue_Win.o InputLoader_TestA.o
	$(CPPCOMPILER) -o $@ $^ -lW -lP -lG -lX11 -L/vol/X11/lib -lsocket $(LINKFLAGS) -R/vol/X11/lib

testWinC: testWinC.o EdgeQueue_Win.o InputLoader_TestA.o
	$(CPPCOMPILER) -o $@ $^ -lW -lP -lG -lX11 -L/vol/X11/lib -lsocket $(LINKFLAGS) -ldca -R/vol/X11/lib 

testWinD: testWinD.o EdgeQueue_Win.o
	$(CPPCOMPILER) -o $@ $^ -lW -lP -lG -lX11 -L/vol/X11/lib -lsocket $(LINKFLAGS) -ldca -R/vol/X11/lib 

testWinE: testWinE.o EdgeQueue_Win.o
	$(CPPCOMPILER) -o $@ $^ -lW -lP -lG -lX11 -L/vol/X11/lib -lsocket $(LINKFLAGS) -ldca -R/vol/X11/lib 

testDMatrix: testDMatrix.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS)

testFacetrie: testFacetrie.o
	$(CPPCOMPILER) -o $@ $^ $(LINKFLAGS)



allclean: clean
	for i in $(LIB_SUBDIRS) ;\
	do \
		$(MAKE) -C $$i clean; \
	done
	rm -f $(OBJS) $(addsuffix .o, $(RUNS))
	rm -f gsa2.aux *.BAK *~ *.tmp core

allmrproper: mrproper allclean
	for i in $(LIB_SUBDIRS) ;\
	do \
		$(MAKE) -C $$i mrproper; \
	done
	rm -f $(OBJS) $(RUNS) $(addsuffix .o, $(RUNS)) a.out 
	rm -f *.errs gsa2.tex gsa2.aux gsa2.dvi 
	rm -Rf .sb 

html:
	$(DOCXX)  -p -d dxx -G -a -B dxxfooter.txt gsa types zinc

tex:
	$(DOCXX)  -t -ep a4wide -p -o gsa2.tex gsa types zinc

gsa2.tex: tex

dvi: gsa2.tex
	latex gsa2.tex
	latex gsa2.tex

ps: dxx/gsa2.dvi
	dvi2ps -o gsa2.ps gsa2.dvi

