From 3fc44bc6c34cf436a885d0e2ab4dc591d233d573 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Tue, 29 Oct 2019 19:18:49 +0000 Subject: lmfit and its dependencies added, Python tarballs as prerequisite Python's `lmfit' module and all its major dependencies (`asteval', `corner', `emcee' and `uncertainties') have been included in the template. While doing this I noticed that if the tarballs are the last prerequisite of each software building rule, then when building in parallel, the template will immediately start building packages as soon as the first one is downloaded. Not like the current way that it will attempt to download several, then start building. For now, this has been implemented in the Python build rules for all the modules and we'll later do the same for the other programs and libraries. This also motivated a simplification of the `pybuild' function: it now internally looks into the prerequisites and selects the tarball from the prerequisite that is in the tarballs directory. This isn't a problem for the build, but I just don't understand why Python can't recognize the version of `emcee', Python reads the version of `emcee' as `0.0.0'! But it doesn't cause any crash in the build, so for now its fine. --- reproduce/software/bibtex/corner.tex | 19 + reproduce/software/config/installation/TARGETS.mk | 2 +- .../software/config/installation/checksums.mk | 9 +- reproduce/software/config/installation/versions.mk | 9 +- reproduce/software/make/python.mk | 410 ++++++++++++--------- 5 files changed, 260 insertions(+), 189 deletions(-) create mode 100644 reproduce/software/bibtex/corner.tex (limited to 'reproduce/software') diff --git a/reproduce/software/bibtex/corner.tex b/reproduce/software/bibtex/corner.tex new file mode 100644 index 0000000..f80c662 --- /dev/null +++ b/reproduce/software/bibtex/corner.tex @@ -0,0 +1,19 @@ +%% Copyright (C) 2019 Mohammad Akhlaghi +%% +%% Copying and distribution of this file, with or without modification, +%% are permitted in any medium without royalty provided the copyright +%% notice and this notice are preserved. This file is offered as-is, +%% without any warranty. + +@ARTICLE{corner, + author = {{Foreman-Mackey}, Daniel}, + title = "{corner.py: Scatterplot matrices in Python}", + journal = {The Journal of Open Source Software}, + year = "2016", + month = "Jun", + volume = {1}, + pages = {24}, + doi = {10.21105/joss.00024}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2016JOSS....1...24F}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} diff --git a/reproduce/software/config/installation/TARGETS.mk b/reproduce/software/config/installation/TARGETS.mk index b9157f1..395e4bb 100644 --- a/reproduce/software/config/installation/TARGETS.mk +++ b/reproduce/software/config/installation/TARGETS.mk @@ -39,4 +39,4 @@ top-level-programs = gnuastro # Python libraries/modules. -top-level-python = astropy +top-level-python = astropy lmfit diff --git a/reproduce/software/config/installation/checksums.mk b/reproduce/software/config/installation/checksums.mk index 1fbe7dd..6a21477 100644 --- a/reproduce/software/config/installation/checksums.mk +++ b/reproduce/software/config/installation/checksums.mk @@ -135,16 +135,19 @@ yaml-checksum = 13d2197135946204323dbfccafa0ac7b3d05437e920545a56f46811fd7319c01 # modules/libraries below, please fix the hash strings of the respective # URL in `reproduce/software/make/python.mk'. asn1crypto-checksum = 44d442a6ddfa971e31e24712fe084368356deb5e1c4c3b3e813e0910931860215bc1c4f9eb2c4bd4fdef607c324086c096e9357068646efd28c97f2d4f85c62f +asteval-checksum = 4d64900b2f7dfdd098d6c8c102f9d9fd46f9ec265a54330e7d94479ba41f0ee0698855658e18b8b32b9c255159eb9a085af5f0306eb6508663d3fea7d2e00b4a astropy-checksum = b468e6a6cd45052d4cd0cac34969ffa53f89ed8bdbdcd4aae627d4ce55043be24ba739534129b3fec1511b4f113a991209b819d5b3ad1429104f46cb205d26ec astroquery-checksum = 0da57f687ac0aa7611cd97085771d79c99e9ac8c11f0828fcbc7390faf24e1e87d86812020e0ae8be1749f5f2ae9cb3733e5922d38a897a9e212247175c28e52 beautifulsoup4-checksum = 7aa77bc6008bbcbbbe91b0a850007ab237d2832b63a787fbd94b7cbf47d4276b185e0c61c134df73221406458edff2b75b6b8c2b53b543aa3bb1b0e2202dac5a certifi-checksum = 6a6bf1ff98caefcdbf78a8c83e11e155368bacdd806f0ae0c6afa8f513667df6598e594b3584de61acdca3d6049f4a776937f2aa8672b602bd6db7b737f6074e cffi-checksum = af4fe47cf5d6f1126222898365cfa21e9f11d0e71b87d869014dbb37af30dca9ddf50c989030d0f610f50e8099e8dfd08a688d8c3629abbcc4f0294f5f91b817 chardet-checksum = 61a03b23447a2bfe52ceed4dd1b9afdb5784da1933a623776883ee9f297e341f633e27f0ce0230bd5fdc5fdb5382105ab42736a74a417ddeb9f83af57455dba5 +corner-checksum = ebd625ab1e4591b4c21d25ec706c35d37f560b727e1e0d6a79948c4a112ee6f21d3ca30162901a27715074e1345f3bdee1a0345c63e5fec24113e495fb094127 cryptography-checksum = f14319e24d9dca52e74548cada5b78a6235f089ef875dbff4799e862f94da8b087f1b6e03e84dcef9fc7d7693c4a349c5f0cd54b8535806da777420ce8757d39 cycler-checksum = b7d2ba19861ffaf4dea0444bfe68b5a6264a022d7b3f02c9ff5e5859e3901de12a90f8dc7469e995e09c418515b3df55dbf05a0cfe5368d40790a2c878a74819 cython-checksum = bb8095b438a7d2567b8b831628fbb32c02299c866e41113da62fb5a5d4982dc0df947a9f723a82c52086806435d8f3518e78a803166149d476f81e042a12494e eigency-checksum = 1e7cdfc43071da5edba30a0d32cd655442b516f15c166b049a195d151dec8c20a2177ad69bed3bba4788a668fa25a4c551ef4990717ff98d5b2f407bffb214c8 +emcee-checksum = dd60aace8879525fd3fe42b747d82170b24b2ed21f538f9186ba96b9d04c084812e3303f5d2e04119dabd2f9d3286d510b4d4a5324c71dd24b1c7e5f0a9a0ac6 entrypoints-checksum = aa1274362d3a4b00266103319ca51aa266605b4999c89a9d0673eb61bfae9e646cb0ec6b86c95544493f6fe048385a2c7641d64adca8f45815546fb1e663c858 esutil-checksum = c1cf8e7912b16dc675fdc7195ecc2bbffcd156c1257b2df45afdf09cc487c49f2e18a66cd5520ab30c77e60abb8ca802e327075bdd0f23eb634cc4f5a7e974f3 flake8-checksum = a25076bb7f978ca23af0f2016b30bf5fe4680371b4c0939361a6f8c496f3c846cf98ecadee35fc2dedd588116c8cd982529972dd2411ab139621912b69132a1e @@ -157,6 +160,7 @@ idna-checksum = 8ca5cfe6350c51250bafdac7c6e4ddd54c4a5d6bf7acbcef896760a759868c8e jeepney-checksum = 43083994a7c6af84a5a68d3ff8f6dc4d9129ce9fa55517838fb62d9f62bb78bdf52067649d0b95d08d689b7d7475cb9b2a956662e265a776ad42dcf4ccc0ab63 keyring-checksum = 3863f2cd89131d7e927e55691b4eb4b7c2599af189525293d0948aef5215efbbbd74d45db3cd4885ba5b18a79f0fa0b0edc3783a020a6702f6a6fb7ed86b2cf2 kiwisolver-checksum = 80ed3d7429a2ed4944aa09766bebac2709a3a0e0a184ff414f04bf3c7ec3034ea7d0f70dff319922b870dedaf13d64fc87eff86a82e720ec93a2510885ad738d +lmfit-checksum = 8435328fd8baf92b424299c341aafb995dc45245e17b1774e9eaabdd994dd6ec3b2e70f7506d67b587631cebd2dc584fcd1a9902286925a61e2135b7e11ece21 lsstdesccoord-checksum = a66b8b702cd8122f0c8aee05abe0fc0c6299f8bdb99b151f54bd7ad7430d6bc9f843f7294a7f08f3ce9f8606ea0ced0796a63b79cc8a53ae73068b691e2e6871 matplotlib-checksum = d44729028b91523c7ed2659e7ce7e9c2022ff322c3804e1ca16c9f64038f21d63ebf74a4da4239605cfb9c65729bf519360ac7f2a25dc70daa6fdcfa9c610c31 mpi4py-checksum = 0a18332fd45e8e80b8dab0761fbaa30444a0d55776af7a2333be17ade827e92d04ac5bb8619ce26937142f344f75de0e5ef6dcb7502f33389716aa9482ddf5ab @@ -174,12 +178,13 @@ pyyaml-checksum = 8f27f92bdfa310a99dd6d83947332cc033fa18f0011998bb585ad5c4340a2d requests-checksum = 385e1d80993a21c09e7c4682500ca8c24155962ba41ecd8e73612722b2ff6618b736e827fc48ad1683b0d2bc7a420cfe680f5107860aca52656ef777f1d60104 scipy-checksum = 672915da782f5a439a3920ad1a200937b8415aeb4f1db2451cf0b5a90ba6e18c69e17e9ff8433f6a7760bbef2434d7b0f6447319faec9bb96fa6841794bfa538 secretstorage-checksum = 295e0f75c772edf153480730dc20051f06e60e040a18f169620cb4aaa37b8c1a254a496464d3794a38cf49fa884a7b561fe364816f0d12a5b2622c77259f03cf -setuptools-checksum = f14976a76bff74b7494d44fcfffa511de0d142b4d308fcbf87b34c31c51491102e152acc11a383c5f6b693d1b18eb119c5186ca23deb12b2bbf186794b062868 -setuptools_scm-checksum = 1995754654f8bf509ec7f2186857ba0005dbaea0b1c734f521becb9d022c127e7b36f21da8defd5ec9883de5d0d4afe006f9d152c4cefe6beadf8b878e949eb2 +setuptools-checksum = 1bed75e7173ea0399f078c96cf5c1818dada7a4b86a93e61ff72da6a25694e321b9047e024617aa775b71a25fe8cb0848323902e1fb9c8c8a1f39434f0de6434 +setuptools_scm-checksum = 196d4785a1802875d89b9e54ae788e791a9c5cb685109784059955b691242984e42b96d77075116790935f56be82259bc2588d95d65ecbb101261d76daddb83c sip_tpv-checksum = 5e03279cb3650dd506332dfcb31aa4a20f23f55b8a29fd18da5c6d422d1b7dc49e12362ceae2ff7417c874401b5e87a73ca1ac0f3c8747c8984e4269cad56c3f six-checksum = 937728372edf1e0ac13bbd706723d0de35e015c30d0ae41f789c5ed2e3669bb0db70cdc6e036ec2d437a6c4aa0d5d1e727b6d09ac34cca7e4e92e5d3b4775151 soupsieve-checksum = abdcbb6a13563e7afadd3056141587fdc3d7d644e346f789bca0a16242d860219e462491b0c624b287300af960fb8e3f85c79f5137580939a9fc8c3d6961478c sympy-checksum = 6ae09be7260b1624b4f92d39c68d5cdf54e6e33010d9215f46d62d989c04cdbee6f9f9c8b11ebeda53257d154954fb926b3ab7335b738e33ad248764875b6ddb +uncertainties-checksum = 420fa4f58ac8dff17875029bc3dcd6539c638e8c8ffa5bcc273b486d05f0d1cc71b1db140a5098c1cd6472f93b6869303f57f48675296e859814197d899327bd urllib3-checksum = 4c12d08076b0f260727d5aac780f5e9a24e0164755ff05b02a1f5a697876741ff13ba278fdd6e46ef678e8e1146bc39de1fc49ee10ee839229a70540a9424a99 virtualenv-checksum = 3306f59bbcb48ceec225c07083e0b6831379b3e632e4a23c376849559449de1a04db66e0e7ceabb40ddcd3ae984a2a18dfdc4f1c38777d4bc04537f85a0137ac webencodings-checksum = b727b01bac6ec79bca517960d27b4c0668b295f25559471b9641c2c33dab55db6dac9c990952177964c6418382c22831b14d57df5e632d51d7abf97b61f24326 diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk index 278baf0..f0971ec 100644 --- a/reproduce/software/config/installation/versions.mk +++ b/reproduce/software/config/installation/versions.mk @@ -130,16 +130,19 @@ yaml-version = 0.2.2 # modules/libraries below, please fix the hash strings of the respective # URL in `reproduce/software/make/python.mk'. asn1crypto-version = 0.24.0 +asteval-version = 0.9.16 astropy-version = 3.2.1 astroquery-version = 0.3.9 beautifulsoup4-version = 4.7.1 certifi-version = 2018.11.29 cffi-version = 1.12.2 chardet-version = 3.0.4 +corner-version = 2.0.1 cryptography-version = 2.6.1 cycler-version = 0.10.0 cython-version = 0.29.6 eigency-version = 1.77 +emcee-version = 3.0.1 entrypoints-version = 0.3 esutil-version = 0.6.4 flake8-version = 3.7.8 @@ -152,6 +155,7 @@ idna-version = 2.8 jeepney-version = 0.4 keyring-version = 18.0.0 kiwisolver-version = 1.0.1 +lmfit-version = 0.9.14 lsstdesccoord-version = 1.2.0 matplotlib-version = 3.1.1 mpi4py-version = 3.0.2 @@ -169,12 +173,13 @@ pyyaml-version = 5.1 requests-version = 2.21.0 scipy-version = 1.3.1 secretstorage-version = 3.1.1 -setuptools-version = 40.8.0 -setuptools_scm-version = 3.2.0 +setuptools-version = 41.6.0 +setuptools_scm-version = 3.3.3 sip_tpv-version = 1.1 six-version = 1.12.0 soupsieve-version = 1.8 sympy-version = 1.4 +uncertainties-version = 3.1.2 urllib3-version = 1.24.1 virtualenv-version = 16.4.0 webencodings-version = 0.5.1 diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk index 14e7b75..9b107f0 100644 --- a/reproduce/software/make/python.mk +++ b/reproduce/software/make/python.mk @@ -63,16 +63,19 @@ python-major-version = $(shell echo $(python-version) | awk 'BEGIN{FS="."} \ # another format, we'll do the modification before the download so the # downloaded file has our desired format. pytarballs = $(foreach t, asn1crypto-$(asn1crypto-version).tar.gz \ + asteval-$(asteval-version).tar.gz \ astroquery-$(astroquery-version).tar.gz \ astropy-$(astropy-version).tar.gz \ beautifulsoup4-$(beautifulsoup4-version).tar.gz \ certifi-$(certifi-version).tar.gz \ cffi-$(cffi-version).tar.gz \ chardet-$(chardet-version).tar.gz \ + corner-$(corner-version).tar.gz \ cryptography-$(cryptography-version).tar.gz \ cycler-$(cycler-version).tar.gz \ cython-$(cython-version).tar.gz \ eigency-$(eigency-version).tar.gz \ + emcee-$(emcee-version).tar.gz \ esutil-$(esutil-version).tar.gz \ entrypoints-$(entrypoints-version).tar.gz \ flake8-$(flake8-version).tar.gz \ @@ -85,6 +88,7 @@ pytarballs = $(foreach t, asn1crypto-$(asn1crypto-version).tar.gz \ kiwisolver-$(kiwisolver-version).tar.gz \ keyring-$(keyring-version).tar.gz \ libffi-$(libffi-version).tar.gz \ + lmfit-$(lmfit-version).tar.gz \ lsstdesccoord-$(lsstdesccoord-version).tar.gz \ matplotlib-$(matplotlib-version).tar.gz \ mpi4py-$(mpi4py-version).tar.gz \ @@ -109,6 +113,7 @@ pytarballs = $(foreach t, asn1crypto-$(asn1crypto-version).tar.gz \ six-$(six-version).tar.gz \ soupsieve-$(soupsieve-version).tar.gz \ sympy-$(sympy-version).tar.gz \ + uncertainties-$(uncertainties-version).tar.gz \ urllib3-$(urllib3-version).tar.gz \ webencodings-$(webencodings-version).tar.gz \ virtualenv-$(virtualenv-version).tar.gz \ @@ -178,15 +183,18 @@ $(pytarballs): $(tdir)/%: hash=a6/89/df343dbc2957a317127e7ff2983230dc5336273be34f2e1911519d85aeb5 h=$(pytopurl)/$$hash/SecretStorage-$(secretstorage-version).tar.gz elif [ $$n = asn ]; then h=fc/f1/8db7daa71f414ddabfa056c4ef792e1461ff655c2ae2928a2b675bfed6b4; c=$(asn1crypto-checksum) + elif [ $$n = asteval ]; then h=50/3f/29b7935c6dc09ee96dc347edc66c57e8ef68d595dd35b763a36a117acc8c; c=$(asteval-checksum) elif [ $$n = astroquery ]; then h=61/50/a7a08f9e54d7d9d97e69433cd88231e1ad2901811c9d1ae9ac7ccaef9396; c=$(astroquery-checksum) elif [ $$n = astropy ]; then h=b9/10/523355eb8cb9839552c8f0fbc9425a1c87c8ff2e55f4df85469a5a4164d3; c=$(astropy-checksum) elif [ $$n = beautifulsoup ]; then h=80/f2/f6aca7f1b209bb9a7ef069d68813b091c8c3620642b568dac4eb0e507748; c=$(beautifulsoup4-checksum) elif [ $$n = certifi ]; then h=55/54/3ce77783acba5979ce16674fc98b1920d00b01d337cfaaf5db22543505ed; c=$(certifi-checksum) elif [ $$n = cffi ]; then h=64/7c/27367b38e6cc3e1f49f193deb761fe75cda9f95da37b67b422e62281fcac; c=$(cffi-checksum) elif [ $$n = chardet ]; then h=fc/bb/a5768c230f9ddb03acc9ef3f0d4a3cf93462473795d18e9535498c8f929d; c=$(chardet-checksum) + elif [ $$n = corner ]; then h=65/af/a7ba022f2d5787f51db91b5550cbe8e8c40a6eebd8f15119e743a09a9c19; c=$(corner-checksum) elif [ $$n = cryptography ]; then h=07/ca/bc827c5e55918ad223d59d299fff92f3563476c3b00d0a9157d9c0217449; c=$(cryptography-checksum) elif [ $$n = cycler ]; then h=c2/4b/137dea450d6e1e3d474e1d873cd1d4f7d3beed7e0dc973b06e8e10d32488; c=$(cycler-checksum) elif [ $$n = eigency ]; then h=fb/6e/bc4359fbfb0bb0b588ec328251b0d0836bdd7c0a4c568959ea06df023e18; c=$(eigency-checksum) + elif [ $$n = emcee ]; then h=f0/c0/cd433f2aedeef9b1e5ed7d236c82564f7518fe7fe2238fa141ea9ce08e73; c=$(emcee-checksum) elif [ $$n = entrypoints ]; then h=b4/ef/063484f1f9ba3081e920ec9972c96664e2edb9fdc3d8669b0e3b8fc0ad7c; c=$(entrypoints-checksum) elif [ $$n = esutil ]; then h=5b/91/77e38282fd3d47b55e351544ab179eb209b309a8d2d40f8cdb6241beda00; c=$(esutil-checksum) elif [ $$n = flake ]; then h=8d/a7/99222c9200af533c1ecb1120d99adbd1c033b57296ac5cb39d121db007a8; c=$(flake8-checksum) @@ -197,6 +205,7 @@ $(pytarballs): $(tdir)/%: elif [ $$n = jeepney ]; then h=16/1d/74adf3b164a8d19a60d0fcf706a751ffa2a1eaa8e5bbb1b6705c92a05263; c=$(jeepney-checksum) elif [ $$n = keyring ]; then h=15/88/c6ce9509438bc02d54cf214923cfba814412f90c31c95028af852b19f9b2; c=$(keyring-checksum) elif [ $$n = kiwisolver ]; then h=31/60/494fcce70d60a598c32ee00e71542e52e27c978e5f8219fae0d4ac6e2864; c=$(kiwisolver-checksum) + elif [ $$n = lmfit ]; then h=59/6e/117794cf85b7345361877e49245870490ae438f1981dea3c6af1316b30e7; c=$(lmfit-checksum) elif [ $$n = matplotlib ]; then h=12/d1/7b12cd79c791348cb0c78ce6e7d16bd72992f13c9f1e8e43d2725a6d8adf; c=$(matplotlib-checksum) elif [ $$n = mpi ]; then h=04/f5/a615603ce4ab7f40b65dba63759455e3da610d9a155d4d4cece1d8fd6706; c=$(mpi4py-checksum) elif [ $$n = mpmath ]; then h=ca/63/3384ebb3b51af9610086b23ea976e6d27d6d97bf140a76a365bd77a3eb32; c=$(mpmath-checksum) @@ -212,12 +221,13 @@ $(pytarballs): $(tdir)/%: elif [ $$n = requests ]; then h=52/2c/514e4ac25da2b08ca5a464c50463682126385c4272c18193876e91f4bc38; c=$(requests-checksum) elif [ $$n = scipy ]; then h=ee/5b/5afcd1c46f97b3c2ac3489dbc95d6ca28eacf8e3634e51f495da68d97f0f; c=$(scipy-checksum) elif [ $$n = secretstorage ]; then h=a6/89/df343dbc2957a317127e7ff2983230dc5336273be34f2e1911519d85aeb5; c=$(secretstorage-checksum) - elif [ $$n = setuptools ]; then h=c2/f7/c7b501b783e5a74cf1768bc174ee4fb0a8a6ee5af6afa92274ff964703e0; c=$(setuptools-checksum) - elif [ $$n = setuptools_scm ]; then h=54/85/514ba3ca2a022bddd68819f187ae826986051d130ec5b972076e4f58a9f3; c=$(setuptools_scm-checksum) + elif [ $$n = setuptools ]; then h=11/0a/7f13ef5cd932a107cd4c0f3ebc9d831d9b78e1a0e8c98a098ca17b1d7d97; c=$(setuptools-checksum) + elif [ $$n = setuptools_scm ]; then h=83/44/53cad68ce686585d12222e6769682c4bdb9686808d2739671f9175e2938b; c=$(setuptools_scm-checksum) elif [ $$n = six ]; then h=dd/bf/4138e7bfb757de47d1f4b6994648ec67a51efe58fa907c1e11e350cddfca; c=$(six-checksum) elif [ $$n = sip_tpv ]; then h=27/93/a973aab2a3bf0c12cb385611819710921e13b090304c6bd015026cf9c502; c=$(sip_tpv-checksum) elif [ $$n = soupsieve ]; then h=0c/52/e9088bb9b96e2d39fc3b33fcda5b4fde9d71473536ac660a1ca9a0958a2f; c=$(soupsieve-checksum) elif [ $$n = sympy ]; then h=54/2e/6adb11fe599d4cfb7e8833753350ac51aa2c0603c226b36f9051cc9d2425; c=$(sympy-checksum) + elif [ $$n = uncertainties ]; then h=2a/c2/babbe5b16141859dd799ed31c03987100a7b6d0ca7c0ed4429c96ce60fdf; c=$(uncertainties-checksum) elif [ $$n = urllib ]; then h=b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1; c=$(urllib3-checksum) elif [ $$n = virtualenv ]; then h=51/aa/c395a6e6eaaedfa5a04723b6446a1df783b16cca6fec66e671cede514688; c=$(virtualenv-checksum) elif [ $$n = webencodings ]; then h=0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47; c=$(webencodings-checksum) @@ -285,15 +295,16 @@ $(ibidir)/libffi: $(tdir)/libffi-$(libffi-version).tar.gz fi \ && echo "Libffi $(libffi-version)" > $@ -$(ibidir)/python: $(tdir)/python-$(python-version).tar.gz \ - $(ibidir)/libffi +$(ibidir)/python: $(ibidir)/libffi \ + $(tdir)/python-$(python-version).tar.gz # On Mac systems, the build complains about `clang' specific # features, so we can't use our own GCC build here. if [ x$(on_mac_os) = xyes ]; then \ export CC=clang; \ export CXX=clang++; \ fi; \ - $(call gbuild, $<, Python-$(python-version),, \ + $(call gbuild, $(filter $(tdir)/%,$^), \ + Python-$(python-version),, \ --without-ensurepip \ --with-system-ffi \ --enable-shared) \ @@ -315,27 +326,28 @@ $(ibidir)/python: $(tdir)/python-$(python-version).tar.gz \ # access to `setup.py' is needed, pip can be used). # Arguments of this function are the numbers # 1) Unpack command -# 2) Package name -# 3) Unpacked directory name after unpacking the tarball -# 4) site.cfg file (optional) -# 5) Official software name.(for paper). -# 6) Manual step after installation. -pybuild = cd $(ddir); rm -rf $(3); \ - if ! $(1) $(2); then echo; echo "Tar error"; exit 1; fi; \ - cd $(3); \ - if [ "x$(strip $(4))" != x ]; then \ +# 2) Unpacked directory name after unpacking the tarball +# 3) site.cfg file (optional). +# 4) Official software name (for paper). +# 5) Manual step after installation. +pybuild = cd $(ddir); rm -rf $(2); \ + if ! $(1) $(filter $(tdir)/%,$^); then \ + echo; echo "Tar error"; exit 1; \ + fi; \ + cd $(2); \ + if [ "x$(strip $(3))" != x ]; then \ sed -e 's|@LIBDIR[@]|'"$(ildir)"'|' \ -e 's|@INCDIR[@]|'"$(idir)/include"'|' \ - $(4) > site.cfg; \ + $(3) > site.cfg; \ fi; \ - if [ x"$(6)" = x ]; then after="echo no after"; \ - else after="$(6)"; fi \ + if [ x"$(5)" = x ]; then after="echo no after"; \ + else after="$(5)"; fi \ && python setup.py build \ && python setup.py install \ && $$after \ && cd .. \ - && rm -rf $(3) \ - && echo "$(5)" > $@ + && rm -rf $(2) \ + && echo "$(4)" > $@ @@ -345,114 +357,131 @@ pybuild = cd $(ddir); rm -rf $(3); \ # --------------- # # All the necessary Python modules go here. -$(ipydir)/asn1crypto: $(tdir)/asn1crypto-$(asn1crypto-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, asn1crypto-$(asn1crypto-version), , \ +$(ipydir)/asn1crypto: $(ipydir)/setuptools \ + $(tdir)/asn1crypto-$(asn1crypto-version).tar.gz \ + $(call pybuild, tar xf, asn1crypto-$(asn1crypto-version), , \ Asn1crypto $(asn1crypto-version)) -$(ipydir)/astroquery: $(tdir)/astroquery-$(astroquery-version).tar.gz \ - $(ipydir)/beautifulsoup4 \ - $(ipydir)/html5lib \ - $(ipydir)/requests \ +$(ipydir)/asteval: $(ipydir)/numpy \ + $(tdir)/asteval-$(asteval-version).tar.gz + $(call pybuild, tar xf, asteval-$(asteval-version), , \ + ASTEVAL $(asteval-version)) + +$(ipydir)/astroquery: $(ipydir)/numpy \ $(ipydir)/astropy \ $(ipydir)/keyring \ - $(ipydir)/numpy - $(call pybuild, tar xf, $<, astroquery-$(astroquery-version), ,\ + $(ipydir)/html5lib \ + $(ipydir)/requests \ + $(ipydir)/beautifulsoup4 \ + $(tdir)/astroquery-$(astroquery-version).tar.gz + $(call pybuild, tar xf, astroquery-$(astroquery-version), ,\ Astroquery $(astroquery-version)) -$(ipydir)/astropy: $(tdir)/astropy-$(astropy-version).tar.gz \ - $(ipydir)/h5py \ +$(ipydir)/astropy: $(ipydir)/h5py \ + $(ipydir)/scipy \ $(ipydir)/numpy \ - $(ipydir)/scipy - $(call pybuild, tar xf, $<, astropy-$(astropy-version)) \ + $(tdir)/astropy-$(astropy-version).tar.gz + $(call pybuild, tar xf, astropy-$(astropy-version)) \ && cp $(dtexdir)/astropy.tex $(ictdir)/ \ && echo "Astropy $(astropy-version) \citep{astropy2013,astropy2018}" > $@ -$(ipydir)/beautifulsoup4: $(tdir)/beautifulsoup4-$(beautifulsoup4-version).tar.gz \ - $(ipydir)/soupsieve - $(call pybuild, tar xf, $<, beautifulsoup4-$(beautifulsoup4-version), ,\ +$(ipydir)/beautifulsoup4: $(ipydir)/soupsieve \ + $(tdir)/beautifulsoup4-$(beautifulsoup4-version).tar.gz + $(call pybuild, tar xf, beautifulsoup4-$(beautifulsoup4-version), ,\ BeautifulSoup $(beautifulsoup4-version)) -$(ipydir)/certifi: $(tdir)/certifi-$(certifi-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, certifi-$(certifi-version), ,\ +$(ipydir)/certifi: $(ipydir)/setuptools \ + $(tdir)/certifi-$(certifi-version).tar.gz + $(call pybuild, tar xf, certifi-$(certifi-version), ,\ Certifi $(certifi-version)) -$(ipydir)/cffi: $(tdir)/cffi-$(cffi-version).tar.gz \ +$(ipydir)/cffi: $(ibidir)/libffi \ $(ipydir)/pycparser \ - $(ibidir)/libffi - $(call pybuild, tar xf, $<, cffi-$(cffi-version), ,\ + $(tdir)/cffi-$(cffi-version).tar.gz + $(call pybuild, tar xf, cffi-$(cffi-version), ,\ cffi $(cffi-version)) -$(ipydir)/chardet: $(tdir)/chardet-$(chardet-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, chardet-$(chardet-version), ,\ +$(ipydir)/chardet: $(ipydir)/setuptools \ + $(tdir)/chardet-$(chardet-version).tar.gz + $(call pybuild, tar xf, chardet-$(chardet-version), ,\ Chardet $(chardet-version)) -$(ipydir)/cryptography: $(tdir)/cryptography-$(cryptography-version).tar.gz \ +$(ipydir)/corner: $(ipydir)/matplotlib \ + $(tdir)/corner-$(corner-version).tar.gz + $(call pybuild, tar xf, corner-$(corner-version), ,\ + Corner $(corner-version)) \ + && cp $(dtexdir)/corner.tex $(ictdir)/ \ + && echo "Corner $(corner-version) \citep{corner}" > $@ + +$(ipydir)/cryptography: $(ipydir)/cffi \ $(ipydir)/asn1crypto \ - $(ipydir)/cffi - $(call pybuild, tar xf, $<, cryptography-$(cryptography-version), ,\ + $(tdir)/cryptography-$(cryptography-version).tar.gz + $(call pybuild, tar xf, cryptography-$(cryptography-version), ,\ Cryptography $(cryptography-version)) -$(ipydir)/cycler: $(tdir)/cycler-$(cycler-version).tar.gz \ - $(ipydir)/six - $(call pybuild, tar xf, $<, cycler-$(cycler-version), ,\ +$(ipydir)/cycler: $(ipydir)/six \ + $(tdir)/cycler-$(cycler-version).tar.gz + $(call pybuild, tar xf, cycler-$(cycler-version), ,\ Cycler $(cycler-version)) -$(ipydir)/cython: $(tdir)/cython-$(cython-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, Cython-$(cython-version)) \ +$(ipydir)/cython: $(ipydir)/setuptools \ + $(tdir)/cython-$(cython-version).tar.gz + $(call pybuild, tar xf, Cython-$(cython-version)) \ && cp $(dtexdir)/cython.tex $(ictdir)/ \ && echo "Cython $(cython-version) \citep{cython2011}" > $@ -$(ipydir)/esutil: $(tdir)/esutil-$(esutil-version).tar.gz \ - $(ipydir)/numpy - $(call pybuild, tar xf, $<, esutil-$(esutil-version), ,\ +$(ipydir)/esutil: $(ipydir)/numpy \ + $(tdir)/esutil-$(esutil-version).tar.gz + $(call pybuild, tar xf, esutil-$(esutil-version), ,\ esutil $(esutil-version)) -$(ipydir)/eigency: $(tdir)/eigency-$(eigency-version).tar.gz \ - $(ibidir)/eigen - $(call pybuild, tar xf, $<, eigency-$(eigency-version), ,\ +$(ipydir)/eigency: $(ibidir)/eigen \ + $(tdir)/eigency-$(eigency-version).tar.gz + $(call pybuild, tar xf, eigency-$(eigency-version), ,\ eigency $(eigency-version)) -$(ipydir)/entrypoints: $(tdir)/entrypoints-$(entrypoints-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, entrypoints-$(entrypoints-version), ,\ +$(ipydir)/emcee: $(ipydir)/numpy \ + $(ipydir)/setuptools_scm \ + $(tdir)/emcee-$(emcee-version).tar.gz + $(call pybuild, tar xf, emcee-$(emcee-version), ,\ + emcee $(emcee-version)) + +$(ipydir)/entrypoints: $(ipydir)/setuptools \ + $(tdir)/entrypoints-$(entrypoints-version).tar.gz + $(call pybuild, tar xf, entrypoints-$(entrypoints-version), ,\ EntryPoints $(entrypoints-version)) -$(ipydir)/flake8: $(tdir)/flake8-$(flake8-version).tar.gz \ +$(ipydir)/flake8: $(ipydir)/pyflakes \ $(ipydir)/pycodestyle \ - $(ipydir)/pyflakes - $(call pybuild, tar xf, $<, flake8-$(flake8-version), ,\ + $(tdir)/flake8-$(flake8-version).tar.gz + $(call pybuild, tar xf, flake8-$(flake8-version), ,\ Flake8 $(flake8-version)) -$(ipydir)/future: $(tdir)/future-$(future-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, future-$(future-version), ,\ +$(ipydir)/future: $(ipydir)/setuptools \ + $(tdir)/future-$(future-version).tar.gz + $(call pybuild, tar xf, future-$(future-version), ,\ Future $(future-version)) -$(ipydir)/galsim: $(tdir)/galsim-$(galsim-version).tar.gz \ - $(ipydir)/lsstdesccoord \ - $(ipydir)/pybind11 \ +$(ipydir)/galsim: $(ipydir)/future \ $(ipydir)/astropy \ $(ipydir)/eigency \ - $(ipydir)/future - $(call pybuild, tar xf, $<, GalSim-$(galsim-version), ,) \ + $(ipydir)/pybind11 \ + $(ipydir)/lsstdesccoord \ + $(tdir)/galsim-$(galsim-version).tar.gz + $(call pybuild, tar xf, GalSim-$(galsim-version), ,) \ && cp $(dtexdir)/galsim.tex $(ictdir)/ \ && echo "Galsim $(galsim-version) \citep{galsim}" > $@ -$(ipydir)/h5py: $(tdir)/h5py-$(h5py-version).tar.gz \ - $(ipydir)/pypkgconfig \ - $(ipydir)/setuptools \ +$(ipydir)/h5py: $(ipydir)/six \ + $(ibidir)/hdf5 \ + $(ipydir)/numpy \ $(ipydir)/cython \ $(ipydir)/mpi4py \ - $(ipydir)/numpy \ - $(ibidir)/hdf5 \ - $(ipydir)/six + $(ipydir)/pypkgconfig \ + $(tdir)/h5py-$(h5py-version).tar.gz export HDF5_MPI=ON; \ export HDF5_DIR=$(ildir); \ - $(call pybuild, tar xf, $<, h5py-$(h5py-version), ,\ + $(call pybuild, tar xf, h5py-$(h5py-version), ,\ h5py $(h5py-version)) # `healpy' is actually installed as part of the HEALPix package. It will be @@ -465,201 +494,214 @@ $(ipydir)/h5py: $(tdir)/h5py-$(h5py-version).tar.gz \ $(ipydir)/healpy: $(ibidir)/healpix touch $@ -$(ipydir)/html5lib: $(tdir)/html5lib-$(html5lib-version).tar.gz \ +$(ipydir)/html5lib: $(ipydir)/six \ $(ipydir)/webencodings \ - $(ipydir)/six - $(call pybuild, tar xf, $<, html5lib-$(html5lib-version), ,\ + $(tdir)/html5lib-$(html5lib-version).tar.gz + $(call pybuild, tar xf, html5lib-$(html5lib-version), ,\ HTML5lib $(html5lib-version)) -$(ipydir)/idna: $(tdir)/idna-$(idna-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, idna-$(idna-version), ,\ +$(ipydir)/idna: $(ipydir)/setuptools \ + $(tdir)/idna-$(idna-version).tar.gz + $(call pybuild, tar xf, idna-$(idna-version), ,\ idna $(idna-version)) -$(ipydir)/jeepney: $(tdir)/jeepney-$(jeepney-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, jeepney-$(jeepney-version), ,\ +$(ipydir)/jeepney: $(ipydir)/setuptools \ + $(tdir)/jeepney-$(jeepney-version).tar.gz \ + $(call pybuild, tar xf, jeepney-$(jeepney-version), ,\ Jeepney $(jeepney-version)) -$(ipydir)/keyring: $(tdir)/keyring-$(keyring-version).tar.gz \ - $(ipydir)/setuptools_scm \ +$(ipydir)/keyring: $(ipydir)/entrypoints \ $(ipydir)/secretstorage \ - $(ipydir)/entrypoints - $(call pybuild, tar xf, $<, keyring-$(keyring-version), ,\ + $(ipydir)/setuptools_scm \ + $(tdir)/keyring-$(keyring-version).tar.gz + $(call pybuild, tar xf, keyring-$(keyring-version), ,\ Keyring $(keyring-version)) -$(ipydir)/kiwisolver: $(tdir)/kiwisolver-$(kiwisolver-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, kiwisolver-$(kiwisolver-version), ,\ +$(ipydir)/kiwisolver: $(ipydir)/setuptools \ + $(tdir)/kiwisolver-$(kiwisolver-version).tar.gz + $(call pybuild, tar xf, kiwisolver-$(kiwisolver-version), ,\ Kiwisolver $(kiwisolver-version)) -$(ipydir)/lsstdesccoord: $(tdir)/lsstdesccoord-$(lsstdesccoord-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, LSSTDESC.Coord-$(lsstdesccoord-version), ,\ +$(ipydir)/lmfit: $(ipydir)/six \ + $(ipydir)/scipy \ + $(ipydir)/emcee \ + $(ipydir)/corner \ + $(ipydir)/asteval \ + $(ipydir)/matplotlib \ + $(ipydir)/uncertainties \ + $(tdir)/lmfit-$(lmfit-version).tar.gz + $(call pybuild, tar xf, lmfit-$(lmfit-version), ,\ + LMFIT $(lmfit-version)) + +$(ipydir)/lsstdesccoord: $(ipydir)/setuptools \ + $(tdir)/lsstdesccoord-$(lsstdesccoord-version).tar.gz + $(call pybuild, tar xf, LSSTDESC.Coord-$(lsstdesccoord-version), ,\ LSSTDESC.Coord $(lsstdesccoord-version)) -$(ipydir)/matplotlib: $(tdir)/matplotlib-$(matplotlib-version).tar.gz \ - $(ipydir)/python-dateutil \ +$(ipydir)/matplotlib: $(ipydir)/numpy \ + $(ipydir)/cycler \ + $(itidir)/texlive \ + $(ibidir)/freetype \ + $(ipydir)/pyparsing \ + $(ipydir)/kiwisolver \ $(ibidir)/ghostscript \ $(ibidir)/imagemagick \ - $(ipydir)/kiwisolver \ - $(ipydir)/pyparsing \ - $(ibidir)/freetype \ - $(itidir)/texlive \ - $(ipydir)/cycler \ - $(ipydir)/numpy - $(call pybuild, tar xf, $<, matplotlib-$(matplotlib-version)) \ + $(ipydir)/python-dateutil \ + $(tdir)/matplotlib-$(matplotlib-version).tar.gz + $(call pybuild, tar xf, matplotlib-$(matplotlib-version)) \ && cp $(dtexdir)/matplotlib.tex $(ictdir)/ \ && echo "Matplotlib $(matplotlib-version) \citep{matplotlib2007}" > $@ -$(ipydir)/mpi4py: $(tdir)/mpi4py-$(mpi4py-version).tar.gz \ +$(ipydir)/mpi4py: $(ibidir)/openmpi \ $(ipydir)/setuptools \ - $(ibidir)/openmpi - $(call pybuild, tar xf, $<, mpi4py-$(mpi4py-version)) \ + $(tdir)/mpi4py-$(mpi4py-version).tar.gz + $(call pybuild, tar xf, mpi4py-$(mpi4py-version)) \ && cp $(dtexdir)/mpi4py.tex $(ictdir)/ \ && echo "mpi4py $(mpi4py-version) \citep{mpi4py2011}" > $@ -$(ipydir)/mpmath: $(tdir)/mpmath-$(mpmath-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, mpmath-$(mpmath-version), ,\ +$(ipydir)/mpmath: $(ipydir)/setuptools \ + $(tdir)/mpmath-$(mpmath-version).tar.gz + $(call pybuild, tar xf, mpmath-$(mpmath-version), ,\ mpmath $(mpmath-version)) -$(ipydir)/numpy: $(tdir)/numpy-$(numpy-version).zip \ - $(ipydir)/setuptools \ +$(ipydir)/numpy: $(ibidir)/unzip \ $(ibidir)/openblas \ - $(ibidir)/unzip + $(ipydir)/setuptools \ + $(tdir)/numpy-$(numpy-version).zip if [ x$(on_mac_os) = xyes ]; then \ export LDFLAGS="$(LDFLAGS) -undefined dynamic_lookup -bundle"; \ else \ export LDFLAGS="$(LDFLAGS) -shared"; \ fi; \ conf="$$(pwd)/reproduce/software/config/installation/numpy-scipy.cfg"; \ - $(call pybuild, unzip, $<, numpy-$(numpy-version),$$conf, \ + $(call pybuild, unzip, numpy-$(numpy-version),$$conf, \ Numpy $(numpy-version)) \ && cp $(dtexdir)/numpy.tex $(ictdir)/ \ && echo "Numpy $(numpy-version) \citep{numpy2011}" > $@ -$(ibidir)/pip3: $(tdir)/pip-$(pip-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, pip-$(pip-version), ,\ +$(ibidir)/pip3: $(ipydir)/setuptools \ + $(tdir)/pip-$(pip-version).tar.gz + $(call pybuild, tar xf, pip-$(pip-version), ,\ PiP $(pip-version)) -$(ipydir)/pycodestyle: $(tdir)/pycodestyle-$(pycodestyle-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, pycodestyle-$(pycodestyle-version), ,\ +$(ipydir)/pycodestyle: $(ipydir)/setuptools \ + $(tdir)/pycodestyle-$(pycodestyle-version).tar.gz + $(call pybuild, tar xf, pycodestyle-$(pycodestyle-version), ,\ pycodestyle $(pycodestyle-version)) -$(ipydir)/pybind11: $(tdir)/pybind11-$(pybind11-version).tar.gz \ - $(ipydir)/setuptools \ +$(ipydir)/pybind11: $(ibidir)/eigen \ $(ibidir)/boost \ - $(ibidir)/eigen - $(call pybuild, tar xf, $<, pybind11-$(pybind11-version), ,\ + $(ipydir)/setuptools \ + $(tdir)/pybind11-$(pybind11-version).tar.gz + $(call pybuild, tar xf, pybind11-$(pybind11-version), ,\ pybind11 $(pybind11-version), cp -r include/pybind11 $(iidir)/python$(python-major-version)m/) -$(ipydir)/pycparser: $(tdir)/pycparser-$(pycparser-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, pycparser-$(pycparser-version), ,\ +$(ipydir)/pycparser: $(ipydir)/setuptools \ + $(tdir)/pycparser-$(pycparser-version).tar.gz + $(call pybuild, tar xf, pycparser-$(pycparser-version), ,\ pycparser $(pycparser-version)) -$(ipydir)/pyflakes: $(tdir)/pyflakes-$(pyflakes-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, pyflakes-$(pyflakes-version), ,\ +$(ipydir)/pyflakes: $(ipydir)/setuptools \ + $(tdir)/pyflakes-$(pyflakes-version).tar.gz + $(call pybuild, tar xf, pyflakes-$(pyflakes-version), ,\ pyflakes $(pyflakes-version)) -$(ipydir)/pyparsing: $(tdir)/pyparsing-$(pyparsing-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, pyparsing-$(pyparsing-version), ,\ +$(ipydir)/pyparsing: $(ipydir)/setuptools \ + $(tdir)/pyparsing-$(pyparsing-version).tar.gz + $(call pybuild, tar xf, pyparsing-$(pyparsing-version), ,\ PyParsing $(pyparsing-version)) -$(ipydir)/pypkgconfig: $(tdir)/pkgconfig-$(pypkgconfig-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, pkgconfig-$(pypkgconfig-version), , +$(ipydir)/pypkgconfig: $(ipydir)/setuptools \ + $(tdir)/pkgconfig-$(pypkgconfig-version).tar.gz + $(call pybuild, tar xf, pkgconfig-$(pypkgconfig-version), , pkgconfig $(pypkgconfig-version)) -$(ipydir)/python-dateutil: $(tdir)/python-dateutil-$(python-dateutil-version).tar.gz \ +$(ipydir)/python-dateutil: $(ipydir)/six \ $(ipydir)/setuptools_scm \ - $(ipydir)/six - $(call pybuild, tar xf, $<, python-dateutil-$(python-dateutil-version), ,\ + $(tdir)/python-dateutil-$(python-dateutil-version).tar.gz + $(call pybuild, tar xf, python-dateutil-$(python-dateutil-version), ,\ python-dateutil $(python-dateutil-version)) -$(ipydir)/pyyaml: $(tdir)/pyyaml-$(pyyaml-version).tar.gz \ - $(ibidir)/yaml \ +$(ipydir)/pyyaml: $(ibidir)/yaml \ $(ipydir)/cython \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, PyYAML-$(pyyaml-version), ,\ + $(tdir)/pyyaml-$(pyyaml-version).tar.gz + $(call pybuild, tar xf, PyYAML-$(pyyaml-version), ,\ PyYAML $(pyyaml-version)) -$(ipydir)/requests: $(tdir)/requests-$(requests-version).tar.gz \ +$(ipydir)/requests: $(ipydir)/idna \ + $(ipydir)/numpy \ $(ipydir)/certifi \ $(ipydir)/chardet \ $(ipydir)/urllib3 \ - $(ipydir)/numpy \ - $(ipydir)/idna - $(call pybuild, tar xf, $<, requests-$(requests-version), ,\ + $(tdir)/requests-$(requests-version).tar.gz + $(call pybuild, tar xf, requests-$(requests-version), ,\ Requests $(requests-version)) -$(ipydir)/scipy: $(tdir)/scipy-$(scipy-version).tar.gz \ - $(ipydir)/numpy +$(ipydir)/scipy: $(ipydir)/numpy \ + $(tdir)/scipy-$(scipy-version).tar.gz if [ x$(on_mac_os) = xyes ]; then \ export LDFLAGS="$(LDFLAGS) -undefined dynamic_lookup -bundle"; \ else \ export LDFLAGS="$(LDFLAGS) -shared"; \ fi; \ conf="$$(pwd)/reproduce/software/config/installation/numpy-scipy.cfg"; \ - $(call pybuild, tar xf, $<, scipy-$(scipy-version),$$conf) \ + $(call pybuild, tar xf, scipy-$(scipy-version),$$conf) \ && cp $(dtexdir)/scipy.tex $(ictdir)/ \ && echo "Scipy $(scipy-version) \citep{scipy2007,scipy2011}" > $@ -$(ipydir)/secretstorage: $(tdir)/secretstorage-$(secretstorage-version).tar.gz \ +$(ipydir)/secretstorage: $(ipydir)/jeepney \ $(ipydir)/cryptography \ - $(ipydir)/jeepney - $(call pybuild, tar xf, $<, SecretStorage-$(secretstorage-version), ,\ + $(tdir)/secretstorage-$(secretstorage-version).tar.gz + $(call pybuild, tar xf, SecretStorage-$(secretstorage-version), ,\ SecretStorage $(secretstorage-version)) -$(ipydir)/setuptools: $(tdir)/setuptools-$(setuptools-version).zip \ +$(ipydir)/setuptools: $(ibidir)/unzip \ $(ibidir)/python \ - $(ibidir)/unzip - $(call pybuild, unzip, $<, setuptools-$(setuptools-version), ,\ + $(tdir)/setuptools-$(setuptools-version).zip + $(call pybuild, unzip, setuptools-$(setuptools-version), ,\ Setuptools $(setuptools-version)) -$(ipydir)/setuptools_scm: $(tdir)/setuptools_scm-$(setuptools_scm-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, setuptools_scm-$(setuptools_scm-version), ,\ +$(ipydir)/setuptools_scm: $(ipydir)/setuptools \ + $(tdir)/setuptools_scm-$(setuptools_scm-version).tar.gz + $(call pybuild, tar xf, setuptools_scm-$(setuptools_scm-version), ,\ Setuptools-scm $(setuptools_scm-version)) -$(ipydir)/sip_tpv: $(tdir)/sip_tpv-$(sip_tpv-version).tar.gz \ - $(ipydir)/astropy \ - $(ipydir)/numpy \ - $(ipydir)/sympy - $(call pybuild, tar xf, $<, sip_tpv-$(sip_tpv-version), ,) \ +$(ipydir)/sip_tpv: $(ipydir)/sympy \ + $(ipydir)/astropy \ + $(tdir)/sip_tpv-$(sip_tpv-version).tar.gz + $(call pybuild, tar xf, sip_tpv-$(sip_tpv-version), ,) \ && cp $(dtexdir)/sip_tpv.tex $(ictdir)/ \ && echo "sip\_tpv $(sip_tpv-version) \citep{sip-tpv}" > $@ -$(ipydir)/six: $(tdir)/six-$(six-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, six-$(six-version), ,\ +$(ipydir)/six: $(ipydir)/setuptools \ + $(tdir)/six-$(six-version).tar.gz + $(call pybuild, tar xf, six-$(six-version), ,\ Six $(six-version)) -$(ipydir)/soupsieve: $(tdir)/soupsieve-$(soupsieve-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, soupsieve-$(soupsieve-version), ,\ +$(ipydir)/soupsieve: $(ipydir)/setuptools \ + $(tdir)/soupsieve-$(soupsieve-version).tar.gz + $(call pybuild, tar xf, soupsieve-$(soupsieve-version), ,\ SoupSieve $(soupsieve-version)) -$(ipydir)/sympy: $(tdir)/sympy-$(sympy-version).tar.gz \ - $(ipydir)/setuptools \ - $(ipydir)/mpmath - $(call pybuild, tar xf, $<, sympy-$(sympy-version), ,) \ +$(ipydir)/sympy: $(ipydir)/mpmath \ + $(tdir)/sympy-$(sympy-version).tar.gz + $(call pybuild, tar xf, sympy-$(sympy-version), ,) \ && cp $(dtexdir)/sympy.tex $(ictdir)/ \ && echo "SymPy $(sympy-version) \citep{sympy}" > $@ -$(ipydir)/urllib3: $(tdir)/urllib3-$(urllib3-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, urllib3-$(urllib3-version), ,\ +$(ipydir)/uncertainties: $(ipydir)/numpy \ + $(tdir)/uncertainties-$(uncertainties-version).tar.gz + $(call pybuild, tar xf, uncertainties-$(uncertainties-version), ,\ + uncertainties $(uncertainties-version)) + +$(ipydir)/urllib3: $(ipydir)/setuptools \ + $(tdir)/urllib3-$(urllib3-version).tar.gz + $(call pybuild, tar xf, urllib3-$(urllib3-version), ,\ Urllib3 $(urllib3-version)) -$(ipydir)/webencodings: $(tdir)/webencodings-$(webencodings-version).tar.gz \ - $(ipydir)/setuptools - $(call pybuild, tar xf, $<, webencodings-$(webencodings-version), ,\ +$(ipydir)/webencodings: $(ipydir)/setuptools \ + $(tdir)/webencodings-$(webencodings-version).tar.gz + $(call pybuild, tar xf, webencodings-$(webencodings-version), ,\ Webencodings $(webencodings-version)) -- cgit v1.2.1