1# Copyright 2006 The Android Open Source Project
2#
3LOCAL_PATH := $(call my-dir)
4
5# We use copy-file-to-new-target so that the installed
6# script files' timestamps are at least as new as the
7# .jar files they wrap.
8
9# This tool is prebuilt if we're doing an app-only build.
10ifeq ($(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)),)
11
12# the dx script
13# ============================================================
14include $(CLEAR_VARS)
15LOCAL_IS_HOST_MODULE := true
16LOCAL_MODULE_CLASS := EXECUTABLES
17LOCAL_MODULE_TAGS := optional
18LOCAL_MODULE := dx
19
20include $(BUILD_SYSTEM)/base_rules.mk
21
22$(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/dx$(COMMON_JAVA_PACKAGE_SUFFIX)
23$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/dx | $(ACP)
24	@echo "Copy: $(PRIVATE_MODULE) ($@)"
25	$(copy-file-to-new-target)
26	$(hide) chmod 755 $@
27
28INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
29
30# the mainDexClasses rules
31# ============================================================
32include $(CLEAR_VARS)
33LOCAL_IS_HOST_MODULE := true
34LOCAL_MODULE_CLASS := EXECUTABLES
35LOCAL_MODULE_TAGS := optional
36LOCAL_MODULE := mainDexClasses.rules
37
38include $(BUILD_SYSTEM)/base_rules.mk
39
40$(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/dx$(COMMON_JAVA_PACKAGE_SUFFIX)
41$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/mainDexClasses.rules | $(ACP)
42	@echo "Copy: $(PRIVATE_MODULE) ($@)"
43	$(copy-file-to-new-target)
44
45INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
46
47installed_mainDexClasses.rules := $(LOCAL_INSTALLED_MODULE)
48
49# the mainDexClassesNoAapt rules
50# ============================================================
51include $(CLEAR_VARS)
52LOCAL_IS_HOST_MODULE := true
53LOCAL_MODULE_CLASS := EXECUTABLES
54LOCAL_MODULE_TAGS := optional
55LOCAL_MODULE := mainDexClassesNoAapt.rules
56
57include $(BUILD_SYSTEM)/base_rules.mk
58
59$(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/dx$(COMMON_JAVA_PACKAGE_SUFFIX)
60$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/mainDexClassesNoAapt.rules | $(ACP)
61	@echo "Copy: $(PRIVATE_MODULE) ($@)"
62	$(copy-file-to-new-target)
63
64INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
65
66installed_mainDexClassesNoAapt.rules := $(LOCAL_INSTALLED_MODULE)
67
68# the shrinkedAndroid jar is a library used by the mainDexClasses script
69# ============================================================
70include $(CLEAR_VARS)
71LOCAL_IS_HOST_MODULE := true
72LOCAL_MODULE_CLASS := JAVA_LIBRARIES
73LOCAL_MODULE_TAGS := optional
74LOCAL_MODULE := shrinkedAndroid
75LOCAL_BUILT_MODULE_STEM := shrinkedAndroid.jar
76LOCAL_MODULE_SUFFIX := $(COMMON_JAVA_PACKAGE_SUFFIX)
77
78include $(BUILD_SYSTEM)/base_rules.mk
79
80$(LOCAL_BUILT_MODULE): PRIVATE_PROGUARD_FLAGS:= \
81  -include $(addprefix $(LOCAL_PATH)/, shrinkedAndroid.proguard.flags)
82$(LOCAL_BUILT_MODULE): $(call java-lib-files,android_stubs_current) \
83                       $(addprefix $(LOCAL_PATH)/, shrinkedAndroid.proguard.flags)| $(PROGUARD)
84	@echo Proguard: $@
85	$(hide) $(PROGUARD) -injars "$<(**/*.class)" -outjars $@ $(PRIVATE_PROGUARD_FLAGS)
86
87INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
88
89installed_shrinkedAndroid := $(LOCAL_INSTALLED_MODULE)
90
91# the mainDexClasses script
92# ============================================================
93include $(CLEAR_VARS)
94LOCAL_IS_HOST_MODULE := true
95LOCAL_MODULE_CLASS := EXECUTABLES
96LOCAL_MODULE_TAGS := optional
97LOCAL_MODULE := mainDexClasses
98
99include $(BUILD_SYSTEM)/base_rules.mk
100
101$(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/dx$(COMMON_JAVA_PACKAGE_SUFFIX)
102$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/mainDexClasses | $(ACP)
103	@echo "Copy: $(PRIVATE_MODULE) ($@)"
104	$(copy-file-to-new-target)
105	$(hide) chmod 755 $@
106
107$(LOCAL_INSTALLED_MODULE): | $(installed_shrinkedAndroid) $(installed_mainDexClasses.rules) \
108                             $(installed_mainDexClassesNoAapt.rules)
109INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
110
111endif # No TARGET_BUILD_APPS or TARGET_BUILD_PDK
112
113# the dexmerger script
114# ============================================================
115include $(CLEAR_VARS)
116LOCAL_IS_HOST_MODULE := true
117LOCAL_MODULE_CLASS := EXECUTABLES
118LOCAL_MODULE_TAGS := optional
119LOCAL_MODULE := dexmerger
120
121include $(BUILD_SYSTEM)/base_rules.mk
122
123$(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/dx$(COMMON_JAVA_PACKAGE_SUFFIX)
124$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/dexmerger | $(ACP)
125	@echo "Copy: $(PRIVATE_MODULE) ($@)"
126	$(copy-file-to-new-target)
127	$(hide) chmod 755 $@
128
129INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
130
131# the jasmin script
132# ============================================================
133include $(CLEAR_VARS)
134LOCAL_IS_HOST_MODULE := true
135LOCAL_MODULE_CLASS := EXECUTABLES
136LOCAL_MODULE_TAGS := optional
137LOCAL_MODULE := jasmin
138
139include $(BUILD_SYSTEM)/base_rules.mk
140
141$(LOCAL_BUILT_MODULE): $(HOST_OUT_JAVA_LIBRARIES)/jasmin.jar
142$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/jasmin | $(ACP)
143	@echo "Copy: $(PRIVATE_MODULE) ($@)"
144	$(copy-file-to-new-target)
145	$(hide) chmod 755 $@
146
147INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
148
149# the jasmin lib
150# ============================================================
151include $(CLEAR_VARS)
152LOCAL_IS_HOST_MODULE := true
153LOCAL_MODULE_CLASS := JAVA_LIBRARIES
154LOCAL_MODULE_TAGS := optional
155LOCAL_MODULE := jasmin.jar
156
157include $(BUILD_SYSTEM)/base_rules.mk
158
159$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/etc/jasmin.jar | $(ACP)
160	@echo "Copy: $(PRIVATE_MODULE) ($@)"
161	$(copy-file-to-target)
162	$(hide) chmod 644 $@
163
164INTERNAL_DALVIK_MODULES += $(LOCAL_INSTALLED_MODULE)
165
166# the other stuff
167# ============================================================
168subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
169		junit-tests \
170		src \
171	))
172
173include $(subdirs)
174