include ../../Makefile.config

COMPILE_FLAGS = -classpath ../..:$(CLASSPATH)
JAVAC = $(J_COMPILER) $(COMPILE_FLAGS)

SRC_COMMON = \
	src/GenericServlet.java \
	src/Servlet.java \
	src/ServletConfig.java \
	src/ServletContext.java \
	src/ServletException.java \
	src/ServletInputStream.java \
	src/ServletOutputStream.java \
	src/ServletRequest.java \
	src/ServletResponse.java \
	src/SingleThreadModel.java \
	src/UnavailableException.java

OBJ_COMMON =  \
	GenericServlet.java \
	Servlet.java \
	ServletConfig.java \
	ServletContext.java \
	ServletException.java \
	ServletInputStream.java \
	ServletOutputStream.java \
	ServletRequest.java \
	ServletResponse.java \
	SingleThreadModel.java \
	UnavailableException.java

default	:
	@ echo '' \
	&& echo 'Make either "servlet_2_0", "servlet_intl_2_0", "servlet_2_1", "servlet_intl_2_1", "servlet_2_2" or "servlet_intl_2_0"' \
	&& echo ''

################################################################################
#
#	servlet 2.0
#
################################################################################

servlet_2_0	:
	make src_servlet_2_0 \
	&& make obj_servlet_2_0 \
	&& cd http \
	&& make src_servlet_2_0 \
	&& make obj_servlet_2_0

src_servlet_2_0	:
	java -classpath ../../util:$(CLASSPATH) GenerateSource -d . -t SERVLET_2_0 $(SRC_COMMON)

obj_servlet_2_0	:
	$(JAVAC) $(OBJ_COMMON)

################################################################################
#
#	servlet international 2.0
#
################################################################################

servlet_intl_2_0	:
	make src_servlet_intl_2_0 \
	&& make obj_servlet_intl_2_0 \
	&& cd http \
	&& make src_servlet_intl_2_0 \
	&& make obj_servlet_intl_2_0

src_servlet_intl_2_0	:
	java -classpath ../../util:$(CLASSPATH) GenerateSource -d . -t SERVLET_2_0 -t INTL $(SRC_COMMON)

obj_servlet_intl_2_0	:
	$(JAVAC) $(OBJ_COMMON)
	
################################################################################
#
#	servlet jserv
#
################################################################################

SRC_SERVLET_JSERV = src/RequestDispatcher.java

OBJ_SERVLET_JSERV = RequestDispatcher.java

servlet_jserv	:
	make src_servlet_jserv \
	&& make obj_servlet_jserv \
	&& cd http \
	&& make src_servlet_jserv \
	&& make obj_servlet_jserv \
	&& cd .. \
	&& cd jsp \
	&& make jsp_1_1

src_servlet_jserv	:
	java -classpath ../../util:$(CLASSPATH) GenerateSource -d . -t SERVLET_2_0 -t INTL $(SRC_COMMON) $(SRC_SERVLET_JSERV)

obj_servlet_jserv	:
	$(JAVAC) $(OBJ_COMMON) $(OBJ_SERVLET_JSERV)
	
################################################################################
#
#		servlet 2.1
#
################################################################################

SRC_SERVLET_2_1 = src/RequestDispatcher.java

OBJ_SERVLET_2_1 = RequestDispatcher.java

servlet_2_1	:
	make src_servlet_2_1 \
	&& make obj_servlet_2_1 \
	&& cd http \
	&& make src_servlet_2_1 \
	&& make obj_servlet_2_1 \
	&& cd .. \
	&& cd jsp \
	&& make jsp_1_1

src_servlet_2_1 :
	java -classpath ../../util:$(CLASSPATH) GenerateSource -d . -t SERVLET_2_1 $(SRC_COMMON) $(SRC_SERVLET_2_1)
	
obj_servlet_2_1	:
	$(JAVAC) $(OBJ_COMMON) $(OBJ_SERVLET_2_1)

################################################################################
#
#		servlet international 2.1
#
################################################################################

SRC_SERVLET_INTL_2_1 = $(SRC_SERVLET_2_1)

OBJ_SERVLET_INTL_2_1 = $(OBJ_SERVLET_2_1)

servlet_intl_2_1 :
	make src_servlet_intl_2_1 \
	&& make obj_servlet_intl_2_1 \
	&& cd http \
	&& make src_servlet_intl_2_1 \
	&& make obj_servlet_intl_2_1 \
	&& cd .. \
	&& cd jsp \
	&& make jsp_1_1

src_servlet_intl_2_1 :
	java -classpath ../../util:$(CLASSPATH) GenerateSource -d . -t SERVLET_2_1 -t INTL $(SRC_COMMON) $(SRC_SERVLET_INTL_2_1)
	
obj_servlet_intl_2_1	:
	$(JAVAC) $(OBJ_COMMON) $(OBJ_SERVLET_INTL_2_1)

	
################################################################################
#
#		servlet 2.2
#
################################################################################

SRC_SERVLET_2_2 = $(SRC_COMMON) $(SRC_SERVLET_2_1)

OBJ_SERVLET_2_2 = $(OBJ_COMMON) $(OBJ_SERVLET_2_1)

servlet_2_2	:
	make src_servlet_2_2 \
	&& make obj_servlet_2_2 \
	&& cd http \
	&& make src_servlet_2_2 \
	&& make obj_servlet_2_2 \
	&& cd .. \
	&& cd jsp \
	&& make jsp_1_1

src_servlet_2_2 :
	java -classpath ../../util:$(CLASSPATH) GenerateSource -d . -t SERVLET_2_2 $(SRC_SERVLET_2_2)
	
obj_servlet_2_2	:
	$(JAVAC) $(OBJ_SERVLET_2_2)

################################################################################
#
#		servlet international 2.2
#
################################################################################

SRC_SERVLET_INTL_2_2 = $(SRC_COMMON) $(SRC_SERVLET_2_1)

OBJ_SERVLET_INTL_2_2 = $(OBJ_COMMON) $(OBJ_SERVLET_2_1)

servlet_intl_2_2 :
	make src_servlet_intl_2_2 \
	&& make obj_servlet_intl_2_2 \
	&& cd http \
	&& make src_servlet_intl_2_2 \
	&& make obj_servlet_intl_2_2 \
	&& cd .. \
	&& cd jsp \
	&& make jsp_1_1

src_servlet_intl_2_2 :
	java -classpath ../../util:$(CLASSPATH) GenerateSource -d . -t SERVLET_2_2 -t INTL $(SRC_SERVLET_INTL_2_2)
	
obj_servlet_intl_2_2	:
	$(JAVAC) $(OBJ_SERVLET_INTL_2_2)

	
################################################################################
#
#		common
#
################################################################################

.PHONY	: clean

clean:
	rm -f *.java *.class \
	&& cd http \
	&& make clean \
	&& cd .. \
	&& cd jsp \
	&& make clean
