root/lm-sensors/trunk/kernel/chips/Module.mk @ 2189

Revision 2189, 7.9 KB (checked in by mds, 9 years ago)

remove -o and -g args to install

Date: Thu, 18 Dec 2003 22:42:36 +0100
From: Haakon Riiser <haakon.riiser@…>
To: sensors@…
Subject: lm_sensors 2.8.2 / DESTDIR / root

The reason for this email is that I always try to avoid running
Makefiles as root, even during 'make install'. Therefore, I
always use the DESTDIR feature, when it's available. Until today,
I always built i2c and lm_sensors by doing

$ make
$ make -i install DESTDIR=/foo
$ cd /foo && su root && fix permissions/ownership && install

The -i flag to make install is a kludge to avoid having to be root
while installing to the DESTDIR, and it's only required because
the files are installed with "-o root -g root". Using the -i
flag is of course not a good idea, since more fatal errors can
easily fly by undetected.

Today, I upgraded to Linux 2.6.0, and tried a similar install
procedure for lm_sensors, except that the make target is now "user"
and the install target is "user_install". I now noticed that the
DESTDIR variable is not used everywhere in "user_install", so I
couldn't use the -i kludge anymore. Instead, I wrote a patch that
removes the "-o root -g root" arguments to install everywhere, and
I also tried to add DESTDIR to all files/directories installed.
(The patch only applies to lm_sensors, not i2c, since only
lm_sensors is required in Linux 2.6.0.)

There's really no reason to say -o root -g root anyway, since if you
do install directly with make install, you have to be logged in as
root, and then the files will get the right ownership by default.
Much of the point of installing to a temporary DESTDIR is that you
don't have to be root, and that you can prepare the installation
by hand. Fixing the ownership is trivial:

chown -R root.root $DESTDIR

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1#  Module.mk - Makefile for a Linux module for reading sensor data.
2#  Copyright (c) 1998 - 2001 Frodo Looijaard <frodol@dds.nl>
3#
4#  This program is free software; you can redistribute it and/or modify
5#  it under the terms of the GNU General Public License as published by
6#  the Free Software Foundation; either version 2 of the License, or
7#  (at your option) any later version.
8#
9#  This program is distributed in the hope that it will be useful,
10#  but WITHOUT ANY WARRANTY; without even the implied warranty of
11#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12#  GNU General Public License for more details.
13#
14#  You should have received a copy of the GNU General Public License
15#  along with this program; if not, write to the Free Software
16#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18# Note that MODULE_DIR (the directory in which this file resides) is a
19# 'simply expanded variable'. That means that its value is substituted
20# verbatim in the rules, until it is redefined.
21MODULE_DIR := kernel/chips
22KERNELCHIPSDIR := $(MODULE_DIR)
23
24# Regrettably, even 'simply expanded variables' will not put their currently
25# defined value verbatim into the command-list of rules...
26# These targets are NOT included in 'mkpatch' ...
27KERNELCHIPSTARGETS :=
28ifeq ($(shell if grep -q '^CONFIG_IPMI_HANDLER=' $(LINUX)/.config; then echo 1; fi),1)
29KERNELCHIPSTARGETS += $(MODULE_DIR)/bmcsensors.o
30endif
31KERNELCHIPSTARGETS += $(MODULE_DIR)/ds1307.o
32KERNELCHIPSTARGETS += $(MODULE_DIR)/lm83.o
33KERNELCHIPSTARGETS += $(MODULE_DIR)/lm90.o
34KERNELCHIPSTARGETS += $(MODULE_DIR)/max6650.o
35KERNELCHIPSTARGETS += $(MODULE_DIR)/saa1064.o
36KERNELCHIPSTARGETS += $(MODULE_DIR)/smartbatt.o
37KERNELCHIPSTARGETS += $(MODULE_DIR)/smbus-arp.o
38KERNELCHIPSTARGETS += $(MODULE_DIR)/vt8231.o
39KERNELCHIPSTARGETS += $(MODULE_DIR)/w83627hf.o
40KERNELCHIPSTARGETS += $(MODULE_DIR)/w83l785ts.o
41KERNELCHIPSTARGETS += $(MODULE_DIR)/xeontemp.o
42
43
44# These targets ARE included in 'mkpatch', except for LTC1710, which we
45# leave here because it used to be in 'mkpatch' ...
46ifneq ($(shell if grep -q '^CONFIG_SENSORS_ADM1021=y' $(LINUX)/.config; then echo 1; fi),1)
47KERNELCHIPSTARGETS += $(MODULE_DIR)/adm1021.o
48endif
49ifneq ($(shell if grep -q '^CONFIG_SENSORS_ADM1024=y' $(LINUX)/.config; then echo 1; fi),1)
50KERNELCHIPSTARGETS += $(MODULE_DIR)/adm1024.o
51endif
52ifneq ($(shell if grep -q '^CONFIG_SENSORS_ADM1025=y' $(LINUX)/.config; then echo 1; fi),1)
53KERNELCHIPSTARGETS += $(MODULE_DIR)/adm1025.o
54endif
55ifneq ($(shell if grep -q '^CONFIG_SENSORS_ADM1026=y' $(LINUX)/.config; then echo 1; fi),1)
56KERNELCHIPSTARGETS += $(MODULE_DIR)/adm1026.o
57endif
58ifneq ($(shell if grep -q '^CONFIG_SENSORS_ADM9240=y' $(LINUX)/.config; then echo 1; fi),1)
59KERNELCHIPSTARGETS += $(MODULE_DIR)/adm9240.o
60endif
61ifneq ($(shell if grep -q '^CONFIG_SENSORS_ASB100=y' $(LINUX)/.config; then echo 1; fi),1)
62KERNELCHIPSTARGETS += $(MODULE_DIR)/asb100.o
63endif
64ifneq ($(shell if grep -q '^CONFIG_SENSORS_BT869=y' $(LINUX)/.config; then echo 1; fi),1)
65KERNELCHIPSTARGETS += $(MODULE_DIR)/bt869.o
66endif
67ifneq ($(shell if grep -q '^CONFIG_SENSORS_DDCMON=y' $(LINUX)/.config; then echo 1; fi),1)
68KERNELCHIPSTARGETS += $(MODULE_DIR)/ddcmon.o
69endif
70ifneq ($(shell if grep -q '^CONFIG_SENSORS_DS1621=y' $(LINUX)/.config; then echo 1; fi),1)
71KERNELCHIPSTARGETS += $(MODULE_DIR)/ds1621.o
72endif
73ifneq ($(shell if grep -q '^CONFIG_SENSORS_EEPROM=y' $(LINUX)/.config; then echo 1; fi),1)
74KERNELCHIPSTARGETS += $(MODULE_DIR)/eeprom.o
75endif
76ifneq ($(shell if grep -q '^CONFIG_SENSORS_FSCPOS=y' $(LINUX)/.config; then echo 1; fi),1)
77KERNELCHIPSTARGETS += $(MODULE_DIR)/fscpos.o
78endif
79ifneq ($(shell if grep -q '^CONFIG_SENSORS_FSCSCY=y' $(LINUX)/.config; then echo 1; fi),1)
80KERNELCHIPSTARGETS += $(MODULE_DIR)/fscscy.o
81endif
82ifneq ($(shell if grep -q '^CONFIG_SENSORS_FSCHER=y' $(LINUX)/.config; then echo 1; fi),1)
83KERNELCHIPSTARGETS += $(MODULE_DIR)/fscher.o
84endif
85ifneq ($(shell if grep -q '^CONFIG_SENSORS_GL518SM=y' $(LINUX)/.config; then echo 1; fi),1)
86KERNELCHIPSTARGETS += $(MODULE_DIR)/gl518sm.o
87endif
88ifneq ($(shell if grep -q '^CONFIG_SENSORS_GL520SM=y' $(LINUX)/.config; then echo 1; fi),1)
89KERNELCHIPSTARGETS += $(MODULE_DIR)/gl520sm.o
90endif
91ifneq ($(shell if grep -q '^CONFIG_SENSORS_IT87=y' $(LINUX)/.config; then echo 1; fi),1)
92KERNELCHIPSTARGETS += $(MODULE_DIR)/it87.o
93endif
94ifneq ($(shell if grep -q '^CONFIG_SENSORS_LM75=y' $(LINUX)/.config; then echo 1; fi),1)
95KERNELCHIPSTARGETS += $(MODULE_DIR)/lm75.o
96endif
97ifneq ($(shell if grep -q '^CONFIG_SENSORS_LM78=y' $(LINUX)/.config; then echo 1; fi),1)
98KERNELCHIPSTARGETS += $(MODULE_DIR)/lm78.o
99endif
100ifneq ($(shell if grep -q '^CONFIG_SENSORS_LM80=y' $(LINUX)/.config; then echo 1; fi),1)
101KERNELCHIPSTARGETS += $(MODULE_DIR)/lm80.o
102endif
103ifneq ($(shell if grep -q '^CONFIG_SENSORS_LM85=y' $(LINUX)/.config; then echo 1; fi),1)
104KERNELCHIPSTARGETS += $(MODULE_DIR)/lm85.o
105endif
106ifneq ($(shell if grep -q '^CONFIG_SENSORS_LM87=y' $(LINUX)/.config; then echo 1; fi),1)
107KERNELCHIPSTARGETS += $(MODULE_DIR)/lm87.o
108endif
109ifneq ($(shell if grep -q '^CONFIG_SENSORS_LM92=y' $(LINUX)/.config; then echo 1; fi),1)
110KERNELCHIPSTARGETS += $(MODULE_DIR)/lm92.o
111endif
112ifneq ($(shell if grep -q '^CONFIG_SENSORS_LTC1710=y' $(LINUX)/.config; then echo 1; fi),1)
113KERNELCHIPSTARGETS += $(MODULE_DIR)/ltc1710.o
114endif
115ifneq ($(shell if grep -q '^CONFIG_SENSORS_MATORB=y' $(LINUX)/.config; then echo 1; fi),1)
116KERNELCHIPSTARGETS += $(MODULE_DIR)/matorb.o
117endif
118ifneq ($(shell if grep -q '^CONFIG_SENSORS_MAXILIFE=y' $(LINUX)/.config; then echo 1; fi),1)
119KERNELCHIPSTARGETS += $(MODULE_DIR)/maxilife.o
120endif
121ifneq ($(shell if grep -q '^CONFIG_SENSORS_MTP008=y' $(LINUX)/.config; then echo 1; fi),1)
122KERNELCHIPSTARGETS += $(MODULE_DIR)/mtp008.o
123endif
124ifneq ($(shell if grep -q '^CONFIG_SENSORS_PCF8574=y' $(LINUX)/.config; then echo 1; fi),1)
125KERNELCHIPSTARGETS += $(MODULE_DIR)/pcf8574.o
126endif
127ifneq ($(shell if grep -q '^CONFIG_SENSORS_PCF8591=y' $(LINUX)/.config; then echo 1; fi),1)
128KERNELCHIPSTARGETS += $(MODULE_DIR)/pcf8591.o
129endif
130ifneq ($(shell if grep -q '^CONFIG_SENSORS_SIS5595=y' $(LINUX)/.config; then echo 1; fi),1)
131KERNELCHIPSTARGETS += $(MODULE_DIR)/sis5595.o
132endif
133ifneq ($(shell if grep -q '^CONFIG_SENSORS_SMSC47M1=y' $(LINUX)/.config; then echo 1; fi),1)
134KERNELCHIPSTARGETS += $(MODULE_DIR)/smsc47m1.o
135endif
136ifneq ($(shell if grep -q '^CONFIG_SENSORS_THMC50=y' $(LINUX)/.config; then echo 1; fi),1)
137KERNELCHIPSTARGETS += $(MODULE_DIR)/thmc50.o
138endif
139ifneq ($(shell if grep -q '^CONFIG_SENSORS_W83781D=y' $(LINUX)/.config; then echo 1; fi),1)
140KERNELCHIPSTARGETS += $(MODULE_DIR)/w83781d.o
141endif
142ifneq ($(shell if grep -q '^CONFIG_SENSORS_VIA686A=y' $(LINUX)/.config; then echo 1; fi),1)
143KERNELCHIPSTARGETS += $(MODULE_DIR)/via686a.o
144endif
145ifneq ($(shell if grep -q '^CONFIG_SENSORS_VT1211=y' $(LINUX)/.config; then echo 1; fi),1)
146KERNELCHIPSTARGETS += $(MODULE_DIR)/vt1211.o
147endif
148
149# Include all dependency files
150INCLUDEFILES += $(KERNELCHIPSTARGETS:.o=.d)
151
152all-kernel-chips: $(KERNELCHIPSTARGETS)
153all :: all-kernel-chips
154
155#
156# If $MODPREF/kernel exists, we presume the new (2.4.0) /lib/modules/x.y.z directory
157# layout, so we install in kernel/drivers/i2c/chips/ and remove old versions in misc/
158# and kernel/drivers/sensors/ . Otherwise we install in misc/ as before.
159#
160install-kernel-chips: all-kernel-chips
161        if [ -n "$(KERNELCHIPSTARGETS)" ] ; then \
162          $(MKDIR) $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/chips ; \
163          $(INSTALL) -m 644 $(KERNELCHIPSTARGETS) $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/chips ; \
164          for i in $(KERNELCHIPSTARGETS) ; do \
165            $(RM) $(DESTDIR)$(MODPREF)/misc/`basename $$i` $(DESTDIR)$(MODPREF)/kernel/drivers/sensors/`basename $$i` \
166                  $(DESTDIR)$(MODPREF)/kernel/drivers/sensors/`basename $$i`.gz $(DESTDIR)$(MODPREF)/kernel/drivers/chips/`basename $$i`.gz ; \
167          done ; \
168          $(RMDIR) $(DESTDIR)$(MODPREF)/misc $(DESTDIR)$(MODPREF)/kernel/drivers/sensors 2> /dev/null || true ; \
169        fi
170
171install :: install-kernel-chips
172
173clean-kernel-chips:
174        $(RM) $(KERNELCHIPSDIR)/*.o $(KERNELCHIPSDIR)/*.d
175clean :: clean-kernel-chips
Note: See TracBrowser for help on using the browser.