]>
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 = |
bcbe7f89 | 12 | CFLAGS ?= -ansi -O2 -fomit-frame-pointer |
55f242bf | 13 | override CFLAGS += -W -Wall -D_GNU_SOURCE |
a74aeac6 PR |
14 | STATIC = |
15 | ||
16 | # For some known distributions we do not build all programs, otherwise we do. | |
17 | BIN = | |
55f242bf | 18 | SBIN = init halt shutdown runlevel killall5 fstab-decode |
a74aeac6 PR |
19 | USRBIN = last mesg |
20 | ||
21 | MAN1 = last.1 lastb.1 mesg.1 | |
22 | MAN5 = initscript.5 inittab.5 | |
23 | MAN8 = halt.8 init.8 killall5.8 pidof.8 poweroff.8 reboot.8 runlevel.8 | |
55f242bf | 24 | MAN8 += shutdown.8 telinit.8 fstab-decode.8 |
a74aeac6 PR |
25 | |
26 | ifeq ($(DISTRO),) | |
27 | BIN += mountpoint | |
28 | SBIN += sulogin bootlogd | |
29 | USRBIN += utmpdump wall | |
1414572e | 30 | MAN1 += utmpdump.1 mountpoint.1 wall.1 |
a74aeac6 PR |
31 | MAN8 += sulogin.8 bootlogd.8 |
32 | endif | |
33 | ||
34 | ifeq ($(DISTRO),Debian) | |
55f242bf | 35 | CPPFLAGS+= -DACCTON_OFF |
a74aeac6 PR |
36 | BIN += mountpoint |
37 | SBIN += sulogin bootlogd | |
38 | MAN1 += mountpoint.1 | |
39 | MAN8 += sulogin.8 bootlogd.8 | |
40 | endif | |
41 | ||
42 | ifeq ($(DISTRO),Owl) | |
43 | USRBIN += wall | |
44 | MAN1 += wall.1 | |
45 | endif | |
46 | ||
1414572e | 47 | ifeq ($(DISTRO),SuSE) |
0f9a1165 | 48 | CPPFLAGS+= -DUSE_SYSFS -DSANE_TIO -DSIGINT_ONLYONCE -DUSE_ONELINE |
1414572e DWF |
49 | BIN += mountpoint |
50 | SBIN += sulogin | |
51 | USRBIN += utmpdump | |
52 | MAN1 += utmpdump.1 mountpoint.1 | |
53 | MAN8 += sulogin.8 | |
54 | endif | |
55 | ||
55f242bf | 56 | ID = $(shell id -u) |
a74aeac6 PR |
57 | BIN_OWNER = root |
58 | BIN_GROUP = root | |
59 | BIN_COMBO = $(BIN_OWNER):$(BIN_GROUP) | |
55f242bf DWF |
60 | ifeq ($(ID),0) |
61 | INSTALL_EXEC = install -o $(BIN_OWNER) -g $(BIN_GROUP) -m 755 | |
62 | INSTALL_DATA = install -o $(BIN_OWNER) -g $(BIN_GROUP) -m 644 | |
63 | else | |
64 | INSTALL_EXEC = install -m 755 | |
65 | INSTALL_DATA = install -m 644 | |
66 | endif | |
bcbe7f89 | 67 | INSTALL_DIR = install -m 755 -d |
a74aeac6 PR |
68 | MANDIR = /usr/share/man |
69 | ||
70 | ifeq ($(WITH_SELINUX),yes) | |
55f242bf DWF |
71 | SELINUX_DEF = -DWITH_SELINUX |
72 | INITLIBS += -lsepol -lselinux | |
73 | SULOGINLIBS = -lselinux | |
a74aeac6 | 74 | else |
55f242bf DWF |
75 | SELINUX_DEF = |
76 | INITLIBS = | |
77 | SULOGINLIBS = | |
78 | endif | |
79 | ||
a74aeac6 | 80 | # Additional libs for GNU libc. |
63a2c981 | 81 | ifneq ($(wildcard /usr/lib*/libcrypt.a),) |
55f242bf | 82 | SULOGINLIBS += -lcrypt |
a74aeac6 PR |
83 | endif |
84 | ||
85 | all: $(BIN) $(SBIN) $(USRBIN) | |
86 | ||
bcbe7f89 PR |
87 | #%: %.o |
88 | # $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) | |
89 | #%.o: %.c | |
90 | # $(CC) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@ | |
91 | ||
55f242bf | 92 | init: LDLIBS += $(INITLIBS) $(STATIC) |
a74aeac6 | 93 | init: init.o init_utmp.o |
a74aeac6 | 94 | |
8ec857d9 | 95 | halt: halt.o ifdown.o hddown.o utmp.o |
a74aeac6 | 96 | |
8ec857d9 | 97 | last: last.o |
a74aeac6 PR |
98 | |
99 | mesg: mesg.o | |
a74aeac6 PR |
100 | |
101 | mountpoint: mountpoint.o | |
a74aeac6 PR |
102 | |
103 | utmpdump: utmpdump.o | |
a74aeac6 PR |
104 | |
105 | runlevel: runlevel.o | |
a74aeac6 | 106 | |
55f242bf | 107 | sulogin: LDLIBS += $(SULOGINLIBS) $(STATIC) |
35ec6446 | 108 | sulogin: sulogin.o consoles.o |
a74aeac6 PR |
109 | |
110 | wall: dowall.o wall.o | |
a74aeac6 | 111 | |
8ec857d9 | 112 | shutdown: dowall.o shutdown.o utmp.o |
a74aeac6 | 113 | |
bcbe7f89 | 114 | bootlogd: LDLIBS += -lutil |
a74aeac6 | 115 | bootlogd: bootlogd.o |
a74aeac6 | 116 | |
bcbe7f89 | 117 | sulogin.o: CPPFLAGS += $(SELINUX_DEF) |
a74aeac6 | 118 | sulogin.o: sulogin.c |
a74aeac6 | 119 | |
bcbe7f89 | 120 | init.o: CPPFLAGS += $(SELINUX_DEF) |
8ec857d9 | 121 | init.o: init.c init.h initreq.h paths.h reboot.h set.h |
a74aeac6 | 122 | |
8ec857d9 | 123 | utmp.o: |
a74aeac6 | 124 | |
bcbe7f89 | 125 | init_utmp.o: CPPFLAGS += -DINIT_MAIN |
8ec857d9 | 126 | init_utmp.o: utmp.c init.h initreq.h paths.h |
bcbe7f89 | 127 | $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< |
a74aeac6 | 128 | |
8ec857d9 DWF |
129 | utmpdump.o: utmpdump.c oldutmp.h |
130 | ||
131 | shutdown.o: shutdown.c paths.h reboot.h initreq.h init.h | |
132 | ||
133 | halt.o: halt.c reboot.h | |
134 | ||
135 | last.o: last.c oldutmp.h | |
136 | ||
32c9fc6d DWF |
137 | consoles.o: consoles.c consoles.h |
138 | ||
a74aeac6 PR |
139 | cleanobjs: |
140 | rm -f *.o *.bak | |
141 | ||
142 | clean: cleanobjs | |
143 | @echo Type \"make clobber\" to really clean up. | |
144 | ||
145 | clobber: cleanobjs | |
146 | rm -f $(BIN) $(SBIN) $(USRBIN) | |
147 | ||
148 | distclean: clobber | |
149 | ||
150 | install: | |
bcbe7f89 PR |
151 | $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/ |
152 | $(INSTALL_DIR) $(ROOT)/usr/bin/ | |
a74aeac6 | 153 | for i in $(BIN); do \ |
a74aeac6 PR |
154 | $(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \ |
155 | done | |
156 | for i in $(SBIN); do \ | |
a74aeac6 PR |
157 | $(INSTALL_EXEC) $$i $(ROOT)/sbin/ ; \ |
158 | done | |
159 | for i in $(USRBIN); do \ | |
a74aeac6 PR |
160 | $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \ |
161 | done | |
23d97522 DWF |
162 | # $(INSTALL_DIR) $(ROOT)/etc/ |
163 | # $(INSTALL_EXEC) initscript.sample $(ROOT)/etc/ | |
a74aeac6 PR |
164 | ln -sf halt $(ROOT)/sbin/reboot |
165 | ln -sf halt $(ROOT)/sbin/poweroff | |
166 | ln -sf init $(ROOT)/sbin/telinit | |
167 | ln -sf /sbin/killall5 $(ROOT)/bin/pidof | |
168 | if [ ! -f $(ROOT)/usr/bin/lastb ]; then \ | |
169 | ln -sf last $(ROOT)/usr/bin/lastb; \ | |
170 | fi | |
bcbe7f89 | 171 | $(INSTALL_DIR) $(ROOT)/usr/include/ |
a74aeac6 | 172 | $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/ |
bcbe7f89 PR |
173 | $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/ |
174 | $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/ | |
175 | $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/ | |
a74aeac6 PR |
176 | for i in $(MAN1); do \ |
177 | $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man1/; \ | |
178 | done | |
179 | for i in $(MAN5); do \ | |
180 | $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man5/; \ | |
181 | done | |
182 | for i in $(MAN8); do \ | |
183 | $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man8/; \ | |
184 | done | |
185 | ifeq ($(ROOT),) | |
186 | # | |
187 | # This part is skipped on Debian systems, the | |
188 | # debian.preinst script takes care of it. | |
189 | @if [ ! -p /dev/initctl ]; then \ | |
190 | echo "Creating /dev/initctl"; \ | |
191 | rm -f /dev/initctl; \ | |
192 | mknod -m 600 /dev/initctl p; fi | |
193 | endif |