What is the use of .msg fils in Solaris?

I am new to SOlaris OS, compilation using make files etc.

I have a code base that I am trying to compile under Solaris 2.5 OS. IT has a folder structure, where the root folder contains the master make file which calls each of the make files present in the subfolders to compile the code in that sub folder.

In the make file, I found an entry, which is trying to generate a .msg file from some .lnk files and some other files. for e.g.

 abc.msg : abc.lnk \
 $(SOME_OBJ_FILES) \
  
 lnk30 -q -cr abc.lnk
 hex30 -q -x -map abc.mxp -boot -bootorg SERIAL \
 -e `fgrep "ENTRY POINT SYMBOL" abc.map \
 | sed -e "s/^.*:.*: \(.*\)/\1h/"` abc.out
 load30x -b abc  
 cp abc.msg ../xxx/yyy/abc.msg
 

I am trying to understand the below things. Not getting much help from Internet.

  1. what is an .msg file?
  2. What is a .lnk file? Why is it being used to generate an .msg file through lnk30 command?
  3. What is the purpose of "lnk30" command in compilation? Is it used to link binaries?
  4. What is an ".mxp" file and a ".map" file?
  5. What is a "load" command and what is it's purpose during compilation ?

If there is any resource on internet that explains the above things, please share the URL.

It's no surprise you find nothing on the Internet. All of the above is non standard. I'm afraid you'll have to guess by yourself and reverse engineer what these custom commands do.