blob: 42a8ca8684f9dbf48c5607ffc79785a0f7733233 [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
Bryan Quigley424897b2017-01-25 15:13:25 -050014&& bash -c '$(WGET) --progress=dot:mega -Q 0 -P "." -l 0 -nd -nH -N --no-use-server-timestamps $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
Bryan Quigleyfaef35d2017-02-24 11:05:48 -050024ifneq (,$(SHA256SUM))
Matúš Kukan16aa0732012-11-21 22:36:34 +010025define fetch_Download__checksum_command
Bryan Quigleyfaef35d2017-02-24 11:05:48 -050026&& SUM=`$(SHA256SUM) $1 | sed "s/ .*//"` \
Matúš Kukan16aa0732012-11-21 22:36:34 +010027&& 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
Bryan Quigleyfaef35d2017-02-24 11:05:48 -050038# fetch__Download_item url tarball-name sha256sum
Matúš Kukandf50d2d2012-11-23 12:54:15 +010039define 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
Bryan Quigleyfaef35d2017-02-24 11:05:48 -050055$(subst _DLL,_SHA256SUM,$(subst _TARBALL,_SHA256SUM,$(subst _PACK,_SHA256SUM,$(subst _JAR,_SHA256SUM,$(1)))))
David Tardon54090102014-05-15 08:23:15 +020056endef
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)))),\
Khaled Hosny48670532017-03-11 04:09:21 +020062 $(error "fetch_Download_item: no checksum found for $($(2)). Please define $(call fetch_Download__subst_var,$(2)) in download.lst."),\
David Tardon54090102014-05-15 08:23:15 +020063 $(call fetch__Download_item,$(1),$($2),$($(call fetch_Download__subst_var,$(2)))) \
David Tardona5a48f62014-05-11 14:42:44 +020064)
Matúš Kukandf50d2d2012-11-23 12:54:15 +010065
66endef
67
David Tardona5a48f62014-05-11 14:42:44 +020068# fetch_Download_item url tarball-name
69define fetch_Download_item_unchecked
70$(call fetch__Download_item,$1,$2)
Matúš Kukandf50d2d2012-11-23 12:54:15 +010071
72endef
73
Matúš Kukancb3fc7f2012-11-22 19:15:18 +010074fetch_BUILD_TYPE := $(sort $(BUILD_TYPE))
Michael Stahld729d162014-02-27 16:19:43 +010075ifneq ($(CROSS_COMPILING),)
Matúš Kukancb3fc7f2012-11-22 19:15:18 +010076fetch_BUILD_TYPE := $(sort $(fetch_BUILD_TYPE) $(shell . $(SRCDIR)/bin/get_config_variables --build BUILD_TYPE && echo $$BUILD_TYPE))
77endif
78
David Tardona5a48f62014-05-11 14:42:44 +020079# Return variable-name if this tarball should be fetched.
80#
81# This function is used for tarballs predefined in download.lst.
82#
83# fetch_Optional build-type variable-name
Matúš Kukan6d69a502012-11-22 11:21:58 +010084define fetch_Optional
Matúš Kukancb3fc7f2012-11-22 19:15:18 +010085$(if $(filter ALL,$(DO_FETCH_TARBALLS))$(filter $1,$(fetch_BUILD_TYPE)),$2)
Matúš Kukan6d69a502012-11-22 11:21:58 +010086endef
87
David Tardona5a48f62014-05-11 14:42:44 +020088# Return variable-name if this pack should be fetched.
89#
90# This function is used for packs defined by configure.
91#
92# fetch_Optional_pack variable-name
93define fetch_Optional_pack
94$(if $(strip $($(1))),$(1))
95endef
96
Matúš Kukan3051f8b2012-11-29 10:04:31 +010097download: $(WORKDIR)/download
Matúš Kukan42606e32012-11-26 14:17:18 +010098
Michael Stahlfe3fb5e2017-05-22 17:21:51 +020099$(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk $(SRCDIR)/download.lst $(SRCDIR)/Makefile.fetch
Tor Lillqvist3c15eda2013-07-24 20:44:52 +0300100 -@mkdir -p $(TARFILE_LOCATION)/tmp
Matúš Kukan42606e32012-11-26 14:17:18 +0100101 @date >> $(fetch_LOGFILE)
Matúš Kukan16aa0732012-11-21 22:36:34 +0100102 $(foreach item, \
Fridrich Štrba10eaaac2014-01-13 17:01:32 +0100103 $(call fetch_Optional,ABW,ABW_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200104 $(call fetch_Optional,APACHE_COMMONS,APACHE_COMMONS_LOGGING_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200105 $(call fetch_Optional,APR,APR_TARBALL) \
106 $(call fetch_Optional,APR,APR_UTIL_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200107 $(call fetch_Optional,BOOST,BOOST_TARBALL) \
Markus Mohrharda46ef632015-11-15 04:39:24 +0100108 $(call fetch_Optional,BREAKPAD,BREAKPAD_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200109 $(call fetch_Optional,BSH,BSH_TARBALL) \
Nathan Yee7eb863d2015-07-03 11:58:27 +0200110 $(call fetch_Optional,BZIP2,BZIP2_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200111 $(call fetch_Optional,CAIRO,CAIRO_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200112 $(call fetch_Optional,CAIRO,PIXMAN_TARBALL) \
113 $(call fetch_Optional,CDR,CDR_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200114 $(call fetch_Optional,CLUCENE,CLUCENE_TARBALL) \
Michael Stahl38abb6a2017-09-13 23:44:32 +0200115 $(call fetch_Optional,LIBCMIS,LIBCMIS_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200116 $(call fetch_Optional,COINMP,COINMP_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200117 $(call fetch_Optional,CPPUNIT,CPPUNIT_TARBALL) \
118 $(call fetch_Optional,CT2N,CT2N_TARBALL) \
119 $(call fetch_Optional,CURL,CURL_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200120 $(call fetch_Optional,EBOOK,EBOOK_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200121 $(call fetch_Optional,EPM,EPM_TARBALL) \
Miklos Vajna3f163062017-08-02 16:29:48 +0200122 $(call fetch_Optional,EPUBGEN,EPUBGEN_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200123 $(call fetch_Optional,ETONYEK,ETONYEK_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200124 $(call fetch_Optional,EXPAT,EXPAT_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200125 $(call fetch_Optional,FIREBIRD,FIREBIRD_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200126 $(call fetch_Optional,FONTCONFIG,FONTCONFIG_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200127 $(call fetch_Optional,FREEHAND,FREEHAND_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200128 $(call fetch_Optional,FREETYPE,FREETYPE_TARBALL) \
Caolán McNamara482d7ce2016-11-25 20:25:27 +0000129 $(call fetch_Optional,EPOXY,EPOXY_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200130 $(call fetch_Optional,GLM,GLM_TARBALL) \
Katarina Behrensf41fa222017-02-23 12:57:42 +0100131 $(call fetch_Optional,GPGMEPP,GPGME_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200132 $(call fetch_Optional,GRAPHITE,GRAPHITE_TARBALL) \
133 $(call fetch_Optional,HARFBUZZ,HARFBUZZ_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200134 $(call fetch_Optional,HSQLDB,HSQLDB_TARBALL) \
135 $(call fetch_Optional,HUNSPELL,HUNSPELL_TARBALL) \
136 $(call fetch_Optional,HYPHEN,HYPHEN_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200137 $(call fetch_Optional,ICU,ICU_TARBALL) \
Eike Rathkefabad002017-04-22 01:24:19 +0200138 $(call fetch_Optional,ICU,ICU_DATA_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200139 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_FLOW_ENGINE_TARBALL) \
140 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_FLUTE_TARBALL) \
141 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBBASE_TARBALL) \
142 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBFONTS_TARBALL) \
143 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBFORMULA_TARBALL) \
144 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBLAYOUT_TARBALL) \
145 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBLOADER_TARBALL) \
146 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBREPOSITORY_TARBALL) \
147 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBSERIALIZER_TARBALL) \
148 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_LIBXML_TARBALL) \
149 $(call fetch_Optional,JFREEREPORT,JFREEREPORT_SAC_TARBALL) \
Michael Stahl77d297f2017-09-13 22:50:14 +0200150 $(call fetch_Optional,LIBJPEG_TURBO,LIBJPEG_TURBO_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200151 $(call fetch_Optional,LANGUAGETOOL,LANGUAGETOOL_TARBALL) \
152 $(call fetch_Optional,LCMS2,LCMS2_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200153 $(call fetch_Optional,LIBATOMIC_OPS,LIBATOMIC_OPS_TARBALL) \
Katarina Behrensc6315e12017-01-30 18:01:18 +0100154 $(call fetch_Optional,LIBASSUAN,LIBASSUAN_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200155 $(call fetch_Optional,LIBEOT,LIBEOT_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200156 $(call fetch_Optional,LIBEXTTEXTCAT,LIBEXTTEXTCAT_TARBALL) \
Katarina Behrensc6315e12017-01-30 18:01:18 +0100157 $(call fetch_Optional,LIBGPGERROR,LIBGPGERROR_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) \
Michael Stahlb0e0ee42017-09-14 14:12:40 +0200160 $(call fetch_Optional,LIBPNG,LIBPNG_TARBALL) \
Wastack45f42682016-07-28 17:16:19 +0200161 $(call fetch_Optional,LIBTOMMATH,LIBTOMMATH_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200162 $(call fetch_Optional,LIBXML2,LIBXML_TARBALL) \
Michael Stahl6cdf7612017-09-14 15:11:33 +0200163 XMLSEC_TARBALL \
David Tardona5a48f62014-05-11 14:42:44 +0200164 $(call fetch_Optional,LIBXSLT,LIBXSLT_TARBALL) \
165 $(call fetch_Optional,LPSOLVE,LPSOLVE_TARBALL) \
Michael Stahl871d75e2017-09-14 13:30:05 +0200166 $(call fetch_Optional,MARIADB_CONNECTOR_C,MARIADB_CONNECTOR_C_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200167 $(call fetch_Optional,MDDS,MDDS_TARBALL) \
Michael Stahl9ec0e6d2015-11-27 23:54:40 +0100168 $(call fetch_Optional,MDNSRESPONDER,MDNSRESPONDER_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200169 $(call fetch_Optional,MORE_FONTS,FONT_CALADEA_TARBALL) \
170 $(call fetch_Optional,MORE_FONTS,FONT_CARLITO_TARBALL) \
171 $(call fetch_Optional,MORE_FONTS,FONT_DEJAVU_TARBALL) \
172 $(call fetch_Optional,MORE_FONTS,FONT_GENTIUM_TARBALL) \
173 $(call fetch_Optional,MORE_FONTS,FONT_LIBERATION_NARROW_TARBALL) \
174 $(call fetch_Optional,MORE_FONTS,FONT_LIBERATION_TARBALL) \
175 $(call fetch_Optional,MORE_FONTS,FONT_LINLIBERTINEG_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200176 $(call fetch_Optional,MORE_FONTS,FONT_SOURCECODE_TARBALL) \
177 $(call fetch_Optional,MORE_FONTS,FONT_SOURCESANS_TARBALL) \
Akshay Deep9e422bc2016-11-26 02:26:30 +0530178 $(call fetch_Optional,MORE_FONTS,FONT_EMOJIONE_COLOR_TARBALL) \
Yousuf Philipsb97e7132017-10-31 21:48:27 +0400179 $(call fetch_Optional,MORE_FONTS,FONT_NOTO_TARBALL) \
Yousuf Philips4099b762017-12-16 16:55:46 +0400180 $(call fetch_Optional,MORE_FONTS,FONT_CULMUS_TARBALL) \
181 $(call fetch_Optional,MORE_FONTS,FONT_LIBRE_HEBREW_TARBALL) \
182 $(call fetch_Optional,MORE_FONTS,FONT_ALEF_TARBALL) \
Yousuf Philips4eaeb802017-12-21 18:57:02 +0400183 $(call fetch_Optional,MORE_FONTS,FONT_AMIRI_TARBALL) \
184 $(call fetch_Optional,MORE_FONTS,FONT_KACST_TARBALL) \
185 $(call fetch_Optional,MORE_FONTS,FONT_REEM_TARBALL) \
186 $(call fetch_Optional,MORE_FONTS,FONT_SCHEHERAZADE_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200187 $(call fetch_Optional,MSPUB,MSPUB_TARBALL) \
188 $(call fetch_Optional,MWAW,MWAW_TARBALL) \
Michael Stahlb2940202017-09-14 16:12:55 +0200189 $(call fetch_Optional,MYSQL_CONNECTOR_CPP,MYSQL_CONNECTOR_CPP_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200190 $(call fetch_Optional,MYTHES,MYTHES_TARBALL) \
191 $(call fetch_Optional,NEON,NEON_TARBALL) \
192 $(call fetch_Optional,NSS,NSS_TARBALL) \
193 $(call fetch_Optional_pack,NUMBERTEXT_EXTENSION_PACK) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200194 $(call fetch_Optional,ODFGEN,ODFGEN_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200195 $(call fetch_Optional,OPENLDAP,OPENLDAP_TARBALL) \
196 $(call fetch_Optional,OPENSSL,OPENSSL_TARBALL) \
197 $(call fetch_Optional,ORCUS,ORCUS_TARBALL) \
Jacobo Aragunde Péreze6fe5082015-02-02 19:49:37 +0000198 $(call fetch_Optional,OWNCLOUD_ANDROID_LIB,OWNCLOUD_ANDROID_LIB_TARBALL) \
David Tardone2c0e022014-06-27 11:07:06 +0200199 $(call fetch_Optional,PAGEMAKER,PAGEMAKER_TARBALL) \
Caolán McNamara55e203a2017-02-10 12:27:07 +0000200 $(call fetch_Optional,PDFIUM,PDFIUM_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200201 $(call fetch_Optional,POPPLER,POPPLER_TARBALL) \
202 $(call fetch_Optional,POSTGRESQL,POSTGRESQL_TARBALL) \
203 $(call fetch_Optional,PYTHON,PYTHON_TARBALL) \
Aleksas Pantechovskise59b5b12017-08-27 22:10:14 +0300204 $(call fetch_Optional,QXP,QXP_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200205 $(call fetch_Optional,REDLAND,RAPTOR_TARBALL) \
206 $(call fetch_Optional,REDLAND,RASQAL_TARBALL) \
207 $(call fetch_Optional,REDLAND,REDLAND_TARBALL) \
David Tardonb421ce72014-05-24 08:39:54 +0200208 $(call fetch_Optional,REVENGE,REVENGE_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200209 $(call fetch_Optional,RHINO,RHINO_TARBALL) \
210 $(call fetch_Optional,RHINO,SWING_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200211 $(call fetch_Optional,SERF,SERF_TARBALL) \
osnola1faae1f2016-08-10 12:43:56 +0200212 $(call fetch_Optional,STAROFFICE,STAROFFICE_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200213 $(call fetch_Optional,UCPP,UCPP_TARBALL) \
David Tardonc7ab3bd2014-05-11 14:50:24 +0200214 $(call fetch_Optional,VISIO,VISIO_TARBALL) \
David Tardona5a48f62014-05-11 14:42:44 +0200215 $(call fetch_Optional,WPD,WPD_TARBALL) \
216 $(call fetch_Optional,WPG,WPG_TARBALL) \
217 $(call fetch_Optional,WPS,WPS_TARBALL) \
218 $(call fetch_Optional,XSLTML,XSLTML_TARBALL) \
219 $(call fetch_Optional,ZLIB,ZLIB_TARBALL) \
Aleksas Pantechovskisaaed6fe2016-06-22 19:02:29 +0300220 $(call fetch_Optional,ZMF,ZMF_TARBALL) \
Caolán McNamara2f3060d2017-04-28 11:41:44 +0100221 ,$(call fetch_Download_item,https://dev-www.libreoffice.org/src,$(item)))
David Tardona5a48f62014-05-11 14:42:44 +0200222 $(foreach item, \
David Tardona5a48f62014-05-11 14:42:44 +0200223 $(call fetch_Optional,ODK,UNOWINREG_DLL) \
Vasily Melenchuka59b6be2016-06-23 14:20:58 +0300224 $(call fetch_Optional,ODFVALIDATOR,ODFVALIDATOR_JAR) \
Vasily Melenchuk3011a702016-07-21 19:26:12 +0300225 $(call fetch_Optional,OFFICEOTRON,OFFICEOTRON_JAR) \
Caolán McNamara2f3060d2017-04-28 11:41:44 +0100226 ,$(call fetch_Download_item,https://dev-www.libreoffice.org/extern,$(item)))
Matúš Kukan3051f8b2012-11-29 10:04:31 +0100227 @mkdir -p $(dir $@) && touch $@
jan Iversen1e2831e2017-06-24 09:29:04 +0200228 @mkdir -p $(dir $@)/Executable
Matúš Kukan16aa0732012-11-21 22:36:34 +0100229
230# vim: set noet sw=4 ts=4: