Re: [PATCH] Additional patch for toplevel Makefile driver lists

From: Brian Gerst (bgerst@quark.vpplus.com)
Date: Sun Mar 19 2000 - 01:06:01 EST


Linus Torvalds wrote:
>
> On Sat, 18 Mar 2000, Brian Gerst wrote:
> >
> > Linus, this is a resend of the patch to you. I'm not certain it made it
> > to you the first time.
>
> I don't much like this.
>
> It smells too much like working around a real misfeature, the same way
> we're working around the xargs bug.
>
> Maybe the correct thing is to just get rid of .EXPORT_ALL_SYMBOLS and
> instead try to make us better at exporting the real stuff only to the
> places we want them?
>
> Linus

How does this look as a first stab? The magic is in the MAKEFILES
variable. It causes the sub-makes to read in .config before the rest of
the Makefile instead of having to add it to every single file. I do not
know if this is specific to GNU make or not. I tested it with i386, and
I checked the rest of the arches for variables that needed to be
exported.

-- 

Brian Gerst

diff -urN linux-2.3.99p2-5/Makefile linux/Makefile --- linux-2.3.99p2-5/Makefile Sat Mar 18 17:40:35 2000 +++ linux/Makefile Sun Mar 19 00:51:34 2000 @@ -3,9 +3,9 @@ SUBLEVEL = 99 EXTRAVERSION = -pre2 -ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) +KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) -.EXPORT_ALL_VARIABLES: +ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ else if [ -x /bin/bash ]; then echo /bin/bash; \ @@ -20,17 +20,24 @@ CROSS_COMPILE = -AS =$(CROSS_COMPILE)as -LD =$(CROSS_COMPILE)ld -CC =$(CROSS_COMPILE)gcc -CPP =$(CC) -E -AR =$(CROSS_COMPILE)ar -NM =$(CROSS_COMPILE)nm -STRIP =$(CROSS_COMPILE)strip -OBJCOPY =$(CROSS_COMPILE)objcopy -OBJDUMP =$(CROSS_COMPILE)objdump -MAKE =make -GENKSYMS=/sbin/genksyms +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld +CC = $(CROSS_COMPILE)gcc +CPP = $(CC) -E +AR = $(CROSS_COMPILE)ar +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip +OBJCOPY = $(CROSS_COMPILE)objcopy +OBJDUMP = $(CROSS_COMPILE)objdump +MAKE = make +MAKEFILES = $(TOPDIR)/.config +GENKSYMS = /sbin/genksyms +MODFLAGS = -DMODULE +PERL = perl + +export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH CONFIG_SHELL TOPDIR HPATH \ + FINDHPATH HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC CPP AR NM STRIP OBJCOPY OBJDUMP MAKE \ + MAKEFILES GENKSYMS MODFLAGS PERL all: do-it-all @@ -53,20 +60,10 @@ endif # -# ROOT_DEV specifies the default root-device when making the image. -# This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case -# the default of FLOPPY is used by 'build'. -# - -ROOT_DEV = CURRENT - -KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) - -# # INSTALL_PATH specifies where to place the updated kernel and system map # images. Uncomment if you want to place them anywhere other than root. -#INSTALL_PATH=/boot +#export INSTALL_PATH=/boot # # INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory @@ -74,34 +71,47 @@ # makefile but the arguement can be passed to make if needed. # +CPPFLAGS := -D__KERNEL__ -I$(HPATH) + +ifdef CONFIG_SMP +CPPFLAGS += -D__SMP__ +endif + +CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer +AFLAGS := $(CPPFLAGS) + +export CPPFLAGS CFLAGS AFLAGS + +# +# ROOT_DEV specifies the default root-device when making the image. +# This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case +# the default of FLOPPY is used by 'build'. +# This is i386 specific. +# + +export ROOT_DEV = CURRENT + # # If you want to preset the SVGA mode, uncomment the next line and # set SVGA_MODE to whatever number you want. # Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode. # The number is the same as you would ordinarily press at bootup. +# This is i386 specific. # -SVGA_MODE= -DSVGA_MODE=NORMAL_VGA +export SVGA_MODE = -DSVGA_MODE=NORMAL_VGA # # standard CFLAGS # -CPPFLAGS := -D__KERNEL__ -I$(HPATH) - -ifdef CONFIG_SMP -CPPFLAGS += -D__SMP__ -endif - -CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -AFLAGS := $(CPPFLAGS) - # # if you want the RAM disk device, define this to be the # size in blocks. +# This is i386 specific. # -#RAMDISK = -DRAMDISK=512 +#export RAMDISK = -DRAMDISK=512 # Include the make variables (CC, etc...) # @@ -166,6 +176,8 @@ include arch/$(ARCH)/Makefile +export CORE_FILES NETWORKS DRIVERS LIBS HEAD LDFLAGS LIBS LINKFLAGS MAKEBOOT ASFLAGS + # use '-fno-strict-aliasing', but only if the compiler can take it CFLAGS += $(shell if $(CC) -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-fno-strict-aliasing"; fi) @@ -276,7 +288,6 @@ find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs ctags $$CTAGSF -a && \ find $(SUBDIRS) init -name '*.c' | xargs ctags $$CTAGSF -a -MODFLAGS += -DMODULE ifdef CONFIG_MODULES ifdef CONFIG_MODVERSIONS MODFLAGS += -DMODVERSIONS -include $(HPATH)/linux/modversions.h @@ -405,11 +416,12 @@ scripts/mkdep `find $(FINDHPATH) -follow -name \*.h ! -name modversions.h -print` > .hdepend $(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)" -MODVERFILE := - ifdef CONFIG_MODVERSIONS MODVERFILE := $(TOPDIR)/include/linux/modversions.h +else +MODVERFILE := endif +export MODVERFILE depend dep: dep-files $(MODVERFILE) diff -urN linux-2.3.99p2-5/arch/arm/Makefile linux/arch/arm/Makefile --- linux-2.3.99p2-5/arch/arm/Makefile Wed Mar 15 00:25:16 2000 +++ linux/arch/arm/Makefile Sun Mar 19 01:00:55 2000 @@ -14,7 +14,6 @@ OBJCOPY := $(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S CPP := $(CC) -E -PERL := perl LINKFLAGS := -p -X -T arch/arm/vmlinux.lds ARCHCC := $(word 1,$(CC)) diff -urN linux-2.3.99p2-5/arch/sparc/Makefile linux/arch/sparc/Makefile --- linux-2.3.99p2-5/arch/sparc/Makefile Wed Mar 8 20:15:52 2000 +++ linux/arch/sparc/Makefile Sun Mar 19 00:11:45 2000 @@ -49,6 +49,8 @@ CORE_FILES_NO_BTFIX := $(CORE_FILES) CORE_FILES += arch/sparc/boot/btfix.o +export CORE_FILES_NO_BTFIX + archclean: rm -f $(TOPDIR)/vmlinux.aout -$(MAKE) -C arch/sparc/boot clean

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 21:00:26 EST