On Thu, Dec 12, 2002 at 01:56:37PM +1100, Keith Owens wrote: > On Wed, 11 Dec 2002 18:20:30 +0100 (MET), > "Maciej W. Rozycki" <macro@ds2.pg.gda.pl> wrote: > >On Wed, 11 Dec 2002, Jun Sun wrote: > > > >> > > This is because arch/mips/lib/Makefile says: > >> > > > >> > > obj-$(CONFIG_IDE) += ide-std.o ide-no.o > >> > [...] > >> > > 3) use some smart trick in Makefile so that we include those > >> > > two files only if CONFIG_IDE is 'y' or 'm'. (How?) > >> > > >> > obj-$(CONFIG_IDE_MODULE) > >> > >> This does not work. Apparently, CONFIG_IDE_MODULE is not created > >> for makefile part. > > > > Indeed -- my fault. Variables such as $(CONFIG_IDE) are four-state and > >for the module case they are simply set to "m". But then you can use > >"ifeq ($(CONFIG_IDE),m)". Another approach is to invent an additional > >variable automatically set to "y" whenever CONFIG_IDE is enabled. > > obj-$(subst m,y,$(CONFIG_IDE)) += ide-std.o ide-no.o > > ide-std.o ide-no.o are built in if CONFIG_IDE is m or y. > This is the most clean solution so far. Anybody would object this change? See the attached patch. Jun
diff -Nru linux/arch/mips/lib/Makefile.orig linux/arch/mips/lib/Makefile --- linux/arch/mips/lib/Makefile.orig Sat Sep 28 15:28:38 2002 +++ linux/arch/mips/lib/Makefile Mon Dec 16 18:13:43 2002 @@ -18,7 +18,7 @@ endif obj-$(CONFIG_BLK_DEV_FD) += floppy-no.o floppy-std.o -obj-$(CONFIG_IDE) += ide-std.o ide-no.o +obj-$(subst m,y,$(CONFIG_IDE)) += ide-std.o ide-no.o obj-$(CONFIG_PC_KEYB) += kbd-std.o kbd-no.o include $(TOPDIR)/Rules.make diff -Nru linux/arch/mips64/lib/Makefile.orig linux/arch/mips64/lib/Makefile --- linux/arch/mips64/lib/Makefile.orig Sat Sep 28 15:28:38 2002 +++ linux/arch/mips64/lib/Makefile Mon Dec 16 18:17:20 2002 @@ -11,7 +11,7 @@ strnlen_user.o watch.o obj-$(CONFIG_BLK_DEV_FD) += floppy-no.o floppy-std.o -obj-$(CONFIG_IDE) += ide-std.o ide-no.o +obj-$(subst m,y,$(CONFIG_IDE)) += ide-std.o ide-no.o obj-$(CONFIG_PC_KEYB) += kbd-std.o kbd-no.o include $(TOPDIR)/Rules.make