Makefile - ubase - suckless linux base utils | |
git clone git://git.suckless.org/ubase | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
Makefile (6003B) | |
--- | |
1 include config.mk | |
2 | |
3 .SUFFIXES: | |
4 .SUFFIXES: .o .c | |
5 | |
6 HDR = \ | |
7 arg.h \ | |
8 config.h \ | |
9 passwd.h \ | |
10 proc.h \ | |
11 queue.h \ | |
12 reboot.h \ | |
13 rtc.h \ | |
14 text.h \ | |
15 util.h | |
16 | |
17 LIBUTIL = libutil.a | |
18 LIBUTILSRC = \ | |
19 libutil/agetcwd.c \ | |
20 libutil/agetline.c \ | |
21 libutil/apathmax.c \ | |
22 libutil/concat.c \ | |
23 libutil/ealloc.c \ | |
24 libutil/eprintf.c \ | |
25 libutil/estrtol.c \ | |
26 libutil/estrtoul.c \ | |
27 libutil/explicit_bzero.c \ | |
28 libutil/passwd.c \ | |
29 libutil/proc.c \ | |
30 libutil/putword.c \ | |
31 libutil/recurse.c \ | |
32 libutil/strlcat.c \ | |
33 libutil/strlcpy.c \ | |
34 libutil/strtonum.c \ | |
35 libutil/tty.c | |
36 | |
37 LIB = $(LIBUTIL) | |
38 | |
39 BIN = \ | |
40 blkdiscard \ | |
41 chvt \ | |
42 clear \ | |
43 ctrlaltdel \ | |
44 dd \ | |
45 df \ | |
46 dmesg \ | |
47 eject \ | |
48 fallocate \ | |
49 free \ | |
50 freeramdisk \ | |
51 fsfreeze \ | |
52 getty \ | |
53 halt \ | |
54 hwclock \ | |
55 id \ | |
56 insmod \ | |
57 killall5 \ | |
58 last \ | |
59 lastlog \ | |
60 login \ | |
61 lsmod \ | |
62 lsusb \ | |
63 mesg \ | |
64 mknod \ | |
65 mkswap \ | |
66 mount \ | |
67 mountpoint \ | |
68 nologin \ | |
69 pagesize \ | |
70 passwd \ | |
71 pidof \ | |
72 pivot_root \ | |
73 ps \ | |
74 pwdx \ | |
75 readahead \ | |
76 respawn \ | |
77 rmmod \ | |
78 stat \ | |
79 su \ | |
80 swaplabel \ | |
81 swapoff \ | |
82 swapon \ | |
83 switch_root \ | |
84 sysctl \ | |
85 truncate \ | |
86 umount \ | |
87 unshare \ | |
88 uptime \ | |
89 vtallow \ | |
90 watch \ | |
91 who | |
92 | |
93 MAN1 = \ | |
94 chvt.1 \ | |
95 clear.1 \ | |
96 dd.1 \ | |
97 df.1 \ | |
98 dmesg.1 \ | |
99 eject.1 \ | |
100 fallocate.1 \ | |
101 free.1 \ | |
102 id.1 \ | |
103 login.1 \ | |
104 mesg.1 \ | |
105 mknod.1 \ | |
106 mountpoint.1 \ | |
107 pagesize.1 \ | |
108 passwd.1 \ | |
109 pidof.1 \ | |
110 ps.1 \ | |
111 pwdx.1 \ | |
112 respawn.1 \ | |
113 stat.1 \ | |
114 su.1 \ | |
115 truncate.1 \ | |
116 unshare.1 \ | |
117 uptime.1 \ | |
118 vtallow.1 \ | |
119 watch.1 \ | |
120 who.1 | |
121 | |
122 MAN8 = \ | |
123 ctrlaltdel.8 \ | |
124 freeramdisk.8 \ | |
125 fsfreeze.8 \ | |
126 getty.8 \ | |
127 halt.8 \ | |
128 hwclock.8 \ | |
129 insmod.8 \ | |
130 killall5.8 \ | |
131 lastlog.8 \ | |
132 lsmod.8 \ | |
133 lsusb.8 \ | |
134 mkswap.8 \ | |
135 mount.8 \ | |
136 nologin.8 \ | |
137 pivot_root.8 \ | |
138 readahead.8 \ | |
139 rmmod.8 \ | |
140 swaplabel.8 \ | |
141 swapoff.8 \ | |
142 swapon.8 \ | |
143 switch_root.8 \ | |
144 sysctl.8 \ | |
145 umount.8 | |
146 | |
147 LIBUTILOBJ = $(LIBUTILSRC:.c=.o) | |
148 OBJ = $(BIN:=.o) $(LIBUTILOBJ) | |
149 SRC = $(BIN:=.c) | |
150 | |
151 all: $(BIN) | |
152 | |
153 $(BIN): $(LIB) | |
154 | |
155 $(OBJ): $(HDR) config.mk | |
156 | |
157 config.h: | |
158 cp config.def.h $@ | |
159 | |
160 .o: | |
161 $(CC) $(LDFLAGS) -o $@ $< $(LIB) $(LDLIBS) | |
162 | |
163 .c.o: | |
164 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< | |
165 | |
166 $(LIBUTIL): $(LIBUTILOBJ) | |
167 $(AR) rc $@ $? | |
168 $(RANLIB) $@ | |
169 | |
170 install: all | |
171 mkdir -p $(DESTDIR)$(PREFIX)/bin | |
172 cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin | |
173 cd $(DESTDIR)$(PREFIX)/bin && chmod 755 $(BIN) | |
174 mkdir -p $(DESTDIR)$(MANPREFIX)/man1 | |
175 for m in $(MAN1); do sed "s/^\.Os ubase/.Os ubase $(VERSION)/g" … | |
176 mkdir -p $(DESTDIR)$(MANPREFIX)/man8 | |
177 for m in $(MAN8); do sed "s/^\.Os ubase/.Os ubase $(VERSION)/g" … | |
178 cd $(DESTDIR)$(MANPREFIX)/man1 && chmod 644 $(MAN1) | |
179 cd $(DESTDIR)$(MANPREFIX)/man8 && chmod 644 $(MAN8) | |
180 | |
181 uninstall: | |
182 cd $(DESTDIR)$(PREFIX)/bin && rm -f $(BIN) | |
183 cd $(DESTDIR)$(MANPREFIX)/man1 && rm -f $(MAN1) | |
184 cd $(DESTDIR)$(MANPREFIX)/man8 && rm -f $(MAN8) | |
185 | |
186 dist: clean | |
187 mkdir -p ubase-$(VERSION) | |
188 cp -r LICENSE Makefile README TODO config.mk $(SRC) $(MAN1) $(MA… | |
189 tar -cf ubase-$(VERSION).tar ubase-$(VERSION) | |
190 gzip ubase-$(VERSION).tar | |
191 rm -rf ubase-$(VERSION) | |
192 | |
193 ubase-box: $(LIB) $(SRC) | |
194 mkdir -p build | |
195 cp $(HDR) build | |
196 cp config.h build | |
197 for f in $(SRC); do sed "s/^main(/`basename $$f .c`_&/" < $$f > … | |
198 echo '#include <libgen.h>' > build/[email protected] | |
199 echo '#include <stdio.h>' >> build/[email protected] | |
200 echo '#include <stdlib.h>' >> build/[email protected] | |
201 echo '#include <string.h>' >> build/[email protected] | |
202 echo '#include "util.h"' >> build/[email protected] | |
203 for f in $(SRC); do echo "int `basename $$f .c`_main(int, char *… | |
204 echo 'int main(int argc, char *argv[]) { char *s = basename(argv… | |
205 for f in $(SRC); do echo "else if(!strcmp(s, \"`basename $$f .c`… | |
206 echo 'else {' >> build/[email protected] | |
207 for f in $(SRC); do echo "printf(\"`basename $$f .c`\"); putchar… | |
208 echo "putchar(0xa); }; return 0; }" >> build/[email protected] | |
209 $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ build/*.c $(LIB) $(… | |
210 rm -r build | |
211 | |
212 ubase-box-install: ubase-box | |
213 mkdir -p $(DESTDIR)$(PREFIX)/bin | |
214 cp -f ubase-box $(DESTDIR)$(PREFIX)/bin | |
215 chmod 755 $(DESTDIR)$(PREFIX)/bin/ubase-box | |
216 for f in $(BIN); do ln -sf ubase-box $(DESTDIR)$(PREFIX)/bin/"$$… | |
217 mkdir -p $(DESTDIR)$(MANPREFIX)/man1 | |
218 for m in $(MAN1); do sed "s/^\.Os ubase/.Os ubase $(VERSION)/g" … | |
219 mkdir -p $(DESTDIR)$(MANPREFIX)/man8 | |
220 for m in $(MAN8); do sed "s/^\.Os ubase/.Os ubase $(VERSION)/g" … | |
221 cd $(DESTDIR)$(MANPREFIX)/man1 && chmod 644 $(MAN1) | |
222 cd $(DESTDIR)$(MANPREFIX)/man8 && chmod 644 $(MAN8) | |
223 | |
224 clean: | |
225 rm -f $(BIN) $(OBJ) $(LIB) ubase-box ubase-$(VERSION).tar.gz | |
226 | |
227 .PHONY: | |
228 all install uninstall dist ubase-box ubase-box-install clean |