From 542350d9a27687449cda2c0b737a18c5ba6a3739 Mon Sep 17 00:00:00 2001 From: GNU Libc Maintainers Date: Mon, 13 Jul 2020 20:34:17 +0100 Subject: [PATCH] local-remove-manual The GNU Libc Reference manual has to be removed for licensing reasons. But some files have a dependency on manual/errno.texi; the easiest solution is to drop those dependencies and make sure that MAKEINFO=: so that no target depends on manual/*.texi files. Gbp-Pq: Topic all Gbp-Pq: Name local-remove-manual.diff --- manual/Makefile | 182 +++++++++++++++++++++++++++++++++++++ sysdeps/gnu/Makefile | 2 +- sysdeps/mach/hurd/Makefile | 2 +- 3 files changed, 184 insertions(+), 2 deletions(-) create mode 100644 manual/Makefile diff --git a/manual/Makefile b/manual/Makefile new file mode 100644 index 000000000..67e13904b --- /dev/null +++ b/manual/Makefile @@ -0,0 +1,182 @@ +# Copyright (C) 1992-2012 +# Free Software Foundation, Inc. +# This file is part of the GNU C Library. + +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, see +# . + +# Makefile for the GNU C Library manual. + +subdir := manual + +# Allow override +INSTALL_INFO = install-info + +.PHONY: dvi pdf info html + +# Get glibc's configuration info. +include ../Makeconfig + +dvi: $(objpfx)libc.dvi +pdf: $(objpfx)libc.pdf + +TEXI2DVI = texi2dvi +TEXI2PDF = texi2dvi --pdf + +ifneq ($(strip $(MAKEINFO)),:) +info: $(objpfx)libc.info +endif + +chapters = $(addsuffix .texi, \ + intro errno memory ctype string charset locale \ + message search pattern io stdio llio filesys \ + pipe socket terminal syslog math arith time \ + resource setjmp signal startup process job nss \ + users sysinfo conf crypt debug) +add-chapters = $(wildcard $(foreach d, $(add-ons), ../$d/$d.texi)) +appendices = lang.texi header.texi install.texi maint.texi platform.texi \ + contrib.texi +licenses = freemanuals.texi lgpl-2.1.texi fdl-1.3.texi + +-include $(objpfx)texis +$(objpfx)texis: texis.awk $(chapters) $(add-chapters) $(appendices) $(licenses) + $(make-target-directory) + $(AWK) -f $^ > $@.T + mv -f $@.T $@ + +nonexamples = $(filter-out $(add-chapters) %.c.texi, $(texis)) +examples = $(filter-out $(foreach d, $(add-ons), ../$d/%.c.texi), \ + $(filter %.c.texi, $(texis))) + +# Generated files directly included from libc.texinfo. +libc-texi-generated = chapters.texi top-menu.texi dir-add.texi \ + libm-err.texi version.texi + +# Add path to build dir for generated files +texis-path := $(filter-out $(libc-texi-generated) summary.texi $(examples), \ + $(texis)) \ + $(addprefix $(objpfx),$(filter $(libc-texi-generated) summary.texi \ + $(examples), $(texis))) + +# Kludge: implicit rule so Make knows the one command does it all. +chapters.% top-menu.%: libc-texinfo.sh $(texis-path) Makefile + AWK=$(AWK) $(SHELL) $< $(objpfx) \ + '$(chapters)' \ + '$(add-chapters)' \ + '$(appendices) $(licenses)' + + +$(objpfx)libc.dvi $(objpfx)libc.pdf $(objpfx)libc.info: \ + $(addprefix $(objpfx),$(libc-texi-generated)) +$(objpfx)libc.dvi $(objpfx)libc.pdf: texinfo.tex + +html: $(objpfx)libc/index.html +$(objpfx)libc/index.html: $(addprefix $(objpfx),$(libc-texi-generated)) + $(MAKEINFO) -P $(objpfx) -o $(objpfx)libc --html libc.texinfo + +# Generate the summary from the Texinfo source files for each chapter. +$(objpfx)summary.texi: $(objpfx)stamp-summary ; +$(objpfx)stamp-summary: summary.awk $(filter-out $(objpfx)summary.texi, \ + $(texis-path)) + $(AWK) -f $^ | sort -t' ' -df -k 1,1 | tr '\014' '\012' \ + > $(objpfx)summary-tmp + $(move-if-change) $(objpfx)summary-tmp $(objpfx)summary.texi + touch $@ + +# Generate a file which can be added to the `dir' content to provide direct +# access to the documentation of the function, variables, and other +# definitions. +$(objpfx)dir-add.texi: xtract-typefun.awk $(texis-path) + (echo "@dircategory GNU C library functions and macros"; \ + echo "@direntry"; \ + $(AWK) -f $^ | sort; \ + echo "@end direntry") > $@.new + mv -f $@.new $@ + +# The table with the math errors is generated. +$(objpfx)libm-err.texi: $(objpfx)stamp-libm-err +$(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ + $(dir)/libm-test-ulps)) + pwd=`pwd`; \ + $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp + $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi + touch $@ + +# Generate a file with the version number. +$(objpfx)version.texi: $(objpfx)stamp-version ; +$(objpfx)stamp-version: $(common-objpfx)config.make + echo "@set VERSION $(version)" > $(objpfx)version-tmp + $(move-if-change) $(objpfx)version-tmp $(objpfx)version.texi + touch $@ + +# Generate Texinfo files from the C source for the example programs. +$(objpfx)%.c.texi: examples/%.c + sed -e '1,/^\*\/$$/d' \ + -e 's,[{}],@&,g' \ + -e 's,/\*\(@.*\)\*/,\1,g' \ + -e 's,/\* *,/* @r{,g' -e 's, *\*/,} */,' \ + -e 's/\(@[a-z][a-z]*\)@{\([^}]*\)@}/\1{\2}/g'\ + $< | expand > $@.new + mv -f $@.new $@ + +$(objpfx)%.info: %.texinfo + LANGUAGE=C LC_ALL=C $(MAKEINFO) -P $(objpfx) --output=$@ $< + +$(objpfx)%.dvi: %.texinfo + cd $(objpfx);$(TEXI2DVI) -I $(shell cd $(/dev/null 2>&1; then \ + test -f $(inst_infodir)/dir || $(INSTALL_DATA) dir $(inst_infodir);\ + $(INSTALL_INFO) --info-dir=$(inst_infodir) $(inst_infodir)/libc.info;\ + else : ; fi +endif +# Catchall implicit rule for other installation targets from the parent. +install-%: ; + +$(inst_infodir)/libc.info: $(objpfx)libc.info + $(make-target-directory) + for file in $<*; do \ + $(INSTALL_DATA) $$file $(@D)/; \ + done + +TAGS: $(minimal-dist) + $(ETAGS) -o $@ $^ diff --git a/sysdeps/gnu/Makefile b/sysdeps/gnu/Makefile index 97fcb6fb9..a6bfc9487 100644 --- a/sysdeps/gnu/Makefile +++ b/sysdeps/gnu/Makefile @@ -18,7 +18,7 @@ # Generate the list of strings for errno codes from the section of the # manual which documents the codes. -$(..)sysdeps/gnu/errlist.c: $(..)sysdeps/gnu/errlist.awk \ +$(..)sysdeps/gnu/errlist-disabled.c: $(..)sysdeps/gnu/errlist.awk \ $(..)manual/errno.texi $(AWK) -f $^ > $@-tmp # Make it unwritable so noone will edit it by mistake. diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile index 039bcfc04..b387c5e6b 100644 --- a/sysdeps/mach/hurd/Makefile +++ b/sysdeps/mach/hurd/Makefile @@ -88,7 +88,7 @@ $(common-objpfx)errnos.d: $(mach-errnos-deps) -e 's, \.\./, $(..),g' > $@t mv -f $@t $@ -$(hurd)/bits/errno.h: $(common-objpfx)stamp-errnos ; +$(hurd)/bits/errno-disabled.h: $(common-objpfx)stamp-errnos ; $(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \ $(mach-errnos-deps) $(common-objpfx)errnos.d mkdir -p $(hurd-objpfx)bits -- 2.30.2