[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[task #15667] Install Gzip and Make before calling basic.mk
From: |
Mohammad Akhlaghi |
Subject: |
[task #15667] Install Gzip and Make before calling basic.mk |
Date: |
Sun, 31 May 2020 00:24:04 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0 |
URL:
<https://savannah.nongnu.org/task/?15667>
Summary: Install Gzip and Make before calling basic.mk
Project: Reproducible paper template
Submitted by: makhlaghi
Submitted on: Sun 31 May 2020 05:24:03 AM BST
Should Start On: Sun 31 May 2020 12:00:00 AM BST
Should be Finished on: Sun 31 May 2020 12:00:00 AM BST
Category: Software
Priority: 5 - Normal
Status: In Progress
Privacy: Public
Percent Complete: 0%
Assigned to: makhlaghi
Open/Closed: Open
Discussion Lock: Any
Effort: 0.00
_______________________________________________________
Details:
Make the basis of Maneage and currently we use the hosts's Make implementation
for 'basic.mk' which builds make pretty early on: just after installing the
compressing libraries. This has the following problems:
* On macOS, for some reason, the parallel building of its default Make fails
(we have seen this in more than one macOS). So macOS users have to build their
full 'basic.mk' on a single thread! Which is very slow :-(.
* As described in bug #58465, on FreeBSD, the host 'make' doesn't recognize
the conditionals we have put.
Fortunately GNU Make is a relatively small program itself, and its creators
have even included a 'build.sh' script to use to build itself (instead of
calling 'make' to build 'make'!) So the system can even not have Make at all!
I am thus proposing to build GNU Make in 'configure.sh', just like the way we
currently build 'flock' now and use our own GNU Make even for 'basic.mk' on
any host. Doing this will make 'basic.mk' much more similar to 'high-level.mk'
or 'python.mk' (allowing us to use GNU Make conventions!), while fixing the
issues above.
Fortunately Make is also released with Lzip <http://ftp.gnu.org/gnu/make/>
compression and Lzip is arguably the most elegant simple little program I have
seen (uncompressed it is only 436 KB)! So we can also install Lzip before Make
in 'configure.sh'.
We can then install 'flock' after Lzip and Make in 'configure.sh'. For Flock,
we can make an Lzip tarball and download/use that instead of its standard
Gzip-based tarball.
Finally, in 'basic.mk', we can also make an Lzip-based tarball for Gzip and
use that to build Gzip before any package that has a 'tar.gz' tarball.
Generally, 'tar.lz' has a much higher compression ratio for source code
(almost double!), so it may not be bad to later only use 'tar.lz' for our
source-code archive. But this is just a brainstorm now!
_______________________________________________________
Reply to this item at:
<https://savannah.nongnu.org/task/?15667>
_______________________________________________
Message sent via Savannah
https://savannah.nongnu.org/
- [task #15667] Install Gzip and Make before calling basic.mk,
Mohammad Akhlaghi <=