blob: 5693c7a59231f540b72dd11ccbe280745020fb93 [file] [log] [blame]
Matúš Kukan16aa0732012-11-21 22:36:34 +01001# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
2#
3# This file is part of the LibreOffice project.
4#
5# This Source Code Form is subject to the terms of the Mozilla Public
6# License, v. 2.0. If a copy of the MPL was not distributed with this
7# file, You can obtain one at http://mozilla.org/MPL/2.0/.
8#
9
10fetch_LOGFILE := $(TARFILE_LOCATION)/fetch.log
11
12ifneq (,$(WGET))
13define fetch_Download__wget_command
Michael Stahl884606e2015-10-05 17:44:10 +020014&& bash -c '$(WGET) --progress=dot:mega -4 -Q 0 -P "." -l 0 -nd -nH -N $1/$2 2>&1 | tee -a $(fetch_LOGFILE) && [ $$PIPESTATUS -eq 0 ]'
Matúš Kukan16aa0732012-11-21 22:36:34 +010015endef
16
17else
18define fetch_Download__wget_command
Michael Stahl884606e2015-10-05 17:44:10 +020019&& echo fetching $2 && bash -c '$(CURL) -O $1/$2 2>&1 | tee -a $(fetch_LOGFILE) && [ $$PIPESTATUS -eq 0 ]'
Matúš Kukan16aa0732012-11-21 22:36:34 +010020endef
21
22endif
23
24ifneq (,$(MD5SUM))
25define fetch_Download__checksum_command
26&& SUM=`$(MD5SUM) $1 | sed "s/ .*//"` \
27&& if test "$$SUM" != "$2"; then \
28 echo ERROR: expected checksum for $1 is $2 2>&1 | tee -a $(fetch_LOGFILE); \
29 false; \
30fi
31endef
32
33else
34fetch_Download__checksum_command :=
35
36endif
37
Matúš Kukandf50d2d2012-11-23 12:54:15 +010038# fetch__Download_item url tarball-name md5sum
39define fetch__Download_item
Matúš Kukan16aa0732012-11-21 22:36:34 +010040$(if $(wildcard $(TARFILE_LOCATION)/$2),, \
41cd $(TARFILE_LOCATION)/tmp \
42$(call fetch_Download__wget_command,$1,$2) \
Matúš Kukandf50d2d2012-11-23 12:54:15 +010043$(if $3,$(call fetch_Download__checksum_command,$2,$3)) \
Matúš Kukan16aa0732012-11-21 22:36:34 +010044&& mv $2 ../ \
45)
46
47endef
48
David Tardona5a48f62014-05-11 14:42:44 +020049# fetch_Download__is_checksum checksum
50define fetch_Download__is_checksum
51$(filter 32,$(words $(shell echo $(1) | sed -e 's/./& /g')))
52endef
53
David Tardon54090102014-05-15 08:23:15 +020054define fetch_Download__subst_var
55$(subst _DLL,_MD5SUM,$(subst _TARBALL,_MD5SUM,$(subst _PACK,_MD5SUM,$(1))))
56endef
57
David Tardona5a48f62014-05-11 14:42:44 +020058# fetch_Download_item url variable-name
Matúš Kukandf50d2d2012-11-23 12:54:15 +010059define fetch_Download_item
David Tardon717ca9c2014-05-11 15:30:35 +020060$(if $(strip $($(2))),,$(error fetch__Download_item: $(2) is empty))
David Tardon54090102014-05-15 08:23:15 +020061$(if $(filter undefined,$(origin $(call fetch_Download__subst_var,$(2)))),\
David Tardona5a48f62014-05-11 14:42:44 +020062 $(if $(call fetch_Download__is_checksum,$(firstword $(subst -, ,$($(2))))),\
63 $(call fetch__Download_item,$1,$($2),$(firstword $(subst -, ,$($(2))))),\
David Tardon54090102014-05-15 08:23:15 +020064 $(error "fetch_Download_item: no checksum found for $($(2)). Please define $(call fetch_Download__subst_var,$(2)) in download.lst.") \
David Tardona5a48f62014-05-11 14:42:44 +020065 ),\
David Tardon54090102014-05-15 08:23:15 +020066 $(call fetch__Download_item,$(1),$($2),$($(call fetch_Download__subst_var,$(2)))) \
David Tardona5a48f62014-05-11 14:42:44 +020067)
Matúš Kukandf50d2d2012-11-23 12:54:15 +010068
69endef
70
David Tardona5a48f62014-05-11 14:42:44 +020071# fetch_Download_item url tarball-name
72define fetch_Download_item_unchecked
73$(call fetch__Download_item,$1,$2)
Matúš Kukandf50d2d2012-11-23 12:54:15 +010074
75endef
76
Matúš Kukancb3fc7f2012-11-22 19:15:18 +010077fetch_BUILD_TYPE := $(sort $(BUILD_TYPE))
Michael Stahld729d162014-02-27 16:19:43 +010078ifneq ($(CROSS_COMPILING),)
Matúš Kukancb3fc7f2012-11-22 19:15:18 +010079fetch_BUILD_TYPE := $(sort $(fetch_BUILD_TYPE) $(shell . $(SRCDIR)/bin/get_config_variables --build BUILD_TYPE && echo $$BUILD_TYPE))
80endif
81
David Tardona5a48f62014-05-11 14:42:44 +020082# Return variable-name if this tarball should be fetched.
83#
84# This function is used for tarballs predefined in download.lst.
85#
86# fetch_Optional build-type variable-name
Matúš Kukan6d69a502012-11-22 11:21:58 +010087define fetch_Optional
Matúš Kukancb3fc7f2012-11-22 19:15:18 +010088$(if $(filter ALL,$(DO_FETCH_TARBALLS))$(filter $1,$(fetch_BUILD_TYPE)),$2)
Matúš Kukan6d69a502012-11-22 11:21:58 +010089endef
90
David Tardona5a48f62014-05-11 14:42:44 +020091# Return variable-name if this pack should be fetched.
92#
93# This function is used for packs defined by configure.
94#
95# fetch_Optional_pack variable-name
96define fetch_Optional_pack
97$(if $(strip $($(1))),$(1))
98endef
99
Matúš Kukan3051f8b2012-11-29 10:04:31 +0100100download: $(WORKDIR)/download
Matúš Kukan42606e32012-11-26 14:17:18 +0100101
Luboš Luňákc8c056f2012-12-11 15:39:49 +0100102$(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR)/Makefile.fetch
Tor Lillqvist3c15eda2013-07-24 20:44:52 +0300103 -@mkdir -p $(TARFILE_LOCATION)/tmp
Matúš Kukan42606e32012-11-26 14:17:18 +0100104 @date >> $(fetch_LOGFILE)
Matúš Kukan16aa0732012-11-21 22:36:34 +0100105 $(foreach item, \
Fridrich Štrba10eaaac2014-01-13 17:01:32 +0100106 $(call fetch_Optional,ABW,ABW_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200107 $(call fetch_Optional,APACHE_COMMONS,APACHE_COMMONS_LOGGING_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200108 $(call fetch_Optional,APR,APR_TARBALL) \
109 $(call fetch_Optional,APR,APR_UTIL_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200110 $(call fetch_Optional,BOOST,BOOST_TARBALL) \
111 $(call fetch_Optional,BSH,BSH_TARBALL) \
Nathan Yee7eb863d2015-07-03 11:58:27 +0200112 $(call fetch_Optional,BZIP2,BZIP2_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200113 $(call fetch_Optional,CAIRO,CAIRO_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200114 $(call fetch_Optional,CAIRO,PIXMAN_TARBALL) \
115 $(call fetch_Optional,CDR,CDR_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200116 $(call fetch_Optional,CLUCENE,CLUCENE_TARBALL) \
117 $(call fetch_Optional,CMIS,CMIS_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200118 $(call fetch_Optional,COINMP,COINMP_TARBALL) \
Zolnai Tamásd57591702014-04-10 13:37:38 +0200119 $(call fetch_Optional,COLLADA2GLTF,COLLADA2GLTF_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200120 $(call fetch_Optional,CPPUNIT,CPPUNIT_TARBALL) \
121 $(call fetch_Optional,CT2N,CT2N_TARBALL) \
122 $(call fetch_Optional,CURL,CURL_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200123 $(call fetch_Optional,EBOOK,EBOOK_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200124 $(call fetch_Optional,EPM,EPM_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200125 $(call fetch_Optional,ETONYEK,ETONYEK_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200126 $(call fetch_Optional,EXPAT,EXPAT_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200127 $(call fetch_Optional,FIREBIRD,FIREBIRD_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200128 $(call fetch_Optional,FONTCONFIG,FONTCONFIG_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200129 $(call fetch_Optional,FREEHAND,FREEHAND_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200130 $(call fetch_Optional,FREETYPE,FREETYPE_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200131 $(call fetch_Optional,GLEW,GLEW_TARBALL) \
132 $(call fetch_Optional,GLM,GLM_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200133 $(call fetch_Optional_pack,GOOGLE_DOCS_EXTENSION_PACK) \
134 $(call fetch_Optional,GRAPHITE,GRAPHITE_TARBALL) \
135 $(call fetch_Optional,HARFBUZZ,HARFBUZZ_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200136 $(call fetch_Optional,HSQLDB,HSQLDB_TARBALL) \
137 $(call fetch_Optional,HUNSPELL,HUNSPELL_TARBALL) \
138 $(call fetch_Optional,HYPHEN,HYPHEN_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200139 $(call fetch_Optional,ICU,ICU_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200140 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_FLOW_ENGINE_TARBALL) \
141 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_FLUTE_TARBALL) \
142 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBBASE_TARBALL) \
143 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBFONTS_TARBALL) \
144 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBFORMULA_TARBALL) \
145 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBLAYOUT_TARBALL) \
146 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBLOADER_TARBALL) \
147 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBREPOSITORY_TARBALL) \
148 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBSERIALIZER_TARBALL) \
149 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBXML_TARBALL) \
150 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_SAC_TARBALL) \
151 $(call fetch_Optional,JPEG,JPEG_TARBALL) \
Matúš Kukan71fae5d2014-11-17 09:16:34 +0100152 $(call fetch_Optional,JPEG_TURBO,JPEG_TURBO_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200153 $(call fetch_Optional,LANGUAGETOOL,LANGUAGETOOL_TARBALL) \
154 $(call fetch_Optional,LCMS2,LCMS2_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200155 $(call fetch_Optional,LIBATOMIC_OPS,LIBATOMIC_OPS_TARBALL) \
156 $(call fetch_Optional,LIBEOT,LIBEOT_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200157 $(call fetch_Optional,LIBEXTTEXTCAT,LIBEXTTEXTCAT_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200158 $(call fetch_Optional,LIBLANGTAG,LANGTAGREG_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200159 $(call fetch_Optional,LIBLANGTAG,LIBLANGTAG_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200160 $(call fetch_Optional,LIBPNG,PNG_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200161 $(call fetch_Optional,LIBXML2,LIBXML_TARBALL) \
162 LIBXMLSEC_TARBALL \
163 $(call fetch_Optional,LIBXSLT,LIBXSLT_TARBALL) \
164 $(call fetch_Optional,LPSOLVE,LPSOLVE_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200165 $(call fetch_Optional,MARIADB,MARIADB_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200166 $(call fetch_Optional,MDDS,MDDS_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200167 $(call fetch_Optional,MORE_FONTS,FONT_CALADEA_TARBALL) \
168 $(call fetch_Optional,MORE_FONTS,FONT_CARLITO_TARBALL) \
169 $(call fetch_Optional,MORE_FONTS,FONT_DEJAVU_TARBALL) \
170 $(call fetch_Optional,MORE_FONTS,FONT_GENTIUM_TARBALL) \
171 $(call fetch_Optional,MORE_FONTS,FONT_LIBERATION_NARROW_TARBALL) \
172 $(call fetch_Optional,MORE_FONTS,FONT_LIBERATION_TARBALL) \
173 $(call fetch_Optional,MORE_FONTS,FONT_LINLIBERTINEG_TARBALL) \
174 $(call fetch_Optional,MORE_FONTS,FONT_OPENSANS_TARBALL) \
175 $(call fetch_Optional,MORE_FONTS,FONT_PTSERIF_TARBALL) \
176 $(call fetch_Optional,MORE_FONTS,FONT_SOURCECODE_TARBALL) \
177 $(call fetch_Optional,MORE_FONTS,FONT_SOURCESANS_TARBALL) \
178 $(call fetch_Optional,MSPUB,MSPUB_TARBALL) \
179 $(call fetch_Optional,MWAW,MWAW_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200180 $(call fetch_Optional,MYSQLCPPCONN,MYSQLCPPCONN_TARBALL) \
181 $(call fetch_Optional,MYTHES,MYTHES_TARBALL) \
182 $(call fetch_Optional,NEON,NEON_TARBALL) \
183 $(call fetch_Optional,NSS,NSS_TARBALL) \
184 $(call fetch_Optional_pack,NUMBERTEXT_EXTENSION_PACK) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200185 $(call fetch_Optional,ODFGEN,ODFGEN_TARBALL) \
David Tardonf24c6082014-10-20 14:21:22 +0200186 $(call fetch_Optional,OPENCOLLADA,OPENCOLLADA_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200187 $(call fetch_Optional,OPENLDAP,OPENLDAP_TARBALL) \
188 $(call fetch_Optional,OPENSSL,OPENSSL_TARBALL) \
189 $(call fetch_Optional,ORCUS,ORCUS_TARBALL) \
Jacobo Aragunde Péreze6fe5082015-02-02 19:49:37 +0000190 $(call fetch_Optional,OWNCLOUD_ANDROID_LIB,OWNCLOUD_ANDROID_LIB_TARBALL) \
David Tardone2c0e022014-06-27 11:07:06 +0200191 $(call fetch_Optional,PAGEMAKER,PAGEMAKER_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200192 $(call fetch_Optional,POPPLER,POPPLER_TARBALL) \
193 $(call fetch_Optional,POSTGRESQL,POSTGRESQL_TARBALL) \
194 $(call fetch_Optional,PYTHON,PYTHON_TARBALL) \
195 $(call fetch_Optional,REDLAND,RAPTOR_TARBALL) \
196 $(call fetch_Optional,REDLAND,RASQAL_TARBALL) \
197 $(call fetch_Optional,REDLAND,REDLAND_TARBALL) \
David Tardonb421ce72014-05-24 08:39:54 +0200198 $(call fetch_Optional,REVENGE,REVENGE_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200199 $(call fetch_Optional,RHINO,RHINO_TARBALL) \
200 $(call fetch_Optional,RHINO,SWING_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200201 $(call fetch_Optional,SERF,SERF_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200202 $(call fetch_Optional,UCPP,UCPP_TARBALL) \
Andrzej Hunt714857c2015-01-28 18:48:38 +0000203 $(call fetch_Optional,UDUNITS2,UDUNITS2_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200204 $(call fetch_Optional,VIGRA,VIGRA_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200205 $(call fetch_Optional,VISIO,VISIO_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200206 $(call fetch_Optional,WPD,WPD_TARBALL) \
207 $(call fetch_Optional,WPG,WPG_TARBALL) \
208 $(call fetch_Optional,WPS,WPS_TARBALL) \
209 $(call fetch_Optional,XSLTML,XSLTML_TARBALL) \
210 $(call fetch_Optional,ZLIB,ZLIB_TARBALL) \
211 ,$(call fetch_Download_item,http://dev-www.libreoffice.org/src,$(item)))
212 $(foreach item, \
213 $(call fetch_Optional,DBGHELP,DBGHELP_DLL) \
214 $(call fetch_Optional,ODK,UNOWINREG_DLL) \
Matúš Kukan16aa0732012-11-21 22:36:34 +0100215 ,$(call fetch_Download_item,http://dev-www.libreoffice.org/extern,$(item)))
216 $(foreach item, \
David Tardona5a48f62014-05-11 14:42:44 +0200217 $(call fetch_Optional_pack,BARCODE_EXTENSION_PACK) \
218 $(call fetch_Optional_pack,DIAGRAM_EXTENSION_PACK) \
219 $(call fetch_Optional_pack,HUNART_EXTENSION_PACK) \
220 $(call fetch_Optional_pack,OOOP_FONTS_PACK) \
221 $(call fetch_Optional_pack,OOOP_GALLERY_PACK) \
222 $(call fetch_Optional_pack,OOOP_SAMPLES_PACK) \
223 $(call fetch_Optional_pack,OOOP_TEMPLATES_PACK) \
224 $(call fetch_Optional_pack,SUNTEMPLATES_DE_PACK) \
225 $(call fetch_Optional_pack,SUNTEMPLATES_EN_US_PACK) \
226 $(call fetch_Optional_pack,SUNTEMPLATES_ES_PACK) \
227 $(call fetch_Optional_pack,SUNTEMPLATES_FR_PACK) \
228 $(call fetch_Optional_pack,SUNTEMPLATES_HU_PACK) \
229 $(call fetch_Optional_pack,SUNTEMPLATES_IT_PACK) \
230 $(call fetch_Optional_pack,TYPO_EXTENSION_PACK) \
231 $(call fetch_Optional_pack,VALIDATOR_EXTENSION_PACK) \
232 $(call fetch_Optional_pack,WATCH_WINDOW_EXTENSION_PACK) \
Matúš Kukan16aa0732012-11-21 22:36:34 +0100233 ,$(call fetch_Download_item,http://ooo.itc.hu/oxygenoffice/download/libreoffice,$(item)))
234 $(foreach item, \
Matúš Kukan6d69a502012-11-22 11:21:58 +0100235 $(call fetch_Optional,MOZ,$(MOZ_ZIP_INC)) \
236 $(call fetch_Optional,MOZ,$(MOZ_ZIP_LIB)) \
237 $(call fetch_Optional,MOZ,$(MOZ_ZIP_RUNTIME)) \
David Tardona5a48f62014-05-11 14:42:44 +0200238 ,$(call fetch_Download_item_unchecked,http://dev-www.libreoffice.org/mozilla,$(item)))
Zolnai Tamás11b32812014-07-14 12:07:06 +0200239 $(if $(call fetch_Optional,LIBGLTF,LIBGLTF_TARBALL) \
240 , $(call fetch_Download_item,http://dev-www.libreoffice.org/src/libgltf,$(call fetch_Optional,LIBGLTF,LIBGLTF_TARBALL)))
Matúš Kukan3051f8b2012-11-29 10:04:31 +0100241 @mkdir -p $(dir $@) && touch $@
Matúš Kukan16aa0732012-11-21 22:36:34 +0100242
243# vim: set noet sw=4 ts=4: