diff --git a/build/howto.txt b/build/howto.txt index 6b89a4d3f..bce6868ff 100755 --- a/build/howto.txt +++ b/build/howto.txt @@ -1,7 +1,5 @@ HOW TO BUILD ARDUINO ON YOUR FAVORITE PLATFORM -With frequently asked questions, scroll to the end of the file. - //////////////////////////////////////////////////////////////////// @@ -40,7 +38,7 @@ it again, and select the items above. it's also useful to run the installer every few months to keep things fresh. -1b. On Mac OS X, install Apple's Developer Tools. +1b. On Mac OS X, install Apple's Developer Tools and subversion. 1c. On Linux, you're pretty much on your own.. You need jikes (or edit make.sh to use a different compiler), java, avr-gcc, make, @@ -60,6 +58,8 @@ svn co svn://svn.berlios.de/arduino/trunk 3. BUILD IT 3a. On the Mac, use the Xcode project to build the Arduino software. + Set the active target to App to run Arduino, or to Distribute to + create a .zip file. 3b. On Windows or Linux, use the command line. diff --git a/build/macosx/Arduino.xcodeproj/project.pbxproj b/build/macosx/Arduino.xcodeproj/project.pbxproj index 79578de93..245e3bd9e 100644 --- a/build/macosx/Arduino.xcodeproj/project.pbxproj +++ b/build/macosx/Arduino.xcodeproj/project.pbxproj @@ -7,76 +7,16 @@ objects = { /* Begin PBXAggregateTarget section */ - 3318B1140AD6CE7B00FE1A05 /* Setup PPC */ = { + 33269DE20D6E7A67006BB2E3 /* Distribute */ = { isa = PBXAggregateTarget; - buildConfigurationList = 3318B1170AD6CE9F00FE1A05 /* Build configuration list for PBXAggregateTarget "Setup PPC" */; + buildConfigurationList = 33269DED0D6E7A7E006BB2E3 /* Build configuration list for PBXAggregateTarget "Distribute" */; buildPhases = ( - 3318B1150AD6CE8800FE1A05 /* ShellScript */, + 33269DE50D6E7A6F006BB2E3 /* ShellScript */, ); dependencies = ( - 3318B1250AD6CF3500FE1A05 /* PBXTargetDependency */, + 33269DF80D6E7AD4006BB2E3 /* PBXTargetDependency */, ); - name = "Setup PPC"; - productName = "Setup-PPC"; - }; - 3318B1190AD6CE9F00FE1A05 /* Setup Intel */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 3318B11B0AD6CE9F00FE1A05 /* Build configuration list for PBXAggregateTarget "Setup Intel" */; - buildPhases = ( - 3318B11A0AD6CE9F00FE1A05 /* ShellScript */, - ); - dependencies = ( - 3318B1270AD6CF3900FE1A05 /* PBXTargetDependency */, - ); - name = "Setup Intel"; - productName = "Setup-PPC"; - }; - 3318B1280AD6CF4F00FE1A05 /* App PPC */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 3318B12D0AD6CF7A00FE1A05 /* Build configuration list for PBXAggregateTarget "App PPC" */; - buildPhases = ( - ); - dependencies = ( - 3318B12C0AD6CF6100FE1A05 /* PBXTargetDependency */, - 3318B12A0AD6CF5E00FE1A05 /* PBXTargetDependency */, - ); - name = "App PPC"; - productName = "App PPC"; - }; - 3318B12F0AD6CF7A00FE1A05 /* App Intel */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 3318B1340AD6CF7A00FE1A05 /* Build configuration list for PBXAggregateTarget "App Intel" */; - buildPhases = ( - ); - dependencies = ( - 3318B1390AD6CF8900FE1A05 /* PBXTargetDependency */, - 3318B1320AD6CF7A00FE1A05 /* PBXTargetDependency */, - ); - name = "App Intel"; - productName = "App PPC"; - }; - 3318B14C0AD6D1EB00FE1A05 /* Distribute PPC */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 3318B1530AD6D1EB00FE1A05 /* Build configuration list for PBXAggregateTarget "Distribute PPC" */; - buildPhases = ( - 3318B1520AD6D1EB00FE1A05 /* ShellScript */, - ); - dependencies = ( - 3318B14D0AD6D1EB00FE1A05 /* PBXTargetDependency */, - ); - name = "Distribute PPC"; - productName = Distribute; - }; - 3318B1580AD6D1FC00FE1A05 /* Distribute Intel */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 3318B15F0AD6D1FC00FE1A05 /* Build configuration list for PBXAggregateTarget "Distribute Intel" */; - buildPhases = ( - 3318B15E0AD6D1FC00FE1A05 /* ShellScript */, - ); - dependencies = ( - 3318B15B0AD6D1FC00FE1A05 /* PBXTargetDependency */, - ); - name = "Distribute Intel"; + name = Distribute; productName = Distribute; }; 33FFFE1C0965BBEF0016AC38 /* Setup */ = { @@ -85,10 +25,10 @@ buildPhases = ( 335D3AF30C4EE06F0065B27E /* CopyFiles */, 33FFFE1D0965BC050016AC38 /* CopyFiles */, - 33FF070C0965BF760016AC38 /* CopyFiles */, 33FF07130965BFA80016AC38 /* CopyFiles */, 336EA3E309FF84FA0052D765 /* CopyFiles */, 33FF07170965BFFE0016AC38 /* ShellScript */, + 33269DCF0D6E79D9006BB2E3 /* ShellScript */, ); dependencies = ( ); @@ -109,6 +49,7 @@ 33CF03C809662DA200F2C9A9 /* Copy Java Resources */, ); dependencies = ( + 33269DF10D6E7A97006BB2E3 /* PBXTargetDependency */, ); name = App; productInstallPath = "$(USER_APPS_DIR)"; @@ -120,6 +61,29 @@ CFBundleDevelopmentRegion English + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + pde + + CFBundleTypeIconFile + arduino.icns + CFBundleTypeMIMETypes + + text/plain + + CFBundleTypeName + Arduino Source File + CFBundleTypeOSTypes + + TEXT + + CFBundleTypeRole + Editor + + CFBundleExecutable Arduino CFBundleGetInfoString @@ -251,7 +215,6 @@ 33CF03CF09662DC000F2C9A9 /* registry.jar in Copy Java Resources */ = {isa = PBXBuildFile; fileRef = 33AF620E0965D67A00B514A9 /* registry.jar */; settings = {JAVA_ARCHIVE_SUBDIR = ../shared/lib; }; }; 33CF03D009662DC000F2C9A9 /* oro.jar in Copy Java Resources */ = {isa = PBXBuildFile; fileRef = 33AF620D0965D67900B514A9 /* oro.jar */; settings = {JAVA_ARCHIVE_SUBDIR = ../shared/lib; }; }; 33F944E10C2B33560093EB9C /* AvrdudeUploader.java in Sources */ = {isa = PBXBuildFile; fileRef = 33F944E00C2B33560093EB9C /* AvrdudeUploader.java */; }; - 33FF07100965BF8A0016AC38 /* burn.command in CopyFiles */ = {isa = PBXBuildFile; fileRef = 33FFFEAF0965BD110016AC38 /* burn.command */; }; 33FF071F0965C1E30016AC38 /* about.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 33FF01DE0965BD160016AC38 /* about.jpg */; }; 33FF07220965C1E30016AC38 /* buttons.gif in Resources */ = {isa = PBXBuildFile; fileRef = 33FF02770965BD160016AC38 /* buttons.gif */; }; 33FF07230965C1E30016AC38 /* icon.gif in Resources */ = {isa = PBXBuildFile; fileRef = 33FF02780965BD160016AC38 /* icon.gif */; }; @@ -272,62 +235,20 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 3318B1240AD6CF3500FE1A05 /* PBXContainerItemProxy */ = { + 33269DF00D6E7A97006BB2E3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 33FFFD3F0965B1E40016AC38 /* Project object */; proxyType = 1; - remoteGlobalIDString = 33FFFE1C0965BBEF0016AC38; + remoteGlobalIDString = 33FFFE1C0965BBEF0016AC38 /* Setup */; remoteInfo = Setup; }; - 3318B1260AD6CF3900FE1A05 /* PBXContainerItemProxy */ = { + 33269DF70D6E7AD4006BB2E3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 33FFFD3F0965B1E40016AC38 /* Project object */; proxyType = 1; - remoteGlobalIDString = 33FFFE1C0965BBEF0016AC38; - remoteInfo = Setup; - }; - 3318B1290AD6CF5E00FE1A05 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33FFFD3F0965B1E40016AC38 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33AF61680965C4C600B514A9; + remoteGlobalIDString = 33AF61680965C4C600B514A9 /* App */; remoteInfo = App; }; - 3318B12B0AD6CF6100FE1A05 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33FFFD3F0965B1E40016AC38 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3318B1140AD6CE7B00FE1A05; - remoteInfo = "Setup PPC"; - }; - 3318B1330AD6CF7A00FE1A05 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33FFFD3F0965B1E40016AC38 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33AF61680965C4C600B514A9; - remoteInfo = App; - }; - 3318B1380AD6CF8900FE1A05 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33FFFD3F0965B1E40016AC38 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3318B1190AD6CE9F00FE1A05; - remoteInfo = "Setup Intel"; - }; - 3318B14E0AD6D1EB00FE1A05 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33FFFD3F0965B1E40016AC38 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3318B1280AD6CF4F00FE1A05; - remoteInfo = "App PPC"; - }; - 3318B15C0AD6D1FC00FE1A05 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33FFFD3F0965B1E40016AC38 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3318B12F0AD6CF7A00FE1A05; - remoteInfo = "App Intel"; - }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -369,16 +290,6 @@ name = "Copy Java Resources"; runOnlyForDeploymentPostprocessing = 0; }; - 33FF070C0965BF760016AC38 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = hardware/bootloaders/atmega8; - dstSubfolderSpec = 16; - files = ( - 33FF07100965BF8A0016AC38 /* burn.command in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 33FF07130965BFA80016AC38 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -506,15 +417,6 @@ 33FFFE810965BD110016AC38 /* howto.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = howto.txt; sourceTree = ""; }; 33FFFE930965BD110016AC38 /* .cvsignore */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = .cvsignore; sourceTree = ""; }; 33FFFE940965BD110016AC38 /* Arduino.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = Arduino.xcodeproj; sourceTree = ""; }; - 33FFFEAF0965BD110016AC38 /* burn.command */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.sh; path = burn.command; sourceTree = ""; }; - 33FFFEB50965BD110016AC38 /* DS_Store */ = {isa = PBXFileReference; lastKnownFileType = file; path = DS_Store; sourceTree = ""; }; - 33FFFEB60965BD110016AC38 /* jikes */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = jikes; sourceTree = ""; }; - 33FFFEBD0965BD110016AC38 /* dist.sh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.sh; path = dist.sh; sourceTree = ""; }; - 33FFFEBE0965BD110016AC38 /* make.sh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.sh; path = make.sh; sourceTree = ""; }; - 33FFFEBF0965BD110016AC38 /* mkdmg */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.sh; path = mkdmg; sourceTree = ""; }; - 33FFFEC00965BD110016AC38 /* run.sh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.sh; path = run.sh; sourceTree = ""; }; - A33729610D224FA700E82412 /* librxtxSerial-intel.jnilib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.bundle"; path = "librxtxSerial-intel.jnilib"; sourceTree = ""; }; - A33729620D224FA700E82412 /* librxtxSerial-ppc.jnilib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.bundle"; path = "librxtxSerial-ppc.jnilib"; sourceTree = ""; }; A33729630D224FA700E82412 /* librxtxSerial.jnilib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.bundle"; path = librxtxSerial.jnilib; sourceTree = ""; }; /* End PBXFileReference section */ @@ -738,10 +640,6 @@ 33FFFE930965BD110016AC38 /* .cvsignore */, 33FFFE940965BD110016AC38 /* Arduino.xcodeproj */, 33FFFEAC0965BD110016AC38 /* dist */, - 33FFFEBD0965BD110016AC38 /* dist.sh */, - 33FFFEBE0965BD110016AC38 /* make.sh */, - 33FFFEBF0965BD110016AC38 /* mkdmg */, - 33FFFEC00965BD110016AC38 /* run.sh */, ); path = macosx; sourceTree = ""; @@ -757,26 +655,13 @@ isa = PBXGroup; children = ( 335A28F20C8CCAF700D8A7F4 /* libquaqua.jnilib */, - A33729610D224FA700E82412 /* librxtxSerial-intel.jnilib */, - A33729620D224FA700E82412 /* librxtxSerial-ppc.jnilib */, A33729630D224FA700E82412 /* librxtxSerial.jnilib */, 335A28F30C8CCAF700D8A7F4 /* quaqua.jar */, - 33FFFEAE0965BD110016AC38 /* bootloader */, 33FFFEB20965BD110016AC38 /* drivers */, - 33FFFEB50965BD110016AC38 /* DS_Store */, - 33FFFEB60965BD110016AC38 /* jikes */, ); path = dist; sourceTree = ""; }; - 33FFFEAE0965BD110016AC38 /* bootloader */ = { - isa = PBXGroup; - children = ( - 33FFFEAF0965BD110016AC38 /* burn.command */, - ); - path = bootloader; - sourceTree = ""; - }; 33FFFEB20965BD110016AC38 /* drivers */ = { isa = PBXGroup; children = ( @@ -816,12 +701,7 @@ targets = ( 33FFFE1C0965BBEF0016AC38 /* Setup */, 33AF61680965C4C600B514A9 /* App */, - 3318B1140AD6CE7B00FE1A05 /* Setup PPC */, - 3318B1190AD6CE9F00FE1A05 /* Setup Intel */, - 3318B1280AD6CF4F00FE1A05 /* App PPC */, - 3318B12F0AD6CF7A00FE1A05 /* App Intel */, - 3318B14C0AD6D1EB00FE1A05 /* Distribute PPC */, - 3318B1580AD6D1FC00FE1A05 /* Distribute Intel */, + 33269DE20D6E7A67006BB2E3 /* Distribute */, ); }; /* End PBXProject section */ @@ -854,7 +734,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3318B1150AD6CE8800FE1A05 /* ShellScript */ = { + 33269DCF0D6E79D9006BB2E3 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -867,7 +747,7 @@ shellPath = /bin/sh; shellScript = "unzip -od $BUILT_PRODUCTS_DIR/hardware dist/tools-universal.zip\n"; }; - 3318B11A0AD6CE9F00FE1A05 /* ShellScript */ = { + 33269DE50D6E7A6F006BB2E3 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -878,33 +758,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "unzip -od $BUILT_PRODUCTS_DIR/hardware dist/tools-universal.zip\n"; - }; - 3318B1520AD6D1EB00FE1A05 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "REVISION=`head -1 $SRCROOT/../../todo.txt | cut -c 1-4`\nSHORT_REVISION=`head -1 $SRCROOT/../../todo.txt | cut -c 3-4`\nVERSIONED=`cat $SRCROOT/../../app/Base.java | grep $REVISION`\n\nif [ -z \"$VERSIONED\" ]\nthen\n echo Fix the revision number in Base.java\n exit\nfi\n\ncd \"$SRCROOT\"\n\nrm -rf arduino\nrm -rf arduino-*\n\nmv $BUILT_PRODUCTS_DIR arduino\n\nfind arduino -name \"*~\" -exec rm -f {} ';'\n# need to leave ds store stuff cuz one of those is important\n#find arduino -name \".DS_Store\" -exec rm -f {} ';'\nfind arduino -name \"._*\" -exec rm -f {} ';'\nfind arduino -name \"Thumbs.db\" -exec rm -f {} ';'\n\n# clean out the cvs entries\nfind arduino -name \"CVS\" -exec rm -rf {} ';' 2> /dev/null\nfind arduino -name \".cvsignore\" -exec rm -rf {} ';'\n\n# clean out the svn entries\nfind arduino -name \".svn\" -exec rm -rf {} ';' 2> /dev/null\n\n#mv arduino/Arduino.app/Contents/MacOS/Arduino \"arduino/Arduino.app/Contents/MacOS/Arduino $SHORT_REVISION\"\nmv arduino/Arduino.app \"arduino/Arduino $SHORT_REVISION.app\"\nmv arduino arduino-$REVISION\nzip -r arduino-$REVISION-mac-ppc.zip arduino-$REVISION\n"; - }; - 3318B15E0AD6D1FC00FE1A05 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "cd $BUILT_PRODUCTS_DIR/../../\n\nREVISION=`head -1 ../../todo.txt | cut -c 1-4`\nSHORT_REVISION=`head -1 ../../todo.txt | cut -c 3-4`\nVERSIONED=`cat ../../app/Base.java | grep $REVISION`\n\nif [ -z \"$VERSIONED\" ]\nthen\n echo Fix the revision number in Base.java\n exit\nfi\n\nrm -rf arduino\nrm -rf arduino-*\n\nmv $BUILT_PRODUCTS_DIR arduino\n\nfind arduino -name \"*~\" -exec rm -f {} ';'\n# need to leave ds store stuff cuz one of those is important\n#find arduino -name \".DS_Store\" -exec rm -f {} ';'\nfind arduino -name \"._*\" -exec rm -f {} ';'\nfind arduino -name \"Thumbs.db\" -exec rm -f {} ';'\n\n# clean out the cvs entries\nfind arduino -name \"CVS\" -exec rm -rf {} ';' 2> /dev/null\nfind arduino -name \".cvsignore\" -exec rm -rf {} ';'\n\n# clean out the svn entries\nfind arduino -name \".svn\" -exec rm -rf {} ';' 2> /dev/null\n\n#mv arduino/Arduino.app/Contents/MacOS/Arduino \"arduino/Arduino.app/Contents/MacOS/Arduino $SHORT_REVISION\"\nmv arduino/Arduino.app \"arduino/Arduino $SHORT_REVISION.app\"\nmv arduino arduino-$REVISION\nzip -r arduino-$REVISION-mac-intel.zip arduino-$REVISION\n"; + shellScript = "cd $BUILT_PRODUCTS_DIR/../../\n\nREVISION=`head -1 ../../todo.txt | cut -c 1-4`\nSHORT_REVISION=`head -1 ../../todo.txt | cut -c 3-4`\nVERSIONED=`cat ../../app/Base.java | grep $REVISION`\n\nif [ -z \"$VERSIONED\" ]\nthen\n echo Fix the revision number in Base.java\n exit\nfi\n\nrm -rf arduino\nrm -rf arduino-*\n\nmv $BUILT_PRODUCTS_DIR arduino\n\nfind arduino -name \"*~\" -exec rm -f {} ';'\n# need to leave ds store stuff cuz one of those is important\n#find arduino -name \".DS_Store\" -exec rm -f {} ';'\nfind arduino -name \"._*\" -exec rm -f {} ';'\nfind arduino -name \"Thumbs.db\" -exec rm -f {} ';'\n\n# clean out the cvs entries\nfind arduino -name \"CVS\" -exec rm -rf {} ';' 2> /dev/null\nfind arduino -name \".cvsignore\" -exec rm -rf {} ';'\n\n# clean out the svn entries\nfind arduino -name \".svn\" -exec rm -rf {} ';' 2> /dev/null\n\n#mv arduino/Arduino.app/Contents/MacOS/Arduino \"arduino/Arduino.app/Contents/MacOS/Arduino $SHORT_REVISION\"\nmv arduino/Arduino.app \"arduino/Arduino $SHORT_REVISION.app\"\nmv arduino arduino-$REVISION\nzip -r arduino-$REVISION-mac.zip arduino-$REVISION\n"; }; 33FF07170965BFFE0016AC38 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1001,108 +855,23 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 3318B1250AD6CF3500FE1A05 /* PBXTargetDependency */ = { + 33269DF10D6E7A97006BB2E3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 33FFFE1C0965BBEF0016AC38 /* Setup */; - targetProxy = 3318B1240AD6CF3500FE1A05 /* PBXContainerItemProxy */; + targetProxy = 33269DF00D6E7A97006BB2E3 /* PBXContainerItemProxy */; }; - 3318B1270AD6CF3900FE1A05 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33FFFE1C0965BBEF0016AC38 /* Setup */; - targetProxy = 3318B1260AD6CF3900FE1A05 /* PBXContainerItemProxy */; - }; - 3318B12A0AD6CF5E00FE1A05 /* PBXTargetDependency */ = { + 33269DF80D6E7AD4006BB2E3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 33AF61680965C4C600B514A9 /* App */; - targetProxy = 3318B1290AD6CF5E00FE1A05 /* PBXContainerItemProxy */; - }; - 3318B12C0AD6CF6100FE1A05 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3318B1140AD6CE7B00FE1A05 /* Setup PPC */; - targetProxy = 3318B12B0AD6CF6100FE1A05 /* PBXContainerItemProxy */; - }; - 3318B1320AD6CF7A00FE1A05 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33AF61680965C4C600B514A9 /* App */; - targetProxy = 3318B1330AD6CF7A00FE1A05 /* PBXContainerItemProxy */; - }; - 3318B1390AD6CF8900FE1A05 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3318B1190AD6CE9F00FE1A05 /* Setup Intel */; - targetProxy = 3318B1380AD6CF8900FE1A05 /* PBXContainerItemProxy */; - }; - 3318B14D0AD6D1EB00FE1A05 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3318B1280AD6CF4F00FE1A05 /* App PPC */; - targetProxy = 3318B14E0AD6D1EB00FE1A05 /* PBXContainerItemProxy */; - }; - 3318B15B0AD6D1FC00FE1A05 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3318B12F0AD6CF7A00FE1A05 /* App Intel */; - targetProxy = 3318B15C0AD6D1FC00FE1A05 /* PBXContainerItemProxy */; + targetProxy = 33269DF70D6E7AD4006BB2E3 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 3318B1180AD6CE9F00FE1A05 /* work */ = { + 33269DEE0D6E7A7E006BB2E3 /* work */ = { isa = XCBuildConfiguration; buildSettings = { - PRODUCT_NAME = "Setup-PPC"; - }; - name = work; - }; - 3318B11C0AD6CE9F00FE1A05 /* work */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = "Setup-PPC"; - }; - name = work; - }; - 3318B12E0AD6CF7A00FE1A05 /* work */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = "App PPC"; - }; - name = work; - }; - 3318B1350AD6CF7A00FE1A05 /* work */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = "App PPC"; - }; - name = work; - }; - 3318B1540AD6D1EB00FE1A05 /* work */ = { - isa = XCBuildConfiguration; - buildSettings = { - OPTIMIZATION_CFLAGS = "-O0"; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - OTHER_REZFLAGS = ""; PRODUCT_NAME = Distribute; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - }; - name = work; - }; - 3318B1600AD6D1FC00FE1A05 /* work */ = { - isa = XCBuildConfiguration; - buildSettings = { - OPTIMIZATION_CFLAGS = "-O0"; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - OTHER_REZFLAGS = ""; - PRODUCT_NAME = Distribute; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); }; name = work; }; @@ -1160,50 +929,10 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 3318B1170AD6CE9F00FE1A05 /* Build configuration list for PBXAggregateTarget "Setup PPC" */ = { + 33269DED0D6E7A7E006BB2E3 /* Build configuration list for PBXAggregateTarget "Distribute" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3318B1180AD6CE9F00FE1A05 /* work */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = work; - }; - 3318B11B0AD6CE9F00FE1A05 /* Build configuration list for PBXAggregateTarget "Setup Intel" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3318B11C0AD6CE9F00FE1A05 /* work */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = work; - }; - 3318B12D0AD6CF7A00FE1A05 /* Build configuration list for PBXAggregateTarget "App PPC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3318B12E0AD6CF7A00FE1A05 /* work */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = work; - }; - 3318B1340AD6CF7A00FE1A05 /* Build configuration list for PBXAggregateTarget "App Intel" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3318B1350AD6CF7A00FE1A05 /* work */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = work; - }; - 3318B1530AD6D1EB00FE1A05 /* Build configuration list for PBXAggregateTarget "Distribute PPC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3318B1540AD6D1EB00FE1A05 /* work */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = work; - }; - 3318B15F0AD6D1FC00FE1A05 /* Build configuration list for PBXAggregateTarget "Distribute Intel" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3318B1600AD6D1FC00FE1A05 /* work */, + 33269DEE0D6E7A7E006BB2E3 /* work */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = work; diff --git a/build/macosx/dist.sh b/build/macosx/dist.sh deleted file mode 100755 index 21d0bfa0d..000000000 --- a/build/macosx/dist.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -# part of the arduino project http://arduino.berlios.de -# take from processing http://www.processing.org -# by Ben Fry, Casey Reas et al -# -# the power of open source - - -REVISION=`head -1 ../../todo.txt | cut -c 1-4` -SHORT_REVISION=`head -1 ../../todo.txt | cut -c 3-4` - -VERSIONED=`cat ../../app/Base.java | grep $REVISION` -if [ -z "$VERSIONED" ] -then - echo Fix the revision number in Base.java - exit -fi - -echo REBUILDING ARDUINO -rm -rf work -./make.sh - -echo CREATING ARDUINO $REVISION DISTRIBUTION - -# remove any old boogers -rm -rf arduino -rm -rf Arduino* -rm -rf arduino-* - -mkdir arduino - -# use 'work' files as starting point -cp -r work/* arduino - -rm -rf arduino/classes - -# remove boogers -find arduino -name "*~" -exec rm -f {} ';' -# need to leave ds store stuff cuz one of those is important -#find arduino -name ".DS_Store" -exec rm -f {} ';' -find arduino -name "._*" -exec rm -f {} ';' -find arduino -name "Thumbs.db" -exec rm -f {} ';' - -# clean out the cvs entries -find arduino -name "CVS" -exec rm -rf {} ';' 2> /dev/null -find arduino -name ".cvsignore" -exec rm -rf {} ';' - -# clean out the svn entries -find arduino -name ".svn" -exec rm -rf {} ';' 2> /dev/null - -mv arduino/Arduino.app "arduino/Arduino $SHORT_REVISION.app" -mv arduino arduino-$REVISION -#zip -r arduino-$REVISION.zip arduino-$REVISION - -rm -Rf tmp - -mkdir tmp -mv arduino-$REVISION/ tmp/ -hdiutil create -fs HFS+ -srcfolder "./tmp/" -volname "arduino-$REVISION" "arduino-$REVISION.dmg" - -#` don't have deluxe on my laptop right now -#stuff -f sitx arduino-$REVISION - -# zip it all up for release -#NICE_FOLDER="Arduino $SHORT_REVISION" -#DMG_NAME="arduino-$REVISION" -#mv arduino "$NICE_FOLDER" -#chmod +x mkdmg -#./mkdmg "$NICE_FOLDER" "Arduino" -#mv "$NICE_FOLDER.dmg" "$DMG_NAME.dmg" - -# actually, could probably use: -# open arduino-uncomp.dmg -# rm -rf /Volumes/Arduino/Arduino* -# mv "Arduino $REVISION" /Volumes/Arduino -# umount /Volumes/Arduino - -echo Done. diff --git a/build/macosx/dist/DS_Store b/build/macosx/dist/DS_Store deleted file mode 100755 index 552029e3a..000000000 Binary files a/build/macosx/dist/DS_Store and /dev/null differ diff --git a/build/macosx/dist/bootloader/burn.command b/build/macosx/dist/bootloader/burn.command deleted file mode 100755 index 85e132c75..000000000 --- a/build/macosx/dist/bootloader/burn.command +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -# fixmybootloader.command 25.06.2005 mbanzi -# -# Arduino project http://arduino.berlios.de -# -# quick and dirty script to set the proper fuses and lock bits -# while loading the bootloader onto a brand new arduino board -# -# very useful also when for some reasons the bootloader disappears -# -# TODO: cleanup and make it more user friendly -# TODO: move this (and related) scripts to platform dist/ dirs -# -# expects an STK500 compatible programmer on the specified serial port -# if you use the parallel port programmer you need to change the dprog -# parametre -# - -BINDIR=../../tools/avr/bin -PORT=/dev/tty.USA19QW1b1P1.1 - -# unlock bootloader segment -$BINDIR/uisp -dpart=ATmega8 -dprog=stk500 -dserial=$PORT -dspeed=115200 --wr_lock=0xFF - -# set fuses -# bootloader size of 512 words; from 0xE00-0xFFF -# clock speed of 16 MHz, external quartz -$BINDIR/uisp -dpart=ATmega8 -dprog=stk500 -dserial=$PORT -dspeed=115200 --wr_fuse_l=0xdf --wr_fuse_h=0xca - -# upload bootloader -$BINDIR/uisp -dpart=ATmega8 -dprog=stk500 -dserial=$PORT -dspeed=115200 --erase --upload if=ATMegaBOOT.hex -v - -# lock bootloader segment -$BINDIR/uisp -dpart=ATmega8 -dprog=stk500 -dserial=$PORT -dspeed=115200 --wr_lock=0xCF diff --git a/build/macosx/dist/jikes b/build/macosx/dist/jikes deleted file mode 100755 index add916b11..000000000 Binary files a/build/macosx/dist/jikes and /dev/null differ diff --git a/build/macosx/dist/librxtxSerial-intel.jnilib b/build/macosx/dist/librxtxSerial-intel.jnilib deleted file mode 100755 index 8a1a7f70f..000000000 Binary files a/build/macosx/dist/librxtxSerial-intel.jnilib and /dev/null differ diff --git a/build/macosx/dist/librxtxSerial-ppc.jnilib b/build/macosx/dist/librxtxSerial-ppc.jnilib deleted file mode 100755 index d85050567..000000000 Binary files a/build/macosx/dist/librxtxSerial-ppc.jnilib and /dev/null differ diff --git a/build/macosx/dist/tools-intel.zip b/build/macosx/dist/tools-intel.zip deleted file mode 100644 index 02096a334..000000000 Binary files a/build/macosx/dist/tools-intel.zip and /dev/null differ diff --git a/build/macosx/dist/tools-ppc.zip b/build/macosx/dist/tools-ppc.zip deleted file mode 100644 index 751ff67bf..000000000 Binary files a/build/macosx/dist/tools-ppc.zip and /dev/null differ diff --git a/build/macosx/make.sh b/build/macosx/make.sh deleted file mode 100755 index 86091e1d4..000000000 --- a/build/macosx/make.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/sh - -# Part of the Arduino project -# http://arduino.berlios.de -# -# this is derived from the processing project -# http://www.processing.org -# -# This file is subjected to the GPL License -# - -### -- SETUP WORK DIR ------------------------------------------- - -if test -d work -then - BUILD_PREPROC=false -else - BUILD_PREPROC=true - - # needs to make the dir because of packaging goofiness - echo Setting up directories to build under Mac OS X - mkdir -p work/classes/processing/app/preproc - mkdir -p work/classes/processing/app/syntax - mkdir -p work/classes/processing/app/tools - mkdir -p work/lib/build - #mkdir -p work/examples - - cp dist/librxtxSerial.jnilib work/ - cp -pR dist/drivers work/ - - # to have a copy of this guy around for messing with - echo Copying Arduino.app... - cp -pR dist/Arduino.app work/ - # cvs doesn't seem to want to honor the +x bit - chmod +x work/Arduino.app/Contents/MacOS/JavaApplicationStub - - #echo Extracting examples... - #unzip -d work/examples ../shared/dist/examples.zip - cp -pR ../shared/ - - # copy the avr-gcc distribution - echo Copying tools \(this may take a minute\)... - cp -pR dist/tools.zip work/ - cd work - unzip -oq tools.zip - rm tools.zip - cd .. - - # get jikes and depedencies - echo Copying jikes... - cp dist/jikes work/ - chmod +x work/jikes -fi - -echo Copying shared files... -cp -r ../shared/* work - -echo Copying targets... -# make sure there's no cruft in the targets folder -rm -rf work/lib/targets -cp -r ../../targets work/lib/ - -echo Copying dist files... -cp -r dist/bootloader work/ - -### -- START BUILDING ------------------------------------------- - -# move to root 'arduino' directory -cd ../.. - - -### -- BUILD GCC ------------------------------------------------ -# in the future we will build avr-gcc and tools (if they don't exist) - -### -- BUILD BOOTLOADER ---------------------------------------- -cd bootloader -export DIRAVR=../build/macosx/work/tools/avr -make -cp ATmegaBOOT.hex ../build/macosx/work/bootloader -cd .. - -### -- BUILD JAVA ----------------------------------------------- - -# set classpath -CLASSPATH=/System/Library/Frameworks/JavaVM.framework/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Classes/ui.jar:/System/Library/Java/Extensions/MRJToolkit.jar -export CLASSPATH - -cd app - -### -- BUILD PARSER --------------------------------------------- - -if test -f preproc/expandedpde.g -then - echo -else - cd preproc - # build classes/grammar for preprocessor - echo Building antlr grammar code... - # first build the default java goop - java -cp ../../build/macosx/work/lib/antlr.jar antlr.Tool StdCParser.g - # now build the pde stuff that extends the java classes - java -cp ../../build/macosx/work/lib/antlr.jar antlr.Tool -glib StdCParser.g WParser.g - java -cp ../../build/macosx/work/lib/antlr.jar antlr.Tool WTreeParser.g - java -cp ../../build/macosx/work/lib/antlr.jar antlr.Tool -glib WTreeParser.g WEmitter.g - cd .. -fi - -### -- BUILD PDE ------------------------------------------------ - -echo Building the PDE... - -# compile the code as java 1.3, so that the application will run and -# show the user an error, rather than crapping out with some strange -# "class not found" crap -../build/macosx/work/jikes -target 1.3 +D -classpath ../build/macosx/work/classes:../build/macosx/work/lib/antlr.jar:../build/macosx/work/lib/oro.jar:../build/macosx/work/lib/registry.jar:../build/macosx/work/lib/RXTXcomm.jar:$CLASSPATH -d ../build/macosx/work/classes tools/*.java preproc/*.java syntax/*.java *.java - -cd ../build/macosx/work/classes -rm -f ../lib/pde.jar -zip -0rq ../lib/pde.jar . -cd ../.. - -# get the libs -mkdir -p work/Arduino.app/Contents/Resources/Java/ -cp work/lib/*.jar work/Arduino.app/Contents/Resources/Java/ - -echo -echo Done. diff --git a/build/macosx/mkdmg b/build/macosx/mkdmg deleted file mode 100755 index c5d0516dd..000000000 --- a/build/macosx/mkdmg +++ /dev/null @@ -1,144 +0,0 @@ -#!/bin/zsh - -# from http://www.kernelthread.com/mac/apme/archive/ -# (c) 1994-2005 Amit Singh -# with modifications for p5 build process by fry - -PATH=/bin:/sbin:/usr/bin:/usr/sbin -SCRATCH=/tmp/.mkdmg.$$ - -# Output -# -croak() -{ - echo -n "\n$1" -} - -# Clean up -# -halt() -{ - rm -rf $SCRATCH - # defaults write com.apple.finder ShowRemovableMediaOnDesktop 1 - # chkerror - # FINDERPID=`ps -auxwww | grep Finder.app | grep -v grep | awk '{print $2}'` - # chkerror - # kill -HUP $FINDERPID 2>/dev/null >/dev/null - # chkerror - exit 1 -} - -# Check return status and bail out on error -# -chkerror() -{ - if [ $? -ne 0 ] - then - halt - fi -} - -main() -{ - - # Check if exactly one command line argument was specified - # - if [ $ARGC -ne 1 ] - then - echo "usage: mkdmg " - exit 1 - fi - - # Check if the specified file/directory exists - # - if [ ! -e $1 ] - then - echo "*** $1 does not exist." - exit 1 - fi - - # changed these around a bit [fry] - DEST=`pwd` - SRC=$DEST/$1 - NAME=`basename $SRC` - NAME="$NAME" - VOLNAME=$2 - - # don't add 'archive' to the end of the name [fry] - #ARCH="$NAME Archive" - ARCH="$NAME" - - echo -n "Using source $SRC" - - # Change directory to a scratch location - # - cd /tmp - - # Create a scratch directory - # - mkdir $SCRATCH - croak "Creating temporary directory $SCRATCH" - - # Estimate how much space is needed to archive the file/folder - # - SIZE=`du -s -k $SRC | awk '{print $1}'` - chkerror - SIZE=`expr 5 + $SIZE / 1000` - chkerror - croak "Using $SIZE MB" - - # Create a disk image, redirecting all output to /dev/null - # - hdiutil create "$SCRATCH/$ARCH.dmg" -volname "$VOLNAME" -megabytes $SIZE -type SPARSE -fs HFS+ 2>/dev/null >/dev/null - chkerror - croak "$SCRATCH/$ARCH.dmg created" - - # Optionally disable display of removable media on Desktop - # - # defaults write com.apple.finder ShowRemovableMediaOnDesktop 0 - # chkerror - # FINDERPID=`ps -auxwww | grep Finder.app | grep -v grep | awk '{print $2}'` - # chkerror - # kill -HUP $FINDERPID 2>/dev/null >/dev/null - # chkerror - # - - # Mount sparse image - # - hdid $SCRATCH/$ARCH.dmg.sparseimage 2>/dev/null >/dev/null - chkerror - croak "$SCRATCH/$ARCH.dmg.sparseimage attached" - - # Find out allocated device - # - DEV=`mount | grep "Volumes/$ARCH" | awk '{print $1}'` - croak "Device in use is $DEV" - - # Use ditto to copy everything to the image, preserving resource forks - # - # copy the contents, don't make another folder inside [fry] - ditto -rsrcFork $SRC "/Volumes/$ARCH/$NAME" 2>/dev/null >/dev/null - #ditto -rsrcFork $SRC "/Volumes/$ARCH" 2>/dev/null >/dev/null - chkerror - croak "Copied $SRC to /Volumes/$ARCH/$NAME" - - # Detach the disk image - hdiutil detach $DEV 2>/dev/null >/dev/null - chkerror - croak "$DEV detached" - - # Compress the image (maximum compression) - hdiutil convert "$SCRATCH/$ARCH.dmg.sparseimage" -format UDZO -o "/tmp/$ARCH.dmg" -imagekey zlib-devel=9 2>/dev/null >/dev/null - chkerror - croak "Disk image successfully compressed" - - #croak "/tmp/$ARCH.dmg is ready" - # move the folder to the destination place [fry] - mv /tmp/$ARCH.dmg $DEST/ - - echo - - halt -} - -main $1 diff --git a/build/macosx/run.sh b/build/macosx/run.sh deleted file mode 100755 index bb8d49b27..000000000 --- a/build/macosx/run.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -CLASSPATH=:lib:lib/build:lib/pde.jar:lib/antlr.jar:lib/oro.jar:lib/registry.jar:lib/RXTXcomm.jar - -export CLASSPATH - -cd work && java -Dapple.laf.useScreenMenuBar=true -Dapple.awt.showGrowBox=false processing.app.Base -#./work/Arduino.app/Contents/MacOS/JavaApplicationStub - diff --git a/hardware/cores/arduino/HardwareSerial.cpp b/hardware/cores/arduino/HardwareSerial.cpp index f78eb2dc9..099c26107 100755 --- a/hardware/cores/arduino/HardwareSerial.cpp +++ b/hardware/cores/arduino/HardwareSerial.cpp @@ -138,6 +138,12 @@ void HardwareSerial::println(int n) println(); } +void HardwareSerial::println(unsigned int n) +{ + print(n); + println(); +} + void HardwareSerial::println(long n) { print(n); diff --git a/hardware/cores/arduino/HardwareSerial.h b/hardware/cores/arduino/HardwareSerial.h index 4f0cb541c..5de9a1fc6 100755 --- a/hardware/cores/arduino/HardwareSerial.h +++ b/hardware/cores/arduino/HardwareSerial.h @@ -52,6 +52,7 @@ class HardwareSerial void println(const char[]); void println(uint8_t); void println(int); + void println(unsigned int); void println(long); void println(unsigned long); void println(long, int); diff --git a/hardware/libraries/Matrix/examples/hello_matrix/hello_matrix.pde b/hardware/libraries/Matrix/examples/hello_matrix/hello_matrix.pde index eafed3eaa..127917f0c 100644 --- a/hardware/libraries/Matrix/examples/hello_matrix/hello_matrix.pde +++ b/hardware/libraries/Matrix/examples/hello_matrix/hello_matrix.pde @@ -1,3 +1,4 @@ +#include #include // Hello Matrix diff --git a/readme.txt b/readme.txt index 290edee1b..10c9e211c 100644 --- a/readme.txt +++ b/readme.txt @@ -58,6 +58,7 @@ UPDATES * Placing function prototypes after #include's and #define's. * No longer moving #include statements to the top of the sketch. * Including a working version of the Firmata firmware. +* Can now drag .pde files onto the Arduino dock icon. * New script for downloading the reference from Tom Pollard. Thanks Tom! * Miscellaneous Mac OS X and other patches from Wim Lewis. Thanks Wim! diff --git a/todo.txt b/todo.txt index 0a1008ad0..d603ed30e 100644 --- a/todo.txt +++ b/todo.txt @@ -2,6 +2,7 @@ 0011 +Allow disabling of serial flushing before upload (for the Arduino BT). Improve preprocessing of sketches: - Better determine which header files are included (not commented out). - Remember the original locations of function prototypes to highlight the correct line on error. @@ -9,7 +10,6 @@ Improve preprocessing of sketches: - [done] Don't move #include statements. - [done] Better determine which functions need prototypes Update version of the FTDI drivers. -Floating point support in the map() function. Incorporate ladyada's new SoftwareSerial library. Add timeout parameter to pulseIn(). [done] Modify parallel port programmer burning (add -F, lower or remove delay). @@ -23,7 +23,12 @@ Add timeout parameter to pulseIn(). AVR Add support for ATmega1280 (e.g. timers, external interrupts, multiple serial ports). +Add weak attribute to signal handlers (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1203798214) Good way to receive multiple values / complex messages over the serial port. +Floating point support in the map() function. +Consider moving millis() to timer 1, and configuring it so the interrupt is generated once a millisecond. +Add sleep function(s). +Add SPI library. Add pulseOut(), etc. functions from Wiring. Add String library. Create Encoder library (but don't include in the distribution).