While GNV with the current updated images allows building open source programs usually with out modifying the Unix style build scripts, it is not simply a matter of just following the Unix build scripts.
You will usually have to add helper files and some environmental variables.
The GNV CC --help command will give some more detail on this on the environment variables and helper files.
The GNV_OPT_DIR tells the directory for the linker to look in for an option file to use for the link. The option file will be gnv<image-name>**.opt.</image-name>
Usually you export GNV_OPT_DIR=. to use the current directory. The option file allows you to add libraries and other object modules to the link. The LD command will ignore the -l and -L library directives if it can not find them. While there is a way to tell the LD command how to map the -l libraries to VMS libraries, I do not recommend using it.
When the CC wrapper finds a gnv<module-name>_first like gnv$conftest.c_first, it will prepend it to the beginning of a module. You can use this to add VMS specific code to a build with out modifying the original source. This can be to redirect the module to wrapper routines, or to supply missing headers, etc.</module-name>
If the CC wrapper does not find the above file, it looks for a gnv$first_include.h and if present prepend it to the beginning of the module. Use this if you have to use the same modifications to all the modules in the directory. Note that only one of the pre-pend options will be used. If the gnv*_first file exists, it will be used instead.
Other environment variables allow you to specify the qualifiers to the VMS compilers and linkers to override the makefile directives. I have needed this in cases where the makefile for a project requested strict standards compliance, yet the source code was not in compliance with the standard.
Using the DCL command SET VERIFY before entering bash will cause the CC wrapper to expose the commands used to build the program. This output is verbose and can break configure scripts. It can be useful to debug a build procedure though.
The DCL fallback capability has been removed from BASH. Any documentation that tells you to set an environment variable to remove it is way out of date.
There is a bug in the VMS librarian and linker that shows up when using the CC/LD and AR wrapper programs. If an object module does not exist, usually because of a compile fail, the Linker and the Librarian may go into a CPU bound loop for a very long time. Rumor has it that it will eventually stop on its own, but I have never had the patience to wait that long. This is a know issue that will hopefully get fixed in future re-writes of the CC/LD and AR wrappers.
The GNV CC --help command will also show many VMS specific options, that in order to use, you will need to either write VMS specific scripts or modify the UNIX scripts. I strongly recommend that you do not use the VMS specific options. It is very likely that those VMS specific command options will be depreciated when the CC wrapper is updated in the future. If you are going to write a VMS specific script or modify a Unix script, then you might as well modify it to directly use the VMS commands instead of using the CC wrapper.