diff --git a/processing/build/howto.txt b/processing/build/howto.txt index 98bd397ae..6ed7f0c3b 100755 --- a/processing/build/howto.txt +++ b/processing/build/howto.txt @@ -4,14 +4,15 @@ HOW TO BUILD PROCESSING //////////////////////////////////////////////////////////////////// -BUILDING THE WINDOWS VERSION +BUILDING THE WINDOWS OR LINUX VERSIONS -// Steps for First Time Setup +//// Steps for First Time Setup -1. INSTALL CYGWIN, downloadable from www.cygwin.com -or directly link to the installer: www.cygwin.com/setup.exe +1. INSTALL CYGWIN (windows users only). it's downloadable from + www.cygwin.com or specifically: www.cygwin.com/setup.exe + linux users can hop ahead to step 2. ** of the packages, begin with the defaults, and add: cvs - used for version control @@ -37,7 +38,6 @@ it's also useful to run the installer (grab a new one from the site, since it changes) every few months to keep things fresh. - 2. GRAB THE CODE FROM SOURCEFORGE * this grabs the code as an anonymous user. if you have a sourceforge @@ -67,65 +67,10 @@ cvs update -P cd .. +3. INSTALL QUICKTIME FOR JAVA (windows users only) -3. INSTALL JIKES - -* a copy of jikes, the ibm's free and speedy java compiler that we - use, has been placed in build/windows/jikes.exe.gz - -* NOTE! this version of jikes has been specially compiled under cygwin - to use : as a path separator, so that all the build scripts work. so - if you already have another version of jikes installed, this one is - the one you want for building P5. - -* open up a cygwin shell, then go like dis: - -cd /yourpath/to/processing/build/windows -# /yourpath/to is where you've placed the processing folder -# for instance, if it's in c:\processing, the line below would be -# /cygdrive/c/processing/build/windows - -# make a copy of jikes -cp jikes.exe.gz /usr/bin/ - -# unpack and install -cd /usr/bin -gzip -d jikes.exe.gz -chmod +x jikes.exe - -# make sure it's now in the path -rehash - -# and see if it works by typing: -jikes -# if it doesn't list the options, then something wasn't installed -# correctly. retrace your steps and see if you've done everything. -# or if i've made an error in the instructions, lemme know. - -# back to home -cd /yourpath/to/processing - - - -4. SET YOUR CLASSPATH (for bagel) - -* you need a few things in your classpath, they are: - - the rt.jar from a java runtime (1.1 or 1.4) - - comm.jar, from javacomm. you can find a copy in - processing/build/windows/dist/lib/comm.jar - if you don't already have it installed - -* to add them to your CLASSPATH (win2k or xp), go to Control Panels -> - System Properties -> Advanced -> Environment Variables - if CLASSPATH is already listed in one of the lefthand columns, - just make sure it includes those two things. if it doesn't, add - them (with full paths to them), separated by semicolons. - on win98 or winme (ack! don't use em!) you'll have to mess with - autoexec.bat. but we strongly recommend not doing this on 98/ME. - -* you'll also need to install quicktime for java, if you're building - for windows or mac. grab a quicktime installer from: - http://www.apple.com/quicktime/download/ +* you'll also need to install quicktime for java. grab a quicktime + installer from: http://www.apple.com/quicktime/download/ * if you already have quicktime installed, just make sure that quicktime for java has already been installed, use the quicktime @@ -133,34 +78,20 @@ cd /yourpath/to/processing 'Details' button in the updater, and if it lists "Not installed" for "QuickTime for Java", well, take care of that. -* make sure that qtjava is in your classpath as well, done - properly. arielm had problems with this, and adds: - so i checked a bit and it seems that the quicktime 4 java - installation (at least on windows xp) is broken, for the 2 following - reasons: - 1) CLASSPATH is defined as a "System variable" - instead of a "User variable" - 2) the value of CLASSPATH is encosed into quotes (") - - after manually fixing these issues, things were fine. (either - properly place quotes around a single version of CLASSPATH, or use a - version that doesn't need to be quoted and has no spaces, - i.e. replace 'Program Files' with the 8.3 dos version: 'PROGRA~1' - (indeed, this awful nomenclature still works). - - -5. BUILD IT - -* you'll need to close and re-open the cygwin window after setting - your CLASSPATH. +4. BUILD IT # now to build for the first time: cd /path/to/processing/build/windows + +# or if you're on linux +cd /path/to/processing/build/linux + +# and then.. ./make.sh -# if everything went well, you'll have no errors. -# (need more doc here on common problems..) +# if everything went well, you'll have no errors. (feel free to make +# suggestions for things to include here for common problems) # then to run it ./run.sh @@ -170,7 +101,7 @@ cd /path/to/processing/build/windows -// Updating to the Latest Version +//// Updating to the Latest Version 1. Each time you want to update to latest version from cvs: @@ -196,27 +127,25 @@ cvs -z3 update -d -P # missing from a subfolder. -//// MAC OS 9 - -this is actually built from inside osx, but then you reboot into os9 -to move files around, remove and .DS_Store files that may have shown -up, and package the thing with stuffit. - -when first attempting to build, it's necessary to un-macbinarize the -Proce55ing application. (processing/build/macos9/dist/Proce55ing.bin) - +3. If there have been significant changes, or you get weird build + errors, try deleting (or renaming, if you need sketches from + inside) your 'work' folder. This will create a fresh build. ///////////////////////////////////////////////////////////////// + HOW TO BUILD PROCESSING FOR THE MAC PLATFORM // if you have any corrections/additions/suggestions: // send email to tmohn@sbcglobal.net -//// MAC OS X/9 +// note: the macos9 instructions are a little crusty since things +// have changed since we suspended support for macos9. + + 1. GRAB THE CODE FROM SOURCEFORGE @@ -257,28 +186,8 @@ cvs update -P cd .. -2. SET YOUR CLASSPATH (for bagel) -// SETUP JAVA CLASSPATH. You need to set an environment -// variable for CLASSPATH. This gets setup in your .tcshrc file for -// your account. Typically with a line like this: - -setenv CLASSPATH /System/Library/Frameworks/JavaVM.framework/ -Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/ -Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Home -/lib/ext/comm.jar - -// Make sure you have comm.jar installed at the following location: - -/System/Library/Frameworks/JavaVM.framework/Home/lib/ext/comm.jar - -// if it isn't there, you can get it from build/macosx. - -// you'll also need to install quicktime for java. grab a quicktime -// installer from: http://www.apple.com/quicktime/download/ - - -3. BUILD IT +2. BUILD IT // first lets get bagel (the make.sh script does this as well if you're // feeling lazy). @@ -392,3 +301,8 @@ cvs -z3 update -d -P # since been added. but if you're getting "class not found" errors # while building, then that's a good indicator that something is # missing from a subfolder. + +If there have been significant changes, or you get weird build +errors, try deleting (or renaming, if you need sketches from +inside) your 'work' folder. This will create a fresh build. + diff --git a/processing/build/linux/make.sh b/processing/build/linux/make.sh index 9a4cf34ac..42338c880 100755 --- a/processing/build/linux/make.sh +++ b/processing/build/linux/make.sh @@ -36,7 +36,6 @@ else #chmod +x work/librxtxSerial.so # get jikes and depedencies - #gunzip < dist/jikes.gz > work/jikes cp dist/jikes work/ chmod +x work/jikes @@ -66,18 +65,16 @@ fi cd bagel CLASSPATH=../build/linux/work/java/lib/rt.jar -#CLASSPATH=/opt/java/lib/rt.jar:/opt/java/lib/ext/comm.jar -#CLASSPATH=../app/build/linux/work/java/lib/rt.jar:../app/build/linux/work/java/lib/ext/comm.jar export CLASSPATH ### --- make version with serial for the application echo Building bagel with serial and sonic support -perl make.pl SERIAL RXTX SONIC JDK13 +perl make.pl JIKES=../build/linux/work/jikes SERIAL RXTX SONIC JDK13 cp classes/*.class ../build/linux/work/classes/ ### --- make version without serial for applet exporting echo Building bagel for export with sonic -perl make.pl SONIC +perl make.pl JIKES=../build/linux/work/jikes SONIC cp classes/*.class ../build/linux/work/lib/export/ cd .. @@ -91,17 +88,20 @@ echo Building PDE for JDK 1.3 cd preprocessor # first build the default java goop -java -cp ../../build/linux/work/lib/antlr.jar antlr.Tool java.g +# long path is to avoid requiring java to be in your PATH + +../../build/linux/work/java/bin/java \ + -cp ../../build/linux/work/lib/antlr.jar antlr.Tool java.g # now build the pde stuff that extends the java classes -java -cp ../../build/linux/work/lib/antlr.jar antlr.Tool \ - -glib java.g pde.g +../../build/linux/work/java/bin/java \ + -cp ../../build/linux/work/lib/antlr.jar antlr.Tool -glib java.g pde.g cd .. CLASSPATH=../build/linux/work/classes:../build/linux/work/lib/kjc.jar:../build/linux/work/lib/antlr.jar:../build/linux/work/lib/oro.jar:../build/linux/work/java/lib/rt.jar:../build/linux/work/lib/RXTXcomm.jar -perl ../bagel/buzz.pl "jikes +D -classpath $CLASSPATH -d ../build/linux/work/classes" -dJDK13 -dRXTX *.java jeditsyntax/*.java preprocessor/*.java +perl ../bagel/buzz.pl "../build/linux/work/jikes +D -classpath $CLASSPATH -d ../build/linux/work/classes" -dJDK13 -dRXTX *.java jeditsyntax/*.java preprocessor/*.java cd ../build/linux/work/classes rm -f ../lib/pde.jar diff --git a/processing/build/macosx/make.sh b/processing/build/macosx/make.sh index 45600c8a3..a6655fc85 100755 --- a/processing/build/macosx/make.sh +++ b/processing/build/macosx/make.sh @@ -97,24 +97,18 @@ cd ../.. cd bagel -# old comm.jar -#MACOSX_CLASSPATH=/System/Library/Frameworks/JavaVM.framework/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Home/lib/ext/comm.jar:/System/Library/Java/Extensions/QTJava.zip:/System/Library/Java/Extensions/MRJToolkit.jar - -# new rxtx comm -MACOSX_CLASSPATH=/System/Library/Frameworks/JavaVM.framework/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Classes/ui.jar:/System/Library/Java/Extensions/QTJava.zip:/System/Library/Java/Extensions/MRJToolkit.jar -# need not be included - -CLASSPATH=$MACOSX_CLASSPATH +# rxtx comm.jar will be included by the build script +CLASSPATH=/System/Library/Frameworks/JavaVM.framework/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Classes/ui.jar:/System/Library/Java/Extensions/QTJava.zip:/System/Library/Java/Extensions/MRJToolkit.jar export CLASSPATH ### --- make version with all the goodies for the application echo Building bagel with serial, video, audio, and jdk13 support -perl make.pl SERIAL RXTX VIDEO SONIC JDK13 +perl make.pl JIKES=../build/macosx/work/jikes SERIAL RXTX VIDEO SONIC JDK13 cp classes/*.class ../build/macosx/work/classes/ ### --- make version without serial for applet exporting echo Building bagel for export with audio -perl make.pl SONIC +perl make.pl JIKES=../build/macosx/work/jikes SONIC cp classes/*.class ../build/macosx/work/lib/export/ cd .. @@ -124,28 +118,20 @@ cd app ### -- BUILD PARSER --------------------------------------------- - -# disabled these guys temporarily -# instead doing it once, when the 'work' dir is built -#cd preprocessor -# first build the default java goop -#java -cp ../../build/macosx/work/lib/antlr.jar antlr.Tool java.g -# now build the pde stuff that extends the java classes -#java -cp ../../build/macosx/work/lib/antlr.jar antlr.Tool -glib java.g pde.g -#cd .. +# add code here later to conditionally build the parser. +# but for now, the parser is only built when the work dir +# is created, to speed the build process. ### -- BUILD PDE ------------------------------------------------ -#echo Building PDE for JDK 1.4 echo Building PDE for JDK 1.3 # new rxtx -CLASSPATH=../build/macosx/work/classes:../build/macosx/work/lib/kjc.jar:../build/macosx/work/lib/antlr.jar:../build/macosx/work/lib/oro.jar:../build/macosx/work/lib/RXTXcomm.jar:$MACOSX_CLASSPATH +CLASSPATH=../build/macosx/work/classes:../build/macosx/work/lib/kjc.jar:../build/macosx/work/lib/antlr.jar:../build/macosx/work/lib/oro.jar:../build/macosx/work/lib/RXTXcomm.jar:$CLASSPATH -#perl ../bagel/buzz.pl "jikes +D -classpath $CLASSPATH -d ../build/macosx/work/classes" -dJDK13 -dJDK14 -dMACOS -dRXTX *.java jeditsyntax/*.java -perl ../bagel/buzz.pl "jikes +D -classpath $CLASSPATH -d ../build/macosx/work/classes" -dJDK13 -dMACOS -dRXTX *.java jeditsyntax/*.java preprocessor/*.java +perl ../bagel/buzz.pl "../build/macosx/work/jikes +D -classpath $CLASSPATH -d ../build/macosx/work/classes" -dJDK13 -dMACOS -dRXTX *.java jeditsyntax/*.java preprocessor/*.java cd ../build/macosx/work/classes rm -f ../lib/pde.jar diff --git a/processing/todo.txt b/processing/todo.txt index f5b61ee80..745965f70 100644 --- a/processing/todo.txt +++ b/processing/todo.txt @@ -1,4 +1,10 @@ 0062 +X modify build instructions for the many changes +X i.e. buzz.pl requires jdk13+ set for JDK13 flag, used by p5 +X usually need to remove the 'work' dir +X modify macosx to use jikes from p5 +X in general, things are way simpler on the pc + _ serious sluggishness with applets _ beginShape/endShape.. 3D scenes with boxes.. _ write script to remove .DS_Store and CVS folders from dist @@ -11,11 +17,6 @@ _ adding files to sketch.. menu item _ also do drag & drop implementation to pull in files _ light(x, y, z, c1, c2, c3, TYPE) _ also BLight with same constructor, and on() and off() fxn -_ modify build instructions for the many changes -_ i.e. buzz.pl requires jdk13+ set for JDK13 flag, used by p5 -_ usually need to remove the 'work' dir -_ modify macosx to use jikes from p5 -_ in general, things are way simpler on the pc _ better 1.3/1.4 support.. properly detect vm _ use when deciding which classes to import _ better support for running locally @@ -26,6 +27,8 @@ _ fix link, loadStrings, saveBytes code once that's fixed _ saveBytes not in proper dir is annoying _ multi-line errors a mess in jikes _ maybe a dropdown list thing, with the first just shown? +_ processing.exe: if expert version is run, and no java installed +_ call the person a genius and tell them to install java application export