From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1601050-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id AC39315808B
	for <garchives@archives.gentoo.org>; Sat, 17 Feb 2024 05:16:11 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id C2752E2A1B;
	Sat, 17 Feb 2024 05:16:10 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id 9D819E2A1B
	for <gentoo-commits@lists.gentoo.org>; Sat, 17 Feb 2024 05:16:10 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 9C83433BEE9
	for <gentoo-commits@lists.gentoo.org>; Sat, 17 Feb 2024 05:16:09 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 0F28314AA
	for <gentoo-commits@lists.gentoo.org>; Sat, 17 Feb 2024 05:16:08 +0000 (UTC)
From: "Robin H. Johnson" <robbat2@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Robin H. Johnson" <robbat2@gentoo.org>
Message-ID: <1708146685.c235b05a93283ee47b56887cc7ca72790e1ff8bd.robbat2@gentoo>
Subject: [gentoo-commits] proj/genkernel:master commit in: /
X-VCS-Repository: proj/genkernel
X-VCS-Files: Makefile
X-VCS-Directories: /
X-VCS-Committer: robbat2
X-VCS-Committer-Name: Robin H. Johnson
X-VCS-Revision: c235b05a93283ee47b56887cc7ca72790e1ff8bd
X-VCS-Branch: master
Date: Sat, 17 Feb 2024 05:16:08 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 4451eda0-b883-4898-8ff9-e8f7e6926db1
X-Archives-Hash: 41c56278ea0e402da8df3f07796fc9f4

commit:     c235b05a93283ee47b56887cc7ca72790e1ff8bd
Author:     Timothy Kenno Handojo <timkenhan <AT> gmail <DOT> com>
AuthorDate: Tue Jan 30 06:31:02 2024 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Sat Feb 17 05:11:25 2024 +0000
URL:        https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=c235b05a

modernize makefile

Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>

 Makefile | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 95 insertions(+), 7 deletions(-)

diff --git a/Makefile b/Makefile
index 92d1278..7e90b60 100644
--- a/Makefile
+++ b/Makefile
@@ -5,8 +5,6 @@ MANPAGE = genkernel.8
 # Add off-Git/generated files here that need to be shipped with releases
 EXTRA_DIST = $(MANPAGE) ChangeLog $(KCONF)
 
-default: kconfig man
-
 # First argument in the override file
 # Second argument is the base file
 BASE_KCONF = defaults/kernel-generic-config
@@ -14,18 +12,54 @@ ARCH_KCONF = $(wildcard arch/*/arch-config)
 GENERATED_KCONF = $(subst arch-,generated-,$(ARCH_KCONF))
 KCONF = $(GENERATED_KCONF)
 
+BUILD_DIR = build
+
+FINAL_DEPS = genkernel.conf \
+	gen_cmdline.sh \
+	gen_initramfs.sh \
+	gen_determineargs.sh \
+	gen_arch.sh \
+	gen_bootloader.sh \
+	gen_compile.sh \
+	gen_configkernel.sh \
+	gen_funcs.sh \
+	gen_moddeps.sh \
+	gen_package.sh \
+	gen_worker.sh \
+	path_expander.py
+
+SOFTWARE = BCACHE_TOOLS BOOST BTRFS_PROGS BUSYBOX COREUTILS CRYPTSETUP \
+	DMRAID DROPBEAR EUDEV EXPAT E2FSPROGS FUSE GPG \
+	HWIDS ISCSI JSON_C KMOD LIBAIO LIBGCRYPT LIBGPGERROR LIBXCRYPT LVM \
+	LZO MDADM MULTIPATH_TOOLS POPT STRACE THIN_PROVISIONING_TOOLS UNIONFS_FUSE \
+	USERSPACE_RCU UTIL_LINUX XFSPROGS XZ ZLIB ZSTD
+
+SOFTWARE_VERSION = $(foreach entry, $(SOFTWARE), "VERSION_$(entry)=${VERSION_$(entry)}\n")
+
+PREFIX = /usr/local
+BINDIR = $(PREFIX)/bin
+ifeq ($(PREFIX), /usr)
+	SYSCONFDIR = /etc
+else
+	SYSCONFDIR = $(PREFIX)/etc
+endif
+MANDIR = $(PREFIX)/share/man
+
+all: $(BUILD_DIR)/genkernel $(BUILD_DIR)/build-config man kconfig
+
 debug:
 	@echo "ARCH_KCONF=$(ARCH_KCONF)"
 	@echo "GENERATED_KCONF=$(GENERATED_KCONF)"
 
 kconfig: $(GENERATED_KCONF)
-man: $(MANPAGE)
+man: $(addprefix $(BUILD_DIR)/,$(MANPAGE))
 
 ChangeLog:
 	git log >$@
 
 clean:
 	rm -f $(EXTRA_DIST)
+	rm -rf $(BUILD_DIR)
 
 check-git-repository:
 ifneq ($(UNCLEAN),1)
@@ -46,7 +80,7 @@ dist: verify-shellscripts-initramfs verify-doc check-git-repository distclean $(
 distclean: clean
 	rm -Rf "$(distdir)" "$(distdir)".tar "$(distdir)".tar.xz
 
-.PHONY: clean check-git-repository dist distclean kconfig verify-doc
+.PHONY: clean check-git-repository dist distclean kconfig verify-doc install
 
 # Generic rules
 %/generated-config: %/arch-config $(BASE_KCONF) merge.pl Makefile
@@ -56,9 +90,9 @@ distclean: clean
 		perl merge.pl $< $(BASE_KCONF) | sort > $@ ; \
 	fi ;
 
-%.8: doc/%.8.txt doc/asciidoc.conf Makefile genkernel
-	a2x --conf-file=doc/asciidoc.conf --attribute="genkernelversion=$(PACKAGE_VERSION)" \
-		 --format=manpage -D . "$<"
+$(BUILD_DIR)/%.8: doc/%.8.txt doc/asciidoc.conf Makefile $(BUILD_DIR)/doc/genkernel.8.txt
+	a2x --conf-file=doc/asciidoc.conf \
+		 --format=manpage -D $(BUILD_DIR) "$(BUILD_DIR)/$<"
 
 verify-doc: doc/genkernel.8.txt
 	@rm -f faildoc ; \
@@ -99,3 +133,57 @@ verify-shellscripts-initramfs:
 		--severity error \
 		defaults/linuxrc \
 		defaults/initrd.scripts
+
+$(BUILD_DIR)/build-config:
+# $(addprefix $(BUILD_DIR)/temp/,$(TEMPFILES))
+	install -d $(BUILD_DIR)
+	echo ${PREFIX} > $(BUILD_DIR)/PREFIX
+	echo ${BINDIR} > $(BUILD_DIR)/BINDIR
+	echo ${SYSCONFDIR} > $(BUILD_DIR)/SYSCONFDIR
+	echo ${MANDIR} > $(BUILD_DIR)/MANDIR
+	touch $(BUILD_DIR)/build-config
+
+$(BUILD_DIR)/software.sh:
+	install -d $(BUILD_DIR)/temp/
+	echo -e $(SOFTWARE_VERSION) > $(BUILD_DIR)/temp/versions
+	cat $(BUILD_DIR)/temp/versions defaults/software.sh > $(BUILD_DIR)/software.sh
+
+$(BUILD_DIR)/doc/genkernel.8.txt:
+	install -d $(BUILD_DIR)/doc/
+	cp doc/genkernel.8.txt $(BUILD_DIR)/doc/genkernel.8.txt
+
+$(BUILD_DIR)/%: %
+	install -d $(BUILD_DIR)/
+	cp $< $@
+
+$(BUILD_DIR)/genkernel: $(addprefix $(BUILD_DIR)/,$(FINAL_DEPS)) $(BUILD_DIR)/software.sh
+	cp genkernel $(BUILD_DIR)/genkernel
+
+install: PREFIX := $(file <$(BUILD_DIR)/PREFIX)
+install: BINDIR := $(file <$(BUILD_DIR)/BINDIR)
+install: SYSCONFDIR := $(file <$(BUILD_DIR)/SYSCONFDIR)
+install: MANDIR := $(file <$(BUILD_DIR)/MANDIR)
+install: all
+	install -d $(DESTDIR)/$(SYSCONFDIR)
+	install -m 644 $(BUILD_DIR)/genkernel.conf $(DESTDIR)/$(SYSCONFDIR)/
+
+	install -d $(DESTDIR)/$(BINDIR)
+	install -m 755 $(BUILD_DIR)/genkernel $(DESTDIR)/$(BINDIR)/
+
+	install -d $(DESTDIR)/$(PREFIX)/share/genkernel
+
+	cp -rp arch $(DESTDIR)/$(PREFIX)/share/genkernel/
+	cp -rp defaults $(DESTDIR)/$(PREFIX)/share/genkernel/
+	cp -rp gkbuilds $(DESTDIR)/$(PREFIX)/share/genkernel/
+	cp -rp modules $(DESTDIR)/$(PREFIX)/share/genkernel/
+	cp -rp netboot $(DESTDIR)/$(PREFIX)/share/genkernel/
+	cp -rp patches $(DESTDIR)/$(PREFIX)/share/genkernel/
+	cp -rp worker_modules $(DESTDIR)/$(PREFIX)/share/genkernel/
+
+	install -m 755 -t $(DESTDIR)/$(PREFIX)/share/genkernel $(addprefix $(BUILD_DIR)/,$(FINAL_DEPS))
+
+	install $(BUILD_DIR)/software.sh $(DESTDIR)/$(PREFIX)/share/genkernel/defaults
+
+	install -d $(DESTDIR)/$(MANDIR)
+	install $(BUILD_DIR)/genkernel.8 $(DESTDIR)/$(MANDIR)/man8
+