mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-23 08:55:25 +02:00
Bug 530620 - Hook build of native serial port driver into maven build
In the same vein as commit dff6b3bae3
, 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 <mat.booth@redhat.com>
This commit is contained in:
parent
3bb6aaf4b3
commit
b50ba14831
3 changed files with 307 additions and 4 deletions
|
@ -43,6 +43,21 @@
|
|||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-natives</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./library">
|
||||
<arg value="ARCH=x86" />
|
||||
<arg value="clean" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
@ -75,6 +90,21 @@
|
|||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-natives</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./library">
|
||||
<arg value="ARCH=x86_64" />
|
||||
<arg value="clean" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
@ -107,6 +137,21 @@
|
|||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-natives</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./library">
|
||||
<arg value="ARCH=ppc" />
|
||||
<arg value="clean" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
@ -139,6 +184,21 @@
|
|||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-natives</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./library">
|
||||
<arg value="ARCH=ppc64" />
|
||||
<arg value="clean" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
@ -171,6 +231,21 @@
|
|||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-natives</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./library">
|
||||
<arg value="ARCH=ppc64le" />
|
||||
<arg value="clean" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
|
|
@ -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
|
||||
|
|
218
native/org.eclipse.cdt.native.serial/pom.xml
Normal file
218
native/org.eclipse.cdt.native.serial/pom.xml
Normal file
|
@ -0,0 +1,218 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (c) 2018 Red Hat, Inc. and others.
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are made available under the terms of the Eclipse Distribution License v1.0
|
||||
which accompanies this distribution, and is available at
|
||||
http://www.eclipse.org/org/documents/edl-v10.php
|
||||
|
||||
Contributors:
|
||||
Mat Booth (Red Hat) - initial implementation
|
||||
-->
|
||||
<project
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.eclipse.cdt</groupId>
|
||||
<artifactId>cdt-parent</artifactId>
|
||||
<version>9.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
<artifactId>org.eclipse.cdt.native.serial</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>build-native.linux.x86</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>native</name>
|
||||
<value>linux.x86</value>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>natives</id>
|
||||
<phase>process-resources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./jni">
|
||||
<arg value="LIBS=../os/linux/x86/libserial.so" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-natives</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./jni">
|
||||
<arg value="LIBS=../os/linux/x86/libserial.so" />
|
||||
<arg value="clean" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>build-native.linux.x86_64</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>native</name>
|
||||
<value>linux.x86_64</value>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>natives</id>
|
||||
<phase>process-resources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./jni">
|
||||
<arg value="LIBS=../os/linux/x86_64/libserial.so" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-natives</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./jni">
|
||||
<arg value="LIBS=../os/linux/x86_64/libserial.so" />
|
||||
<arg value="clean" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>build-native.linux.ppc64</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>native</name>
|
||||
<value>linux.ppc64</value>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>natives</id>
|
||||
<phase>process-resources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./jni">
|
||||
<arg value="LIBS=../os/linux/ppc64/libserial.so" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-natives</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./jni">
|
||||
<arg value="LIBS=../os/linux/ppc64/libserial.so" />
|
||||
<arg value="clean" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>build-native.linux.ppc64le</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>native</name>
|
||||
<value>linux.ppc64le</value>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>natives</id>
|
||||
<phase>process-resources</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./jni">
|
||||
<arg value="LIBS=../os/linux/ppc64le/libserial.so" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>clean-natives</id>
|
||||
<phase>clean</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<exec executable="make" newenvironment="false" dir="./jni">
|
||||
<arg value="LIBS=../os/linux/ppc64le/libserial.so" />
|
||||
<arg value="clean" />
|
||||
</exec>
|
||||
</target>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
Loading…
Add table
Reference in a new issue