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)