aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/make
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce/software/make')
-rw-r--r--reproduce/software/make/basic.mk25
-rw-r--r--reproduce/software/make/high-level.mk53
2 files changed, 68 insertions, 10 deletions
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index 0b672d8..934580a 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -56,8 +56,13 @@ ibdir = $(BDIR)/software/installed/bin
ildir = $(BDIR)/software/installed/lib
ibidir = $(BDIR)/software/installed/version-info/proglib
-# Ultimate Makefile target.
-targets-proglib = low-level-links gcc-$(gcc-version)
+# Ultimate Makefile target. GNU Nano (a simple and very light-weight text
+# editor) is installed by default, it is recommended to have it in the
+# 'basic.mk', so Maneaged projects can be edited on any system (even when
+# there is no command-line text editor is available).
+targets-proglib = low-level-links \
+ gcc-$(gcc-version) \
+ nano-$(nano-version)
all: $(foreach p, $(targets-proglib), $(ibidir)/$(p))
# Define the shell environment
@@ -852,7 +857,8 @@ $(ibidir)/diffutils-$(diffutils-version): \
$(ibidir)/file-$(file-version): $(ibidir)/coreutils-$(coreutils-version)
tarball=file-$(file-version).tar.gz
$(call import-source, $(file-url), $(file-checksum))
- $(call gbuild, file-$(file-version), static,,V=1)
+ $(call gbuild, file-$(file-version), static, \
+ --disable-libseccomp, V=1)
echo "File $(file-version)" > $@
$(ibidir)/findutils-$(findutils-version): \
@@ -1145,11 +1151,22 @@ $(ibidir)/texinfo-$(texinfo-version): \
echo "GNU Texinfo $(texinfo-version)" > $@
$(ibidir)/which-$(which-version): $(ibidir)/coreutils-$(coreutils-version)
- tarball=/which-$(which-version).tar.gz
+ tarball=which-$(which-version).tar.gz
$(call import-source, $(which-url), $(which-checksum))
$(call gbuild, which-$(which-version), static)
echo "GNU Which $(which-version)" > $@
+# GNU Nano is a very light-weight and small, command-line text editor (in
+# total around 3.5 Mb after installation!). It is top-level target in the
+# basic tools (nothing depends on it, it just depends on GCC). This is
+# because some projects may choose to not have it by manually removing it
+# from 'targets-proglib' above (it has no effect on processing after all!).
+$(ibidir)/nano-$(nano-version): $(ibidir)/gcc-$(gcc-version)
+ tarball=nano-$(nano-version).tar.xz
+ $(call import-source, $(nano-url), $(nano-checksum))
+ $(call gbuild, nano-$(nano-version), static)
+ echo "GNU Nano $(nano-version)" > $@
+
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 9f434bc..3c5e518 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -54,9 +54,9 @@ ibidir = $(BDIR)/software/installed/version-info/proglib
# Basic directories (specific to this Makefile).
il64dir = $(BDIR)/software/installed/lib64
iidir = $(BDIR)/software/installed/include
-shsrcdir = $(shell pwd)/reproduce/software/shell
-dtexdir = $(shell pwd)/reproduce/software/bibtex
-patchdir = $(shell pwd)/reproduce/software/patches
+shsrcdir = "$(shell pwd)"/reproduce/software/shell
+dtexdir = "$(shell pwd)"/reproduce/software/bibtex
+patchdir = "$(shell pwd)"/reproduce/software/patches
itidir = $(BDIR)/software/installed/version-info/tex
ictdir = $(BDIR)/software/installed/version-info/cite
ipydir = $(BDIR)/software/installed/version-info/python
@@ -449,6 +449,25 @@ $(ibidir)/eigen-$(eigen-version):
rm -rf $(ddir)/eigen-eigen-*
echo "Eigen $(eigen-version)" > $@
+# GNU Emacs is an advanced text editor (among many other things!), so it
+# isn't directly related to the analysis phase of a project. However, it
+# can be useful during the development of a project on systems that don't
+# have it natively. So probably after the project is finished and is ready
+# for publication, you can remove it from 'TARGETS.conf'.
+#
+# However, the full Emacs build has a very large number of dependencies
+# which aren't necessary in many scenarios so we are disabling everything
+# except the core Emacs functionality (using '--without-all') and we are
+# also disabling all graphic user interface features (using '--without-x').
+$(ibidir)/emacs-$(emacs-version):
+ tarball=emacs-$(emacs-version).tar.xz
+ $(call import-source, $(emacs-url), $(emacs-checksum))
+ $(call gbuild, emacs-$(emacs-version), static, \
+ --without-all --without-x \
+ --without-gnutls --with-ns=no, \
+ -j$(numthreads) V=1)
+ echo "GNU Emacs $(emacs-version)" > $@
+
$(ibidir)/expat-$(expat-version):
tarball=expat-$(expat-version).tar.lz
$(call import-source, $(expat-url), $(expat-checksum))
@@ -1374,8 +1393,30 @@ $(ibidir)/xlsxio-$(xlsxio-version): \
rm $(ibdir)/example_xlsxio_*
echo "XLSX I/O $(xlsxio-version)" > $@
-
-
+# VIM is a text editor which doesn't directly affect processing but can be
+# useful in projects during its development, for more see the comment above
+# GNU Emacs.
+$(ibidir)/vim-$(vim-version):
+ tarball=vim-$(vim-version).tar.bz2
+ $(call import-source, $(vim-url), $(vim-checksum))
+ cd $(ddir)
+ tar xf $(tdir)/$$tarball
+ n=$$(echo $(vim-version) | sed -e's|\.||')
+ cd $(ddir)/vim$$n
+ ./configure --prefix=$(idir) \
+ --disable-canberra \
+ --enable-multibyte \
+ --disable-netbeans \
+ --disable-fontset \
+ --disable-gpm \
+ --disable-acl \
+ --disable-gui \
+ --with-x=no
+ make -j$(numthreads)
+ make install
+ cd ..
+ rm -rf vim$$n
+ echo "VIM $(vim-version)" > $@
@@ -1411,7 +1452,7 @@ $(itidir)/texlive-ready-tlmgr: reproduce/software/config/texlive.conf
tar xf $(tdir)/install-tl-unx.tar.gz
cd install-tl-*
sed -e's|@installdir[@]|$(idir)|g' \
- $$topdir/reproduce/software/config/texlive.conf \
+ "$$topdir"/reproduce/software/config/texlive.conf \
> texlive.conf
# TeX Live's installation may fail due to any reason. But TeX Live