我正在尝试创建一个交叉编译器,它将为不同的目标生成不同的文件名。这就是我尝试过但它没有用的。
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
答案 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