# Copyright (c) 1995-2005 by Wayne C. Gramlich. # All rights reserved. ROOT = .. include $(ROOT)/Makefile_common.mk include $(ROOT)/Makefile_private.mk # Some directories: LIBUTIL_DIRECTORY = $(ROOT)/libutil STIPPLE_DIRECTORY = $(ROOT)/stipple STC_DIRECTORY = $(STIPPLE_DIRECTORY)/stc LIBSTIPPLE_DIRECTORY = $(STIPPLE_DIRECTORY)/libstipple NSTC_DIRECTORY = $(STIPPLE_DIRECTORY)/nstc DIRECTORIES = \ tests STC = $(STC_DIRECTORY)/$(PLATFORM)/stc STL = $(STC_DIRECTORY)/$(PLATFORM)/stl NSTC = $(NSTC_DIRECTORY)/$(PLATFORM)/nstc LIBUTIL = $(LIBUTIL_DIRECTORY)/$(PLATFORM)/libutil.a LIBSTIPPLE = $(LIBSTIPPLE_DIRECTORY)/$(PLATFORM)/libstipple.a STC_INCLUDES = \ -I $(LIBSTIPPLE_DIRECTORY)/$(PLATFORM) \ -I $(PLATFORM) STC_FLAGS = $(STC_OPTIONS) $(STC_INCLUDES) COMMON_BASES = \ differ COMMON_SOURCES = ${COMMON_BASES:%=%.sts} COMMON_INTERFACES = ${COMMON_BASES:%=$(PLATFORM)/%.sti} COMMON_OBJECTS = ${COMMON_BASES:%=$(PLATFORM)/%.o} COMMON_HTMLS = ${COMMON_BASES:%=%.html} DIFFER_TEST_BASES = \ differ_test DIFFER_TEST_SOURCES = ${DIFFER_TEST_BASES:%=%.sts} DIFFER_TEST_INTERFACES = ${DIFFER_TEST_BASES:%=$(PLATFORM)/%.sti} DIFFER_TEST_OBJECTS = ${DIFFER_TEST_BASES:%=$(PLATFORM)/%.o} DIFFER_TEST_HTMLS = ${DIFFER_TEST_BASES:%=%.html} DIFFER_TEST_LIBRARIES = DIFFER_TEST = $(PLATFORM)/differ_test SVMS_BASES = \ chunk \ data_io \ delta \ history \ manage \ misc \ resources \ slice \ svms \ project \ version SVMS_SOURCES = ${SVMS_BASES:%=%.sts} SVMS_INTERFACES = ${SVMS_BASES:%=$(PLATFORM)/%.sti} SVMS_OBJECTS = ${SVMS_BASES:%=$(PLATFORM)/%.o} SVMS_HTMLS = ${SVMS_BASES:%=%.html} SVMS_LIBRARIES = SVMS = $(PLATFORM)/svms ALL_STS_BASES = \ ${COMMON_BASES} \ ${DIFFER_TEST_BASES} \ ${SVMS_BASES} SHELL_BASES = \ sccs2svms \ uncvt \ uncvtall SHELL_SOURCES = ${SHELL_BASES:%=%.sh} SHELL_PROGRAMS = ${SHELL_BASES:%=$(PLATFORM)/%} DOC_BASES = \ 2do \ design \ documentation \ goals \ index \ source \ why HTML_SOURCES = ${DOC_BASES:%=%.html} SPELL_FILES = ${DOC_BASES:%=%.spell} GENERATED_HTMLS = \ ${COMMON_HTMLS} \ ${DIFFER_TEST_HTMLS} \ ${SVMS_HTMLS} OTHER_SOURCES = \ Makefile SOURCES = \ ${COMMON_SOURCES} \ ${DIFFER_SOURCES} \ ${SVMS_SOURCES} \ ${SPELL_FILES} \ ${HTML_SOURCES} \ ${SHELL_SOURCES} PROGRAMS = \ $(DIFFER_TEST) \ $(SVMS) \ ${SHELL_PROGRAMS} COPY_LIST = \ ${SOURCES} \ source.html SOURCE_LIST = \ ${SHELL_SOURCES} \ ${COMMON_SOURCES} \ ${DIFFER_TEST_SOURCES} \ ${SVMS_SOURCES} \ ${OTHER_SOURCES} # Some rules: $(PLATFORM)/%: %.sh rm -f $@ cp $< $@ chmod +xw $@ .PHONY: all clean copy deep deep2 spell all: $(PLATFORM) ${SOURCES} $(WAIT) ${PROGRAMS} $(WAIT) source.html set -e ; \ for i in ${DIRECTORIES} ; \ do \ $(MAKE) -C $$i ; \ done deep: deep2 $(WAIT) all deep2: $(MAKE) -C $(LIBUTIL_DIRECTORY) $(MAKE) -C $(STC_DIRECTORY) $(MAKE) -C $(LIBSTIPPLE_DIRECTORY) $(DIFFER_TEST): ${DIFFER_TEST_INTERFACES} ${COMMON_INTERFACES} $(WAIT) \ ${DIFFER_TEST_OBJECTS} ${COMMON_OBJECTS} $(STL) -o $@ -E $(PLATFORM) ${DIFFER_TEST_INTERFACES} \ ${COMMON_INTERFACES} ${DIFFER_TEST_OBJECTS} \ ${COMMON_OBJECTS} ${DIFFER_TEST_LIBRARIES} $(SVMS): ${SVMS_INTERFACES} ${COMMON_INTERFACES} $(WAIT) \ ${SVMS_OBJECTS} ${COMMON_OBJECTS} $(STL) -o $@ -E $(PLATFORM) ${SVMS_INTERFACES} \ ${COMMON_INTERFACES} ${SVMS_OBJECTS} ${COMMON_OBJECTS} \ ${SVMS_LIBRARIES} clean: rm -rf $(PLATFORM) STDB ${GENERATED_HTMLS} source.html set -e ; \ for i in ${DIRECTORIES} ; \ do \ $(MAKE) -C $$i clean ; \ done $(CLEAN) copy: ${COPY_LIST} set -e ; \ if [ "$(COPY_DIRECTORY)" = "" ] ; \ then \ echo "Please set COPY_DIRECTORY in `pwd`" ; \ false ; \ fi rm -rf $(COPY_DIRECTORY) mkdir -p $(COPY_DIRECTORY) cp ${COPY_LIST} $(COPY_DIRECTORY) set -e ; \ for i in ${DIRECTORIES} ; \ do \ $(MAKE) -C $$i COPY_DIRECTORY=$(COPY_DIRECTORY)/$$i copy ; \ done spell: ${HTML_SOURCES} ${SPELL_FILES} for i in ${DOC_BASES} ; \ do \ cat $$i.html | sed -e "s,<[^>]*>,,g" -e "s,^, ,g" | \ grep -v html | spell -l | sort | uniq > /tmp/$$i.spell ; \ diff /tmp/$$i.spell $$i.spell > /tmp/$$i.diff 2>&1 ; \ if [ -s /tmp/$$i.diff ] ; \ then \ echo ========== $$i.html ============== ; \ cat /tmp/$$i.diff ; \ fi ; \ rm -f /tmp/$$i.spell /tmp/$$i.diff ; \ done test: $(MAKE) -C tests test source.html: Makefile $(NSTC) $(WAIT) ${GENERATED_HTMLS} @echo -n "Generating $@..." @rm -f $@ @echo '' > $@ @echo '' >> $@ @echo 'SVMS Source Files' >> $@ @echo '' >> $@ @echo '' >> $@ @echo '

These are the source files for' >> $@ @echo 'SVMS.

' >> $@ @echo '

' >> $@ @echo 'SVMS Source Files' >> $@ @echo '

' >> $@ @echo '

The following extracted documentation is available:

'>> $@ @echo '' >> $@ @echo '

The following source files are available:

' >> $@ @echo '' >> $@ @echo '
' >> $@ @echo '
' >> $@ @echo '' >> $@ @echo 'Copyright (c) 1998 by' >> $@ @echo '' >> $@ @echo 'Wayne Gramlich All rights reserved.' >> $@ @echo '
' >> $@ @echo '' >> $@ @echo '' >> $@ @echo "Done"