Each macro must have an header which consists of variables to be filled. Falling to define most of these variables leads malfunctions when calling some systems's macros.
In the following is the list of the variables to define
_Prog: Name of the macro.
_Group: Group where belongs the macro.
_Func: Short description of the function performed by the macro.
_Vers: Version number of the macro.
_Date: Year of the creation or last change.
_Auth: Name of the author.
_Usage: Usage line, following Unix command conventions (do not mention the program name).
_Labo: Name and address of the institution, when it is not the CMLA.
You can get examples of such headers by reading the source of some systems's macros (which share the same header conventions) or of some public user's macros given in the distribution.