summaryrefslogtreecommitdiff
path: root/sim/ucsim/stm8.src/test/sdcc.mk
blob: 2b548626059776ddf84bfb646b4aa0889beebaa2 (plain) (blame)
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
VPATH		= ..

vpath		%.mk $(VPATH)

TARGET		= stm8

CC		= sdcc -m$(TARGET) --std-c99

CPPFLAGS	=
CFLAGS		= --debug
LDFLAGS		=
LIBS		=

-include	$(MAIN).mk

DEVICES		?= S208

ALL		= $(MAIN) $(OTHERS)

OBJECTS		= $(MAIN).rel $(OTHERS:=.rel)

CPPFLAGS	= -DDEVICE=DEV_STM8$(DEVICE) -I$(VPATH)

.SUFFIXES: .rel .ihx .hex

.PHONY: $(DEVICES)

all: $(DEVICES)

$(DEVICES):
	test -d $@ || mkdir $@
	$(MAKE) -C $@ DEVICE=$@ REAL=yes MAIN=$(MAIN) -I$(VPATH) -f$(VPATH)/sdcc.mk compile copy_result

copy_result: $(VPATH)/$(MAIN)_$(DEVICE).hex $(VPATH)/$(MAIN)_$(DEVICE).cdb

$(VPATH)/$(MAIN)_$(DEVICE).hex: $(MAIN).hex
	cp $< $@

$(VPATH)/$(MAIN)_$(DEVICE).cdb: $(MAIN).cdb
	cp $(MAIN).cdb $@

compile: dep $(MAIN).hex

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

.ihx.hex:
	packihx $< >$@

$(MAIN).ihx: $(OBJECTS)
	$(CC) $(CFLAGS) $(LDFLAAGS) $(OBJECTS) -o $@

$(MAIN).cdb: $(MAIN).hex

dep: $(MAIN).dep

$(MAIN).dep: $(addprefix ../,$(OBJECTS:.rel=.c)) ../*.h
	for c in $(addprefix ../,$(OBJECTS:.rel=.c)); do \
		$(CC) -MM $(CPPFLAGS) $$c >>$@; \
	done

clean:
	rm -rf $(DEVICES)

ifeq ($(REAL),yes)
include $(MAIN).dep
endif