Re: crc32 cleanups

From: Jeff Garzik (
Date: Fri Oct 12 2001 - 21:36:45 EST

On Sat, 13 Oct 2001, Keith Owens wrote:

> On Fri, 12 Oct 2001 14:37:52 -0500 (CDT),
> Jeff Garzik <> wrote:
> >(linux/lib/Makefile)
> >obj-$(CONFIG_TULIP) += crc32.o
> >obj-$(CONFIG_NATSEMI) += crc32.o
> >obj-$(CONFIG_DMFE) += crc32.o
> >obj-$(CONFIG_ANOTHERDRIVER) += crc32.o
> It is better to define CONFIG_CRC32 and have the files set
> CONFIG_CRC32 for selected drivers. That avoids the problem of lots of
> drivers wanting to patch the same Makefile, instead the selection of
> crc32 is kept with the driver selection.
> lib/Makefile
> obj-$(CONFIG_CRC32) += crc32.o
> drivers/foo/
> if [ "$CONFIG_FOO" = "y" ]; then
> define_bool CONFIG_CRC32 y
> fi
> It is even cleaner in CML2.
> require FOO implies CRC32=y

No, because that doesn't take care of the module case (CONFIG_CRC32=m).
Note how things get a whole lot uglier when you remember that. Now
consider when CONFIG_FOO=m (implies CONFIG_CRC32=m), and then later on
in the files, CONFIG_BAR=y (which means CONFIG_CRC32 much be
switched from 'm' to 'y').

> In general it is a bad idea to handle selections in the Makefile, that
> is what CML is for. Makefiles should just build the code based on CML
> output, not try to decide what to build.

Um, whatever. That's the whole purpose of

        obj-$(CONFIG_FOO) += ...

it allows the makefile to automagically decide whether or not to build
that particular module into the kernel or separately with -DMODULE. And
that decision occurs at build time, after all the 'make config' steps
have occurred, and we know exactly what modules to build.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Mon Oct 15 2001 - 21:00:47 EST