]> sigrok.org Git - libsigrok.git/blobdiff - Makefile.am
Reimplement high-level Python bindings on top of SWIG/C++ bindings.
[libsigrok.git] / Makefile.am
index 8a8a2e1e923434b885b0514d5eb5f3196626a10e..e535b517badf10ed377691ed99e3bafe9f77255d 100644 (file)
@@ -333,7 +333,10 @@ libsigrok_la_LIBADD = $(LIBOBJS)
 libsigrok_la_LDFLAGS = $(SR_LIB_LDFLAGS)
 
 library_includedir = $(includedir)/libsigrok
-library_include_HEADERS = libsigrok.h proto.h version.h
+library_include_HEADERS = \
+       include/libsigrok/libsigrok.h \
+       include/libsigrok/proto.h \
+       include/libsigrok/version.h
 noinst_HEADERS = libsigrok-internal.h
 
 pkgconfigdir = $(libdir)/pkgconfig
@@ -376,6 +379,58 @@ tests_check_main_LDADD = $(top_builddir)/libsigrok.la @check_LIBS@
 
 endif
 
+if BINDINGS_CXX
+
+lib_LTLIBRARIES += bindings/cxx/libsigrokxx.la
+
+bindings_cxx_libsigrokxx_la_SOURCES = bindings/cxx/classes.cpp
+
+bindings_cxx_libsigrokxx_la_LIBADD = -lsigrok $(glibmm_LIBS)
+
+bindings_cxx_libsigrokxx_la_LDFLAGS = $(SR_LIB_LDFLAGS)
+
+library_include_HEADERS += \
+       bindings/cxx/include/libsigrok/libsigrok.hpp \
+       bindings/cxx/include/libsigrok/enums.hpp
+
+pkgconfig_DATA += bindings/cxx/libsigrokxx.pc
+
+bindings/cxx/classes.lo: bindings/cxx/enums.cpp
+
+bindings/cxx/enums.cpp: bindings/cxx/enums.py bindings/cxx/libsigrok.xml \
+               bindings/cxx/ConfigKey_methods.cpp bindings/cxx/QuantityFlag_methods.cpp
+       python $<
+
+bindings/cxx/libsigrok.xml: include/libsigrok/libsigrok.h
+       gccxml $(CFLAGS) -DGLIB_DISABLE_DEPRECATION_WARNINGS $< -fxml=$@
+
+endif
+
+BUILD_EXTRA =
+INSTALL_EXTRA =
+CLEAN_EXTRA =
+
+if BINDINGS_PYTHON
+
+python-build: bindings/cxx/libsigrokxx.la
+       cd bindings/python && python setup.py build
+
+python-install:
+       cd bindings/python && python setup.py install
+
+python-clean:
+       cd bindings/python && python setup.py clean --all
+
+BUILD_EXTRA += python-build
+INSTALL_EXTRA += python-install
+CLEAN_EXTRA += python-clean
+
+endif
+
+all-local: $(BUILD_EXTRA)
+install-exec-local: $(INSTALL_EXTRA)
+clean-extra: $(CLEAN_EXTRA)
+
 MAINTAINERCLEANFILES = ChangeLog
 
 .PHONY: ChangeLog