Skip to content

Commit f45c092

Browse files
Enable build on ppc64le systems
Tested on a POWER9 Blackbird desktop
1 parent 72330aa commit f45c092

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

Diff for: build/build.xml

+64
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<!--echo message="os.name = ${os.name}" /-->
44
<!--echo message="os.arch = ${os.arch}" /-->
55
<!--echo message="os.version = ${os.version}" /-->
6+
<echo message="os.arch = ${os.arch}"/>
67

78
<tstamp>
89
<format property="BUILD_DATE" pattern="yyyy/MM/dd hh:mm"/>
@@ -24,6 +25,7 @@
2425
<condition property="platform" value="linux64"><os family="unix" arch="amd64" /></condition>
2526
<condition property="platform" value="linuxarm"><os family="unix" arch="arm" /></condition>
2627
<condition property="platform" value="linuxaarch64"><os family="unix" arch="aarch64" /></condition>
28+
<condition property="platform" value="linuxppc64le"><os family="unix" arch="ppc64le" /></condition>
2729

2830
<condition property="windows_host" value="true"><os family="windows" /></condition>
2931

@@ -35,20 +37,23 @@
3537
<condition property="linux"><equals arg1="${platform}" arg2="linux64" /></condition>
3638
<condition property="linux"><equals arg1="${platform}" arg2="linuxarm" /></condition>
3739
<condition property="linux"><equals arg1="${platform}" arg2="linuxaarch64" /></condition>
40+
<condition property="linux"><equals arg1="${platform}" arg2="linuxppc64le" /></condition>
3841

3942
<condition property="staging_folder" value="macosx"><equals arg1="${platform}" arg2="macosx" /></condition>
4043
<condition property="staging_folder" value="windows"><equals arg1="${platform}" arg2="windows" /></condition>
4144
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linux32" /></condition>
4245
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linux64" /></condition>
4346
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linuxarm" /></condition>
4447
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linuxaarch64" /></condition>
48+
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linuxppc64le" /></condition>
4549

4650
<condition property="staging_hardware_folder" value="Arduino.app/Contents/Java/hardware"><equals arg1="${platform}" arg2="macosx" /></condition>
4751
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="windows" /></condition>
4852
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linux32" /></condition>
4953
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linux64" /></condition>
5054
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linuxarm" /></condition>
5155
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linuxaarch64" /></condition>
56+
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linuxppc64le" /></condition>
5257

5358
<condition property="arch-bits" value="32">
5459
<equals arg1="${platform}" arg2="linux32"/>
@@ -62,6 +67,9 @@
6267
<condition property="arch-bits" value="64">
6368
<equals arg1="${platform}" arg2="linuxaarch64"/>
6469
</condition>
70+
<condition property="arch-bits" value="64">
71+
<equals arg1="${platform}" arg2="linuxppc64le"/>
72+
</condition>
6573

6674
<condition property="launch4j-download-unpack-target-name" value="launch4j-windows"><os family="windows" /></condition>
6775
<property name="launch4j-download-unpack-target-name" value="launch4j-linux"/>
@@ -72,12 +80,14 @@
7280
<property name="LINUX64_BUNDLED_JVM" value="none"/>
7381
<property name="LINUXARM_BUNDLED_JVM" value="none"/>
7482
<property name="LINUXAARCH64_BUNDLED_JVM" value="none"/>
83+
<property name="LINUXPOWERPC64LE_BUNDLED_JVM" value="none"/>
7584
<condition property="linux-bundle-jvm-task" value="noop">
7685
<and>
7786
<equals arg1="${LINUX32_BUNDLED_JVM}" arg2="none"/>
7887
<equals arg1="${LINUX64_BUNDLED_JVM}" arg2="none"/>
7988
<equals arg1="${LINUXARM_BUNDLED_JVM}" arg2="none"/>
8089
<equals arg1="${LINUXAARCH64_BUNDLED_JVM}" arg2="none"/>
90+
<equals arg1="${LINUXPOWERPC64LE_BUNDLED_JVM}" arg2="none"/>
8191
</and>
8292
</condition>
8393
<condition property="linux-bundle-jvm-task" value="bundle">
@@ -94,6 +104,9 @@
94104
<not>
95105
<equals arg1="${LINUXAARCH64_BUNDLED_JVM}" arg2="none"/>
96106
</not>
107+
<not>
108+
<equals arg1="${LINUXPOWERPC64LE_BUNDLED_JVM}" arg2="none"/>
109+
</not>
97110
</or>
98111
</condition>
99112

@@ -763,6 +776,48 @@
763776
</antcall>
764777
</target>
765778

779+
<target name="linux-libastyle-ppc64le" depends="linux-build" description="Download libastyle.so for PowerPC64LE">
780+
<antcall target="unzip">
781+
<param name="archive_file" value="./libastylej-2.05.1-4.zip" />
782+
<param name="archive_url" value="https://downloads.arduino.cc/libastylej-2.05.1-4.zip" />
783+
<param name="final_folder" value="${staging_folder}/libastylej-2.05.1" />
784+
<param name="dest_folder" value="${staging_folder}" />
785+
</antcall>
786+
<copy file="linux/libastylej-2.05.1/libastylej_ppc64le.so" tofile="linux/work/lib/libastylej.so" />
787+
<chmod perm="755" file="linux/work/lib/libastylej.so" />
788+
789+
<antcall target="portable-${portable}">
790+
<param name="parentdir" value="linux/work" />
791+
</antcall>
792+
793+
<antcall target="unzip">
794+
<param name="archive_file" value="./liblistSerials-${LIBLISTSERIAL-VERSION}.zip" />
795+
<param name="archive_url" value="https://downloads.arduino.cc/liblistSerials/liblistSerials-${LIBLISTSERIAL-VERSION}.zip" />
796+
<param name="final_folder" value="${staging_folder}/liblistSerials-${LIBLISTSERIAL-VERSION}" />
797+
<param name="dest_folder" value="${staging_folder}" />
798+
</antcall>
799+
<copy file="linux/liblistSerials-${LIBLISTSERIAL-VERSION}/ppc64le/liblistSerialsj.so" todir="linux/work/lib/" />
800+
<chmod perm="755" file="linux/work/lib/liblistSerialsj.so" />
801+
</target>
802+
803+
<target name="linuxppc64le-build" depends="linux-libastyle-ppc64le" description="Build Linux (PowerPC64LE) version">
804+
<antcall target="linux-jvm-${linux-bundle-jvm-task}">
805+
<param name="JVM" value="${LINUXPOWERPC64LE_BUNDLED_JVM}"/>
806+
</antcall>
807+
808+
<antcall target="build-arduino-builder" />
809+
810+
<antcall target="avr-toolchain-bundle">
811+
<param name="unpack_target" value="untar"/>
812+
<param name="gcc_archive_file" value="avr-gcc-${AVRGCC-VERSION}-powerpc64le-pc-linux-gnu.tar.bz2"/>
813+
<param name="gcc_version" value="${AVRGCC-VERSION}"/>
814+
<param name="avrdude_archive_file" value="avrdude-${AVRDUDE-VERSION}-powerpc64le-pc-linux-gnu.tar.bz2"/>
815+
<param name="avrdude_version" value="${AVRDUDE-VERSION}"/>
816+
<param name="arduinoOTA_archive_file" value="arduinoOTA-${arduinoOTA-VERSION}-linux_ppc64le.tar.bz2"/>
817+
<param name="arduinoOTA_version" value="${arduinoOTA-VERSION}"/>
818+
</antcall>
819+
</target>
820+
766821
<target name="linux32-build" depends="linux-libastyle-x86" description="Build linux (32-bit) version">
767822
<antcall target="linux-jvm-${linux-bundle-jvm-task}">
768823
<param name="JVM" value="${LINUX32_BUNDLED_JVM}"/>
@@ -819,6 +874,8 @@
819874

820875
<target name="linuxaarch64-run" depends="build,start"/>
821876

877+
<target name="linuxppc64le-run" depends="build,start"/>
878+
822879
<target name="linux32-start">
823880
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
824881
</target>
@@ -835,6 +892,10 @@
835892
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
836893
</target>
837894

895+
<target name="linuxpowerpc64le-start">
896+
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
897+
</target>
898+
838899
<target name="build-arduino-builder" unless="no_arduino_builder">
839900
<delete dir="${staging_folder}/arduino-builder-${platform}" includeemptydirs="true"/>
840901
<mkdir dir="${staging_folder}/arduino-builder-${platform}"/>
@@ -969,6 +1030,9 @@
9691030
<target name="linuxaarch64-dist" depends="linux-dist"
9701031
description="Build .tar.xz of linux aarch64 version" />
9711032

1033+
<target name="linuxppc64le-dist" depends="linux-dist"
1034+
description="Build .tar.xz of linux ppc64le version" />
1035+
9721036
<!-- - - - - - - - -->
9731037
<!-- Windows -->
9741038
<!-- - - - - - - - -->

0 commit comments

Comments
 (0)