From 5b1bd33c7dc1b96cc27e4e52e8bdfe63268887e9 Mon Sep 17 00:00:00 2001 From: "Kelvin M. Klann" Date: Sun, 2 Jul 2023 22:19:48 -0300 Subject: build: use full paths on compile/link targets This makes the compile commands clearer when building in parallel (with `make -j`) and ensures that `__FILE__` includes the full build-time path (relative to the root of the repository) whenever it is referenced, such as in failed assert() messages (currently the full path is only shown in errExit() messages). Example: Before: firejail: main.c:100: main: Assertion `1 == 2' failed. Error src/firecfg/main.c:100: main: malloc: Cannot allocate memory After: firejail: ../../src/firejail/main.c:100: main: Assertion `1 == 2' failed. Error ../../src/firecfg/main.c:100: main: malloc: Cannot allocate memory Commands used to search and replace: $ git grep -Ilz '^MOD_DIR =' -- '*Makefile' | xargs -0 -I '{}' \ sh -c "printf '%s\n' \"\$(sed -E \ -e 's|^MOD_DIR = src/(.*)|MOD = \\1\\nMOD_DIR = \$(ROOT)/src/\$(MOD)|' \ -e 's:^(PROG|SO) = [^.]+(\.so)?$:\\1 = \$(MOD_DIR)/\$(MOD)\2:' \ '{}')\" >'{}'" $ git grep -Ilz '^HDRS :=' -- '*.mk' | xargs -0 -I '{}' \ sh -c "printf '%s\n' \"\$(sed -E \ -e 's|wildcard (\*\..)|wildcard \$(MOD_DIR)/\\1|' '{}')\" >'{}'" Note: config.mk.in, src/fnettrace/Makefile and src/include/common.h were edited manually. This is a follow-up to #5871. --- src/lib/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/lib') diff --git a/src/lib/Makefile b/src/lib/Makefile index 9cf8abe36..4b2303e52 100644 --- a/src/lib/Makefile +++ b/src/lib/Makefile @@ -2,7 +2,8 @@ ROOT = ../.. -include $(ROOT)/config.mk -MOD_DIR = src/lib +MOD = lib +MOD_DIR = $(ROOT)/src/$(MOD) TARGET = lib include $(ROOT)/src/prog.mk -- cgit v1.2.3-70-g09d2