Angus Leeming wrote:
> But it would appear that this rule in config/common.am isn't doing what
> it's meant to be doing.
> 
> PCH_FILE = ./pch.h.gch
> *.C *.cpp: $(PCH_FILE)

Changing it to:

# Make the TARGETS depend on the pch.h.gch, not the SOURCES!
*.o *.lo *.obj: $(PCH_FILE)

appears to do the trick. Patch attached.

-- 
Angus
Index: config/common.am
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/config/common.am,v
retrieving revision 1.14
diff -u -p -r1.14 common.am
--- config/common.am	20 Jan 2005 14:44:19 -0000	1.14
+++ config/common.am	4 May 2005 15:47:26 -0000
@@ -2,7 +2,7 @@ AUTOMAKE_OPTIONS = foreign
 
 CLEANFILES = pch.h.gch
 
-DISTCLEANFILES= *.orig *.rej *~ *.bak core
+DISTCLEANFILES= pch.h.gch.dep *.orig *.rej *~ *.bak core
 
 MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
 
@@ -16,16 +16,16 @@ PCH_FLAGS = -Winvalid-pch --include=$(PC
 PCH_FILE = ./pch.h.gch
 sinclude ./pch.h.gch.dep
 
-*.C *.cpp: $(PCH_FILE)
+*.o *.lo *.obj: $(PCH_FILE)
 
 $(PCH_FILE): $(PCH_SOURCE)
 	$(MAKE) PCH_FLAGS= pch-file
 
 pch-file:
-	$(CXXCOMPILE) -x c++-header $(PCH_SOURCE) -MT $(PCH_FILE)  -MD -MP \
-        -MF "./$(PCH_FILE).Tdep" \
-	&& mv "./$(PCH_FILE).Tdep" "./$(PCH_FILE).dep" || rm "./$(PCH_FILE).Tdep"
-
+	$(CXXCOMPILE) -x c++-header $(PCH_SOURCE) -o $(PCH_FILE) \
+	-MT $(PCH_FILE)  -MD -MP -MF "./$(PCH_FILE).Tdep" \
+	&& mv "./$(PCH_FILE).Tdep" "./$(PCH_FILE).dep" \
+	|| rm "./$(PCH_FILE).Tdep"
 endif
 
 SUFFIXES = .gch
 

Reply via email to