From b50ba14831cb2272c4674e1313e9d9a3b25c6424 Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Thu, 1 Feb 2018 16:06:50 +0000 Subject: [PATCH] Bug 530620 - Hook build of native serial port driver into maven build In the same vein as commit dff6b3bae3d, this commit adds profiles to trigger the build of the serial port component for the current architecture, only when the profile is activated. The serial port makefile is also improved to support building for ppc64 and ppc64le architectures and to honour CFLAGS and LDFLAGS that might be set in the environment, such as during RPM build. I also hooked in the makefile "clean" targets so that invoking "mvn clean verify" will do the right thing. This simplifies the build for downstreams building from source significantly. Change-Id: Ie8cea95d953b256a1f62b77c76370ed7b3d81cee Signed-off-by: Mat Booth --- core/org.eclipse.cdt.core.linux/pom.xml | 75 ++++++ .../jni/Makefile | 18 +- native/org.eclipse.cdt.native.serial/pom.xml | 218 ++++++++++++++++++ 3 files changed, 307 insertions(+), 4 deletions(-) create mode 100644 native/org.eclipse.cdt.native.serial/pom.xml diff --git a/core/org.eclipse.cdt.core.linux/pom.xml b/core/org.eclipse.cdt.core.linux/pom.xml index a0559780e89..a1d9736ee57 100644 --- a/core/org.eclipse.cdt.core.linux/pom.xml +++ b/core/org.eclipse.cdt.core.linux/pom.xml @@ -43,6 +43,21 @@ run + + clean-natives + clean + + + + + + + + + + run + + @@ -75,6 +90,21 @@ run + + clean-natives + clean + + + + + + + + + + run + + @@ -107,6 +137,21 @@ run + + clean-natives + clean + + + + + + + + + + run + + @@ -139,6 +184,21 @@ run + + clean-natives + clean + + + + + + + + + + run + + @@ -171,6 +231,21 @@ run + + clean-natives + clean + + + + + + + + + + run + + diff --git a/native/org.eclipse.cdt.native.serial/jni/Makefile b/native/org.eclipse.cdt.native.serial/jni/Makefile index fb4cf6fcc41..19663384905 100644 --- a/native/org.eclipse.cdt.native.serial/jni/Makefile +++ b/native/org.eclipse.cdt.native.serial/jni/Makefile @@ -16,6 +16,8 @@ endif OS_DIR = ../os +CFLAGS += -fPIC -D_REENTRANT + UNAME = $(shell uname) ifeq ($(UNAME),Linux) LIBS = \ @@ -37,7 +39,7 @@ endif all: $(LIBS) clean : - rm $(LIBS) + $(RM) $(LIBS) rebuild: clean all @@ -51,12 +53,20 @@ $(OS_DIR)/win32/x86_64/serial.dll: serial.c $(OS_DIR)/linux/x86/libserial.so: serial.c mkdir -p $(dir $@) - gcc -m32 -fPIC -D_REENTRANT -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -shared -o $@ serial.c + gcc -m32 $(CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux $(LDFLAGS) -shared -o $@ serial.c $(OS_DIR)/linux/x86_64/libserial.so: serial.c mkdir -p $(dir $@) - gcc -m64 -fPIC -D_REENTRANT -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -shared -o $@ serial.c + gcc -m64 $(CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux $(LDFLAGS) -shared -o $@ serial.c + +$(OS_DIR)/linux/ppc64/libserial.so: serial.c + mkdir -p $(dir $@) + gcc -m64 $(CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux $(LDFLAGS) -shared -o $@ serial.c + +$(OS_DIR)/linux/ppc64le/libserial.so: serial.c + mkdir -p $(dir $@) + gcc -m64 -mcpu=power8 $(CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux $(LDFLAGS) -shared -o $@ serial.c $(OS_DIR)/macosx/x86_64/libserial.jnilib: serial.c mkdir -p $(dir $@) - clang -fPIC -D_REENTRANT -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin -dynamiclib -o $@ serial.c + clang $(CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin $(LDFLAGS) -dynamiclib -o $@ serial.c diff --git a/native/org.eclipse.cdt.native.serial/pom.xml b/native/org.eclipse.cdt.native.serial/pom.xml new file mode 100644 index 00000000000..cbf4ae085b1 --- /dev/null +++ b/native/org.eclipse.cdt.native.serial/pom.xml @@ -0,0 +1,218 @@ + + + + 4.0.0 + + + org.eclipse.cdt + cdt-parent + 9.3.0-SNAPSHOT + ../../pom.xml + + + 1.1.0-SNAPSHOT + org.eclipse.cdt.native.serial + eclipse-plugin + + + + build-native.linux.x86 + + + native + linux.x86 + + + + + + maven-antrun-plugin + + + natives + process-resources + + + + + + + + + run + + + + clean-natives + clean + + + + + + + + + + run + + + + + + + + + build-native.linux.x86_64 + + + native + linux.x86_64 + + + + + + maven-antrun-plugin + + + natives + process-resources + + + + + + + + + run + + + + clean-natives + clean + + + + + + + + + + run + + + + + + + + + build-native.linux.ppc64 + + + native + linux.ppc64 + + + + + + maven-antrun-plugin + + + natives + process-resources + + + + + + + + + run + + + + clean-natives + clean + + + + + + + + + + run + + + + + + + + + build-native.linux.ppc64le + + + native + linux.ppc64le + + + + + + maven-antrun-plugin + + + natives + process-resources + + + + + + + + + run + + + + clean-natives + clean + + + + + + + + + + run + + + + + + + + +