]> gitweb.michael.orlitzky.com - mjotex.git/commitdiff
GNUmakefile: fix rebuild loop caused by idx file regeneration.
authorMichael Orlitzky <michael@orlitzky.com>
Mon, 16 Sep 2019 00:51:17 +0000 (20:51 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 16 Sep 2019 00:51:17 +0000 (20:51 -0400)
GNUmakefile

index 75f4677aca1206fcacc477857ba5ff317c036a77..e61d7f24320990a550c0c96ef2b94a872a34ceb1 100644 (file)
@@ -63,7 +63,6 @@ endif
 ifdef INDICES
 INDEX_SRCS = $(addsuffix .idx,$(INDICES))
 INDEX_DSTS = $(addsuffix .ind,$(INDICES))
-SRCS += $(INDEX_DSTS)
 endif
 
 # The first target is the default, so put the PDF document first.
@@ -100,7 +99,7 @@ endif
 # version of pdflatex makes it into TeX Live 2016, we can replace
 # those two sed scripts with something smarter.
 #
-$(PN).pdf: $(SRCS) $(PN).bbl
+$(PN).pdf: $(SRCS) $(PN).bbl $(INDEX_DSTS)
        $(LATEX) $(PN).tex
 
        sed --in-place \
@@ -136,8 +135,12 @@ $(INDEX_SRCS): $(PN).tex
 endif
 
 ifdef INDICES
-# Create real indices from source files by running "makeindex" on them.
-%.ind: %.idx
+# Create real indices from source files by running "makeindex" on
+# them. We depend on SRCS here because we *do* want to rebuild the
+# index if the source document changes, but we use an order-only
+# dependency (see the bbl rule below) on the idx files to prevent us
+# from going into a rebuild loop when the idx files are regenerated.
+%.ind: $(SRCS) | %.idx
        makeindex $<
 endif