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 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))

    .PHONY: all clean


    ifneq ($(KERNELRELEASE),)

    obj-m := <mod-name>.o
    <mod-name>-objs := <mod-object-list>
    ifeq ($(NEED_EXPORT),yes)
    export-objs := <mod-export-list>
    endif # ifeq ($(NEED_EXPORT),yes)

    -include $(KDIR)/Rules.make

    <mod-name>.o: $(<mod-name>-objs)
    $(Q)$(LD) $(LD_RFLAG) -r -o $@ $(<mod-name>-objs)


    else # ifneq ($(KERNELRELEASE),)

    all:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

    clean:
    ifeq ($(NEED_CLEAN),yes)
    rm -f <mod-name>.ko *.o .*.cmd .*.o.flags <mod-name>.mod.c $(KDIR)/.tmp_versions/<mod-name>.mod
    else
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
    endif # ifeq ($(NEED_CLEAN),yes)
    endif # ifneq ($(KERNELRELEASE),)


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