Hello, Here is a very simplified version of my makefile for latex. All actual commands have been replaced by 'touch'. There is a text.tex and a directory for images. Images are in svg format and have to be converted to eps before running latex.
$ mkdir test-dir $ cd test-dir $ cat > Makefile text.dvi: text.tex images/image.eps touch $@ echo === no bug === images/image.eps: images .PHONY: images images: $(MAKE) -C images $ mkdir images $ cat > images/Makefile image.eps: image.svg touch $@ $ touch text.tex images/image.svg With these makefiles I expect that if images/image.svg is newer than text.dvi then text.dvi will be rebuilt if make is called in the toplevel directory. However, consider such situation: images/image.eps is older than text.dvi, but images/image.svg is newer than any of them. (Like image.svg was edited.) 'images' target is invoked regardless the timestamp because it is phony. In the sub-make images/image.eps is updated. But when sub-make finishes, toplevel make doesn't see that images/image.eps is newer than text.dvi. text.dvi is not rebuilt. Here's a test command. It just simulates the whole process (setting proper timestamps) in one line. The 'sleep' time is arbitrary, I have put it to make sure that timestamps really differ. $ touch text.dvi && sleep 2 && touch images/image.svg && sleep 2 && \ ls -l --full-time images/image.svg images/image.eps text.tex text.dvi && \ make -rw-r--r-- 1 grib grib 0 2009-08-04 04:13:08.000000000 +0300 images/image.eps -rw-r--r-- 1 grib grib 0 2009-08-04 04:16:34.000000000 +0300 images/image.svg -rw-r--r-- 1 grib grib 0 2009-08-04 04:16:32.000000000 +0300 text.dvi -rw-r--r-- 1 grib grib 0 2009-08-04 03:38:57.000000000 +0300 text.tex make -C images make[1]: Entering directory `/tmp/test-dir/images' touch image.eps make[1]: Leaving directory `/tmp/test-dir/images' I can send make -d output if it is needed. Is this a make bug or I'm missing something? Best regards, Dmitri Gribenko -- main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if (j){printf("%d\n",i);}}} /*Dmitri Gribenko <griboz...@gmail.com>*/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make