파일의 내용을 읽은 곳의 Makefile.in을 작성하여 CFLAGS에 전달했습니다. ./configure ...를 호출하면 Makefile이 생성되어 모든 것이 잘 작동합니다.Autoreconf가 "POSIX가 아닌 변수 이름"으로 끝납니다.
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.in으로 옮겨서 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
. 나는 사방을 수색했지만 해결책을 찾는데 도움이 될만한 것을 찾지 못했습니다. 간단히 말해서 필요한 것은 Makefile.am에서 Makefile.in으로 복사 한 "$ (shell_catrc $ (top_srcdir)/$ (MY_REVISION_FILE))"과 같은 해석되지 않은 텍스트를 얻는 방법입니다.
어떤 생각입니까?
감사합니다, 올리버
이 코드는 온라인 어딘가에 있습니까? 그렇다면 해커가 아닌 것을 제안 할 수 있습니다. –
실제로 AC_SUBST 해킹을 제거하고 그것을 -Wno-portability로 바 꾸었습니다. 그것을하는 것이 더 좋은 방법 일 것입니다. 하지만, AC_SUBST가 어떻게 작동하는지 알면 좋겠다 ;-) – Oliver