From 6a0bf746956c8add98d6224fe6f12b9d87290bc0 Mon Sep 17 00:00:00 2001 From: Mintsuki Date: Wed, 27 Aug 2025 03:24:59 +0200 Subject: [PATCH] Add .deps-obtained file to track whether deps were gotten --- .gitignore | 1 - GNUmakefile | 5 ++--- kernel/.gitignore | 1 + kernel/GNUmakefile | 6 +++--- kernel/get-deps | 9 +++++---- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index e6967fd..cd213a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -/kernel-deps /limine /ovmf *.iso diff --git a/GNUmakefile b/GNUmakefile index d796ed4..77206c9 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -156,12 +156,11 @@ limine/limine: LDFLAGS="$(HOST_LDFLAGS)" \ LIBS="$(HOST_LIBS)" -kernel-deps: +kernel/.deps-obtained: ./kernel/get-deps - touch kernel-deps .PHONY: kernel -kernel: kernel-deps +kernel: kernel/.deps-obtained $(MAKE) -C kernel $(IMAGE_NAME).iso: limine/limine kernel diff --git a/kernel/.gitignore b/kernel/.gitignore index 1a630c0..bc74565 100644 --- a/kernel/.gitignore +++ b/kernel/.gitignore @@ -1,5 +1,6 @@ /compile_commands.json /.cache +/.deps-obtained /freestnd-c-hdrs /cc-runtime /limine-protocol diff --git a/kernel/GNUmakefile b/kernel/GNUmakefile index b47ab64..0059236 100644 --- a/kernel/GNUmakefile +++ b/kernel/GNUmakefile @@ -56,8 +56,8 @@ endif LDFLAGS := # Ensure the dependencies have been obtained. -ifneq ($(shell ( test '$(MAKECMDGOALS)' = clean || test '$(MAKECMDGOALS)' = distclean ); echo $$?),0) - ifeq ($(shell ( ! test -d freestnd-c-hdrs || ! test -d cc-runtime || ! test -d limine-protocol ); echo $$?),0) +ifneq ($(filter-out clean distclean,$(MAKECMDGOALS)),) + ifeq ($(wildcard .deps-obtained),) $(error Please run the ./get-deps script first) endif endif @@ -224,7 +224,7 @@ clean: # Remove everything built and generated including downloaded dependencies. .PHONY: distclean distclean: - rm -rf bin-* obj-* freestnd-c-hdrs cc-runtime limine-protocol + rm -rf bin-* obj-* .deps-obtained freestnd-c-hdrs cc-runtime limine-protocol # Install the final built executable to its final on-root location. .PHONY: install diff --git a/kernel/get-deps b/kernel/get-deps index bd2e80b..cc9504f 100755 --- a/kernel/get-deps +++ b/kernel/get-deps @@ -1,6 +1,6 @@ #! /bin/sh -set -ex +set -e srcdir="$(dirname "$0")" test -z "$srcdir" && srcdir=. @@ -16,7 +16,6 @@ clone_repo_commit() { fi else if test -d "$2"; then - set +x echo "error: '$2' is not a Git repository" 1>&2 exit 1 fi @@ -30,6 +29,8 @@ clone_repo_commit() { fi } +rm -f .deps-obtained + clone_repo_commit \ https://github.com/osdev0/freestnd-c-hdrs-0bsd.git \ freestnd-c-hdrs \ @@ -45,6 +46,6 @@ clone_repo_commit \ limine-protocol \ fedf97facd1c473ee8720f8dfd5a71d03490d928 -set +x +touch .deps-obtained -printf "\nDependencies obtained successfully!\n" +printf "\nDependencies obtained successfully.\n"