3a6f4c
project: added rules for install-headers, simplified include path scheme.
@@ -1,7 +1,7 @@
|
|
1
1
|
project
|
2
2
|
mb_package=c
|
3
3
|
mb_require_out_of_tree=no
|
4
|
-
mb_custom_install_headers=
|
4
|
+
mb_custom_install_headers=yes
|
5
5
|
mb_avoid_version=no
|
6
6
|
|
7
7
|
config
|
@@ -34,13 +34,9 @@ mb_default_cflags_common="-std=c99 -pipe -D_XOPEN_SOURCE=700"
|
|
34
34
|
mb_default_cflags_common="$mb_default_cflags_common -ffreestanding -nostdinc"
|
35
35
|
mb_default_cflags_common="$mb_default_cflags_common -fomit-frame-pointer"
|
36
36
|
mb_default_cflags_common="$mb_default_cflags_common -Ibuild/include"
|
37
|
-
mb_default_cflags_common="$mb_default_cflags_common -I\$(
|
37
|
+
mb_default_cflags_common="$mb_default_cflags_common -I\$(PORT_DIR)/arch/\$(ARCH)"
|
38
|
-
mb_default_cflags_common="$mb_default_cflags_common -I\$(PROJECT_DIR)/arch/\$(ARCH)"
|
39
|
-
mb_default_cflags_common="$mb_default_cflags_common -I\$(SOURCE_DIR)/arch/\$(ARCH)/generic"
|
40
|
-
mb_default_cflags_common="$mb_default_cflags_common -Iobj/src/internal"
|
41
38
|
mb_default_cflags_common="$mb_default_cflags_common -I\$(SOURCE_DIR)/src/include"
|
42
39
|
mb_default_cflags_common="$mb_default_cflags_common -I\$(SOURCE_DIR)/src/internal"
|
43
|
-
mb_default_cflags_common="$mb_default_cflags_common -Iobj/include"
|
44
40
|
mb_default_cflags_common="$mb_default_cflags_common -I\$(SOURCE_DIR)/include"
|
45
41
|
mb_default_cflags_common="$mb_default_cflags_common -Ibuild"
|
46
42
|
|
@@ -1,4 +1,7 @@
|
|
1
1
|
# alltypes.h, syscall.h
|
2
|
+
build/include/bits/:
|
3
|
+
mkdir -p $@
|
4
|
+
|
2
5
|
ALLTYPES_H = build/include/bits/alltypes.h
|
3
6
|
SYSCALL_H = build/include/bits/syscall.h
|
4
7
|
|
@@ -9,15 +12,17 @@ ALLTYPES_DEPS = \
|
|
9
12
|
$(SOURCE_DIR)/include/alltypes.h.in \
|
10
13
|
$(SOURCE_DIR)/tools/mkalltypes.sed
|
11
14
|
|
12
|
-
$(ALLTYPES_H):
|
15
|
+
$(ALLTYPES_H): $(ALLTYPES_DEPS) build/include/bits/
|
13
16
|
sed -f $(SOURCE_DIR)/tools/mkalltypes.sed \
|
14
17
|
$(PORT_DIR)/arch/$(ARCH)/bits/alltypes.h.in \
|
15
18
|
$(SOURCE_DIR)/include/alltypes.h.in > $@
|
16
19
|
|
17
|
-
syscall-copy:
|
20
|
+
syscall-copy: | build/include/bits/
|
21
|
+
syscall-copy: $(PORT_DIR)/arch/$(ARCH)/bits/syscall.h
|
18
22
|
cp $< $(SYSCALL_H)
|
19
23
|
|
20
|
-
syscall-gen:
|
24
|
+
syscall-gen: | build/include/bits/
|
25
|
+
syscall-gen: $(PORT_DIR)/arch/$(ARCH)/bits/syscall.h.in
|
21
26
|
cp $< $(SYSCALL_H).tmp
|
22
27
|
sed -n -e 's/__NR_/SYS_/p' < $< >> $(SYSCALL_H).tmp
|
23
28
|
mv $(SYSCALL_H).tmp $(SYSCALL_H)
|
@@ -25,15 +30,68 @@ syscall-gen: $(PORT_DIR)/arch/$(ARCH)/bits/syscall.h.in build/headers.tag
|
|
25
30
|
$(SYSCALL_H): syscall-arch
|
26
31
|
|
27
32
|
|
33
|
+
# arch headers
|
34
|
+
libc_bits_h = $(sort $(wildcard $(SOURCE_DIR)/arch/generic/bits/*.h))
|
35
|
+
port_bits_h = $(sort $(wildcard $(PORT_DIR)/arch/$(ARCH)/bits/*.h))
|
36
|
+
port_substs_h = $(subst $(PORT_DIR)/arch/$(ARCH)/, \
|
37
|
+
$(SOURCE_DIR)/arch/generic/,\
|
38
|
+
$(port_bits_h))
|
39
|
+
|
40
|
+
ARCH_HEADERS = $(port_bits_h) $(filter-out $(port_substs_h), $(libc_bits_h))
|
41
|
+
|
42
|
+
src_bits_h = $(ARCH_GEN_H)
|
43
|
+
src_bits_h += $(subst $(SOURCE_DIR)/arch/generic/,build/include/,\
|
44
|
+
$(subst $(PORT_DIR)/arch/$(ARCH)/,build/include/, \
|
45
|
+
$(ARCH_HEADERS)))
|
46
|
+
|
47
|
+
dst_bits_h = $(src_bits_h:build/include/%=$(DESTDIR)$(INCLUDEDIR)/%)
|
48
|
+
|
49
|
+
|
50
|
+
# libc headers
|
51
|
+
src_header_dirs = $(filter %/,$(wildcard $(SOURCE_DIR)/include/*/))
|
52
|
+
dst_header_dirs = $(src_header_dirs:$(SOURCE_DIR)/include/%=$(DESTDIR)$(INCLUDEDIR)/%)
|
53
|
+
|
54
|
+
src_c_headers = $(sort $(wildcard $(SOURCE_DIR)/include/*.h))
|
55
|
+
src_c_headers += $(sort $(wildcard $(SOURCE_DIR)/include/*/*.h))
|
56
|
+
|
57
|
+
dst_c_headers = $(subst $(SOURCE_DIR)/include/, \
|
58
|
+
$(DESTDIR)$(INCLUDEDIR)/, \
|
59
|
+
$(src_c_headers))
|
60
|
+
|
61
|
+
$(dst_header_dirs):
|
62
|
+
mkdir -p $@
|
63
|
+
|
64
|
+
build/include/bits/%.h: build/headers.tag
|
65
|
+
|
66
|
+
$(DESTDIR)$(INCLUDEDIR)/bits/:
|
67
|
+
mkdir -p $@
|
68
|
+
|
69
|
+
$(DESTDIR)$(INCLUDEDIR)/bits/%.h: build/include/bits/%.h $(DESTDIR)$(INCLUDEDIR)/bits/
|
70
|
+
cp $< $@.tmp
|
71
|
+
chmod 0644 $@.tmp
|
72
|
+
mv $@.tmp $@
|
73
|
+
|
74
|
+
$(DESTDIR)$(INCLUDEDIR)/%.h: | $(dst_header_dirs)
|
75
|
+
$(DESTDIR)$(INCLUDEDIR)/%.h: $(SOURCE_DIR)/include/%.h
|
76
|
+
cp -p $< $@.tmp
|
77
|
+
chmod 0644 $@.tmp
|
78
|
+
mv $@.tmp $@
|
79
|
+
|
80
|
+
install-arch-headers: build/headers.tag $(src_bits_h) $(dst_bits_h)
|
81
|
+
|
82
|
+
install-libc-headers: $(dst_header_dirs) $(dst_c_headers)
|
83
|
+
|
84
|
+
install-headers: install-arch-headers install-libc-headers
|
85
|
+
|
28
86
|
|
29
87
|
# build/include
|
30
|
-
build/headers.tag:
|
31
|
-
|
32
|
-
|
33
|
-
|
88
|
+
build/headers.tag: | build/include/bits/
|
89
|
+
build/headers.tag: $(ARCH_HEADERS)
|
90
|
+
cp $(ARCH_HEADERS) build/include/bits/
|
91
|
+
touch $@
|
34
92
|
|
35
93
|
clean-headers:
|
36
|
-
rm -f $(
|
94
|
+
rm -f $(src_bits_h)
|
37
95
|
rm -f $(SYSCALL_H).tmp
|
38
96
|
rmdir build/include/bits 2>/dev/null || true
|
39
97
|
rmdir build/include 2>/dev/null || true
|