include ../Make.def

#
# Solaris Intel
#
ifeq ($(DEST), Solaris_Intel)
LIBNAME=libqpthr.so
LDFLAGS=-pta -mt
LDLIB=-lposix4 -lpthread
CFLAGS=-g -pta -mt -D_REENTRANT -DSUNWSPRO42 -I../$(STL_INC) -I..
CXX=CC
endif

#
# Linux Intel
#
ifeq ($(DEST), Linux_Intel)
LIBNAME=libqpthr.so.0
LDFLAGS=
LDLIB=-lpthread -lstdc++
CFLAGS=-g -D_REENTRANT -DEGCS111 -I..
CXX=g++
endif

#
# DEC Alpha
#
ifeq ($(DEST), OSF1_Alpha)
LIBNAME=libqpthr.so
LDFLAGS=
LDLIB=-lrt -pthread
CFLAGS=-g -pta -pthread -D_REENTRANT -DDECCXX60 -I..
CXX=cxx
endif

#LIBNAME=libqpthr.a

QPTHRLIB=-lqpthr

PROG=hello hellorun synchperf queue sleep hellopool signal timer pool cancel \
	threadtest stack once tsd

all: ${PROG}


.cc.o:
	$(CXX) ${CFLAGS} -c -o $@ $<


hello: hello.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

hellorun: hellorun.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

synchperf: synchperf.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

queue: queue.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

sleep: sleep.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

hellopool: hellopool.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

signal: signal.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB) -lm

timer: timer.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

pool: pool.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

cancel: cancel.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

threadtest: threadtest.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

stack: stack.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

once: once.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

tsd: tsd.o ../$(LIBNAME)
	$(CXX) ${LDFLAGS} -o $@ $< -L.. $(QPTHRLIB) $(LDLIB)

clean:
	rm -rf *.o core a.out Templates.DB cxx_repository ${PROG}
