/* NOTE: This cookfile is not complete. If one kills the build process, it may not correctly replace the usda/weru/util/Application.java source file. It no longer attempts to determine dependencies, etc. We now let javac determine them and only pass the main java source file to the compiler. It automagically finds the required class files and compiles them from the source if necessary (which is always in this case). Currently, "weps1" and "mcrew1" targets have been modified to work in this fashion. Additional targets will be changed later. NOTE: The above statements are no longer true. The new "filechooser" code does not "automagically" get included. Changes were made to manually include the pertinent source files in the compilation process. Once all the "class" files have been generated (compiled from source), cook will create a "jar" file for them and copy them into the "weps1.install" jar directory (../weps1.install/jar). */ #ifndef SDK SDK = 1.6; #endif #ifndef LINT LINT=0; /* turn it off by default */ #endif #ifndef DEPRECATE DEPRECATE=1; /* turn it on by default */ #endif #ifndef J_FLAG J_FLAG = ""; #endif /* assume we are using cygwin on a PC unless we find out differently */ /* #if [in [UNIX_SYS] CYGWIN_NT-5.1 ] #if [in [UNIX_SYS] CYGWIN_NT-5.0 ] #if [in [UNIX_SYS] CYGWIN_NT-4.0 ] */ MACH_NAME = [shell uname -n]; setenv MACH_NAME = [MACH_NAME]; /* function print "machine is: " [MACH_NAME]; */ FBIN = /usr/bin; JBIN = /cygdrive/c/Program\\ Files/Java/jdk1.6.0/bin; cp_sep = "\;"; /* (obsolete now) */ /* #if [in [MACH_NAME] boreas muddy] #if [in [SDK] 1.6 ] JBIN = /cygdrive/c/Program\\ Files/Java/jdk1.6.0/bin; #else JBIN = /cygdrive/c/Program\\ Files/Java/jdk1.6.0/bin; #endif #endif */ /* Must be updated for Java 1.6 (now required) */ UNIX_SYS = [shell uname -s]; setenv UNIX_SYS = [UNIX_SYS]; #if [in [UNIX_SYS] SunOS ] FBIN = /usr/local/bin; cp_sep = "\:"; #if [in [MACH_NAME] chepil ] JBIN = /home/wagner/ftp/java/j2sdk1.4.2/bin; #else JBIN = /bin; #endif #endif #if [in [UNIX_SYS] Linux ] FBIN = /usr/local/bin; JBIN = /usr/local/bin; cp_sep = "\:"; #if [in [MACH_NAME] dustbowl.weru.ksu.edu ] FBIN = /usr/bin; JBIN = /usr/bin; #endif #endif FIND = [FBIN]/find; JAR_DIR = "./jar"; DEST_DIR = "../weps1.install/jar"; JC = [JBIN]/javac; JJ = [JBIN]/jar; JCLASS = .class; JAR = .jar; J = .java; JGIF = .gif; #if [in [DEPRECATE] 1] J_FLAG += "-deprecation"; #endif #ifdef LINT #if [in [LINT] 1] #if [in [SDK] 1.6 ] J_FLAG += "-Xlint:unchecked"; #endif #endif /* #if [in [SDK] 1.5 ] J_FLAG += "-source 1.4"; #endif */ #ifndef VERBOSE JJ_VFLAG = ""; /* disable the "jar" verbose option (default) */ #else JJ_VFLAG = "v"; /* enable the "jar" verbose option */ #endif #ifndef RELEASE RELEASE = "Inhouse"; /* Default Release string */ #endif /* Can be changed on cook commandline */ #ifndef DATE DATE = \`date\`; /* Default Date string (get current date) */ #endif /* Can be overridden on cook commandline */ /* setup paths to the required jar files for the target applications */ /* Java Help system */ JHELP = [JAR_DIR]/jh.jar; JHELP_CP = [JHELP]; /* Java Mail system */ JMAIL = [JAR_DIR]/mail.jar; JDIC = [JAR_DIR]/jdic.jar; ACTIVATION = [JAR_DIR]/activation.jar; /* required by mail */ JMAIL_CP = [JMAIL][cp_sep][ACTIVATION][cp_sep][JDIC]; /* Sitraka JCLASSDESKTOPVIEWS jar files */ JCTABLE = [JAR_DIR]/jctable.jar; JCFIELD = [JAR_DIR]/jcfield.jar; JCPAGELAYOUT = [JAR_DIR]/jcpagelayout.jar; JC_CP = [JCTABLE][cp_sep][JCFIELD]; /* Jasper Reports jar files */ JASPER_CP=[JAR_DIR]/ehcache-1.1.jar[cp_sep][JAR_DIR]/iReport.jar[cp_sep][JAR_DIR]/antlr-2.7.5H3.jar[cp_sep][JAR_DIR]/commons-beanutils-1.5.jar[cp_sep][JAR_DIR]/commons-collections-2.1.jar[cp_sep][JAR_DIR]/commons-logging-api-1.0.2.jar[cp_sep][JAR_DIR]/dom4j-1.6.jar[cp_sep][JAR_DIR]/itext-1.3.1.jar[cp_sep][JAR_DIR]/jasperreports-1.2.0.jar[cp_sep][JAR_DIR]/jcmdline-1.0.2.jar[cp_sep][JAR_DIR]/jdt-compiler.jar[cp_sep][JAR_DIR]/jexelapiexporter-jr120.jar[cp_sep][JAR_DIR]/log4j-1.2.8.jar[cp_sep][JAR_DIR]/toniclf.jar[cp_sep][JAR_DIR]/asm-attrs.jar[cp_sep][JAR_DIR]/barbecue-1.1.jar[cp_sep][JAR_DIR]/bsh-1.3.0.jar[cp_sep][JAR_DIR]/cglib-2.1.jar[cp_sep][JAR_DIR]/commons-digester-1.7.jar[cp_sep][JAR_DIR]/commons-logging-1.0.2.jar[cp_sep][JAR_DIR]/hsqldb-1.7.1.jar[cp_sep][JAR_DIR]/jcommon-1.0.0.jar[cp_sep][JAR_DIR]/jr-bsh-compiler.jar[cp_sep][JAR_DIR]/jr-groovy-compiler.jar[cp_sep][JAR_DIR]/jta.jar[cp_sep][JAR_DIR]/jxl.jar[cp_sep][JAR_DIR]/mysql-connector-java-3.1.11-bin.jar[cp_sep][JAR_DIR]/pngencoder.jar[cp_sep][JAR_DIR]/poi-2.0-final-20040126.jar[cp_sep][JAR_DIR]/xml-apis.jar[cp_sep][JAR_DIR]/asm.jar[cp_sep][JAR_DIR]/groovy-all-1.0-beta-10.jar[cp_sep][JAR_DIR]/hibernate3.jar[cp_sep][JAR_DIR]/jfreechart-1.0.0.jar[cp_sep][JAR_DIR]/looks-2.0-rc.jar[cp_sep][JAR_DIR]/tinylaf.jar[cp_sep][JAR_DIR]/xalan.jar; /* XML parser code used in MCREW */ JDOM=[JAR_DIR]/jdom.jar; XERCESIMPL = [JAR_DIR]/xercesImpl.jar; XMLPARSERAPIS = [JAR_DIR]/xmlParserAPIs.jar; XML_CP = [JDOM][cp_sep][XERCESIMPL][cp_sep][XMLPARSERAPIS]; /* used in wind preponderance popup in WEPS */ ABSOLUTELAYOUT = [JAR_DIR]/AbsoluteLayout.jar; /* used in Run name filechooser popup in WEPS */ SWING_LAYOUT = [JAR_DIR]/swing-layout-1.0.jar; LAYOUTS_CP = [ABSOLUTELAYOUT][cp_sep][SWING_LAYOUT]; BASE_CP = [JHELP_CP][cp_sep][JMAIL_CP][cp_sep][JAR_DIR]/glazedlists-1.7.0_java15.jar; WEPS_CP = [BASE_CP][cp_sep][JC_CP][cp_sep][XML_CP][cp_sep][JCPAGELAYOUT][cp_sep][LAYOUTS_CP][cp_sep][JASPER_CP][cp_sep].; MCREW_CP = [BASE_CP][cp_sep][JC_CP][cp_sep][XML_CP][cp_sep][LAYOUTS_CP][cp_sep].; SOILUI_CP = [JDOM][cp_sep][JHELP_CP][cp_sep][JC_CP][cp_sep][SWING_LAYOUT][cp_sep].; WEPSDBVIEWER_CP = [JHELP_CP][cp_sep].; JCCHART3DJ3D = [JAR_DIR]/jcchart3dj3d.jar; VECMATH = [JAR_DIR]/vecmath.jar; JCCHART3DJ2D = ; /* [JAR_DIR]/jcchart3dj2d.jar; */ JCCHART = ; /* [JAR_DIR]/jcchart.jar; */ /* JCDV_CP = [JCTABLE][cp_sep][JCFIELD][cp_sep][JCCHART3DJ3D][cp_sep][cp_sep][VECMATH]; */ JCDV_CP = [JCCHART3DJ3D][cp_sep][cp_sep][VECMATH][cp_sep][JCCHART3DJ2D]; EROSIONGUI_CP = [BASE_CP][cp_sep][JC_CP][cp_sep][JCDV_CP][cp_sep][JDOM][cp_sep][LAYOUTS_CP][cp_sep].; /* all jar files included in jclasspath */ JCLASSPATH= [BASE_CP][cp_sep][JC_CP][cp_sep][XML_CP]; /* util_srcpaths = usda/weru/util usda/weru/util/gui; mcrew_srcpaths = usda/weru/mcrew usda/weru/mcrew/gui; soil_srcpaths = usda/weru/soil usda/weru/soil/gui; weps_srcpaths = usda/weru/weps usda/weru/weps/gui usda/weru/weps/reports usda/weru/weps/reports/gui usda/weru/wmrm usda/weru/wmrm/gui; wepsdbviewer_srcpaths = ex1; graphviewer_srcpaths = usda/weru/misc; util_manifest = [fromto ./%0% %0% [collect [FIND] [util_srcpaths] -maxdepth 1 ! -type d -print] ]; mcrew_manifest = [fromto ./%0% %0% [collect [FIND] [mcrew_srcpaths] [util_srcpaths] -maxdepth 1 ! -type d -print] ]; soil_manifest = [fromto ./%0% %0% [collect [FIND] [soil_srcpaths] [util_srcpaths] -maxdepth 1 ! -type d -print] ]; weps_manifest = [fromto ./%0% %0% [collect [FIND] [weps_srcpaths] [mcrew_srcpaths] [soil_srcpaths] [util_srcpaths] -maxdepth 1 ! -type d -print] ]; wepsdbviewer_manifest = [fromto ./%0% %0% [collect [FIND] [wepsdbviewer_srcpaths] -maxdepth 1 ! -type d -print] ]; mcrew1_src = [match_mask %0%[J] [mcrew_manifest] ]; weps1_src = [match_mask %0%[J] [weps_manifest] ]; wepsdbviewer_src = [match_mask %0%[J] [wepsdbviewer_manifest] ]; */ /* function print "util_manifest list is: "; function print [util_manifest]; function print "mcrew_manifest list is: "; function print [mcrew_manifest]; function print "soil_manifest list is: "; function print [soil_manifest]; function print "weps_manifest list is: "; function print [weps_manifest]; function print "wepsdbviewer_manifest list is: "; function print [wepsdbviewer_manifest]; */ /* function print "mcrew1 src list is:" [mcrew1_src]; function print "weps1 src list is:" [weps1_src]; function print "wepsdbviewer src list is:" [wepsdbviewer_src]; */ ABOUT_FILE = usda/weru/util/Application.java; /************** RECIPE section *********************/ /* recipe to build all "class" files for weps1 */ weps1: { function print "Building WEPS 1.0"; rm -rf "class/usda/*"; set clearstat; if [not [exists [ABOUT_FILE].tmpl ] ] then { /* function print [ABOUT_FILE].tmpl "doesn't exist"; set errok; ls -l [ABOUT_FILE] [ABOUT_FILE].tmpl; */ mv -f [ABOUT_FILE] [ABOUT_FILE].tmpl; set clearstat; cp -f [ABOUT_FILE].tmpl [ABOUT_FILE]; } sed -e s,#WEPSDATE#,\"[DATE]\", -e s,#WEPSRELEASE#,\"[RELEASE]\", -e s,#MCREWDATE#,\"[DATE]\", -e s,#MCREWRELEASE#,\"[RELEASE]\", -e s,#SWEEPDATE#,\"[DATE]\", -e s,#SWEEPRELEASE#,\"[RELEASE]\", -e s,#SOILUIDATE#,\"[DATE]\", -e s,#SOILUIRELEASE#,\"[RELEASE]\", -e s,#WMRMDATE#,\"[DATE]\", -e s,#WMRMRELEASE#,\"[RELEASE]\", [ABOUT_FILE].tmpl > [ABOUT_FILE]; [JC] [J_FLAG] -classpath \"[WEPS_CP]\" -d \"./class\" usda/weru/util/filechooser/gui/renderers/FileChooserDateRenderer.java usda/weru/util/filechooser/gui/renderers/FileChooserFileRenderer.java usda/weru/util/filechooser/gui/renderers/FileChooserListRenderer.java usda/weru/util/filechooser/gui/renderers/FileChooserLongRenderer.java usda/weru/util/filechooser/gui/FileChooserTableFormat.java usda/weru/util/filechooser/gui/ProgressComboBox.java usda/weru/util/filechooser/filetype/AllFileType.java usda/weru/util/filechooser/filetype/ManagementFileType.java usda/weru/util/filechooser/filetype/RunFileType.java usda/weru/util/filechooser/filetype/ProjectFileType.java usda/weru/util/propertydb/PropertyDB.java usda/weru/util/propertydb/PropertyDBListener.java usda/weru/weps/Weps.java ; [JJ] -c[JJ_VFLAG]fm [target][JAR] weps1.mf weps_splash.gif -C class usda/weru; if [exists [ABOUT_FILE].tmpl ] then { mv [ABOUT_FILE].tmpl [ABOUT_FILE]; set clearstat; } else { function print [ABOUT_FILE].tmpl "doesn't exist"; } cp -f [target][JAR] [DEST_DIR]; } /* recipe to build all "class" files for mcrew1 */ mcrew1: { function print "Building MCREW 1.0"; rm -rf "class/usda/*"; set clearstat; if [not [exists [ABOUT_FILE].tmpl ] ] then { mv -f [ABOUT_FILE] [ABOUT_FILE].tmpl; set clearstat; cp -f [ABOUT_FILE].tmpl [ABOUT_FILE]; } sed -e s,#MCREWDATE#,\"[DATE]\", -e s,#MCREWRELEASE#,\"[RELEASE]\", [ABOUT_FILE].tmpl > [ABOUT_FILE]; [JC] [J_FLAG] -classpath \"[MCREW_CP]\" -d \"./class\" usda/weru/util/filechooser/gui/renderers/FileChooserDateRenderer.java usda/weru/util/filechooser/gui/renderers/FileChooserFileRenderer.java usda/weru/util/filechooser/gui/renderers/FileChooserListRenderer.java usda/weru/util/filechooser/gui/renderers/FileChooserLongRenderer.java usda/weru/util/filechooser/gui/FileChooserTableFormat.java usda/weru/util/filechooser/gui/ProgressComboBox.java usda/weru/util/filechooser/filetype/AllFileType.java usda/weru/util/filechooser/filetype/ManagementFileType.java usda/weru/util/filechooser/filetype/RunFileType.java usda/weru/util/filechooser/filetype/ProjectFileType.java usda/weru/util/propertydb/PropertyDB.java usda/weru/util/propertydb/PropertyDBListener.java usda/weru/mcrew/Mcrew.java ; [JJ] -c[JJ_VFLAG]f [target][JAR] -C class usda/weru/mcrew -C class usda/weru/util; if [exists [ABOUT_FILE].tmpl ] then { mv [ABOUT_FILE].tmpl [ABOUT_FILE]; set clearstat; } else { function print [ABOUT_FILE].tmpl "doesn't exist"; } cp -f [target][JAR] [DEST_DIR]; } /* recipe to build all "class" files for soilui1 */ soilui1: { function print "Building SoilUI 1.0"; rm -rf "class/usda/*"; set clearstat; if [not [exists [ABOUT_FILE].tmpl ] ] then { mv -f [ABOUT_FILE] [ABOUT_FILE].tmpl; set clearstat; cp -f [ABOUT_FILE].tmpl [ABOUT_FILE]; } sed -e s,#SOILUIDATE#,\"[DATE]\", -e s,#SOILUIRELEASE#,\"[RELEASE]\", [ABOUT_FILE].tmpl > [ABOUT_FILE]; [JC] [J_FLAG] -classpath \"[SOILUI_CP]\" -d \"./class\" usda/weru/soil/Soil.java ; [JJ] -c[JJ_VFLAG]f [target][JAR] -C class usda/weru/soil -C class usda/weru/util; if [exists [ABOUT_FILE].tmpl ] then { mv [ABOUT_FILE].tmpl [ABOUT_FILE]; set clearstat; } else { function print [ABOUT_FILE].tmpl "doesn't exist"; } cp -f [target][JAR] [DEST_DIR]; } /* recipe to build all "class" files for WEPSDBViewer */ WEPSDBViewer: { function print "Building WEPSDBViewer 1.0"; rm -rf "class/ex1/*"; set clearstat; [JC] [J_FLAG] -classpath \"[WEPSDBVIEWER_CP]\" -d \"./class\" ex1/WEPSDBViewer.java ; [JJ] -c[JJ_VFLAG]mf WEPSDBViewer.mf [target][JAR] -C class ex1; cp -f [target][JAR] [DEST_DIR]; } /* recipe to build all "class" files for ErosionGUI */ ErosionGUI: { function print "Building Standalone Erosion GUI 1.0"; rm -rf "class/usda/*"; set clearstat; if [not [exists [ABOUT_FILE].tmpl ] ] then { mv -f [ABOUT_FILE] [ABOUT_FILE].tmpl; set clearstat; cp -f [ABOUT_FILE].tmpl [ABOUT_FILE]; } sed -e s,#SWEEPDATE#,\"[DATE]\", -e s,#SWEEPRELEASE#,\"[RELEASE]\", [ABOUT_FILE].tmpl > [ABOUT_FILE]; [JC] [J_FLAG] -classpath \"[EROSIONGUI_CP]\" -d \"./class\" usda/weru/erosion/Erosion.java ; [JJ] -c[JJ_VFLAG]f [target][JAR] -C class usda/weru/erosion -C class usda/weru/util -C class usda/weru/weps -C class usda/weru/soil; if [exists [ABOUT_FILE].tmpl ] then { mv [ABOUT_FILE].tmpl [ABOUT_FILE]; set clearstat; } else { function print [ABOUT_FILE].tmpl "doesn't exist"; } cp -f [target][JAR] [DEST_DIR]; } /************** TARGET section *********************/ all: weps1 mcrew1 soilui1 WEPSDBViewer ErosionGUI { } clean: { rm -rf "class/ex1/*"; rm -rf "class/usda/*"; rm -rf "class/usda"; /* ignore error generated from the CVS dir */ set errok; rm -f "class/*"; set clearstat; }