From e3b60c6f16928abba6b96645007080fc8fb3bccb Mon Sep 17 00:00:00 2001 From: hartkopp Date: Sat, 21 Jul 2007 17:53:09 +0000 Subject: [PATCH] Added new external build system from Marc Kleine-Budde, see: https://lists.berlios.de/pipermail/socketcan-core/2007-July/000539.html Good job! Many thanks. git-svn-id: svn://svn.berlios.de//socketcan/trunk@438 030b6a49-0b11-0410-94ab-b0dab22257f2 --- kernel/2.6/Makefile | 57 ++++++--------------- kernel/2.6/Makefile.common | 15 ++++++ kernel/2.6/drivers/net/can/Makefile | 53 ++++--------------- kernel/2.6/drivers/net/can/i82527/Makefile | 19 +++---- kernel/2.6/drivers/net/can/sja1000/Makefile | 20 +++----- kernel/2.6/net/can/Makefile | 37 ++++--------- 6 files changed, 62 insertions(+), 139 deletions(-) create mode 100644 kernel/2.6/Makefile.common diff --git a/kernel/2.6/Makefile b/kernel/2.6/Makefile index def84f7..a59fe06 100644 --- a/kernel/2.6/Makefile +++ b/kernel/2.6/Makefile @@ -1,48 +1,23 @@ -TOPDIR = $(shell pwd) -KERNELVER = $(shell uname -r) -KERNELDIR = /lib/modules/$(KERNELVER)/build -MOD_DIR = /lib/modules/$(KERNELVER)/kernel +ifeq ($(KERNELRELEASE),) -SUBDIRS = \ - $(TOPDIR)/net/can \ - $(TOPDIR)/drivers/net/can +KERNELDIR := /lib/modules/$(shell uname -r)/build +PWD := $(shell pwd) +TOPDIR := $(PWD) -# -# targetinfo -# -# Print out the targetinfo line on the terminal -# -# $1: name of the target to be printed out -# -targetinfo = \ - echo; \ - TG=`echo "$(1)" | sed -e "s,$(TOPDIR)/,,g"`; \ - LINE=`echo target: $$TG |sed -e "s/./-/g"`; \ - echo $$LINE; \ - echo target: $$TG; \ - echo $$LINE; \ - echo +export CONFIG_CAN_VCAN=m +export CONFIG_CAN_SJA1000=m +export CONFIG_CAN_I82527=m -.PHONY: net drivers +export CONFIG_CAN=m +export CONFIG_CAN_RAW=m +export CONFIG_CAN_BCM=m -all: net drivers +modules modules_install clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ TOPDIR=$(TOPDIR) -net: - @$(call targetinfo, "running make in net/can") - cd net/can && make KERNELDIR=$(KERNELDIR) +else -drivers: - @$(call targetinfo, "running make in drivers/net/can") - cd drivers/net/can && make KERNELDIR=$(KERNELDIR) - -install: net drivers - find -name \*.ko -exec install -v -D {} $(MOD_DIR)/{} \; - depmod $(KERNELVER) - -clean: - @for dir in $(SUBDIRS); do \ - $(call targetinfo, "cleaning in $$dir"); \ - cd $$dir; \ - make clean KERNELDIR=$(KERNELDIR); \ - done +obj-m += drivers/net/can/ +obj-m += net/can/ +endif diff --git a/kernel/2.6/Makefile.common b/kernel/2.6/Makefile.common new file mode 100644 index 0000000..6bd69a2 --- /dev/null +++ b/kernel/2.6/Makefile.common @@ -0,0 +1,15 @@ +ifneq ($(KBUILD_EXTMOD),) + +EXTRA_CFLAGS += \ + -I$(TOPDIR)/include \ + -I$(TOPDIR)/drivers/net/can/hal \ + \ + -DETH_P_CAN=0x000C \ + -DARPHRD_CAN=280 \ + -DPF_CAN=29 \ + -DAF_CAN=PF_CAN \ + \ + -DCONFIG_CAN_RAW_USER \ + -DCONFIG_CAN_BCM_USER + +endif diff --git a/kernel/2.6/drivers/net/can/Makefile b/kernel/2.6/drivers/net/can/Makefile index 09ec89d..3f696b2 100644 --- a/kernel/2.6/drivers/net/can/Makefile +++ b/kernel/2.6/drivers/net/can/Makefile @@ -5,55 +5,20 @@ ifeq ($(KERNELRELEASE),) -ifdef $(CONFIG_CAN_SLCAN) -SLCAN_MOD = slcan -else -SLCAN_MOD = -endif - -ifdef $(CONFIG_CAN_MSCAN) -MSCAN_MOD = mscan -else -MSCAN_MOD = -endif - -KERNELDIR = /usr/src/linux -PWD = $(shell pwd) - -all: vcan $(SLCAN_MOD) sja1000 i82527 $(MSCAN_MOD) +KERNELDIR := /lib/modules/$(shell uname -r)/build +PWD := $(shell pwd) +TOPDIR := $(PWD)/../../.. -vcan: - $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_CAN_VCAN=m modules +export CONFIG_CAN_VCAN=m +export CONFIG_CAN_SJA1000=m +export CONFIG_CAN_I82527=m -slcan: - $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_CAN_SLCAN=$(CONFIG_CAN_SLCAN) modules - -sja1000: - $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_CAN_SJA1000=m modules - -i82527: - $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_CAN_I82527=m modules - -mscan: - $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_CAN_MSCAN=$(CONFIG_CAN_MSCAN) modules - -clean: - $(MAKE) -C $(KERNELDIR) M=$(PWD) clean - rm -f Module.symvers - -.PHONY: clean all vcan slcan sja1000 i82527 mscan +modules modules_install clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ TOPDIR=$(TOPDIR) else -#CPPFLAGS += -Idrivers/net -Inet -#AFLAGS += -Idrivers/net -Inet -#CFLAGS += -Idrivers/net -Inet - -ifneq ($(KBUILD_EXTMOD),) -EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/../../../include \ - -DETH_P_CAN=0x000C \ - -DARPHRD_CAN=280 -endif +include $(TOPDIR)/Makefile.common obj-$(CONFIG_CAN_VCAN) += vcan.o obj-$(CONFIG_CAN_SLCAN) += slcan.o diff --git a/kernel/2.6/drivers/net/can/i82527/Makefile b/kernel/2.6/drivers/net/can/i82527/Makefile index 43f18ac..6a29547 100644 --- a/kernel/2.6/drivers/net/can/i82527/Makefile +++ b/kernel/2.6/drivers/net/can/i82527/Makefile @@ -42,23 +42,16 @@ ifeq ($(KERNELRELEASE),) -KERNELDIR = /usr/src/linux -PWD = $(shell pwd) +KERNELDIR := /lib/modules/$(shell uname -r)/build +PWD := $(shell pwd) +TOPDIR := $(PWD)/../../../.. -default: - $(MAKE) -C $(KERNELDIR) M=$(PWD) modules - -clean: - $(MAKE) -C $(KERNELDIR) M=$(PWD) clean +modules modules_install clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ TOPDIR=$(TOPDIR) else -ifneq ($(KBUILD_EXTMOD),) -EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/../../../include \ - -I$(KBUILD_EXTMOD)/hal \ - -DETH_P_CAN=0x000C \ - -DARPHRD_CAN=280 -endif +include $(TOPDIR)/Makefile.common obj-m := i82527-pc7io.o i82527-iomem.o i82527-esdio.o diff --git a/kernel/2.6/drivers/net/can/sja1000/Makefile b/kernel/2.6/drivers/net/can/sja1000/Makefile index 88b59aa..7106d3f 100644 --- a/kernel/2.6/drivers/net/can/sja1000/Makefile +++ b/kernel/2.6/drivers/net/can/sja1000/Makefile @@ -40,25 +40,19 @@ # # Send feedback to -ifeq ($(KERNELRELEASE),) -KERNELDIR = /usr/src/linux -PWD = $(shell pwd) +ifeq ($(KERNELRELEASE),) -default: - $(MAKE) -C $(KERNELDIR) M=$(PWD) modules +KERNELDIR := /lib/modules/$(shell uname -r)/build +PWD := $(shell pwd) +TOPDIR := $(PWD)/../../../.. -clean: - $(MAKE) -C $(KERNELDIR) M=$(PWD) clean +modules modules_install clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ TOPDIR=$(TOPDIR) else -ifneq ($(KBUILD_EXTMOD),) -EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/../../../include \ - -I$(KBUILD_EXTMOD)/hal \ - -DETH_P_CAN=0x000C \ - -DARPHRD_CAN=280 -endif +include $(TOPDIR)/Makefile.common obj-m := sja1000-io.o sja1000-iomem.o sja1000-iomux.o sja1000-gw2.o sja1000-esdio.o sja1000-c200.o diff --git a/kernel/2.6/net/can/Makefile b/kernel/2.6/net/can/Makefile index bb0aa02..ab90871 100644 --- a/kernel/2.6/net/can/Makefile +++ b/kernel/2.6/net/can/Makefile @@ -40,41 +40,22 @@ # # Send feedback to - - ifeq ($(KERNELRELEASE),) -KERNELDIR = /usr/src/linux -PWD = $(shell pwd) - -all: can raw bcm - -can: - $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_CAN=m modules +KERNELDIR := /lib/modules/$(shell uname -r)/build +PWD := $(shell pwd) +TOPDIR := $(PWD)/../.. -raw: can - $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_CAN=m CONFIG_CAN_RAW=m modules +modules modules_install clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ TOPDIR=$(TOPDIR) -bcm: can - $(MAKE) -C $(KERNELDIR) M=$(PWD) CONFIG_CAN=m CONFIG_CAN_BCM=m modules - -clean: - $(MAKE) -C $(KERNELDIR) M=$(PWD) clean - rm -f Module.symvers - -.PHONY: clean all can raw bcm +export CONFIG_CAN=m +export CONFIG_CAN_RAW=m +export CONFIG_CAN_BCM=m else -ifneq ($(KBUILD_EXTMOD),) -EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/../../include \ - -DETH_P_CAN=0x000C \ - -DPF_CAN=29 \ - -DAF_CAN=PF_CAN \ - -DCONFIG_CAN_RAW_USER \ - -DCONFIG_CAN_BCM_USER \ - -DARPHRD_CAN=280 -endif +include $(TOPDIR)/Makefile.common obj-$(CONFIG_CAN) += can.o can-objs := af_can.o proc.o -- 2.39.2