commit 01ae915757ea8d389874e7b2aa248c99a8363ee9
parent ce7260449861cf453199c66c940bbe0f4ce69f60
Author: Jan Pobrislo <ccx@te2000.cz>
Date: Mon, 12 May 2025 00:43:43 +0000
Tweak build scripts to be directory agnostic
Diffstat:
4 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,6 +1,17 @@
PYTHON_EXE?=python3
cache?=.
build_scripts:=./build_scripts
+src_dir:=src
+build_dir:=src/build
+test_dir:=./test
+
+default: pycodestyle
+.PHONY: default
+
+#include src/build.mk
+tools:
+ $(MAKE) -C src tools
+.PHONY: tools
# re-evaluate each time because there's no sensible way to check
# whether the python interpreter changed
diff --git a/build_scripts/codedeps.awk b/build_scripts/codedeps.awk
@@ -15,6 +15,7 @@ BEGIN {
function depname(s) {
sub(/"$/, "", s)
sub(/^"/, "", s)
+ sub(/^\.\//, "$(src_dir)/", s)
return s
}
@@ -25,7 +26,7 @@ function deparray(fname) {
function objfile(fname) {
sub(/\.c$/, ".o", fname)
- return "build/" fname
+ return "$(build_dir)/" fname
}
END {
@@ -42,7 +43,7 @@ END {
if(f == srcname) {
continue
}
- printf "include build/%s.deps.mk\n", f
+ printf "include $(build_dir)/%s.deps.mk\n", f
append = 1
}
if(append) {
diff --git a/src/Makefile b/src/Makefile
@@ -1,6 +1,6 @@
build_scripts:=../build_scripts
src_dir:=.
-build_dir:=./build
+build_dir:=build
test_dir:=../test
all: tools
diff --git a/src/build.mk b/src/build.mk
@@ -22,17 +22,17 @@ test: $(build_dir)/miniroon-test
## pattern rules:
-%_perfhash.c %_perfhash.h: %_perfhash.txt $(build_scripts)/genhash
- $(build_scripts)/genhash '$*_perfhash' '$<'
+$(src_dir)/%_perfhash.c $(src_dir)/%_perfhash.h: $(src_dir)/%_perfhash.txt $(build_scripts)/genhash
+ cd '$(src_dir)' && '$(abspath $(build_scripts))/genhash' '$*_perfhash' '$<'
-$(build_dir)/%.c.i: %.c $(build_scripts)/cc $(build_dir)/.exists
- $(build_scripts)/cc -E -C -o '$@' '$*.c'
+$(build_dir)/%.c.i: $(src_dir)/%.c $(build_scripts)/cc $(build_dir)/.exists
+ cd '$(src_dir)' && '$(abspath $(build_scripts))/cc' -E -C -o '$(abspath $@)' './$*.c'
$(build_dir)/%.o: $(build_dir)/%.c.i $(build_scripts)/cc
$(build_scripts)/cc -fpreprocessed -c -o '$@' '$(build_dir)/$*.c.i'
$(build_dir)/%.c.deps.mk: $(build_dir)/%.c.i $(build_scripts)/codedeps.awk
- awk -v srcname='$*.c' -v target='$(build_dir)/$*.c.i' -f $(build_scripts)/codedeps.awk '$(build_dir)/$*.c.i' >'$@.new'
+ awk -v srcname='$*.c' -v target='$*.c.i' -f $(build_scripts)/codedeps.awk '$(build_dir)/$*.c.i' >'$@.new'
mv '$@.new' '$@'
%/.exists: