Messages in this thread | | | Date | Fri, 16 Apr 2004 18:54:20 +0200 | From | Sam Ravnborg <> | Subject | Re: compiling external modules |
| |
On Fri, Apr 16, 2004 at 05:41:07PM +0200, Axel Weiss wrote: > On Thursday 15 April 2004 23:59, Sam Ravnborg wrote: > > The general feedback is that it looks like you have > > made it less simple than it ought to be. > > > > You should also consider that you end up with files > > that does not look like ordinary kbuild makefiles. > > Hi, Sam, > > seems you don't like my style putting things into variables ;) > > Here's my latest work, I have tested this Makefile with vanilla-2.6.5, -2.6.6-rc1 and suse-2.4.21-199 (SuSE 9.0). > > Regards, > Axel > > #/*************************************************************************** > # * * > # * This program is free software; you can redistribute it and/or modify * > # * it under the terms of the GNU General Public License as published by * > # * the Free Software Foundation; either version 2 of the License, or * > # * (at your option) any later version. * > # * * > # ***************************************************************************/ > # > # Template Makefile for external module compilation > # > # (C) 2004 by Axel Weiss (aweiss@informatik.hu-berlin.de) > # > > KDIR := /lib/modules/$(shell uname -r)/build > PWD := $(shell pwd) > > K_MAJOR := $(shell uname -r | sed -e "s/\..*//") > K_MINOR := $(shell uname -r | sed -e "s/$(K_MAJOR)\.//" -e "s/\..*//") > K_REV := $(shell uname -r | sed -e "s/$(K_MAJOR)\.$(K_MINOR)\.//" -e "s/-.*//") > > NEED_EXPORT := $(strip $(shell [[ "$(K_MAJOR)" = "2" \ > && "$(K_MINOR)" < "7" \ > && "$(K_REV)" < "6" ]] && echo yes || echo no)) > > NEED_CLEAN := $(strip $(shell [[ "$(K_MAJOR)" = "2" \ > && "$(K_MINOR)" < "7" \ > && "$(K_REV)" < "6" ]] && echo yes))
What about testing for the precense of Rules.make. If present we know it is 2.4, if not it's 2.6.
Something like: KERNEL_26 := $(if $(wildcard $(TOPDIR)/Rules.make),0,1) Much simpler than all the above.
Then your test would look like this:
ifeq ($(KERNEL_26),0)
export-objs := <mod-export-list>
include $(KDIR)/Rules.make
<mod-name>.o: $(<mod-name>-objs) $(Q)$(LD) $(LD_RFLAG) -r -o $@ $(<mod-name>-objs) endif
And later:
> else # ifneq ($(KERNELRELEASE),)
ifeq ($(KERNEL_26),1)
all: $(MAKE) -C $(KDIR) M=$(PWD) %: $(MAKE) -C $(KDIR) M=$(PWD) $@
else
clean: rm -f <mod-name>.ko *.o .*.cmd .*.o.flags <mod-name>.mod.c
Care to try mix something working out of these clues.
Thanks, Sam
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |