lkml.org 
[lkml]   [2004]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: compiling external modules
On Fri, Apr 16, 2004 at 10:09:56PM +0200, Axel Weiss wrote:
>
> Sure, but compilation with 2.6.5 would fail again, missing export-objs.
export-objs has not been needed by 2.6.*, only during earlier 2.5.*

> If I got you right, we should simplify things so that 2.6 means >= 2.6.6?
Yup.

> # Template Makefile for external module compilation
>
> KDIR := /lib/modules/$(shell uname -r)/build
> PWD := $(shell pwd)
> KERNEL_24 := $(if $(wildcard $(KDIR)/Rules.make),1,0)
>


> ifneq ($(KERNELRELEASE),)
>
> obj-m := <mod-name>.o
> <mod-name>-objs := <mod-object-list>
>
> endif # ifneq ($(KERNELRELEASE),)
I do not see why you need to wrap this in KERNELRELEASE.


> .PHONY: all clean
>
> ifeq ($(KERNEL_24),1)

Hide the backward compatibility stuff in the bottom (= 2.4 stuff).
Just MO.

> ifneq ($(KERNELRELEASE),)
>
> export-objs := <mod-export-list>
>
> include $(KDIR)/Rules.make
> adc64_bm.o: $(<mod-name>-objs)
> $(Q)$(LD) $(LD_RFLAG) -r -o $@ $(<mod-name>-objs)
> else # ifneq ($(KERNELRELEASE),)
> all:
> $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
> clean:
> rm -f *.ko *.o .*.cmd .*.o.flags *.mod.c
> endif # ifneq ($(KERNELRELEASE),)
>
> else #################### ifeq ($(KERNEL_24),1)
>
> ifeq ($(KERNELRELEASE),)
> all:
> $(MAKE) -C $(KDIR) M=$(PWD)
> clean:
Here you should add modules_install also.

> $(MAKE) -C $(KDIR) M=$(PWD) $@
> endif # ifeq ($(KERNELRELEASE),)
>
> endif #################### ifeq ($(KERNEL_24),1)
>
> # end of Makefile Template
>
> I reordered the cases a bit so that
> 1. kernel-version dependend branches stay together
> 2. <mod-object-list> needs only be written once
>
> Now everything fits on a single screen-page :)
Good!

>
> Sam, please note two things:
> 1. the clean rule must be explicit to be recognized (GNU Make 3.80).
I had some problems with this, but I do not remeber how i solved it.


> 2. 2.6 compilation requires root privileges for compilation, 2.4 does not.
I never ever compile as root - so something is broken here.

> Can we relax some file accesses (e.g. $(KDIR)/.__modpost.cmd and the
> local .tmp_versions) to allow non-privileged users to compile external
> modules and to be able to make clean?
I do not have a file named .__modpost.cmd???
And root should not be required??

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/

\
 
 \ /
  Last update: 2005-03-22 14:02    [W:0.121 / U:0.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site