是否可以使用autotools动态目标?

时间:2014-05-19 08:44:07

标签: autotools autoconf automake

我正在尝试创建一个交叉编译器,它将为不同的目标生成不同的文件名。这就是我尝试过但它没有用的。

AM_CPPFLAGS = -I$(top_srcdir)/include

AM_LDFLAGS = -L$(abs_top_builddir)/win -Wl,--whole-archive -lnvml -Wl,--no-whole-archive

lib_LTLIBRARIES = libjnvml-$(target_triplet).la 
libjnvml_$(target_triplet)_la_SOURCES = jnvml.c
libjnvml_$(target_triplet)_la_LIBADD = ../swig/libjnvml_wrap.la

我希望这可以解析为libjnvml-i686-pc-mingw32.la但是构建失败了,因为它无法找到文字文件名libjnvml - $(target_triplet).la

1 个答案:

答案 0 :(得分:2)

这对我有用:

autoconf.ac:

AC_INIT([dynamic-target], 1.0)
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CXX
AC_SUBST(TARGET_TRIPLET, 'foo-triplet')
AC_OUTPUT(Makefile)

Makefile.am:

bin_PROGRAMS = main-@TARGET_TRIPLET@
main_@TARGET_TRIPLET@_SOURCES = main.cpp