============================================================================
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.
--------------------------------------------------------------------------