From: Peter Eisentraut Date: Fri, 21 Jun 2024 06:17:23 +0000 (+0200) Subject: Fix make build on MinGW X-Git-Tag: REL_17_BETA2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58445651dbc6182e1ff4100f6428ba6a261407f9;p=thirdparty%2Fpostgresql.git Fix make build on MinGW Revert a couple of the simplifications done in commit 721856ff24b because platforms without ln -s, where LN_S='cp -pR', such as MinGW, required the specific previous incantations. Reported-by: Noah Misch Discussion: https://www.postgresql.org/message-id/20240616193448.28@rfd.leadboat.com --- diff --git a/src/backend/Makefile b/src/backend/Makefile index 6700aec0396..84302cc6dab 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -133,18 +133,24 @@ submake-utils-headers: # Make symlinks for these headers in the include directory. That way # we can cut down on the -I options. Also, a symlink is automatically # up to date when we update the base file. +# +# The point of the prereqdir incantation in some of the rules below is to +# force the symlink to use an absolute path rather than a relative path. +# This is needed to support platforms without ln -s. .PHONY: generated-headers generated-headers: $(top_builddir)/src/include/storage/lwlocknames.h $(top_builddir)/src/include/utils/wait_event_types.h submake-catalog-headers submake-nodes-headers submake-utils-headers parser/gram.h $(top_builddir)/src/include/storage/lwlocknames.h: storage/lmgr/lwlocknames.h - rm -f '$@' - $(LN_S) ../../backend/$< '$@' + prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \ + cd '$(dir $@)' && rm -f $(notdir $@) && \ + $(LN_S) "$$prereqdir/$(notdir $<)" . $(top_builddir)/src/include/utils/wait_event_types.h: utils/activity/wait_event_types.h - rm -f '$@' - $(LN_S) ../../backend/$< '$@' + prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \ + cd '$(dir $@)' && rm -f $(notdir $@) && \ + $(LN_S) "$$prereqdir/$(notdir $<)" . utils/probes.o: utils/probes.d $(SUBDIROBJS) $(DTRACE) $(DTRACEFLAGS) -C -G -s $(call expand_subsys,$^) -o $@