-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
95 lines (76 loc) · 1.9 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
ifeq ($(shell echo $$OS),$$OS)
MAKEDIR = if not exist "$(1)" mkdir "$(1)"
RM = rmdir /S /Q "$(1)"
else
MAKEDIR = '$(SHELL)' -c "mkdir -p \"$(1)\""
RM = '$(SHELL)' -c "rm -rf \"$(1)\""
endif
OBJDIR := BUILD
SRCDIR := $(CURDIR)
.PHONY: clean
.SUFFIXES:
.SUFFIXES: .cpp .o
vpath %.cpp .
vpath %.c .
vpath %.h .
PROJECT := PokittoEmu
BPROJECT := BUILD/PokittoEmu
OBJECTS += BUILD/sys.o
OBJECTS += BUILD/scale2x.o
OBJECTS += BUILD/audio.o
OBJECTS += BUILD/iocon.o
OBJECTS += BUILD/gpio.o
OBJECTS += BUILD/adc.o
OBJECTS += BUILD/iap.o
OBJECTS += BUILD/timers.o
OBJECTS += BUILD/usart.o
OBJECTS += BUILD/rtc.o
OBJECTS += BUILD/thumb2.o
OBJECTS += BUILD/screen.o
OBJECTS += BUILD/mmu.o
OBJECTS += BUILD/pex.o
OBJECTS += BUILD/main.o
OBJECTS += BUILD/sdl.o
OBJECTS += BUILD/cpu.o
OBJECTS += BUILD/gdb.o
OBJECTS += BUILD/prof.o
OBJECTS += BUILD/verify.o
OBJECTS += BUILD/sd.o
OBJECTS += BUILD/sct.o
OBJECTS += BUILD/spi.o
OBJECTS += BUILD/loadBin.o
OBJECTS += BUILD/loadEeprom.o
OBJECTS += BUILD/zip2fat.o
OBJECTS += BUILD/ChaN/ccsbcs.o
OBJECTS += BUILD/ChaN/diskio.o
OBJECTS += BUILD/ChaN/ff.o
INCLUDE_PATHS += -I./.
LIBRARY_PATHS :=
LIBRARIES := $(shell sdl2-config --libs)
LIBRARIES += -lSDL2_net
LIBRARIES += -lSDL2_image
LIBRARIES += -larchive
LIBRARIES += -lpthread
LD_SYS_LIBS :=
CPP = 'g++' '-c' '-O3'
C = 'gcc' '-c' '-O3'
LD = 'g++' '-O3'
CXX_FLAGS += -std=c++17
CXX_FLAGS += -Wcomment
CXX_FLAGS += $(shell sdl2-config --cflags)
.PHONY: all lst size
all: $(BPROJECT) size
+@$(call MAKEDIR,$(OBJDIR))
clean:
$(call RM,$(OBJDIR))
BUILD/%.o : %.cpp
+@$(call MAKEDIR,$(dir $@))
+@echo "Compile: $(notdir $<)"
@$(CPP) $(CXX_FLAGS) $(INCLUDE_PATHS) -o $@ $<
BUILD/%.o : %.c
+@$(call MAKEDIR,$(dir $@))
+@echo "Compile: $(notdir $<)"
@$(C) $(INCLUDE_PATHS) -o $@ $<
$(BPROJECT): $(OBJECTS)
+@echo "link: $(notdir $@)"
@$(LD) $(LD_FLAGS) $(LIBRARY_PATHS) -o $@ $(filter %.o, $^) $(LIBRARIES) $(LD_SYS_LIBS)