1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
SHELL=/bin/sh
CC=gcc
CFLAGS=-O2 -Wall -W
LDFLAGS=-s
CCC = $(CC) $(CFLAGS)
CCL = $(CC) $(CFLAGS) $(LDFLAGS)
STR = strip -R .comment -R .note
ALL = nlogin nlogin-auth nlogin-tiny
default: $(ALL)
nlogin: nlogin.c lib.a
${CCL} -o $@ $^
@$(STR) $@
nlogin-%: nlogin-%.c lib.a
${CCL} -o $@ $^
@$(STR) $@
clean:
rm -f $(ALL) *.o *.a *.s a.out *_defs.h
install: $(ALL)
install -d $(DESTDIR)/bin
install -m755 $^ $(DESTDIR)/bin
g_h = ./get_headers
%_defs.h: %_*.c
$(g_h) $@ -Gsys/types.h $^ > $@
str_defs.h: str_*.c
$(g_h) $@ -Lbyte_defs.h -Lfmt_defs.h -Lscan_defs.h $^ > $@
time_defs.h: get_tz.c nv_ctime.c write_dev*.c
$(g_h) $@ -Lstr_defs.h $^ > $@
parse_defs.h: __*.c
$(g_h) $@ -Lstr_defs.h $^ > $@
utmp_defs.h: utmp_*.c safe_io.c log_do.c lastlog_do.c
$(g_h) $@ -Ltime_defs.h $^ > $@
prot_defs.h: prot_*.c read_pass*.c pass_check.c
$(g_h) $@ -Gsys/types.h -Lmd5.h $^ > $@
md5_defs.h: md5*.c
$(g_h) $@ $^ > $@
pw_%_defs.h: nv_*%*.c
$(g_h) $@ $^ > $@
pw_defs.h:
$(g_h) $@ -Lstr_defs.h -Lpw_pw_defs.h -Lpw_gr_defs.h \
-Lpw_sp_defs.h $^ > $@
%.o: %.c config.h
${CCC} -c $<
STR_O = $(patsubst %.c,%.o,$(wildcard str_*.c))
BYTE_O = $(patsubst %.c,%.o,$(wildcard byte_*.c))
SCAN_O = $(patsubst %.c,%.o,$(wildcard scan_*.c))
FMT_O = $(patsubst %.c,%.o,$(wildcard fmt_*.c))
PARSE_O = $(patsubst %.c,%.o,$(wildcard __*.c))
UTMP_O = $(patsubst %.c,%.o,$(wildcard *_io.c *_do.c *_devlog.c))
TIME_O = $(patsubst %.c,%.o,$(wildcard *ctime.c *_tz.c))
PASS_O = $(patsubst %.c,%.o,$(wildcard *pass*.c prot_*.c))
MD5_O = $(patsubst %.c,%.o,$(wildcard md5*.c))
PW_PW_O = $(patsubst %.c,%.o,$(wildcard nv_*pw*.c))
PW_GR_O = $(patsubst %.c,%.o,$(wildcard nv_*gr*.c))
PW_SP_O = $(patsubst %.c,%.o,$(wildcard nv_*sp*.c))
PW_O = $(PW_PW_O) $(PW_GR_O) $(PW_SP_O)
str_%.o: str_defs.h
fmt_%.o: fmt_defs.h
scan_%.o: scan_defs.h
byte_%.o: byte_defs.h
nv_%gr%.o: pw_gr_defs.h
nv_%pw%.o: pw_pw_defs.h
nv_%sp%.o: pw_sp_defs.h
md5%.o: md5_defs.h
__%.o: parse_defs.h
ALL_O = $(STR_O) $(BYTE_O) $(SCAN_O) $(FMT_O) $(PARSE_O) $(PW_O) \
$(PASS_O) $(MD5_O) $(UTMP_O) $(TIME_O)
ALL_H = str_defs.h byte_defs.h scan_defs.h fmt_defs.h parse_defs.h \
pw_defs.h pw_pw_defs.h pw_gr_defs.h pw_sp_defs.h \
utmp_defs.h time_defs.h prot_defs.h md5_defs.h
lib.a: $(ALL_H) $(ALL_O)
ar cr lib.a $(ALL_O)
MYARCH:=$(shell uname -m | sed -e 's/i[4-9]86/i386/' -e 's/armv[3-6]t\?e\?[lb]/arm/')
dietlibc/bin-$(MYARCH)/diet:
cvs -d :pserver:[email protected]:/cvs -z9 co dietlibc
cd dietlibc && make
dietbuild: dietlibc/bin-$(MYARCH)/diet
DIETHOME=$(CURDIR)/dietlibc make \
CC="$(CURDIR)/$< -Os gcc -nostdinc -I$(CURDIR)/dietlibc/include"
TAR=tar
TAR_OPT=
MY_NAME=$(notdir $(CURDIR))
tar:
cd .. && $(TAR) -cvzf $(MY_NAME).tar.gz $(TAR_OPT) \
--owner=root --group=root --exclude dietlibc $(MY_NAME)
packit:
( echo $(MY_NAME); date -u -R ) > Version
make clean tar TAR=tar.f TAR_OPT=--sort
|