forked from psgroove/psgroove
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile.payload
49 lines (34 loc) · 875 Bytes
/
Makefile.payload
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
R2PTARGET = raw2payload
CFLAGS = -Wall -O3
CC = gcc
PPU_CC = ppu-gcc
PPU_OBJCOPY = ppu-objcopy
REMOVE = rm -f
REMOVEDIR = rm -rf
OBJDIR = .
PLOBJDIR = .
PLSRC = jig_payload.S \
port1_config_descriptor.S
PLOBJ = $(PLSRC:%.S=$(PLOBJDIR)/%.o)
PLBIN = $(PLOBJ:%.o=$(PLOBJDIR)/%.bin)
PLHEADER = $(PLBIN:%.bin=$(PLOBJDIR)/%.h)
all: deps $(R2PTARGET) payloads
deps:
@mkdir -p .depp
$(R2PTARGET): raw2payload.c
$(CC) $(CFLAGS) $< -o $@
payloads : $(PLOBJ) $(PLBIN) $(PLHEADER)
port1_config_descriptor.o: $(wildcard payload_*.S)
%.o : %.S
$(PPU_CC) -c $< -o $@
%.bin : %.o
$(PPU_OBJCOPY) -O binary $< $@
%.h : %.bin
$(PWD)/$(R2PTARGET) $< $@ $(*F)
# Target: clean project.
clean:
$(REMOVE) $(R2PTARGET)
$(REMOVE) $(PLSRC:%.S=$(PLOBJDIR)/%.o)
$(REMOVE) $(PLOBJ:%.o=$(PLOBJDIR)/%.bin)
$(REMOVE) $(PLBIN:%.bin=$(PLOBJDIR)/%.h)
.PHONY: all deps payloads clean