Koraidon
/
Makefile
69 строк · 1.4 Кб
1# Use `chcp 1251` to decode errors
2
3# Use "--sysroot=$(SYSROOT_DIR)" for older NDKs
4
5NDK ?= android-ndk-r25c
6NDK_PATH ?= $(HOME)/$(NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin
7
8SRC = src/main.c \
9src/image_formats/tga.c \
10src/video/screen.c \
11src/video/pixel.c \
12src/video/backfb.c \
13src/video/tga_image.c \
14src/video/scaler.c \
15src/video/blit.c \
16src/video/pixfmt_conv.c \
17src/sensors/battery.c \
18src/ui/psf_font.c \
19src/ui/rect.c \
20
21OBJS = $(SRC:.c=.o)
22PROJECT = koraidon_firmware
23
24RM ?= rm
25CC = $(NDK_PATH)/armv7a-linux-androideabi24-clang
26STRIP = $(NDK_PATH)/llvm-strip
27CFLAGS ?= -Iinclude -static -flto -O0 -Wall
28
29PY ?= python3
30
31# STATIC_C = $(NDK_PATH)/../sysroot/usr/lib/arm-linux-androideabi/libc.a
32
33all: $(PROJECT)
34
35$(PROJECT): $(OBJS)
36$(CC) $(OBJS) -static -o $(PROJECT)
37$(STRIP) -s $(PROJECT)
38$(PY) tools/fix_tls_alignment.py $(PROJECT)
39
40$(OBJS): %.o : %.c
41$(CC) $? -c $(CFLAGS) -o $@
42
43clean:
44-$(RM) $(PROJECT)
45-$(RM) $(OBJS)
46
47build_ports:
48cd ports/gameboy && \
49CC=$(CC) $(MAKE)
50
51cd ..
52
53setup_device:
54@echo "Now, turn your phone into recovery mode."
55@echo -n "Press any key to continue..."
56@bash -c read -sn1
57
58adb shell mount /dev/block/platform/*/by-name/system /system
59
60push:
61@echo "Now, connect your phone in pseudo-recovery mode."
62@echo -n "Press any key to continue..."
63@bash -c read -sn1
64
65adb push $(PROJECT) /
66adb shell chmod +x /$(PROJECT)
67
68run:
69adb shell /koraidon_firmware
70