Maybe this has already been answered, but I couldn't find this exact question.
[...]
INSTALL_LOCATION=/opt/test
My expectation was that I would be able to do "make" to compile everything and
"make install" to install the bin, lib, etc, folders to where INSTALL_LOCATION points to,
but that was not the case.
In the EPICS build system, the default target for make is to build and install the module.
For that, the user running make needs to have write access to the INSTALL_LOCATION. (And to the parent if INSTALL_LOCATION does not exist.)
The EPICS build system will not remove the INSTALL_LOCATION itself, so creating that directory and changing the ownership (and/or access bits) is a one-time thing.
FINAL_LOCATION is for cases where the build needs be installed in a location that is not the final one. E.g., when building system packages, where the build is installed in a temporary place but the resulting system package will install it in a different location.
Cheers,
~Ralph