Я создал файл Makefile.in, где я прочитал содержимое из файла и передал его в CFLAGS. Вызов ./configure ... Makefile будет сгенерирован, все работает хорошо.Autoreconf останавливается с именем «non-POSIX variable»
Makefile.in:
...
MY_REVISION_FILE=my-revision.txt
MY_REVISION=$(shell cat $(top_srcdir)/$(MY_REVISION_FILE))
AM_CFLAGS = -I$(EXTRAS_INCLUDE_DIR) -I$(top_srcdir) -DMY_REVISION=$(MY_REVISION)
...
Проблема возникает, когда я переехал код Makefile.in в Makefile.am, чтобы поколение Makefile.in авто. Там вызова AUTORECONF -i --force останавливается со следующей ошибкой:
server/Makefile.am:9: cat $(top_srcdir: non-POSIX variable name
server/Makefile.am:9: (probably a GNU make extension)
autoreconf: automake failed with exit status: 1
Эта проблема охотится меня сейчас, так как некоторое время. Я искал везде, но не нашел ничего, что могло бы помочь мне найти решение для этого. Короче говоря, единственное, что мне нужно, это способ получить неинтерпретированный текст, такой как «$ (shell cat $ (top_srcdir)/$ (MY_REVISION_FILE)»), скопированный из Makefile.am в Makefile.in
Любая идея?
Спасибо, Оливер
Действительно ли этот код онлайн? Я мог бы предложить что-то менее хакерское, если так. –
На самом деле я удалил ручку AC_SUBST и заменил ее -Wno-переносимостью. Это лучший способ сделать это. Но эй, его приятно знать, как работает AC_SUBST ;-) – Oliver