I have a data directory which I would like automake to generate install and uninstall targets for. Essentially, I just want to copy this directory verbatim to the DATA directory, Normally, I might list all the files individually, like
dist_whatever_DATA=dir/subdir/filea ...
But the problem arises when my directory structure looks like this
*root
*subdir
*~10 files
*subdir
*~10 files
*subdir
*~700 files
*subdir
...
~20 subdirs
I just cannot list all 1000+ files included as part of my Makefile.am. That would be ridiculous.
I need to preserve the directory structure as well. I should note that this data is not generated at all by the build process, and is actually largely short audio recordings. So it's not like I would want automake to "check" that every file I want to install has actually been created, as they're either there or not, and whatever file is there, I know I want it to be installed, and whatever file is not, should not be installed. I know that this is the justification used in other places to not do wildcard instsalls, but all the possible reasons don't apply here.
Best Answer
I would use a script to generate a
Makefile
fragment that lists all the files:and then include this
subfiles.mk
from your mainMakefile.am
:A second option is to
EXTRA_DIST = subdir
, and then to write custominstall-data-local
anduninstall-local
rules.The problem here is that
EXTRA_DIST = subdir
will distributes all files insubdir/
, including backup files, configuration files (e.g. from your VCS), and other things you would not want to distribute.Using a script as above let you filter the files you really want to distribute.