Android.mk revision e1c25bd8014a6c13e6b849ae8ad347d1f506471b
1e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang#
2e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang# Copyright (C) 2010 The Android Open Source Project
3e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang#
4e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang# Licensed under the Apache License, Version 2.0 (the "License");
5e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang# you may not use this file except in compliance with the License.
6e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang# You may obtain a copy of the License at
7e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang#
8e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang#      http://www.apache.org/licenses/LICENSE-2.0
9e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang#
10e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang# Unless required by applicable law or agreed to in writing, software
11e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang# distributed under the License is distributed on an "AS IS" BASIS,
12e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang# See the License for the specific language governing permissions and
14e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang# limitations under the License.
15e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang#
16a20a2fdbf5baedc7fac36707e1e052e1697f52a1Ying Wang
17a20a2fdbf5baedc7fac36707e1e052e1697f52a1Ying Wang# The prebuilt tools should be used when we are doing app-only build.
18a20a2fdbf5baedc7fac36707e1e052e1697f52a1Ying Wangifeq ($(TARGET_BUILD_APPS),)
19a20a2fdbf5baedc7fac36707e1e052e1697f52a1Ying Wang
20462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei LiaoLOCAL_PATH := $(call my-dir)
21462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao
225abbe0e9ca2508260b627ffef2bf01e2554e8357Chris Waileslocal_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter \
235abbe0e9ca2508260b627ffef2bf01e2554e8357Chris Wailes                          -Wno-return-type -Werror -std=c++11
24881abe9f9491361f6980077f0457c7ddfbd42201Tim Murrayifeq ($(TARGET_BUILD_VARIANT),eng)
25881abe9f9491361f6980077f0457c7ddfbd42201Tim Murraylocal_cflags_for_slang += -O0
26881abe9f9491361f6980077f0457c7ddfbd42201Tim Murrayelse
27432439488464171534f16c1fe013927373e3c579Jean-Luc Brouilletifeq ($(TARGET_BUILD_VARIANT),userdebug)
28432439488464171534f16c1fe013927373e3c579Jean-Luc Brouilletelse
299be9360d8e02b52ed669afbd69f9becb575c3f0dAlex Sakhartchouklocal_cflags_for_slang += -D__DISABLE_ASSERTS
309be9360d8e02b52ed669afbd69f9becb575c3f0dAlex Sakhartchoukendif
31432439488464171534f16c1fe013927373e3c579Jean-Luc Brouilletendif
32ba7c6dc08e1ab8486ccaf842e8ae87dc5c99d8cfStephen Hineslocal_cflags_for_slang += -DTARGET_BUILD_VARIANT=$(TARGET_BUILD_VARIANT)
339be9360d8e02b52ed669afbd69f9becb575c3f0dAlex Sakhartchouk
34483f47c87b2f69a766b5a33845091f7c800846b0Stephen Hinesinclude $(LOCAL_PATH)/rs_version.mk
35483f47c87b2f69a766b5a33845091f7c800846b0Stephen Hineslocal_cflags_for_slang += $(RS_VERSION_DEFINE)
366b201eb3306b9609a991728a52ce948974bd4aedStephen Hines
37000c307d2115160200c4efa849d3e36c0267cd7aYing Wangstatic_libraries_needed_by_slang := \
389207a2e495c8363606861e4f034504ec5c153dabLogan Chien	libLLVMBitWriter_2_9 \
399b044ec938fd56355012851890c63974c8042c9fStephen Hines	libLLVMBitWriter_2_9_func \
40bfe3e9729efcd5db389cc0e46fff662fd0c1f8b5Stephen Hines	libLLVMBitWriter_3_2
41835a7b773631261b9ea2fb448a4c8a7a8cacfaabShih-wei Liao
42000c307d2115160200c4efa849d3e36c0267cd7aYing Wang# Static library libslang for host
43000c307d2115160200c4efa849d3e36c0267cd7aYing Wang# ========================================================
44000c307d2115160200c4efa849d3e36c0267cd7aYing Wanginclude $(CLEAR_VARS)
45000c307d2115160200c4efa849d3e36c0267cd7aYing Wanginclude $(CLEAR_TBLGEN_VARS)
46000c307d2115160200c4efa849d3e36c0267cd7aYing Wang
47000c307d2115160200c4efa849d3e36c0267cd7aYing WangLLVM_ROOT_PATH := external/llvm
48000c307d2115160200c4efa849d3e36c0267cd7aYing WangCLANG_ROOT_PATH := external/clang
49000c307d2115160200c4efa849d3e36c0267cd7aYing Wang
50000c307d2115160200c4efa849d3e36c0267cd7aYing Wanginclude $(CLANG_ROOT_PATH)/clang.mk
51000c307d2115160200c4efa849d3e36c0267cd7aYing Wang
52000c307d2115160200c4efa849d3e36c0267cd7aYing WangLOCAL_MODULE := libslang
53000c307d2115160200c4efa849d3e36c0267cd7aYing WangLOCAL_MODULE_TAGS := optional
54231f578e0b0c2467e1b71e3ba5cd035caf1a9d88Logan Chienifneq ($(HOST_OS),windows)
5519bb5f5a3fd5146956de28127b88089f3538a4cdAndrew HsiehLOCAL_CLANG := true
56231f578e0b0c2467e1b71e3ba5cd035caf1a9d88Logan Chienendif
57000c307d2115160200c4efa849d3e36c0267cd7aYing Wang
589be9360d8e02b52ed669afbd69f9becb575c3f0dAlex SakhartchoukLOCAL_CFLAGS += $(local_cflags_for_slang)
59000c307d2115160200c4efa849d3e36c0267cd7aYing Wang
60000c307d2115160200c4efa849d3e36c0267cd7aYing WangTBLGEN_TABLES :=    \
61000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	AttrList.inc	\
62000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	Attrs.inc	\
630da7f6c8201b27938d3b9f048d71fd784cd1df9aStephen Hines	CommentCommandList.inc \
6443730fe3c839af391efe6bdf56b0479860121924Shih-wei Liao	CommentNodes.inc \
65000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	DeclNodes.inc	\
66000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	DiagnosticCommonKinds.inc	\
67000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	DiagnosticFrontendKinds.inc	\
68000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	DiagnosticSemaKinds.inc	\
69000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	StmtNodes.inc
70000c307d2115160200c4efa849d3e36c0267cd7aYing Wang
71000c307d2115160200c4efa849d3e36c0267cd7aYing WangLOCAL_SRC_FILES :=	\
72000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	slang.cpp	\
73000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	slang_utils.cpp	\
74000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	slang_backend.cpp	\
75000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	slang_pragma_recorder.cpp	\
76000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	slang_diagnostic_buffer.cpp
77000c307d2115160200c4efa849d3e36c0267cd7aYing Wang
785e6d0d5a911fff0b7b4bce216a213a4cf8a811f5Stephen HinesLOCAL_C_INCLUDES += frameworks/compile/libbcc/include
795e6d0d5a911fff0b7b4bce216a213a4cf8a811f5Stephen Hines
80231f578e0b0c2467e1b71e3ba5cd035caf1a9d88Logan ChienLOCAL_LDLIBS := -ldl -lpthread
81231f578e0b0c2467e1b71e3ba5cd035caf1a9d88Logan Chienifneq ($(HOST_OS),windows)
82e1c25bd8014a6c13e6b849ae8ad347d1f506471bStephen HinesLOCAL_CXX_STL := libc++
83231f578e0b0c2467e1b71e3ba5cd035caf1a9d88Logan Chienendif
84835a7b773631261b9ea2fb448a4c8a7a8cacfaabShih-wei Liao
8508df36e5c0a990306d958c9f6d59a5de23b748f6Zonr Changinclude $(CLANG_HOST_BUILD_MK)
8608df36e5c0a990306d958c9f6d59a5de23b748f6Zonr Changinclude $(CLANG_TBLGEN_RULES_MK)
8708df36e5c0a990306d958c9f6d59a5de23b748f6Zonr Changinclude $(LLVM_GEN_INTRINSICS_MK)
88e2201c0362dd68c316cec670e1607b1d3d77c5c5Ying Wanginclude $(BUILD_HOST_STATIC_LIBRARY)
8908df36e5c0a990306d958c9f6d59a5de23b748f6Zonr Chang
90c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser# ========================================================
91c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosserinclude $(CLEAR_VARS)
92c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser
93c908b90b45448af6c39ce407b607f46b0e0461d6Tobias GrosserLOCAL_MODULE := llvm-rs-as
94c908b90b45448af6c39ce407b607f46b0e0461d6Tobias GrosserLOCAL_MODULE_TAGS := optional
95c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser
96c908b90b45448af6c39ce407b607f46b0e0461d6Tobias GrosserLOCAL_MODULE_CLASS := EXECUTABLES
97c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser
98c908b90b45448af6c39ce407b607f46b0e0461d6Tobias GrosserLOCAL_SRC_FILES :=	\
99c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser	llvm-rs-as.cpp
100c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser
101c908b90b45448af6c39ce407b607f46b0e0461d6Tobias GrosserLOCAL_CFLAGS += $(local_cflags_for_slang)
102c908b90b45448af6c39ce407b607f46b0e0461d6Tobias GrosserLOCAL_STATIC_LIBRARIES :=	\
103c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser	libslang \
104c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser	$(static_libraries_needed_by_slang)
105c908b90b45448af6c39ce407b607f46b0e0461d6Tobias GrosserLOCAL_SHARED_LIBRARIES := \
106c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser	libLLVM
107c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser
108c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosserinclude $(CLANG_HOST_BUILD_MK)
109c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosserinclude $(BUILD_HOST_EXECUTABLE)
110c908b90b45448af6c39ce407b607f46b0e0461d6Tobias Grosser
111ffa58bb392b79944a1cc23b0d41cbef9a34f8c2eShih-wei Liao# Executable llvm-rs-cc for host
112835a7b773631261b9ea2fb448a4c8a7a8cacfaabShih-wei Liao# ========================================================
113835a7b773631261b9ea2fb448a4c8a7a8cacfaabShih-wei Liaoinclude $(CLEAR_VARS)
114835a7b773631261b9ea2fb448a4c8a7a8cacfaabShih-wei Liaoinclude $(CLEAR_TBLGEN_VARS)
115835a7b773631261b9ea2fb448a4c8a7a8cacfaabShih-wei Liao
116b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei LiaoLOCAL_IS_HOST_MODULE := true
117b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei LiaoLOCAL_MODULE := llvm-rs-cc
118231f578e0b0c2467e1b71e3ba5cd035caf1a9d88Logan Chienifneq ($(HOST_OS),windows)
11919bb5f5a3fd5146956de28127b88089f3538a4cdAndrew HsiehLOCAL_CLANG := true
120231f578e0b0c2467e1b71e3ba5cd035caf1a9d88Logan Chienendif
121b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei LiaoLOCAL_MODULE_TAGS := optional
122462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao
123bdd788877b3f18980836a3ed0d46627169483653Shih-wei LiaoLOCAL_MODULE_CLASS := EXECUTABLES
124bdd788877b3f18980836a3ed0d46627169483653Shih-wei Liao
1259be9360d8e02b52ed669afbd69f9becb575c3f0dAlex SakhartchoukLOCAL_CFLAGS += $(local_cflags_for_slang)
126cecd11d2af5d45d8ba322bed61fb48a99c305528Shih-wei Liao
127462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei LiaoTBLGEN_TABLES :=    \
128f52a620440fa62257dfdcf2583f0f9df5b855c76Shih-wei Liao	AttrList.inc    \
129f52a620440fa62257dfdcf2583f0f9df5b855c76Shih-wei Liao	Attrs.inc    \
1300da7f6c8201b27938d3b9f048d71fd784cd1df9aStephen Hines	CommentCommandList.inc \
13143730fe3c839af391efe6bdf56b0479860121924Shih-wei Liao	CommentNodes.inc \
132f52a620440fa62257dfdcf2583f0f9df5b855c76Shih-wei Liao	DeclNodes.inc    \
133f52a620440fa62257dfdcf2583f0f9df5b855c76Shih-wei Liao	DiagnosticCommonKinds.inc   \
134b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei Liao	DiagnosticDriverKinds.inc	\
135cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang	DiagnosticFrontendKinds.inc	\
136b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei Liao	DiagnosticSemaKinds.inc	\
13792b344a51c6c4934e96882bd401e4b13d6d03db8Zonr Chang	StmtNodes.inc	\
138b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei Liao	RSCCOptions.inc
139462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao
140462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei LiaoLOCAL_SRC_FILES :=	\
141b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei Liao	llvm-rs-cc.cpp	\
1428b5c5c6566078d49c4dcd8d8c7a6364c33c09037Stephen Hines	rs_cc_options.cpp \
1433a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang	slang_rs.cpp	\
144292e00a0259ac28cac1055cb6077cf6fc7c6743cStephen Hines	slang_rs_ast_replace.cpp	\
14511274a7324b478ec13e1d10a1b81350b34a65ab1Stephen Hines	slang_rs_check_ast.cpp	\
146462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao	slang_rs_context.cpp	\
147462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao	slang_rs_pragma_handler.cpp	\
148462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao	slang_rs_backend.cpp	\
149641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang	slang_rs_exportable.cpp	\
150462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao	slang_rs_export_type.cpp	\
151462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao	slang_rs_export_element.cpp	\
152462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao	slang_rs_export_var.cpp	\
153462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao	slang_rs_export_func.cpp	\
154593a894650e81be54173106ec266f0311cebebd3Stephen Hines	slang_rs_export_foreach.cpp \
1554b32ffdfc1ac766f8932e7effbcdf7484e804a8eStephen Hines	slang_rs_object_ref_count.cpp	\
1563f8b44dba57685b437cecc208f2a20a4ed93ed36Ying Wang	slang_rs_reflection.cpp \
1571b6a0883cd6984e11e59b0c847fb334df1f41afcJason Sams	slang_rs_reflection_cpp.cpp \
158552d872e5cdc883d9f8e76d8c67d3a82e3ece488Stephen Hines	slang_rs_reflect_utils.cpp \
159552d872e5cdc883d9f8e76d8c67d3a82e3ece488Stephen Hines	strip_unknown_attributes.cpp
160462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao
161462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei LiaoLOCAL_STATIC_LIBRARIES :=	\
162bfe3e9729efcd5db389cc0e46fff662fd0c1f8b5Stephen Hines	libslang \
163000c307d2115160200c4efa849d3e36c0267cd7aYing Wang	$(static_libraries_needed_by_slang)
164e2201c0362dd68c316cec670e1607b1d3d77c5c5Ying Wang
165bfe3e9729efcd5db389cc0e46fff662fd0c1f8b5Stephen HinesLOCAL_SHARED_LIBRARIES := \
166bfe3e9729efcd5db389cc0e46fff662fd0c1f8b5Stephen Hines	libclang \
167bfe3e9729efcd5db389cc0e46fff662fd0c1f8b5Stephen Hines	libLLVM
168bfe3e9729efcd5db389cc0e46fff662fd0c1f8b5Stephen Hines
16911e2b93b206dbb401077d1fa39b1bcdc6de4d986Raphaelifeq ($(HOST_OS),windows)
17011e2b93b206dbb401077d1fa39b1bcdc6de4d986Raphael  LOCAL_LDLIBS := -limagehlp -lpsapi
17111e2b93b206dbb401077d1fa39b1bcdc6de4d986Raphaelelse
17211e2b93b206dbb401077d1fa39b1bcdc6de4d986Raphael  LOCAL_LDLIBS := -ldl -lpthread
17311e2b93b206dbb401077d1fa39b1bcdc6de4d986Raphaelendif
174462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao
175b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei Liao# For build RSCCOptions.inc from RSCCOptions.td
176d1e54f507e6d27924f8aa4024648309819df7435Ying Wangintermediates := $(call local-generated-sources-dir)
177b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei LiaoLOCAL_GENERATED_SOURCES += $(intermediates)/RSCCOptions.inc
1780e3f8c70bb16eaae98d68828ffffca36788570caTim Murray$(intermediates)/RSCCOptions.inc: $(LOCAL_PATH)/RSCCOptions.td $(LLVM_ROOT_PATH)/include/llvm/Option/OptParser.td $(LLVM_TBLGEN)
179b7d1269f983f28d9fe625a96439fa88b39dc96f6Stephen Hines	@echo "Building Renderscript compiler (llvm-rs-cc) Option tables with tblgen"
180a1f95ee8df425089100148a42954cf61dc285015Stephen Hines	$(call transform-host-td-to-out,opt-parser-defs)
181b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ecShih-wei Liao
182462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoinclude $(CLANG_HOST_BUILD_MK)
183462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoinclude $(CLANG_TBLGEN_RULES_MK)
184462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoinclude $(BUILD_HOST_EXECUTABLE)
185a20a2fdbf5baedc7fac36707e1e052e1697f52a1Ying Wang
186a20a2fdbf5baedc7fac36707e1e052e1697f52a1Ying Wangendif  # TARGET_BUILD_APPS
1874cc499d6e5ec602309501873449c938af61170b2Stephen Hines
1884cc499d6e5ec602309501873449c938af61170b2Stephen Hines#=====================================================================
1894cc499d6e5ec602309501873449c938af61170b2Stephen Hines# Include Subdirectories
1904cc499d6e5ec602309501873449c938af61170b2Stephen Hines#=====================================================================
1914cc499d6e5ec602309501873449c938af61170b2Stephen Hinesinclude $(call all-makefiles-under,$(LOCAL_PATH))
192