#%ARCHIVE = libgeneral_server.a
#%DEPENDS = ref_count_ptr ip_address stream_socket option_analyzer compat_stringstream iostream_extension system_call_wrapper std_compat_header_wrapper posix_compat

CXX          = ../../bin/g++w
MAKE_ARCHIVE = ../../bin/make-archive
CHDIR        = cd
RM           = rm

INCLUDES = -I../ip_address/include -I../ref_count_ptr/include \
	   -I../stream_socket/include -I../option_analyzer \
	   -I../compat_stringstream/include -I../iostream_extension/include \
	   -I../system_call_wrapper/include \
	   -I../std_compat_header_wrapper/include \
	   -I../posix_compat/include

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

OBJS = general_server.o process_environment.o
SAMPLES = sample_server echo_server


all: libgeneral_server.a

library: libgeneral_server.a

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

libgeneral_server.a: $(OBJS)
	$(MAKE_ARCHIVE) libgeneral_server.a $(OBJS)

clean:
	$(RM) -f *.o libgeneral_server.a
	@for sample in $(SAMPLES); \
	do \
		($(CHDIR) $${sample} && $(MAKE) clean) \
	done


.PHONY: all library library-lean clean


##
general_server.o: general_server.h general_server.cc \
		  general_server_interpreter.h \
		  general_server_default_action.h \

process_environment.o: process_environment.cc process_environment.h
