aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 37f8428a1df4ae742472976d883293e431b5077b (plain)
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
IDIR=include
CFLAGS=-O3 -ffast-math -Wall -Wextra -Wpedantic -std=c99 -D_DEFAULT_SOURCE $(DEFINES) -I$(IDIR)
NATIVE_FLAGS=-march=native

CTAK=include/tak.c
CTAK_OBJS=$(CTAK:.c=.o)
CAND_SRCS=include/cand_weights_5.c include/cand_weights_6.c
SRCS=$(filter-out include/lcdlib.c $(CAND_SRCS),$(wildcard include/*.c))
OBJS=$(SRCS:.c=.o)

BUILDROOT_DIR=buildroot-2020.11.1
CROSS_CC=$(BUILDROOT_DIR)/output/host/bin/arm-linux-cc
CROSS_STRIP=$(BUILDROOT_DIR)/output/host/bin/arm-linux-strip

.DEFAULT_GOAL=native

%.o: %.c
	$(CC) -c $< -o $@ $(CFLAGS)

geminict: src/geminict.o $(OBJS)
	$(CC) $(CFLAGS) src/geminict.o $(OBJS) -o geminict

ctlm: src/ctlm.o $(OBJS)
	$(CC) $(CFLAGS) src/ctlm.o $(OBJS) -o ctlm

cttei: src/cttei.o $(OBJS)
	$(CC) $(CFLAGS) src/cttei.o $(OBJS) -o cttei

clean:
	rm -f ctlm ct1986 cttei pptdb geminict selfplay match
	rm -f src/*.o include/*.o

native: CFLAGS += $(NATIVE_FLAGS)
native: clean ctlm cttei geminict

.PHONY: selfplay
selfplay:
	$(MAKE) clean
	$(MAKE) DEFINES=-DRECORD_PV selfplay-bin

selfplay-bin: CFLAGS += $(NATIVE_FLAGS)
selfplay-bin: src/selfplay.o $(OBJS)
	$(CC) $(CFLAGS) src/selfplay.o $(OBJS) -o selfplay

match: CFLAGS += $(NATIVE_FLAGS)
match: src/match.o $(OBJS)
	$(CC) $(CFLAGS) src/match.o $(OBJS) -o match

$(CROSS_CC):
	./resources/do_buildroot.sh $(BUILDROOT_DIR)

ct1986: CC=$(CROSS_CC)
ct1986: STRIP=$(CROSS_STRIP)
ct1986: $(CROSS_CC) clean src/ct1986.o include/lcdlib.o $(OBJS)
	$(CC) $(CFLAGS) src/ct1986.o $(OBJS) include/lcdlib.o -o ct1986 -lcurses
	$(STRIP) ct1986

pi: CC=$(CROSS_CC)
pi: STRIP=$(CROSS_STRIP)
pi: $(CROSS_CC) ct1986 ctlm
	mkdir -p $(BUILDROOT_DIR)/board/raspberrypi0/rootfs_overlay/usr/bin/
	cp ct1986 ctlm $(BUILDROOT_DIR)/board/raspberrypi0/rootfs_overlay/usr/bin/
	cp resources/ash-profile $(BUILDROOT_DIR)/board/raspberrypi0/rootfs_overlay/.profile
	make -C $(BUILDROOT_DIR)
	$(info Image ready in $(BUILDROOT_DIR)/output/images/sdcard.img)