This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] Makefile fix
- From: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- To: gdb-patches at sourceware dot org
- Date: Tue, 4 Feb 2014 11:33:08 +0100 (CET)
- Subject: [PATCH] Makefile fix
- Authentication-results: sourceware.org; auth=none
The diff below fixes an issue that has been bothering me for quite a
while. When using OpenBSD make, almost everything in gdb/ gets
rebuilt. The problem is the use of the all-lib phony target, which is
always considered to be out-of-date, and used as a prerequisite of
libgnu.a and the gnulib string.h, which are therefore also considered
to be out-of-date. I have no idea why this problem doesn't show up
with GNU make. But the GNU make manual clearly states that phony
targets should not be prerequisites of real target files:
<http://www.gnu.org/software/make/manual/make.html#Phony-Targets>
It seems to me that the phony target can be easily avoided; see the
diff below. But perhaps I'm missing something?
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index ed84e35..937478b 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1263,10 +1263,8 @@ gdb$(EXEEXT): gdb.o $(LIBGDB_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS)
$(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES)
# Convenience rule to handle recursion.
-$(LIBGNU) $(GNULIB_H): all-lib
-all-lib: $(GNULIB_BUILDDIR)/Makefile
+$(LIBGNU) $(GNULIB_H): $(GNULIB_BUILDDIR)/Makefile
@$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=$(GNULIB_BUILDDIR) subdir_do
-.PHONY: all-lib
# Convenience rule to handle recursion.
.PHONY: all-data-directory