[sane-devel] Moving certain backends to separate directories

Olaf Meeuwissen paddy-hack at member.fsf.org
Sat Aug 17 09:11:17 BST 2019

Hi Povilas,

Povilas Kanapickas writes:

> Hi Olaf,
> On 8/12/19 3:36 PM, Olaf Meeuwissen wrote:
>> Hi Povilas,
>> Povilas Kanapickas writes:
>>> Hi,
>>> 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.

That sounds okay.  If we want to explore my last suggestion, you'd have
to add the directory names anyway.

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 mailing list