我正在创建一个使用Makefile来构建和安装系统上的各种文件的包。其中两个目标需要包含Python和Java头文件,因此我使用automake来创建配置脚本。
我按照http://mij.oltrelinux.com/devel/autoconf-automake/的说明进行操作,但我的Makefile.am文件是我以前的Makefile的副本,因为所有目标都是PHONY。
configure.ac
AC_PREREQ([2.69])
m4_include([m4/ax_jni_include_dir.m4])
AC_INIT(apis, 0.0.0, fabian.bergmark@gmail.com)
AM_INIT_AUTOMAKE
AX_JNI_INCLUDE_DIR
for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
do
CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR"
done
AC_OUTPUT(Makefile ffi/java/Makefile)
FFI / JAVA / Makefile.am
.PHONY: all
all:
$(CXX) $(CFLAGS) $(CPPFLAGS) --std=c++11 -O3 -fPIC -shared ffi_java.c -L.. -I.. -I../c/lib -I../cpp/lib -I$(JNI_INCLUDE_DIRS) -I$(JNI_INCLUDE_DIRS)/linux -lAPI -o API.so
javac *.java
mkdir -p se/fbergmark/apis
cp *.class se/fbergmark/apis
jar cf APIs.jar se
当我运行configure时,Makefile生成的obviosult不尊重我的PHONY目标,$(JNI_INCLUDE_DIRS)为空。如何编写运行一个(或几个)PHONY目标的Makefile.am?