1a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes# Copyright (C) 2015 The Android Open Source Project
2a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes#
3a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes# Licensed under the Apache License, Version 2.0 (the "License");
4a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes# you may not use this file except in compliance with the License.
5a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes# You may obtain a copy of the License at
6a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes#
7a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes#      http://www.apache.org/licenses/LICENSE-2.0
8a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes#
9a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes# Unless required by applicable law or agreed to in writing, software
10a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes# distributed under the License is distributed on an "AS IS" BASIS,
11a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes# See the License for the specific language governing permissions and
13a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes# limitations under the License.
14a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes
15a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli ObesLOCAL_PATH := $(call my-dir)
16a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes
17b845b15da9d2611608b6492abebdb25e12b55c73Jorge Lucangeli Obes
1843e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes# Common variables.
19d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# =========================================================
2043e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli ObeslibminijailSrcFiles := \
2143e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes	bpf.c \
2243e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes	libminijail.c \
2343e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes	signal_handler.c \
2443e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes	syscall_filter.c \
2543e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes	util.c
2643e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes
2733b967df36fe2b3997ead2c139efb4775946a612Jorge Lucangeli ObesminijailCommonCFlags := -DHAVE_SECUREBITS_H -Wall -Werror
286fd82bdeeeb399a96ed82ca00ab657e9e2e3d503Jorge Lucangeli ObesminijailCommonLibraries := libcap
29a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes
302885befc0941a8283846b83ef111dce6dd880159Jeff Vander Stoep# Android devices running kernel version < 3.8 are not required to
312885befc0941a8283846b83ef111dce6dd880159Jeff Vander Stoep# support seccomp. Brillo devices must support seccomp regardless of
322885befc0941a8283846b83ef111dce6dd880159Jeff Vander Stoep# kernel version.
332885befc0941a8283846b83ef111dce6dd880159Jeff Vander Stoep# TODO: remove when no longer supporting kernel versions < 3.8.
342885befc0941a8283846b83ef111dce6dd880159Jeff Vander Stoepifndef BRILLO
352885befc0941a8283846b83ef111dce6dd880159Jeff Vander StoepminijailCommonCFlags += -DUSE_SECCOMP_SOFTFAIL
362885befc0941a8283846b83ef111dce6dd880159Jeff Vander Stoependif
37b845b15da9d2611608b6492abebdb25e12b55c73Jorge Lucangeli Obes
38d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes
39c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes# Static library for generated code.
40d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# =========================================================
41c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obesinclude $(CLEAR_VARS)
42c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_MODULE := libminijail_generated
43c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes
44c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_MODULE_CLASS := STATIC_LIBRARIES
45c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obesgenerated_sources_dir := $(local-generated-sources-dir)
46c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes
477943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoepmy_gen := $(generated_sources_dir)/$(TARGET_ARCH)/libsyscalls.c
486c755d2e50ac66fff04148386c29fb851122422fJorge Lucangeli Obes# We need the quotes so the shell script treats the following as one argument.
497943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoepmy_cc := "$(lastword $(CLANG)) \
507943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep    $(addprefix -isystem ,$(TARGET_C_INCLUDES)) \
517943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep    $(CLANG_TARGET_GLOBAL_CFLAGS)"
527943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): PRIVATE_CC := $(my_cc)
537943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): PRIVATE_CUSTOM_TOOL = $< $(PRIVATE_CC) $@
547943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): $(LOCAL_PATH)/gen_syscalls.sh
55c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes	$(transform-generated-source)
567943da9ead852722a3badefc196519ce5bef451dJeff Vander StoepLOCAL_GENERATED_SOURCES_$(TARGET_ARCH) += $(my_gen)
57c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes
587943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoepmy_gen := $(generated_sources_dir)/$(TARGET_ARCH)/libconstants.c
597943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): PRIVATE_CC := $(my_cc)
607943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): PRIVATE_CUSTOM_TOOL = $< $(PRIVATE_CC) $@
617943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): $(LOCAL_PATH)/gen_constants.sh
62c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes	$(transform-generated-source)
637943da9ead852722a3badefc196519ce5bef451dJeff Vander StoepLOCAL_GENERATED_SOURCES_$(TARGET_ARCH) += $(my_gen)
64c0b6958a05bf1a2cb221bcc3dc79acd3cbd20004Jeff Vander Stoep
65c0b6958a05bf1a2cb221bcc3dc79acd3cbd20004Jeff Vander Stoep# For processes running in 32-bit compat mode on 64-bit processors.
66c0b6958a05bf1a2cb221bcc3dc79acd3cbd20004Jeff Vander Stoepifdef TARGET_2ND_ARCH
677943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoepmy_gen := $(generated_sources_dir)/$(TARGET_2ND_ARCH)/libsyscalls.c
687943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoepmy_cc := "$(lastword $(CLANG)) \
697943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep    $(addprefix -isystem ,$($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_C_INCLUDES)) \
707943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep    $($(TARGET_2ND_ARCH_VAR_PREFIX)CLANG_TARGET_GLOBAL_CFLAGS)"
717943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): PRIVATE_CC := $(my_cc)
727943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): PRIVATE_CUSTOM_TOOL = $< $(PRIVATE_CC) $@
737943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): $(LOCAL_PATH)/gen_syscalls.sh
74c0b6958a05bf1a2cb221bcc3dc79acd3cbd20004Jeff Vander Stoep	$(transform-generated-source)
757943da9ead852722a3badefc196519ce5bef451dJeff Vander StoepLOCAL_GENERATED_SOURCES_$(TARGET_2ND_ARCH) += $(my_gen)
76c0b6958a05bf1a2cb221bcc3dc79acd3cbd20004Jeff Vander Stoep
777943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoepmy_gen := $(generated_sources_dir)/$(TARGET_2ND_ARCH)/libconstants.c
787943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): PRIVATE_CC := $(my_cc)
797943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): PRIVATE_CUSTOM_TOOL = $< $(PRIVATE_CC) $@
807943da9ead852722a3badefc196519ce5bef451dJeff Vander Stoep$(my_gen): $(LOCAL_PATH)/gen_constants.sh
81c0b6958a05bf1a2cb221bcc3dc79acd3cbd20004Jeff Vander Stoep	$(transform-generated-source)
827943da9ead852722a3badefc196519ce5bef451dJeff Vander StoepLOCAL_GENERATED_SOURCES_$(TARGET_2ND_ARCH) += $(my_gen)
83c0b6958a05bf1a2cb221bcc3dc79acd3cbd20004Jeff Vander Stoependif
84a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes
85c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_CFLAGS := $(minijailCommonCFlags)
86c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_CLANG := true
87c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obesinclude $(BUILD_STATIC_LIBRARY)
88c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes
89b845b15da9d2611608b6492abebdb25e12b55c73Jorge Lucangeli Obes
90c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes# libminijail shared library for target.
91d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# =========================================================
92a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obesinclude $(CLEAR_VARS)
93a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli ObesLOCAL_MODULE := libminijail
94a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obes
95a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli ObesLOCAL_CFLAGS := $(minijailCommonCFlags)
96a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli ObesLOCAL_CLANG := true
9743e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli ObesLOCAL_SRC_FILES := $(libminijailSrcFiles)
988b330bf3b28f6d1cf40852c612affbbd2aff8a28Jorge Lucangeli Obes
99c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_STATIC_LIBRARIES := libminijail_generated
1006fd82bdeeeb399a96ed82ca00ab657e9e2e3d503Jorge Lucangeli ObesLOCAL_SHARED_LIBRARIES := $(minijailCommonLibraries)
1018b330bf3b28f6d1cf40852c612affbbd2aff8a28Jorge Lucangeli ObesLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
102a21c8fc135523df5bbd4523b36096dff6e8ade4aJorge Lucangeli Obesinclude $(BUILD_SHARED_LIBRARY)
103c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes
104b845b15da9d2611608b6492abebdb25e12b55c73Jorge Lucangeli Obes
105abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# Example ASan-ified libminijail shared library for target.
106abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# Commented out since it's only needed for local debugging.
107abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# =========================================================
108abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# include $(CLEAR_VARS)
109abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_MODULE := libminijail_asan
110abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_MODULE_TAGS := optional
111abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes#
112abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_CFLAGS := $(minijailCommonCFlags)
113abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_CLANG := true
114abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_SANITIZE := address
115abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_MODULE_RELATIVE_PATH := asan
116abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_SRC_FILES := $(libminijailSrcFiles)
117abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes#
118abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_STATIC_LIBRARIES := libminijail_generated
119abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_SHARED_LIBRARIES := $(minijailCommonLibraries)
120abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
121abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes# include $(BUILD_SHARED_LIBRARY)
122abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes
123abb93141f0255a624bda29e4842611f8bc120df8Jorge Lucangeli Obes
12443e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes# libminijail static library for target.
125d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# =========================================================
12643e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obesinclude $(CLEAR_VARS)
12743e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli ObesLOCAL_MODULE := libminijail
12843e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes
12943e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli ObesLOCAL_CFLAGS := $(minijailCommonCFlags)
13043e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli ObesLOCAL_CLANG := true
13143e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli ObesLOCAL_SRC_FILES := $(libminijailSrcFiles)
13243e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes
133d2045acc79c9b1d2b1a8420f05d9890b144a341eJorge Lucangeli ObesLOCAL_WHOLE_STATIC_LIBRARIES := libminijail_generated $(minijailCommonLibraries)
13443e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli ObesLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
13543e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obesinclude $(BUILD_STATIC_LIBRARY)
13643e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes
13743e29b3551479dd6d989b830eacd1abbd83592ccJorge Lucangeli Obes
138d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes# libminijail native unit tests. Run with:
139c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes# adb shell /data/nativetest/libminijail_unittest/libminijail_unittest
140d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# =========================================================
141c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obesinclude $(CLEAR_VARS)
142c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_MODULE := libminijail_unittest
143c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obesifdef BRILLO
1443c8375cdf37104998ded0edc5ed072ab3b07c00dJorge Lucangeli Obes  LOCAL_MODULE_TAGS := eng
145c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obesendif
146c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes
147c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_CFLAGS := $(minijailCommonCFlags)
148c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_CLANG := true
149c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_SRC_FILES := \
150c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes	bpf.c \
151c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes	libminijail.c \
152d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes	libminijail_unittest.c \
153c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes	signal_handler.c \
154c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes	syscall_filter.c \
155c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes	util.c \
156c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obes
157c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli ObesLOCAL_STATIC_LIBRARIES := libminijail_generated
1586fd82bdeeeb399a96ed82ca00ab657e9e2e3d503Jorge Lucangeli ObesLOCAL_SHARED_LIBRARIES := $(minijailCommonLibraries)
159c37681ddf90209e4ca4741f25843dc11257e2030Jorge Lucangeli Obesinclude $(BUILD_NATIVE_TEST)
160d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes
161b845b15da9d2611608b6492abebdb25e12b55c73Jorge Lucangeli Obes
162d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes# Syscall filtering native unit tests. Run with:
163b845b15da9d2611608b6492abebdb25e12b55c73Jorge Lucangeli Obes# adb shell /data/nativetest/syscall_filter_unittest/syscall_filter_unittest
164d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# =========================================================
165d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obesinclude $(CLEAR_VARS)
166d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli ObesLOCAL_MODULE := syscall_filter_unittest
167d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obesifdef BRILLO
1683c8375cdf37104998ded0edc5ed072ab3b07c00dJorge Lucangeli Obes  LOCAL_MODULE_TAGS := eng
169d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obesendif
170d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes
171d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli ObesLOCAL_CFLAGS := $(minijailCommonCFlags)
172d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli ObesLOCAL_CLANG := true
173d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli ObesLOCAL_SRC_FILES := \
174d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes	bpf.c \
175d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes	syscall_filter.c \
176d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes	syscall_filter_unittest.c \
177d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes	util.c \
178d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obes
179d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli ObesLOCAL_STATIC_LIBRARIES := libminijail_generated
1806fd82bdeeeb399a96ed82ca00ab657e9e2e3d503Jorge Lucangeli ObesLOCAL_SHARED_LIBRARIES := $(minijailCommonLibraries)
181d6aedee6f0cdc53ad11af4f297297803bf95c96fJorge Lucangeli Obesinclude $(BUILD_NATIVE_TEST)
1826f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli Obes
183b845b15da9d2611608b6492abebdb25e12b55c73Jorge Lucangeli Obes
184ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obes# test_minijail executable for brillo_Minijail test.
185ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obes# =========================================================
186ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obesinclude $(CLEAR_VARS)
187ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli ObesLOCAL_MODULE := libminijail_test
188ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obesifdef BRILLO
189ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obes  LOCAL_MODULE_TAGS := eng
190ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obesendif
191ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obes
192ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli ObesLOCAL_CFLAGS := $(minijailCommonCFlags)
193ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli ObesLOCAL_CLANG := true
194ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli ObesLOCAL_SRC_FILES := \
195ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obes	test/libminijail_test.cpp
196ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obes
197ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli ObesLOCAL_SHARED_LIBRARIES := libbase libminijail
198ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obesinclude $(BUILD_EXECUTABLE)
199ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obes
200ac9e342ef745e9057edc4e1b02a52d8943ea608aJorge Lucangeli Obes
2016f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli Obes# libminijail usage example.
202d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# =========================================================
2036f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli Obesinclude $(CLEAR_VARS)
2046f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli ObesLOCAL_MODULE := drop_privs
2056f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli ObesLOCAL_MODULE_TAGS := optional
2066f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli ObesLOCAL_CFLAGS := $(minijailCommonCFlags)
2076f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli ObesLOCAL_CLANG := true
2088c3febd20f0cef00a5049f6962666b6c62093aa9Jorge Lucangeli Obes# Don't build with ASan, but leave commented out for easy local debugging.
2098c3febd20f0cef00a5049f6962666b6c62093aa9Jorge Lucangeli Obes# LOCAL_SANITIZE := address
2106f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli ObesLOCAL_SRC_FILES := \
2116f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli Obes	examples/drop_privs.cpp
2126f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli Obes
2136f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli ObesLOCAL_SHARED_LIBRARIES := libbase libminijail
2146f967c545e8383ebe1f9331e0208468bff883f2eJorge Lucangeli Obesinclude $(BUILD_EXECUTABLE)
215d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes
216d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes
217d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# minijail0 executable.
218d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# This is not currently used on Brillo/Android,
219d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# but it's convenient to be able to build it.
220d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes# =========================================================
221d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obesinclude $(CLEAR_VARS)
222d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli ObesLOCAL_MODULE := minijail0
223d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli ObesLOCAL_MODULE_TAGS := optional
224d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli ObesLOCAL_CFLAGS := \
225d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes	$(minijailCommonCFlags) -Wno-missing-field-initializers \
226d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes	-DPRELOADPATH=\"/invalidminijailpreload.so\"
227d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli ObesLOCAL_CLANG := true
228d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli ObesLOCAL_SRC_FILES := \
229d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes	elfparse.c \
230d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes	minijail0.c \
231d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obes
232d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli ObesLOCAL_STATIC_LIBRARIES := libminijail_generated
233d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli ObesLOCAL_SHARED_LIBRARIES := $(minijailCommonLibraries) libminijail
234d99a40d2176032b783716007ff49ebdcbdfcb4faJorge Lucangeli Obesinclude $(BUILD_EXECUTABLE)
235