grc65 is a part of cc65's GEOS support. The tool is necessary to generate required and optional resources. A required resource for every GEOS application is the header, that is: an icon, some strings, and some addresses. Optional resources might be menu definitions, other headers (e.g., for data files of an app.), dialog definitions, etc. Without an application's header, GEOS is unable to load and start it.
Currently, grc65 supports only menues and the required header definition, along with support for building applications with VLIR-structured overlays.
grc65 generates output in two formats: C header and ca65 source (.s). That is because the application header data must be in assembly format, while the menu definitions can be translated easily into C. The purpose of the C file is to include it as a header in only one project file. The assembly source should be processed by ca65 and linked to the application (read about the building process).