CC=cc
FMQC_CC_FLAGS=-c -Xt -DFMQC_VER -DNO_EPAPI -I. -I../../../../iprivate \
-I../../../../../../../fci/iproduct \
-I../../../../../../../ut/iproduct \
-I../../../../../../../ut/ports/unix/sysv/solaris

MQSR_CC_FLAGS=-c -Xt -I. -I/opt/mqm/inc -DMQSR_VER -I. -I../../../../iprivate \
-I../../../../../../../fci/iproduct \
-I../../../../../../../ut/iproduct \
-I../../../../../../../ut/ports/unix/sysv/solaris

FMQC_LINK_FLAGS=-L../../../../../../lib/release -lthread -lfmqdc -lsocket -lnsl
MQSR_LINK_FLAGS=-mt -lmqm -lmqmcs -lmqmzse -lsocket -lnsl -ldl
FMQC_TARGET=../../../../../../bin/release/fmqcbench
MQSR_TARGET=../../../../../../bin/release/mqsrbench
FMQC_DEPENDENCIES=fmqcobj/mqbench.o fmqcobj/msmqver.o fmqcobj/osspsfc.o
MQSR_DEPENDENCIES=mqsrobj/mqbench.o mqsrobj/mqsrver.o mqsrobj/osspsfc.o
FMQC_LIB=../../../../../../lib/release/libfmqdc.a

all: $(FMQC_TARGET) $(MQSR_TARGET)

clean:  
	rm $(FMQC_DEPENDENCIES) $(MQSR_DEPENDENCIES) $(FMQC_TARGET) $(MQSR_TARGET) 

RELEASE_DIR_DEPENDENCIES=$(BIN_DIR)/. $(BIN_RELEASE_DIR)/.

$(FMQC_TARGET): $(RELEASE_DIR_DEPENDENCIES) fmqcobj/. $(FMQC_DEPENDENCIES) $(FMQC_LIB)
	$(CC) -o $@ $(FMQC_DEPENDENCIES) $(FMQC_LINK_FLAGS)

$(MQSR_TARGET): $(RELEASE_DIR_DEPENDENCIES) mqsrobj/. $(MQSR_DEPENDENCIES) 
	$(CC) -o $@ $(MQSR_DEPENDENCIES) $(MQSR_LINK_FLAGS)

$(BIN_DIR)/.:
	mkdir $(BIN_DIR)

$(BIN_RELEASE_DIR)/.:
	mkdir $(BIN_RELEASE_DIR)

fmqcobj/.:
	mkdir fmqcobj

fmqcobj/mqbench.o: ../../../../code/mqbench.c
	$(CC) $(FMQC_CC_FLAGS) $? -o $@

fmqcobj/msmqver.o: ../../../../code/msmqver.cpp
	cp ../../../../code/msmqver.cpp ../../../../code/msmqver.c
	$(CC) $(FMQC_CC_FLAGS) ../../../../code/msmqver.c -o $@

fmqcobj/osspsfc.o: osspsfc.c
	$(CC) $(FMQC_CC_FLAGS) $? -o $@

mqsrobj/.:
	mkdir mqsrobj

mqsrobj/mqbench.o: ../../../../code/mqbench.c
	$(CC) $(MQSR_CC_FLAGS) $? -o $@

mqsrobj/mqsrver.o: ../../../../code/mqsrver.c
	$(CC) $(MQSR_CC_FLAGS) $? -o $@

mqsrobj/osspsfc.o: osspsfc.c
	$(CC) $(MQSR_CC_FLAGS) $? -o $@
