:: commit d17e220e6130353476609df718ebb6d7126e7df0

mintsuki <mintsuki@protonmail.com> — 2023-02-20 23:15

parents: 9bcad9d258

docs: Add man pages for host executables

diff --git a/.gitignore b/.gitignore
index 4eb6bb06..067f4154 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,9 @@
 /config.status
 /config.log
 /autom4te.cache
+/man/man1/limine-version.1
+/man/man1/limine-deploy.1
+/man/man1/limine-enroll-config.1
 /GNUmakefile
 /config.h
 /common-bios
diff --git a/GNUmakefile.in b/GNUmakefile.in
index af9bf84a..1c8939bb 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -6,6 +6,8 @@ override exec_prefix := @exec_prefix@
 override ACBINDIR := @bindir@
 override ACDATAROOTDIR := @datarootdir@
 override ACINCLUDEDIR := @includedir@
+override datarootdir := @datarootdir@
+override mandir := @mandir@
 
 DESTDIR ?=
 
@@ -127,6 +129,10 @@ clean: limine-bios-clean limine-uefi-ia32-clean limine-uefi-x86-64-clean limine-
 
 .PHONY: install
 install: all
+	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1'
+	$(INSTALL_DATA) '$(call SHESCAPE,$(BUILDDIR))/man/man1/limine-version.1' '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1/'
+	$(INSTALL_DATA) '$(call SHESCAPE,$(BUILDDIR))/man/man1/limine-deploy.1' '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1/'
+	$(INSTALL_DATA) '$(call SHESCAPE,$(BUILDDIR))/man/man1/limine-enroll-config.1' '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1/'
 	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(ACDATAROOTDIR))'
 	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(ACDATAROOTDIR))/limine'
 ifeq ($(BUILD_BIOS),limine-bios)
@@ -169,6 +175,9 @@ endif
 
 .PHONY: uninstall
 uninstall:
+	rm -f '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1/limine-version.1'
+	rm -f '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1/limine-deploy.1'
+	rm -f '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1/limine-enroll-config.1'
 	rm -f '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))/limine-version'
 	rm -f '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))/limine-enroll-config'
 	rm -f '$(call SHESCAPE,$(DESTDIR)$(ACBINDIR))/limine-deploy'
diff --git a/configure.ac b/configure.ac
index 69101311..19852319 100644
--- a/configure.ac
+++ b/configure.ac
@@ -11,6 +11,9 @@ BUILDDIR="$(pwd -P)"
 AC_SUBST([SRCDIR])
 AC_SUBST([BUILDDIR])
 
+REGEN_DATE="m4_esyscmd([date '+%B %Y' | tr -d '\n'])"
+AC_SUBST([REGEN_DATE])
+
 test "x$CFLAGS" = "x" && CFLAGS='-g -O2 -pipe -Wall -Wextra'
 
 AC_LANG([C])
@@ -224,5 +227,5 @@ AC_SUBST([LIMINE_COPYRIGHT])
 
 AC_PREFIX_DEFAULT([/usr/local])
 
-AC_CONFIG_FILES([GNUmakefile config.h])
+AC_CONFIG_FILES([man/man1/limine-version.1 man/man1/limine-deploy.1 man/man1/limine-enroll-config.1 GNUmakefile config.h])
 AC_OUTPUT
diff --git a/man/man1/limine-deploy.1.in b/man/man1/limine-deploy.1.in
new file mode 100644
index 00000000..bde82134
--- /dev/null
+++ b/man/man1/limine-deploy.1.in
@@ -0,0 +1,39 @@
+.TH LIMINE-DEPLOY 1 "version @PACKAGE_VERSION@" "@REGEN_DATE@"
+
+.SH NAME
+limine-deploy \- install BIOS port's early stages to device
+
+.SH SYNOPSIS
+.B limine-deploy
+.RI "<device> [ GPT partition index ]"
+
+.SH DESCRIPTION
+\fBlimine-deploy\fR installs the BIOS port's early stages to the specified device.
+
+.SH OPTIONS
+.TP
+.BR \-h ", " \-\-help
+Show the available command-line options and exit
+.TP
+.BR \-\-force-mbr
+Force MBR detection to work even if the safety checks fail (\fIDANGEROUS\fR!)
+.TP
+.BR \-\-undeploy
+Reverse the entire deployment procedure
+.TP
+.BR \-\-undeploy-data-file= \fIfilename
+Set the input (for --undeploy) or output file name of the file which contains undeploy data
+.TP
+.BR \-\-quiet
+Do not print verbose diagnostic messages
+
+.SH BUGS
+Please report bugs via
+.IR @PACKAGE_BUGREPORT@ .
+
+.SH HOMEPAGE
+.I @PACKAGE_URL@
+
+.SH SEE ALSO
+.BR limine-version (1)
+.BR limine-enroll-config (1)
diff --git a/man/man1/limine-enroll-config.1.in b/man/man1/limine-enroll-config.1.in
new file mode 100644
index 00000000..e1a2dfc3
--- /dev/null
+++ b/man/man1/limine-enroll-config.1.in
@@ -0,0 +1,34 @@
+.TH LIMINE-ENROLL-CONFIG 1 "version @PACKAGE_VERSION@" "@REGEN_DATE@"
+
+.SH NAME
+limine-enroll-config \- embed config hash into Limine executable
+
+.SH SYNOPSIS
+.B limine-enroll-config
+.RI "<Limine executable> <BLAKE2B of config file>"
+
+.SH DESCRIPTION
+\fBlimine-enroll-config\fR embeds the config file's BLAKE2B hash into a valid Limine bootloader
+executable, such as its EFI executable or limine.sys, for tampering prevention purposes.
+
+.SH OPTIONS
+.TP
+.BR \-h ", " \-\-help
+Show the available command-line options and exit
+.TP
+.BR \-\-reset
+Remove enrolled BLAKE2B, will not check config intergrity
+.TP
+.BR \-\-quiet
+Do not print verbose diagnostic messages
+
+.SH BUGS
+Please report bugs via
+.IR @PACKAGE_BUGREPORT@ .
+
+.SH HOMEPAGE
+.I @PACKAGE_URL@
+
+.SH SEE ALSO
+.BR limine-version (1)
+.BR limine-deploy (1)
diff --git a/man/man1/limine-version.1.in b/man/man1/limine-version.1.in
new file mode 100644
index 00000000..c99e675a
--- /dev/null
+++ b/man/man1/limine-version.1.in
@@ -0,0 +1,22 @@
+.TH LIMINE-VERSION 1 "version @PACKAGE_VERSION@" "@REGEN_DATE@"
+
+.SH NAME
+limine-version \- print Limine version
+
+.SH SYNOPSIS
+.B limine-version
+
+.SH DESCRIPTION
+\fBlimine-version\fR prints the version number of the installed copy of Limine
+to standard output.
+
+.SH BUGS
+Please report bugs via
+.IR @PACKAGE_BUGREPORT@ .
+
+.SH HOMEPAGE
+.I https://limine-bootloader.org/
+
+.SH SEE ALSO
+.BR limine-deploy (1)
+.BR limine-enroll-config (1)
tab: 248 wrap: offon