summaryrefslogtreecommitdiff
path: root/n/avr/make/Makefile.host
blob: 3fd343ffbf44f82122b109adbe3d9c7779151d72 (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
# Makefile.host - Host Makefile.
#
# Flags.

HOST_CFLAGS = $(CFLAGS)
HOST_CPPFLAGS = $(CPPFLAGS) $(HOST_DEFS) -DHOST=1
HOST_LDFLAGS = $(LDFLAGS)
HOST_LDLIBS = $(LDLIBS) $(HOST_LIBS)

HOST_COMPILE.c = $(CC) $(HOST_CFLAGS) $(HOST_CPPFLAGS) -c
HOST_LINK.o = $(CC) $(HOST_CFLAGS) $(HOST_LDFLAGS)

# Main rules.

host: exe

.PHONY: host clean.host exe

# General rules.

HOST_PROGS += $(PROGS)
HOST_EXES = $(HOST_PROGS:%=%.host)
HOST_SOURCES = $(filter-out %.avr.c %.avr.S,$(SOURCES))
HOST_OBJECTS = $(HOST_SOURCES:%.c=%.host.o)

exe: $(HOST_EXES)

define AVR_PROG_template
$(1).host: $$(patsubst %.c,%.host.o,$$(filter-out %.avr.c %.avr.S,$$($(1)_SOURCES)))
endef

$(foreach prog,$(HOST_PROGS),$(eval $(call AVR_PROG_template,$(prog))))

$(HOST_EXES):
	$(HOST_LINK.o) $^ $(HOST_LDLIBS) -o $@

%.host.o: %.c
	$(HOST_COMPILE.c) -o $@ $<

# Dependency checking.
-include $(HOST_OBJECTS:%.host.o=%.host.d)

# Cleaning.

clean.host:
	rm -f *.host.o *.host.d $(HOST_EXES)