[sane-devel] Moving certain backends to separate directories
paddy-hack at member.fsf.org
Mon Aug 12 13:36:20 BST 2019
Povilas Kanapickas writes:
> The genesys backend on the current master comprises of 42 files. I
> propose to move it under `backend/genesys`? The same could eventually be
> done to other larger backends (or maybe even all backends) as the
> `backend` directory is becoming hard to navigate.
I agree that for backends that consist of more than a "handful" of files
it may be convenient/desirable to move them into a directory of their
own below backend/. If doing so, we would need a naming convention and
what you suggest, using the backend's name as the directory name, makes
sense and works fine.
Moving things to a dedicated backend/$BACKEND_NAME directory also makes
it slightly more convenient to limit searches and may make recompiling a
bit more performant (depending on how you integrate the build bits).
One question though, what are you're thoughts on the automake end of
this approach? There are a couple of options here:
- add a SUBDIRS variable to backend/Makefile.am and write a dedicated
Makefile.am for your backend. This approach will not be able to
benefit from any common settings in backend/Makefile.am but keeps it
content focussed on the backend at hand.
- just insert the directory name everywhere in backend/Makefile.am for
files related to your backend. This simply makes that file a tad
more verbose. You'd still be able to benefit from common settings
but backend/Makefile.am would still have to cater to all backends.
- extract the backend/Makefile.am bits for your backend into a snippet
for inclusion in backend/Makefile.am. The snippet could either live
in backend/ or in backend/$BACKEND_NAME. In both cases I would call
it $BACKEND_NAME.am and in both cases it would have to include the
$BACKEND_NAME directory in file names. This approach would be able
to benefit from common settings in backend/Makefile.am and keep focus
on the backend at hand nevertheless.
Hope this helps,
Olaf Meeuwissen, LPIC-2 FSF Associate Member since 2004-01-27
GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13 F43E B8A4 A88A F84A 2DD9
Support Free Software https://my.fsf.org/donate
Join the Free Software Foundation https://my.fsf.org/join
More information about the sane-devel