-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
69 lines (51 loc) · 1.46 KB
/
Makefile
File metadata and controls
69 lines (51 loc) · 1.46 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
all: sailnavsim tests
tests: sailnavsim_tests
OBJS = \
src/Boat.o \
src/BoatInitParser.o \
src/BoatRegistry.o \
src/BoatWindResponse.o \
src/CelestialSight.o \
src/Command.o \
src/ErrLog.o \
src/GeoInfoPreloader.o \
src/GeoUtils.o \
src/Logger.o \
src/NetServer.o \
src/Perf.o \
src/WxUtils.o
TESTS_OBJS = \
tests/test_BoatRegistry.o \
tests/test_NetServer.o \
tests/test_WxUtils.o
LIBPROTEUS_A = libproteus/libproteus.a
RUSTLIB_A = rustlib/target/release/libsailnavsim_rustlib.a
SRC_INCLUDES = \
-Ilibproteus/include \
-Irustlib/include
SOLIB_DEPS = \
-lm \
-lz \
-ldl \
-lpthread \
-lsqlite3
$(LIBPROTEUS_A):
make CFLAGS="$(CFLAGS)" -C libproteus libproteus
$(RUSTLIB_A):
cd rustlib; \
cargo build --release; \
cd ..;
src/%.o: src/%.c
$(CC) -c -Wall -Wextra -O2 -D_GNU_SOURCE $(CFLAGS) $(SRC_INCLUDES) -o $@ $<
sailnavsim: $(OBJS) src/main.o $(LIBPROTEUS_A) $(RUSTLIB_A)
$(CC) -O2 -D_GNU_SOURCE $(CFLAGS) -o sailnavsim src/main.o $(OBJS) $(LIBPROTEUS_A) $(RUSTLIB_A) $(SOLIB_DEPS)
tests/%.o: tests/%.c
$(CC) -c -Wall -Wextra -O2 -D_GNU_SOURCE $(CFLAGS) -Isrc $(SRC_INCLUDES) -o $@ $<
sailnavsim_tests: $(TESTS_OBJS) $(OBJS) tests/tests_main.o $(LIBPROTEUS_A) $(RUSTLIB_A)
$(CC) -O2 -D_GNU_SOURCE $(CFLAGS) -o sailnavsim_tests tests/tests_main.o $(TESTS_OBJS) $(OBJS) $(LIBPROTEUS_A) $(RUSTLIB_A) $(SOLIB_DEPS)
clean:
rm -rf src/*.o tests/*.o sailnavsim sailnavsim_tests; \
make -C libproteus clean; \
cd rustlib; \
cargo clean; \
cd ..;