Обсуждение: Port Bug Report: make fails to interpret src/backend/storage/Makefile correctly
Port Bug Report: make fails to interpret src/backend/storage/Makefile correctly
От
Unprivileged user
Дата:
============================================================================ POSTGRESQL BUG REPORT TEMPLATE ============================================================================ Your name : Robert Moniot Your email address : moniot@fordham.edu Category : install: compile Severity : non-critical Summary: make fails to interpret src/backend/storage/Makefile correctly System Configuration -------------------- Operating System : Digital Unix 4.0D PostgreSQL version : 6.4.2 Compiler used : gcc 2.8.0 Hardware: --------- OSF1 erdos V4.0 878 alpha Versions of other tools: ------------------------ gmake 3.76.1 flex 2.5.4 -------------------------------------------------------------------------- Problem Description: -------------------- The build fails with messages like for i in buffer file ipc large_object lmgr page smgr; do gmake -C $i buffer/SUBS YS.o; done gmake[3]: Entering directory `/usr/local/src/postgresql-6.4.2/src/backend/storag e/buffer' gmake[3]: *** No rule to make target `buffer/SUBSYS.o'. Stop. gmake[3]: Leaving directory `/usr/local/src/postgresql-6.4.2/src/backend/storage /buffer' These messages are generated for all the subdirectories in the list. They are produced from the target: .DEFAULT: for i in $(DIRS); do $(MAKE) -C $$i $@; done Evidently $@ is getting expanded to $$i/SUBSYS.o instead of SUBSYS.o. -------------------------------------------------------------------------- Test Case: ---------- -------------------------------------------------------------------------- Solution: --------- My fix was to add specific targets buffer/SUBSYS.o et al to the file src/backend/storage/Makefile. For example, add: buffer/SUBSYS.o: $(MAKE) -C buffer SUBSYS.o This was repeated with ``buffer'' replaced by each of the dirs in turn. --------------------------------------------------------------------------