shiblon / latex-makefile

A Makefile for LaTeX - drop it in, type make, and magic happens.
Other
185 stars 30 forks source link

.d file has incorrect .SECONDEXPANSION content #98

Closed shiblon closed 8 years ago

shiblon commented 8 years ago

Originally reported on Google Code with ID 85

Using pdflatex with the Makefile, here's the output after an initial run:

$ make
NOTE: You may ignore warnings about the following files:

     ascat_doc_report.d

Makefile:2181: ascat_doc_report.d: No such file or directory
= ascat_doc_report.tex --> ascat_doc_report.d ascat_doc_report.pdf.1st.make
(0-1) =
make: *** No rule to make target `$(call)', needed by `ascat_doc_report.d'.
 Stop.

When I open up ascat_doc_report.d, here are the lines at the bottom:

.SECONDEXPANSION:
-include images/swath.pdf.gpi.d
ascat_doc_report.d: $$(call graphics-source,images/swath.pdf)
ascat_doc_report.pdf ascat_doc_report._graphics: $$(call
graphics-target,images/swath.pdf)
-include images/slice_shapes_closer.pdf.gpi.d
ascat_doc_report.d: $$(call graphics-source,images/slice_shapes_closer.pdf)
ascat_doc_report.pdf ascat_doc_report._graphics: $$(call
graphics-target,images/slice_shapes_closer.pdf)
ascat_doc_report.bbl ascat_doc_report.aux ascat_doc_report.aux.make:
./ascat.bib

When I change the $$(call ...) to $(call ...) and re-run make, then it
works.  When I run make one more time, then the .d file reverts to the
$$(call ...) lines and require manual changing again before make will work.

Reported by onion.avenger on 2010-05-14 21:53:32

shiblon commented 8 years ago
What version of make are you running?  The double $ in there is important, and the only
reason it works for you 
to change it to a single $ is that the rest of the dependency files have already been
created by the makefile...

I would be very interested if you were to change the code that *generates* those $$
to only output a single $.  I'm 
almost 100% sure that it won't work

I'd love to fix this, but I strongly suspect that there is a "make" program version
issue.

Reported by shiblon on 2010-05-17 17:32:45

shiblon commented 8 years ago
~> make --version
GNU Make 3.80
Copyright (C) 2002  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

Reported by onion.avenger on 2010-05-17 17:36:57

shiblon commented 8 years ago
Ah, that may be it.  Make 3.80 has weird escaping issues compared to 3.81.  Is it possible
to try 3.81 on your 
system?

Reported by shiblon on 2010-05-17 17:40:21

shiblon commented 8 years ago
Yup, that did the trick!  For various reasons, this computer has older Linux
software, but I downloaded, compiled, and locally installed Make 3.81.

Thanks for the help!
A BYU EE student :)

Reported by onion.avenger on 2010-05-17 17:48:55

shiblon commented 8 years ago
Whew.  That's actually really good to know - I might be able to make it work properly
on 3.80 by using $$$$ 
instead - there's one place in the code that does this already.  :-)

It's worth a try, if you still have the old version of make hanging around.

Go Cougars!

Reported by shiblon on 2010-05-17 19:23:50

shiblon commented 8 years ago
I do indeed still have 3.80 available.  I'm happy to test with it.  

Reported by onion.avenger on 2010-05-17 20:01:12

shiblon commented 8 years ago
I apologize for being so slow here.  Life has intervened and I haven't had a moment
to look at this.  Rest assured that you are not forgotten, and thanks for your patience.

Reported by shiblon on 2010-06-17 20:38:43

shiblon commented 8 years ago
I wonder if it would make sense to just have the makefile fail to work (with a helpful
error message indicating that an upgrade is necessary) when using pdflatex and a version
less than 3.81.  How would you feel about that as a solution?

Reported by shiblon on 2010-06-30 13:52:05

shiblon commented 8 years ago
It's been four years since 3.81 came out.  Seems fair enough to not support old versions
of make.  Having an error messaging saying that the version of make is too old is a
good idea.

Reported by onion.avenger on 2010-06-30 13:59:55

shiblon commented 8 years ago
Sounds good to me.  Try ra1160a11c1ce and let me know if the warning is prominent enough,
or if I should change it to an error.

Reported by shiblon on 2010-07-28 14:12:55

shiblon commented 8 years ago

Reported by shiblon on 2010-07-28 14:32:52

shiblon commented 8 years ago
The warning works for me using make 3.80.  Everything looks good, thanks again.

Reported by onion.avenger on 2010-08-02 15:31:17

shiblon commented 8 years ago

Reported by shiblon on 2010-11-11 15:09:15