summaryrefslogtreecommitdiffhomepage
path: root/project/headers.mk
diff options
context:
space:
mode:
Diffstat (limited to 'project/headers.mk')
-rw-r--r--project/headers.mk48
1 files changed, 45 insertions, 3 deletions
diff --git a/project/headers.mk b/project/headers.mk
index 9d50ee3..ea8bea4 100644
--- a/project/headers.mk
+++ b/project/headers.mk
@@ -1,5 +1,47 @@
-API_HEADERS = \
+# alltypes.h, syscall.h
+ALLTYPES_H = build/include/bits/alltypes.h
+SYSCALL_H = build/include/bits/syscall.h
-INTERNAL_HEADERS = \
+ARCH_GEN_H = $(ALLTYPES_H) $(SYSCALL_H)
-ALL_HEADERS = $(API_HEADERS) $(INTERNAL_HEADERS)
+ALLTYPES_DEPS = \
+ $(PORT_DIR)/arch/$(ARCH)/bits/alltypes.h.in \
+ $(SOURCE_DIR)/include/alltypes.h.in \
+ $(SOURCE_DIR)/tools/mkalltypes.sed
+
+$(ALLTYPES_H): build/headers.tag $(ALLTYPES_DEPS)
+ sed -f $(SOURCE_DIR)/tools/mkalltypes.sed \
+ $(PORT_DIR)/arch/$(ARCH)/bits/alltypes.h.in \
+ $(SOURCE_DIR)/include/alltypes.h.in > $@
+
+syscall-copy: $(PORT_DIR)/arch/$(ARCH)/bits/syscall.h build/headers.tag
+ cp $< $(SYSCALL_H)
+
+syscall-gen: $(PORT_DIR)/arch/$(ARCH)/bits/syscall.h.in build/headers.tag
+ cp $< $(SYSCALL_H).tmp
+ sed -n -e 's/__NR_/SYS_/p' < $< >> $(SYSCALL_H).tmp
+ mv $(SYSCALL_H).tmp $(SYSCALL_H)
+
+$(SYSCALL_H): syscall-arch
+
+
+
+# build/include
+build/headers.tag:
+ mkdir -p build/include
+ mkdir -p build/include/bits
+ touch $@
+
+clean-headers:
+ rm -f $(ARCH_GEN_H)
+ rm -f $(SYSCALL_H).tmp
+ rmdir build/include/bits 2>/dev/null || true
+ rmdir build/include 2>/dev/null || true
+ rm -f build/headers.tag
+
+clean: clean-headers
+
+.PHONY: syscall-arch
+.PHONY: syscall-copy
+.PHONY: syscall-gen
+.PHONY: clean-headers