X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=Makefile;h=e702b2c6e61c2e452abb982a82c56af049b30e4c;hb=e32b31eae20a9f108304bb3d90fc837fdadd96a5;hp=023674067083a8d64739f50baf11583ebf109951;hpb=af0c89e86e1fe8ea707f9ca0926ceeeeee276505;p=groeck-it87 diff --git a/Makefile b/Makefile index 0236740..e702b2c 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,18 @@ TARGET := $(shell uname -r) # Or specific version #TARGET := 2.6.33.5 KERNEL_MODULES := /lib/modules/$(TARGET) + +ifneq ("","$(wildcard /usr/src/linux-headers-$(TARGET)/*)") +# Ubuntu +KERNEL_BUILD := /usr/src/linux-headers-$(TARGET) +else +ifneq ("","$(wildcard /usr/src/kernels/$(TARGET)/*)") +# Fedora +KERNEL_BUILD := /usr/src/kernels/$(TARGET) +else KERNEL_BUILD := $(KERNEL_MODULES)/build -# KERNEL_BUILD := /usr/src/linux-headers-$(TARGET) +endif +endif #SYSTEM_MAP := $(KERNEL_BUILD)/System.map SYSTEM_MAP := /boot/System.map-$(TARGET) @@ -14,22 +24,47 @@ DRIVER := it87 # Directory below /lib/modules/$(TARGET)/kernel into which to install # the module: MOD_SUBDIR = drivers/hwmon +MODDESTDIR=$(KERNEL_MODULES)/kernel/$(MOD_SUBDIR) -obj-m := $(DRIVER).o +obj-m := $(patsubst %,%.o,$(DRIVER)) +obj-ko := $(patsubst %,%.ko,$(DRIVER)) MAKEFLAGS += --no-print-directory +ifneq ("","$(wildcard $(MODDESTDIR)/*.ko.gz)") +COMPRESS_GZIP := y +endif +ifneq ("","$(wildcard $(MODDESTDIR)/*.ko.xz)") +COMPRESS_XZ := y +endif + .PHONY: all install modules modules_install clean all: modules # Targets for running make directly in the external module directory: -modules clean: +DRIVER_VERSION = $(shell git describe --long) + +version.h: it87.c + @echo "#define IT87_DRIVER_VERSION \"$(DRIVER_VERSION)\"" > version.h + +modules: version.h + @$(MAKE) -C $(KERNEL_BUILD) M=$(CURDIR) $@ + +clean: @$(MAKE) -C $(KERNEL_BUILD) M=$(CURDIR) $@ + rm -f version.h install: modules_install modules_install: - cp $(DRIVER).ko $(KERNEL_MODULES)/kernel/$(MOD_SUBDIR) + mkdir -p $(MODDESTDIR) + cp $(DRIVER).ko $(MODDESTDIR)/ +ifeq ($(COMPRESS_GZIP), y) + @gzip -f $(MODDESTDIR)/$(DRIVER).ko +endif +ifeq ($(COMPRESS_XZ), y) + @xz -f $(MODDESTDIR)/$(DRIVER).ko +endif depmod -a -F $(SYSTEM_MAP) $(TARGET)