-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
68 lines (54 loc) · 1.54 KB
/
Makefile
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
BIN_DIR=/usr/local/sbin
ETC_DIR=/etc
PROGRAM = router_control
FILES_TO_COMPILE = main str params message config tools dialog login arp ping
HEADERS_TO_COMPILE = define
CC = g++
OS_FLAGS = "-DFREEBSD"
CCFLAGS = -g -Wall -DBIN_DIR="\"${BIN_DIR}\"" ${OS_FLAGS}
LDFLAGS =
C_SUFFIX = cpp
H_SUFFIX = h
HEADERS = $(addsuffix .$(H_SUFFIX), $(HEADERS_TO_COMPILE))
OBJS = $(addsuffix .o, $(FILES_TO_COMPILE))
FILES = $(addsuffix .$(C_SUFFIX), $(FILES_TO_COMPILE))
MAKEFLAGS = --no-print-directory --silent
all: compile-all link-all
ifeq (${OS_FLAGS},"-DFREEBSD")
else
endif
compile-all: $(OBJS)
echo "Compile done"
link-all: $(OBJS)
$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS)
%.o: %.$(C_SUFFIX) %.$(H_SUFFIX) $(HEADERS)
$(CC) $(CCFLAGS) -c $< -o $@
echo "$@ - done"
clean:
rm -rf $(OBJS) $(PROGRAM)
echo "Clean done"
install:
mkdir -p $(BIN_DIR)
cp -f $(PROGRAM) $(BIN_DIR)/$(PROGRAM)
if [ ! -f $(ETC_DIR)/$(PROGRAM) ]; then \
cp config $(ETC_DIR)/$(PROGRAM); \
fi
cp -f rc_start_ping.sh $(BIN_DIR)/rc_start_ping.sh
cp -f rc_stop_ping.sh $(BIN_DIR)/rc_stop_ping.sh
ifeq (${OS_FLAGS},"-DFREEBSD")
chown root:wheel $(BIN_DIR)/rc_start_ping.sh
chown root:wheel $(BIN_DIR)/rc_stop_ping.sh
else
chown root:root $(BIN_DIR)/rc_start_ping.sh
chown root:root $(BIN_DIR)/rc_stop_ping.sh
endif
chmod 500 $(BIN_DIR)/rc_start_ping.sh
chmod 500 $(BIN_DIR)/rc_stop_ping.sh
echo "Install done"
uninstall:
rm -rf $(BIN_DIR)/$(PROGRAM)
rm -rf $(BIN_DIR)/rc_start_ping.sh
rm -rf $(BIN_DIR)/rc_stop_ping.sh
rm -rf $(ETC_DIR)/$(PROGRAM)
echo "Uninstall done"
.NOEXPORT: