## ----------------------------------------------------------------------
## Makefile for debiandoc-sgml
## ----------------------------------------------------------------------

## ----------------------------------------------------------------------
## package definitions
dtd	= debiandoc
package = $(dtd)-sgml

## ----------------------------------------------------------------------
## general directory definitions
prefix	= /usr/local
bindir	= $(prefix)/bin
libdir	= $(prefix)/lib
mandir	= $(prefix)/man
man1dir	= $(mandir)/man1
man1	= 1
docdir	= $(prefix)/doc

## ----------------------------------------------------------------------
## package directory definitions
sgml_libdir	= $(libdir)/sgml
sgml_dtddir	= $(sgml_libdir)/dtd
sgml_entdir	= $(sgml_libdir)/entities
pkg_libdir	= $(libdir)/$(package)
pkg_bindir	= $(pkg_libdir)/bin
pkg_specdir	= $(pkg_libdir)/spec
pkg_i18ndir	= $(pkg_specdir)/i18n
pkg_docdir	= $(docdir)/$(package)
pkg_htmldir	= $(pkg_docdir)/markup.html

## ----------------------------------------------------------------------
## general installation definitions
INSTALL		= install
INSTALL_DIR	= $(INSTALL) -d -m 755
INSTALL_SCRIPT	= $(INSTALL) -c -m 755
INSTALL_DATA	= $(INSTALL) -c -m 644

## ----------------------------------------------------------------------
## package file definitions
DTDS		= $(dtd).dtd
ENTITIES	= general
CATALOG		= sgml.catalog
SPECS		= html lout text
STDCONVERSIONS	= $(dtd)2html $(dtd)2lout $(dtd)2text $(dtd)2textov
PROGRAMS	= $(STDCONVERSIONS) $(dtd)2ps
MAN1S		= $(dtd)2ps
STDCONVMAN	= $(dtd)2ps
HELPERS		= saspconvert
LANGUAGES	= da de es fr it nl 
I18NS		= $(foreach spec,$(SPECS),$(addsuffix .$(spec),$(LANGUAGES)))

## ----------------------------------------------------------------------
PATH:=:$(PATH)
RM=/bin/rm -f
RMD=/bin/rm -rf
RMDIR=/bin/rmdir

## ----------------------------------------------------------------------
## targets
all:		bin doc

bin:		$(STDCONVERSIONS)

$(STDCONVERSIONS):	template mkconversions conversions
		sh mkconversions \
			$(pkg_specdir) $(sgml_libdir) $(pkg_bindir)

doc:		markup.html

markup.html:	markup.sgml dtd/debiandoc.dtd spec-html
		nsgmls -l -D. markup.sgml >markup.sasp
		./saspconvert size book <markup.sasp >markup.sasp-lout
		rm -rf markup.html
		sgmlspl spec-html markup.html/ <markup.sasp-lout 

install:	all
		$(INSTALL_DIR) \
				$(bindir) $(man1dir) \
				$(sgml_entdir) $(sgml_dtddir) \
				$(pkg_bindir) \
				$(pkg_specdir) $(pkg_i18ndir) \
				$(pkg_docdir) $(pkg_htmldir)
		set -e; \
		for f in $(PROGRAMS); \
		do \
			$(INSTALL_SCRIPT) $$f $(bindir); \
		done
		set -e; \
		for f in $(MAN1S); \
		do \
			$(INSTALL_DATA) $$f.1 $(man1dir)/$$f.$(man1); \
		done
		set -e; \
		for f in $(STDCONVERSIONS); \
		do \
			ln -sf $(STDCONVMAN).$(man1) $(man1dir)/$$f.$(man1); \
		done
		set -e; \
		for f in $(DTDS); \
		do \
			$(INSTALL_DATA) dtd/$$f $(sgml_dtddir); \
		done
		set -e; \
		for f in $(ENTITIES); \
		do \
			$(INSTALL_DATA) entities/$$f $(sgml_entdir); \
		done
		set -e; \
		for f in $(CATALOG); \
		do \
			$(INSTALL_DATA) $$f $(pkg_libdir); \
		done
		set -e; \
		for f in $(HELPERS); \
		do \
			$(INSTALL_SCRIPT) $$f $(pkg_bindir); \
		done
		set -e; \
		for f in $(SPECS); \
		do \
			$(INSTALL_DATA) spec-$$f $(pkg_specdir)/$$f; \
		done
		set -e; \
		for f in $(I18NS); \
		do \
			$(INSTALL_DATA) i18n/$$f $(pkg_i18ndir)/$$f; \
		done
		set -e; \
		for f in markup.html/*; \
		do \
			$(INSTALL_DATA) $$f $(pkg_htmldir)/.; \
		done
		$(INSTALL_DATA) markup.sgml $(pkg_docdir)/markup.sgml

uninstall:	
		set -e; \
		if [ -d $(pkg_htmldir) ]; \
		then \
			$(RM) $(pkg_htmldir)/*; \
			if [ -z "$(ls $(pkg_htmldir))" ]; \
			then \
				$(RMDIR) $(pkg_htmldir); \
			fi; \
		fi
		set -e; \
		if [ -d $(pkg_docdir) ]; \
		then \
			$(RM) $(pkg_docdir)/markup.sgml; \
			if [ -z "$(ls $(pkg_docdir))" ]; \
			then \
				$(RMDIR) $(pkg_docdir); \
			fi; \
		fi
		set -e; \
		if [ -d $(pkg_i18ndir) ]; \
		then \
			for f in $(I18NS); \
			do \
				$(RM) $(pkg_i18ndir)/$$f; \
			done; \
			if [ -z "$(ls $(pkg_i18ndir))" ]; \
			then \
				$(RMDIR) $(pkg_i18ndir); \
			fi; \
		fi
		set -e; \
		if [ -d $(pkg_specdir) ]; \
		then \
			for f in $(SPECS); \
			do \
				$(RM) $(pkg_specdir)/$$f; \
			done; \
			if [ -z "$(ls $(pkg_specdir))" ]; \
			then \
				$(RMDIR) $(pkg_specdir); \
			fi; \
		fi
		set -e; \
		if [ -d $(pkg_bindir) ]; \
		then \
			for f in $(HELPERS); \
			do \
				$(RM) $(pkg_bindir)/$$f; \
			done; \
			if [ -z "$(ls $(pkg_bindir))" ]; \
			then \
				$(RMDIR) $(pkg_bindir); \
			fi; \
		fi
		set -e; \
		if [ -d $(pkg_libdir) ]; \
		then \
			for f in $(CATALOG); \
			do \
				$(RM) $(pkg_libdir)/$$f; \
			done; \
			if [ -z "$(ls $(pkg_libdir))" ]; \
			then \
				$(RMDIR) $(pkg_libdir); \
			fi; \
		fi
		set -e; \
		if [ -d $(sgml_entdir) ]; \
		then \
			for f in $(ENTITIES); \
			do \
				$(RM) $(sgml_entdir)/$$f; \
			done; \
			if [ -z "$(ls $(sgml_entdir))" ]; \
			then \
				$(RMDIR) $(sgml_entdir); \
			fi; \
		fi
		set -e; \
		if [ -d $(sgml_dtddir) ]; \
		then \
			for f in $(DTDS); \
			do \
				$(RM) $(sgml_dtddir)/$$f; \
			done; \
			if [ -z "$(ls $(sgml_dtddir))" ]; \
			then \
				$(RMDIR) $(sgml_dtddir); \
			fi; \
		fi
		set -e; \
		if [ -d $(sgml_libdir) ] && [ -z "$(ls $(sgml_libdir))" ]; \
		then \
			$(RMDIR) $(sgml_libdir); \
		fi
		set -e; \
		for f in $(STDCONVERSIONS); \
		do \
			$(RM) $(man1dir)/$$f.$(man1); \
		done
		set -e; \
		for f in $(MAN1S); \
		do \
			$(RM) $(man1dir)/$$f.$(man1); \
		done
		set -e; \
		for f in $(PROGRAMS); \
		do \
			$(RM) $(bindir)/$$f; \
		done

clean:
		rm -rf {markup,test}.{ps,text,lout,sasp,html}*
		rm -f $(STDCONVERSIONS) *.new lout.li *.lix *.ldx *~

## ----------------------------------------------------------------------
