/* 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 "weps.install" jar directory (../weps.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 = "\;"; #if [in [MACH_NAME] okie] #if [in [SDK] 1.6 ] JBIN = /cygdrive/c/Program\\ Files/Java/jdk1.6.0_03/bin; #else JBIN = /cygdrive/c/Program\\ Files/Java/jdk1.6.0_03/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 = "../weps.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]/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; /* Logging jar file to eventually be used in all code for logging purposes */ LOGGER=[JAR_DIR]/log4j.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[cp_sep][LOGGER][cp_sep][JAR_DIR]/truezip-6.jar[cp_sep][JAR_DIR]/beansbinding-1.2.1.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 = [BASE_CP][cp_sep][JDOM][cp_sep][JHELP_CP][cp_sep][JC_CP][cp_sep][SWING_LAYOUT][cp_sep].; WEPSDBVIEWER_CP = [JHELP_CP][cp_sep][JAR_DIR]/truezip-6.jar[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 = src/usda/weru/util src/usda/weru/util/gui; mcrew_srcpaths = src/usda/weru/mcrew src/usda/weru/mcrew/gui; soil_srcpaths = src/usda/weru/soil src/usda/weru/soil/gui; weps_srcpaths = src/usda/weru/weps src/usda/weru/weps/gui src/usda/weru/weps/reports src/usda/weru/weps/reports/query src/usda/weru/weps/reports/gui src/usda/weru/wmrm src/usda/weru/wmrm/gui; wepsdbviewer_srcpaths = ex1; graphviewer_srcpaths = src/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] [util_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 = src/usda/weru/util/Application.java; /************** RECIPE section *********************/ /* recipe to build all "class" files for weps1 */ weps1: { function print "Building WEPS 1.0"; rm -rf "build/classes/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]\" -sourcepath \"\./src\" -d \"./build/classes\" src/usda/weru/weps/Weps.java src/usda/weru/weps/reports/query/WepsDriver.java ; [JJ] -c[JJ_VFLAG]fm [target][JAR] weps1.mf weps_splash.gif -C src jasperreports.properties -C src build.properties -C src usda/weru/resources -C src META-INF/services -C build/classes 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 "build/classes/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]\" -sourcepath \"\./src\" -d \"./build/classes\" src/usda/weru/mcrew/Mcrew.java ; [JJ] -c[JJ_VFLAG]f [target][JAR] -C src usda/weru/resources -C src build.properties -C build/classes usda/weru/mcrew -C build/classes 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 "build/classes/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]\" -sourcepath \"\./src\" -d \"./build/classes\" src/usda/weru/soil/Soil.java ; [JJ] -c[JJ_VFLAG]f [target][JAR] -C src usda/weru/resources -C src build.properties -C build/classes usda/weru/soil -C build/classes 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 "build/classes/ex1/*"; rm -rf "build/classes/usda/weru/util/Application.java"; 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,#WEPSDBVIEWERDATE#,\"[DATE]\", -e s,#WEPSDBVIEWERRELEASE#,\"[RELEASE]\", [ABOUT_FILE].tmpl > [ABOUT_FILE]; [JC] [J_FLAG] -classpath \"[WEPSDBVIEWER_CP]\" -sourcepath \"\./src\" -d \"./build/classes\" src/ex1/WEPSDBViewer.java ; [JJ] -c[JJ_VFLAG]mf WEPSDBViewer.mf [target][JAR] -C src usda/weru/resources -C src build.properties -C build/classes ex1 -C build/classes usda/weru/util; /* [JJ] -u[JJ_VFLAG]f [target][JAR] -C build/classes src/usda/weru/util/Application.class; */ 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 ErosionGUI */ ErosionGUI: { function print "Building Standalone Erosion GUI 1.0"; rm -rf "build/classes/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]\" -sourcepath \"\./src\" -d \"./build/classes\" src/usda/weru/erosion/Erosion.java ; [JJ] -c[JJ_VFLAG]f [target][JAR] -C src usda/weru/resources -C src build.properties -C build/classes usda/weru/erosion -C build/classes usda/weru/util -C build/classes usda/weru/weps -C build/classes 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 "build/classes/ex1/*"; rm -rf "build/classes/usda/*"; rm -rf "build/classes/usda"; /* ignore error generated from the CVS dir */ set errok; rm -f "build/classes/*"; set clearstat; }