Update userspace build for new library system

Add base libraries into the userspace library build system. All
libraries now use the library.mk build file and explicitly export their
headers via MODULE_EXPORT_INCLUDES.

Test: build.py qemu-generic-arm64-test-debug
Bug: 169448829
Change-Id: I8e2282432d1a4e033c6a66c69376625bbbd637c2
diff --git a/app/acvp/rules.mk b/app/acvp/rules.mk
index ee1d6ab..5193932 100644
--- a/app/acvp/rules.mk
+++ b/app/acvp/rules.mk
@@ -28,11 +28,11 @@
 	$(LOCAL_DIR)/acvp.cpp \
 	$(MODULEWRAPPER_ROOT)/modulewrapper.cc \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/interface/acvp \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/libstdc++-trusty \
 	trusty/user/base/lib/tipc \
 	external/boringssl \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/apploader/rules.mk b/app/apploader/rules.mk
index 63fc304..0423994 100644
--- a/app/apploader/rules.mk
+++ b/app/apploader/rules.mk
@@ -25,7 +25,7 @@
 	$(LOCAL_DIR)/app_version.cpp \
 	$(LOCAL_DIR)/cose.cpp \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/kernel/lib/app_manifest \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/libstdc++-trusty \
@@ -44,4 +44,4 @@
 MODULE_COMPILEFLAGS += -DAPPLOADER_ALLOW_NS_CONNECT
 endif
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/apploader/tests/rules.mk b/app/apploader/tests/rules.mk
index 63c10d0..136e97b 100644
--- a/app/apploader/tests/rules.mk
+++ b/app/apploader/tests/rules.mk
@@ -23,16 +23,16 @@
 	$(LOCAL_DIR)/apploader_test.c \
 	$(LOCAL_DIR)/test_apps.S \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 	trusty/user/base/lib/unittest \
 	trusty/user/base/interface/apploader \
 
 VERSION_TEST_APP_V1 := \
-	$(abspath $(BUILDDIR)/version_test_apps/v1/v1.app)
+	$(abspath $(TRUSTY_APP_BUILDDIR)/trusty/user/base/app/apploader/tests/version_test_apps/v1/v1.app)
 VERSION_TEST_APP_V2 := \
-	$(abspath $(BUILDDIR)/version_test_apps/v2/v2.app)
+	$(abspath $(TRUSTY_APP_BUILDDIR)/trusty/user/base/app/apploader/tests/version_test_apps/v2/v2.app)
 
 MODULE_ASMFLAGS += \
        -DVERSION_TEST_APP_V1=\"$(VERSION_TEST_APP_V1)\" \
@@ -42,4 +42,4 @@
        $(VERSION_TEST_APP_V1) \
        $(VERSION_TEST_APP_V2) \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/apploader/tests/version_test_apps/v1/rules.mk b/app/apploader/tests/version_test_apps/v1/rules.mk
index 2ea492d..e7e3cfc 100644
--- a/app/apploader/tests/version_test_apps/v1/rules.mk
+++ b/app/apploader/tests/version_test_apps/v1/rules.mk
@@ -22,7 +22,7 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/../version_test_app.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/apploader/tests/version_test_apps/v2/rules.mk b/app/apploader/tests/version_test_apps/v2/rules.mk
index 2ea492d..e7e3cfc 100644
--- a/app/apploader/tests/version_test_apps/v2/rules.mk
+++ b/app/apploader/tests/version_test_apps/v2/rules.mk
@@ -22,7 +22,7 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/../version_test_app.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/cfi-test/cfi-crasher/rules.mk b/app/cfi-test/cfi-crasher/rules.mk
index 13f624f..26589f6 100644
--- a/app/cfi-test/cfi-crasher/rules.mk
+++ b/app/cfi-test/cfi-crasher/rules.mk
@@ -21,10 +21,12 @@
 
 CONSTANTS := $(LOCAL_DIR)/../include/cfi_crasher_consts.json
 
+MODULE_INCLUDES += $(LOCAL_DIR)/include/
+
 MODULE_SRCS += \
 	$(LOCAL_DIR)/cfi-crasher.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 	trusty/user/base/lib/unittest \
@@ -32,4 +34,4 @@
 MODULE_INCLUDES += \
         $(LOCAL_DIR)/../include \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/cfi-test/rules.mk b/app/cfi-test/rules.mk
index 48ac524..c70b631 100644
--- a/app/cfi-test/rules.mk
+++ b/app/cfi-test/rules.mk
@@ -17,6 +17,8 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_INCLUDES += $(LOCAL_DIR)/include/
+
 MANIFEST := $(LOCAL_DIR)/manifest.json
 
 CONSTANTS := $(LOCAL_DIR)/include/cfi_crasher_consts.json
@@ -24,9 +26,9 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/cfi-test.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 	trusty/user/base/lib/unittest \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/coverage/rules.mk b/app/coverage/rules.mk
index c6ebc3c..7b05f7f 100644
--- a/app/coverage/rules.mk
+++ b/app/coverage/rules.mk
@@ -24,10 +24,10 @@
 	$(LOCAL_DIR)/disable_sancov.c \
 	$(LOCAL_DIR)/main.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/interface/coverage \
 	trusty/user/base/lib/coverage/common \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/crash-test/crasher/rules.mk b/app/crash-test/crasher/rules.mk
index e485716..41e14cc 100644
--- a/app/crash-test/crasher/rules.mk
+++ b/app/crash-test/crasher/rules.mk
@@ -24,7 +24,7 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/crasher.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 	trusty/user/base/lib/unittest \
@@ -32,4 +32,4 @@
 MODULE_INCLUDES += \
         $(LOCAL_DIR)/../include \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/crash-test/rules.mk b/app/crash-test/rules.mk
index 7612cf5..ce7a356 100644
--- a/app/crash-test/rules.mk
+++ b/app/crash-test/rules.mk
@@ -17,6 +17,8 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_INCLUDES += $(LOCAL_DIR)/include
+
 MANIFEST := $(LOCAL_DIR)/manifest.json
 
 CONSTANTS := $(LOCAL_DIR)/include/crasher_consts.json
@@ -24,9 +26,9 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/crash-test.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 	trusty/user/base/lib/unittest \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/hwaes-unittest/rules.mk b/app/hwaes-unittest/rules.mk
index 43dce58..006ae2d 100644
--- a/app/hwaes-unittest/rules.mk
+++ b/app/hwaes-unittest/rules.mk
@@ -19,14 +19,15 @@
 
 MANIFEST := $(LOCAL_DIR)/manifest.json
 
+MODULE_INCLUDES += $(LOCAL_DIR)/include/
+
 MODULE_SRCS += \
 	$(LOCAL_DIR)/hwaes-test.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/hwaes \
 	trusty/user/base/lib/hwkey \
 	trusty/user/base/lib/unittest \
 
-include make/module.mk
-
+include make/trusted_app.mk
diff --git a/app/metrics/rules.mk b/app/metrics/rules.mk
index e20363f..d584f97 100644
--- a/app/metrics/rules.mk
+++ b/app/metrics/rules.mk
@@ -25,9 +25,9 @@
 	$(LOCAL_DIR)/metrics.c \
 	$(LOCAL_DIR)/main.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/interface/metrics \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/metrics/test/crasher/rules.mk b/app/metrics/test/crasher/rules.mk
index 16d22c2..b70b534 100644
--- a/app/metrics/test/crasher/rules.mk
+++ b/app/metrics/test/crasher/rules.mk
@@ -23,9 +23,9 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/crasher.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 	trusty/user/base/lib/unittest \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/app/system_state_server_static/rules.mk b/app/system_state_server_static/rules.mk
index c37bed4..1274aa5 100644
--- a/app/system_state_server_static/rules.mk
+++ b/app/system_state_server_static/rules.mk
@@ -30,9 +30,10 @@
 MODULE_SRCS := \
 	$(LOCAL_DIR)/main.c \
 
-MODULE_DEPS := \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/system_state/srv \
+	trusty/user/base/interface/system_state \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/include/user/trusty_log.h b/include/user/trusty_log.h
index d03f43c..3165883 100644
--- a/include/user/trusty_log.h
+++ b/include/user/trusty_log.h
@@ -36,7 +36,7 @@
 
 __BEGIN_CDECLS
 
-#ifdef USER_TASK
+#ifdef TRUSTY_USERSPACE
 
 /* Defined in libc and libunittest, whichever is statically linked first will be
  * used, so libunittest must always come before libc in the link order. */
diff --git a/include/user/trusty_unittest.h b/include/user/trusty_unittest.h
index 7b1b602..d84b571 100644
--- a/include/user/trusty_unittest.h
+++ b/include/user/trusty_unittest.h
@@ -25,6 +25,6 @@
 
 #include <lk/trusty_unittest.h>
 
-#ifdef USER_TASK
+#ifdef TRUSTY_USERSPACE
 #include <lib/unittest/unittest.h>
 #endif
diff --git a/interface/acvp/rules.mk b/interface/acvp/rules.mk
index 296a09e..5b2f867 100644
--- a/interface/acvp/rules.mk
+++ b/interface/acvp/rules.mk
@@ -17,4 +17,6 @@
 
 MODULE := $(LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/apploader/rules.mk b/interface/apploader/rules.mk
index b31bf29..2d57719 100644
--- a/interface/apploader/rules.mk
+++ b/interface/apploader/rules.mk
@@ -15,4 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/coverage/rules.mk b/interface/coverage/rules.mk
index 168874e..6c139a4 100644
--- a/interface/coverage/rules.mk
+++ b/interface/coverage/rules.mk
@@ -14,4 +14,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/hwaes/rules.mk b/interface/hwaes/rules.mk
index 4b35e7a..5b2f867 100644
--- a/interface/hwaes/rules.mk
+++ b/interface/hwaes/rules.mk
@@ -15,5 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/hwkey/rules.mk b/interface/hwkey/rules.mk
index a885cd6..6377a11 100644
--- a/interface/hwkey/rules.mk
+++ b/interface/hwkey/rules.mk
@@ -15,5 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/hwrng/rules.mk b/interface/hwrng/rules.mk
index 35813df..168afb2 100644
--- a/interface/hwrng/rules.mk
+++ b/interface/hwrng/rules.mk
@@ -15,4 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/hwwsk/rules.mk b/interface/hwwsk/rules.mk
index 168874e..6c139a4 100644
--- a/interface/hwwsk/rules.mk
+++ b/interface/hwwsk/rules.mk
@@ -14,4 +14,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/keybox/rules.mk b/interface/keybox/rules.mk
index 597c519..7d5ca11 100644
--- a/interface/keybox/rules.mk
+++ b/interface/keybox/rules.mk
@@ -14,4 +14,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/keymaster/rules.mk b/interface/keymaster/rules.mk
index 35813df..168afb2 100644
--- a/interface/keymaster/rules.mk
+++ b/interface/keymaster/rules.mk
@@ -15,4 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/metrics/rules.mk b/interface/metrics/rules.mk
index 597c519..7d5ca11 100644
--- a/interface/metrics/rules.mk
+++ b/interface/metrics/rules.mk
@@ -14,4 +14,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/secure_dpu/rules.mk b/interface/secure_dpu/rules.mk
index b31bf29..2d57719 100644
--- a/interface/secure_dpu/rules.mk
+++ b/interface/secure_dpu/rules.mk
@@ -15,4 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/secure_fb/rules.mk b/interface/secure_fb/rules.mk
index b31bf29..2d57719 100644
--- a/interface/secure_fb/rules.mk
+++ b/interface/secure_fb/rules.mk
@@ -15,4 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/smc/rules.mk b/interface/smc/rules.mk
index 36a2466..ce4038f 100644
--- a/interface/smc/rules.mk
+++ b/interface/smc/rules.mk
@@ -14,4 +14,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/spi/rules.mk b/interface/spi/rules.mk
index d8e9960..534bd29 100644
--- a/interface/spi/rules.mk
+++ b/interface/spi/rules.mk
@@ -15,4 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
+
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/storage/rules.mk b/interface/storage/rules.mk
index 13373a0..168afb2 100644
--- a/interface/storage/rules.mk
+++ b/interface/storage/rules.mk
@@ -15,5 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/interface/system_state/rules.mk b/interface/system_state/rules.mk
index 0453419..2d57719 100644
--- a/interface/system_state/rules.mk
+++ b/interface/system_state/rules.mk
@@ -15,5 +15,8 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include
+MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/lib/coverage/common/rules.mk b/lib/coverage/common/rules.mk
index 8afd15c..20cb475 100644
--- a/lib/coverage/common/rules.mk
+++ b/lib/coverage/common/rules.mk
@@ -20,9 +20,14 @@
 	$(LOCAL_DIR)/ipc.c \
 	$(LOCAL_DIR)/shm.c \
 
-MODULE_DEPS := \
-	trusty/user/base/interface/coverage \
+MODULE_EXPORT_INCLUDES := \
+	$(LOCAL_DIR)/include \
+
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/coverage \
+
+include make/library.mk
diff --git a/lib/freetype-stub/rules.mk b/lib/freetype-stub/rules.mk
index 61f31ab..1f16f1d 100644
--- a/lib/freetype-stub/rules.mk
+++ b/lib/freetype-stub/rules.mk
@@ -24,8 +24,8 @@
 
 MODULE_COMPILEFLAGS := -U__ANDROID__
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	$(FREETYPE_ROOT)/devel-teeui \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/googletest/rules.mk b/lib/googletest/rules.mk
index 49800a2..c42fe47 100644
--- a/lib/googletest/rules.mk
+++ b/lib/googletest/rules.mk
@@ -5,7 +5,7 @@
 GTEST_DIR := external/googletest/googletest
 
 # Export gtest headers.
-GLOBAL_INCLUDES += $(GTEST_DIR)/include
+MODULE_EXPORT_INCLUDES += $(GTEST_DIR)/include
 
 # gtest has internal includes relative to its root directory.
 MODULE_INCLUDES += $(GTEST_DIR)
@@ -46,7 +46,7 @@
 	$(GTEST_DIR)/src/gtest-test-part.cc \
 	$(GTEST_DIR)/src/gtest-typed-test.cc \
 
-MODULE_DEPS := \
+MODULE_LIBRARY_DEPS += \
         trusty/user/base/lib/libstdc++-trusty \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/hwaes/rules.mk b/lib/hwaes/rules.mk
index 9bd22b3..6305c40 100644
--- a/lib/hwaes/rules.mk
+++ b/lib/hwaes/rules.mk
@@ -17,13 +17,14 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include/
+
 MODULE_SRCS := $(LOCAL_DIR)/hwaes.c
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include/
-
-MODULE_DEPS := \
-	trusty/user/base/interface/hwaes \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/hwaes \
 
+include make/library.mk
diff --git a/lib/hwaes/srv/rules.mk b/lib/hwaes/srv/rules.mk
index b117a3e..18b046b 100644
--- a/lib/hwaes/srv/rules.mk
+++ b/lib/hwaes/srv/rules.mk
@@ -18,11 +18,15 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include/
+
 MODULE_SRCS := \
 	$(LOCAL_DIR)/hwaes_server.c \
 
-MODULE_DEPS := \
-	trusty/user/base/interface/hwaes \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/hwaes \
+
+include make/library.mk
diff --git a/lib/hwasan/rules.mk b/lib/hwasan/rules.mk
index bdcbfcf..a054eb9 100644
--- a/lib/hwasan/rules.mk
+++ b/lib/hwasan/rules.mk
@@ -21,9 +21,9 @@
 MODULE_SRCS := \
 	$(LOCAL_DIR)/hwasan.c \
 
-MODULE_DEPS := \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/libc-trusty \
 
 include $(LOCAL_DIR)/arch/$(ARCH)/rules.mk
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/hwasan/test/rules.mk b/lib/hwasan/test/rules.mk
index cb4eca0..01dbe9d 100644
--- a/lib/hwasan/test/rules.mk
+++ b/lib/hwasan/test/rules.mk
@@ -21,8 +21,8 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/hwasan_test.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/unittest \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/hwkey/rules.mk b/lib/hwkey/rules.mk
index ef2f7a2..51844d8 100644
--- a/lib/hwkey/rules.mk
+++ b/lib/hwkey/rules.mk
@@ -19,10 +19,10 @@
 
 MODULE_SRCS := $(LOCAL_DIR)/hwkey.c
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include/
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include/
 
-MODULE_DEPS := \
+MODULE_LIBRARY_EXPORTED_DEPS += \
 	trusty/user/base/interface/hwkey \
 
-include make/module.mk
+include make/library.mk
 
diff --git a/lib/hwwsk/rules.mk b/lib/hwwsk/rules.mk
index d48b3b1..d3b24e4 100644
--- a/lib/hwwsk/rules.mk
+++ b/lib/hwwsk/rules.mk
@@ -18,14 +18,16 @@
 
 MODULE := $(LOCAL_DIR)
 
-GLOBAL_INCLUDES += \
+MODULE_EXPORT_INCLUDES += \
     $(LOCAL_DIR)/include \
 
 MODULE_SRCS := \
     $(LOCAL_DIR)/client.c \
 
-MODULE_DEPS := \
+MODULE_LIBRARY_DEPS := \
     trusty/user/base/lib/tipc \
+
+MODULE_LIBRARY_EXPORTED_DEPS := \
     trusty/user/base/interface/hwwsk \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/keybox/client/rules.mk b/lib/keybox/client/rules.mk
index 538d5bd..66f95fe 100644
--- a/lib/keybox/client/rules.mk
+++ b/lib/keybox/client/rules.mk
@@ -19,8 +19,12 @@
 MODULE_SRCS := \
     $(LOCAL_DIR)/client.c \
 
-MODULE_DEPS := \
-    trusty/user/base/interface/keybox \
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+MODULE_LIBRARY_DEPS := \
     trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+    trusty/user/base/interface/keybox \
+
+include make/library.mk
diff --git a/lib/keymaster/rules.mk b/lib/keymaster/rules.mk
index 3823f0c..948c65c 100644
--- a/lib/keymaster/rules.mk
+++ b/lib/keymaster/rules.mk
@@ -19,12 +19,14 @@
 
 MODULE_SRCS := $(LOCAL_DIR)/keymaster.c
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include/ \
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include/ \
 		   $(TRUSTY_TOP)/hardware/libhardware/include
 
-MODULE_DEPS := \
-	trusty/user/base/interface/keymaster \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/libc-trusty \
 	external/boringssl \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/keymaster \
+
+include make/library.mk
diff --git a/lib/keymaster/test/rules.mk b/lib/keymaster/test/rules.mk
index 64cf227..d578a27 100644
--- a/lib/keymaster/test/rules.mk
+++ b/lib/keymaster/test/rules.mk
@@ -21,9 +21,9 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/keymaster_test.c
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/keymaster \
 	trusty/user/base/lib/unittest
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/lib/libc-trusty/rules.mk b/lib/libc-trusty/rules.mk
index 8bef9c4..b9f93be 100644
--- a/lib/libc-trusty/rules.mk
+++ b/lib/libc-trusty/rules.mk
@@ -17,14 +17,14 @@
 # to the intrinsics for now.
 # Also note that the builtin directory will shadow the contents of sysroot.
 # To be 100% correct, the libc headers should be in a real sysroot.
-GLOBAL_COMPILEFLAGS += --sysroot=fake_sysroot
+MODULE_EXPORT_COMPILEFLAGS += --sysroot=fake_sysroot
 
 # Using -isystem instead of -I has two effects. First, these paths will be
 # searched after -I.  Second, warnings for these header files will be
 # suppressed. Musl's header files are not designed to be warning clean,
 # particularly when -Wall is enabled enabled.  Because we're using -Werror,
 # we must either patch the header files or use -isystem.
-GLOBAL_COMPILEFLAGS += \
+MODULE_EXPORT_COMPILEFLAGS += \
 	-isystem $(MUSL_DIR)/arch/$(STANDARD_ARCH_NAME) \
 	-isystem $(MUSL_DIR)/arch/generic \
 	-isystem $(MUSL_DIR)/include \
@@ -34,12 +34,14 @@
 	$(MUSL_DIR)/src/internal \
 	$(MUSL_DIR)/src/include \
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
 # Musl is scrupulous about exposing prototypes and defines based on what
 # standard is requested. When compiling C++ code, however, Clang defines
 # _GNU_SOURCE because libcxx's header files depend on prototypes that are only
 # available with _GNU_SOURCE specified. To avoid skew where prototypes are
 # defined for C++ but not C, turn everything on always.
-GLOBAL_COMPILEFLAGS += -D_ALL_SOURCE
+MODULE_EXPORT_COMPILEFLAGS += -D_ALL_SOURCE
 
 # Musl declares global variables with names like "index" that can conflict with
 # function names when _ALL_SOURCE is turned on. Compile Musl as it expects to be
@@ -616,15 +618,18 @@
 # protector for most of libc.
 MODULE_DISABLE_STACK_PROTECTOR := true
 
+# Do not include implicit dependencies to avoid recursively depending on libc
+MODULE_ADD_IMPLICIT_DEPS := false
+
 # Defined by kernel/lib/ubsan/enable.mk if in use for the build
 ifeq ($(UBSAN_ENABLED), true)
-MODULE_DEPS += trusty/kernel/lib/ubsan
+MODULE_LIBRARY_DEPS += trusty/kernel/lib/ubsan
 endif
 
 # Add Trusty libc extensions (separated due to use both in the kernel and here)
-MODULE_DEPS += trusty/kernel/lib/libc-ext
+MODULE_LIBRARY_EXPORTED_DEPS += trusty/kernel/lib/libc-ext
 
 # Add syscall-stubs
 include trusty/user/base/lib/libc-trusty/syscall-stubs.mk
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/libc-trusty/test/rules.mk b/lib/libc-trusty/test/rules.mk
index a275db2..3963e96 100644
--- a/lib/libc-trusty/test/rules.mk
+++ b/lib/libc-trusty/test/rules.mk
@@ -23,7 +23,7 @@
 	$(LOCAL_DIR)/libc_test.c \
 	$(LOCAL_DIR)/libc_test_$(ARCH).S \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/unittest \
 
@@ -33,4 +33,4 @@
 # rewriting like printf => puts.
 MODULE_COMPILEFLAGS := -ffreestanding -Wno-format-invalid-specifier
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/lib/libcxxabi-trusty/rules.mk b/lib/libcxxabi-trusty/rules.mk
index 613187d..e2d8e13 100644
--- a/lib/libcxxabi-trusty/rules.mk
+++ b/lib/libcxxabi-trusty/rules.mk
@@ -4,7 +4,7 @@
 
 LIBCXXABI_DIR = external/libcxxabi
 
-GLOBAL_INCLUDES += $(LIBCXXABI_DIR)/include
+MODULE_EXPORT_INCLUDES += $(LIBCXXABI_DIR)/include
 
 # Internal libcxxabi build requires std::unexpected_handler to be defined, even
 # though it is removed as of C++17. Building with LIBCPP_BUILDING_LIBRARY
@@ -50,4 +50,7 @@
 # Files that do not compile without RTTI
 # $(LIBCXXABI_DIR)/src/private_typeinfo.cpp \
 
-include make/module.mk
+MODULE_LIBRARY_DEPS := \
+	trusty/user/base/lib/libstdc++-trusty
+
+include make/library.mk
diff --git a/lib/libstdc++-trusty/rules.mk b/lib/libstdc++-trusty/rules.mk
index 522cdc5..0fa9c7b 100644
--- a/lib/libstdc++-trusty/rules.mk
+++ b/lib/libstdc++-trusty/rules.mk
@@ -4,7 +4,8 @@
 
 LIBCXX_DIR = external/libcxx
 
-GLOBAL_INCLUDES += $(LIBCXX_DIR)/include
+MODULE_EXPORT_INCLUDES += $(LIBCXX_DIR)/include
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
 
 # The header files change if they're being used to build the library.
 # For example, adding "public" methods that are only used internally.
@@ -17,7 +18,7 @@
 # _LIBCPP_BUILD_STATIC is obviously an issue because it can eliminate a virtual
 # function and lead to a missing vtable entry. The others are made global out of
 # caution.
-GLOBAL_CPPFLAGS += -D_LIBCPP_BUILD_STATIC -D_LIBCPP_HAS_MUSL_LIBC
+MODULE_EXPORT_CPPFLAGS += -D_LIBCPP_BUILD_STATIC -D_LIBCPP_HAS_MUSL_LIBC
 
 MODULE_SRCS := \
         $(LIBCXX_DIR)/src/algorithm.cpp \
@@ -52,8 +53,8 @@
 
 # TODO add src/random.cpp when there is support for getting entropy.
 
-
-MODULE_DEPS := \
+MODULE_LIBRARY_DEPS += \
         trusty/user/base/lib/libcxxabi-trusty \
+        trusty/user/base/lib/libc-trusty \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/libstdc++-trusty/test/rules.mk b/lib/libstdc++-trusty/test/rules.mk
index 17ad395..600fb0b 100644
--- a/lib/libstdc++-trusty/test/rules.mk
+++ b/lib/libstdc++-trusty/test/rules.mk
@@ -22,7 +22,7 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/libcxx_test.cpp \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/libstdc++-trusty \
 	trusty/user/base/lib/unittest \
@@ -30,4 +30,4 @@
 # Don't let the compiler optimize out the code we're testing. new, delete, etc.
 MODULE_COMPILEFLAGS := -ffreestanding
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/lib/openssl-stubs/rules.mk b/lib/openssl-stubs/rules.mk
index 5947b62..bdb05ca 100644
--- a/lib/openssl-stubs/rules.mk
+++ b/lib/openssl-stubs/rules.mk
@@ -7,7 +7,8 @@
 	$(LOCAL_DIR)/bio.c \
 	$(LOCAL_DIR)/rand.c \
 
-MODULE_DEPS := \
-	trusty/user/base/lib/rng
+MODULE_LIBRARY_DEPS += \
+	trusty/user/base/lib/rng \
+	external/boringssl \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/protobuf/rules.mk b/lib/protobuf/rules.mk
index 6fc945a..394b566 100644
--- a/lib/protobuf/rules.mk
+++ b/lib/protobuf/rules.mk
@@ -49,13 +49,13 @@
 
 MODULE_CPPFLAGS := -Wno-sign-compare
 
-MODULE_DEPS := \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/libstdc++-trusty \
 
 MODULE_INCLUDES := $(LOCAL_DIR)
 
-GLOBAL_INCLUDES += \
+MODULE_EXPORT_INCLUDES += \
 	$(PROTOBUF) \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/rng/rules.mk b/lib/rng/rules.mk
index eb67b26..5994919 100644
--- a/lib/rng/rules.mk
+++ b/lib/rng/rules.mk
@@ -19,10 +19,12 @@
 
 MODULE_SRCS := $(LOCAL_DIR)/trusty_rng.c
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include/
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include/
 
-MODULE_DEPS := \
-	trusty/user/base/interface/hwrng \
+MODULE_LIBRARY_DEPS := \
 	external/boringssl \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/hwrng \
+
+include make/library.mk
diff --git a/lib/sancov/rules.mk b/lib/sancov/rules.mk
index 5e0afe9..a40c46e 100644
--- a/lib/sancov/rules.mk
+++ b/lib/sancov/rules.mk
@@ -21,12 +21,11 @@
 MODULE_SRCS := \
 	$(LOCAL_DIR)/sancov.c \
 
-MODULE_DEPS := \
-	trusty/user/base/interface/coverage \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/coverage/common \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 
 MODULE_DISABLE_LTO := true
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/sancov/test/srv/rules.mk b/lib/sancov/test/srv/rules.mk
index 8c33438..d9a6e60 100644
--- a/lib/sancov/test/srv/rules.mk
+++ b/lib/sancov/test/srv/rules.mk
@@ -21,8 +21,9 @@
 MODULE_SRCS := \
 	$(LOCAL_DIR)/main.c \
 
-MODULE_DEPS += \
-	trusty/user/base/lib/libc-trusty \
+MODULE_LIBRARY_DEPS += \
+	trusty/user/base/lib/coverage/common \
 	trusty/user/base/lib/tipc \
+	trusty/user/base/interface/secure_fb
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/lib/secure_dpu/rules.mk b/lib/secure_dpu/rules.mk
index 5e54079..511340f 100644
--- a/lib/secure_dpu/rules.mk
+++ b/lib/secure_dpu/rules.mk
@@ -19,9 +19,13 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/secure_dpu.c \
 
-MODULE_DEPS += \
-	trusty/user/base/interface/secure_dpu \
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include/
+
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/secure_dpu \
+
+include make/library.mk
diff --git a/lib/secure_fb/rules.mk b/lib/secure_fb/rules.mk
index 6e3e154..b6eeea9 100644
--- a/lib/secure_fb/rules.mk
+++ b/lib/secure_fb/rules.mk
@@ -19,9 +19,13 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/secure_fb.c \
 
-MODULE_DEPS += \
-	trusty/user/base/interface/secure_fb \
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/secure_fb \
+
+include make/library.mk
diff --git a/lib/secure_fb/srv/rules.mk b/lib/secure_fb/srv/rules.mk
index dc4da10..078c1d0 100644
--- a/lib/secure_fb/srv/rules.mk
+++ b/lib/secure_fb/srv/rules.mk
@@ -19,9 +19,13 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/secure_fb_server.c \
 
-MODULE_DEPS += \
-	trusty/user/base/interface/secure_fb \
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/secure_fb \
+
+include make/library.mk
diff --git a/lib/secure_fb/test/rules.mk b/lib/secure_fb/test/rules.mk
index dcea52c..886fb02 100644
--- a/lib/secure_fb/test/rules.mk
+++ b/lib/secure_fb/test/rules.mk
@@ -22,9 +22,9 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/main.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/secure_fb \
 	trusty/user/base/lib/unittest \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/lib/smc/rules.mk b/lib/smc/rules.mk
index 7b05592..a38d132 100644
--- a/lib/smc/rules.mk
+++ b/lib/smc/rules.mk
@@ -16,11 +16,15 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
 MODULE_SRCS := $(LOCAL_DIR)/smc.c
 
-MODULE_DEPS := \
-	trusty/user/base/interface/smc \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/smc \
+
+include make/library.mk
diff --git a/lib/smc/tests/rules.mk b/lib/smc/tests/rules.mk
index 202801a..c2faf00 100644
--- a/lib/smc/tests/rules.mk
+++ b/lib/smc/tests/rules.mk
@@ -21,9 +21,9 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/smc_test.c
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/smc \
 	trusty/user/base/lib/unittest \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/lib/spi/client/rules.mk b/lib/spi/client/rules.mk
index c62fbcf..9663e2f 100644
--- a/lib/spi/client/rules.mk
+++ b/lib/spi/client/rules.mk
@@ -19,9 +19,11 @@
 MODULE_SRCS := \
     $(LOCAL_DIR)/client.c \
 
-MODULE_DEPS := \
-    trusty/user/base/interface/spi \
+MODULE_LIBRARY_DEPS += \
     trusty/user/base/lib/spi/common \
     trusty/user/base/lib/tipc \
+    trusty/user/base/lib/spi/srv/tipc \
 
-include make/module.mk
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+include make/library.mk
diff --git a/lib/spi/common/rules.mk b/lib/spi/common/rules.mk
index f115361..61620b2 100644
--- a/lib/spi/common/rules.mk
+++ b/lib/spi/common/rules.mk
@@ -16,10 +16,12 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES := $(LOCAL_DIR)/include
+
 MODULE_SRCS := \
     $(LOCAL_DIR)/utils.c \
 
-MODULE_DEPS := \
+MODULE_LIBRARY_EXPORTED_DEPS := \
     trusty/user/base/interface/spi \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/spi/srv/batch/rules.mk b/lib/spi/srv/batch/rules.mk
index a1ad66b..eab6748 100644
--- a/lib/spi/srv/batch/rules.mk
+++ b/lib/spi/srv/batch/rules.mk
@@ -16,14 +16,16 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
 MODULE_SRCS += \
     $(LOCAL_DIR)/batch.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
     trusty/user/base/interface/spi \
     trusty/user/base/lib/spi/common \
 
 MODULE_INCLUDES += \
     trusty/user/base/lib/spi/srv/common/include \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/spi/srv/rules.mk b/lib/spi/srv/rules.mk
index 2db515e..7d3849a 100644
--- a/lib/spi/srv/rules.mk
+++ b/lib/spi/srv/rules.mk
@@ -16,11 +16,14 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
 MODULE_SRCS += \
     $(LOCAL_DIR)/srv.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
     trusty/user/base/lib/spi/srv/batch \
     trusty/user/base/lib/spi/srv/tipc \
+    trusty/user/base/lib/tipc \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/spi/srv/tipc/rules.mk b/lib/spi/srv/tipc/rules.mk
index 544a6c4..69c489a 100644
--- a/lib/spi/srv/tipc/rules.mk
+++ b/lib/spi/srv/tipc/rules.mk
@@ -16,15 +16,18 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
 MODULE_SRCS += \
     $(LOCAL_DIR)/tipc.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
     trusty/user/base/interface/spi \
     trusty/user/base/lib/spi/common \
     trusty/user/base/lib/tipc \
+    trusty/user/base/lib/spi/srv/tipc \
 
 MODULE_INCLUDES += \
     trusty/user/base/lib/spi/srv/common/include \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/storage/rules.mk b/lib/storage/rules.mk
index c09f5ad..30260a6 100644
--- a/lib/storage/rules.mk
+++ b/lib/storage/rules.mk
@@ -20,10 +20,10 @@
 MODULE_SRCS := \
 	$(LOCAL_DIR)/storage.c
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include/
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include/
 
-MODULE_DEPS += \
+MODULE_LIBRARY_EXPORTED_DEPS += \
 	trusty/user/base/interface/storage
 
-include make/module.mk
+include make/library.mk
 
diff --git a/lib/system_state/rules.mk b/lib/system_state/rules.mk
index 2c3dfb3..6a3234c 100644
--- a/lib/system_state/rules.mk
+++ b/lib/system_state/rules.mk
@@ -17,10 +17,14 @@
 
 MODULE := $(LOCAL_DIR)
 
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
 MODULE_SRCS := $(LOCAL_DIR)/system_state.c
 
-MODULE_DEPS := \
-	trusty/user/base/interface/system_state \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/system_state \
+
+include make/library.mk
diff --git a/lib/system_state/srv/rules.mk b/lib/system_state/srv/rules.mk
index 4fc9d1e..6c1c0fa 100644
--- a/lib/system_state/srv/rules.mk
+++ b/lib/system_state/srv/rules.mk
@@ -21,8 +21,12 @@
 MODULE_SRCS := \
 	$(LOCAL_DIR)/system_state_server.c \
 
-MODULE_DEPS := \
-	trusty/user/base/interface/system_state \
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
+
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/tipc \
 
-include make/module.mk
+MODULE_LIBRARY_EXPORTED_DEPS := \
+	trusty/user/base/interface/system_state \
+
+include make/library.mk
diff --git a/lib/teeui-stub/rules.mk b/lib/teeui-stub/rules.mk
index dc9624f..a7d9b3c 100644
--- a/lib/teeui-stub/rules.mk
+++ b/lib/teeui-stub/rules.mk
@@ -18,6 +18,7 @@
 MODULE := $(LOCAL_DIR)
 
 LIBTEEUI_ROOT := $(TRUSTY_TOP)/system/teeui/libteeui
+FREETYPE_ROOT := $(TRUSTY_TOP)/external/freetype
 
 # Use the default layouts unless we have a vendor specific layout defined.
 CONFIRMATIONUI_LAYOUTS ?= $(LOCAL_DIR)/layouts
@@ -33,7 +34,7 @@
 	$(LIBTEEUI_ROOT)/src/utils.cpp \
 
 
-GLOBAL_INCLUDES += \
+MODULE_EXPORT_INCLUDES += \
 	$(LIBTEEUI_ROOT)/include \
 	$(LIBTEEUI_ROOT)/prebuilt/localization/include \
 
@@ -42,9 +43,10 @@
 
 MODULE_COMPILEFLAGS := -U__ANDROID__
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/libstdc++-trusty \
 	trusty/user/base/lib/freetype-stub \
+	$(FREETYPE_ROOT)/devel-teeui \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/tipc/rules.mk b/lib/tipc/rules.mk
index d21158d..8e2a241 100644
--- a/lib/tipc/rules.mk
+++ b/lib/tipc/rules.mk
@@ -25,11 +25,11 @@
 
 MODULE := $(LOCAL_DIR)
 
-GLOBAL_INCLUDES += \
+MODULE_EXPORT_INCLUDES += \
 	$(LOCAL_DIR)/include \
 
 MODULE_SRCS += \
 	$(LOCAL_DIR)/tipc.c \
 	$(LOCAL_DIR)/tipc_srv.c \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/tipc/test/main/rules.mk b/lib/tipc/test/main/rules.mk
index e3bc1d8..d82fa8f 100644
--- a/lib/tipc/test/main/rules.mk
+++ b/lib/tipc/test/main/rules.mk
@@ -27,9 +27,9 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/main.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/tipc \
 	trusty/user/base/lib/unittest \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/lib/tipc/test/srv/rules.mk b/lib/tipc/test/srv/rules.mk
index e750ea9..9b8db74 100644
--- a/lib/tipc/test/srv/rules.mk
+++ b/lib/tipc/test/srv/rules.mk
@@ -27,7 +27,7 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/srv.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/lib/uirq/rules.mk b/lib/uirq/rules.mk
index c79bb80..844f47a 100644
--- a/lib/uirq/rules.mk
+++ b/lib/uirq/rules.mk
@@ -14,13 +14,13 @@
 
 LOCAL_DIR := $(GET_LOCAL_DIR)
 
-GLOBAL_INCLUDE += $(LOCAL_DIR)/include
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include
 
 MODULE := $(LOCAL_DIR)
 
 MODULE_SRCS := $(LOCAL_DIR)/uirq.c
 
-MODULE_DEPS := \
+MODULE_LIBRARY_DEPS := \
 	trusty/user/base/lib/libc-trusty \
 
-include make/module.mk
+include make/library.mk
diff --git a/lib/uirq/test/rules.mk b/lib/uirq/test/rules.mk
index cafcb03..daf6440 100644
--- a/lib/uirq/test/rules.mk
+++ b/lib/uirq/test/rules.mk
@@ -22,9 +22,9 @@
 MODULE_SRCS += \
 	$(LOCAL_DIR)/main.c \
 
-MODULE_DEPS += \
+MODULE_LIBRARY_DEPS += \
 	trusty/user/base/lib/libc-trusty \
 	trusty/user/base/lib/unittest \
 	trusty/user/base/lib/uirq \
 
-include make/module.mk
+include make/trusted_app.mk
diff --git a/lib/unittest/rules.mk b/lib/unittest/rules.mk
index d6a94be..3eaeabb 100644
--- a/lib/unittest/rules.mk
+++ b/lib/unittest/rules.mk
@@ -20,6 +20,6 @@
 MODULE_SRCS := \
 	$(LOCAL_DIR)/unittest.c
 
-GLOBAL_INCLUDES += $(LOCAL_DIR)/include/
+MODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/include/
 
-include make/module.mk
+include make/library.mk