From c81440d21a520f07e094f68c84dcd83b08491958 Mon Sep 17 00:00:00 2001 From: Frodo Looijaard Date: Wed, 22 Sep 1999 23:11:52 +0000 Subject: [PATCH] Makefile changes for better behaviour with already patched kernels. The Makefile now examine $(LINUX)/.config to see what modules need to be compiled. It compiles only those modules which were either not configured in at all, or were built as modules (ie. drivers which are built-in in the kernel are not built, as they can not be overruled). The above is still potentially dangerous, if we break the interface of our modules. Still, it is much better than it was. C git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@575 7894878c-1315-0410-8ee3-d5d059ff63e0 --- Makefile | 6 ++---- kernel/Module.mk | 5 ++++- kernel/busses/Module.mk | 25 ++++++++++++++++++------- kernel/chips/Module.mk | 39 ++++++++++++++++++++++++++++++++------- kernel/include/Module.mk | 9 +++++++-- 5 files changed, 63 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index ed93510a..41c67318 100644 --- a/Makefile +++ b/Makefile @@ -32,11 +32,9 @@ LINUX=/usr/src/linux LINUX_HEADERS=$(LINUX)/include # Determine whether we need to compile the kernel modules, or only the -# user-space utilities. -COMPILE_KERNEL := $(shell if test -d $(LINUX)/drivers/sensors ; \ - then echo 0; else echo 1; fi) +# user-space utilities. By default, the kernel modules are compiled. #COMPILE_KERNEL := 0 -#COMPILE_KERNEL := 1 +COMPILE_KERNEL := 1 # If you have installed the i2c header at some other place (like # /usr/local/include/linux), set that directory here. Please check this out diff --git a/kernel/Module.mk b/kernel/Module.mk index d3dcf82e..dd3d66dd 100644 --- a/kernel/Module.mk +++ b/kernel/Module.mk @@ -22,7 +22,10 @@ MODULE_DIR := kernel # Regrettably, even 'simply expanded variables' will not put their currently # defined value verbatim into the command-list of rules... -KERNELTARGETS := $(MODULE_DIR)/sensors.o +KERNELTARGETS := +ifneq ($(shell if grep -q '^CONFIG_SENSORS=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELTARGETS += $(MODULE_DIR)/sensors.o +endif # Include all dependency files INCLUDEFILES += $(KERNELTARGETS:.o=.d) diff --git a/kernel/busses/Module.mk b/kernel/busses/Module.mk index af3b7457..39f4b680 100644 --- a/kernel/busses/Module.mk +++ b/kernel/busses/Module.mk @@ -22,12 +22,24 @@ MODULE_DIR := kernel/busses # Regrettably, even 'simply expanded variables' will not put their currently # defined value verbatim into the command-list of rules... -KERNELBUSSESTARGETS := $(MODULE_DIR)/i2c-piix4.o $(MODULE_DIR)/i2c-isa.o \ - $(MODULE_DIR)/i2c-via.o $(MODULE_DIR)/i2c-ali15x3.o \ - $(MODULE_DIR)/i2c-hydra.o $(MODULE_DIR)/i2c-voodoo3.o \ - $(MODULE_DIR)/i2c-viapro.o $(MODULE_DIR)/i2c-i801.o - -KERNELBUSSESOLD := bit-via.o bit-mb.o isa.o piix4.o +KERNELBUSSESTARGETS := $(MODULE_DIR)/i2c-i801.o \ + $(MODULE_DIR)/i2c-viapro.o \ + $(MODULE_DIR)/i2c-voodoo3.o +ifneq ($(shell if grep -q '^CONFIG_I2C_ALI15X3=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELBUSSESTARGETS += $(MODULE_DIR)/i2c-ali15x3.o +endif +ifneq ($(shell if grep -q '^CONFIG_I2C_HYDRA=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELBUSSESTARGETS += $(MODULE_DIR)/i2c-hydra.o +endif +ifneq ($(shell if grep -q '^CONFIG_I2C_ISA=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELBUSSESTARGETS += $(MODULE_DIR)/i2c-isa.o +endif +ifneq ($(shell if grep -q '^CONFIG_I2C_PIIX4=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELBUSSESTARGETS += $(MODULE_DIR)/i2c-piix4.o +endif +ifneq ($(shell if grep -q '^CONFIG_I2C_VIA=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELBUSSESTARGETS += $(MODULE_DIR)/i2c-via.o +endif # Include all dependency files INCLUDEFILES += $(KERNELBUSSESTARGETS:.o=.d) @@ -36,7 +48,6 @@ all-kernel-busses: $(KERNELBUSSESTARGETS) all :: all-kernel-busses install-kernel-busses: all-kernel-busses - $(RM) $(addprefix $(MODDIR)/,$(KERNELBUSSESOLD)) $(MKDIR) $(MODDIR) $(INSTALL) -o root -g root -m 644 $(KERNELBUSSESTARGETS) $(MODDIR) install :: install-kernel-busses diff --git a/kernel/chips/Module.mk b/kernel/chips/Module.mk index 659914f5..6552753b 100644 --- a/kernel/chips/Module.mk +++ b/kernel/chips/Module.mk @@ -22,14 +22,39 @@ MODULE_DIR := kernel/chips # Regrettably, even 'simply expanded variables' will not put their currently # defined value verbatim into the command-list of rules... -KERNELCHIPSTARGETS := $(MODULE_DIR)/adm1021.o $(MODULE_DIR)/adm9240.o \ - $(MODULE_DIR)/eeprom.o $(MODULE_DIR)/gl518sm.o \ - $(MODULE_DIR)/lm75.o $(MODULE_DIR)/lm78.o \ - $(MODULE_DIR)/lm80.o $(MODULE_DIR)/ltc1710.o \ - $(MODULE_DIR)/w83781d.o $(MODULE_DIR)/sis5595.o \ - $(MODULE_DIR)/maxilife.o $(MODULE_DIR)/bt869.o \ - $(MODULE_DIR)/matorb.o $(MODULE_DIR)/gl520sm.o \ +KERNELCHIPSTARGETS := $(MODULE_DIR)/bt869.o $(MODULE_DIR)/gl520sm.o \ + $(MODULE_DIR)/matorb.o $(MODULE_DIR)/maxilife.o \ $(MODULE_DIR)/thmc50.o +ifneq ($(shell if grep -q '^CONFIG_SENSORS_ADM1021=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/adm1021.o +endif +ifneq ($(shell if grep -q '^CONFIG_SENSORS_ADM9240=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/adm9240.o +endif +ifneq ($(shell if grep -q '^CONFIG_SENSORS_EEPROM=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/eeprom.o +endif +ifneq ($(shell if grep -q '^CONFIG_SENSORS_GL518SM=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/gl518sm.o +endif +ifneq ($(shell if grep -q '^CONFIG_SENSORS_LM75=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/lm75.o +endif +ifneq ($(shell if grep -q '^CONFIG_SENSORS_LM78=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/lm78.o +endif +ifneq ($(shell if grep -q '^CONFIG_SENSORS_LM80=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/lm80.o +endif +ifneq ($(shell if grep -q '^CONFIG_SENSORS_LTC1710=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/ltc1710.o +endif +ifneq ($(shell if grep -q '^CONFIG_SENSORS_SIS5595=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/sis5595.o +endif +ifneq ($(shell if grep -q '^CONFIG_SENSORS_W83781D=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELCHIPSTARGETS += $(MODULE_DIR)/w83781d.o +endif # Include all dependency files INCLUDEFILES += $(KERNELCHIPSTARGETS:.o=.d) diff --git a/kernel/include/Module.mk b/kernel/include/Module.mk index 72f945bd..887cee5c 100644 --- a/kernel/include/Module.mk +++ b/kernel/include/Module.mk @@ -20,8 +20,13 @@ # verbatim in the rules, until it is redefined. MODULE_DIR := kernel/include -KERNELINCLUDEFILES := $(MODULE_DIR)/sensors.h $(MODULE_DIR)/i2c-isa.h - +KERNELINCLUDEFILES := +ifneq ($(shell if grep -q '^CONFIG_SENSORS=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELINCLUDEFILES += $(MODULE_DIR)/sensors.h +endif +ifneq ($(shell if grep -q '^CONFIG_I2C_ISA=y' $(LINUX)/.config; then echo 1; fi),1) +KERNELINCLUDEFILES += $(MODULE_DIR)/isa.h +endif install-all-kernel-include: $(MKDIR) $(SYSINCLUDEDIR)