rework src/man Makefile

This commit is contained in:
netblue30 2023-07-07 14:01:20 -04:00
parent f6226d1294
commit 9e206b7f2c
4 changed files with 57 additions and 32 deletions

8
.gitignore vendored
View file

@ -65,3 +65,11 @@ aclocal.m4
__pycache__
*.pyc
*.pyo
src/fnettrace/static-ip-map
src/man/firecfg.1.gz
src/man/firejail-login.5.gz
src/man/firejail-profile.5.gz
src/man/firejail-users.5.gz
src/man/firejail.1.gz
src/man/firemon.1.gz
src/man/jailcheck.1.gz

View file

@ -2,11 +2,6 @@
ROOT = .
-include config.mk
ifneq ($(HAVE_MAN),no)
MAN_TARGET = man
MAN_SRC = src/man
endif
ifneq ($(HAVE_CONTRIB_INSTALL),no)
CONTRIB_TARGET = contrib
endif
@ -19,11 +14,10 @@ SBOX_APPS_NON_DUMPABLE = src/fcopy/fcopy src/fldd/fldd src/fnet/fnet src/fnetfil
SBOX_APPS_NON_DUMPABLE += src/fsec-optimize/fsec-optimize src/fsec-print/fsec-print src/fseccomp/fseccomp
SBOX_APPS_NON_DUMPABLE += src/fnettrace/fnettrace src/fnettrace-dns/fnettrace-dns src/fnettrace-sni/fnettrace-sni
SBOX_APPS_NON_DUMPABLE += src/fnettrace-icmp/fnettrace-icmp
MYDIRS = src/lib $(MAN_SRC) $(COMPLETIONDIRS)
MYDIRS = src/lib src/man $(COMPLETIONDIRS)
MYLIBS = src/libpostexecseccomp/libpostexecseccomp.so src/libtrace/libtrace.so src/libtracelog/libtracelog.so
COMPLETIONS = src/zsh_completion/_firejail src/bash_completion/firejail.bash_completion
SECCOMP_FILTERS = seccomp seccomp.debug seccomp.32 seccomp.block_secondary seccomp.mdwx seccomp.mdwx.32
MANPAGES = firejail.1 firemon.1 firecfg.1 firejail-profile.5 firejail-login.5 firejail-users.5 jailcheck.1
SYSCALL_HEADERS := $(sort $(wildcard src/include/syscall*.h))
@ -43,7 +37,7 @@ SYNTAX_FILES := $(SYNTAX_FILES_IN:.in=)
ALL_ITEMS = $(APPS) $(SBOX_APPS) $(SBOX_APPS_NON_DUMPABLE) $(MYLIBS)
.PHONY: all
all: all_items mydirs filters $(MAN_TARGET) $(CONTRIB_TARGET)
all: all_items mydirs filters $(CONTRIB_TARGET)
config.mk config.sh:
@printf 'error: run ./configure to generate %s\n' "$@" >&2
@ -82,12 +76,6 @@ seccomp.mdwx: src/fseccomp/fseccomp
seccomp.mdwx.32: src/fseccomp/fseccomp
src/fseccomp/fseccomp memory-deny-write-execute.32 seccomp.mdwx.32
$(MANPAGES): src/man config.mk
./mkman.sh $(VERSION) src/man/$(basename $@).man $@
.PHONY: man
man: $(MANPAGES)
# Makes all targets in contrib/
.PHONY: contrib
contrib: syntax
@ -158,7 +146,7 @@ clean:
done
$(MAKE) -C test clean
rm -f $(SECCOMP_FILTERS)
rm -f $(MANPAGES) $(MANPAGES:%=%.gz) firejail*.rpm
rm -f firejail*.rpm
rm -f $(SYNTAX_FILES)
rm -f src/fnettrace/static-ip-map
rm -f test/utils/index.html*
@ -248,15 +236,13 @@ endif
ifneq ($(HAVE_MAN),no)
# man pages
install -m 0755 -d $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5
for man in $(MANPAGES); do \
rm -f $$man.gz; \
gzip -9n $$man; \
case "$$man" in \
*.1) install -m 0644 $$man.gz $(DESTDIR)$(mandir)/man1/; ;; \
*.5) install -m 0644 $$man.gz $(DESTDIR)$(mandir)/man5/; ;; \
esac; \
done
rm -f $(MANPAGES) $(MANPAGES:%=%.gz)
install -m 0644 src/man/firejail.1.gz $(DESTDIR)$(mandir)/man1/
install -m 0644 src/man/firemon.1.gz $(DESTDIR)$(mandir)/man1/
install -m 0644 src/man/firecfg.1.gz $(DESTDIR)$(mandir)/man1/
install -m 0644 src/man/jailcheck.1.gz $(DESTDIR)$(mandir)/man1/
install -m 0644 src/man/firejail-login.5.gz $(DESTDIR)$(mandir)/man5/
install -m 0644 src/man/firejail-users.5.gz $(DESTDIR)$(mandir)/man5/
install -m 0644 src/man/firejail-profile.5.gz $(DESTDIR)$(mandir)/man5/
endif
# bash completion
install -m 0755 -d $(DESTDIR)$(datarootdir)/bash-completion/completions

View file

@ -2,14 +2,45 @@
ROOT = ../..
-include $(ROOT)/config.mk
.PHONY: all
all: firecfg.man firejail.man firejail-login.man firejail-users.man firejail-profile.man firemon.man jailcheck.man
all: firecfg.1.gz firejail.1.gz firejail-login.5.gz firejail-users.5.gz firejail-profile.5.gz firemon.1.gz jailcheck.1.gz
#firecfg.1.gz: firecfg.txt
# gawk -f ./preproc.awk -- $(MANFLAGS) < $< > firecfg.1
# ./mkman.sh $(VERSION) firecfg.1
# gzip -n9 firecfg.1
# a small function to build a manpage
define build
gawk -f ./preproc.awk -- $(MANFLAGS) < $1 > $2
./mkman.sh $(VERSION) ./$2
rm -f $2.gz
gzip -n9 $2
endef
firecfg.1.gz: firecfg.txt
$(call build,firecfg.txt,firecfg.1)
firejail.1.gz: firejail.txt
$(call build,firejail.txt,firejail.1)
firejail-login.5.gz: firejail-login.txt
$(call build,firejail-login.txt,firejail-login.5)
firejail-users.5.gz: firejail-users.txt
$(call build,firejail-users.txt,firejail-users.5)
firejail-profile.5.gz: firejail-profile.txt
$(call build,firejail-profile.txt,firejail-profile.5)
firemon.1.gz: firemon.txt
$(call build,firemon.txt,firemon.1)
jailcheck.1.gz: jailcheck.txt
$(call build,jailcheck.txt,jailcheck.1)
%.man: %.txt $(ROOT)/config.mk
gawk -f ./preproc.awk -- $(MANFLAGS) < $< > $@
.PHONY: clean
clean:; rm -fr *.man
clean:; rm -fr *.1 *.5 *.gz
.PHONY: distclean
distclean: clean

View file

@ -5,8 +5,8 @@
set -e
sed "s/VERSION/$1/g" "$2" > "$3"
sed -i "s/VERSION/$1/g" "$2"
MONTH="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%b)"
sed -i "s/MONTH/$MONTH/g" "$3"
sed -i "s/MONTH/$MONTH/g" "$2"
YEAR="$(LC_ALL=C date -u --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y)"
sed -i "s/YEAR/$YEAR/g" "$3"
sed -i "s/YEAR/$YEAR/g" "$2"