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
|
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.
.PHONY: libraries
libraries: bin/libmdsserver.so
.PHONY: servers
servers: $(foreach S,$(SERVERS),bin/$(S))
.PHONY: tools
tools: $(foreach T,$(TOOLS),bin/$(T))
# Link large servers.
ifneq ($(LIBMDSSERVER_IS_INSTALLED),y)
bin/mds-server: $(OBJ_mds-server) obj/mds-base.o src/mds-server/*.h bin/libmdsserver.so $(SEDED)
else
bin/mds-server: $(OBJ_mds-server) obj/mds-base.o src/mds-server/*.h $(SEDED)
endif
mkdir -p $(shell dirname $@)
$(CC) $(C_FLAGS) -o $@ $(LDS) $(LDS_mds-server) $(OBJ_mds-server) obj/mds-base.o
ifeq ($(DEBUG),y)
mv $@ $@.real
cp test.d/mds-server $@
endif
ifneq ($(LIBMDSSERVER_IS_INSTALLED),y)
bin/mds-registry: $(OBJ_mds-registry) obj/mds-base.o src/mds-registry/*.h bin/libmdsserver.so $(SEDED)
else
bin/mds-registry: $(OBJ_mds-registry) obj/mds-base.o src/mds-registry/*.h $(SEDED)
endif
mkdir -p $(shell dirname $@)
$(CC) $(C_FLAGS) -o $@ $(LDS) $(LDS_mds-registry) $(OBJ_mds-registry) obj/mds-base.o
# Link small servers.
ifneq ($(LIBMDSSERVER_IS_INSTALLED),y)
bin/%: obj/%.o obj/mds-base.o bin/libmdsserver.so $(SEDED)
else
bin/%: obj/%.o obj/mds-base.o $(SEDED)
endif
mkdir -p $(shell dirname $@)
$(CC) $(C_FLAGS) -o $@ $(LDS) $(LDS_$*) $< obj/mds-base.o
# Link kernel.
ifneq ($(LIBMDSSERVER_IS_INSTALLED),y)
bin/mds: obj/mds.o bin/libmdsserver.so $(SEDED)
else
bin/mds: obj/mds.o $(SEDED)
endif
mkdir -p $(shell dirname $@)
$(CC) $(C_FLAGS) -o $@ $(LDS) $(LDS_mds) $<
# Link utilies that do not use mds-base.
ifneq ($(LIBMDSSERVER_IS_INSTALLED),y)
bin/mds-kbdc: obj/mds-kbdc.o bin/libmdsserver.so $(SEDED)
else
bin/mds-kbdc: obj/mds-kbdc.o $(SEDED)
endif
mkdir -p $(shell dirname $@)
$(CC) $(C_FLAGS) -o $@ $(LDS) $(LDS_mds) $<
# Build object files for kernel/servers.
ifneq ($(LIBMDSSERVER_IS_INSTALLED),y)
obj/%.o: src/%.c $(shell dirname src/%)/*.h src/mds-base.h src/libmdsserver/*.h $(SEDED)
mkdir -p $(shell dirname $@)
$(CC) $(C_FLAGS) -Isrc -c -o $@ $<
else
obj/%.o: src/%.c $(shell dirname src/%)/*.h src/mds-base.h $(SEDED)
mkdir -p $(shell dirname $@)
$(CC) $(C_FLAGS) -c -o $@ $<
endif
# Build libmdsserver.
bin/libmdsserver.so: $(foreach O,$(LIBOBJ),obj/libmdsserver/$(O).o)
mkdir -p $(shell dirname $@)
$(CC) $(C_FLAGS) -shared -o $@ $^
obj/libmdsserver/%.o: src/libmdsserver/%.c src/libmdsserver/*.h $(SEDED)
mkdir -p $(shell dirname $@)
$(CC) $(C_FLAGS) -fPIC -c -o $@ $<
# sed header files.
ifneq ($(LIBMDSSERVER_IS_INSTALLED),y)
src/libmdsserver/config.h: src/libmdsserver/config.h.in
cp $< $@
sed -i 's:@PKGNAME@:$(PKGNAME):g' $@
sed -i 's:@LIBEXECDIR@:$(LIBEXECDIR):g' $@
sed -i 's:@TMPDIR@:$(TMPDIR):g' $@
sed -i 's:@RUNDIR@:$(RUNDIR):g' $@
sed -i 's:@SYSCONFDIR@:$(SYSCONFDIR):g' $@
sed -i 's:@DEVDIR@:$(DEVDIR):g' $@
sed -i 's:@ROOT_USER_UID@:$(ROOT_USER_UID):g' $@
sed -i 's:@ROOT_GROUP_GID@:$(ROOT_GROUP_GID):g' $@
sed -i 's:@NOBODY_GROUP_GID@:$(NOBODY_GROUP_GID):g' $@
sed -i 's:@TOKEN_LENGTH@:$(TOKEN_LENGTH):g' $@
sed -i 's:@ARGC_LIMIT@:$(ARGC_LIMIT):g' $@
sed -i 's:@LIBEXEC_ARGC_EXTRA_LIMIT@:$(LIBEXEC_ARGC_EXTRA_LIMIT):g' $@
sed -i 's:@DISPLAY_MAX@:$(DISPLAY_MAX):g' $@
sed -i 's:@RESPAWN_TIME_LIMIT_SECONDS@:$(RESPAWN_TIME_LIMIT_SECONDS):g' $@
sed -i 's:@DISPLAY_ENV@:$(DISPLAY_ENV):g' $@
sed -i 's:@PGROUP_ENV@:$(PGROUP_ENV):g' $@
sed -i 's:@INITRC_FILE@:$(INITRC_FILE):g' $@
sed -i 's:@SELF_EXE@:$(SELF_EXE):g' $@
sed -i 's:@SELF_FD@:$(SELF_FD):g' $@
sed -i 's:@TOKEN_RANDOM@:$(TOKEN_RANDOM):g' $@
sed -i 's:@VT_PATH_PATTERN@:$(VT_PATH_PATTERN):g' $@
sed -i 's:@SHM_PATH_PATTERN@:$(SHM_PATH_PATTERN):g' $@
sed -i 's:@MDS_RUNTIME_ROOT_DIRECTORY@:$(MDS_RUNTIME_ROOT_DIRECTORY):g' $@
sed -i 's:@MDS_STORAGE_ROOT_DIRECTORY@:$(MDS_STORAGE_ROOT_DIRECTORY):g' $@
endif
|