################################################################
# SWI-Prolog `sgml2pl' package
# Author:    Jan Wielemaker. jan@swi.psy.uva.nl
# Copyright: LGPL (see COPYING or www.gnu.org
################################################################

PL=@PL@
PLBASE=@PLBASE@
PLARCH=@PLARCH@
PKGDOC=$(PLBASE)/doc/packages

CC=@CC@
COFLAGS=@COFLAGS@
CWFLAGS=@CWFLAGS@
CMFLAGS=@CMFLAGS@
CIFLAGS=-I. -I@PLINCL@
CFLAGS=$(COFLAGS) $(CWFLAGS) $(CMFLAGS) $(CIFLAGS) @DEFS@
LDFLAGS=$(COFLAGS)

LD=@LD@
LDSOFLAGS=@LDSOFLAGS@

INSTALL=@INSTALL@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_DATA=@INSTALL_DATA@

LIBOBJ=		parser.o util.o charmap.o catalog.o model.o xmlns.o utf8.o
PLOBJ=		$(LIBOBJ) error.o sgml2pl.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
TARGETS=	sgml2pl.so
PROGRAMS=	dtd2pl sgml
DTDFILES=	HTML4.dcl HTML4.dtd HTML4.soc \
		HTMLlat1.ent HTMLspec.ent HTMLsym.ent

all:		coflags $(TARGETS) $(PROGRAMS)

coflags:
		@echo $(COFLAGS) > .coflags

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

install:	$(TARGETS) $(LIBPL) install-dtd
		mkdir -p $(PLBASE)/lib/$(PLARCH)
		$(INSTALL) -m 755 $(TARGETS) $(PLBASE)/lib/$(PLARCH)
		$(INSTALL) -m 644 $(LIBPL) $(PLBASE)/library
		$(PL) -f none -g make -t halt

rpm-install:	install

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

pdf-install::
		$(INSTALL_DATA) doc/sgml2pl.pdf $(PKGDOC)

html-install::
		$(INSTALL_DATA) doc/sgml2pl.html $(PKGDOC)

check:
		cd Test && $(PL) -f test.pl -g test,halt.

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

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

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

tags:		TAGS

TAGS:		$(ALLCSRC)
		etags $(ALLCSRC)

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

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

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

