1# -*- 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 14&& 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 ]' 15endef 16 17else 18define fetch_Download__wget_command 19&& echo fetching $2 && bash -c '$(CURL) -O $1/$2 2>&1 | tee -a $(fetch_LOGFILE) && [ $$PIPESTATUS -eq 0 ]' 20endef 21 22endif 23 24ifneq (,$(SHA256SUM)) 25define fetch_Download__checksum_command 26&& SUM=`$(SHA256SUM) $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 38# fetch__Download_item url tarball-name sha256sum 39define fetch__Download_item 40$(if $(wildcard $(TARFILE_LOCATION)/$2),, \ 41cd $(TARFILE_LOCATION)/tmp \ 42$(call fetch_Download__wget_command,$1,$2) \ 43$(if $3,$(call fetch_Download__checksum_command,$2,$3)) \ 44&& mv $2 ../ \ 45) 46 47endef 48 49# fetch_Download__is_checksum checksum 50define fetch_Download__is_checksum 51$(filter 32,$(words $(shell echo $(1) | sed -e 's/./& /g'))) 52endef 53 54define fetch_Download__subst_var 55$(subst _TTF,_SHA256SUM,$(subst _DLL,_SHA256SUM,$(subst _TARBALL,_SHA256SUM,$(subst _PACK,_SHA256SUM,$(subst _JAR,_SHA256SUM,$(1)))))) 56endef 57 58# fetch_Download_item url variable-name 59define fetch_Download_item 60$(if $(strip $($(2))),,$(error fetch__Download_item: $(2) is empty)) 61$(if $(filter undefined,$(origin $(call fetch_Download__subst_var,$(2)))),\ 62 $(error "fetch_Download_item: no checksum found for $($(2)). Please define $(call fetch_Download__subst_var,$(2)) in download.lst."),\ 63 $(call fetch__Download_item,$(1),$($2),$($(call fetch_Download__subst_var,$(2)))) \ 64) 65 66endef 67 68# fetch_Download_item url tarball-name 69define fetch_Download_item_unchecked 70$(call fetch__Download_item,$1,$2) 71 72endef 73 74fetch_BUILD_TYPE := $(sort $(BUILD_TYPE)) 75ifneq ($(CROSS_COMPILING),) 76fetch_BUILD_TYPE := $(sort $(fetch_BUILD_TYPE) $(shell . $(SRCDIR)/bin/get_config_variables --build BUILD_TYPE && echo $$BUILD_TYPE)) 77endif 78 79# 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 84define fetch_Optional 85$(if $(filter ALL,$(DO_FETCH_TARBALLS))$(filter $1,$(fetch_BUILD_TYPE)),$2) 86endef 87 88# 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 97download: $(WORKDIR)/download 98 99$(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk $(SRCDIR)/download.lst $(SRCDIR)/Makefile.fetch 100 -@mkdir -p $(TARFILE_LOCATION)/tmp 101 @date >> $(fetch_LOGFILE) 102 $(foreach item, \ 103 $(call fetch_Optional,ABW,ABW_TARBALL) \ 104 $(call fetch_Optional,APACHE_COMMONS,APACHE_COMMONS_LOGGING_TARBALL) \ 105 $(call fetch_Optional,APR,APR_TARBALL) \ 106 $(call fetch_Optional,APR,APR_UTIL_TARBALL) \ 107 $(call fetch_Optional,BOOST,BOOST_TARBALL) \ 108 $(call fetch_Optional,BREAKPAD,BREAKPAD_TARBALL) \ 109 $(call fetch_Optional,BSH,BSH_TARBALL) \ 110 $(call fetch_Optional,BZIP2,BZIP2_TARBALL) \ 111 $(call fetch_Optional,CAIRO,CAIRO_TARBALL) \ 112 $(call fetch_Optional,CAIRO,PIXMAN_TARBALL) \ 113 $(call fetch_Optional,CDR,CDR_TARBALL) \ 114 $(call fetch_Optional,CLUCENE,CLUCENE_TARBALL) \ 115 $(call fetch_Optional,LIBCMIS,LIBCMIS_TARBALL) \ 116 $(call fetch_Optional,COINMP,COINMP_TARBALL) \ 117 $(call fetch_Optional,CPPUNIT,CPPUNIT_TARBALL) \ 118 $(call fetch_Optional,CT2N,CT2N_TARBALL) \ 119 $(call fetch_Optional,CURL,CURL_TARBALL) \ 120 $(call fetch_Optional,EBOOK,EBOOK_TARBALL) \ 121 $(call fetch_Optional,EPM,EPM_TARBALL) \ 122 $(call fetch_Optional,EPUBGEN,EPUBGEN_TARBALL) \ 123 $(call fetch_Optional,ETONYEK,ETONYEK_TARBALL) \ 124 $(call fetch_Optional,EXPAT,EXPAT_TARBALL) \ 125 $(call fetch_Optional,FIREBIRD,FIREBIRD_TARBALL) \ 126 $(call fetch_Optional,FONTCONFIG,FONTCONFIG_TARBALL) \ 127 $(call fetch_Optional,FREEHAND,FREEHAND_TARBALL) \ 128 $(call fetch_Optional,FREETYPE,FREETYPE_TARBALL) \ 129 $(call fetch_Optional,EPOXY,EPOXY_TARBALL) \ 130 $(call fetch_Optional,GLM,GLM_TARBALL) \ 131 $(call fetch_Optional,GPGMEPP,GPGME_TARBALL) \ 132 $(call fetch_Optional,GRAPHITE,GRAPHITE_TARBALL) \ 133 $(call fetch_Optional,HARFBUZZ,HARFBUZZ_TARBALL) \ 134 $(call fetch_Optional,HSQLDB,HSQLDB_TARBALL) \ 135 $(call fetch_Optional,HUNSPELL,HUNSPELL_TARBALL) \ 136 $(call fetch_Optional,HYPHEN,HYPHEN_TARBALL) \ 137 $(call fetch_Optional,ICU,ICU_TARBALL) \ 138 $(call fetch_Optional,ICU,ICU_DATA_TARBALL) \ 139 $(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) \ 150 $(call fetch_Optional,LIBJPEG_TURBO,LIBJPEG_TURBO_TARBALL) \ 151 $(call fetch_Optional,LANGUAGETOOL,LANGUAGETOOL_TARBALL) \ 152 $(call fetch_Optional,LCMS2,LCMS2_TARBALL) \ 153 $(call fetch_Optional,LIBATOMIC_OPS,LIBATOMIC_OPS_TARBALL) \ 154 $(call fetch_Optional,LIBASSUAN,LIBASSUAN_TARBALL) \ 155 $(call fetch_Optional,LIBEOT,LIBEOT_TARBALL) \ 156 $(call fetch_Optional,LIBEXTTEXTCAT,LIBEXTTEXTCAT_TARBALL) \ 157 $(call fetch_Optional,LIBGPGERROR,LIBGPGERROR_TARBALL) \ 158 $(call fetch_Optional,LIBLANGTAG,LANGTAGREG_TARBALL) \ 159 $(call fetch_Optional,LIBLANGTAG,LIBLANGTAG_TARBALL) \ 160 $(call fetch_Optional,LIBNUMBERTEXT,LIBNUMBERTEXT_TARBALL) \ 161 $(call fetch_Optional,LIBPNG,LIBPNG_TARBALL) \ 162 $(call fetch_Optional,LIBTOMMATH,LIBTOMMATH_TARBALL) \ 163 $(call fetch_Optional,LIBXML2,LIBXML_TARBALL) \ 164 XMLSEC_TARBALL \ 165 $(call fetch_Optional,LIBXSLT,LIBXSLT_TARBALL) \ 166 $(call fetch_Optional,LPSOLVE,LPSOLVE_TARBALL) \ 167 $(call fetch_Optional,LXML,LXML_TARBALL) \ 168 $(call fetch_Optional,MARIADB_CONNECTOR_C,MARIADB_CONNECTOR_C_TARBALL) \ 169 $(call fetch_Optional,MDDS,MDDS_TARBALL) \ 170 $(call fetch_Optional,MDNSRESPONDER,MDNSRESPONDER_TARBALL) \ 171 $(call fetch_Optional,MORE_FONTS,FONT_CALADEA_TARBALL) \ 172 $(call fetch_Optional,MORE_FONTS,FONT_CARLITO_TARBALL) \ 173 $(call fetch_Optional,MORE_FONTS,FONT_DEJAVU_TARBALL) \ 174 $(call fetch_Optional,MORE_FONTS,FONT_GENTIUM_TARBALL) \ 175 $(call fetch_Optional,MORE_FONTS,FONT_LIBERATION_NARROW_TARBALL) \ 176 $(call fetch_Optional,MORE_FONTS,FONT_LIBERATION_TARBALL) \ 177 $(call fetch_Optional,MORE_FONTS,FONT_LINLIBERTINEG_TARBALL) \ 178 $(call fetch_Optional,MORE_FONTS,FONT_SOURCECODE_TARBALL) \ 179 $(call fetch_Optional,MORE_FONTS,FONT_SOURCESANS_TARBALL) \ 180 $(call fetch_Optional,MORE_FONTS,FONT_EMOJIONE_COLOR_TARBALL) \ 181 $(call fetch_Optional,MORE_FONTS,FONT_NOTO_TARBALL) \ 182 $(call fetch_Optional,MORE_FONTS,FONT_CULMUS_TARBALL) \ 183 $(call fetch_Optional,MORE_FONTS,FONT_LIBRE_HEBREW_TARBALL) \ 184 $(call fetch_Optional,MORE_FONTS,FONT_ALEF_TARBALL) \ 185 $(call fetch_Optional,MORE_FONTS,FONT_AMIRI_TARBALL) \ 186 $(call fetch_Optional,MORE_FONTS,FONT_KACST_TARBALL) \ 187 $(call fetch_Optional,MORE_FONTS,FONT_REEM_TARBALL) \ 188 $(call fetch_Optional,MORE_FONTS,FONT_SCHEHERAZADE_TARBALL) \ 189 $(call fetch_Optional,MSPUB,MSPUB_TARBALL) \ 190 $(call fetch_Optional,MWAW,MWAW_TARBALL) \ 191 $(call fetch_Optional,MYSQL_CONNECTOR_CPP,MYSQL_CONNECTOR_CPP_TARBALL) \ 192 $(call fetch_Optional,MYTHES,MYTHES_TARBALL) \ 193 $(call fetch_Optional,NEON,NEON_TARBALL) \ 194 $(call fetch_Optional,NSS,NSS_TARBALL) \ 195 $(call fetch_Optional_pack,NUMBERTEXT_EXTENSION_PACK) \ 196 $(call fetch_Optional,ODFGEN,ODFGEN_TARBALL) \ 197 $(call fetch_Optional,OPENLDAP,OPENLDAP_TARBALL) \ 198 $(call fetch_Optional,OPENSSL,OPENSSL_TARBALL) \ 199 $(call fetch_Optional,ORCUS,ORCUS_TARBALL) \ 200 $(call fetch_Optional,OWNCLOUD_ANDROID_LIB,OWNCLOUD_ANDROID_LIB_TARBALL) \ 201 $(call fetch_Optional,PAGEMAKER,PAGEMAKER_TARBALL) \ 202 $(call fetch_Optional,PDFIUM,PDFIUM_TARBALL) \ 203 $(call fetch_Optional,POPPLER,POPPLER_TARBALL) \ 204 $(call fetch_Optional,POSTGRESQL,POSTGRESQL_TARBALL) \ 205 $(call fetch_Optional,PYTHON,PYTHON_TARBALL) \ 206 $(call fetch_Optional,QXP,QXP_TARBALL) \ 207 $(call fetch_Optional,REDLAND,RAPTOR_TARBALL) \ 208 $(call fetch_Optional,REDLAND,RASQAL_TARBALL) \ 209 $(call fetch_Optional,REDLAND,REDLAND_TARBALL) \ 210 $(call fetch_Optional,REVENGE,REVENGE_TARBALL) \ 211 $(call fetch_Optional,RHINO,RHINO_TARBALL) \ 212 $(call fetch_Optional,RHINO,SWING_TARBALL) \ 213 $(call fetch_Optional,SERF,SERF_TARBALL) \ 214 $(call fetch_Optional,STAROFFICE,STAROFFICE_TARBALL) \ 215 $(if $(filter WNT,$(OS)),TWAIN_DSM_TARBALL) \ 216 $(call fetch_Optional,UCPP,UCPP_TARBALL) \ 217 $(call fetch_Optional,VISIO,VISIO_TARBALL) \ 218 $(call fetch_Optional,WPD,WPD_TARBALL) \ 219 $(call fetch_Optional,WPG,WPG_TARBALL) \ 220 $(call fetch_Optional,WPS,WPS_TARBALL) \ 221 $(call fetch_Optional,XSLTML,XSLTML_TARBALL) \ 222 $(call fetch_Optional,ZLIB,ZLIB_TARBALL) \ 223 $(call fetch_Optional,ZMF,ZMF_TARBALL) \ 224 ,$(call fetch_Download_item,https://dev-www.libreoffice.org/src,$(item))) 225 $(foreach item, \ 226 $(call fetch_Optional,ODK,UNOWINREG_DLL) \ 227 $(call fetch_Optional,OPENSYMBOL,OPENSYMBOL_TTF) \ 228 $(call fetch_Optional,ODFVALIDATOR,ODFVALIDATOR_JAR) \ 229 $(call fetch_Optional,OFFICEOTRON,OFFICEOTRON_JAR) \ 230 ,$(call fetch_Download_item,https://dev-www.libreoffice.org/extern,$(item))) 231 @mkdir -p $(dir $@) && touch $@ 232 @mkdir -p $(dir $@)/Executable 233 234# vim: set noet sw=4 ts=4: 235
