对于一个历史上使用 make 的项目,我现在想生成一个 pkg-config 文件。但是我似乎无法阻止变量的替换
mylib.pc:
echo 'prefix='$(PREFIX) > bzip2.pc
echo "exec_prefix=\${prefix}" >> mylib.pc
echo 'libdir=\${prefix}/lib' >> mylib.pc
install: mylib.pc
之后我有一个带有扩展变量的
mylib.pc
,这不是我想要的。
那么如何从 Makefile 生成 pkg-config 或者如何防止变量替换?
这会产生我认为你想要的:
mylib.pc:
echo 'prefix='$(PREFIX)
echo 'exec_prefix=$${prefix}' >> mylib.pc
echo 'libdir=$${prefix}/lib' >> mylib.pc
您可以使用
define
定义变量,同时保留新行,并使用 file
写入文件。
define PKG_CONFIG_TEMPLATE
prefix=$(PREFIX)
exec_prefix=$${prefix}
includedir=$${prefix}/include
libdir=$${exec_prefix}/lib
Name: MyLib
Description: MyLib description
Version: 1.0
Cflags: -I$${includedir}
Libs: -L$${libdir}
endef
mylib.pc:
$(file > $@,$(PKG_CONFIG_TEMPLATE))