1# Copyright 2016 The Fuchsia Authors
2#
3# Use of this source code is governed by a MIT-style
4# license that can be found in the LICENSE file or at
5# https://opensource.org/licenses/MIT
6
7LOCAL_DIR := $(GET_LOCAL_DIR)
8
9MODULE := $(LOCAL_DIR)
10
11MODULE_SRCS := \
12    $(LOCAL_DIR)/rodso.cpp \
13    $(LOCAL_DIR)/vdso.cpp \
14    $(LOCAL_DIR)/vdso-image.S \
15
16MODULE_DEPS := \
17    kernel/lib/fbl \
18
19vdso-filename := $(BUILDDIR)/system/ulib/zircon/libzircon.so
20
21# vdso-image.S embeds this file, so building depends on it.
22MODULE_SRCDEPS += $(vdso-filename).strip
23
24# This generated header file tells the vdso.cpp code
25# where the segment boundaries and entry points are.
26MODULE_SRCDEPS += $(BUILDDIR)/$(LOCAL_DIR)/vdso-code.h
27$(BUILDDIR)/$(LOCAL_DIR)/vdso-code.h: scripts/gen-rodso-code.sh $(vdso-filename)
28	@$(MKDIR)
29	$(call BUILDECHO,generating $@)
30	$(NOECHO)$(SHELLEXEC) $< '$(NM)' '$(READELF)' \
31	    $@.new VDSO $(vdso-filename)
32	@mv -f $@.new $@
33GENERATED += $(BUILDDIR)/$(LOCAL_DIR)/vdso-code.h
34MODULE_COMPILEFLAGS += -I$(BUILDDIR)/$(LOCAL_DIR)
35
36MODULE_SRCDEPS += $(BUILDDIR)/$(LOCAL_DIR)/vdso-valid-sysret.h
37$(BUILDDIR)/$(LOCAL_DIR)/vdso-valid-sysret.h: \
38    scripts/gen-vdso-valid-sysret.sh $(BUILDDIR)/$(LOCAL_DIR)/vdso-code.h
39	@$(MKDIR)
40	$(call BUILDECHO,generating $@)
41	$(NOECHO)$(SHELLEXEC) $^ > $@.new
42	@mv -f $@.new $@
43GENERATED += $(BUILDDIR)/$(LOCAL_DIR)/vdso-valid-sysret.h
44
45include make/module.mk
46