]> sigrok.org Git - libsigrok.git/blobdiff - Makefile.am
Makefile.am: Fix out-of-tree build for C++ and Java bindings
[libsigrok.git] / Makefile.am
index 648f125fd3580417ebead0c343a277bc4123e763..eb72a1468dafd940111fbf63463d4d8c07b6f1e5 100644 (file)
@@ -20,7 +20,7 @@
 
 ACLOCAL_AMFLAGS = -I autostuff
 
-AM_CPPFLAGS = -Isrc -DFIRMWARE_DIR='"$(FIRMWARE_DIR)"'
+AM_CPPFLAGS = -I$(srcdir)/src -DFIRMWARE_DIR='"$(FIRMWARE_DIR)"'
 
 lib_LTLIBRARIES = libsigrok.la
 
@@ -378,6 +378,7 @@ tests_check_main_SOURCES = \
        tests/check_input_all.c \
        tests/check_input_binary.c \
        tests/check_output_all.c \
+       tests/check_session.c \
        tests/check_strutil.c \
        tests/check_version.c \
        tests/check_driver_all.c
@@ -409,7 +410,7 @@ library_include_HEADERS += \
 pkgconfig_DATA += bindings/cxx/libsigrokxx.pc
 
 doxy/xml/index.xml: include/libsigrok/libsigrok.h
-       $(AM_V_GEN)doxygen Doxyfile
+       $(AM_V_GEN)cd $(srcdir) && BUILDDIR=$(abs_builddir)/ doxygen Doxyfile 2>/dev/null
 
 bindings/cxx/enums.cpp: bindings/cxx/enums.timestamp
 
@@ -438,7 +439,7 @@ CPPXMLDOC = bindings/cxx/doxy/xml/index.xml
 
 $(CPPXMLDOC): bindings/cxx/include/libsigrok/libsigrok.hpp \
                bindings/cxx/enums.timestamp
-       $(AM_V_GEN)cd bindings/cxx && doxygen Doxyfile
+       $(AM_V_GEN)cd $(srcdir)/bindings/cxx && BUILDDIR=$(abs_builddir)/bindings/cxx/ doxygen Doxyfile 2>/dev/null
 
 if BINDINGS_PYTHON
 
@@ -470,7 +471,7 @@ python-clean:
        $(AM_V_at)rm -rf $(PDIR)/doxy/
 
 python-doc:
-       $(AM_V_at)cd $(PDIR) && doxygen Doxyfile
+       $(AM_V_at)cd $(PDIR) && doxygen Doxyfile 2>/dev/null
 
 BUILD_EXTRA += python-build
 INSTALL_EXTRA += python-install
@@ -484,7 +485,7 @@ JDIR = bindings/java
 JPKG = org/sigrok/core
 JCLS = $(JDIR)/$(JPKG)/classes
 JINT = $(JDIR)/$(JPKG)/interfaces
-JSRC = $(JCLS)/*.java $(JINT)/*.java
+JSRC = $(JCLS)/*.java $(srcdir)/$(JINT)/*.java
 JSWG = $(JCLS)/classes.i
 JDOC = $(JCLS)/doc.i
 JCXX = $(JCLS)/classes_wrap.cxx
@@ -494,14 +495,15 @@ JJAR = $(JDIR)/sigrok-core.jar
 java-build: $(JJAR) $(JLIB)
 
 $(JDOC): bindings/swig/doc.py $(CPPXMLDOC)
-       $(AM_V_GEN)python bindings/swig/doc.py java $(CPPXMLDOC) > $@
+       $(AM_V_at)test -d $(JCLS) || mkdir -p $(JCLS)
+       $(AM_V_GEN)python $< java $(CPPXMLDOC) > $@
 
 $(JCXX): $(JSWG) $(JDOC) bindings/swig/classes.i $(library_include_HEADERS)
        $(AM_V_GEN)swig -c++ -java -package org.sigrok.core.classes \
-               -Iinclude -Ibindings/cxx/include -outdir $(JCLS) $(JSWG)
+               -I$(srcdir)/include -I$(srcdir)/bindings/cxx/include -I$(srcdir) -I$(JCLS) -Ibindings/cxx/include -outdir $(JCLS) -o $@ $<
 
 $(JJAR): $(JCXX)
-       $(AM_V_GEN)$(JAVAC) -sourcepath $(JDIR) $(JSRC)
+       $(AM_V_GEN)$(JAVAC) -sourcepath $(JDIR) -d $(JDIR) $(JSRC)
        $(AM_V_at)jar cf $(JJAR) -C $(JDIR) $(JPKG)
 
 $(JLIB): $(JCXX) bindings/cxx/libsigrokxx.la $(library_include_HEADERS)
@@ -522,6 +524,10 @@ java-clean:
        rm -f $(JINT)/*.class
        rm -f $(JJAR)
        rm -f $(JLIB)
+       rm -rf $(JDIR)/doxy/
+
+java-doc:
+       $(AM_V_at)cd $(srcdir)/$(JDIR) && BUILDDIR=$(abs_builddir)/$(JDIR)/ doxygen Doxyfile 2>/dev/null
 
 BUILD_EXTRA += java-build
 INSTALL_EXTRA += java-install