From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; 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 ; 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 ; 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 ; Sat, 17 Feb 2024 05:16:08 +0000 (UTC) From: "Robin H. Johnson" 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" 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: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail 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 gmail com> AuthorDate: Tue Jan 30 06:31:02 2024 +0000 Commit: Robin H. Johnson gentoo 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 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 +