automake-1.16: Headers

 
 9.2 Header files
 ================
 
 Header files that must be installed are specified by the ‘HEADERS’
 family of variables.  Headers can be installed in ‘includedir’,
 ‘oldincludedir’, ‘pkgincludedir’ or any other directory you may have
 defined (⇒Uniform).  For instance,
 
      include_HEADERS = foo.h bar/bar.h
 
 will install the two files as ‘$(includedir)/foo.h’ and
 ‘$(includedir)/bar.h’.
 
    The ‘nobase_’ prefix is also supported:
 
      nobase_include_HEADERS = foo.h bar/bar.h
 
 will install the two files as ‘$(includedir)/foo.h’ and
 ‘$(includedir)/bar/bar.h’ (⇒Alternative).
 
    Usually, only header files that accompany installed libraries need to
 be installed.  Headers used by programs or convenience libraries are not
 installed.  The ‘noinst_HEADERS’ variable can be used for such headers.
 However, when the header belongs to a single convenience library or
 program, we recommend listing it in the program’s or library’s
 ‘_SOURCES’ variable (⇒Program Sources) instead of in
 ‘noinst_HEADERS’.  This is clearer for the ‘Makefile.am’ reader.
 ‘noinst_HEADERS’ would be the right variable to use in a directory
 containing only headers and no associated library or program.
 
    All header files must be listed somewhere; in a ‘_SOURCES’ variable
 or in a ‘_HEADERS’ variable.  Missing ones will not appear in the
 distribution.
 
    For header files that are built and must not be distributed, use the
 ‘nodist_’ prefix as in ‘nodist_include_HEADERS’ or
 ‘nodist_prog_SOURCES’.  If these generated headers are needed during the
 build, you must also ensure they exist before they are used (⇒
 Sources).