%%{
    /*
     *  ======== Ident.xdt ========
     *  Generate version string information that gets embedded into
     *  executables.
     */
    var identStart = null;
    var identSrc = null;
    
    if (xdc.om.$name == "cfg") {
        /* get the package containing the executable to be built */
        var myPkg = xdc.om.$homepkg;
    
        /* start looking for ident.c from the package's repo */
        identStart = myPkg.packageRepository;
    }

    var id = xdc.loadCapsule("xdc/release/filters/ident.xs");
    identSrc = id.getTreeIdent(identStart);
%%}
/*
 *  ======== Ident Configuration ========
 */
#define _NAME_ "@(#)*** `environment["user.name"]`"
#define _DATE_ "@(#)*** `Date().toString()`"
#define _CSUM_ "0"

%if (identSrc != null) {
#include <`identSrc`>
%}
%else {
%    print("warning can't find ident.c; version information not included.");
%}


