| <?xml version="1.0"?> |
| <project name="Arduino" default="build"> |
| <!--echo message="os.name = ${os.name}" /--> |
| <!--echo message="os.arch = ${os.arch}" /--> |
| <!--echo message="os.version = ${os.version}" /--> |
| |
| <!-- Sets properties for macosx/windows/linux depending on current system --> |
| <condition property="macosx"><os family="mac" /></condition> |
| <condition property="windows"><os family="windows" /></condition> |
| <condition property="linux"><os family="unix" /></condition> |
| <condition property="linux32"><os family="unix" arch="i386" /></condition> |
| <condition property="linux64"><os family="unix" arch="amd64" /></condition> |
| |
| <condition property="platform" |
| value="macosx"><os family="mac" /></condition> |
| <condition property="platform" |
| value="windows"><os family="windows" /></condition> |
| <condition property="platform" |
| value="linux32"><os family="unix" arch="i386" /></condition> |
| <condition property="platform" |
| value="linux64"><os family="unix" arch="amd64" /></condition> |
| |
| <!-- Libraries required for running arduino --> |
| <fileset dir=".." id="runtime.jars"> |
| <include name="core/core.jar" /> |
| <include name="app/pde.jar" /> |
| <include name="app/lib/ecj.jar" /> |
| <include name="app/lib/jna.jar" /> |
| <include name="app/lib/RXTXcomm.jar" /> |
| <include name="app/lib/ant.jar" /> |
| <include name="app/lib/ant-launcher.jar" /> |
| </fileset> |
| |
| <target name="build" description="Build Arduino."> |
| <antcall target="${platform}-build" /> |
| </target> |
| |
| <target name="run" description="Run Arduino."> |
| <antcall target="${platform}-run" /> |
| </target> |
| |
| <target name="dist" depends="revision-check" |
| description="Build Arduino for distribution."> |
| <input message="Enter version number:" |
| addproperty="version" |
| defaultvalue="${revision}" /> |
| <antcall target="${platform}-dist" /> |
| </target> |
| |
| <!-- "§$§$&, ant doesn't have a built-in help target :( --> |
| <target name="help" description="Show project help"> |
| <java classname="org.apache.tools.ant.Main"> |
| <arg value="-p" /> |
| </java> |
| </target> |
| |
| <!-- - - - - - - - - - - - - - - - - - --> |
| <!-- Subprojects: Core, App, Libraries --> |
| <!-- - - - - - - - - - - - - - - - - - --> |
| |
| <target name="subprojects-clean"> |
| <subant buildpath="../core" target="clean"/> |
| <subant buildpath="../app" target="clean"/> |
| </target> |
| |
| <target name="subprojects-build"> |
| <subant buildpath="../core" target="build"/> |
| <subant buildpath="../app" target="build"/> |
| </target> |
| |
| |
| <!-- - - - - - - - - --> |
| <!-- Basic Assembly --> |
| <!-- - - - - - - - - --> |
| |
| <target name="assemble"> |
| <fail unless="target.path" |
| message="Do not call assemble from the command line." /> |
| |
| <!-- copy shared tools folder --> |
| <copy todir="${target.path}/tools"> |
| <fileset dir="shared/tools" /> |
| </copy> |
| |
| <!-- copy library folder --> |
| <copy todir="${target.path}/libraries"> |
| <fileset dir="../libraries" /> |
| </copy> |
| |
| <!-- copy hardware folder --> |
| <copy todir="${target.path}/hardware"> |
| <fileset dir="../hardware" /> |
| </copy> |
| |
| <!-- copy shared examples folder --> |
| <copy todir="${target.path}/examples"> |
| <fileset dir="shared/examples" /> |
| </copy> |
| |
| <!-- Unzip documentation --> |
| <unzip dest="${target.path}" src="shared/reference.zip" overwrite="false"/> |
| |
| <!-- Write the revision file! --> |
| <!--<echo file="${target.path}/lib/version.txt" message="${version}" />--> |
| </target> |
| |
| |
| <!-- - - - - - - - - --> |
| <!-- Revision check --> |
| <!-- - - - - - - - - --> |
| <target name="revision-check"> |
| <!-- figure out the revision number --> |
| <loadfile srcfile="../todo.txt" property="revision"> |
| <filterchain> |
| <headfilter lines="1"/> |
| <tokenfilter> |
| <stringtokenizer suppressdelims="true"/> |
| <!-- grab the thing from the first line that's 4 digits --> |
| <containsregex pattern="(\d\d\d\d)" /> |
| </tokenfilter> |
| </filterchain> |
| </loadfile> |
| <!-- <echo message="revision is ${revision}." /> --> |
| |
| <!-- figure out the revision number in base.java --> |
| <loadfile srcfile="../app/src/processing/app/Base.java" |
| property="revision.base"> |
| <filterchain> |
| <tokenfilter> |
| <linetokenizer /> |
| <containsregex pattern="String VERSION_NAME = "/> |
| <replaceregex pattern="[^0-9]*" flags="g" replace=""/> |
| </tokenfilter> |
| </filterchain> |
| </loadfile> |
| <!-- <echo message="base revision is ${revision.base}." /> --> |
| |
| <condition property="revision.correct"> |
| <!-- Using contains because I can't figure out how to get rid of the |
| LF in revision.base. Please file a bug if you have a fix. --> |
| <contains string="${revision.base}" substring="${revision}"/> |
| </condition> |
| |
| <!-- the revision.base property won't be set |
| if $revision wasn't found... --> |
| <fail unless="revision.correct" |
| message="Fix revision number in Base.java" /> |
| </target> |
| |
| <!-- - - - - - - - --> |
| <!-- Mac OS X --> |
| <!-- - - - - - - - --> |
| |
| <target name="macosx-clean" depends="subprojects-clean" description="Clean Mac OS X build"> |
| <delete dir="macosx/work" /> |
| <delete dir="macosx/working_dir" /> |
| <delete dir="macosx/working.dmg" /> |
| <delete file="macosx/arduino-*.dmg" /> |
| </target> |
| |
| <target name="macosx-checkos" unless="macosx"> |
| <echo> |
| ======================================================= |
| Arduino for Mac OS X can only be built on Mac OS X. |
| |
| Bye. |
| ======================================================= |
| </echo> |
| <fail message="wrong platform (${os.name})" /> |
| </target> |
| |
| <target name="macosx-build" if="macosx" depends="revision-check, macosx-checkos, subprojects-build, macosx-check-arm-toolchain" description="Build Mac OS X version"> |
| <mkdir dir="macosx/work" /> |
| |
| <!-- assemble the pde --> |
| <copy todir="macosx/work/Arduino.app"> |
| <fileset dir="macosx/template.app" includes="**"/> |
| </copy> |
| |
| <!-- <rename src="macosx/work/template.app" |
| dest="macosx/work/Arduino.app" /> |
| <move file="macosx/work/template.app" |
| tofile="macosx/work/Arduino.app" />--> |
| |
| <chmod file="macosx/work/Arduino.app/Contents/MacOS/JavaApplicationStub" perm="755" /> |
| |
| <copy todir="macosx/work/Arduino.app/Contents/Resources/Java" flatten="true"> |
| <fileset refid="runtime.jars"/> |
| </copy> |
| |
| <copy todir="macosx/work/Arduino.app/Contents/Resources/Java"> |
| <fileset dir="shared" includes="lib/**" /> |
| <fileset file="shared/revisions.txt" /> |
| </copy> |
| |
| <!-- Unzip AVR tools --> |
| <!-- <unzip dest="macosx/work/Arduino.app/Contents/Resources/Java/hardware" src="macosx/dist/tools-universal.zip" overwrite="false"/> --> |
| |
| <exec executable="unzip"> |
| <arg value="-q" /> |
| <arg value="-n" /> |
| <arg value="-d" /> |
| <arg value="macosx/work/Arduino.app/Contents/Resources/Java/hardware" /> |
| <arg value="macosx/dist/tools-universal.zip" /> |
| </exec> |
| |
| <copy todir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/"> |
| <fileset file="macosx/dist/bossac" /> |
| <fileset file="macosx/dist/adk2tool" /> |
| <fileset file="macosx/dist/adk2install" /> |
| </copy> |
| |
| <chmod file="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/bossac" perm="+x" /> |
| <chmod file="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/adk2tool" perm="+x" /> |
| <chmod file="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/adk2install" perm="+x" /> |
| |
| <copy todir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr/include/avr"> |
| <fileset file="macosx/dist/eeprom.h" /> |
| </copy> |
| |
| <antcall target="assemble"> |
| <param name="target.path" value="macosx/work/Arduino.app/Contents/Resources/Java" /> |
| </antcall> |
| |
| <antcall target="macosx-unzip-arm-toolchain" /> |
| </target> |
| |
| <target name="macosx-run" depends="macosx-build" description="Run Mac OS X version"> |
| <exec executable="macosx/work/Arduino.app/Contents/MacOS/JavaApplicationStub" spawn="true"/> |
| </target> |
| |
| <target name="macosx-debug" depends="macosx-build" description="Run Mac OS X version"> |
| <exec executable="macosx/work/Arduino.app/Contents/MacOS/JavaApplicationStub" spawn="false"/> |
| </target> |
| |
| <target name="macosx-check-arm-toolchain-distfile"> |
| <available file="macosx/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-macos.tar.gz" property="arm_distfile_available" /> |
| </target> |
| |
| <target name="macosx-get-arm-toolchain" depends="macosx-check-arm-toolchain-distfile" unless="arm_distfile_available"> |
| <!-- Retrieve ARM toolchain --> |
| <get |
| src="http://arduino.googlecode.com/files/gcc-arm-none-eabi-4.4.1-2010q1-188-macos.tar.gz" |
| dest="macosx/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-macos.tar.gz" verbose="true" /> |
| </target> |
| |
| <target name="macosx-check-arm-toolchain"> |
| <available file="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/g++_arm_none_eabi" |
| property="arm_available" /> |
| </target> |
| |
| <target name="macosx-unzip-arm-toolchain" depends="macosx-get-arm-toolchain, macosx-check-arm-toolchain" unless="arm_available"> |
| <checksum file="macosx/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-macos.tar.gz" algorithm="sha" |
| fileext=".sha" verifyproperty="checksum.matches"/> |
| <condition property="checksum.matches.fail"> |
| <equals arg1="${checksum.matches}" arg2="false"/> |
| </condition> |
| <fail if="checksum.matches.fail">Checksum failed. |
| |
| File gcc-arm-none-eabi-4.4.1-2010q1-188-macos.tar.gz failed checksum. |
| Please remove "macosx/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-macos.tar.gz" to download it again. |
| </fail> |
| |
| <!-- ...and unzip on the destination folder --> |
| <exec executable="tar" output="/dev/null"> |
| <arg value="xfz"/> |
| <arg value="macosx/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-macos.tar.gz"/> |
| <arg value="--directory=macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/"/> |
| </exec> |
| </target> |
| |
| <target name="macosx-dist" if="macosx" depends="macosx-build" description="Create a downloadable .zip for the Mac OS X version"> |
| <!-- The ant copy command does not preserve permissions. --> |
| <chmod file="macosx/work/Arduino.app/Contents/MacOS/JavaApplicationStub" perm="+x" /> |
| <chmod perm="+x"> |
| <fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin" includes="**/*" /> |
| <fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr/bin" includes="**/*" /> |
| <fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr-3/bin" includes="**/*" /> |
| <fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr-4/bin" includes="**/*" /> |
| <fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/libexec/gcc/avr/3.4.6/" includes="**/cc1*" /> |
| <fileset dir="macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools/avr/libexec/gcc/avr/4.3.2/" includes="**/cc1*" /> |
| </chmod> |
| |
| <replace file="macosx/work/Arduino.app/Contents/Info.plist" |
| token="VERSION" value="${version}" /> |
| <replace file="macosx/work/Arduino.app/Contents/Info.plist" |
| token="REVISION" value="${revision}" /> |
| |
| <exec executable="zip" dir="macosx/work"> |
| <arg line="-q -r ../arduino-${version}-macosx.zip ." /> |
| </exec> |
| <!-- <exec executable="ditto" dir="macosx/work"> |
| <arg line="-c -k -rsrc . ../arduino-${version}-macosx.zip" /> |
| </exec> --> |
| |
| <echo> |
| ======================================================= |
| Arduino for Mac OS X was built. Grab the image from |
| |
| macosx/arduino-${version}-macosx.zip |
| ======================================================= |
| </echo> |
| </target> |
| |
| <target name="macosx-dist-old" if="macosx" depends="macosx-build" description="Create a .dmg of the Mac OS X version"> |
| <!-- now build the dmg --> |
| <gunzip src="macosx/template.dmg.gz" dest="macosx/working.dmg" /> |
| |
| <mkdir dir="macosx/working_dir" /> |
| <exec executable="hdiutil"> |
| <arg line="attach macosx/working.dmg -noautoopen -mountpoint macosx/working_dir" /> |
| <!--<arg line="attach macosx/working.dmg -noautoopen -quiet -mountpoint macosx/working_dir" />--> |
| </exec> |
| |
| <copy todir="macosx/working_dir"> |
| <fileset dir="macosx/work" /> |
| </copy> |
| |
| <!-- The ant copy command does not preserve permissions. --> |
| <chmod file="macosx/working_dir/Arduino.app/Contents/MacOS/JavaApplicationStub" perm="+x" /> |
| <chmod perm="+x"> |
| <fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin" includes="**/*" /> |
| <fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr/bin" includes="**/*" /> |
| <fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr-3/bin" includes="**/*" /> |
| <fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr-4/bin" includes="**/*" /> |
| <fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/libexec/gcc/avr/3.4.6/" includes="**/cc1*" /> |
| <fileset dir="macosx/working_dir/Arduino.app/Contents/Resources/Java/hardware/tools/avr/libexec/gcc/avr/4.3.2/" includes="**/cc1*" /> |
| </chmod> |
| |
| <!-- Pause briefly for the OS to catch up with the DMG changes. |
| This prevents "hdiutil: couldn't eject "disk3" - Resource busy" |
| errors when ejecting the disk in the next step. |
| You may need to set this value higher for your system. --> |
| <sleep seconds="3" /> |
| |
| <exec executable="hdiutil"> |
| <!--<arg line="detach macosx/working_dir -quiet -force" />--> |
| <arg line="detach macosx/working_dir" /> |
| </exec> |
| |
| <delete file="macosx/arduino-*.dmg" /> |
| <exec executable="hdiutil"> |
| <arg line="convert macosx/working.dmg -quiet -format UDZO -imagekey zlib-level=9 -o macosx/arduino-${version}.dmg" /> |
| </exec> |
| |
| <!-- Clean up the interim files. --> |
| <delete file="macosx/working.dmg" /> |
| <delete dir="macosx/working_dir" /> |
| |
| <echo> |
| ======================================================= |
| Arduino for Mac OS X was built. Grab the image from |
| |
| macosx/arduino-${version}.dmg |
| ======================================================= |
| </echo> |
| </target> |
| |
| <!-- - - - - - - - --> |
| <!-- Linux --> |
| <!-- - - - - - - - --> |
| |
| <target name="linux-clean" depends="subprojects-clean" description="Clean linux version"> |
| <delete dir="linux/work" /> |
| </target> |
| |
| <target name="linux-checkos" unless="linux"> |
| <echo> |
| ======================================================= |
| Arduino for Linux can only be built on on unix systems. |
| |
| Bye. |
| ======================================================= |
| </echo> |
| |
| <fail message="wrong platform (${os.name})" /> |
| </target> |
| |
| <target name="linux-build" depends="revision-check, linux-checkos, subprojects-build, linux-check-arm-toolchain" description="Build linux version"> |
| <mkdir dir="linux/work" /> |
| |
| <copy todir="linux/work"> |
| <fileset dir="shared" includes="lib/**" /> |
| <fileset file="shared/revisions.txt" /> |
| </copy> |
| |
| <copy todir="linux/work"> |
| <fileset dir="linux/dist" includes="lib/**" /> |
| </copy> |
| |
| <copy todir="linux/work/lib" flatten="true"> |
| <fileset refid="runtime.jars" /> |
| </copy> |
| |
| <antcall target="assemble"> |
| <param name="target.path" value="linux/work" /> |
| </antcall> |
| |
| <copy todir="linux/work" file="linux/dist/arduino" /> |
| <chmod perm="755" file="linux/work/arduino" /> |
| |
| <copy todir="linux/work/hardware"> |
| <fileset dir="linux/dist" includes="tools/**" /> |
| </copy> |
| |
| <chmod perm="755" file="linux/work/hardware/tools/avrdude" /> |
| <chmod perm="755" file="linux/work/hardware/tools/bossac" /> |
| <chmod perm="755" file="linux/work/hardware/tools/bossac64" /> |
| <chmod perm="755" file="linux/work/hardware/tools/adk2tool" /> |
| <chmod perm="755" file="linux/work/hardware/tools/adk2install" /> |
| |
| <copy todir="linux/work" file="linux/dist/arduino" /> |
| <chmod perm="755" file="linux/work/arduino" /> |
| |
| <antcall target="linux-unzip-arm-toolchain" /> |
| </target> |
| |
| <target name="linux32-build" depends="linux-build" description="Build linux (32-bit) version"> |
| <!-- Unzip AVR tools --> |
| <exec executable="tar" dir="linux/work/hardware"> |
| <arg value="-xjf"/> |
| <arg value="../../avr_tools_linux32.tar.bz2"/> |
| </exec> |
| </target> |
| |
| <target name="linux64-build" depends="linux-build" description="Build linux (64-bit) version"> |
| <copy tofile="linux/work/hardware/tools/avrdude" file="linux/dist/tools/avrdude64" overwrite="true" /> |
| <copy tofile="linux/work/lib/librxtxSerial.so" file="linux/dist/lib/librxtxSerial64.so" overwrite="true" /> |
| |
| <chmod perm="755" file="linux/work/hardware/tools/avrdude" /> |
| |
| <!-- Unzip AVR tools --> |
| <exec executable="tar" dir="linux/work/hardware"> |
| <arg value="-xjf"/> |
| <arg value="../../avr_tools_linux64.tar.bz2"/> |
| </exec> |
| </target> |
| |
| <target name="linux32-run" depends="linux32-build" |
| description="Run Linux (32-bit) version"> |
| <exec executable="./linux/work/arduino" spawn="false"/> |
| </target> |
| |
| <target name="linux64-run" depends="linux64-build" |
| description="Run Linux (64-bit) version"> |
| <exec executable="./linux/work/arduino" spawn="false"/> |
| </target> |
| |
| <target name="linux-check-arm-toolchain-distfile"> |
| <available file="linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz" property="arm_distfile_available" /> |
| </target> |
| |
| <target name="linux-get-arm-toolchain" depends="linux-check-arm-toolchain-distfile" unless="arm_distfile_available"> |
| <!-- Retrieve ARM toolchain --> |
| <get |
| src="http://arduino.googlecode.com/files/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz" |
| dest="linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz" |
| verbose="true" /> |
| </target> |
| |
| <target name="linux-check-arm-toolchain"> |
| <available file="linux/work/hardware/tools/g++_arm_none_eabi" property="arm_available" /> |
| </target> |
| |
| <target name="linux-unzip-arm-toolchain" depends="linux-get-arm-toolchain, linux-check-arm-toolchain" unless="arm_available"> |
| <checksum file="linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz" algorithm="sha" |
| fileext=".sha" verifyproperty="checksum.matches"/> |
| <condition property="checksum.matches.fail"> |
| <equals arg1="${checksum.matches}" arg2="false"/> |
| </condition> |
| <fail if="checksum.matches.fail">Checksum failed. |
| |
| File gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz failed checksum. |
| Please remove "linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz" to download it again. |
| </fail> |
| |
| <!-- Unzip toolchain to the destination folder --> |
| <exec executable="tar" output="/dev/null" os="Linux"> |
| <arg value="xfz"/> |
| <arg value="linux/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz"/> |
| <arg value="--directory=linux/work/hardware/tools"/> |
| </exec> |
| </target> |
| |
| <target name="linux64-get-arm-toolchain" depends="linux-check-arm-toolchain-distfile" unless="arm_distfile_available"> |
| <antcall target="linux-get-arm-toolchain" /> |
| </target> |
| |
| <target name="linux64-unzip-arm-toolchain" depends="linux-get-arm-toolchain" unless="arm_available"> |
| <antcall target="linux-unzip-arm-toolchain" /> |
| </target> |
| |
| <target name="linux-dist" depends="build" |
| description="Build .tar.gz of linux version"> |
| |
| <!--get src="http://dev.processing.org/build/jre-tools-6u18-linux-i586.tgz" |
| dest="linux/jre.tgz" |
| usetimestamp="true" /> |
| <untar compression="gzip" |
| dest="linux/work" |
| src="linux/jre.tgz" |
| overwrite="false"/--> |
| |
| <!-- |
| <tar compression="gzip" basedir="linux/work" |
| destfile="linux/arduino-${version}.tgz" /> |
| |
| <tar compression="gzip" destfile="linux/arduino-${version}-linux.tgz"> |
| <tarfileset dir="linux/work" |
| prefix="arduino-${version}" |
| excludes="arduino, |
| hardware/tools/avrdude, |
| java/**" |
| /> |
| <tarfileset file="linux/work/arduino" filemode="755" prefix="arduino-${version}" /> |
| <tarfileset file="linux/work/hardware/tools/avrdude" filemode="755" |
| prefix="arduino-${version}/hardware/tools" /> |
| </tar> |
| --> |
| <move file="linux/work" tofile="linux/arduino-${version}" /> |
| |
| <exec executable="tar" dir="linux"> |
| <arg value="-z"/> |
| <arg value="-c"/> |
| <arg value="-f"/> |
| <arg value="arduino-${version}-linux.tgz"/> |
| <arg value="arduino-${version}"/> |
| </exec> |
| |
| <move file="linux/arduino-${version}" tofile="linux/work" /> |
| |
| <echo> |
| ======================================================= |
| Arduino for Linux was built. Grab the archive from |
| |
| build/linux/arduino-${version}-linux.tgz |
| ======================================================= |
| </echo> |
| </target> |
| |
| <target name="linux32-dist" depends="linux-dist" |
| description="Build .tar.gz of linux version" /> |
| |
| <target name="linux64-dist" depends="linux-dist" |
| description="Build .tar.gz of linux version" /> |
| |
| <!-- - - - - - - - --> |
| <!-- Windows --> |
| <!-- - - - - - - - --> |
| |
| <target name="windows-clean" depends="subprojects-clean" |
| description="Clean windows version"> |
| <delete dir="windows/work" /> |
| </target> |
| |
| <target name="windows-checkos" unless="windows"> |
| <echo> |
| ======================================================= |
| Arduino for Windows can only be built on windows. |
| |
| Bye. |
| ======================================================= |
| </echo> |
| |
| <fail message="wrong platform (${os.name})" /> |
| </target> |
| |
| <target name="windows-build" |
| depends="revision-check, windows-checkos, subprojects-build" |
| description="Build windows version"> |
| <mkdir dir="windows/work" /> |
| |
| <!-- assemble the pde --> |
| <mkdir dir="windows/work/lib" /> |
| <copy todir="windows/work/lib" flatten="true"> |
| <fileset refid="runtime.jars" /> |
| </copy> |
| |
| <copy todir="windows/work"> |
| <fileset dir="shared" includes="lib/**" /> |
| <fileset file="shared/revisions.txt" /> |
| </copy> |
| |
| <copy todir="windows/work"> |
| <fileset dir="windows/dist" includes="*.dll" /> |
| </copy> |
| |
| <copy todir="windows/work"> |
| <fileset dir="windows/dist" includes="drivers/**" /> |
| </copy> |
| |
| <!-- Unzip AVR tools --> |
| <unzip dest="windows/work/hardware" src="windows/avr_tools.zip" overwrite="false"/> |
| |
| <copy todir="windows/work/hardware/tools/avr/avr/include/avr"> |
| <fileset file="windows/eeprom.h" /> |
| </copy> |
| |
| <!-- Copy bossac.exe tool --> |
| <copy todir="windows/work/hardware/tools"> |
| <fileset file="windows/bossac.exe" /> |
| </copy> |
| <chmod perm="755"> |
| <fileset file="windows/work/hardware/tools/bossac.exe" /> |
| </chmod> |
| |
| <!-- Copy bossac.exe tool --> |
| <copy todir="windows/work/hardware/tools"> |
| <fileset file="windows/adk2tool.exe" /> |
| <fileset file="windows/adk2inst.exe" /> |
| </copy> |
| <chmod perm="755"> |
| <fileset file="windows/work/hardware/tools/adk2tool.exe" /> |
| <fileset file="windows/work/hardware/tools/adk2inst.exe" /> |
| </chmod> |
| |
| <antcall target="assemble"> |
| <param name="target.path" value="windows/work" /> |
| </antcall> |
| |
| <property name="launch4j.dir" value="windows/launcher/launch4j/" /> |
| <taskdef name="launch4j" |
| classname="net.sf.launch4j.ant.Launch4jTask" |
| classpath="${launch4j.dir}/launch4j.jar; ${launch4j.dir}/lib/xstream.jar" /> |
| |
| <copy todir="windows/work"> |
| <fileset dir="windows/launcher" |
| includes="about.bmp, application.ico, config.xml"/> |
| </copy> |
| <launch4j configFile="windows/work/config.xml" /> |
| <delete dir="windows/work" |
| includes="about.bmp, application.ico, config.xml" /> |
| |
| <!-- cygwin requires html, dll, and exe to have the +x flag --> |
| <chmod perm="755"> |
| <fileset dir="windows/work" includes="**/*.html, **/*.dll, **/*.exe" /> |
| </chmod> |
| |
| <antcall target="windows-unzip-arm-toolchain" /> |
| </target> |
| |
| <target name="windows-run" depends="windows-build" |
| description="Run windows version"> |
| <exec executable="windows/work/arduino.exe" |
| dir="windows/work" spawn="true"/> |
| </target> |
| |
| <target name="windows-check-arm-toolchain-distfile"> |
| <available file="windows/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-win32.tar.gz" property="arm_distfile_available" /> |
| </target> |
| |
| <target name="windows-get-arm-toolchain" depends="windows-check-arm-toolchain-distfile" unless="arm_distfile_available"> |
| <!-- Retrieve ARM toolchain --> |
| <get |
| src="http://arduino.googlecode.com/files/gcc-arm-none-eabi-4.4.1-2010q1-188-win32.tar.gz" |
| dest="windows/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-win32.tar.gz" |
| verbose="true" /> |
| </target> |
| |
| <target name="windows-check-arm-toolchain"> |
| <available file="windows/work/hardware/tools/g++_arm_none_eabi" property="arm_available" /> |
| </target> |
| |
| <target name="windows-unzip-arm-toolchain" depends="windows-get-arm-toolchain, windows-check-arm-toolchain" unless="arm_available"> |
| <checksum file="windows/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-win32.tar.gz" algorithm="sha" |
| fileext=".sha" verifyproperty="checksum.matches"/> |
| <condition property="checksum.matches.fail"> |
| <equals arg1="${checksum.matches}" arg2="false"/> |
| </condition> |
| <fail if="checksum.matches.fail">Checksum failed. |
| |
| File gcc-arm-none-eabi-4.4.1-2010q1-188-win32.tar.gz failed checksum. |
| Please remove "windows/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-win32.tar.gz" to download it again. |
| </fail> |
| |
| <!-- Unzip toolchain to the destination folder --> |
| <exec executable="tar"> |
| <arg value="xfz"/> |
| <arg value="windows/dist/gcc-arm-none-eabi-4.4.1-2010q1-188-win32.tar.gz"/> |
| <arg value="--directory=windows/work/hardware/tools"/> |
| </exec> |
| </target> |
| |
| <target name="windows-dist" depends="windows-build" |
| description="Create .zip files of windows version"> |
| |
| <!--get src="http://dev.processing.org/build/jre-tools-6u18-windows-i586.zip" |
| dest="windows/jre.zip" |
| usetimestamp="true" /--> |
| |
| <unzip dest="windows/work" src="windows/jre.zip" overwrite="false"/> |
| |
| <!-- |
| <zip basedir="windows/work" |
| prefix="arduino-${version}" |
| destfile="windows/arduino-${version}.zip" /> |
| <zip basedir="windows/work" |
| prefix="arduino-${version}" |
| destfile="windows/arduino-${version}-expert.zip" |
| excludes="java/**" /> |
| --> |
| |
| <zip destfile="windows/arduino-${version}-windows.zip"> |
| <zipfileset dir="windows/work" |
| prefix="arduino-${version}" /> |
| </zip> |
| |
| <zip destfile="windows/arduino-${version}-windows-expert.zip"> |
| <zipfileset dir="windows/work" |
| prefix="arduino-${version}" |
| excludes="java/**" /> |
| </zip> |
| |
| <echo> |
| ======================================================= |
| Arduino for Windows was built. Grab the archive from |
| |
| windows/arduino-${version}-windows.zip |
| windows/arduino-${version}-windows-expert.zip |
| ======================================================= |
| </echo> |
| </target> |
| |
| |
| <!-- - - - - - - - --> |
| <!-- Source --> |
| <!-- - - - - - - - --> |
| |
| <target name="source-dist" depends="revision-check" |
| description="Build .tar.gz of source code"> |
| <input message="Enter version number:" |
| addproperty="version" |
| defaultvalue="${revision}" /> |
| |
| <tar compression="gzip" destfile="arduino-${version}-src.tar.gz"> |
| <tarfileset dir="../" |
| prefix="arduino-${version}" |
| excludes="**/*.tgz, |
| **/*.bz2, |
| **/macosx/, |
| **/windows/, |
| **/work/, |
| **/.git/, |
| **/*.class" |
| /> |
| </tar> |
| |
| <echo> |
| ======================================================= |
| Arduino source distribution was built. Grab the archive from |
| |
| arduino-${version}-src.tar.gz |
| ======================================================= |
| </echo> |
| </target> |
| |
| |
| <!-- - - - - - - - --> |
| <!-- Run It! --> |
| <!-- - - - - - - - --> |
| |
| <target name="clean" description="Perform a spring cleaning" |
| depends="linux-clean, windows-clean, macosx-clean, subprojects-clean"> |
| </target> |
| |
| </project> |