forked from kouk/grawity-code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
151 lines (122 loc) · 3.47 KB
/
Makefile
File metadata and controls
151 lines (122 loc) · 3.47 KB
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# vim: ft=make
comma := ,
empty :=
space := $(empty) $(empty)
UNAME := $(shell uname)
OBJ := $(shell dist/prepare -o)
ifeq ($(origin CC),default)
CC := gcc
endif
CFLAGS := -pipe -Wall -O1 -g
LDFLAGS := -Wl,--as-needed
CRYPT_LDLIBS := -lcrypt
DL_LDLIBS := -ldl
KRB_LDLIBS := -lkrb5 -lcom_err
ifeq ($(UNAME),Linux)
OSFLAGS := -DHAVE_LINUX
endif
ifeq ($(UNAME),FreeBSD)
OSFLAGS := -DHAVE_FREEBSD
DL_LDLIBS := $(empty)
endif
ifeq ($(UNAME),GNU)
OSFLAGS := -DHAVE_HURD
endif
ifeq ($(UNAME),NetBSD)
OSFLAGS := -DHAVE_NETBSD
endif
ifeq ($(UNAME),OpenBSD)
OSFLAGS := -DHAVE_OPENBSD
CRYPT_LDLIBS := $(empty)
DL_LDLIBS := $(empty)
KRB_LDLIBS := -lkrb5 -lcom_err -lcrypto
endif
ifeq ($(UNAME),CYGWIN_NT-5.1)
OSFLAGS := -DHAVE_CYGWIN
endif
ifeq ($(UNAME),SunOS)
OSFLAGS := -DHAVE_SOLARIS
KRB_LDLIBS := -lkrb5
endif
override CFLAGS += -I./misc $(OSFLAGS)
# misc targets
.PHONY: default pre clean mrproper
ifdef obj
default: $(addprefix $(OBJ)/,$(subst $(comma),$(space),$(obj)))
else
CURRENT_BINS := $(wildcard $(OBJ)/*)
ifneq ($(CURRENT_BINS),)
default: $(CURRENT_BINS)
else
default: basic
endif
endif
pre:
@dist/prepare
clean:
rm -rf obj/arch.* obj/dist.* obj/host.*
mrproper:
git clean -fdX
git checkout -f obj
# compile targets
BASIC_BINS := args mkpasswd natsort pause proctool silentcat spawn strtool zlib
KRB_BINS := k5userok pklist
LINUX_BINS := globalenv libfunlink.so linux26 setns subreaper tapchown
MISC_BINS := bgrep logwipe ttysize writevt xor xors
.PHONY: all basic krb linux misc pklist
basic: $(addprefix $(OBJ)/,$(BASIC_BINS))
krb: $(addprefix $(OBJ)/,$(KRB_BINS))
linux: $(addprefix $(OBJ)/,$(LINUX_BINS))
misc: $(addprefix $(OBJ)/,$(MISC_BINS))
all: basic krb misc
ifeq ($(UNAME),Linux)
all: linux
endif
# advertised in the pklist readme
pklist: $(OBJ)/pklist
# libraries
$(OBJ)/libfunlink.so: CFLAGS += -shared -fPIC
$(OBJ)/libfunlink.so: LDLIBS += $(DL_LDLIBS)
$(OBJ)/libfunlink.so: system/libfunlink.c
$(OBJ)/libfunsync.so: CFLAGS += -shared
$(OBJ)/libfunsync.so: system/libfunsync.c
# objects
$(OBJ)/misc_util.o: misc/util.c misc/util.h
$(OBJ)/strnatcmp.o: thirdparty/strnatcmp.c
# executables
$(OBJ)/args: misc/args.c
$(OBJ)/bgrep: thirdparty/bgrep.c
$(OBJ)/globalenv: LDLIBS += -lkeyutils
$(OBJ)/globalenv: system/globalenv.c $(OBJ)/misc_util.o
$(OBJ)/k5userok: LDLIBS += $(KRB_LDLIBS)
$(OBJ)/k5userok: kerberos/k5userok.c kerberos/krb5.h
$(OBJ)/linux26: thirdparty/linux26.c
$(OBJ)/logwipe: thirdparty/logwipe.c misc/feature.h
$(OBJ)/mkpasswd: LDLIBS += $(CRYPT_LDLIBS)
$(OBJ)/mkpasswd: security/mkpasswd.c
$(OBJ)/natsort: thirdparty/natsort.c $(OBJ)/strnatcmp.o
$(OBJ)/pklist: LDLIBS += $(KRB_LDLIBS)
$(OBJ)/pklist: kerberos/pklist.c kerberos/krb5.h
$(OBJ)/pause: system/pause.c
$(OBJ)/proctool: system/proctool.c $(OBJ)/misc_util.o
$(OBJ)/setns: system/setns.c
$(OBJ)/silentcat: misc/silentcat.c
$(OBJ)/spawn: system/spawn.c $(OBJ)/misc_util.o misc/feature.h
$(OBJ)/strtool: misc/strtool.c $(OBJ)/misc_util.o
$(OBJ)/subreaper: system/subreaper.c
$(OBJ)/tapchown: net/tapchown.c
$(OBJ)/ttysize: system/ttysize.c
$(OBJ)/writevt: thirdparty/writevt.c
$(OBJ)/xor: misc/xor.c
$(OBJ)/xors: misc/xors.c
$(OBJ)/zlib: LDLIBS += -lz
$(OBJ)/zlib: thirdparty/zpipe.c
# general rules
$(OBJ)/%.o: | dist/empty.c
@echo " CC $(notdir $@) ($<)"
@$(COMPILE.c) $(OUTPUT_OPTION) $<
$(OBJ)/%: | dist/empty.c
@echo " CCLD $(notdir $@) ($<)"
@$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@
# hack for old Make (unsupported order-only deps)
dist/empty.c: pre