-
Notifications
You must be signed in to change notification settings - Fork 155
Expand file tree
/
Copy pathMakefile.tests
More file actions
105 lines (83 loc) · 3.24 KB
/
Makefile.tests
File metadata and controls
105 lines (83 loc) · 3.24 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# Copyright (c) 2015-2019 Contributors as noted in the AUTHORS file
#
# This file is part of Solo5, a sandboxed execution environment.
#
# Permission to use, copy, modify, and/or distribute this software
# for any purpose with or without fee is hereby granted, provided
# that the above copyright notice and this permission notice appear
# in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
# AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.PHONY: all
all:
all_TARGETS :=
.SUFFIXES:
$(V).SILENT:
LDS.hvt := $(TOPDIR)/bindings/hvt/solo5_hvt.lds
BINDINGS.hvt := $(TOPDIR)/bindings/hvt/solo5_hvt.o
LDS.spt := $(TOPDIR)/bindings/spt/solo5_spt.lds
BINDINGS.spt := $(TOPDIR)/bindings/spt/solo5_spt.o
LDS.virtio := $(TOPDIR)/bindings/virtio/solo5_virtio.lds
BINDINGS.virtio := $(TOPDIR)/bindings/virtio/solo5_virtio.o
LDS.muen := $(TOPDIR)/bindings/muen/solo5_muen.lds
BINDINGS.muen := $(TOPDIR)/bindings/muen/solo5_muen.o
LDS.genode := $(TOPDIR)/bindings/genode/genode_dyn.ld
BINDINGS.genode := $(TOPDIR)/bindings/genode/solo5.lib.so
ELFTOOL := $(TOPDIR)/elftool/solo5-elftool
# As a test is currently a single source file, we don't try to do any
# dependency auto-generation here, and just hard-code all expected dependencies
# as pre-requisites below.
manifest.c: manifest.json ../../include/solo5/mft_abi.h $(ELFTOOL)
@echo "ELFTOOL $<"
$(ELFTOOL) gen-manifest $< $@
%.o: %.c ../../include/solo5/solo5.h
@echo "CC $<"
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
%.hvt: %.o manifest.o $(LDS.hvt) $(BINDINGS.hvt)
@echo "LD $@"
$(LD) $(LDFLAGS) -T $(LDS.hvt) $(BINDINGS.hvt) $< manifest.o -o $@
%.spt: %.o manifest.o $(LDS.spt) $(BINDINGS.spt)
@echo "LD $@"
$(LD) $(LDFLAGS) -T $(LDS.spt) $(BINDINGS.spt) $< manifest.o -o $@
%.virtio: %.o manifest.o $(LDS.virtio) $(BINDINGS.virtio)
@echo "LD $@"
$(LD) $(LDFLAGS) -T $(LDS.virtio) $(BINDINGS.virtio) $< manifest.o -o $@
%.muen: %.o manifest.o $(LDS.muen) $(BINDINGS.muen)
@echo "LD $@"
$(LD) $(LDFLAGS) -T $(LDS.muen) $(BINDINGS.muen) $< manifest.o -o $@
%.genode.o: %.c ../../include/solo5/solo5.h
@echo "GENODECC $<"
$(CC) $(GENODE_APP_CFLAGS) $(CPPFLAGS) -c $< -o $@
%.genode: %.genode.o manifest.genode.o $(LDS.genode) $(BINDINGS.genode)
@echo "LD $@"
$(LD) $(GENODE_APP_LDFLAGS) -T $(LDS.genode) $(BINDINGS.genode) \
$< manifest.genode.o -o $@
ifdef CONFIG_HVT
all_TARGETS += $(test_NAME).hvt
endif
ifdef CONFIG_SPT
all_TARGETS += $(test_NAME).spt
endif
ifdef CONFIG_VIRTIO
all_TARGETS += $(test_NAME).virtio
endif
ifdef CONFIG_MUEN
all_TARGETS += $(test_NAME).muen
endif
ifdef CONFIG_GENODE
all_TARGETS += $(test_NAME).genode
endif
.PRECIOUS: $(test_NAME).o $(test_NAME).genode.o manifest.o manifest.genode.o
all: $(all_TARGETS)
.PHONY: clean
clean:
@echo "CLEAN $(test_NAME)"
$(RM) $(test_NAME).o $(test_NAME).genode.o \
manifest.c manifest.o manifest.genode.o $(all_TARGETS)