2 # Copyright (C) 2014 Trevor Drake
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
19 # A bit of a non-standard LOCAL_PATH declaration here
20 # The Android.mk lives below the top source directory
21 # but LOCAL_PATH needs to point to the top of the module
22 # source tree to maintain the integrity of the intermediates
24 LOCAL_PATH := $(subst /contrib/android,,$(call my-dir))
26 libarchive_target_config := contrib/android/config/android.h
28 libarchive_src_files := libarchive/archive_acl.c \
29 libarchive/archive_check_magic.c \
30 libarchive/archive_cmdline.c \
31 libarchive/archive_cryptor.c \
32 libarchive/archive_digest.c \
33 libarchive/archive_entry.c \
34 libarchive/archive_entry_copy_stat.c \
35 libarchive/archive_entry_link_resolver.c \
36 libarchive/archive_entry_sparse.c \
37 libarchive/archive_entry_stat.c \
38 libarchive/archive_entry_strmode.c \
39 libarchive/archive_entry_xattr.c \
40 libarchive/archive_getdate.c \
41 libarchive/archive_hmac.c \
42 libarchive/archive_match.c \
43 libarchive/archive_options.c \
44 libarchive/archive_pack_dev.c \
45 libarchive/archive_pathmatch.c \
46 libarchive/archive_ppmd7.c \
47 libarchive/archive_random.c \
48 libarchive/archive_rb.c \
49 libarchive/archive_read.c \
50 libarchive/archive_read_add_passphrase.c \
51 libarchive/archive_read_append_filter.c \
52 libarchive/archive_read_data_into_fd.c \
53 libarchive/archive_read_disk_entry_from_file.c \
54 libarchive/archive_read_disk_posix.c \
55 libarchive/archive_read_disk_set_standard_lookup.c \
56 libarchive/archive_read_extract.c \
57 libarchive/archive_read_extract2.c \
58 libarchive/archive_read_open_fd.c \
59 libarchive/archive_read_open_file.c \
60 libarchive/archive_read_open_filename.c \
61 libarchive/archive_read_open_memory.c \
62 libarchive/archive_read_set_format.c \
63 libarchive/archive_read_set_options.c \
64 libarchive/archive_read_support_filter_all.c \
65 libarchive/archive_read_support_filter_bzip2.c \
66 libarchive/archive_read_support_filter_compress.c \
67 libarchive/archive_read_support_filter_grzip.c \
68 libarchive/archive_read_support_filter_gzip.c \
69 libarchive/archive_read_support_filter_lrzip.c \
70 libarchive/archive_read_support_filter_lz4.c \
71 libarchive/archive_read_support_filter_lzop.c \
72 libarchive/archive_read_support_filter_none.c \
73 libarchive/archive_read_support_filter_program.c \
74 libarchive/archive_read_support_filter_rpm.c \
75 libarchive/archive_read_support_filter_uu.c \
76 libarchive/archive_read_support_filter_xz.c \
77 libarchive/archive_read_support_filter_zstd.c \
78 libarchive/archive_read_support_format_7zip.c \
79 libarchive/archive_read_support_format_all.c \
80 libarchive/archive_read_support_format_ar.c \
81 libarchive/archive_read_support_format_by_code.c \
82 libarchive/archive_read_support_format_cab.c \
83 libarchive/archive_read_support_format_cpio.c \
84 libarchive/archive_read_support_format_empty.c \
85 libarchive/archive_read_support_format_iso9660.c \
86 libarchive/archive_read_support_format_lha.c \
87 libarchive/archive_read_support_format_mtree.c \
88 libarchive/archive_read_support_format_rar.c \
89 libarchive/archive_read_support_format_raw.c \
90 libarchive/archive_read_support_format_tar.c \
91 libarchive/archive_read_support_format_warc.c \
92 libarchive/archive_read_support_format_xar.c \
93 libarchive/archive_read_support_format_zip.c \
94 libarchive/archive_string.c \
95 libarchive/archive_string_sprintf.c \
96 libarchive/archive_util.c \
97 libarchive/archive_version_details.c \
98 libarchive/archive_virtual.c \
99 libarchive/archive_write.c \
100 libarchive/archive_write_disk_posix.c \
101 libarchive/archive_write_disk_set_standard_lookup.c \
102 libarchive/archive_write_open_fd.c \
103 libarchive/archive_write_open_file.c \
104 libarchive/archive_write_open_filename.c \
105 libarchive/archive_write_open_memory.c \
106 libarchive/archive_write_add_filter.c \
107 libarchive/archive_write_add_filter_b64encode.c \
108 libarchive/archive_write_add_filter_by_name.c \
109 libarchive/archive_write_add_filter_bzip2.c \
110 libarchive/archive_write_add_filter_compress.c \
111 libarchive/archive_write_add_filter_grzip.c \
112 libarchive/archive_write_add_filter_gzip.c \
113 libarchive/archive_write_add_filter_lrzip.c \
114 libarchive/archive_write_add_filter_lz4.c \
115 libarchive/archive_write_add_filter_lzop.c \
116 libarchive/archive_write_add_filter_none.c \
117 libarchive/archive_write_add_filter_program.c \
118 libarchive/archive_write_add_filter_uuencode.c \
119 libarchive/archive_write_add_filter_xz.c \
120 libarchive/archive_write_add_filter_zstd.c \
121 libarchive/archive_write_set_format.c \
122 libarchive/archive_write_set_format_7zip.c \
123 libarchive/archive_write_set_format_ar.c \
124 libarchive/archive_write_set_format_by_name.c \
125 libarchive/archive_write_set_format_cpio.c \
126 libarchive/archive_write_set_format_cpio_newc.c \
127 libarchive/archive_write_set_format_iso9660.c \
128 libarchive/archive_write_set_format_mtree.c \
129 libarchive/archive_write_set_format_pax.c \
130 libarchive/archive_write_set_format_raw.c \
131 libarchive/archive_write_set_format_shar.c \
132 libarchive/archive_write_set_format_ustar.c \
133 libarchive/archive_write_set_format_v7tar.c \
134 libarchive/archive_write_set_format_gnutar.c \
135 libarchive/archive_write_set_format_warc.c \
136 libarchive/archive_write_set_format_xar.c \
137 libarchive/archive_write_set_format_zip.c \
138 libarchive/archive_write_set_options.c \
139 libarchive/archive_write_set_passphrase.c \
140 libarchive/filter_fork_posix.c \
143 ifeq ($(HOST_OS),windows)
144 libarchive_host_src_files := \
145 libarchive/archive_entry_copy_bhfi.c \
146 libarchive/archive_read_disk_windows.c \
147 libarchive/archive_write_disk_windows.c \
148 libarchive/filter_fork_windows.c \
149 libarchive/archive_windows.c
151 libarchive_host_src_files :=
154 libarchive_fe_src_files := libarchive_fe/err.c \
155 libarchive_fe/line_reader.c \
156 libarchive_fe/passphrase.c
158 bsdtar_src_files := tar/bsdtar.c \
159 tar/bsdtar_windows.c \
167 bsdcpio_src_files := cpio/cmdline.c \
170 bsdcat_src_files := cat/cmdline.c \
174 ifeq ($(HOST_OS),darwin)
175 $(warning Host : $(HOST_OS) Not Supported. Host Build Will Be Skipped )
177 libarchive_host_config := contrib/android/config/$(HOST_OS)_host.h
179 include $(CLEAR_VARS)
180 LOCAL_MODULE := libarchive
181 LOCAL_MODULE_TAGS := optional
182 LOCAL_SRC_FILES := $(libarchive_src_files) $(libarchive_host_src_files)
183 LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
184 LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
185 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive
186 include $(BUILD_HOST_STATIC_LIBRARY)
188 include $(CLEAR_VARS)
189 LOCAL_MODULE := libarchive
190 LOCAL_MODULE_TAGS := optional
191 LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
192 LOCAL_SHARED_LIBRARIES := libz-host
193 LOCAL_WHOLE_STATIC_LIBRARIES := libarchive
194 LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
195 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive
196 include $(BUILD_HOST_SHARED_LIBRARY)
198 include $(CLEAR_VARS)
199 LOCAL_MODULE := libarchive_fe
200 LOCAL_MODULE_TAGS := optional
201 LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
202 LOCAL_SRC_FILES := $(libarchive_fe_src_files)
203 LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
204 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive_fe
205 include $(BUILD_HOST_STATIC_LIBRARY)
210 # Do not build target binaries if we are not targeting linux
212 ifeq ($(HOST_OS),linux)
214 include $(CLEAR_VARS)
215 LOCAL_MODULE := bsdtar
216 LOCAL_MODULE_TAGS := optional
217 LOCAL_CFLAGS := -DBSDTAR_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
218 LOCAL_SHARED_LIBRARIES := libz-host
219 LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
220 LOCAL_SRC_FILES := $(bsdtar_src_files)
221 LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
222 include $(BUILD_HOST_EXECUTABLE)
224 include $(CLEAR_VARS)
225 LOCAL_MODULE := bsdcpio
226 LOCAL_MODULE_TAGS := optional
227 LOCAL_CFLAGS := -DBSDCPIO_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
228 LOCAL_SHARED_LIBRARIES := libz-host
229 LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
230 LOCAL_SRC_FILES := $(bsdcpio_src_files)
231 LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
232 include $(BUILD_HOST_EXECUTABLE)
234 include $(CLEAR_VARS)
235 LOCAL_MODULE := bsdcat
236 LOCAL_MODULE_TAGS := optional
237 LOCAL_CFLAGS := -DBSDCAT_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
238 LOCAL_SHARED_LIBRARIES := libz-host
239 LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
240 LOCAL_SRC_FILES := $(bsdcat_src_files)
241 LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
242 include $(BUILD_HOST_EXECUTABLE)
246 include $(CLEAR_VARS)
247 LOCAL_MODULE := libarchive
248 LOCAL_MODULE_TAGS := optional
249 LOCAL_SRC_FILES := $(libarchive_src_files)
250 LOCAL_STATIC_LIBRARIES := libz liblz4
251 LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
252 LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
253 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive
254 include $(BUILD_STATIC_LIBRARY)
257 include $(CLEAR_VARS)
258 LOCAL_MODULE := libarchive
259 LOCAL_MODULE_TAGS := optional
261 LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
262 LOCAL_SHARED_LIBRARIES := libz
263 LOCAL_WHOLE_STATIC_LIBRARIES := libarchive
264 LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
265 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive
266 include $(BUILD_SHARED_LIBRARY)
268 include $(CLEAR_VARS)
269 LOCAL_MODULE := libarchive_fe
270 LOCAL_MODULE_TAGS := optional
271 LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
272 LOCAL_SRC_FILES := $(libarchive_fe_src_files)
273 LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
274 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive_fe
275 include $(BUILD_STATIC_LIBRARY)
278 include $(CLEAR_VARS)
279 LOCAL_MODULE := bsdtar
280 LOCAL_MODULE_TAGS := optional
281 LOCAL_CFLAGS := -DBSDTAR_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
282 LOCAL_SHARED_LIBRARIES := libz
283 LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
284 LOCAL_SRC_FILES := $(bsdtar_src_files)
285 LOCAL_C_INCLUDES := $(LOCAL_PATH)/libarchive $(LOCAL_PATH)/libarchive_fe $(LOCAL_PATH)/contrib/android/include
286 include $(BUILD_EXECUTABLE)
288 include $(CLEAR_VARS)
289 LOCAL_MODULE := bsdcpio
290 LOCAL_MODULE_TAGS := optional
291 LOCAL_CFLAGS := -DBSDCPIO_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
292 LOCAL_SHARED_LIBRARIES := libz
293 LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
294 LOCAL_SRC_FILES := $(bsdcpio_src_files)
295 LOCAL_C_INCLUDES := $(LOCAL_PATH)/libarchive $(LOCAL_PATH)/libarchive_fe $(LOCAL_PATH)/contrib/android/include
296 include $(BUILD_EXECUTABLE)
298 include $(CLEAR_VARS)
299 LOCAL_MODULE := bsdcat
300 LOCAL_MODULE_TAGS := optional
301 LOCAL_CFLAGS := -DBSDCAT_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
302 LOCAL_SHARED_LIBRARIES := libz
303 LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
304 LOCAL_SRC_FILES := $(bsdcat_src_files)
305 LOCAL_C_INCLUDES := $(LOCAL_PATH)/libarchive $(LOCAL_PATH)/libarchive_fe $(LOCAL_PATH)/contrib/android/include
306 include $(BUILD_EXECUTABLE)