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    [from the cache]
©2003-2011 Jasper Spaans