Blob Blame History Raw
#
#  Makefile.in
#
#  Copyright (C) 1996 Sven Rudolph
#  Copyright (C) 2008-2015 Agustin Martin

prefix             = @prefix@
exec_prefix        = @exec_prefix@
bindir             = @bindir@
auxbindir          = @auxbindir@
datadir            = @datadir@
mandir             = @mandir@
PERL               = @PERL@
PERLWARN           = @PERLWARN@
GROFFMACRO         = @GROFFMACRO@
pkgdatadir         = @pkgdatadir@
texdir             = @texdir@
perl5libdir        = @perl5libdir@

docdir             = $(prefix)/share/doc/linuxdoc-tools
man1dir            = $(mandir)/man1

INSTALL            = @INSTALL@
INSTALL_PROGRAM    = @INSTALL_PROGRAM@ -m 755
INSTALL_DATA       = @INSTALL_DATA@
INSTALL_SCRIPT     = @INSTALL_SCRIPT@

# nsgmls or onsgmls should be installed already
# BUILD_NSGMLS=@BUILD_NSGMLS@

BUILD_SGMLSASP     = @BUILD_SGMLSASP@
BUILD_ENTITY_MAP   = @BUILD_ENTITY_MAP@
BUILD_ISO_ENTITIES = @BUILD_ISO_ENTITIES@
BUILDDOC_FORMATS   = @BUILDDOC_FORMATS@

# Now real destination dirs, honouring $(DESTDIR)
auxbin_ddir        = $(DESTDIR)$(auxbindir)
bin_ddir           = $(DESTDIR)$(bindir)
doc_ddir           = $(DESTDIR)$(docdir)
man1_ddir          = $(DESTDIR)$(man1dir)
perl5lib_ddir      = $(DESTDIR)$(perl5libdir)
pkgdata_ddir       = $(DESTDIR)$(pkgdatadir)
tex_ddir           = $(DESTDIR)$(texdir)

progs    := sgml2html sgml2info sgml2latex sgml2lyx sgml2rtf sgml2txt sgmlcheck

all: build

build:
ifeq ($(BUILD_SGMLSASP), true)
	@echo "Compiling the SGML translator tools (in sgmls-1.1/)..."
	( cd sgmls-1.1 ; \
	  $(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" sgmlsasp )
endif
# nsgmls or onsgmls should be installed already
# ifeq ($(BUILD_NSGMLS), true)
# 	@echo "Compiling the SGML parsing tools (in sp/)..."
# 	( cd sp ; \
# 	  $(MAKE) )
# endif
ifeq ($(BUILD_ENTITY_MAP), true)
	@echo "Building Entity Mapping library (in entity-map)..."
	( cd entity-map ; \
	  $(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)")
endif
	@echo "Compiling preprocessor (in sgmlpre/)..."
	$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" LEX=flex sgmlpre/sgmlpre

	@echo "Compiling RTF conversion tools (in rtf-fix/)..."
	( cd rtf-fix ; \
	  $(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" || exit -1 )

	@echo "Making man pages in genman ..."
	if [ ! -d genman ]; then mkdir genman ; fi
	for ii in man/* ; do \
	  bn=`basename $$ii`; \
	  cat $$ii | sed \
	    -e "s,\$$LINUXDOCLIB,$(pkgdatadir)," \
	    -e "s,\$$LINUXDOCBIN,$(bindir)," \
	    > genman/$$bn; \
	done

ifneq ($(BUILDDOC_FORMATS),)
#    -- Build documentation
	@echo "Building documentation ..."
	(cd doc; \
		MAKE="$(MAKE)" \
		PREFIX=$(prefix) \
		BUILD_ISO_ENTITIES=$(BUILD_ISO_ENTITIES) \
		BUILD_ENTITY_MAP=$(BUILD_ENTITY_MAP) \
		PKGPERL5LIB=$(CURDIR)/perl5lib \
		PKGDATADIR=$(CURDIR)/lib \
		PKGENTITYMAPDIR=$(CURDIR)/entity-map \
		BUILDDOC_FORMATS="$(BUILDDOC_FORMATS)" \
		sh Makedoc.sh)
endif

install:: bin/linuxdoc
	@echo "Installing binaries and scripts in $(bin_ddir) ..."
	[ -d $(bin_ddir) ] || mkdir -m 755 -p $(bin_ddir)
# nsgmls or onsgmls should be installed already
# ifeq ($(BUILD_NSGMLS), true)
#	$(INSTALL_PROGRAM) sp/nsgmls/nsgmls $(bin_ddir)/nsgmls
# endif

#    --
ifeq ($(BUILD_SGMLSASP), true)
	@echo "Installing sgmlsasp program ..."
	$(INSTALL_PROGRAM) sgmls-1.1/sgmlsasp $(bin_ddir)/sgmlsasp
endif

#    --
ifeq ($(BUILD_ENTITY_MAP), true)
	@echo "Installing Entity Mapping library (in entity-map)..."
	( cd entity-map; \
	  $(MAKE) install DESTDIR=$(DESTDIR) perl5libdir=$(perl5libdir))
endif

#    --
ifeq ($(BUILD_ISO_ENTITIES), true)
	@echo "Installing ISO character entity sets (in iso-entities)..."
	( cd iso-entities; \
	  $(MAKE) install  DESTDIR=$(DESTDIR))
endif

#    -- Install linuxdoc script. Use $(INSTALL_SCRIPT) to prevent stripping.
	@echo "Installing linuxdoc script ..."
	$(INSTALL_SCRIPT) bin/linuxdoc $(bin_ddir)/linuxdoc

#    -- Install auxiliary programs
	@echo "Installing auxiliary programs in $(auxbin_ddir) ..."
	mkdir -p $(auxbin_ddir)
	for ii in sgmlpre/sgmlpre rtf-fix/rtf2rtf; do \
	  bn=`basename $$ii`; \
	  $(INSTALL_PROGRAM) $$ii $(auxbin_ddir)/$$bn; \
	done

#    -- Install perl libraries and support files
	@echo "Installing library and support files in $(pkgdata_ddir)..."
	[ -d $(pkgdata_ddir) ] || mkdir -m 755 -p $(pkgdata_ddir)
#	# cp -r lib/* $(pkgdata_ddir)
	( cd lib && tar --exclude='CVS' -cpf - . ) | ( cd $(pkgdata_ddir) && tar -xpf - )
	cp VERSION $(pkgdata_ddir)

#    -- Install manual pages
	@echo "Installing man pages in $(man1_ddir) ..."

	[ -d $(man1_ddir) ] || mkdir -m 755 -p $(man1_ddir)

	for ii in genman/sgml2* genman/sgmlcheck.1 \
	          genman/rtf*.1 genman/sgmlpre*.1; do \
	  bn=`basename $$ii`; \
	  $(INSTALL_DATA) $$ii $(man1_ddir)/$$bn; \
	done
	$(INSTALL_DATA) genman/linuxdoc.1 $(man1_ddir)/linuxdoc.1
ifeq ($(BUILD_NSGMLS), true)
	$(INSTALL_DATA) man/nsgmls.1 $(man1_ddir)/nsgmls.1
endif
ifeq ($(BUILD_SGMLSASP), true)
	$(INSTALL_DATA) man/sgmlsasp.1 $(man1_ddir)/sgmlsasp.1
endif
#    -- Fix permissions in $(pkgdata_ddir)
	find $(pkgdata_ddir) -type d -print | xargs chmod 755
	find $(pkgdata_ddir) -type f -print | xargs chmod 644

	(cd $(bin_ddir); for i in $(progs); do rm -f $$i; ln -s linuxdoc $$i;done)

#    -- Install perl modules
	@echo "Installing perl modules ..."
	mkdir -m 755 -p $(perl5lib_ddir)/LinuxDocTools
	$(INSTALL_DATA) perl5lib/LinuxDocTools.pm   $(perl5lib_ddir)
	$(INSTALL_DATA) perl5lib/LinuxDocTools/*.pm $(perl5lib_ddir)/LinuxDocTools

#    -- Install tex stuff
	@echo "Installing TeX stuff in $(tex_ddir) ..."
	mkdir -m 755 -p $(tex_ddir)
	$(INSTALL_DATA) tex/* $(tex_ddir)

ifneq ($(BUILDDOC_FORMATS),)
#    -- Install documentation
	@echo "Installing documentation in $(doc_ddir) ..."
	mkdir -m 755 -p $(doc_ddir)
	( cd doc && tar --exclude='CVS' -cpf - . ) | ( cd $(doc_ddir) && tar -xpf - )
	rm -f $(doc_ddir)/Makedoc.sh $(doc_ddir)/Makefile
	find $(doc_ddir) -type d -print | xargs chmod 755
	find $(doc_ddir) -type f -print | xargs chmod 644
endif

# what dirs do the targets clean and distclean need?
DDIRS=
MDIRS=
ifeq ($(BUILD_SGMLSASP), true)
     DDIRS += sgmls-1.1
endif
ifeq ($(BUILD_NSGMLS), true)
     DDIRS += sp
endif
ifeq ($(BUILD_ENTITY_MAP), true)
     MDIRS += entity-map
endif
ifeq ($(BUILD_ISO_ENTITIES), true)
     MDIRS += iso-entities
endif

bin/linuxdoc:: Makefile bin/linuxdoc.in
	sed -e 's!\@prefix\@!$(prefix)!g' \
	    -e 's!\@isoentities_prefix\@!$(prefix)!g' \
	    -e 's!\@auxbindir\@!$(auxbindir)!g' \
	    -e 's!\@pkgdatadir\@!$(pkgdatadir)!g' \
	    -e 's!\@perl5libdir\@!$(perl5libdir)!g' \
	    -e 's!\@PERL\@!$(PERL)!g' \
	    -e 's!\@PERLWARN\@!$(PERLWARN)!g' \
	    -e 's!\@GROFFMACRO\@!$(GROFFMACRO)!g' \
	bin/linuxdoc.in > bin/linuxdoc

clean::
	-rm -f *~ bin/*~ bin/linuxdoc
	for d in $(DDIRS) $(MDIRS) rtf-fix; do $(MAKE) -C $$d clean; done
	(cd sgmlpre ; rm -f sgmlpre.o sgmlpre.c sgmlpre)
	-rm -rf genman/

distclean:: clean
	for d in $(MDIRS); do $(MAKE) -C $$d distclean; done
	-rm -f Makefile config.cache config.log config.status \
		entity-map/Makefile iso-entities/Makefile \
		sgmls-1.1/config.h \
		sp/Makefile sp/Makefile.lib sp/config.log sp/config.status \
		sp/*/Makefile.dep \
		doc/guide.txt doc/guide.tex doc/guide.dvi doc/guide.ps doc/guide.ps.gz \
		doc/guide.info doc/guide.lyx doc/html/guide*.html \
		$(GENFILES)
	rm -rf 	doc/rtf

include Makefile.maint