summaryrefslogtreecommitdiff
path: root/n/avr/make/Makefile.host
diff options
context:
space:
mode:
Diffstat (limited to 'n/avr/make/Makefile.host')
-rw-r--r--n/avr/make/Makefile.host45
1 files changed, 45 insertions, 0 deletions
diff --git a/n/avr/make/Makefile.host b/n/avr/make/Makefile.host
new file mode 100644
index 0000000..c50c83b
--- /dev/null
+++ b/n/avr/make/Makefile.host
@@ -0,0 +1,45 @@
+# Makefile.host - Host Makefile.
+#
+# Flags. {{{1
+
+HOST_CFLAGS = $(CFLAGS)
+HOST_CPPFLAGS = $(CPPFLAGS) $(HOST_DEFS) -DHOST=1
+HOST_LDFLAGS = $(LDFLAGS)
+
+HOST_COMPILE.c = $(CC) $(HOST_CFLAGS) $(HOST_CPPFLAGS) -c
+HOST_LINK.o = $(CC) $(HOST_CFLAGS) $(HOST_LDFLAGS)
+
+# Main rules. {{{1
+
+host: exe
+
+.PHONY: host clean.host exe
+
+# General rules. {{{1
+
+HOST_EXES = $(PROGS:%=%.host)
+HOST_SOURCES = $(filter-out %.avr.c,$(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,$$($(1)_SOURCES)))
+endef
+
+$(foreach prog,$(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. {{{1
+
+clean.host:
+ rm -f *.host.o *.host.d $(HOST_EXES)
+