С помощью autotools как заставить pandoc работать в директории src рядом с программами c - PullRequest
0 голосов
/ 07 июня 2018

Я создаю программу ac, в которой я использую документ design.md внутри каталога src, поэтому дизайн близок к исходному коду.Я использую autotools, но я не знаю, как заставить automake запустить pandoc рядом с компилятором c.Это мой Makefile.am:

bin_PROGRAMS = brun
AM_CFLAGS = -Wall -Wextra -std=c11
AM_LDFLAGS = -rdynamic
lib_LTLIBRARIES = libbrun.la
libbrun_la_SOURCES = Object.c Box.c Module.c
libbrun_la_LDFLAGS = -version-info 0:0:0
brun_SOURCES = main.c
brun_LDADD = libbrun.la
include_HEADERS = Object.h Object.r.h Box.h Box.r.h Module.h Module.r.h
# EXTRA_DIST = Object.r Box.r Module.r
#
%.pdf: %.md
    pandoc -o $@ $<

Приведенный выше код ничего не делает для генерации моих файлов design.md и todo.md, которые находятся в каталоге src.

Я искалдля подсказок, как это сделать, но большинство результатов указывают на то, как использовать autotools для компиляции или просто содержат общие руководства.Я искал день или около того, и я стал слепым к очевидному.

Кто-нибудь знает, как заставить automake запускать pandoc, рядом с компиляцией моих c-исходников?

1 Ответ

0 голосов
/ 07 июня 2018

Вы предоставили make правило, которое описывает как создавать PDF-файлы из ваших .md файлов, но ваш Makefile.am нигде не выражает того, что какие-либо PDF-файлы на самом деле должны создаваться, оченьменьше каких.

Для файлов, которые вы хотите установить (и почему вы создаете документы, если вы не хотите их устанавливать), специфика зависит от того, куда вы хотите, чтобы они былииди, но, например,

pkgdata_DATA = design.pdf todo.pdf

Это создаст их как часть make all и установит их в подкаталог $(datadir) во время make install (возможно, что-то вроде /usr/local/share/brun).

Если по какой-то причине вы хотите, чтобы файлы создавались, но не были установлены, вы могли бы вместо этого использовать

noinst_DATA = design.pdf todo.pdf

В любом случае, поскольку вы полагаетесь на правило суффиксадля необычных суффиксов вам, вероятно, также придется сообщить Automake о них:

SUFFIXES = .md .pdf

Обратите внимание, что make распознает аналогичную конструкцию, но вы не должны использовать вариацию make в Automake;вместо этого используйте приведенную выше форму назначения переменных, и Automake будет обрабатывать преобразование для использования make.

...