Android.mk 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. #
  2. # Copyright (C) 2014 Trevor Drake
  3. #
  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
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  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.
  15. #
  16. #
  17. # A bit of a non-standard LOCAL_PATH declaration here
  18. # The Android.mk lives below the top source directory
  19. # but LOCAL_PATH needs to point to the top of the module
  20. # source tree to maintain the integrity of the intermediates
  21. # directories
  22. LOCAL_PATH := $(subst /contrib/android,,$(call my-dir))
  23. libarchive_target_config := contrib/android/config/android.h
  24. libarchive_src_files := libarchive/archive_acl.c \
  25. libarchive/archive_check_magic.c \
  26. libarchive/archive_cmdline.c \
  27. libarchive/archive_cryptor.c \
  28. libarchive/archive_digest.c \
  29. libarchive/archive_entry.c \
  30. libarchive/archive_entry_copy_stat.c \
  31. libarchive/archive_entry_link_resolver.c \
  32. libarchive/archive_entry_sparse.c \
  33. libarchive/archive_entry_stat.c \
  34. libarchive/archive_entry_strmode.c \
  35. libarchive/archive_entry_xattr.c \
  36. libarchive/archive_getdate.c \
  37. libarchive/archive_hmac.c \
  38. libarchive/archive_match.c \
  39. libarchive/archive_options.c \
  40. libarchive/archive_pack_dev.c \
  41. libarchive/archive_pathmatch.c \
  42. libarchive/archive_ppmd7.c \
  43. libarchive/archive_random.c \
  44. libarchive/archive_rb.c \
  45. libarchive/archive_read.c \
  46. libarchive/archive_read_add_passphrase.c \
  47. libarchive/archive_read_append_filter.c \
  48. libarchive/archive_read_data_into_fd.c \
  49. libarchive/archive_read_disk_entry_from_file.c \
  50. libarchive/archive_read_disk_posix.c \
  51. libarchive/archive_read_disk_set_standard_lookup.c \
  52. libarchive/archive_read_extract.c \
  53. libarchive/archive_read_extract2.c \
  54. libarchive/archive_read_open_fd.c \
  55. libarchive/archive_read_open_file.c \
  56. libarchive/archive_read_open_filename.c \
  57. libarchive/archive_read_open_memory.c \
  58. libarchive/archive_read_set_format.c \
  59. libarchive/archive_read_set_options.c \
  60. libarchive/archive_read_support_filter_all.c \
  61. libarchive/archive_read_support_filter_bzip2.c \
  62. libarchive/archive_read_support_filter_compress.c \
  63. libarchive/archive_read_support_filter_grzip.c \
  64. libarchive/archive_read_support_filter_gzip.c \
  65. libarchive/archive_read_support_filter_lrzip.c \
  66. libarchive/archive_read_support_filter_lz4.c \
  67. libarchive/archive_read_support_filter_lzop.c \
  68. libarchive/archive_read_support_filter_none.c \
  69. libarchive/archive_read_support_filter_program.c \
  70. libarchive/archive_read_support_filter_rpm.c \
  71. libarchive/archive_read_support_filter_uu.c \
  72. libarchive/archive_read_support_filter_xz.c \
  73. libarchive/archive_read_support_filter_zstd.c \
  74. libarchive/archive_read_support_format_7zip.c \
  75. libarchive/archive_read_support_format_all.c \
  76. libarchive/archive_read_support_format_ar.c \
  77. libarchive/archive_read_support_format_by_code.c \
  78. libarchive/archive_read_support_format_cab.c \
  79. libarchive/archive_read_support_format_cpio.c \
  80. libarchive/archive_read_support_format_empty.c \
  81. libarchive/archive_read_support_format_iso9660.c \
  82. libarchive/archive_read_support_format_lha.c \
  83. libarchive/archive_read_support_format_mtree.c \
  84. libarchive/archive_read_support_format_rar.c \
  85. libarchive/archive_read_support_format_raw.c \
  86. libarchive/archive_read_support_format_tar.c \
  87. libarchive/archive_read_support_format_warc.c \
  88. libarchive/archive_read_support_format_xar.c \
  89. libarchive/archive_read_support_format_zip.c \
  90. libarchive/archive_string.c \
  91. libarchive/archive_string_sprintf.c \
  92. libarchive/archive_util.c \
  93. libarchive/archive_version_details.c \
  94. libarchive/archive_virtual.c \
  95. libarchive/archive_write.c \
  96. libarchive/archive_write_disk_posix.c \
  97. libarchive/archive_write_disk_set_standard_lookup.c \
  98. libarchive/archive_write_open_fd.c \
  99. libarchive/archive_write_open_file.c \
  100. libarchive/archive_write_open_filename.c \
  101. libarchive/archive_write_open_memory.c \
  102. libarchive/archive_write_add_filter.c \
  103. libarchive/archive_write_add_filter_b64encode.c \
  104. libarchive/archive_write_add_filter_by_name.c \
  105. libarchive/archive_write_add_filter_bzip2.c \
  106. libarchive/archive_write_add_filter_compress.c \
  107. libarchive/archive_write_add_filter_grzip.c \
  108. libarchive/archive_write_add_filter_gzip.c \
  109. libarchive/archive_write_add_filter_lrzip.c \
  110. libarchive/archive_write_add_filter_lz4.c \
  111. libarchive/archive_write_add_filter_lzop.c \
  112. libarchive/archive_write_add_filter_none.c \
  113. libarchive/archive_write_add_filter_program.c \
  114. libarchive/archive_write_add_filter_uuencode.c \
  115. libarchive/archive_write_add_filter_xz.c \
  116. libarchive/archive_write_add_filter_zstd.c \
  117. libarchive/archive_write_set_format.c \
  118. libarchive/archive_write_set_format_7zip.c \
  119. libarchive/archive_write_set_format_ar.c \
  120. libarchive/archive_write_set_format_by_name.c \
  121. libarchive/archive_write_set_format_cpio.c \
  122. libarchive/archive_write_set_format_cpio_newc.c \
  123. libarchive/archive_write_set_format_iso9660.c \
  124. libarchive/archive_write_set_format_mtree.c \
  125. libarchive/archive_write_set_format_pax.c \
  126. libarchive/archive_write_set_format_raw.c \
  127. libarchive/archive_write_set_format_shar.c \
  128. libarchive/archive_write_set_format_ustar.c \
  129. libarchive/archive_write_set_format_v7tar.c \
  130. libarchive/archive_write_set_format_gnutar.c \
  131. libarchive/archive_write_set_format_warc.c \
  132. libarchive/archive_write_set_format_xar.c \
  133. libarchive/archive_write_set_format_zip.c \
  134. libarchive/archive_write_set_options.c \
  135. libarchive/archive_write_set_passphrase.c \
  136. libarchive/filter_fork_posix.c \
  137. libarchive/xxhash.c
  138. ifeq ($(HOST_OS),windows)
  139. libarchive_host_src_files := \
  140. libarchive/archive_entry_copy_bhfi.c \
  141. libarchive/archive_read_disk_windows.c \
  142. libarchive/archive_write_disk_windows.c \
  143. libarchive/filter_fork_windows.c \
  144. libarchive/archive_windows.c
  145. else
  146. libarchive_host_src_files :=
  147. endif
  148. libarchive_fe_src_files := libarchive_fe/err.c \
  149. libarchive_fe/line_reader.c \
  150. libarchive_fe/passphrase.c
  151. bsdtar_src_files := tar/bsdtar.c \
  152. tar/bsdtar_windows.c \
  153. tar/cmdline.c \
  154. tar/creation_set.c \
  155. tar/read.c \
  156. tar/subst.c \
  157. tar/util.c \
  158. tar/write.c
  159. bsdcpio_src_files := cpio/cmdline.c \
  160. cpio/cpio.c
  161. bsdcat_src_files := cat/cmdline.c \
  162. cat/bsdcat.c
  163. ifeq ($(HOST_OS),darwin)
  164. $(warning Host : $(HOST_OS) Not Supported. Host Build Will Be Skipped )
  165. else
  166. libarchive_host_config := contrib/android/config/$(HOST_OS)_host.h
  167. include $(CLEAR_VARS)
  168. LOCAL_MODULE := libarchive
  169. LOCAL_MODULE_TAGS := optional
  170. LOCAL_SRC_FILES := $(libarchive_src_files) $(libarchive_host_src_files)
  171. LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
  172. LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
  173. LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive
  174. include $(BUILD_HOST_STATIC_LIBRARY)
  175. include $(CLEAR_VARS)
  176. LOCAL_MODULE := libarchive
  177. LOCAL_MODULE_TAGS := optional
  178. LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
  179. LOCAL_SHARED_LIBRARIES := libz-host
  180. LOCAL_WHOLE_STATIC_LIBRARIES := libarchive
  181. LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
  182. LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive
  183. include $(BUILD_HOST_SHARED_LIBRARY)
  184. include $(CLEAR_VARS)
  185. LOCAL_MODULE := libarchive_fe
  186. LOCAL_MODULE_TAGS := optional
  187. LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
  188. LOCAL_SRC_FILES := $(libarchive_fe_src_files)
  189. LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
  190. LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive_fe
  191. include $(BUILD_HOST_STATIC_LIBRARY)
  192. endif
  193. # Do not build target binaries if we are not targeting linux
  194. # on the host
  195. ifeq ($(HOST_OS),linux)
  196. include $(CLEAR_VARS)
  197. LOCAL_MODULE := bsdtar
  198. LOCAL_MODULE_TAGS := optional
  199. LOCAL_CFLAGS := -DBSDTAR_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
  200. LOCAL_SHARED_LIBRARIES := libz-host
  201. LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
  202. LOCAL_SRC_FILES := $(bsdtar_src_files)
  203. LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
  204. include $(BUILD_HOST_EXECUTABLE)
  205. include $(CLEAR_VARS)
  206. LOCAL_MODULE := bsdcpio
  207. LOCAL_MODULE_TAGS := optional
  208. LOCAL_CFLAGS := -DBSDCPIO_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_host_config)\"
  209. LOCAL_SHARED_LIBRARIES := libz-host
  210. LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
  211. LOCAL_SRC_FILES := $(bsdcpio_src_files)
  212. LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
  213. include $(BUILD_HOST_EXECUTABLE)
  214. include $(CLEAR_VARS)
  215. LOCAL_MODULE := bsdcat
  216. LOCAL_MODULE_TAGS := optional
  217. LOCAL_CFLAGS := -DBSDCAT_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 := $(bsdcat_src_files)
  221. LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
  222. include $(BUILD_HOST_EXECUTABLE)
  223. include $(CLEAR_VARS)
  224. LOCAL_MODULE := libarchive
  225. LOCAL_MODULE_TAGS := optional
  226. LOCAL_SRC_FILES := $(libarchive_src_files)
  227. LOCAL_STATIC_LIBRARIES := libz liblz4
  228. LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
  229. LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
  230. LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive
  231. include $(BUILD_STATIC_LIBRARY)
  232. include $(CLEAR_VARS)
  233. LOCAL_MODULE := libarchive
  234. LOCAL_MODULE_TAGS := optional
  235. LOCAL_C_INCLUDES :=
  236. LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
  237. LOCAL_SHARED_LIBRARIES := libz
  238. LOCAL_WHOLE_STATIC_LIBRARIES := libarchive
  239. LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
  240. LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive
  241. include $(BUILD_SHARED_LIBRARY)
  242. include $(CLEAR_VARS)
  243. LOCAL_MODULE := libarchive_fe
  244. LOCAL_MODULE_TAGS := optional
  245. LOCAL_CFLAGS := -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
  246. LOCAL_SRC_FILES := $(libarchive_fe_src_files)
  247. LOCAL_C_INCLUDES := $(LOCAL_PATH)/contrib/android/include
  248. LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/libarchive_fe
  249. include $(BUILD_STATIC_LIBRARY)
  250. include $(CLEAR_VARS)
  251. LOCAL_MODULE := bsdtar
  252. LOCAL_MODULE_TAGS := optional
  253. LOCAL_CFLAGS := -DBSDTAR_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
  254. LOCAL_SHARED_LIBRARIES := libz
  255. LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
  256. LOCAL_SRC_FILES := $(bsdtar_src_files)
  257. LOCAL_C_INCLUDES := $(LOCAL_PATH)/libarchive $(LOCAL_PATH)/libarchive_fe $(LOCAL_PATH)/contrib/android/include
  258. include $(BUILD_EXECUTABLE)
  259. include $(CLEAR_VARS)
  260. LOCAL_MODULE := bsdcpio
  261. LOCAL_MODULE_TAGS := optional
  262. LOCAL_CFLAGS := -DBSDCPIO_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
  263. LOCAL_SHARED_LIBRARIES := libz
  264. LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
  265. LOCAL_SRC_FILES := $(bsdcpio_src_files)
  266. LOCAL_C_INCLUDES := $(LOCAL_PATH)/libarchive $(LOCAL_PATH)/libarchive_fe $(LOCAL_PATH)/contrib/android/include
  267. include $(BUILD_EXECUTABLE)
  268. include $(CLEAR_VARS)
  269. LOCAL_MODULE := bsdcat
  270. LOCAL_MODULE_TAGS := optional
  271. LOCAL_CFLAGS := -DBSDCAT_VERSION_STRING=ARCHIVE_VERSION_ONLY_STRING -DPLATFORM_CONFIG_H=\"$(libarchive_target_config)\"
  272. LOCAL_SHARED_LIBRARIES := libz
  273. LOCAL_STATIC_LIBRARIES := libarchive libarchive_fe
  274. LOCAL_SRC_FILES := $(bsdcat_src_files)
  275. LOCAL_C_INCLUDES := $(LOCAL_PATH)/libarchive $(LOCAL_PATH)/libarchive_fe $(LOCAL_PATH)/contrib/android/include
  276. include $(BUILD_EXECUTABLE)
  277. endif