]>
Commit | Line | Data |
---|---|---|
a74aeac6 PR |
1 | # |
2 | # Makefile Makefile for the systemV init suite. | |
3 | # Targets: all compiles everything | |
4 | # install installs the binaries (not the scripts) | |
5 | # clean cleans up object files | |
6 | # clobber really cleans up | |
7 | # | |
8 | # Version: @(#)Makefile 2.85-13 23-Mar-2004 miquels@cistron.nl | |
9 | # | |
10 | ||
2a2f7033 | 11 | CPPFLAGS = |
013ce7cc PR |
12 | CFLAGS ?= -ansi -O2 -fomit-frame-pointer -fstack-protector |
13 | override CFLAGS += -W -Wall -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -D_XOPEN_SOURCE -D_GNU_SOURCE | |
a74aeac6 | 14 | STATIC = |
040ccc09 | 15 | MANDB := s@^\('\\\\\"\)[^\*-]*-\*- coding: [^[:blank:]]\+ -\*-@\1@ |
a74aeac6 | 16 | |
b9eebd6e DWF |
17 | # |
18 | # Leave empty if the mountpoint(1) command from util-linux 2.20 | |
19 | # and above should be used, otherwise set it to yes. | |
20 | # | |
21 | MNTPOINT= | |
22 | ||
a74aeac6 PR |
23 | # For some known distributions we do not build all programs, otherwise we do. |
24 | BIN = | |
55f242bf | 25 | SBIN = init halt shutdown runlevel killall5 fstab-decode |
a74aeac6 PR |
26 | USRBIN = last mesg |
27 | ||
28 | MAN1 = last.1 lastb.1 mesg.1 | |
29 | MAN5 = initscript.5 inittab.5 | |
30 | MAN8 = halt.8 init.8 killall5.8 pidof.8 poweroff.8 reboot.8 runlevel.8 | |
55f242bf | 31 | MAN8 += shutdown.8 telinit.8 fstab-decode.8 |
a74aeac6 PR |
32 | |
33 | ifeq ($(DISTRO),) | |
a74aeac6 PR |
34 | SBIN += sulogin bootlogd |
35 | USRBIN += utmpdump wall | |
b9eebd6e | 36 | MAN1 += utmpdump.1 wall.1 |
a74aeac6 PR |
37 | MAN8 += sulogin.8 bootlogd.8 |
38 | endif | |
39 | ||
40 | ifeq ($(DISTRO),Debian) | |
55f242bf | 41 | CPPFLAGS+= -DACCTON_OFF |
a74aeac6 | 42 | SBIN += sulogin bootlogd |
a74aeac6 | 43 | MAN8 += sulogin.8 bootlogd.8 |
040ccc09 | 44 | MANDB := |
a74aeac6 PR |
45 | endif |
46 | ||
47 | ifeq ($(DISTRO),Owl) | |
48 | USRBIN += wall | |
49 | MAN1 += wall.1 | |
040ccc09 | 50 | MANDB := |
a74aeac6 PR |
51 | endif |
52 | ||
1414572e | 53 | ifeq ($(DISTRO),SuSE) |
0f9a1165 | 54 | CPPFLAGS+= -DUSE_SYSFS -DSANE_TIO -DSIGINT_ONLYONCE -DUSE_ONELINE |
1414572e DWF |
55 | SBIN += sulogin |
56 | USRBIN += utmpdump | |
b9eebd6e | 57 | MAN1 += utmpdump.1 |
1414572e | 58 | MAN8 += sulogin.8 |
040ccc09 | 59 | MANDB := |
1414572e DWF |
60 | endif |
61 | ||
b9eebd6e DWF |
62 | ifeq ($(MNTPOINT),yes) |
63 | BIN += mountpoint | |
64 | MAN1 += mountpoint.1 | |
65 | endif | |
66 | ||
55f242bf | 67 | ID = $(shell id -u) |
a74aeac6 PR |
68 | BIN_OWNER = root |
69 | BIN_GROUP = root | |
70 | BIN_COMBO = $(BIN_OWNER):$(BIN_GROUP) | |
55f242bf DWF |
71 | ifeq ($(ID),0) |
72 | INSTALL_EXEC = install -o $(BIN_OWNER) -g $(BIN_GROUP) -m 755 | |
73 | INSTALL_DATA = install -o $(BIN_OWNER) -g $(BIN_GROUP) -m 644 | |
74 | else | |
75 | INSTALL_EXEC = install -m 755 | |
76 | INSTALL_DATA = install -m 644 | |
77 | endif | |
bcbe7f89 | 78 | INSTALL_DIR = install -m 755 -d |
a74aeac6 PR |
79 | MANDIR = /usr/share/man |
80 | ||
81 | ifeq ($(WITH_SELINUX),yes) | |
55f242bf DWF |
82 | SELINUX_DEF = -DWITH_SELINUX |
83 | INITLIBS += -lsepol -lselinux | |
84 | SULOGINLIBS = -lselinux | |
a74aeac6 | 85 | else |
55f242bf DWF |
86 | SELINUX_DEF = |
87 | INITLIBS = | |
88 | SULOGINLIBS = | |
89 | endif | |
90 | ||
a74aeac6 | 91 | # Additional libs for GNU libc. |
e8af2281 PR |
92 | ifneq ($(wildcard /usr/lib*/libcrypt.*),) |
93 | SULOGINLIBS += -lcrypt | |
94 | endif | |
95 | ||
96 | # Additional libs for GNU libc / multiarch on Debian based systems. | |
97 | ifneq ($(wildcard /usr/lib/*/libcrypt.*),) | |
55f242bf | 98 | SULOGINLIBS += -lcrypt |
a74aeac6 PR |
99 | endif |
100 | ||
101 | all: $(BIN) $(SBIN) $(USRBIN) | |
102 | ||
bcbe7f89 PR |
103 | #%: %.o |
104 | # $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) | |
105 | #%.o: %.c | |
106 | # $(CC) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@ | |
107 | ||
55f242bf | 108 | init: LDLIBS += $(INITLIBS) $(STATIC) |
a74aeac6 | 109 | init: init.o init_utmp.o |
a74aeac6 | 110 | |
eb56c8a4 | 111 | halt: LDLIBS += $(STATIC) |
8ec857d9 | 112 | halt: halt.o ifdown.o hddown.o utmp.o |
a74aeac6 | 113 | |
eb56c8a4 | 114 | last: LDLIBS += $(STATIC) |
8ec857d9 | 115 | last: last.o |
a74aeac6 | 116 | |
eb56c8a4 | 117 | mesg: LDLIBS += $(STATIC) |
a74aeac6 | 118 | mesg: mesg.o |
a74aeac6 | 119 | |
eb56c8a4 | 120 | mountpoint: LDLIBS += $(STATIC) |
a74aeac6 | 121 | mountpoint: mountpoint.o |
a74aeac6 | 122 | |
eb56c8a4 | 123 | utmpdump: LDLIBS += $(STATIC) |
a74aeac6 | 124 | utmpdump: utmpdump.o |
a74aeac6 | 125 | |
eb56c8a4 | 126 | runlevel: LDLIBS += $(STATIC) |
a74aeac6 | 127 | runlevel: runlevel.o |
a74aeac6 | 128 | |
55f242bf | 129 | sulogin: LDLIBS += $(SULOGINLIBS) $(STATIC) |
35ec6446 | 130 | sulogin: sulogin.o consoles.o |
a74aeac6 | 131 | |
eb56c8a4 | 132 | wall: LDLIBS += $(STATIC) |
a74aeac6 | 133 | wall: dowall.o wall.o |
a74aeac6 | 134 | |
eb56c8a4 | 135 | shutdown: LDLIBS += $(STATIC) |
8ec857d9 | 136 | shutdown: dowall.o shutdown.o utmp.o |
a74aeac6 | 137 | |
eb56c8a4 | 138 | bootlogd: LDLIBS += -lutil $(STATIC) |
a74aeac6 | 139 | bootlogd: bootlogd.o |
a74aeac6 | 140 | |
eb56c8a4 PR |
141 | fstab-decode: LDLIBS += $(STATIC) |
142 | fstab-decode: fstab-decode.o | |
143 | ||
bcbe7f89 | 144 | sulogin.o: CPPFLAGS += $(SELINUX_DEF) |
a74aeac6 | 145 | sulogin.o: sulogin.c |
a74aeac6 | 146 | |
bcbe7f89 | 147 | init.o: CPPFLAGS += $(SELINUX_DEF) |
8ec857d9 | 148 | init.o: init.c init.h initreq.h paths.h reboot.h set.h |
a74aeac6 | 149 | |
8ec857d9 | 150 | utmp.o: |
a74aeac6 | 151 | |
bcbe7f89 | 152 | init_utmp.o: CPPFLAGS += -DINIT_MAIN |
8ec857d9 | 153 | init_utmp.o: utmp.c init.h initreq.h paths.h |
bcbe7f89 | 154 | $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< |
a74aeac6 | 155 | |
8ec857d9 DWF |
156 | utmpdump.o: utmpdump.c oldutmp.h |
157 | ||
158 | shutdown.o: shutdown.c paths.h reboot.h initreq.h init.h | |
159 | ||
160 | halt.o: halt.c reboot.h | |
161 | ||
162 | last.o: last.c oldutmp.h | |
163 | ||
32c9fc6d DWF |
164 | consoles.o: consoles.c consoles.h |
165 | ||
a74aeac6 PR |
166 | cleanobjs: |
167 | rm -f *.o *.bak | |
168 | ||
169 | clean: cleanobjs | |
170 | @echo Type \"make clobber\" to really clean up. | |
171 | ||
172 | clobber: cleanobjs | |
173 | rm -f $(BIN) $(SBIN) $(USRBIN) | |
174 | ||
175 | distclean: clobber | |
176 | ||
177 | install: | |
bcbe7f89 PR |
178 | $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/ |
179 | $(INSTALL_DIR) $(ROOT)/usr/bin/ | |
a74aeac6 | 180 | for i in $(BIN); do \ |
a74aeac6 PR |
181 | $(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \ |
182 | done | |
183 | for i in $(SBIN); do \ | |
a74aeac6 PR |
184 | $(INSTALL_EXEC) $$i $(ROOT)/sbin/ ; \ |
185 | done | |
186 | for i in $(USRBIN); do \ | |
a74aeac6 PR |
187 | $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \ |
188 | done | |
23d97522 DWF |
189 | # $(INSTALL_DIR) $(ROOT)/etc/ |
190 | # $(INSTALL_EXEC) initscript.sample $(ROOT)/etc/ | |
a74aeac6 PR |
191 | ln -sf halt $(ROOT)/sbin/reboot |
192 | ln -sf halt $(ROOT)/sbin/poweroff | |
193 | ln -sf init $(ROOT)/sbin/telinit | |
194 | ln -sf /sbin/killall5 $(ROOT)/bin/pidof | |
195 | if [ ! -f $(ROOT)/usr/bin/lastb ]; then \ | |
196 | ln -sf last $(ROOT)/usr/bin/lastb; \ | |
197 | fi | |
bcbe7f89 | 198 | $(INSTALL_DIR) $(ROOT)/usr/include/ |
a74aeac6 | 199 | $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/ |
bcbe7f89 PR |
200 | $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/ |
201 | $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/ | |
202 | $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/ | |
040ccc09 DWF |
203 | for man in $(MAN1); do \ |
204 | $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man1/; \ | |
205 | sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man1/$$man ; \ | |
a74aeac6 | 206 | done |
040ccc09 DWF |
207 | for man in $(MAN5); do \ |
208 | $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man5/; \ | |
209 | sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man5/$$man ; \ | |
a74aeac6 | 210 | done |
040ccc09 DWF |
211 | for man in $(MAN8); do \ |
212 | $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man8/; \ | |
213 | sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man8/$$man ; \ | |
a74aeac6 PR |
214 | done |
215 | ifeq ($(ROOT),) | |
216 | # | |
217 | # This part is skipped on Debian systems, the | |
218 | # debian.preinst script takes care of it. | |
219 | @if [ ! -p /dev/initctl ]; then \ | |
220 | echo "Creating /dev/initctl"; \ | |
221 | rm -f /dev/initctl; \ | |
222 | mknod -m 600 /dev/initctl p; fi | |
223 | endif |