From e06ed443542d3fbd8a070e08d275db10bec9d353 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Thu, 19 Oct 2017 20:06:26 +0200 Subject: Rewrite and relicense MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- .gitignore | 17 +- COPYING | 22 - DEPENDENCIES | 25 - LICENSE | 15 + Makefile | 32 + Makefile.in | 88 --- NEWS | 6 - config.mk | 6 + configure | 49 -- doc/info/appx/fdl.texinfo | 505 -------------- .../free-software-needs-free-documentation.texinfo | 31 - doc/info/chap/invoking.texinfo | 31 - doc/info/chap/overview.texinfo | 9 - doc/info/content.texinfo | 28 - doc/info/hardcopy-copying.texinfo | 70 -- doc/info/reusable/macros.texinfo | 48 -- doc/info/reusable/paper.texinfo | 109 --- doc/info/reusable/titlepage.texinfo | 79 --- doc/info/titlepage-data.texinfo | 23 - doc/info/vtchs.texinfo | 104 --- doc/man/vtchs.1 | 42 -- mk/README | 71 -- mk/all.mk | 31 - mk/clean.mk | 45 -- mk/configure | 733 --------------------- mk/copy.mk | 78 --- mk/dist.mk | 189 ------ mk/empty.mk | 94 --- mk/lang-c.mk | 207 ------ mk/lowerpath.mk | 279 -------- mk/man.mk | 111 ---- mk/path.mk | 176 ----- mk/prologue.mk | 16 - mk/tags.mk | 25 - mk/texinfo.mk | 287 -------- mk/tools.mk | 163 ----- src/vtchs.c | 51 -- vtchs.1 | 42 ++ vtchs.c | 45 ++ 39 files changed, 142 insertions(+), 3840 deletions(-) delete mode 100644 COPYING delete mode 100644 DEPENDENCIES create mode 100644 LICENSE create mode 100644 Makefile delete mode 100644 Makefile.in delete mode 100644 NEWS create mode 100644 config.mk delete mode 100755 configure delete mode 100644 doc/info/appx/fdl.texinfo delete mode 100644 doc/info/appx/free-software-needs-free-documentation.texinfo delete mode 100644 doc/info/chap/invoking.texinfo delete mode 100644 doc/info/chap/overview.texinfo delete mode 100644 doc/info/content.texinfo delete mode 100644 doc/info/hardcopy-copying.texinfo delete mode 100644 doc/info/reusable/macros.texinfo delete mode 100644 doc/info/reusable/paper.texinfo delete mode 100644 doc/info/reusable/titlepage.texinfo delete mode 100644 doc/info/titlepage-data.texinfo delete mode 100644 doc/info/vtchs.texinfo delete mode 100644 doc/man/vtchs.1 delete mode 100644 mk/README delete mode 100644 mk/all.mk delete mode 100644 mk/clean.mk delete mode 100644 mk/configure delete mode 100644 mk/copy.mk delete mode 100644 mk/dist.mk delete mode 100644 mk/empty.mk delete mode 100644 mk/lang-c.mk delete mode 100644 mk/lowerpath.mk delete mode 100644 mk/man.mk delete mode 100644 mk/path.mk delete mode 100644 mk/prologue.mk delete mode 100644 mk/tags.mk delete mode 100644 mk/texinfo.mk delete mode 100644 mk/tools.mk delete mode 100644 src/vtchs.c create mode 100644 vtchs.1 create mode 100644 vtchs.c diff --git a/.gitignore b/.gitignore index 233dfb0..a377a7b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,19 +1,6 @@ -_/ -/bin/ -/obj/ -/aux/ -\#*\# -.* -!.git* *~ -*.swo -*.swp -*.bak -*.new +*\#* *.out *.o *.su -*.gch -/Makefile -/config.status - +/vtchs diff --git a/COPYING b/COPYING deleted file mode 100644 index b253b5b..0000000 --- a/COPYING +++ /dev/null @@ -1,22 +0,0 @@ -MIT/X Consortium License - -Copyright © 2015 Mattias Andrée - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - diff --git a/DEPENDENCIES b/DEPENDENCIES deleted file mode 100644 index 34266f3..0000000 --- a/DEPENDENCIES +++ /dev/null @@ -1,25 +0,0 @@ -RUNTIME DEPENDENCIES - - libc - linux - - -BUILD DEPENDENCIES - - libc - linux-api-headers - cc - make - coreutils - texinfo>=4.11 (opt-out, for info, pdf, dvi, ps, and html manuals) - texlive-plainextra (opt-in, for pdf, dvi, and ps manuals) - - texinfo<4.11 can be used if '@frenchspacing on' is removed. - - -INSTALL DEPENDENCIES - - make - coreutils - texinfo (opt-out, for dir-entry of info manual) - diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..53d4a24 --- /dev/null +++ b/LICENSE @@ -0,0 +1,15 @@ +ISC License + +© 2015, 2017 Mattias Andrée + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bae4d19 --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ +.POSIX: + +CONFIGFILE = config.mk +include $(CONFIGFILE) + +all: vtchs + +.o: + $(CC) -o $@ $^ $(LDFLAGS) + +.c.o: + $(CC) -c -o $@ $< $(CPPFLAGS) $(CFLAGS) + +install: vtchs + mkdir -p -- "$(DESTDIR)$(PREFIX)/bin" + mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man1" + mkdir -p -- "$(DESTDIR)$(PREFIX)/share/licenses/vtchs" + cp vtchs -- "$(DESTDIR)$(PREFIX)/bin/" + cp vtchs.1 -- "$(DESTDIR)$(MANPREFIX)/man1/" + cp LICENSE -- "$(DESTDIR)$(PREFIX)/share/licenses/vtchs/" + +uninstall: + -rm -f -- "$(DESTDIR)$(PREFIX)/bin/vtchs" + -rm -f -- "$(DESTDIR)$(MANPREFIX)/man1/vtchs.1" + -rm -rf -- "$(DESTDIR)$(PREFIX)/share/licenses/vtchs" + +clean: + -rm -f - vtchs *o + +.SUFFIXES: .o .c.o + +.PHONY: all install uninstall clean diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 4c21d01..0000000 --- a/Makefile.in +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -### This file will be stored to Makefile once you have run ./configure. ### -### See INSTALL for information on how to install this package. ### - - - -# List of man page translations to install. -MAN_LOCALES = - -# Can change these variables with ./configure in the same why you -# would configure them when running make. - - - -##### What is below this line is configurable, but is seldom useful. ##### - - -# Additional options for compiling DVI, PDF, and PostScript manuals. -TEXINFO_FLAGS = - -# The name of the command as it should be installed. -COMMAND = vtchs - -# The name of the package as it should be installed. -PKGNAME = vtchs - - - -##### Nothing interesting below this. ##### - - -# In case you want add some configurations. Primarily -# intended for maintainers. Perhaps add GPG_KEY here. -# Of course, you can declare everthing with ./configure, -# but with this you are less likely to forget it. --include .make-configurations - - -# YOU, AS A USER, SHOULD NOT CHANGE THESE VARIABLES. {{ -# They specify how the reusable makefiles in mk/ shall behave. - -# Package information. -_PROJECT = vtchs -_VERSION = 1.0 - -# Used by mk/lang-c.mk -_C_STD = c99 -_PEDANTIC = yes -_BIN = vtchs -_OBJ_vtchs = vtchs -_HEADER_DIRLEVELS = 0 -_CPPFLAGS = -D'PACKAGE="$(PKGNAME)"' -D'PROGRAM_VERSION="$(_VERSION)"' - -# Used by mk/texinfo.mk -_TEXINFO_DIRLEVELS = 2 -_INFOPARTS = 0 -_HAVE_TEXINFO_MANUAL = yes -_HTML_FILES = Free-Software-Needs-Free-Documentation.html GNU-Free-Documentation-License.html \ - index.html Invoking.html Overview.html - -# Used by mk/man.mk -_MAN_PAGE_SECTIONS = 1 -_MAN_1 = vtchs - -# Used by mk/copy.mk -_COPYING = COPYING - -# Used by mk/dist.mk -___EVERYTHING_INFO = vtchs titlepage-data content hardcopy-copying \ - appx/fdl appx/free-software-needs-free-documentation \ - chap/invoking chap/overview \ - reusable/macros reusable/paper reusable/titlepage -_EVERYTHING = $(foreach F,$(___EVERYTHING_INFO),doc/info/$(F).texinfo) \ - $(__EVERYTHING_ALL_COMMON) DEPENDENCIES INSTALL NEWS - -# }} - - -# All of the make rules and the configurations. -include $(v)mk/all.mk - diff --git a/NEWS b/NEWS deleted file mode 100644 index 801b7c4..0000000 --- a/NEWS +++ /dev/null @@ -1,6 +0,0 @@ -vtchs NEWS -*- outline -*- - -* Noteworthy changes in release 1.0 (2014-(12)Dec-17 UTC) [stable] - - Initial release. - diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..9e148ca --- /dev/null +++ b/config.mk @@ -0,0 +1,6 @@ +PREFIX = /usr/local +MANPREFIX = $(PREFIX)/share/man + +CFLAGS = -std=c99 -Wall -Wextra -O2 +CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 +LDFLAGS = -s diff --git a/configure b/configure deleted file mode 100755 index b996307..0000000 --- a/configure +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -# Run './configure --help' for usage information. - - -PKGNAME=vtchs -MAN_SECTION_SUFFIX= -MAN_SECTION=1 - - -list_optional_features_help () -{ - true -} - -unrecognised_argument () -{ - option="${1}" - case "${option}" in - (--build | --target | --host) - incomplete="${option}" ;; - (--build=*) - ;; - (--target=*) - ;; - (--host=*) - ;; - (*) - ;; - esac -} - -. "$(dirname "${0}")"/mk/configure - - -cat </dev/null - )" -@end example - diff --git a/doc/info/chap/overview.texinfo b/doc/info/chap/overview.texinfo deleted file mode 100644 index 937bfa9..0000000 --- a/doc/info/chap/overview.texinfo +++ /dev/null @@ -1,9 +0,0 @@ -@node Overview -@chapter Overview - -When @command{vtchs} starts, it prints the -number of the current console in the foreground. -Then, in an infinite loop, it waits for the user -to change console, and prints the number of the -new foregorund console when this happens. - diff --git a/doc/info/content.texinfo b/doc/info/content.texinfo deleted file mode 100644 index cbe0031..0000000 --- a/doc/info/content.texinfo +++ /dev/null @@ -1,28 +0,0 @@ -@c This file includes everything after the titlepage. - - -@ifnothtml -@c @shortcontents @c (if the table of content gets too large.) -@contents -@end ifnothtml - - -@menu -* Overview:: Brief overview of @command{vtchs}. -* Invoking:: Invocation of @command{vtchs}. - -* Free Software Needs Free Documentation:: Why free documentation is important. -* GNU Free Documentation License:: Copying and sharing this manual. -@end menu -@c In GNU Emacs a @detailmenu can be created with `C-c C-u m`. - - -@include chap/overview.texinfo -@include chap/invoking.texinfo - -@include appx/free-software-needs-free-documentation.texinfo - -@node GNU Free Documentation License -@appendix GNU Free Documentation License -@include appx/fdl.texinfo - diff --git a/doc/info/hardcopy-copying.texinfo b/doc/info/hardcopy-copying.texinfo deleted file mode 100644 index cd2a6cc..0000000 --- a/doc/info/hardcopy-copying.texinfo +++ /dev/null @@ -1,70 +0,0 @@ -@c --- This is a template for the hardcopy-copying.texinfo file. --- - -@c Uncomment this when dead tree editions can be ordered. -@c @set HARDCOPY_AVAILABLE - - -@set PRINTINGNUMBER First -@set PRINTINGDATE Januari 0000 -@set ISBNNUMBER 0000000000 - -@ifset HARDCOPY -@copying -@ifset VERSION -This manual documents @value{programnamewiththe} version @value{VERSION}@. -@end ifset -@ifclear VERSION -This manual documents @value{programnamewiththe}. -@end ifclear -@* -@ifset EDITION -@sc{ISBN} @value{ISBNNUMBER}, @value{EDITION} Edition, @value{PRINTINGNUMBER} Printing, @value{PRINTINGDATE}. -@end ifset -@ifclear EDITION -@sc{ISBN} @value{ISBNNUMBER}, @value{PRINTINGNUMBER} Printing, @value{PRINTINGDATE}. -@end ifclear -@* - -Printed by: -@* - -X - -@*@* -Copyright @copyright{} 2015 Mattias Andrée @e{maandree@@member.fsf.org} -@* - -@c The copyright information from the main file, add any required -@c Invariant Sections being used on the dead tree edition. -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version@tie{}1.3 or -any later version published by the Free Software Foundation; -with the Invariant Sections being -``Free Software Needs Free Documentation'', -the ``GNU General Public License'', -the ``GNU Free Documentation License'', -with no Front-Cover Texts, -and with no Back-Cover Texts. -A copy of the license is included in the section entitled -``GNU Free Documentation License''. -@c THIS WAS LAST UPPDATE 2015-DECEMBER-17 UTC -@c AUTHORITATIVE COPYRIGHT INFORMATION IS AVAILABLE -@c IN vtchs.texinfo. THIS FILL MUST BE UPDATED -@c BEFORE PRINTING. - -@* -Cover art by XY Z. Cover design by XY Z. Printed in XYZ. -@end copying -@end ifset - - - -@ifclear HARDCOPY -@ifset HARDCOPY_AVAILABLE -@macro orderhardcopy{} -If you prefer a dead tree edition, you can order one from -... -@endif -@end ifset -@end ifclear - diff --git a/doc/info/reusable/macros.texinfo b/doc/info/reusable/macros.texinfo deleted file mode 100644 index 8d95983..0000000 --- a/doc/info/reusable/macros.texinfo +++ /dev/null @@ -1,48 +0,0 @@ -@c GENERAL ADVICE. -@c Because of an previous regression bug in Texinfo -@c it is a good idea to use @w around lines using -@c macros. - - -@c Use this comment to get a good looking e-mail -@c address in both the info output and the TeX -@c processed output. -@iftex -@macro e{a} -(@email{\a\}) -@end macro -@end iftex -@ifnottex -@macro e{a} -@email{\a\} -@end macro -@end ifnottex - -@c This is intented do be used inside @example. -@c At the beginning of non-code text in a source -@c code comment, use this macro to make it look -@c good in TeX processed output. End with @xtt. -@iftex -@macro xrm{} -@rm{} -@end macro -@end iftex -@ifnottex -@macro xrm{} -@end macro -@end ifnottex - -@c This is intented do be used inside @example. -@c At the end of non-code text in a source code -@c comment, use this macro to make it look -@c good in TeX processed output. -@iftex -@macro xtt{} -@tt{} -@end macro -@end iftex -@ifnottex -@macro xtt{} -@end macro -@end ifnottex - diff --git a/doc/info/reusable/paper.texinfo b/doc/info/reusable/paper.texinfo deleted file mode 100644 index 5a6aca8..0000000 --- a/doc/info/reusable/paper.texinfo +++ /dev/null @@ -1,109 +0,0 @@ -@c This file is used, by inclusion, to allow the -@c builder to specify how output shall be formatted. - -@c On dead tree editions we defailt to smallbook format. -@ifset HARDCOPY -@ifclear USLETTER -@ifclear AFOURPAPER -@ifclear AFIVEPAPER -@ifclear SMALLBOOK -@set SMALLBOOK -@end ifclear -@end ifclear -@end ifclear -@end ifclear -@end ifset - -@c On dead tree editions the heading on the left page -@c is different from the heading on the right page. -@c On online editions the heading is identical on the -@c left pages and on the right pages. -@ifclear SINGLE_HEADINGS -@ifclear DOUBLE_HEADINGS -@ifclear HARDCOPY -@set SINGLE_HEADINGS -@end ifclear -@ifset HARDCOPY -@set DOUBLE_HEADINGS -@end ifset -@end ifclear -@end ifclear - -@c Apply paper format. Default to A4. (Remember -@c dead tree editions defaulted to smallbook.) -@ifset AFIVEPAPER -@afivepaper -@end ifset -@ifset SMALLBOOK -@smallbook -@end ifset -@ifclear AFIVEPAPER -@ifclear SMALLBOOK -@ifclear USLETTER -@afourpaper -@set AFOURPAPER -@end ifclear -@end ifclear -@end ifclear -@c (Texinfo defaults to US letter, thus nothing is -@c done for USLETTER.) - -@c Only on dead tree editions: optionally add -@c cropmarks, and by default, chapters begin -@c on odd page numbers (the right side.) -@ifset HARDCOPY -@ifset CROPMARKS -@cropmarks -@end ifset -@ifclear SKIPCHAPTERNEWPAGE -@setchapternewpage odd -@end ifclear -@end ifset - -@c Apply font size. On smallbook and A5 default to -@c 10 points, on A4 and US letter we default to -@c 11 points. -@ifclear SKIPFONTTEXTSIZE -@ifset SMALLBOOK -@set SMALLFONT -@end ifset -@ifset AFIVEPAPER -@set SMALLFONT -@end ifset -@end ifclear -@ifset SMALLFONT -@fonttextsize 10 -@end ifset -@ifclear SMALLFONT -@iftex @c Because of bug in Texinfo<=4.13 -@fonttextsize 11 -@end iftex -@end ifclear - -@c In America it is customary to have two spaces after -@c a period. It is not elsewhere. (@frenchspacing is a -@c misnomer) -@ifclear AMERICANSPACING -@frenchspacing on -@end ifclear - -@c This should only be used when writting the document. -@c It is used to locate overflows. It should be be used -@c in a printed version. It can be used in an online come -@c use users can easier detect overflows and report them. -@ifclear NOFINALOUT -@finalout -@end ifclear - - -@c Call this macro after the title page, but before the -@c table of content, or the short table of content. -@macro setheadings{} -@ifset DOUBLEHEADINGS -@headings double -@end ifset -@ifset SINGLEHEADINGS -@headings single -@end ifset -@end macro - diff --git a/doc/info/reusable/titlepage.texinfo b/doc/info/reusable/titlepage.texinfo deleted file mode 100644 index 55981f7..0000000 --- a/doc/info/reusable/titlepage.texinfo +++ /dev/null @@ -1,79 +0,0 @@ -@c This file @top or @titlepage. - -@ifnottex -@node Top -@top @value{title} -- @value{subtitle} -@insertcopying -@end ifnottex - -@titlepage -@title @value{title} -@subtitle @value{subtitle} - -@c Date, edition, and version of the program. -@c Should be set on dead tree editions. Not too -@c important on online editions. -@ifset DATE -@ifset VERSION -@ifset EDITION -@subtitle @value{DATE}, @value{programname} version@tie{}@value{VERSION}, @value{EDITION} edition -@end ifset -@ifclear EDITION -@subtitle @value{DATE}, @value{programname} version@tie{}@value{VERSION} -@end ifclear -@end ifset -@ifclear VERSION -@ifset EDITION -@subtitle @value{DATE}, @value{EDITION} edition -@end ifset -@ifclear EDITION -@subtitle @value{DATE} -@end ifclear -@end ifclear -@end ifset -@ifclear DATE -@ifset VERSION -@ifset EDITION -@subtitle @value{programname} version@tie{}@value{VERSION}, @value{EDITION} edition -@end ifset -@ifclear EDITION -@subtitle @value{programname} version@tie{}@value{VERSION} -@end ifclear -@end ifset -@ifclear VERSION -@ifset EDITION -@subtitle @value{EDITION} edition -@end ifset -@end ifclear -@end ifclear - -@ifset LOGO -@vskip 0pt plus 1filll -@c This way, it is centered exactly in pdf and approximently -@c in dvi and ps. @center does not work for @image in dvi and ps. -@multitable @columnfractions 0.15 0.7 -@item @tab @center @image{../logo,250px} -@end multitable -@vskip 0pt plus 2filll -@end ifset -@authors{} - -@page -@ifset HARDCOPY -@vskip 0pt plus 1filll -@insertcopying -@page -@end ifset -@ifset HAVE_DEDICATION -@dedication{} -@end ifset -@ifclear HARDCOPY -@vskip 0pt plus 1filll -@ifset HARDCOPY_AVAILABLE -@orderhardcopy{} -@* -@end ifset -@insertcopying -@end ifclear -@end titlepage - diff --git a/doc/info/titlepage-data.texinfo b/doc/info/titlepage-data.texinfo deleted file mode 100644 index bf6bd3f..0000000 --- a/doc/info/titlepage-data.texinfo +++ /dev/null @@ -1,23 +0,0 @@ -@c The title and the subtitle of the manual. -@set title vtchs -@set subtitle Listen for VT switches - -@c The full name of the documented program or package. -@set programname @command{vtchs} -@set programnamewiththe @command{vtchs} - - -@c Authors of the manual. Included at the bottom -@c of the titlepage on TeX processed output. -@macro authors{} -@author by Mattias Andrée (maandree) -@end macro - - -@c Dedication for TeX processed output. -@c @set HAVE_DEDICATION -@c @macro dedication{} -@c @center `' -@c @end macro -@c (I don't use dedications, I use quotes.) - diff --git a/doc/info/vtchs.texinfo b/doc/info/vtchs.texinfo deleted file mode 100644 index d9a92fc..0000000 --- a/doc/info/vtchs.texinfo +++ /dev/null @@ -1,104 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header -@documentencoding UTF-8 -@include reusable/macros.texinfo -@copying -@c -------------------------------------------------------------------------------- -Copyright @copyright{} 2015 @w{Mattias Andrée @e{maandree@@member.fsf.org}} - -@quotation -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version@tie{}1.3 or -any later version published by the Free Software Foundation; with the -Invariant Sections being ``Free Software Needs Free Documentation'', the -``GNU General Public License'', the ``GNU Free Documentation License'', -with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the -license is included in the section entitled ``GNU Free Documentation License''. -@end quotation -@c THIS WAS LAST CHANGED 2015-DECEMBER-17 UTC -@c When updated, please remember to update hardcopy-copying.texinfo too. -@c -------------------------------------------------------------------------------- -@end copying - -@setfilename vtchs.info -@settitle vtchs -@documentlanguage en_GB -@include titlepage-data.texinfo - -@c You can change the title of the document in dir by compiling with -@c TEXINFO_FLAGS='--texinfo="@set CATEGORY your_new_category"' -@ifclear CATEGORY -@set CATEGORY Miscellaneous -@end ifclear - -@dircategory @value{CATEGORY} -@direntry -* vtchs: (vtchs). @value{subtitle} -@end direntry - -@documentdescription -User manual for vtchs. -A daemon that prints the active console -when the console is switched. -@end documentdescription -@c %**end of header - - -@iftex -@c @set USLETTER -@c @set AFOURPAPER -@c @set AFIVEPAPER -@c @set SMALLBOOK - -@c @set HARDCOPY -@c @set CROPMARKS -@c @set SKIPCHAPTERNEWPAGE -@c @set SKIPFONTTEXTSIZE -@end iftex -@c @set LOGO -@c @set DOUBLEHEADINGS -@c @set SINGLEHEADINGS -@c @set AMERICANSPACING -@c @set NOFINALOUT - -@ignore - - CROPMARKS has no effect unless HARDCOPY is set. CROPMARKS - and AFIVEPAPER (or actually @cropmarks and @afivepaper) does - not play well together. - - You can configure how TeX output files should look by uncommenting - @set commands above. Do not uncomment more than one of the paper - sizes (USLETTER, AFOURPAPER, AFIVEPAPER and SMALLBOOK); if none is - uncomment AFOURPAPER will be set unless HARDCOPY is set, in which - case SMALLBOOK will be set. However, if you do not want to modify - this source file, you can run `make` with for example - `TEXINFO_FLAGS='--texinfo="@set HARDCOPY"'`. - - Finally, you can include, on the front page, the version of vtchs - that the manual is up to date with, by setting the value of VERSION - to the version of vtchs, as well as date of the last update by - setting DATE, and edition by setting EDITION. This is intended for - printed manuals. The date is recommended to not be more accurate, - or less accurate, than to the month. The edition should be formatted - as, for example, ``1@sup{st}''. - -@end ignore - -@comment You can see these too with TEXINFO_FLAGS. -@c @paragraphindent asis -@c @firstparagraphindent none -@c @exampleindent asis -@c @kbdinputstyle distinct - -@include reusable/paper.texinfo - - -@include hardcopy-copying.texinfo -@include reusable/titlepage.texinfo -@setheadings{} - -@include content.texinfo - -@bye - diff --git a/doc/man/vtchs.1 b/doc/man/vtchs.1 deleted file mode 100644 index 9c6d261..0000000 --- a/doc/man/vtchs.1 +++ /dev/null @@ -1,42 +0,0 @@ -.TH VTCHS 1 VTCHS -.SH NAME -vtchs \- Listen for VT switches -.SH ETYMOLOGY -.IR v irtual -.IR t erminal -.IR ch ange s -.SH SYNOPSIS -.B vtchs -.SH DESCRIPTION -.B vtchs -ignores all arguments. You must have set -stdin to be a -.B /dev/tty -device. -.PP -When -.B vtchs -starts, it prints the number of the -currently active console. Then, in an infinite -loop, it waits for the user to change console, -and prints the number of the newly active console -when this happens. -.SH RATIONALE -Sometimes you need to be able to know which -console is in the foreground, and stay up to -date on this. In particular, I want to be able -to record the output on the mintors, and have -it detect VT switches, so it can select the -appropriate method and display; and I want to -be able to have VT dependent colour adjustments. -.SH SEE ALSO -.BR fgconsole (1), -.BR chvt (1) -.SH AUTHORS -Principal author, Mattias Andrée. See the LICENSE file for the full -list of authors. -.SH LICENSE -MIT/X Consortium License. -.SH BUGS -Please report bugs to https://github.com/maandree/vtchs/issues or to -maandree@member.fsf.org diff --git a/mk/README b/mk/README deleted file mode 100644 index e79926d..0000000 --- a/mk/README +++ /dev/null @@ -1,71 +0,0 @@ -This is a collection of generic enough makefiles. -Please feel free to use them in your project. - -Usage: - Include all.mk from your makefile. - - Read the top of each file for details. - - Define the variables: - - _VERSION - This version of the package. - - _PROJECT - The name of the project. Must only include [a-z0-9_-]. - - _PROJECT_FULL - The name of the project. May include any character. - - _SRC - All source code files. This list is used when - generating the translation template file. - - _COPYRIGHT_HOLDER - The copyright holder's full name and e-mail address. - - COMMAND - The name of the command. Must not be declared if - the package does not include exactly one runnable - command. - - PKGNAME - The name of the package. - - Variables beginning with __ are used internally by - the files where they appear, or in rare cases, - internally between these files. - - Variables beginning with _ but not __ are set in the - makefile to specify for these files how they should - behave. They should not be changed by a user of the - package. - - Variables that do not begin with _ are configurable - by the user of the package. - - Do no use single character variables in your Makefile. - - To suppress pre-install, post-install, pre-uninstall, - and post-uninstall instructions, set N=true. - PRE_INSTALL, POST_INSTALL, PRE_UNINSTALL, and - POST_UNINSTALL are supportered as specified by the - GNU coding standardars. - - To figure out what pre-install commands to run in your package, run: - make -n a=% install | sed -e 's/\\$//' -e 's/^ *//' | sed -n '/^% /s/^..//p' - - To figure out what post-install commands to run in your package, run: - make -n z=% uninstall | sed -e 's/\\$//' -e 's/^ *//' | sed -n '/^% /s/^..//p' - - To figure out what pre-uninstall commands to run in your package, run: - make -n a=% uninstall | sed -e 's/\\$//' -e 's/^ *//' | sed -n '/^% /s/^..//p' - - To figure out what post-uninstall commands to run in your package, run: - make -n z=% uninstall | sed -e 's/\\$//' -e 's/^ *//' | sed -n '/^% /s/^..//p' - - To suppress verbatim which commands Make runs, - set Q=@. (Excluding the period.) - -Developers should use DEBUG=1 when running make, when possible. - diff --git a/mk/all.mk b/mk/all.mk deleted file mode 100644 index 0918306..0000000 --- a/mk/all.mk +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== This file includes all the other files in appropriate order. ===# - - -ifndef Q -A = \e[35m -Z =  -endif - -include $(v)mk/path.mk -include .config.mk -include $(v)mk/path.mk -include $(v)mk/lowerpath.mk -include $(v)mk/empty.mk -include $(v)mk/tools.mk -include $(v)mk/copy.mk -include $(v)mk/lang-c.mk -include $(v)mk/texinfo.mk -include $(v)mk/man.mk -include $(v)mk/clean.mk -include $(v)mk/dist.mk -include $(v)mk/tags.mk -include $(v)mk/prologue.mk - diff --git a/mk/clean.mk b/mk/clean.mk deleted file mode 100644 index d0a97c4..0000000 --- a/mk/clean.mk +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== These rules are used for cleaning the repository of generated files. ===# - - -# Delete all files are normally created during a build. -.PHONY: clean -clean: clean-dist - @$(PRINTF_INFO) '\e[00;01;31mCLEANING BUILT FILES\e[34m\e[00m\n' - -$(Q)$(RM) -r -- bin aux - @$(ECHO) - -# Delete all files that are created during configuration or building. -.PHONY: distclean -distclean: clean - @$(PRINTF_INFO) '\e[00;01;31mCLEANING CONFIGURATIONS\e[34m\e[00m\n' - -$(Q)$(RM) -- .config.mk config.status Makefile - @$(ECHO) - -# Like `make clean` but do not remove massive binaries -# that are seldom recompiled. -.PHONY: mostlyclean -mostlyclean: clean - -# Delete everything except ./configure -.PHONY: maintainer-clean -maintainer-clean: clean distclean - @$(ECHO) - @$(ECHO) 'This command is intended for maintainers to use; it' - @$(ECHO) 'deletes files that may need special tools to rebuild.' - @$(ECHO) - -# Delete all files generated by `make dist` -.PHONY: clean-dist -clean-dist: - @$(PRINTF_INFO) '\e[00;01;31mCLEANING RELEASES\e[34m\e[00m\n' - -$(Q)$(RM) -r -- $(_PROJECT)-*.tar* $(_PROJECT)-*.checksums* $(_PROJECT)-* - @$(ECHO) - diff --git a/mk/configure b/mk/configure deleted file mode 100644 index 732163e..0000000 --- a/mk/configure +++ /dev/null @@ -1,733 +0,0 @@ -# -*- shell-script -*- - -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -# Run './configure --help' for usage information. - - -# FOR DEVELOPERS USING THIS SCRIPT: -# This file is used by include this file, via the . builtin, -# in your ./configure. Before doing so, you must declare -# PKGNAME=the_name_of_your_package -# MAN_SECTION_SUFFIX=default_suffix_to_append_to_man_page_section # (usually empty) -# MAN_SECTION=the_section_your_man_page_is_in # (do no declare if you do not use exacly one section) -# Define the function list_optional_features_help, see the help output. -# Define the function unrecognised_argument to deal with any unrecognised argument. - - - -# Store command for rebuilding Makefile to config.status. -exec 10>config.status - -# Store configurations to .config.mk. -exec 20>.config.mk - - -# Print a quoted (if necessary) version of a string -quote () -{ - value="$1" - if ! test "${value%%\'*}" = "${value}"; then - value="'$(echo "${value}" | sed "s/'/'\\\\''/g")'" - elif ! test "$(printf '%s' ${value})" = "${value}"; then - value="'${value}'" - fi - echo "${value}" -} - - -# Parse command line. -incomplete= -dashed= -f_help= -f_gnulinux= -f_bin_merger= -for option; do - if test -n "${incomplete}"; then - option="${incomplete}=${option}" - incomplete= - fi - - # For --{with{,out},{en,dis}able}-*. - feature="${option#--*}" - feature="${feature#*-}" - feature="$(echo "${feature}" | tr qwertyuiopasdfghjklzxcvbnm- QWERTYUIOPASDFGHJKLZXCVBNM_)" - - # For directories and filename tweaks. - nodash=_novar - - case "${dashed}${option}" in -# general - (--) - dashed=yes ;; - (--help) - f_help=yes ;; - (--destdir | --destdir=* | --pkgdir | --pkgdir=*) - nodash=destdir ;; - (--srcdir | --srcdir) - nodash=srcdir ;; - -# directory automation - (--gnu-linux) - f_gnulinux=yes ;; - (--bin-merger) - f_bin_merger=yes ;; - -# directories and filenames - (--prefix | --prefix=*) - nodash=prefix ;; - (--exec-prefix | --exec-prefix=* | --exec_prefix | --exec_prefix=*) - nodash=exec_prefix ;; - (--bindir | --bindir=*) - nodash=bindir ;; - (--sbindir | --sbindir=*) - nodash=sbindir ;; - (--libexecdir | --libexecdir=*) - nodash=libexecdir ;; - (--libdir | --libdir=*) - nodash=libdir ;; - (--includedir | --includedir=*) - nodash=includedir ;; - (--oldincludedir | --oldincludedir=*) - nodash=oldincludedir ;; - (--datarootdir | --datarootdir=*) - nodash=datarootdir ;; - (--datadir | --datadir=*) - nodash=datadir ;; - (--libdatarootdir | --libdatarootdir=*) - nodash=libdatarootdir ;; - (--libdatadir | --libdatadir=*) - nodash=libdatadir ;; - (--sysconfdir | --sysconfdir=*) - nodash=sysconfdir ;; - (--sharedstatedir | --=sharedstatedir*) - nodash=sharedstatedir ;; - (--localstatedir | --localstatedir=*) - nodash=localstatedir ;; - (--runstatedir | --runstatedir=*) - nodash=runstatedir ;; - (--lispdir | --lispdir=*) - nodash=lispdir ;; - (--localedir | --localedir=*) - nodash=localedir ;; - (--licensedir | --licensedir=*) - nodash=licensedir ;; - (--emptydir | --emptydir=*) - nodash=emptydir ;; - (--cachedir | --cachedir=*) - nodash=cachedir ;; - (--spooldir | --spooldir=*) - nodash=spooldir ;; - (--logdir | --logdir=*) - nodash=logdir ;; - (--statedir | --statedir=*) - nodash=statedir ;; - (--gamedir | --gamedir=*) - nodash=gamedir ;; - (--sharedcachedir | --sharedcachedir=*) - nodash=sharedcachedir ;; - (--sharedspooldir | --sharedspooldir=*) - nodash=sharedspooldir ;; - (--sharedlogdir | --sharedlogdir=*) - nodash=sharedlogdir ;; - (--sharedstatedir | --sharedstatedir=*) - nodash=sharedstatedir ;; - (--sharedgamedir | --sharedgamedir=*) - nodash=sharedgamedir ;; - (--tmpdir | --tmpdir=*) - nodash=tmpdir ;; - (--localtmpdir | --localtmpdir=*) - nodash=localtmpdir ;; - (--sharedtmpdir | --sharedtmpdir=*) - nodash=sharedtmpdir ;; - (--lockdir | --lockdir=*) - nodash=lockdir ;; - (--skeldir | --skeldir=*) - nodash=skeldir ;; - (--devdir | --devdir=*) - nodash=devdir ;; - (--sysdir | --sysdir=*) - nodash=sysdir ;; - (--procdir | --procdir=*) - nodash=procdir ;; - (--selfprocdir | --selfprocdir=*) - nodash=selfprocdir ;; - (--docdir | --docdir=*) - nodash=docdir ;; - (--infodir | --infodir=*) - nodash=infodir ;; - (--dvidir | --dvidir=*) - nodash=dvidir ;; - (--pdfdir | --pdfdir=*) - nodash=pdfdir ;; - (--psdir | --psdir=*) - nodash=psdir ;; - (--htmldir | --htmldir=*) - nodash=htmldir ;; - (--mandir | --mandir=*) - nodash=mandir ;; - (--man0 | --man0=*) - nodash=man0 ;; - (--man1 | --man1=*) - nodash=man1 ;; - (--man2 | --man2=*) - nodash=man2 ;; - (--man3 | --man3=*) - nodash=man3 ;; - (--man4 | --man4=*) - nodash=man4 ;; - (--man5 | --man5=*) - nodash=man5 ;; - (--man6 | --man6=*) - nodash=man6 ;; - (--man7 | --man7=*) - nodash=man7 ;; - (--man8 | --man8=*) - nodash=man8 ;; - (--man9 | --man9=*) - nodash=man9 ;; - (--man0ext | --man0ext=*) - nodash=man0ext ;; - (--man1ext | --man1ext=*) - nodash=man1ext ;; - (--man2ext | --man2ext=*) - nodash=man2ext ;; - (--man3ext | --man3ext=*) - nodash=man3ext ;; - (--man4ext | --man4ext=*) - nodash=man4ext ;; - (--man5ext | --man5ext=*) - nodash=man5ext ;; - (--man6ext | --man6ext=*) - nodash=man6ext ;; - (--man7ext | --man7ext=*) - nodash=man7ext ;; - (--man8ext | --man8ext=*) - nodash=man8ext ;; - (--man9ext | --man9ext=*) - nodash=man9ext ;; - (--manext | --manext=*) - if test -n "${MAN_SECTION}"; then - nodash=manext - else - printf "\e[01;31m%s: warning: ignoring: %s\e[00m\n" "${0}" "${option}" >&2 - sleep 1 - fi - ;; - -# ignored - # Unrecognised directories, and settings that cannot be used with internationalisation. - (--*dir=* | --*dir | --man?dir | --man?dir=*) - printf "\e[01;31m%s: warning: ignoring: %s\e[00m\n" "${0}" "${option}" >&2 - sleep 1 - ;; - -# feature tweaking - (--with-*) - feature="WITH_${feature}" - echo "${feature}" = yes >&20 - export "${feature}"=yes - option="${option}=x" - ;; - - (--without-*) - feature="WITHOUT_${feature}" - echo "${feature}" = yes >&20 - export "${feature}"=yes - option="${option}=x" - ;; - - (--enable-*=*) - param="${feature#*=}" - feature="${feature%%=*}" - if ! test "${param}" = "no"; then - feature="ENABLE_${feature}" - else - feature="DISABLE_${feature}" - param=yes - fi - echo "${feature}" = "${param}" >&20 - export "${feature}"="${param}" - ;; - - (--enable-*) - feature="DISABLE_${feature}" - echo "${feature}" = yes >&20 - export "${feature}"=yes - option="${option}=x" - ;; - - (--disable-*) - feature="DISABLE_${feature}" - echo "${feature}" = yes >&20 - export "${feature}"=yes - option="${option}=x" - ;; - -# unrecognised - (${dashed}--*) - unrecognised_argument "${option}" - ;; - -# variables - (${dashed}*=*) - var="${option%%=*}" - val="${option#*=}" - if test -n "$(echo "${var}" | tr -d '[_a-zA-Z0-9-]')"; then - # Variable is not used and is potentially not - # formatted in a compatible way. - printf "\e[01;31m%s: warning: ignoring because of bad format: %s\e[00m\n" "${0}" "${option}" >&2 - sleep 1 - fi - echo "${var}" = "${val}" >&20 - ;; - -# unrecognised - (*) - unrecognised_argument "${option}" - ;; - esac - - if test "${option%%=*}" = "${option}"; then - incomplete="${option}" - else - eval "${nodash}=$(quote "${option#*=}")" - eval "have_${nodash}=yes" - fi -done - - -# Print usage information. This is parsed by -# the auto-completion script for ./configure. -if test -n "${f_help}"; then - cat <&10 -echo >&10 -echo '# This file was generated by ./configure, its purpose is two-fold:' >&10 -echo '# 1) It lets you rebuild Makefile with the same configurations you' >&10 -echo '# used last time you run ./configure.' >&10 -echo '# 2) It lets Makefile rebuild itself transparently when out of date.' >&10 -echo >&10 - -# config.status should adjust CWD. -echo 'cd "$(dirname "${0}")"' >&10 - -# config.status calls ./configure with all arguments you called ./configure. -printf "exec %s" "${0}" >&10 -for option; do - printf " %s" "$(quote "${option}")" >&10 -done -echo >&10 - -# Close config.status. -exec 10>&- - - -# Store environment (with restrictions). -env | while read line; do - var="${line%%=*}" - val="${line#*=}" - if test "${var}" = "${line}"; then - # Malformated variables. (Can happen!, sigh...) - continue - elif test -n "$(echo "${var}" | tr -d '[_a-zA-Z0-9-]')"; then - # Variable is not used and is potentially not - # formatted in a compatible way. - continue - fi - case "${var}" in - (_ | PWD | SHELL | SHLVL | TERM | COLORTERM | MAKEFLAGS) - # We do not want to propagate these. - ;; - (*) - echo "${var}" = "${val}" >&20 - ;; - esac -done - -# Store directories and filenames. -if test -n "${destdir}"; then - echo DESTDIR = "${destdir}" >&20 -fi -echo PREFIX = "${prefix}" >&20 -echo SYSCONFDIR = "${sysconfdir}" >&20 -echo COMDIR = "${sharedstatedir}" >&20 -echo VARDIR = "${localstatedir}" >&20 -echo RUNDIR = "${runstatedir}" >&20 -echo TMPDIR = "${tmpdir}" >&20 -echo DEVDIR = "${devdir}" >&20 -echo SYSDIR = "${sysdir}" >&20 -echo PROCDIR = "${procdir}" >&20 -echo EXEC_PREFIX = "${exec_prefix}" >&20 -echo BINDIR = "${bindir}" >&20 -echo SBINDIR = "${sbindir}" >&20 -echo LIBEXECDIR = "${libexecdir}" >&20 -echo LIBDIR = "${libdir}" >&20 -echo INCLUDEDIR = "${includedir}" >&20 -echo OLDINCLUDEDIR = "${oldincludedir}" >&20 -echo DATADIR = "${datarootdir}" >&20 -echo RESDIR = "${datadir}" >&20 -echo SYSDEPDATADIR = "${libdatarootdir}" >&20 -echo SYSDEPRESDIR = "${libdatadir}" >&20 -echo LISPDIR = "${lispdir}" >&20 -echo LOCALEDIR = "${localedir}" >&20 -echo LICENSEDIR = "${licensedir}" >&20 -echo CACHEDIR = "${cachedir}" >&20 -echo SPOOLDIR = "${spooldir}" >&20 -echo EMPTYDIR = "${emptydir}" >&20 -echo LOGDIR = "${logdir}" >&20 -echo STATEDIR = "${statedir}" >&20 -echo GAMEDIR = "${gamedir}" >&20 -echo COMCACHEDIR = "${sharedcachedir}" >&20 -echo COMPOOLDIR = "${sharedpooldir}" >&20 -echo COMLOGDIR = "${sharedlogdir}" >&20 -echo COMSTATEDIR = "${sharedstatedir}" >&20 -echo COMGAMEDIR = "${sharedgamedir}" >&20 -echo LOCALTMPDIR = "${localtmpdir}" >&20 -echo SHAREDTMPDIR = "${sharedtmpdir}" >&20 -echo LOCKDIR = "${lockdir}" >&20 -echo SKELDIR = "${skeldir}" >&20 -echo SELFPROCDIR = "${selfprocdir}" >&20 -echo DOCDIR = "${docdir}" >&20 -echo INFODIR = "${infodir}" >&20 -echo DVIDIR = "${dvidir}" >&20 -echo PDFDIR = "${pdfdir}" >&20 -echo PSDIR = "${psdir}" >&20 -echo HTMLDIR = "${htmldir}" >&20 -echo MANDIR = "${mandir}" >&20 -echo MAN0 = "${man0}" >&20 -echo MAN1 = "${man1}" >&20 -echo MAN2 = "${man2}" >&20 -echo MAN3 = "${man3}" >&20 -echo MAN4 = "${man4}" >&20 -echo MAN5 = "${man5}" >&20 -echo MAN6 = "${man6}" >&20 -echo MAN7 = "${man7}" >&20 -echo MAN8 = "${man8}" >&20 -echo MAN9 = "${man9}" >&20 -echo MAN0EXT = "${man0ext}" >&20 -echo MAN1EXT = "${man1ext}" >&20 -echo MAN2EXT = "${man2ext}" >&20 -echo MAN3EXT = "${man3ext}" >&20 -echo MAN4EXT = "${man4ext}" >&20 -echo MAN5EXT = "${man5ext}" >&20 -echo MAN6EXT = "${man6ext}" >&20 -echo MAN7EXT = "${man7ext}" >&20 -echo MAN8EXT = "${man8ext}" >&20 -echo MAN9EXT = "${man9ext}" >&20 - -# Close .config.mk. -exec 20>&- - -# Now, make Makefile available. -if test -f Makefile; then - chmod u+w Makefile # This scripts makes it read-only. -fi -exec 30>Makefile -echo "# ----------------------------------------------------- #" >&30 -echo "# This file was created by ./configure from Makefile.in #" >&30 -echo "# ----------------------------------------------------- #" >&30 -echo >&30 -if test -n "${srcdir}"; then - echo v = "${srcdir}" >&30 -fi -cat "${srcdir_proper}"Makefile.in >&30 -exec 30>&- - - -# config.status should be executable. -chmod a+x config.status - -# Makefile should be read-only to ones does not edit it by mistake. -chmod a-w Makefile - - -# Help functions for the parent script. -test_with () -{ - with="$(eval echo '${WITH_'"${1}"'}')" - without="$(eval echo '${WITHOUT_'"${1}"'}')" - if ! test -n "${with}" && ! test -n "${without}"; then - echo "${2}" - elif ! test -n "${with}" && test -n "${without}"; then - echo "no" - elif test -n "${with}" && ! test -n "${without}"; then - echo "yes" - elif test "${2}" = yes; then - echo "no" - else - echo "yes" - fi -} -test_enable () -{ - enable="$(eval echo '${ENABLE_'"${1}"'}')" - disable="$(eval echo '${DISABLE_'"${1}"'}')" - if ! test -n "${enable}" && ! test -n "${disable}"; then - echo "${2}" - elif ! test -n "${enable}" && test -n "${disable}"; then - echo "no" - elif test -n "${enable}" && ! test -n "${disable}"; then - echo "${enable}" - elif test "${2}" = yes ; then - echo "no" - else - echo "${enable}" - fi -} - - -# After including this file, you may want -# to do something like: -# -# cat < -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== These rules are used for legal files. ===# - - -# Enables the rules: -# install-copyright Install all files in _COPYING and _LICENSE -# install-copying Install all files in _COPYING -# install-license Install all files in _LICENSE - - -# WHEN TO BUILD, INSTALL, AND UNINSTALL: - -install-base: install-copyright -uninstall: uninstall-copyright - - -# INSTALL RULES: - -.PHONY: install-copyright -install-copyright: - -ifdef _COPYING -.PHONY: install-copyright -install-copyright: install-copying - -.PHONY: install-copying -install-copying: $(foreach F,$(_COPYING),$(v)$(F)) - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(INSTALL_DIR) -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - $(Q)$(INSTALL_DATA) $^ -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - @$(ECHO_EMPTY) -endif - -ifdef _LICENSE -.PHONY: install-copyright -install-copyright: install-license - -.PHONY: install-license -install-license: $(foreach F,$(_LICENSE),$(v)$(F)) - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(INSTALL_DIR) -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - $(Q)$(INSTALL_DATA) $^ -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - @$(ECHO_EMPTY) -endif - - -# UNINSTALL RULES: - -.PHONY: uninstall-copyright -uninstall-copyright: - -ifdef _COPYING -.PHONY: uninstall-copyright -uninstall-copyright: uninstall-copying - -.PHONY: uninstall-copying -uninstall-copying: - -$(Q)$(RM) -- $(foreach F,$(_COPYING),"$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/$(F)") - -$(Q)$(RMDIR) -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" -endif - -ifdef _LICENSE -.PHONY: uninstall-copyright -uninstall-copyright: uninstall-license - -.PHONY: uninstall-license -uninstall-license: - -$(Q)$(RM) -- $(foreach F,$(_LICENSE),"$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/$(F)") - -$(Q)$(RMDIR) -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" -endif - diff --git a/mk/dist.mk b/mk/dist.mk deleted file mode 100644 index b6db9e6..0000000 --- a/mk/dist.mk +++ /dev/null @@ -1,189 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== These rules are used for making releases. ===# - - -# CONFIGURATIONS: - -# Formats for packages to generate. -DIST_FORMATS = tar tar.xz tar.bz2 tar.gz - -# Define DO_NOT_SIGN if you do not want sign the release. - -# You can select checksums to generate: -# Declaring NO_BSD_SUM will omit `sum -r`. -# Declaring NO_SYSV_SUM will omit `sum -s`. -# List all checksum programs, that do not require any flags, in DIST_CHECKSUMS. - -# Any missing flags for GnuPG? -GPG_FLAGS = - -# What key should be used for signing? -GPG_KEY ?= - -# You should define _EVERYTHING to enumerate all files that belong in -# the release tarball, lest 'git archive' will be used as a fallback. - - - -# HELP VARIALES: - -# You may use these to help list all files in _EVERYTHING -__EVERYTHING_COMMON = $(_COPYING) $(_LICENSE) README -__EVERYTHING_SRC = $(foreach F,$(_SRC),src/$(F)) -__EVERYTHING_LOCALE = $(foreach L,$(LOCALES),po/$(L).po) -__EVERYTHING_SHELL = $(foreach F,$(_AUTO_COMPLETE),src/$(F).auto-completion) \ - $(foreach F,$(_AUTO_COMPLETE),$(foreac F,$(_SHELL_LOCALES),src/$(F).$(L),auto-completion)) -__EVERYTHING_MK_ = all clean copy dist empty i18n lang-c lowerpath man path prologue tags texinfo tools -__EVERYTHING_MK = $(foreach F,$(__EVERYTHING_MK_),mk/$(F).mk) mk/configure mk/README configure Makefile.in -__EVERYTHING_MAN = $(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(S)),doc/man/$(P).$(S))) \ - $(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach L,$(MAN_LOCALES),$(foreach P,$(_MAN_$(L)_$(S)),doc/man/$(P).$(L).$(S)))) -__EVERYTHING_ALL_COMMON = $(__EVERYTHING_COMMON) $(__EVERYTHING_MK) $(__EVERYTHING_MAN) \ - $(__EVERYTHING_LOCALE) $(__EVERYTHING_SRC) $(__EVERYTHING_SHELL) -# This one (__todo) if you have a todo file, but do not want it to be greped. -__TO__ = TO -__DO__ = DO -__todo = $(__TO__)$(__DO__) - - -# The packages and there detached signatures (if any.) -ifndef DO_NOT_SIGN -__DIST_FILES = $(foreach F,$(DIST_FORMATS),$(_PROJECT)-$(_VERSION).$(F) $(_PROJECT)-$(_VERSION).$(F).sig) -endif -ifdef DO_NOT_SIGN -__DIST_FILES = $(foreach F,$(DIST_FORMATS),$(_PROJECT)-$(_VERSION).$(F)) -endif - -# All known checksum programs that are unambiguous. -__DIST_CHECKSUMS_ALL = cksum md2sum md4sum md5sum md6sum sha0sum sha1sum sha224sum \ - sha256sum sha384sum sha512sum sha512-224sum sha512-256sum \ - sha3-224sum sha3-256sum sha3-384sum sha3-512sum shake256sum \ - shake512sum rawshake256sum rawshake512sum keccak-224sum \ - keccak-256sum keccak-384sum keccak-512sum keccaksum - -# All installed checksum programs that are unambiguous. -DIST_CHECKSUMS = $(foreach C,$(__DIST_CHECKSUMS_ALL),$(shell if command -v $(C) >/dev/null; then $(ECHO) $(C); fi)) - - - -# MAKE RULES: - -# Generate release files. (Tarballs, compressed and uncompressed; signatures; checksums.) -.PHONY: dist -dist: dist-balls dist-checksums - - - -# HELP MAKE RULES: - -# Generate tarballs, compressed and uncompressed, -.PHONY: dist-balls -dist-balls: $(__DIST_FILES) - -ifndef DO_NOT_SIGN -# Generate checksums and signature of checksums. -.PHONY: dist-checksums -dist-checksums: $(_PROJECT)-$(_VERSION).checksums $(_PROJECT)-$(_VERSION).checksums.sig - -# Generate uncompressed tarball and signature of it. -.PHONY: dist-tar -dist-tar: $(_PROJECT)-$(_VERSION).tar $(_PROJECT)-$(_VERSION).tar.sig - -# Generate xz-copressed tarball and signature of it. -.PHONY: dist-xz -dist-xz: $(_PROJECT)-$(_VERSION).tar.xz $(_PROJECT)-$(_VERSION).tar.xz.sig - -# Generate bz2-copressed tarball and signature of it. -.PHONY: dist-bzip2 -dist-bz2: $(_PROJECT)-$(_VERSION).tar.bz2 $(_PROJECT)-$(_VERSION).tar.bz2.sig - -# Generate gzip-copressed tarball and signature of it. -.PHONY: dist-gz -dist-gz: $(_PROJECT)-$(_VERSION).tar.gz $(_PROJECT)-$(_VERSION).tar.sig -endif -ifdef DO_NOT_SIGN -# Generate checksums, but no signature. -.PHONY: dist-checksums -dist-checksums: $(_PROJECT)-$(_VERSION).checksums - -# Generate uncompressed tarball, but no signature. -.PHONY: dist-tar -dist-tar: $(_PROJECT)-$(_VERSION).tar - -# Generate xz-compressed tarball, but no signature. -.PHONY: dist-xz -dist-xz: $(_PROJECT)-$(_VERSION).tar.xz - -# Generate bzip2-compressed tarball, but no signature. -.PHONY: dist-bz2 -dist-bz2: $(_PROJECT)-$(_VERSION).tar.bz2 - -# Generate gzip-compressed tarball, but no signature. -.PHONY: dist-gz -dist-gz: $(_PROJECT)-$(_VERSION).tar.gz -endif - -# Generate the tarball for the release. -ifdef v -__GIT_DIR = --git-dir=$(v) -endif -$(_PROJECT)-$(_VERSION).tar: $(foreach F,$(_EVERYTHING),$(v)$(F)) - @$(PRINTF_INFO) '\e[00;01;31mTAR\e[34m %s\e[00m$A\n' "$@" - @if $(TEST) -f $@; then $(RM) $@; fi -ifndef _EVERYTHING - $(Q)git archive --prefix=$(_PROJECT)-$(_VERSION)/ --format=tar $(__GIT_DIR) $(_VERSION) -o $@ #$Z -endif -ifdef _EVERYTHING - $(Q)$(LN) -s . $(_PROJECT)-$(_VERSION) - $(Q)$(TAR) c -- $(foreach F,$(_EVERYTHING),$(v)$(_PROJECT)-$(_VERSION)/$(F)) > $@ - $(Q)$(RM) $(_PROJECT)-$(_VERSION) -endif - @$(ECHO_EMPTY) - -# Compression rule for xz-compression. Used on the tarball. -%.xz: % - @$(PRINTF_INFO) '\e[00;01;31mXZ\e[34m %s\e[00m$A\n' "$@" - @if $(TEST) -f $@; then $(RM) $@; fi - $(Q)$(XZ_COMPRESS) $< #$Z - @$(ECHO_EMPTY) - -# Compression rule for bzip2-compression. Used on the tarball. -%.bz2: % - @$(PRINTF_INFO) '\e[00;01;31mBZIP2\e[34m %s\e[00m$A\n' "$@" - @if $(TEST) -f $@; then $(RM) $@; fi - $(Q)$(BZIP2_COMPRESS) $< #$Z - @$(ECHO_EMPTY) - -# Compression rule for gzip-compression. Used on the tarball. -%.gz: % - @$(PRINTF_INFO) '\e[00;01;31mGZIP\e[34m %s\e[00m$A\n' "$@" - @if $(TEST) -f $@; then $(RM) $@; fi - $(Q)$(GZIP_COMPRESS) $< #$Z - @$(ECHO_EMPTY) - -# Generate checksums of tarballs, compressed and uncompressed, and of their detached signatures. -$(_PROJECT)-$(_VERSION).checksums: $(__DIST_FILES) - @$(PRINTF_INFO) '\e[00;01;31mCHECKSUM\e[34m %s\e[00m\n' "$@" - @$(PRINTF) '' > $@ -ifndef NO_BSD_SUM - @if ! ($(ECHO) ':: sum -r ::' && sum -r $^ && $(ECHO)) >> $@ ; then $(PRINTF) '' > $@; fi -endif -ifndef NO_SYSV_SUM - @if ! ($(ECHO) ':: sum -s ::' && sum -s $^ && $(ECHO)) >> $@ ; then $(PRINTF) '' > $@; fi -endif - @$(foreach C,$(DIST_CHECKSUMS),$(ECHO) ':: $(C) ::' >> $@ && $(C) $^ | $(GREP) -v '^--' >> $@ && $(ECHO) >> $@ &&) $(TRUE) - @$(ECHO_EMPTY) - -# Signing rule. Used on the tarballs, compressed and uncompressed, and on the checksum file. -%.sig: % - @$(PRINTF_INFO) '\e[00;01;31mSIG\e[34m %s\e[00m$A\n' "$@" - @if $(TEST) -f $@; then $(RM) $@; fi - $(Q)$(GPG) $(GPG_FLAGS) --local-user $(GPG_KEY) --detach-sign --armor --output $@ < $< #$Z - @$(ECHO_EMPTY) - diff --git a/mk/empty.mk b/mk/empty.mk deleted file mode 100644 index 81c06fb..0000000 --- a/mk/empty.mk +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== This file includes empty rules that are filled by other files. ===# - - -.PHONY: all -all: - -.PHONY: everything -everything: - -.PHONY: base -base: - -.PHONY: cmd -cmd: - -.PHONY: doc -doc: - - -.PHONY: check -check: - - -.PHONY: install -install: - -.PHONY: install-everything -install-everything: - -.PHONY: install-base -install-base: - -.PHONY: install-cmd -install-cmd: - -.PHONY: install-doc -install-doc: - - -.PHONY: installcheck -installcheck: - - -.PHONY: uninstall -uninstall: - - - -.PHONY: all -all: base - -.PHONY: everything -everything: base - -.PHONY: base -base: cmd - - -.PHONY: install -install: install-base - -.PHONY: install-everything -install-everything: install-base - -.PHONY: install-base -install-base: install-cmd - - - -.PHONY: install-strip -install-strip: __STRIP = -s -install-strip: install - -.PHONY: install-everything-strip -install-everything-strip: __STRIP = -s -install-everything-strip: install-everything - -.PHONY: install-base-strip -install-base-strip: __STRIP = -s -install-base-strip: install-base - -.PHONY: install-cmd-strip -install-cmd-strip: __STRIP = -s -install-cmd-strip: install-cmd - - diff --git a/mk/lang-c.mk b/mk/lang-c.mk deleted file mode 100644 index 36d4496..0000000 --- a/mk/lang-c.mk +++ /dev/null @@ -1,207 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== This file includes rules for C programs. ===# - - -# This file is ignored unless _C_STD is defined. -# _C_STD should be set the the version of C that -# is used. -# -# If you want to compile with -pedantic, define -# the variable _PEDANTIC. -# -# Define _CPPFLAGS with any additional CPP -# flags to use, _CFLAGS with any additional CC -# flags to use, and _LDFLAGS with any additional -# LD flags to use. -# -# Defined in path.mk, you can change _ALL_DIRS -# if you do not want CPP definitions for all -# directories. -# -# Define _HEADER_DIRLEVELS to specify the directory -# nesting level in src. It is assumed that all -# directories contain header files. Set to '0' if -# there are no header files. -# -# _BIN shall list all commands to build. These -# should be the basenames. For each command -# you should be the variable _OBJ_$(COMMAND) -# that lists all objects files (without the -# suffix and without the aux/ prefix) that -# are required to build the command. - - -ifdef _C_STD - - - -# WHEN TO BUILD, INSTALL, AND UNINSTALL: - -cmd: cmd-c -install-cmd: install-cmd-c -uninstall: uninstall-cmd-c - - -# HELP VARIABLES: - -# Figure out whether the GCC is being used. -ifeq ($(shell $(PRINTF) '%s\n' ${CC} | $(HEAD) -n 1),gcc) -__USING_GCC = 1 -endif - - -# BUILD VARIABLES: - -# Optimisation settings for C code compilation. -ifndef OPTIMISE -ifndef DEBUG -OPTIMISE = -O2 -g -endif -ifdef DEBUG -ifdef __USING_GCC -OPTIMISE = -Og -g -endif -ifndef __USING_GCC -OPTIMISE = -g -endif -endif -endif - -# Warning settings for C code compilation. -ifdef _PEDANTIC -_PEDANTIC = -pedantic -endif -ifndef WARN -ifndef DEBUG -WARN = -Wall -endif -ifdef DEBUG -ifdef __USING_GCC -WARN = -Wall -Wextra $(_PEDANTIC) -Wdouble-promotion -Wformat=2 -Winit-self -Wmissing-include-dirs \ - -Wtrampolines -Wmissing-prototypes -Wmissing-declarations -Wnested-externs \ - -Wno-variadic-macros -Wsync-nand -Wunsafe-loop-optimizations -Wcast-align \ - -Wdeclaration-after-statement -Wundef -Wbad-function-cast -Wwrite-strings -Wlogical-op \ - -Wstrict-prototypes -Wold-style-definition -Wpacked -Wvector-operation-performance \ - -Wunsuffixed-float-constants -Wsuggest-attribute=const -Wsuggest-attribute=noreturn \ - -Wsuggest-attribute=format -Wnormalized=nfkc -fstrict-aliasing -fipa-pure-const -ftree-vrp \ - -fstack-usage -funsafe-loop-optimizations -Wshadow -Wredundant-decls -Winline -Wcast-qual \ - -Wsign-conversion -Wstrict-overflow=5 -Wconversion -Wsuggest-attribute=pure -Wswitch-default \ - -Wstrict-aliasing=1 -fstrict-overflow -Wfloat-equal -Wpadded -Waggregate-return \ - -Wtraditional-conversion -endif -ifndef __USING_GCC -WARN = -Wall -Wextra $(_PEDANTIC) -endif -endif -endif - -# Support for internationalisation? -ifndef WITHOUT_GETTEXT -_CPPFLAGS += -D'USE_GETTEXT=1' -endif - -# Add CPP definitions for all directories. -_CPPFLAGS += $(foreach D,$(_ALL_DIRS),-D'$(D)="$($(D))"') - - -# MORE HELP VARIABLES: - -# Compilation and linking flags, and command. -ifndef CPPFLAGS -CPPFLAGS = -endif -ifndef CFLAGS -CFLAGS = $(OPTIMISE) $(WARN) -endif -ifndef LDFLAGS -LDFLAGS = $(OPTIMISE) $(WARN) -endif -__CC = $(CC) -std=$(_C_STD) -c $(_CPPFLAGS) $(_CFLAGS) -__LD = $(CC) -std=$(_C_STD) $(_LDFLAGS) -__CC_POST = $(CPPFLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(EXTRA_CFLAGS) -__LD_POST = $(LDFLAGS) $(EXTRA_LDFLAGS) - -# Header files. -__H = -ifdef _HEADER_DIRLEVELS -ifeq ($(_HEADER_DIRLEVELS),1) -__H += src/*.h -endif -ifneq ($(_HEADER_DIRLEVELS),1) -ifeq ($(_HEADER_DIRLEVELS),2) -__H += src/*.h -__H += src/*/*.h -endif -ifneq ($(_HEADER_DIRLEVELS),2) -ifneq ($(_HEADER_DIRLEVELS),0) -__H += $(foreach W,$(shell $(SEQ) $(_HEADER_DIRLEVELS) | while read n; do $(ECHO) $$($(SEQ) $$n)" " | $(SED) 's/[^ ]* /\/\*/g'; done | $(XARGS) $(ECHO)),src$(W).h) -endif -endif -endif -endif - - -# BUILD RULES: - -.PHONY: cmd-c -cmd-c: $(foreach B,$(_BIN),bin/$(B)) - -# Compile a C file into an object file. -aux/%.o: $(v)src/%.c $(foreach H,$(__H),$(v)$(H)) - @$(PRINTF_INFO) '\e[00;01;31mCC\e[34m %s\e[00m$A\n' "$@" - @$(MKDIR) -p $(shell $(DIRNAME) $@) - $(Q)$(__CC) -o $@ $< $(__CC_POST) #$Z - @$(ECHO_EMPTY) - -# Link object files into a command. -# Dependencies are declared below. -bin/%: - @$(PRINTF_INFO) '\e[00;01;31mLD\e[34m %s\e[00;32m$A\n' "$@" - @$(MKDIR) -p bin - $(Q)$(__LD) -o $@ $^ $(__LD_POST) #$Z - @$(ECHO_EMPTY) - -# Dependencies for the rule above. -include aux/lang-c.mk -aux/lang-c.mk: Makefile - @$(MKDIR) -p aux - @$(ECHO) > aux/lang-c.mk - @$(foreach B,$(_BIN),$(ECHO) bin/$(B): $(foreach O,$(_OBJ_$(B)),aux/$(O).o) >> aux/lang-c.mk) - - -# INSTALL RULES: - -.PHONY: install-cmd-c -install-cmd-c: $(foreach B,$(_BIN),bin/$(B)) - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(INSTALL_DIR) -- "$(DESTDIR)$(BINDIR)" -ifdef COMMAND - $(Q)$(INSTALL_PROGRAM) $(__STRIP) $^ -- "$(DESTDIR)$(BINDIR)" -endif -ifndef COMMAND - $(Q)$(INSTALL_PROGRAM) $(__STRIP) $^ -- "$(DESTDIR)$(BINDIR)/$(COMMAND)" -endif - @$(ECHO_EMPTY) - - -# UNINSTALL RULES: - -.PHONY: uninstall-cmd-c -uninstall-cmd-c: -ifdef COMMAND - -$(Q)$(RM) -- "$(DESTDIR)$(BINDIR)/$(COMMAND)" -endif -ifndef COMMAND - -$(Q)$(RM) -- $(foreach B,$(_BIN),"$(DESTDIR)$(BINDIR)/$(B)") -endif - - -endif - diff --git a/mk/lowerpath.mk b/mk/lowerpath.mk deleted file mode 100644 index aadb91f..0000000 --- a/mk/lowerpath.mk +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== This file overrides values uppercase path variables with values lowercase path variables. ===# - - -ifdef srcdir -VPATH = $(srcdir) -endif - -ifdef prefix -PREFIX = $(prefix) -endif - -ifdef sysconfdir -SYSCONFDIR = $(sysconfdir) -endif - -ifdef sharedstatedir -COMDIR = $(sharedstatedir) -endif - -ifdef localstatedir -VARDIR = $(localstatedir) -endif - -ifdef runstatedir -RUNDIR = $(runstatedir) -endif - -ifdef tmpdir -TMPDIR = $(tmpdir) -endif - -ifdef devdir -DEVDIR = $(devdir) -endif - -ifdef sysdir -SYSDIR = $(sysdir) -endif - -ifdef procdir -PROCDIR = $(procdir) -endif - -ifdef exec_prefix -EXEC_PREFIX = $(exec_prefix) -endif - -ifdef bindir -BINDIR = $(bindir) -endif - -ifdef sbindir -SBINDIR = $(sbindir) -endif - -ifdef libexecdir -LIBEXECDIR = $(libexecdir) -endif - -ifdef libdir -LIBDIR = $(libdir) -endif - -ifdef includedir -INCLUDEDIR = $(includedir) -endif - -ifdef oldincludedir -OLDINCLUDEDIR = $(oldincludedir) -endif - -ifdef datarootdir -DATADIR = $(datarootdir) -endif - -ifdef datadir -RESDIR = $(datadir) -endif - -ifdef libdatarootdir -SYSDEPDATADIR = $(libdatarootdir) -endif - -ifdef libdatadir -SYSDEPRESDIR = $(libdatadir) -endif - -ifdef lispdir -LISPDIR = $(lispdir) -endif - -ifdef localedir -LOCALEDIR = $(localedir) -endif - -ifdef licensedir -LICENSEDIR = $(licensedir) -endif - -ifdef cachedir -CACHEDIR = $(cachedir) -endif - -ifdef spooldir -SPOOLDIR = $(spooldir) -endif - -ifdef emptydir -EMPTYDIR = $(emptydir) -endif - -ifdef logdir -LOGDIR = $(logdir) -endif - -ifdef statedir -STATEDIR = $(statedir) -endif - -ifdef gamedir -GAMEDIR = $(gamedir) -endif - -ifdef sharedcachedir -COMCACHEDIR = $(sharedcachedir) -endif - -ifdef sharedpooldir -COMPOOLDIR = $(sharedpooldir) -endif - -ifdef sharedlogdir -COMLOGDIR = $(sharedlogdir) -endif - -ifdef sharedlogdir -COMSTATEDIR = $(sharedstatedir) -endif - -ifdef sharedgamedir -COMGAMEDIR = $(sharedgamedir) -endif - -ifdef localtmpdir -VARTMPDIR = $(localtmpdir) -endif - -ifdef sharedtmpdir -COMTMPDIR = $(sharedtmpdir) -endif - -ifdef lockdir -LOCKDIR = $(lockdir) -endif - -ifdef skeldir -SKELDIR = $(skeldir) -endif - -ifdef selfprocdir -SELFPROCDIR = $(selfprocdir) -endif - -ifdef docdir -DOCDIR = $(docdir) -endif - -ifdef infodir -INFODIR = $(infodir) -endif - -ifdef dvidir -DVIDIR = $(dvidir) -endif - -ifdef pdfdir -PDFDIR = $(pdfdir) -endif - -ifdef psdir -PSDIR = $(psdir) -endif - -ifdef htmldir -HTMLDIR = $(htmldir) -endif - -ifdef mandir -MANDIR = $(mandir) -endif - -ifdef man0 -MAN0 = $(man0) -endif - -ifdef man1 -MAN1 = $(man1) -endif - -ifdef man2 -MAN2 = $(man2) -endif - -ifdef man3 -MAN3 = $(man3) -endif - -ifdef man4 -MAN4 = $(man4) -endif - -ifdef man5 -MAN5 = $(man5) -endif - -ifdef man6 -MAN6 = $(man6) -endif - -ifdef man7 -MAN7 = $(man7) -endif - -ifdef man8 -MAN8 = $(man8) -endif - -ifdef man9 -MAN9 = $(man9) -endif - -ifdef man0ext -MAN0EXT = $(man0ext) -endif - -ifdef man1ext -MAN1EXT = $(man1ext) -endif - -ifdef man2ext -MAN2EXT = $(man2ext) -endif - -ifdef man3ext -MAN3EXT = $(man3ext) -endif - -ifdef man4ext -MAN4EXT = $(man4ext) -endif - -ifdef man5ext -MAN5EXT = $(man5ext) -endif - -ifdef man6ext -MAN6EXT = $(man6ext) -endif - -ifdef man7ext -MAN7EXT = $(man7ext) -endif - -ifdef man8ext -MAN8EXT = $(man8ext) -endif - -ifdef man9ext -MAN9EXT = $(man9ext) -endif - diff --git a/mk/man.mk b/mk/man.mk deleted file mode 100644 index 8105249..0000000 --- a/mk/man.mk +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== These rules are used for man pages. ===# - - -# Enables the rules: -# install-man Install all man page -# install-man-untranslated Install untranslated man page -# install-man-locale Install translated man page -# -# This file is ignored unless _MAN_PAGE_SECTIONS -# is defined. _MAN_PAGE_SECTIONS should list all -# used man page sections. For all used sections -# there should also be a variable named -# _MAN_$(SECTION) that lists the suffixless -# basename of all man pages in that section. -# -# The pathname of a man page should look -# like this: doc/man/$(DOCUMENT).$(SECTION) -# Translations looks like this: -# doc/man/$(DOCUMENT).$(LANGUAGE).$(SECTION) -# -# For each language and section, there should -# be a variable _MAN_$(LANGUAGE)_$(SECTION) -# that lists all translated documents in that -# section and for that lanuage. These should -# be suffixless basenames. The lanuage counts -# as a suffix. -# -# The translations of the man pages to -# install should be specified, by language, -# in the variable MAN_LOCALES. - - -ifdef _MAN_PAGE_SECTIONS - - -# WHEN TO BUILD, INSTALL, AND UNINSTALL: - -install: install-man -install-everything: install-man -install-doc: install-man -uninstall: uninstall-man - - -# HELP VARIABLES - -# Customisable man page filename. -ifdef COMMAND -ifeq ($(shell $(PRINTF) '%s\n' $(COMMAND) | $(WC) -l),1) -ifeq ($(shell $(PRINTF) '%s\n' $(_MAN_PAGE_SECTIONS) | $(WC) -l),1) -ifeq ($(shell $(PRINTF) '%s\n' $(_MAN_$(_MAN_PAGE_SECTIONS)) | $(WC) -l),1) -__MAN_COMMAND = $(COMMAND)$(MAN$(_MAN_PAGE_SECTIONS)EXT) -endif -endif -endif -endif - - -# INSTALL RULES: - -.PHONY: install-man -install-man: install-man-untranslated install-man-locale - -.PHONY: install-man-untranslated -install-man-untranslated: - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(INSTALL_DIR) -- $(foreach S,$(_MAN_PAGE_SECTIONS),"$(DESTDIR)$(MANDIR)/$(MAN$(S))") -ifndef __MAN_COMMAND - $(Q)$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(S)),$(INSTALL_DATA) $(v)doc/man/$(P).$(S) -- "$(DESTDIR)$(MANDIR)/$(MAN$(S))/$(P)$(MAN$(S)EXT)" &&)) $(TRUE) -endif -ifdef __MAN_COMMAND - $(Q)$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(S)),$(INSTALL_DATA) $(v)doc/man/$(P).$(S) -- "$(DESTDIR)$(MANDIR)/$(MAN$(S))/$(__MAN_COMMAND)" &&)) $(TRUE) -endif - @$(ECHO_EMPTY) - -.PHONY: install-man-locale -install-man-locale: - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(foreach L,$(MAN_LOCALES),$(INSTALL_DIR) -- $(foreach S,$(_MAN_PAGE_SECTIONS),"$(DESTDIR)$(MANDIR)/$(L)/$(MAN$(S))") &&) $(TRUE) -ifndef __MAN_COMMAND - $(Q)$(foreach L,$(MAN_LOCALES),$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(L)_$(S)),$(INSTALL_DATA) $(v)doc/man/$(P).$(L).$(S) -- "$(DESTDIR)$(MANDIR)/$(L)/$(MAN$(S))/$(P)$(MAN$(S)EXT)" &&))) $(TRUE) -endif -ifdef __MAN_COMMAND - $(Q)$(foreach L,$(MAN_LOCALES),$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(L)_$(S)),$(INSTALL_DATA) $(v)doc/man/$(P).$(L).$(S) -- "$(DESTDIR)$(MANDIR)/$(L)/$(MAN$(S))/$(__MAN_COMMAND)" &&))) $(TRUE) -endif - @$(ECHO_EMPTY) - - -# UNINSTALL RULES: - -.PHONY: uninstall-man -uninstall-man: -ifndef __MAN_COMMAND - -$(Q)$(RM) -- $(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(S)),"$(DESTDIR)$(MANDIR)/$(MAN$(S))/$(P).$(MAN$(S)EXT)")) - -$(Q)$(RM) -- $(foreach L,$(MAN_LOCALES),$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(L)_$(S)),"$(DESTDIR)$(MANDIR)/$(L)/$(MAN$(S))/$(P)$(MAN$(S)EXT)"))) -endif -ifdef __MAN_COMMAND - -$(Q)$(RM) -- "$(DESTDIR)$(MANDIR)/$(MAN$(_MAN_PAGE_SECTIONS))/$(__MAN_COMMAND)" - -$(Q)$(RM) -- $(foreach L,$(MAN_LOCALES),$(foreach S,$(_MAN_PAGE_SECTIONS),$(foreach P,$(_MAN_$(L)_$(S)),"$(DESTDIR)$(MANDIR)/$(L)/$(MAN$(S))/$(__MAN_COMMAND)"))) -endif - - -endif - diff --git a/mk/path.mk b/mk/path.mk deleted file mode 100644 index a65b7b8..0000000 --- a/mk/path.mk +++ /dev/null @@ -1,176 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== This file define path variables. ===# - - -ifndef __PATH_MK_INCLUDED -__PATH_MK_INCLUDED = 1 - - -# DIRECTORIES: - -# The package path prefix, if you want to install to another root, set DESTDIR to that root. -PREFIX = /usr -# The package path prefix for /bin, /sbin, /lib and /libexec. -EXEC_PREFIX = /usr -# The command path excluding prefix. -BIN = /bin -# The administration command path excluding prefix. -SBIN = /sbin -# The library path excluding prefix. -LIB = /lib -# The executable library path excluding prefix. -LIBEXEC = /libexec -# The header-file path excluding prefix. -INCLUDE = /include -# The resource path excluding prefix. -DATA = /share -# The man page sections path excluding prefix. -MAN0 = /man0 -MAN1 = /man1 -MAN2 = /man2 -MAN3 = /man3 -MAN4 = /man4 -MAN5 = /man5 -MAN6 = /man6 -MAN7 = /man7 -MAN8 = /man8 -MAN9 = /man9 - -# The command path including prefix. -BINDIR = $(EXEC_PREFIX)$(BIN) -# The administration command path including prefix. -SBINDIR = $(EXEC_PREFIX)$(SBIN) -# The library path including prefix. -LIBDIR = $(EXEC_PREFIX)$(LIB) -# The executable library path including prefix. -LIBEXECDIR = $(EXEC_PREFIX)$(LIBEXEC) -# The header-file path including prefix. -INCLUDEDIR = $(PREFIX)$(INCLUDE) -# The header-file path including prefix. Must not be /usr/local. -ifeq ($(PREFIX),/usr/lcoal) -OLDINCLUDEDIR = /usr$(INCLUDE) -endif -ifneq ($(PREFIX),/usr/lcoal) -OLDINCLUDEDIR = $(PREFIX)$(INCLUDE) -endif -# The data path including prefix. -DATADIR = $(PREFIX)$(DATA) -# The architecture-dependent data path including prefix. -SYSDEPDATADIR = $(DATADIR) -# The resource path including prefix. -RESDIR = $(DATADIR) -# The architecture-dependent resource path including prefix. -SYSDEPRESDIR = $(RESDIR) -# The generic documentation path including prefix. -DOCDIR = $(DATADIR)/doc/$(PKGNAME) -# The info manual documentation path including prefix. -INFODIR = $(DATADIR)/info -# The DVI documentation path including prefix. -DVIDIR = $(DOCDIR) -# The PDF documentation path including prefix. -PDFDIR = $(DOCDIR) -# The PostScript documentation path including prefix. -PSDIR = $(DOCDIR) -# The HTML documentation path including prefix. -HTMLDIR = $(DOCDIR) -# The man page documentation path including prefix. -MANDIR = $(DATADIR)/man -# The Emacs LISP path including prefix. -LISPDIR = $(DATADIR)/emacs/site-lisp -# The locale path including prefix. -LOCALEDIR = $(DATADIR)/locale -# The license base path including prefix. -LICENSEDIR = $(DATADIR)/licenses -# The persistent variable data directory. -VARDIR = /var -# The persistent directory for temporary files. -VARTMPDIR = $(VARDIR)/tmp -# The network-common persistent variable data directory. -COMDIR = /com -# The network-common persistent directory for temporary files. -COMTMPDIR = $(COMDIR)/tmp -# The transient directory for temporary files. -TMPDIR = /tmp -# The transient directory for runtime files. -RUNDIR = /run -# The directory for site-specific configurations. -SYSCONFDIR = /etc -# The directory for pseudo-devices. -DEVDIR = /dev -# The /sys directory. -SYSDIR = /sys -# The /proc directory -PROCDIR = /proc -# The /proc/self directory -SELFPROCDIR = $(PROCDIR)/self -# The cache directory. -CACHEDIR = $(VARDIR)/cache -# The spool directory. -SPOOLDIR = $(VARDIR)/spool -# The empty directory. -EMPTYDIR = $(VARDIR)/empty -# The logfile directory. -LOGDIR = $(VARDIR)/log -# The state directory. -STATEDIR = $(VARDIR)/lib -# The highscore directory. -GAMEDIR = $(VARDIR)/games -# The lockfile directory. -LOCKDIR = $(RUNDIR)/lock -# The user skeleton directory. -SKELDIR = $(SYSCONFDIR)/skel -# The network-common cache directory. -COMCACHEDIR = $(COMDIR)/cache -# The network-common spool directory. -COMSPOOLDIR = $(COMDIR)/spool -# The network-common logfile directory. -COMLOGDIR = $(COMDIR)/log -# The network-common state directory. -COMSTATEDIR = $(COMDIR)/lib -# The network-common highscore directory. -COMGAMEDIR = $(COMDIR)/games - - -# FILENAME SUFFIXES: - -# Filename suffixes for man pages by section. -MAN0EXT = .0 -MAN1EXT = .1 -MAN2EXT = .2 -MAN3EXT = .3 -MAN4EXT = .4 -MAN5EXT = .5 -MAN6EXT = .6 -MAN7EXT = .7 -MAN8EXT = .8 -MAN9EXT = .9 - - -# HELP VARIABLES: - -# All path variables that includes the prefix, -# or are unaffected by the prefix. -_ALL_DIRS = BINDIR SBINDIR LIBDIR LIBEXECDIR INCLUDEDIR DATADIR SYSDEPDATADIR DOCDIR \ - INFODIR DVIDIR PDFDIR PSDIR HTMLDIR MANDIR LOCALEDIR LICENSEDIR VARDIR \ - RESDIR VARTMPDIR COMDIR COMTMPDIR TMPDIR RUNDIR SYSCONFDIR DEVDIR SYSDIR \ - PROCDIR SELFPROCDIR CACHEDIR SPOOLDIR EMPTYDIR LOGDIR STATEDIR GAMEDIR \ - LOCKDIR SKELDIR COMCACHEDIR COMSPOOLDIR COMLOGDIR COMSTATEDIR COMGAMEDIR \ - SYSDEPRESDIR OLDINCLUDEDIR - -# ../, ../../, and ../../../, ignored if v is used, which if an absolute path. -ifndef v -__back1unless_v = ../ -__back2unless_v = ../../ -__back3unless_v = ../../../ -endif - - -endif - diff --git a/mk/prologue.mk b/mk/prologue.mk deleted file mode 100644 index 525da28..0000000 --- a/mk/prologue.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== This file includes rules for automatically rebuilding the makefile. ===# - - -base: Makefile - -Makefile: $(v)Makefile.in config.status $(v)configure $(v)mk/configure - ./config.status - diff --git a/mk/tags.mk b/mk/tags.mk deleted file mode 100644 index a7c695b..0000000 --- a/mk/tags.mk +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== These rules are used for generate etags- and ctags-tablse. ===# - - -# Generate etags-table. -.PHONY: TAGS -TAGS: - @$(ECHO) - @$(ECHO) "TAGS is not implemented. Did not see the need. Feel free to implement if you want." - @$(ECHO) - -# Generate ctags-table -.PHONY: tags -tags: - @$(ECHO) - @$(ECHO) "tags is not implemented. Did not see the need. Feel free to implement if you want." - @$(ECHO) - diff --git a/mk/texinfo.mk b/mk/texinfo.mk deleted file mode 100644 index e544464..0000000 --- a/mk/texinfo.mk +++ /dev/null @@ -1,287 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -# TODO ((support translations)) -#=== These rules are used for Texinfo manuals. ===# - - -# Enables the rules: -# info Build info manual -# dvi Build DVI manual -# pdf Build PDF manual -# ps Build PostScript manual -# html Build HTML manual -# install-info Install info manual -# install-dvi Install DVI manual -# install-pdf Install PDF manual -# install-ps Install PostScript manual -# install-html Install HTML manual -# -# This file is ignored unless -# _HAVE_TEXINFO_MANUAL is defined. -# -# This file can only build output for -# one Texinfo manual. This manual must -# be named doc/info/$(_PROJECT).texinfo. -# Additional sourced are set by specifing -# how man directories deep doc/info nests -# in the variable _TEXINFO_DIRLEVELS. -# -# If the info manual splits, specify the -# split-number, of the file with the highest -# split-number, in the variable _INFOPARTS. -# -# If the project has a logo, _LOGO should -# name the suffixless basename of the SVG -# files that contains the logo. This file -# must be located in doc/. -# -# _HTML_FILES should the basename (with -# suffix) of all files generated by `html`. - - -ifdef _HAVE_TEXINFO_MANUAL - - -# WHEN TO BUILD, INSTALL, AND UNINSTALL: - -all: info -everything: info dvi pdf ps html -doc: info dvi pdf ps html -install: install-info -install-everything: install-info install-dvi install-pdf install-ps install-html -install-doc: install-info install-dvi install-pdf install-ps install-html -uninstall: uninstall-info uninstall-dvi uninstall-pdf uninstall-ps uninstall-html - - -# HELP VARIABLES: - -# Files from which the Texinfo manuals are built. -ifdef _TEXINFO_DIRLEVELS -ifeq ($(_TEXINFO_DIRLEVELS),1) -__TEXI_SRC_ = *.texinfo -endif -ifeq ($(_TEXINFO_DIRLEVELS),2) -__TEXI_SRC_ = *.texinfo */*.texinfo -endif -ifeq ($(_TEXINFO_DIRLEVELS),3) -__TEXI_SRC_ = *.texinfo */*.texinfo */*/*.texinfo -endif -ifneq ($(_TEXINFO_DIRLEVELS),1) -ifneq ($(_TEXINFO_DIRLEVELS),2) -ifneq ($(_TEXINFO_DIRLEVELS),3) -__TEXI_SRC_ = $(foreach W,$(shell $(SEQ) $(_TEXINFO_DIRLEVELS) | while read n; do $(ECHO) $$($(SEQ) $$n)" " | $(SED) 's/[^ ]* /\/\*/g'; done | $(XARGS) $(ECHO)),$(shell $(ECHO) $(W).texinfo | $(SED) 's/^.//')) -endif -endif -endif -__TEXI_SRC = $(foreach S,$(__TEXI_SRC_),$(foreach F,$(shell cd $(v)doc/info && $(ECHO) $(S)),aux/doc/$(F))) -endif - -# Split parts of the info manual. -ifdef _INFOPARTS -ifneq ($(_INFOPARTS),0) -__INFOPARTS = $(shell $(SEQ)) -endif -endif - -# Flags for TeX processed output. -__TEXINFO_FLAGS = $(TEXINFO_FLAGS) -ifdef _LOGO -__TEXINFO_FLAGS += '--texinfo="@set LOGO $(_LOGO)"' -endif - - -# BUILD RULES: - -ifdef _LOGO -# Prepare conversion of logo. -aux/$(_LOGO).svg: $(v)doc/$(_LOGO).svg - @$(PRINTF_INFO) '\e[00;01;31mCP\e[34m %s\e[00m$A\n' "$@" - @$(MKDIR) -p aux - $(Q)$(CP) $^ $@ #$Z - @$(ECHO_EMPTY) - -# Intermediate format for the logo for DVI and PostScript manuals. -aux/$(_LOGO).ps: $(v)doc/$(_LOGO).svg - @$(PRINTF_INFO) '\e[00;01;31mPS\e[34m %s\e[00m$A\n' "$@" - @$(MKDIR) -p aux - $(Q)$(SVG2PS) $^ > $@ #$Z - @$(ECHO_EMPTY) - -# Logo for DVI and PostScript manuals. -aux/$(_LOGO).eps: aux/$(_LOGO).ps - @$(PRINTF_INFO) '\e[00;01;31mEPS\e[34m %s\e[00m$A\n' "$@" - $(Q)$(PS2EPS) $^ #$Z - @$(ECHO_EMPTY) - -# Logo for PDF manual. -aux/$(_LOGO).pdf: $(v)doc/$(_LOGO).svg - @$(PRINTF_INFO) '\e[00;01;31mPDF\e[34m %s\e[00m$A\n' "$@" - @$(MKDIR) -p aux - $(Q)$(SVG2PDF) $^ > $@ #$Z - @$(ECHO_EMPTY) -endif - -# Copy texinfo files to aux/doc. -aux/doc/%.texinfo: $(v)doc/info/%.texinfo - @$(PRINTF_INFO) '\e[00;01;31mCP\e[34m %s\e[00m$A\n' "$@" - @$(MKDIR) -p $(shell $(DIRNAME) $@) - $(Q)$(CP) $< $@ #$Z - @$(ECHO_EMPTY) - -# Build info manual. -.PHONY: info -info: $(__TEXI_SRC) bin/$(_PROJECT).info -bin/%.info $(foreach P,$(__INFOPARTS),bin/%.info-$(P)): aux/doc/%.texinfo $(__TEXI_SRC) - @$(PRINTF_INFO) '\e[00;01;31mTEXI\e[34m %s\e[00m$A\n' "$@" - @$(MKDIR) -p bin - $(Q)$(MAKEINFO) $< #$Z - @$(PRINTF_INFO) '$A' - $(Q)$(MV) $*.info $@ #$Z - @$(ECHO_EMPTY) - -# Build DVI manual. -.PHONY: dvi -dvi: $(__TEXI_SRC) bin/$(_PROJECT).dvi -bin/%.dvi: aux/doc/%.texinfo $(__TEXI_SRC) $(foreach L,$(_LOGO),aux/$(L).eps) - @$(PRINTF_INFO) '\e[00;01;31mTEXI\e[34m %s\e[00m$A\n' "$@" - @! $(TEST) -d aux/dvi/$* || $(RM) -rf aux/dvi/$* - @$(MKDIR) -p aux/dvi/$* bin - $(Q)cd aux/dvi/$* && $(TEXI2DVI) $(__back3unless_v)$< $(__TEXINFO_FLAGS) < /dev/null #$Z - @$(PRINTF_INFO) '$A' - $(Q)$(MV) aux/dvi/$*/$*.dvi $@ #$Z - @$(ECHO_EMPTY) - -# Build PDF manual. -.PHONY: pdf -pdf: $(__TEXI_SRC) bin/$(_PROJECT).pdf -bin/%.pdf: aux/doc/%.texinfo $(__TEXI_SRC) $(foreach L,$(_LOGO),aux/$(L).pdf) - @$(PRINTF_INFO) '\e[00;01;31mTEXI\e[34m %s\e[00m$A\n' "$@" - @! $(TEST) -d aux/pdf/$* || $(RM) -rf aux/pdf/$* - @$(MKDIR) -p aux/pdf/$* bin - $(Q)cd aux/pdf/$* && $(TEXI2PDF) $(__back3unless_v)$< $(__TEXINFO_FLAGS) < /dev/null #$Z - @$(PRINTF_INFO) '$A' - $(Q)$(MV) aux/pdf/$*/$*.pdf $@ #$Z - @$(ECHO_EMPTY) - -# Build PostScript manual. -.PHONY: ps -ps: $(__TEXI_SRC) bin/$(_PROJECT).ps -bin/%.ps: aux/doc/%.texinfo $(__TEXI_SRC) $(foreach L,$(_LOGO),aux/$(L).eps) - @$(PRINTF_INFO) '\e[00;01;31mTEXI\e[34m %s\e[00m$A\n' "$@" - @! $(TEST) -d aux/ps/$* || $(RM) -rf aux/ps/$* - @$(MKDIR) -p aux/ps/$* bin - $(Q)cd aux/ps/$* && $(TEXI2PS) $(__back3unless_v)$< $(__TEXINFO_FLAGS) < /dev/null #$Z - @$(PRINTF_INFO) '$A' - $(Q)$(MV) aux/ps/$*/$*.ps $@ #$Z - @$(ECHO_EMPTY) - -# Build HTML manual. -.PHONY: html -html: $(__TEXI_SRC) bin/html/$(_PROJECT)/index.html -bin/html/%/index.html: aux/doc/%.texinfo $(__TEXI_SRC) - @$(PRINTF_INFO) '\e[00;01;31mTEXI\e[34m %s\e[00m$A\n' "$@" - @! $(TEST) -d bin/html/$* || $(RM) -rf bin/html/$* - @$(MKDIR) -p bin/html - $(Q)cd bin/html && $(MAKEINFO_HTML) $(__back2unless_v)$< < /dev/null #$Z - @$(ECHO_EMPTY) - - -# INSTALL RULES: - -# Install info manual. -.PHONY: install-info -install-info: bin/$(_PROJECT).info $(foreach P,$(__INFOPARTS),bin/%.info-$(P)) - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(INSTALL_DIR) -- "$(DESTDIR)$(INFODIR)" - $(Q)$(INSTALL_DATA) bin/$(_PROJECT).info -- "$(DESTDIR)$(INFODIR)/$(PKGNAME).info" - $(Q)$(forearch P,$(__INFOPARTS),$(INSTALL_DATA) bin/$*.info-$(P) -- "$(DESTDIR)$(INFODIR)/$(PKGNAME).info-$(P)" &&) $(TRUE) -ifdef POST_INSTALL - $(POST_INSTALL) -endif - $(Q)if $(SHELL) -c '$(N) $(INSTALL_INFO) --version' > /dev/null 2>&1; then \ - $(N)$(z) $(INSTALL_INFO) -- "${DESTDIR}${INFODIR}/$(PKGNAME).info" "${DESTDIR}${INFODIR}/dir"; \ - else \ - $(TRUE); \ - fi -ifdef POST_INSTALL - $(NORMAL_INSTALL) -endif - @$(ECHO_EMPTY) - -# Install DVI manual. -.PHONY: install-dvi -install-dvi: bin/$(_PROJECT).dvi - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(INSTALL_DIR) -- "$(DESTDIR)$(DVIDIR)" - $(Q)$(INSTALL_DATA) $^ -- "$(DESTDIR)$(DVIDIR)/$(PKGNAME).dvi" - @$(ECHO_EMPTY) - -# Install PDF manual. -.PHONY: install-pdf -install-pdf: bin/$(_PROJECT).pdf - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(INSTALL_DIR) -- "$(DESTDIR)$(PDFDIR)" - $(Q)$(INSTALL_DATA) $^ -- "$(DESTDIR)$(PDFDIR)/$(PKGNAME).pdf" - @$(ECHO_EMPTY) - -# Install PostScript manual. -.PHONY: install-ps -install-ps: bin/$(_PROJECT).ps - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(INSTALL_DIR) -- "$(DESTDIR)$(PSDIR)" - $(Q)$(INSTALL_DATA) $^ -- "$(DESTDIR)$(PSDIR)/$(PKGNAME).ps" - @$(ECHO_EMPTY) - -# Install HTML manual. -.PHONY: install-html -install-html: $(foreach F,$(_HTML_FILES),bin/html/$(_PROJECT)/$(F)) - @$(PRINTF_INFO) '\e[00;01;31mINSTALL\e[34m %s\e[00m\n' "$@" - $(Q)$(INSTALL_DIR) -- "$(DESTDIR)$(HTMLDIR)/$(PKGNAME)" - $(Q)$(INSTALL_DATA) $^ -- "$(DESTDIR)$(HTMLDIR)/$(PKGNAME)/" - @$(ECHO_EMPTY) - - -# UNINSTALL RULES: - -# Uninstall info manual. -.PHONY: uninstall-info -uninstall-info: -ifdef PRE_UNINSTALL - $(PRE_UNINSTALL) -endif - -$(Q)$(N)$(a) $(INSTALL_INFO) --delete -- "${DESTDIR}${INFODIR}/$(PKGNAME).info" "${DESTDIR}${INFODIR}/dir" -ifdef PRE_UNINSTALL - $(NORMAL_UNINSTALL) -endif - -$(Q)$(RM) -- "$(DESTDIR)$(INFODIR)/$(PKGNAME).info" $(forearch P,$(__INFOPARTS),"$(DESTDIR)$(INFODIR)/$(PKGNAME).info-$(P)") - -# Uninstall DVI manual. -.PHONY: uninstall-dvi -uninstall-dvi: - -$(Q)$(RM) -- "$(DESTDIR)$(DVIDIR)/$(PKGNAME).dvi" - -# Uninstall PDF manual. -.PHONY: uninstall-pdf -uninstall-pdf: - -$(Q)$(RM) -- "$(DESTDIR)$(PDFDIR)/$(PKGNAME).pdf" - -# Uninstall PostScript manual. -.PHONY: uninstall-ps -uninstall-ps: - -$(Q)$(RM) -- "$(DESTDIR)$(PSDIR)/$(PKGNAME).ps" - -# Uninstall HTML manual. -.PHONY: uninstall-html -uninstall-html: - -$(Q)$(RM) -- $(foreach F,$(_HTML_FILES),"$(DESTDIR)$(HTMLDIR)/$(PKGNAME)/$(F)") - -$(Q)$(RM) -- "$(DESTDIR)$(HTMLDIR)/$(PKGNAME)" - - -endif - diff --git a/mk/tools.mk b/mk/tools.mk deleted file mode 100644 index 63d6d66..0000000 --- a/mk/tools.mk +++ /dev/null @@ -1,163 +0,0 @@ -# Copyright (C) 2015 Mattias Andrée -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. - - -#=== This file defines variables for all used commands. ===# - - -# Part of GNU Coreutils: -BASENAME ?= basename -CHGRP ?= chgrp -CHMOD ?= chmod -CHOWN ?= chown -CP ?= cp -CPLIT ?= cplit -CUT ?= cut -DATE ?= date -DIRNAME ?= dirname -ECHO ?= echo -ENV ?= env -EXPAND ?= expand -EXPR ?= expr -FALS ?= false -FMT ?= fmt -FOLD ?= fold -HEAD ?= head -INSTALL ?= install -INSTALL_DATA ?= $(INSTALL) -m644 -INSTALL_DIR ?= $(INSTALL) -dm755 -INSTALL_PROGRAM ?= $(INSTALL) -m755 -JOIN ?= join -LN ?= ln -MKDIR ?= mkdir -MKFIFO ?= mkfifo -MKNOD ?= mknod -MV ?= mv -NL ?= nl -NPROC ?= nproc -NUMFMT ?= numfmt -OD ?= od -PASTE ?= paste -PATHCHK ?= pathchk -PR ?= pr -PRINTF ?= printf -READLINK ?= readlink -REALPATH ?= realpath -RM ?= rm -RMDIR ?= rmdir -SEQ ?= seq -SLEEP ?= sleep -SORT ?= sort -SPLIT ?= split -STAT ?= stat -TAC ?= tac -TAIL ?= tail -TEE ?= tee -TEST ?= test -TOUCH ?= touch -TR ?= tr -TRUE ?= true -TRUNCATE ?= truncate -TSORT ?= tsort -UNAME ?= uname -UNEXPAND ?= unexpand -UNIQ ?= uniq -WC ?= wc -YES ?= yes - -# Part of GNU help2man: -HELP2MAN ?= help2man - -# Part of GNU tar: -TAR ?= tar - -# Part of GNU Findutils: -FIND ?= find -XARGS ?= xargs - -# Part of GNU Grep: -GREP ?= grep -EGREP ?= egrep -FGREP ?= fgrep - -# Part of GNU Sed: -SED ?= sed - -# Part of GNU Privacy Guard: -GPG ?= gpg - -# Part of Texinfo: -MAKEINFO ?= makeinfo -MAKEINFO_HTML ?= $(MAKEINFO) --html -INSTALL_INFO ?= install-info - -# Part of Texlive-plainextra: -TEXI2PDF ?= texi2pdf -TEXI2DVI ?= texi2dvi -TEXI2PS ?= texi2pdf --ps - -# Part of Texlive-core: -PS2EPS ?= ps2eps - -# Part of librsvg: -RSVG_CONVERT ?= rsvg-convert -SVG2PS ?= $(RSVG_CONVERT) --format=ps -SVG2PDF ?= $(RSVG_CONVERT) --format=pdf - -# Part of GNU Compiler Collection: -CC ?= cc -CPP ?= cpp -CXX ?= c++ - -# Part of GNU Binutils: -AR ?= ar -LD ?= ld -RANLIB ?= ranlib - -# Part of GNU Bison: -BISON ?= bison -YACC ?= yacc - -# Part of Flex: -FLEX ?= FLEX -LEX ?= lex - -# Part of GNU C Library: -LDCONFIG ?= ldconfig - -# Part of GNU Gettext: -XGETTEXT ?= xgettext -MSGFMT ?= msgfmt -MSGMERGE ?= msgmerge -MSGINIT ?= msginit - -# Part of gzip: -GZIP ?= gzip -GZIP_COMPRESS ?= $(GZIP) -k9 - -# Part of bzip2: -BZIP2 ?= bzip2 -BZIP2_COMPRESS ?= $(BZIP2) -k9 - -# Part of xz: -XZ ?= xz -XZ_COMPRESS ?= $(XZ) -ke9 - -# Part of auto-auto-complete: -AUTO_AUTO_COMPLETE ?= auto-auto-complete - - -# Change to $(TRUE) to suppress the bold red and blue output. -ifndef PRINTF_INFO -PRINTF_INFO = $(PRINTF) -endif - -# Change to $(TRUE) to suppress empty lines -ifndef ECHO_EMPTY -ECHO_EMPTY = $(ECHO) -endif - diff --git a/src/vtchs.c b/src/vtchs.c deleted file mode 100644 index eda6969..0000000 --- a/src/vtchs.c +++ /dev/null @@ -1,51 +0,0 @@ -/** - * MIT/X Consortium License - * - * Copyright © 2015 Mattias Andrée - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ -#include -#include -#include -#include - -#define vt(...) if (ioctl(STDIN_FILENO, __VA_ARGS__) == -1) goto fail - - -int main(void) -{ - struct vt_event e; - struct vt_stat s; - - vt(VT_GETSTATE, &s); - printf("%u\n", s.v_active); - - e.event = VT_EVENT_SWITCH; - for (;;) - { - vt(VT_WAITEVENT, &e); - printf("%u\n", e.newev); - } - - return 0; - fail: - return perror(""), 1; -} - diff --git a/vtchs.1 b/vtchs.1 new file mode 100644 index 0000000..9c6d261 --- /dev/null +++ b/vtchs.1 @@ -0,0 +1,42 @@ +.TH VTCHS 1 VTCHS +.SH NAME +vtchs \- Listen for VT switches +.SH ETYMOLOGY +.IR v irtual +.IR t erminal +.IR ch ange s +.SH SYNOPSIS +.B vtchs +.SH DESCRIPTION +.B vtchs +ignores all arguments. You must have set +stdin to be a +.B /dev/tty +device. +.PP +When +.B vtchs +starts, it prints the number of the +currently active console. Then, in an infinite +loop, it waits for the user to change console, +and prints the number of the newly active console +when this happens. +.SH RATIONALE +Sometimes you need to be able to know which +console is in the foreground, and stay up to +date on this. In particular, I want to be able +to record the output on the mintors, and have +it detect VT switches, so it can select the +appropriate method and display; and I want to +be able to have VT dependent colour adjustments. +.SH SEE ALSO +.BR fgconsole (1), +.BR chvt (1) +.SH AUTHORS +Principal author, Mattias Andrée. See the LICENSE file for the full +list of authors. +.SH LICENSE +MIT/X Consortium License. +.SH BUGS +Please report bugs to https://github.com/maandree/vtchs/issues or to +maandree@member.fsf.org diff --git a/vtchs.c b/vtchs.c new file mode 100644 index 0000000..b2e67e0 --- /dev/null +++ b/vtchs.c @@ -0,0 +1,45 @@ +/* See LICENSE file for copyright and license details. */ +#include +#include +#include +#include +#include +#include +#include + +#define VT(OP, ARG) vt(OP, ARG, #OP) + +static char *argv0; + +static void +vt(int op, void *arg, const char *opstr) +{ + if (ioctl(STDIN_FILENO, op, arg) == -1) { + fprintf(stderr, "%s: ioctl %s: %s\n", argv0, opstr, strerror(errno)); + exit(1); + } +} + +int +main(int argc, char *argv[]) +{ + struct vt_event e; + struct vt_stat s; + + argv0 = *argv++, argc--; + if (argc != (*argv && !strcmp(*argv, "=="))) { + fprintf(stderr, "usage: %s\n", argv0); + exit(1); + } + + VT(VT_GETSTATE, &s); + printf("%u\n", s.v_active); + + e.event = VT_EVENT_SWITCH; + for (;;) { + VT(VT_WAITEVENT, &e); + printf("%u\n", e.newev); + } + + return 0; +} -- cgit v1.2.3-70-g09d2