Add a new 'build' target (alias for 'all'), for consistency.
Also, use MKDIR instead of INSTALL_DIR to create directories in $(builddir).
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
MAKEFLAGS += --warn-undefined-variables
-srcdir := .
-builddir := tmp
-DESTDIR :=
-prefix := /usr/local
+srcdir := .
+DESTDIR :=
+prefix := /usr/local
MANDIR := $(srcdir)
MAN0DIR := $(MANDIR)/man0
MAN6DIR := $(MANDIR)/man6
MAN7DIR := $(MANDIR)/man7
MAN8DIR := $(MANDIR)/man8
+MANEXT := \.[0-9]\w*
datarootdir := $(prefix)/share
docdir := $(datarootdir)/doc
-manext := \.[0-9]\w*
INSTALL := install
INSTALL_DATA := $(INSTALL) -m 644
INSTALL_DIR := $(INSTALL) -m 755 -d
-MKDIR := mkdir -p
-RM := rm
RMDIR := rmdir --ignore-fail-on-non-empty
.PHONY: all
-all: build-html
+all: build
%/.:
$(info INSTALL $(@D)/)
uninstall remove: uninstall-man
@:
-.PHONY: clean
-clean:
- $(RM) -rf $(builddir)
-
########################################################################
# man
-MANPAGES := $(sort $(shell find $(MANDIR)/man?/ -type f | grep '$(manext)'))
+MANPAGES := $(sort $(shell find $(MANDIR)/man?/ -type f | grep '$(MANEXT)'))
MANDIRS := $(sort $(shell find $(MANDIR)/man? -type d))
########################################################################
+include $(srcdir)/lib/build.mk
include $(srcdir)/lib/build-html.mk
include $(srcdir)/lib/build-src.mk
include $(srcdir)/lib/dist.mk
MAKEFILE_BUILD_HTML_INCLUDED := 1
+include $(srcdir)/lib/build.mk
+
+
htmlext := .html
_HTMLDIR := $(builddir)/html
MAKEFILE_BUILD_SRC_INCLUDED := 1
+include $(srcdir)/lib/build.mk
include $(srcdir)/lib/lint.mk
_UNITS_src_src := $(sort $(patsubst $(MANDIR)/%,$(_SRCDIR)/%,$(shell \
find $(MANDIR)/man?/ -type f \
- | grep '$(manext)$$' \
+ | grep '$(MANEXT)$$' \
| xargs grep -l '^\.TH ' \
| while read m; do \
<$$m \
$(info LD $@)
$(LD) $(LDFLAGS) -o $@ $< $(LDLIBS)
-$(_SRCDIRS): %/.: | $$(dir %). $(_SRCDIR)/.
-
.PHONY: build-src-c
build-src-c: $(_UNITS_src_c) | builddirs-src
--- /dev/null
+########################################################################
+# Copyright (C) 2021, 2022 Alejandro Colomar <alx.manpages@gmail.com>
+# SPDX-License-Identifier: GPL-2.0 OR LGPL-2.0
+########################################################################
+
+
+ifndef MAKEFILE_BUILD_INCLUDED
+MAKEFILE_BUILD_INCLUDED := 1
+
+
+builddir := tmp
+
+_SRCDIR := $(builddir)/src
+
+
+MKDIR := mkdir -p
+RM := rm
+
+
+_SRCDIRS := $(patsubst $(MANDIR)/%,$(_SRCDIR)/%/.,$(MANDIRS))
+
+
+$(_SRCDIRS): %/.: | $$(dir %). $(_SRCDIR)/.
+
+
+$(builddir)/%/.:
+ $(info MKDIR $(@D)/)
+ $(MKDIR) $(@D)
+
+
+.PHONY: build
+build: build-html
+ @:
+
+.PHONY: clean
+clean:
+ $(RM) -rf $(builddir)
+
+
+endif # MAKEFILE_BUILD_INCLUDED
MAKEFILE_DIST_INCLUDED := 1
+include $(srcdir)/lib/build.mk
+
+
DISTNAME := $(shell git describe 2>/dev/null)
DISTFILE := $(builddir)/$(DISTNAME).tar
compression := gz xz
MAKEFILE_LINT_INCLUDED := 1
+include $(srcdir)/lib/build.mk
+
+
SYSCONFDIR := $(srcdir)/etc
_LINTDIR := $(builddir)/lint
-_SRCDIR := $(builddir)/src
-LINTMAN := $(shell find $(MANDIR)/man?/ -type f | grep '$(manext)' \
+LINTMAN := $(shell find $(MANDIR)/man?/ -type f | grep '$(MANEXT)' \
| xargs grep -l '^\.TH ' | sort))
_LINTDIRS := $(patsubst $(MANDIR)/%,$(_LINTDIR)/%/.,$(MANDIRS))
-_SRCDIRS := $(patsubst $(MANDIR)/%,$(_SRCDIR)/%/.,$(MANDIRS))
lint := lint-c lint-man