If you are going to be doing substantial additions to SMART, you may want to keep the actual distribution unchanged and add all of your local procedures in a liblocal directory hierarchy that mirrors the .../src hierarchy. (In fact Version 11.0 is distributed with this hierarchy set up.) Exactly the same paradigm as above is used to add procedures in liblocal, except files will be changed in src/liblocal/... Procedures in the hierarchy would be referred to in the same fashion, but with a "local" prepended, eg, local.index.preparse.myproc