Hi community,
``` # gnu make 11.3 , # https://www.gnu.org/software/make/manual/make.html#Archive-Pitfalls , # Makefile (%) : % ; %.a : ; $(AR) $(ARFLAGS) $@ $? # libfoo.a: libfoo.a($(patsubst %.c,%.o,$(wildcard *.c))) libfoo.a: $(patsubst %.c,%.o,$(wildcard *.c)) ``` if i do not use ` a(m) ` syntax in the prerequisites, it works well. $ make libfoo.a make: 'libfoo.a' is up to date. $ but if i use ` a(m) ` syntax in the prerequisites, it rebuilds the archive even i did not change the `*.c` source files or the `*.o` object files. $ $ make libfoo.a ar -rv libfoo.a foo1.o foo2.o r - foo1.o r - foo2.o $ $ make --version GNU Make 4.4.1 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. $ $ cat /etc/os-release | grep PRETTY_NAME PRETTY_NAME="Debian GNU/Linux trixie/sid" $