-
Notifications
You must be signed in to change notification settings - Fork 87
/
Makefile
54 lines (39 loc) · 1.75 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
INSTALLDIR ?= /usr/local
BINDIR ?= $(INSTALLDIR)/bin
SYSCONFDIR ?= $(INSTALLDIR)/etc
LIBEXECDIR ?= $(INSTALLDIR)/lib/sigmavpn
SODIUM_CPPFLAGS ?= -I/usr/local/include
SODIUM_LDFLAGS ?= -L/usr/local/lib -lsodium
CFLAGS ?= -O2 -fPIC -Wall -Wextra
CPPFLAGS += $(SODIUM_CPPFLAGS)
LDFLAGS += $(SODIUM_LDFLAGS) -ldl -pthread
DYLIB_CFLAGS ?= $(CFLAGS) -shared
TARGETS_OBJS = dep/ini.o main.o modules.o naclkeypair.o pack.o tai.o
TARGETS_BIN = naclkeypair sigmavpn
TARGETS_MODULES = proto/proto_raw.o proto/proto_nacl0.o proto/proto_nacltai.o \
intf/intf_tuntap.o intf/intf_udp.o
TARGETS = $(TARGETS_OBJS) $(TARGETS_BIN) $(TARGETS_MODULES)
all: $(TARGETS)
clean:
rm -f $(TARGETS)
distclean: clean
install: all
mkdir -p $(BINDIR) $(SYSCONFDIR) $(LIBEXECDIR)
cp $(TARGETS_BIN) $(BINDIR)
cp $(TARGETS_MODULES) $(LIBEXECDIR)
proto/proto_raw.o: proto/proto_raw.c
$(CC) $(CPPFLAGS) $(SODIUM_CPPFLAGS) proto/proto_raw.c -o proto/proto_raw.o $(DYLIB_CFLAGS) $(SODIUM_LDFLAGS)
proto/proto_nacl0.o: proto/proto_nacl0.c pack.o
$(CC) $(CPPFLAGS) $(SODIUM_CPPFLAGS) proto/proto_nacl0.c pack.o -o proto/proto_nacl0.o $(DYLIB_CFLAGS) $(SODIUM_LDFLAGS)
proto/proto_nacltai.o: proto/proto_nacltai.c pack.o tai.o
$(CC) $(CPPFLAGS) $(SODIUM_CPPFLAGS) proto/proto_nacltai.c pack.o tai.o -o proto/proto_nacltai.o $(DYLIB_CFLAGS) $(SODIUM_LDFLAGS)
intf/intf_tuntap.o: intf/intf_tuntap.c
$(CC) $(CPPFLAGS) intf/intf_tuntap.c -o intf/intf_tuntap.o $(DYLIB_CFLAGS)
intf/intf_udp.o: intf/intf_udp.c
$(CC) $(CPPFLAGS) intf/intf_udp.c -o intf/intf_udp.o $(DYLIB_CFLAGS)
naclkeypair: naclkeypair.o
$(CC) -o naclkeypair naclkeypair.o $(LDFLAGS)
sigmavpn: main.o modules.o dep/ini.o
$(CC) -o sigmavpn main.o modules.o dep/ini.o $(LDFLAGS)
%.o: %.c $(HEADERS)
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@