Just got Arduino-0017 for my mac, and I was immediately shocked by how BIG the application bundle is.
189MB ? This is bigger than Eclipse!
I looked into it, and it seems like most of the space is taken up by what appear to be a couple of identical versions of avr-gcc and related utilities.
Is all this stuff really needed? And what does it do?
I think it's because Arduino wants to avoid having people look for WinAVR or the linux avr binary utilities themselves. Arduino is the same software that uses regular expressions to create function prototypes for you behind your back so you don't have to. The idea is to save time.
I guess it also prevents any updates to existing avr binary utilities from breaking Arduino's compilation process since it's a complicated process (this is beyond unlikely).
Part of it is the WinAVR bundle, which can be trimmed, also if you have a JRE installed you can just remove the whole java folder.
If you want to reclaim some space, below is a batch file i wrote that uses UPX to compress the environment without removing anything important (aka it keeps the java runtime environment) Use with a grain of salt I only tested this on my machine. Adjust variables at top for your path. And you will need to download UPX.
::config path here
set ardpath=..\arduino-0017
set upxopt=--brute -q
::remove useless files
del %ardpath%\hardware\tools\avr*.log #remove useless logs
del %ardpath%\hardware\tools\avr\WinAVR-20081205-uninstall.exe #uninstall for something that is not installed
rmdir %ardpath%\hardware\tools\avr\pn
del %ardpath%\hardware\tools\avr\utils\bin\msys-1.0.dll.old
del %ardpath%\hardware\tools\avr\utils\bin\make.exe.old
::java remove usless files
del %ardpath%\java\lib\charsets.jar
del %ardpath%\java\lib\ext\sunjce_provider.jar
del %ardpath%\java\lib\ext\ldapsec.jar
del %ardpath%\java\bin\rmid.exe
del %ardpath%\java\bin\rmiregistry.exe
del %ardpath%\java\bin\tnameserv.exe
del %ardpath%\java\bin\keytool.exe
del %ardpath%\java\bin\kinit.exe
del %ardpath%\java\bin\klist.exe
del %ardpath%\java\bin\ktab.exe
del %ardpath%\java\bin\policytool.exe
del %ardpath%\java\bin\orbd.exe
del %ardpath%\java\bin\servertool.exe
del %ardpath%\java\bin\javaws.exe
del %ardpath%\java\lib\javaws.jar
rmdir %ardpath%\java\lib\javaws
del %ardpath%\java\bin\java.exe
del %ardpath%\java\bin\javacpl.exe
del %ardpath%\java\bin\jucheck.exe
del %ardpath%\java\bin\jusched.exe
del %ardpath%\java\bin\wsdetect.dll
del %ardpath%\java\bin\NPJPI*.dll
del %ardpath%\java\bin\NPJava11.dll
del %ardpath%\java\bin\NPJava12.dll
del %ardpath%\java\bin\NPJava13.dll
del %ardpath%\java\bin\NPJava14.dll
del %ardpath%\java\bin\NPJava32.dll
del %ardpath%\java\bin\NPOJI610.dll
del %ardpath%\java\bin\RegUtils.dll
del %ardpath%\java\bin\axbridge.dll
del %ardpath%\java\bin\deploy.dll
del %ardpath%\java\bin\jpicom.dll
del %ardpath%\java\bin\javacpl.cpl
del %ardpath%\java\bin\jpiexp.dll
del %ardpath%\java\bin\jpinscp.dll
del %ardpath%\java\bin\jpioji.dll
del %ardpath%\java\bin\jpishare.dll
del %ardpath%\java\lib\deploy.jar
del %ardpath%\java\lib\plugin.jar
::remove non base documentation
rmdir %ardpath%\hardware\tools\avr\doc
::compress exe in main dir.
upx.exe %upxopt% %ardpath%*
Should note that it goes from around 220mb to 125mb, also feels faster on my netbook. With a little bit of work, i'm sure these changes could be made to the deployed Arduino package.
All the java files removed above are optional JRE files, that can be removed if you are bundling the JRE with an application. (There is a list in a Readme.txt file in the java folder about this.)
If anyone knows any other files/folders that can be remove please let me know I will update the script.