Description of compile-time switches to defgb (29 Jun 99) (for versions 3.7 and later-see "Incompatibilities w/earlier versions") defgb accepts a number of compile-time switches. Most of them control what functions defgb will perform. One of them, METHOD_NAME, specifies a string that will appear in diagnostic messages. See defgb documentation (currently in the code) for more information. Note that more than one module may have to be compiled using a particular switch. In general, all modules that use the include file defgb.h must be recompiled. Search each source module either for the switch you are setting, or the string "defgb.h". The switches with their default values follow. For descriptions, see the code. Also see the code for how the values "look" to the C code. Specifying values on a command line or in a make file may require extra characters to "protect" quotation marks, apostrophes, etc. METHOD_NAME "defgb" NVAR 250 COMMENTSIZE 2430 For requirements, see code MAXREC 1257 DISPLAY_WIDTH 80 SEPARATOR blank, tab, comma, newline, carriage return ALT_SEPARATOR apostrophe (Relevant to free field data and all script/object input specifications. Also determines the escaped string delimiter. If differing values are needed, specify escaped string delim here and data/script value at runtime) WJSTBL_SEPARATOR binary 1 (Characters prohibited in optional WJSTBL_WHITE_SPACE vertical tab file data) TIMEDATE_SKIPFIELD_CHAR asterisk (See timedate optional file documentation) SIGNIFICANT_CONSECUTIVE_SEPARATORS FALSE (Relevant to free field) SIGNIFICANT_EMBEDDED_SEPARATORS TRUE (Relevant to fixed field) VARLIST_ENDS -2 (See varlistopts optional file doc) COLL_FROM_OBJOBJ_OBJ "/list_level1_specs" " " " READ_COMMANDS TRUE Allow defgb to read scripts ("defexec") READ_OBJECTS TRUE Allow defgb to read JGOFS objects OPTIMIZE_OBJECT_TRANSFER TRUE Only transfer object data outer needs (based on requested display level) DATAFIELDOPTS_OPT 0 TIMEDATE_OPT 0 LATLON_OPT 0 REMOVAL_OPT 0 TRANS_OPT 0 INPWIDTH_OPT 0 DISPWIDTH_OPT 0 VARLIST_OPT 0 VARLISTOPTS_OPT 0 ERR_PREFIX "&x" There are also several debugging switches to trace defgb execution. All can be set at runtime by use of the diagnostics optional file (see optional file documentation for more information). Some may be set at compile time for 2 purposes. One is to define default diagnostic switches so they need not be specified at runtime. The other is to define the switches in effect before the diagnostics optional file is read. DEFAULT_TRACE_LEVEL 0 (See "trace level" in opt file documentation) DEFAULT_ERROR_LEVEL 60 ( "error level" ) DEFAULT_DEBUG_FILE "/dev/stderr" ( "debug sink" ) DEFAULT_ERROR_FILE "/dev/stdout" ( "error sink" ) DEFAULT_OTHER_COMMENT_FILE "/dev/null" ( "other_comment sink" ) DEFAULT_MAXSCRIPTDIAGS 5 ( "maxscriptdiags" ) DEFAULT_INSERTED_MSGS TRUE ( "inserted msgs" ) DEFAULT_INSERTED_MSG_TAG TRUE ( "inserted msg tag" ) DEFAULT_COMMENT_SOURCE_TAG TRUE ( "comment source tag" ) For compatibility with def, the DEBUG and DEBUG0 switches may be defined. If DEBUG is defined, it is the equivalent of specifying a DEFAULT_TRACE_LEVEL of 40. If DEBUG0 is defined, it is the equivalent of setting the iovalstr and iovalreal frequency specifiers to 1 at runtime. ----------- Incompatibilities with earlier versions 3.7 vs 3.6 Diagnostics no longer issued if METHOD_PROTOTYPE specified; a specified switch is ignored. See 3.5 vs 3.4 comment 3.7 vs ? (there's evidence that this incompatibility first occurred around v 3.0 - sorry about that) TOKEN now set in file pointed to by OPTIONS switch in make file MAXCOMMENTLINE obsolete. Instead, set COMMENTLINE in file pointed to by OPTIONS switch in make file 3.6 vs 3.5 None 3.5 vs 3.4 METHOD_PROTOTYPE no longer accepted. See 3.3 vs 3.2 comment 3.4 vs 3.3 None 3.3 vs 3.2 METHOD_PROTOTYPE = DEFGB_URL & ! READ_COMMANDS is no longer diagnosed as error METHOD_PROTOTYPE is being deprecated. All variants of defgb can now be specified at runtime via optional files. DEFGB_URL functionality is available via datafieldopts separator option. If you prefer a compiled version, use SEPARATOR compilation switch. DEFGB_NOHEADER functionality is available via varlistopts varlists_end option. If you prefer a compiled version, use VARLIST_ENDS compilation switch. PROCESS_VARLIST is obsolete. It is the equivalent of specifying VARLIST_ENDS as -2 3.2 vs 3.1 None. 3.1 vs 3.0 None. Implementation of READ_COMMENTS and READ_OBJECTS has moved from mostly runtime to all compile-time. That is, there used to be linker errors for non-existent routines, but at runtime, the code would not call them. Now the calls are not compiled into the program and there should be no errors. 3.0 vs 2.9 DEFAULT_*_SINK replaced by DEFAULT_*_FILE Default for ERR_PREFIX EOD_STRING no longer defined (but never did anything anyway) 2.9 vs 2.8 None 2.8 vs 2.7 DEFAULT_OTHER_COMMENT_SINK (new, but effectively changes default for where this output goes) Default for WJSTBL_SEPARATOR PROCESS_NONLEVEL0_VARLIST replaced by PROCESS_VARLIST 2.7 vs 2.6 METHOD_SWITCH replaced by METHOD_PROTOTYPE MAXLEVELS specification no longer honored EXEC replaced by READ_COMMANDS 2.6 vs 2.5 METHOD_SWITCH=DEFMET switch no longer accepted 2.5 vs 2.4 CREATE_GMT has been superseded in functionality by the timedateparams optional file. The gmtparams optional file has also been superseded in functionality by the timedateparams optional file, so its switch, GMT_OPT, has been changed to TIMEDATE_OPT. See optional file documentation for more info. DATA_FIELD_TRIM may not be specified (capability may be present in a future version; although it worked in 2.4, interaction w/outer made it look as if it didn't) 2.4 vs 2.3 NEGATE_LON has been superseded in functionality by the latlonparams optional file.