lkml.org 
[lkml]   [2004]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: compiling external modules
    Date
    On Friday 16 April 2004 22:51, Sam Ravnborg wrote:
    > On Fri, Apr 16, 2004 at 10:09:56PM +0200, Axel Weiss wrote:
    > > 2. 2.6 compilation requires root privileges for compilation, 2.4 does
    > > not.
    >
    > I never ever compile as root - so something is broken here.

    Oh, yes! This is the old weird thing! SuSE uses to install kernel sources
    in /usr/src, and I blindly followed :( fixed now :).

    So, finally, we have a nice Makefile suitable for 2.4 and 2.6 (>= 2.6.6) kernels:

    #/***************************************************************************
    # *                                                                         *
    # *   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.                                   *
    # *                                                                         *
    # ***************************************************************************/
    #
    #  (C) 2004 by Axel Weiss (aweiss@informatik.hu-berlin.de)
    #
    #
    #  Template Makefile for external module compilation
    #
    # replace <mod-name> with the prefix of the target module
    # replace <mod-object-list> with the list of object files to be linked together
    # replace <mod-export-list> with all symbol-exporting object filenames
    # additionally specify EXTRA_CFLAGS, if needed
    #

    KDIR      := /lib/modules/$(shell uname -r)/build
    PWD       := $(shell pwd)
    KERNEL_24 := $(if $(wildcard $(KDIR)/Rules.make),1,0)

    obj-m           := <mod-name>.o
    <mod-name>-objs := <mod-object-list>

    .PHONY: all clean modules_install

    ifeq ($(KERNEL_24),0)
    ifeq ($(KERNELRELEASE),)
    all:
    $(MAKE) -C $(KDIR) M=$(PWD)
    clean modules_install:
    $(MAKE) -C $(KDIR) M=$(PWD) $@
    endif # ifeq ($(KERNELRELEASE),)

    else  ### ifeq ($(KERNEL_24),0)

    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
    modules_install:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $@
    clean:
    rm -f *.ko *.o .*.cmd .*.o.flags *.mod.c
    endif # ifneq ($(KERNELRELEASE),)
    endif ### ifeq ($(KERNEL_24),0)
    # end of Makefile Template

    Regards, thanks for your helpful advice and

    have a nice weekend,

    Axel

    -
    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.021 / U:57.060 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site