################################################################
# SWI-Prolog `sgml' package
# Author:    Jan Wielemaker. J.Wielemaker@vu.nl
# Copyright: LGPL (see COPYING or www.gnu.org
################################################################

PACKAGE=sgml
DOC=sgml
include ../Makefile.defs
CFLAGS+= -I.

LIBOBJ=		parser.o util.o charmap.o catalog.o model.o xmlns.o utf8.o \
		xml_unicode.o
PLOBJ=		$(LIBOBJ) error.o sgml2pl.o quote.o
SGMLOBJ=	$(LIBOBJ) sgml.o
DTD2PLOBJ=	$(LIBOBJ) dtd2pl.o prolog.o

HDRS=		catalog.h dtd.h model.h prolog.h utf8.h xmlns.h \
		config.h error.h parser.h sgmldefs.h util.h

ALLCSRC=	$(LIBOBJ:.o=.c) \
		$(PLOBJ:.o=.c) $(SGMLOBJ:.o=.c) $(DTD2PLOBJ:.o=.c) \
		$(HDRS)

LIBPL=		sgml.pl xsdp_types.pl iso_639.pl sgml_write.pl xpath.pl \
		pwp.pl
LIBSRCPL=$(addprefix $(srcdir)/, $(LIBPL))
TARGETS=	sgml2pl.so
PROGRAMS=	dtd2pl$(EXEEXT) sgml$(EXEEXT)
DTDFILES=	HTML4.dcl HTML4.dtd HTML4.soc \
		HTMLlat1.ent HTMLspec.ent HTMLsym.ent

all:		$(TARGETS) $(PROGRAMS)

sgml2pl.so:	$(PLOBJ)
		$(LD) $(LDSOFLAGS) -o $@ $(PLOBJ) $(LIBS) $(LIBPLSO)

install:	$(TARGETS) $(LIBSRCPL) install-dtd
		mkdir -p $(DESTDIR)$(SOLIBDIR)
		$(INSTALL_PROGRAM) $(TARGETS) $(DESTDIR)$(SOLIBDIR);
		$(INSTALL_DATA) $(LIBSRCPL) $(DESTDIR)$(PLLIBDIR)
		$(MKINDEX)

ln-insptall::
		@$(MAKE) INSTALL_DATA=../ln-install \
			 INSTALL_PROGRAM=../ln-install \
			 install

rpm-install:	install

install-dtd::
		mkdir -p $(DESTDIR)$(PLLIBDIR)/DTD
		for f in $(DTDFILES); do \
		   $(INSTALL_DATA) $(srcdir)/DTD/$$f $(DESTDIR)$(PLLIBDIR)/DTD; \
		done

pdf-install::
		mkdir -p $(DESTDIR)$(PKGDOC)
		$(INSTALL_DATA) sgml.pdf $(DESTDIR)$(PKGDOC)

html-install::
		mkdir -p $(DESTDIR)$(PKGDOC)
		$(INSTALL_DATA) sgml.html $(DESTDIR)$(PKGDOC)

check::
		$(PL) -f Test/test.pl -g test,halt
		$(PL) -f Test/wrtest.pl -g test,halt

uninstall::
		(cd $(PLBASE)/$(SOLIB)/$(INSTALL_PLARCH) && rm -f $(TARGETS))
		(cd $(PLBASE)/library && rm -f $(LIBPL))
		$(PL) -f none -g make -t halt

dtd2pl$(EXEEXT): $(DTD2PLOBJ)
		$(LD) $(LDFLAGS) -o $@ $(DTD2PLOBJ) $(LIBS)

sgml$(EXEEXT):	$(SGMLOBJ)
		$(LD) $(LDFLAGS) -o $@ $(SGMLOBJ) $(LIBS)

tags:		TAGS

TAGS:		$(ALLCSRC)
		etags $(ALLCSRC)

################################################################
# Documentation
################################################################

TEXEXTRA=	xpath.tex pwp.tex
$(TEX):		$(TEXEXTRA)

xpath.tex:	xpath.pl
		$(PLTOTEX) --out=$@ --section 'library(xpath)'

pwp.tex:	pwp.pl
		$(PLTOTEX) --out=$@ --section 'library(pwp)'


################################################################
# Clean
################################################################

clean::
		rm -f $(PLOBJ) *~ *.o *% a.out core config.log

distclean:	clean
		rm -f $(TARGETS) $(PROGRAMS)
		rm -f config.cache config.h config.status Makefile

