Skip to content

Commit ec0224f

Browse files
vriesdavidmalcolm
authored andcommitted
Makefiles: Use VPATH to simplify dependencies
Currently dependency rules are defined using srcdir like this: ... autogenerated-%.txt: $(srcdir)%.txt.in ... to allow both for srcdir /a/b/: ... autogenerated-%.txt: /a/b/%.txt.in ... and for no srcdir: ... autogenerated-%.txt: %.txt.in ... A less verbose way to achieve this is to use VPATH: ... VPATH = $(srcdir) ... which allows us to use: ... autogenerated-%.txt: %.txt.in ... Add srcdir to VPATH and clean up dependencies.
1 parent dcfd743 commit ec0224f

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

Makefile

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
# along with this program. If not, see
1616
# <http://www.gnu.org/licenses/>.
1717

18+
ifneq ($(srcdir),)
19+
VPATH = $(srcdir)
20+
endif
21+
1822
.PHONY: all clean debug dump_gimple plugin show-ssa tarball \
1923
test-suite testcpychecker testcpybuilder testdejagnu \
2024
man
@@ -155,7 +159,7 @@ $(PLUGIN_OBJECT_GENERATED_FILES): CPPFLAGS+= $(if $(srcdir),-I$(srcdir))
155159

156160
# This is the standard .c->.o recipe, but it needs to be stated
157161
# explicitly to support the case that $(srcdir) is not blank.
158-
$(PLUGIN_OBJECT_FILES): %.o: $(srcdir)%.c autogenerated-config.h $(srcdir)gcc-python.h $(LIBGCC_C_API_SO) autogenerated-EXTRA_CFLAGS.txt
162+
$(PLUGIN_OBJECT_FILES): %.o: %.c autogenerated-config.h gcc-python.h $(LIBGCC_C_API_SO) autogenerated-EXTRA_CFLAGS.txt
159163
$(COMPILE.c) $(shell cat autogenerated-EXTRA_CFLAGS.txt) $(OUTPUT_OPTION) $<
160164

161165
print-gcc-version: print-gcc-version.c autogenerated-EXTRA_CFLAGS.txt
@@ -173,10 +177,10 @@ clean:
173177
cd gcc-c-api && make clean
174178
find tests -name "*.o" -delete
175179

176-
autogenerated-config.h: $(addprefix $(srcdir),generate-config-h.py configbuilder.py)
180+
autogenerated-config.h: generate-config-h.py configbuilder.py
177181
$(PYTHON) $< -o $@ --gcc="$(CC)" --plugindir="$(GCCPLUGINS_DIR)"
178182

179-
autogenerated-%.txt: $(srcdir)%.txt.in
183+
autogenerated-%.txt: %.txt.in
180184
$(CPP) $(CPPFLAGS) -x c-header $^ -o $@
181185

182186
# autogenerated-EXTRA_CFLAGS.txt is a byproduct of making
@@ -186,16 +190,16 @@ autogenerated-EXTRA_CFLAGS.txt: autogenerated-config.h
186190
# autogenerated-casts.h is a byproduct of making autogenerated-casts.c
187191
autogenerated-casts.h: autogenerated-casts.c
188192

189-
$(PLUGIN_GENERATED_SOURCE_FILES): autogenerated-%.c: $(addprefix $(srcdir),generate-%-c.py $(GENERATOR_DEPS))
193+
$(PLUGIN_GENERATED_SOURCE_FILES): autogenerated-%.c: generate-%-c.py $(GENERATOR_DEPS)
190194
$(PYTHON) $< > $@
191195

192-
autogenerated-casts.c: autogenerated-gimple-types.txt autogenerated-tree-types.txt autogenerated-rtl-types.txt $(srcdir)generate-casts-c.py
196+
autogenerated-casts.c: autogenerated-gimple-types.txt autogenerated-tree-types.txt autogenerated-rtl-types.txt generate-casts-c.py
193197
$(PYTHON) $(srcdir)generate-casts-c.py autogenerated-casts.c autogenerated-casts.h
194198

195-
autogenerated-gimple.c: autogenerated-gimple-types.txt autogenerated-tree-types.txt autogenerated-rtl-types.txt $(srcdir)maketreetypes.py
196-
autogenerated-tree.c: autogenerated-tree-types.txt $(srcdir)maketreetypes.py
197-
autogenerated-rtl.c: autogenerated-rtl-types.txt $(srcdir)maketreetypes.py
198-
autogenerated-variable.c: autogenerated-gimple-types.txt $(srcdir)maketreetypes.py
199+
autogenerated-gimple.c: autogenerated-gimple-types.txt autogenerated-tree-types.txt autogenerated-rtl-types.txt maketreetypes.py
200+
autogenerated-tree.c: autogenerated-tree-types.txt maketreetypes.py
201+
autogenerated-rtl.c: autogenerated-rtl-types.txt maketreetypes.py
202+
autogenerated-variable.c: autogenerated-gimple-types.txt maketreetypes.py
199203

200204
bindir=/usr/bin
201205
mandir=/usr/share/man

gcc-c-api/Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
# along with this program. If not, see
1616
# <http://www.gnu.org/licenses/>.
1717

18+
ifneq ($(srcdir),)
19+
VPATH = $(srcdir)
20+
endif
21+
1822
.PHONY: all clean check-api
1923

2024
HANDWRITTEN_C_FILES = \
@@ -89,7 +93,7 @@ $(LIBGCC_C_API_SO): $(OBJECT_FILES)
8993

9094
# This is the standard .c->.o recipe, but it needs to be stated
9195
# explicitly to support the case that $(srcdir) is not blank.
92-
$(OBJECT_FILES): %.o: $(srcdir)%.c $(GENERATED_HEADERS) ../autogenerated-EXTRA_CFLAGS.txt
96+
$(OBJECT_FILES): %.o: %.c $(GENERATED_HEADERS) ../autogenerated-EXTRA_CFLAGS.txt
9397
$(COMPILE.c) $(shell cat ../autogenerated-EXTRA_CFLAGS.txt) $(OUTPUT_OPTION) $<
9498

9599
autogenerated-casts.c: $(SOURCE_XML) xmltypes.py generate-casts-c.py

0 commit comments

Comments
 (0)