如何访问Makefile.am文件顶部定义的用户定义变量?

时间:2013-01-25 16:52:49

标签: gnu-make autotools autoconf automake

具体来说,我想按照以下几点做点什么。对于定义如何构建库文件的Makefile.am脚本,我希望能够访问整个库文件名。例如,假设我希望将库的名称称为“名称”,我可以从以下变量开始:

LIBNAME = name

然后我可能有这样的事情:

lib_LTLIBRARIES = lib$(LIBNAME).la

但是当我想做以下事情时,automake开始抱怨:

lib$(LIBNAME)_la_SOURCES = file1.cpp file2.cpp
lib$(LIBNAME)_la_LIBADD = ...

使用其他一些语法是否可以这样做,以便我不必多次重复库的名称?

干杯,

本。

2 个答案:

答案 0 :(得分:4)

如果您在configure时间而不是在Makefile本身中定义变量,则可以这样做。

例如,在configure.ac

LIBNAME=name
AC_SUBST(LIBNAME)

然后你可以像Makefile.am一样访问它:

lib_LTLIBRARIES = lib@LIBNAME@.la

答案 1 :(得分:0)

  

然后我可能有这样的事情:

LIBNAME = name
lib_LTLIBRARIES = lib$(LIBNAME).la
lib$(LIBNAME)_la_SOURCES = file1.cpp file2.cpp
lib$(LIBNAME)_la_LIBADD = ...

IFAIK,这不适用于automake。我认为不可能使用其他语法来实现它。