X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vpp-api%2Fjava%2FMakefile.am;h=b1c4aaff5f867f82e8b96640d39687e47fc511a7;hb=bbe3362948415a6fcee8246cc2e419240395d5d4;hp=c06caf5459c061cb93e83c264acf009a49d14482;hpb=aa6920e0a80d8271be1dda59f613a1d2b0e1d3e6;p=vpp.git diff --git a/vpp-api/java/Makefile.am b/vpp-api/java/Makefile.am index c06caf5459c..b1c4aaff5f8 100644 --- a/vpp-api/java/Makefile.am +++ b/vpp-api/java/Makefile.am @@ -13,129 +13,113 @@ AUTOMAKE_OPTIONS = foreign subdir-objects ACLOCAL_AMFLAGS = -I m4 -AM_CFLAGS = -Wall +AM_CFLAGS = -Wall -noinst_PROGRAMS = +noinst_PROGRAMS = BUILT_SOURCES = -bin_PROGRAMS = -CLEANFILES = -lib_LTLIBRARIES = +bin_PROGRAMS = +CLEANFILES = +lib_LTLIBRARIES = + +# +# jvpp-common +# nobase_include_HEADERS = \ - japi/org_openvpp_vppjapi_vppApi.h \ - japi/org_openvpp_vppjapi_vppConn.h + jvpp-common/jvpp_common.h -lib_LTLIBRARIES += libvppjni.la +lib_LTLIBRARIES += libjvpp_common.la -libvppjni_la_SOURCES = japi/vppjni.c japi/vppapi.c japi/vppjni_env.h japi/vppjni_env.c -libvppjni_la_LIBADD = -lvlibmemoryclient -lvlibapi -lsvm -lvppinfra \ +libjvpp_common_la_SOURCES = jvpp-common/jvpp_common.c +libjvpp_common_la_LIBADD = -lvlibmemoryclient -lvlibapi -lsvm -lvppinfra \ -lpthread -lm -lrt -libvppjni_la_LDFLAGS = -module -libvppjni_la_CPPFLAGS = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux - -jarfile = vppjapi-$(PACKAGE_VERSION).jar -packagedir = org/openvpp/vppjapi -JAVAROOT = . - -$(jarfile): libvppjni.la - cd .libs ; $(JAR) cf $(JARFLAGS) ../$@ libvppjni.so.0.0.0 ../$(packagedir)/*.class ; cd .. - -BUILT_SOURCES += japi/org_openvpp_vppjapi_vppConn.h japi/vppapi.c - -japi/org_openvpp_vppjapi_vppConn.h: \ - japi/org/openvpp/vppjapi/vppVersion.java \ - japi/org/openvpp/vppjapi/vppInterfaceDetails.java \ - japi/org/openvpp/vppjapi/vppInterfaceCounters.java \ - japi/org/openvpp/vppjapi/vppBridgeDomainDetails.java \ - japi/org/openvpp/vppjapi/vppBridgeDomainInterfaceDetails.java \ - japi/org/openvpp/vppjapi/vppL2Fib.java \ - japi/org/openvpp/vppjapi/vppIPv4Address.java \ - japi/org/openvpp/vppjapi/vppIPv6Address.java \ - japi/org/openvpp/vppjapi/vppVxlanTunnelDetails.java \ - japi/org/openvpp/vppjapi/vppConn.java \ - japi/org/openvpp/vppjapi/vppApiCallbacks.java \ - ../../vpp/vpp-api/vpe.api.h - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppVersion.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppVersion ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppInterfaceDetails.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppInterfaceDetails ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppInterfaceCounters.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppInterfaceCounters ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppBridgeDomainInterfaceDetails.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppBridgeDomainInterfaceDetails ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppBridgeDomainDetails.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppBridgeDomainDetails ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppL2Fib.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppL2Fib ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppIPv4Address.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppIPv4Address ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppIPv6Address.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppIPv6Address ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppVxlanTunnelDetails.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppVxlanTunnelDetails ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppConn.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppConn ; - -japi/vppapi.c: japi/org_openvpp_vppjapi_vppConn.h - pushd .. ; dir=`pwd` ; popd ; \ - instdir=`echo $${dir} | sed -e 's:build-root/build:build-root/install:'` ; \ - vppapigen --input $${instdir}/../vpp/vpp-api/vpe.api --jni japi/vppapi.c --app vpe ; \ - vppapigen --input $${instdir}/../vpp/vpp-api/vpe.api --java japi/vppApi.java --app vpe ; \ - $(JAVAC) -classpath . -d . japi/vppApi.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppApi ; \ - $(JAVAC) -classpath . -d . @srcdir@/japi/org/openvpp/vppjapi/vppApiCallbacks.java ; \ - $(JAVAH) -classpath . -d japi org.openvpp.vppjapi.vppApiCallbacks ; - -demo = japi/test/demo.class -$(demo): $(jarfile) - $(JAVAC) -cp $(jarfile) -d $(JAVAROOT) @srcdir@/japi/test/demo.java +libjvpp_common_la_LDFLAGS = -module +libjvpp_common_la_CPPFLAGS = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux + # -# jVpp binding +# jvpp-registry (connection management + plugin registry) # +lib_LTLIBRARIES += libjvpp_registry.la -nobase_include_HEADERS += \ - jvpp/org_openvpp_jvpp_VppJNIConnection.h +libjvpp_registry_la_SOURCES = jvpp-registry/jvpp_registry.c +libjvpp_registry_la_LIBADD = -lvlibmemoryclient -lvlibapi -lsvm -lvppinfra \ + -lpthread -lm -lrt -ljvpp_common +libjvpp_registry_la_LDFLAGS = -module +libjvpp_registry_la_CPPFLAGS = -Ijvpp-registry -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux +EXTRA_libjvpp_registry_la_DEPENDENCIES=libjvpp_common.la -lib_LTLIBRARIES += libjvpp.la +jarfile_jvpp_registry = jvpp-registry-$(PACKAGE_VERSION).jar +packagedir_jvpp_registry = io/fd/vpp/jvpp -libjvpp_la_SOURCES = jvpp/jvpp.c -libjvpp_la_LIBADD = -lvlibmemoryclient -lvlibapi -lsvm -lvppinfra \ - -lpthread -lm -lrt -libjvpp_la_LDFLAGS = -module -libjvpp_la_CPPFLAGS = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux - -# todo make two jars api jar and impl jar -jarfile_jvpp = jvpp-$(PACKAGE_VERSION).jar -packagedir_jvpp = org/openvpp/jvpp -JAVAROOT = . - -BUILT_SOURCES += jvpp/org_openvpp_jvpp_VppJNIConnection.h jvpp/jvpp.c - -jvpp/org_openvpp_jvpp_VppJNIConnection.h: $(prefix)/../vpp/vpp-api/vpe.api - @echo " jVpp API"; \ - cp -rf @srcdir@/jvpp/* -t jvpp/; \ - mkdir -p jvpp/gen/target/org/openvpp/jvpp; \ - cp -rf jvpp/org/openvpp/jvpp/* -t jvpp/gen/target/org/openvpp/jvpp/; \ - $(CC) $(CPPFLAGS) -E -P -C -x c $< \ - | vppapigen --input - --python defs_vpp_papi.py; \ - mkdir -p dto future callfacade callback notification; \ - ./jvpp/gen/jvpp_gen.py -i defs_vpp_papi.py; \ - cp -rf dto future callfacade callback notification *.java -t jvpp/gen/target/org/openvpp/jvpp/; \ - cp -rf jvpp_gen.h -t jvpp/gen/target; \ - rm -rf dto future callfacade callback notification *.java jvpp_gen.h; \ - $(JAVAC) -classpath . -d . jvpp/gen/target/org/openvpp/jvpp/*.java \ - jvpp/gen/target/org/openvpp/jvpp/dto/*.java \ - jvpp/gen/target/org/openvpp/jvpp/callback/*.java \ - jvpp/gen/target/org/openvpp/jvpp/notification/*.java \ - jvpp/gen/target/org/openvpp/jvpp/callfacade/*.java \ - jvpp/gen/target/org/openvpp/jvpp/future/*.java \ - jvpp/gen/target/org/openvpp/jvpp/test/*.java \ - || (echo "JVpp compilation failed: $$?"; exit 1); \ - $(JAVAH) -classpath . -d jvpp org.openvpp.jvpp.VppJNIConnection ; \ - $(JAVAH) -classpath . -d jvpp org.openvpp.jvpp.JVppImpl ; - -$(jarfile_jvpp): libjvpp.la - cd .libs ; $(JAR) cf $(JARFLAGS) ../$@ libjvpp.so.0.0.0 ../$(packagedir_jvpp)/* ; cd ..; - -all-local: $(jarfile) $(jarfile_jvpp) $(demo) +BUILT_SOURCES += jvpp-registry/io_fd_vpp_jvpp_VppJNIConnection.h + +jvpp_registry_src_files := $(wildcard @srcdir@/jvpp-registry/$(packagedir_jvpp_registry)/*.java) $(wildcard @srcdir@/jvpp-registry/$(packagedir_jvpp_registry)/**/*.java) + +jvpp-registry/io_fd_vpp_jvpp_VppJNIConnection.h: $(jvpp_registry_src_files) + @echo " jvpp-registry.jar generation" + mkdir -p jvpp-registry/target + $(JAVAC) -d jvpp-registry/target $(jvpp_registry_src_files) + $(JAVAH) -force -classpath jvpp-registry/target -d jvpp-registry io.fd.vpp.jvpp.VppJNIConnection + $(JAVAH) -force -classpath jvpp-registry/target -d jvpp-registry io.fd.vpp.jvpp.JVppRegistryImpl + +$(jarfile_jvpp_registry): libjvpp_registry.la + cp .libs/libjvpp_registry.so.0.0.0 jvpp-registry/target; \ + $(JAR) cf $(JARFLAGS) $@ -C jvpp-registry/target .; + +# +# jvpp-core (Java wrapper for vpe.api) +# +lib_LTLIBRARIES += libjvpp_core.la + +libjvpp_core_la_SOURCES = jvpp-core/jvpp_core.c jvpp-core/jvpp_core_gen.h +libjvpp_core_la_LIBADD = -lvlibmemoryclient -lvlibapi -lsvm -lvppinfra \ + -lpthread -lm -lrt -ljvpp_common +libjvpp_core_la_LDFLAGS = -module +libjvpp_core_la_CPPFLAGS = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux + +jarfile_jvpp_core = jvpp-core-$(PACKAGE_VERSION).jar +packagedir_jvpp_core = io/fd/vpp/jvpp/core + +BUILT_SOURCES += jvpp-core/io_fd_vpp_jvpp_core_JVppCoreImpl.h + +jvpp-core/io_fd_vpp_jvpp_core_JVppCoreImpl.h: \ + jvpp-registry/io_fd_vpp_jvpp_VppJNIConnection.h \ + $(prefix)/../vnet/vnet/af_packet.api.json \ + $(prefix)/../vpp/vpp-api/vpe.api.json \ + $(prefix)/../vnet/vnet/ip.api.json \ + $(prefix)/../vnet/vnet/tap.api.json \ + $(prefix)/../vnet/vnet/vxlan.api.json + cp -rf @srcdir@/jvpp-core/* -t jvpp-core/ + mkdir -p jvpp-core/target + cd jvpp-core \ + && mkdir -p types dto future callfacade callback notification \ + && @srcdir@/jvpp/gen/jvpp_gen.py --plugin_name core \ + -i $(prefix)/../vpp/vpp-api/vpe.api.json \ + $(prefix)/../vnet/vnet/af_packet.api.json \ + $(prefix)/../vnet/vnet/interface.api.json \ + $(prefix)/../vnet/vnet/l2.api.json \ + $(prefix)/../vnet/vnet/map.api.json \ + $(prefix)/../vnet/vnet/ip.api.json \ + $(prefix)/../vnet/vnet/span.api.json \ + $(prefix)/../vnet/vnet/tap.api.json \ + $(prefix)/../vnet/vnet/vxlan.api.json \ + && cp -rf types dto future callfacade callback notification *.java -t $(packagedir_jvpp_core) \ + && rm -rf types dto future callfacade callback notification *.java + + $(JAVAC) -classpath jvpp-registry/target -d jvpp-core/target jvpp-core/$(packagedir_jvpp_core)/*.java \ + jvpp-core/$(packagedir_jvpp_core)/types/*.java \ + jvpp-core/$(packagedir_jvpp_core)/dto/*.java \ + jvpp-core/$(packagedir_jvpp_core)/callback/*.java \ + jvpp-core/$(packagedir_jvpp_core)/notification/*.java \ + jvpp-core/$(packagedir_jvpp_core)/future/*.java \ + jvpp-core/$(packagedir_jvpp_core)/callfacade/*.java \ + jvpp-core/$(packagedir_jvpp_core)/test/*.java \ + || (echo "jvpp-core compilation failed: $$?"; exit 1) + $(JAVAH) -force -classpath jvpp-registry/target:jvpp-core/target -d jvpp-core io.fd.vpp.jvpp.core.JVppCoreImpl + +$(jarfile_jvpp_core): libjvpp_core.la + cp .libs/libjvpp_core.so.0.0.0 jvpp-core/target + $(JAR) cf $(JARFLAGS) $@ -C jvpp-core/target . + +all-local: $(jarfile_jvpp_registry) $(jarfile_jvpp_core)