# Copyright (c) 1998-2008 by Wayne C. Gramlich.
# All rights reserved.

ROOT = ..

include $(ROOT)/Makefile_common.mk
include $(ROOT)/Makefile_private.mk

STIPPLE_DIRECTORY = $(ROOT)/stipple
STC_DIRECTORY = $(STIPPLE_DIRECTORY)/stc
NSTC_DIRECTORY = $(STIPPLE_DIRECTORY)/nstc
LIBSTIPPLE_DIRECTORY = $(STIPPLE_DIRECTORY)/libstipple

STC = $(STC_DIRECTORY)/$(PLATFORM)/stc
STL = $(STC_DIRECTORY)/$(PLATFORM)/stl
NSTC = $(NSTC_DIRECTORY)/$(PLATFORM)/nstc

STC_INCLUDES =					\
	-I $(LIBSTIPPLE_DIRECTORY)/$(PLATFORM)	\
	-I $(PLATFORM)
STC_FLAGS = $(STC_OPTIONS) $(STC_INCLUDES)

SWIT_BASES =			\
	swit			\
	swit_application	\
	swit_button		\
	swit_canvas		\
	swit_clone		\
	swit_color		\
	swit_entry		\
	swit_frame		\
	swit_generate		\
	swit_gif		\
	swit_group		\
	swit_item		\
	swit_label		\
	swit_line		\
	swit_rectangle		\
	swit_restore		\
        swit_tcl_command	\
	swit_text		\
	swit_types		\
	swit_widget
SWIT_SOURCES = ${SWIT_BASES:%=%.sts}
SWIT_INTERFACES = ${SWIT_BASES:%=$(PLATFORM)/%.sti}
SWIT_OBJECTS = ${SWIT_BASES:%=$(PLATFORM)/%.o}
SWIT_LIBRARY = $(PLATFORM)/swit.stlib

SWIT_TEST_BASES =		\
	swit_test
SWIT_TEST_SOURCES = ${SWIT_TEST_BASES:%=%.sts}
SWIT_TEST_INTERFACES = ${SWIT_TEST_BASES:%=$(PLATFORM)/%.sti}
SWIT_TEST_OBJECTS = ${SWIT_TEST_BASES:%=$(PLATFORM)/%.o}
SWIT_TEST = $(PLATFORM)/swit_test

GENERATE_BASES =		\
	generate
GENERATE_SOURCES = ${GENERATE_BASES:%=%.sts}
GENERATE_INTERFACES = ${GENERATE_BASES:%=$(PLATFORM)/%.sti}
GENERATE_OBJECTS = ${GENERATE_BASES:%=$(PLATFORM)/%.o}
GENERATE = $(PLATFORM)/generate

STS_BASES =			\
	${SWIT_BASES}		\
	${SWIT_TEST_BASES}

STS_SOURCES = 			\
	${SWIT_SOURCES}		\
	${SWIT_TEST_SOURCES}
STS_HTMLS = ${STS_SOURCES:%.sts=%.html}


INTERFACES =			\
	${SWIT_INTERFACES}	\
	${SWIT_TEST_INTERFACES}
OBJECTS =			\
	${SWIT_OBJECTS}		\
	${SWIT_TEST_OBJECTS}

PROGRAMS =				\
	$(SWIT_TEST)

OTHER_HTMLS =				\
	index.html
HTMLS =					\
	${STS_HTMLS}			\
	${OTHER_HTMLS}			\
	source.html

BASES =					\
	swit_arch
GIFS = ${BASES:%=%.gif}
XPMS = ${BASES:%=%.xpm}

OTHER_SOURCES =				\
	Makefile
SOURCES =				\
	${STS_SOURCES}			\
	${OTHER_SOURCES}		\
	${OTHER_HTMLS}			\
	${XPMS}

COPY_LIST =				\
	${SOURCES}			\
	${STS_HTMLS}			\
	source.html

.PHONY: all clean copy spell

# Some rules:

%.gif: %.xpm
	xpmtoppm $< | pnmcrop | pnmmargin -white 15 | ppmtogif > $@

# Some targets:

all: $(PLATFORM) $(WAIT) ${SOURCES} $(WAIT) $(GENERATE) $(WAIT)	\
    ${PROGRAMS} $(WAIT) ${GIFS} $(WAIT) source.html

$(GENERATE): ${PLATFORM} $(WAIT) ${GENERATE_INTERFACES}		\
    $(WAIT) ${GENERATE_OBJECTS}
	$(STL) -o $@ ${GENERATE_INTERFACES} ${GENERATE_OBJECTS}

$(SWIT_LIBRARY): ${PLATFORM} $(WAIT) ${SWIT_INTERFACES} 	\
    $(WAIT) ${SWIT_OBJECTS}
	ls ${SWIT_INTERFACES} ${SWIT_OBJECTS} | sed "s,^,`pwd`/,g" > $@

$(SWIT_TEST): $(SWIT_LIBRARY) $(WAIT) ${SWIT_TEST_INTERFACES}	\
    $(WAIT) ${SWIT_TEST_OBJECTS}
	$(STL) -o $@ -E $(PLATFORM)				\
	   ${SWIT_TEST_INTERFACES} ${SWIT_TEST_OBJECTS}		\
	   `cat $(SWIT_LIBRARY)`

clean:
	rm -rf $(PLATFORM) ${STS_HTMLS} source.html ${GIFS} STDB
	$(CLEAN)

$(NSTC):
	$(MAKE) -C $(NTSC_DIR)

source.html: Makefile $(NSTC) $(WAIT) ${STS_HTMLS}
	@echo -n "Generating $@..."
	@rm -f $@
	@echo '<HTML>' > $@
	@echo '<Head>' >> $@
	@echo '<Title>TCP Monitor Source Files</Title>' >> $@
	@echo '</Head>' >> $@
	@echo '<Body>' >> $@
	@echo '<P>These are the source files for the' >> $@
	@echo '<A HRef="index.html">TCP Monitoring Program</A>.</P>' >> $@
	@echo '<H1>' >> $@
	@echo 'TCP Monitor Source Files' >> $@
	@echo '</H1>' >> $@
	@echo '<P>The following extracted documentation is available:</P>'>> $@
	@echo '<UL>' >> $@
	@for i in ${STS_BASES} ; do					\
		echo "  <LI><A HRef='$$i.html'>$$i</A></LI>" >> $@ ;	\
		done
	@echo '</UL>' >> $@
	@echo '<P>The following source files are available:</P>' >> $@
	@echo '<UL>' >> $@
	@for i in `ls Makefile ${STS_SOURCES} | sort`; do \
		echo "  <LI><A HRef='$$i'>$$i</A></LI>" >> $@ ;		\
		done
	@echo '</UL>' >> $@
	@echo '<HR>' >> $@
	@echo '<Address>' >> $@
	@echo '<A HRef="../../../copyright.html">' >> $@
	@echo 'Copyright</A> (c) 1997 by' >> $@
	@echo '<A HRef="../../../gramlich.html">' >> $@
	@echo 'Wayne Gramlich</A> All rights reserved.' >> $@
	@echo '</Address>' >> $@
	@echo '</Body>' >> $@
	@echo '</HTML>' >> $@
	@echo "Done"



