freebsd-ports/devel/arduino/Makefile
Carlos J. Puga Medina fdebfe0e85 devel/arduino: fix DOS2UNIX_REGEX, update atmega644 boards patch
- Many installed source files had CRLF line endings. This was due to too
  much escaping in DOS2UNIX_REGEX. Reduce the list of extensions to just
  the ones that need it and add (lower case) makefile.
- Update optional 644 boards.txt patch to be like the atmega328 version.
  Only add one board called atmega644 with the mcu set to atmega644p.
- Bump PORTREVISION

PR:             217817
Submitted by:   Craig Leres <leres@ee.lbl.gov> (maintainer)
2017-03-18 00:30:07 +00:00

130 lines
3.5 KiB
Makefile

# Created by: Warren Block <wblock@wonkity.com>
# $FreeBSD$
PORTNAME= arduino
PORTVERSION= 1.0.6
PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= devel java lang
MASTER_SITES= http://arduino.cc/download.php?f=/
DISTNAME= ${PORTNAME}-${PORTVERSION}-linux32
MAINTAINER= leres@ee.lbl.gov
COMMENT= Open-source electronics prototyping platform
LICENSE= GPLv2 LGPL21
LICENSE_COMB= multi
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 tar:tgz kmod
DOS2UNIX_REGEX= .*(\.(c|cpp|h|hex|txt)|Makefile|makefile)
USE_JAVA= yes
JAVA_OS= native
JAVA_VENDOR= openjdk
JAVA_RUN= yes
NO_BUILD= yes
USE_LDCONFIG= ${PREFIX}/arduino/lib
PLIST_SUB= ARCH=${ARCH:S|i386||:S|amd64|64|}
SUB_FILES= arduino pkg-message
SUB_LIST= PORTNAME=${PORTNAME} LINUXBASE=${PREFIX}
# Confirmed for ARCHS below. Arm, PowerPC and Sparc untested. (Feedback welcome)
ONLY_FOR_ARCHS= i386 amd64
REINPLACE_ARGS= -i ""
DESKTOP_ENTRIES= "Arduino" "Arduino IDE" \
${PREFIX}/${PORTNAME}/logo.png \
"arduino" "Development;IDE;" false
OPTIONS_DEFINE= ATMEGA644P DOCS EXAMPLES UARDUNO
ATMEGA644P_DESC= ATmega644p 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
# Add serial drivers for those who are new to this.
UARDUNO_RUN_DEPENDS+= ${KMODDIR}/uarduno.ko:comms/uarduno
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MATMEGA644P}
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
.endif
.if empty(PORT_OPTIONS:MDOCS)
PLIST_SUB+= REFDOCS="@comment "
.else
PLIST_SUB+= REFDOCS=""
INSLIST+= reference
.endif
FIND_EXCLUDES= ! -name *.orig
.if empty(PORT_OPTIONS:MEXAMPLES)
PLIST_SUB+= EXAMPLES="@comment "
FIND_EXCLUDES+= ! -path */examples ! -path */examples/*
.else
PLIST_SUB+= EXAMPLES=""
INSLIST+= examples
.endif
FIND_EXPR= "${FIND_EXCLUDES} -prune"
.if ${PORT_OPTIONS:MATMEGA644P}
PLIST_SUB+= ATMEGA644P=""
.else
PLIST_SUB+= ATMEGA644P="@comment "
.endif
.if ${PORT_OPTIONS:MATMEGA644P}
pre-patch:
@${MKDIR} ${WRKSRC}/hardware/arduino/variants/atmega644p
.endif
post-patch:
@${RM} -r ${WRKSRC}/hardware/tools/
@${MKDIR} ${WRKSRC}/hardware/tools/avr/
@${LN} -s ${PREFIX}/bin ${WRKSRC}/hardware/tools/avr/bin
@${LN} -s ${PREFIX}/etc ${WRKSRC}/hardware/tools/avr/etc
# Remove broken jar, and Linux C6 based libraries.
@${RM} ${WRKSRC}/lib/RXTXcomm.jar
# This port relys on comms/RXTX working without Linux C6 compatibility.
@${RM} ${WRKSRC}/lib/librxtxSerial.so
@${RM} ${WRKSRC}/lib/librxtxSerial64.so
# 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>