all: gui-proto-pthread gui-proto-fibre gui-proto-cforall

PRECIOUS: thrdlib/libthrd-pthread.so thrdlib/libthrd-fibre.so thrdlib/libthrd-cforall.so

CXXFLAGS = -fpic -g -O0 -I.

thrdlib/libthrd-%.so:
	+${MAKE} -C thrdlib libthrd-$*.so

gui-proto-%: proto-gui/main.o thrdlib/libthrd-%.so Makefile
	$(CXX) -Lthrdlib -Wl,--rpath,thrdlib -pthread -o $@ $< -lthrd-$*

CFAINC=${HOME}/local/include/cfa-dev
CFALIB=${HOME}/local/lib/cfa-dev/x64-debug
CFAFLAGS=-z execstack -ftls-model=initial-exec -L${CFALIB} -Wl,-rpath,${CFALIB}

gui-proto-cforall: proto-gui/main.o thrdlib/libthrd-cforall.so Makefile
	$(CXX) -Lthrdlib -Wl,--rpath,thrdlib ${CFAFLAGS} -pthread -o $@ $< -lthrd-cforall -Wl,--push-state,--no-as-needed -lcfathread -lcfa -ldl -lm -Wl,--pop-state