ransford/pdflatex-makefile

Mixed Implicit and Normal Rule error

Closed this issue · 7 comments

Hi there,

First of all, thank you for the amazing makefile. I am trying to learn to use it and adapt it for my project. I get the following error:
Makefile.include:126: *** mixed implicit and normal rules: deprecated syntax which is generated because of the following line:

$(FIGS)/%.pdf: $(FIGS)/%.svg  ## Figures for the manuscript

Not sure how to fix it.

I've never seen that. What does make --version say?

It says:

GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

I think it's complaining about the ## ... comment. If you remove that comment from that line, does the error go away?

Nope. I tried. It still complains about this line : $(FIGS)/%.pdf: $(FIGS)/%.svg

OK. It will take me a little time to reproduce this, since GNU Make 3.x doesn't seem to tickle this bug.

Bro I also encountered this problem about :$(OBJ_OUT_DIR)/%.o: $(CUR_DIR)/%.c

There's almost certainly a space in a directory name in $(FIGS) (or in the case of the most recent comment, $(OBJ_OUT_DIR)). Try renaming component directories so that they don't have spaces in their names.