initial commit of lk (little kernel) project
diff --git a/build.mk b/build.mk
new file mode 100644
index 0000000..028dc2c
--- /dev/null
+++ b/build.mk
@@ -0,0 +1,30 @@
+# comment out or override if you want to see the full output of each command
+NOECHO ?= @
+
+$(OUTBIN): $(OUTELF)
+	@echo generating image: $@
+	$(NOECHO)$(SIZE) $<
+	$(NOCOPY)$(OBJCOPY) -O binary $< $@
+
+$(OUTELF): $(ALLOBJS) $(LINKER_SCRIPT)
+	@echo linking $@
+	$(NOECHO)$(LD) $(LDFLAGS) -T $(LINKER_SCRIPT) $(ALLOBJS) $(LIBGCC) -o $@
+
+$(OUTELF).sym: $(OUTELF)
+	@echo generating symbols: $@
+	$(NOECHO)$(OBJDUMP) -t $< | $(CPPFILT) > $@
+
+$(OUTELF).lst: $(OUTELF)
+	@echo generating listing: $@
+	$(NOECHO)$(OBJDUMP) -Mreg-names-raw -d $< | $(CPPFILT) > $@
+
+$(OUTELF).debug.lst: $(OUTELF)
+	@echo generating listing: $@
+	$(NOECHO)$(OBJDUMP) -Mreg-names-raw -S $< | $(CPPFILT) > $@
+
+$(OUTELF).size: $(OUTELF)
+	@echo generating size map: $@
+	$(NOECHO)$(NM) -S --size-sort $< > $@
+
+include arch/$(ARCH)/compile.mk
+