ports/devel/arduino/Makefile
Muhammad Moinur Rahman 0835676e36
Mk/**java.mk: Convert bsd.java.mk to USES
The following features have been added or changed:
- Instead of USE_JAVA use USES=java. This defaults to
  USES=java:build,run if NO_BUILD is undefined. Else it defaults to
  USES=java:run
- Instead of USE_ANT=yes use USES=java:ant which also implies
  USES=java:build
- Instead of JAVA_BUILD=yes use USES=java:build. Does not imply run or
  extract
- Instead of JAVA_EXTRACT=yes use USES=java:extract does not imply
  build or run
- Instead of JAVA_RUN=yes use USES=java:run does not imply extract or
  build
- Instead of USE_JAVA=<version> use USES=java and JAVA_VERSION=<version>

Approved by: mat (portmgr), glewis
Differential Revision:  https://reviews.freebsd.org/D48201
2024-12-31 09:57:55 +01:00

113 lines
3.3 KiB
Makefile

PORTNAME= arduino
PORTVERSION= 1.0.6
PORTREVISION= 5
PORTEPOCH= 1
CATEGORIES= devel java lang
MASTER_SITES= https://arduino.cc/download.php?f=/
DISTNAME= ${PORTNAME}-${PORTVERSION}-linux32
MAINTAINER= leres@FreeBSD.org
COMMENT= Open-source electronics prototyping platform
WWW= https://www.arduino.cc/
LICENSE= GPLv2 LGPL21
LICENSE_COMB= multi
# Confirmed for ARCHS below. Arm and PowerPC untested. (Feedback welcome)
ONLY_FOR_ARCHS= amd64 i386
RUN_DEPENDS= ${JAVA_HOME}/jre/lib/ext/RXTXcomm.jar:comms/rxtx \
${LOCALBASE}/bin/avrdude:devel/avrdude \
${LOCALBASE}/avr/include/avr/io.h:devel/avr-libc
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
USES= dos2unix java tar:tgz kmod
DOS2UNIX_REGEX= .*(\.(c|cpp|h|hex|txt)|Makefile|makefile)
JAVA_OS= native
JAVA_VENDOR= openjdk
CONFLICTS_INSTALL= arduino18
NO_BUILD= yes
USE_LDCONFIG= ${PREFIX}/arduino/lib
# Remove broken jar, and Linux C6 based libraries.
# This port relys on comms/RXTX working without Linux C6 compatibility.
EXTRACT_AFTER_ARGS= --exclude hardware/tools \
--exclude lib/RXTXcomm.jar \
--exclude lib/librxtxSerial.so \
--exclude lib/librxtxSerial64.so
PLIST_SUB= ARCH=${ARCH:S|i386||:S|amd64|64|}
SUB_FILES= arduino pkg-message
SUB_LIST= PORTNAME=${PORTNAME} LINUXBASE=${PREFIX}
REINPLACE_ARGS= -i ""
DESKTOP_ENTRIES= "Arduino" "Arduino IDE" \
${PREFIX}/${PORTNAME}/logo.png \
"arduino" "Development;IDE;" false
OPTIONS_DEFINE= ATMEGA644P DOCS EXAMPLES UARDUNO
OPTIONS_SUB=
ATMEGA644P_DESC= ATmega644p/ATmega1284p patches
DOCS_DESC= Install the reference documents
UARDUNO_DESC= Kernel module for Arduino Uno USB interface
INSLIST= arduino hardware lib libraries logo.png revisions.txt tools
ATMEGA644P_EXTRA_PATCHES= \
${FILESDIR}/extrapatch-hardware_arduino_boards.txt \
${FILESDIR}/extrapatch-hardware_arduino_cores_arduino_WInterrupts.c \
${FILESDIR}/extrapatch-hardware_arduino_variants_atmega644p_pins__arduino.h
# Add serial drivers for those who are new to this.
UARDUNO_RUN_DEPENDS+= ${KMODDIR}/uarduno.ko:comms/uarduno
pre-patch-ATMEGA644P-on:
${MKDIR} ${WRKSRC}/hardware/arduino/variants/atmega644p
.include <bsd.port.options.mk>
.if ! empty(PORT_OPTIONS:MDOCS)
INSLIST+= reference
.endif
FIND_EXCLUDES= ! -name *.orig
.if empty(PORT_OPTIONS:MEXAMPLES)
FIND_EXCLUDES+= ! -path */examples ! -path */examples/*
.else
INSLIST+= examples
.endif
FIND_EXPR= "${FIND_EXCLUDES} -prune"
post-patch:
${MKDIR} ${WRKSRC}/hardware/tools/avr/
${LN} -s ${PREFIX}/bin ${WRKSRC}/hardware/tools/avr/bin
${LN} -s ${PREFIX}/etc ${WRKSRC}/hardware/tools/avr/etc
# Map the RXTX port for our use
${LN} -s ${JAVA_HOME}/jre/lib/ext/RXTXcomm.jar ${WRKSRC}/lib/RXTXcomm.jar
# Add in links to the libraries compiled in RXTX for the above jar to use based on architecture.
.if ${ARCH} == i386
${LN} -s ${JAVA_HOME}/jre/lib/i386/librxtxSerial.so ${WRKSRC}/lib/librxtxSerial.so
.endif
.if ${ARCH} == amd64
${LN} -s ${JAVA_HOME}/jre/lib/amd64/librxtxSerial.so ${WRKSRC}/lib/librxtxSerial64.so
.endif
${MV} ${WRKSRC}/reference/img/logo.png ${WRKSRC}/
${RM} -r ${WRKSRC}/reference/img/
do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/${PORTNAME}
(cd ${WRKSRC}/ && ${COPYTREE_SHARE} "${INSLIST}" ${STAGEDIR}${PREFIX}/${PORTNAME} \
${FIND_EXPR})
${INSTALL_SCRIPT} ${WRKDIR}/arduino ${STAGEDIR}${PREFIX}/bin/
.include <bsd.port.mk>