#%DEPENDS = std_compat_header_wrapper iostream_extension system_call_wrapper path unit_test

CXX = ../../bin/g++w
RM  = rm
CHDIR = cd

INCLUDES = -I../std_compat_header_wrapper/include \
	   -I../iostream_extension/include \
	   -I../system_call_wrapper/include \
	   -I../unit_test/include

CXXFLAGS = -g $(CCXXOPTFLAGS) $(CXXOPTFLAGS) $(INCLUDES) \
	      $(CCXXADDITIONALFLAGS) $(CXXADDITIONALFLAGS)

LDFLAGS = $(LDADDITIONALFLAGS) \
	  -L../system_call_wrapper -lsystem_call_wrapper \
	  -L../path -lpath \
	  -L../string_extension -lstring_extension

all: check

library:

library-lean:
	$(RM) -f *.o

comstream-test: comstream-test.o comstream.h commandbuf.h \
		../system_call_wrapper/libsystem_call_wrapper.a \
		../path/libpath.a \
		../string_extension/string_extension.a
	$(CXX) -o comstream-test comstream-test.o $(CXXFLAGS) $(LDFLAGS)

comstream-redirect-test: comstream-redirect-test.o comstream.h commandbuf.h \
		../system_call_wrapper/libsystem_call_wrapper.a \
		../path/libpath.a \
		../string_extension/string_extension.a
	$(CXX) -o comstream-redirect-test comstream-redirect-test.o \
		$(CXXFLAGS) $(LDFLAGS)

../system_call_wrapper/libsystem_call_wrapper.a:
	($(CHDIR) ../system_call_wrapper && $(MAKE))

../path/libpath.a:
	($(CHDIR) ../path && $(MAKE))

../string_extension/string_extension.a:
	($(CHDIR) ../string_extension && $(MAKE))


check: comstream-test comstream-redirect-test
	./comstream-test
	./comstream-redirect-test

clean:
	$(RM) -f *.o comstream-test comstream-redirect-test test-file

.PHONY: all library library-lean build-test check clean

##
comstream-test.o: comstream-test.cc commandbuf.h comstream.h
comstream-redirect-test.o: comstream-redirect-test.cc commandbuf.h comstream.h
