[sane-devel] Moving certain backends to separate directories
povilas at radix.lt
Tue Aug 13 17:34:44 BST 2019
On 8/12/19 3:36 PM, Olaf Meeuwissen wrote:
> Hi Povilas,
> 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.
It's great that we agree.
> 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.
I think that for the beginning it could probably make sense just to edit
backend/Makefile.am and insert the directory name there. We could
explore more complex options later.
More information about the sane-devel