diff options
Diffstat (limited to 'reproduce/software/make')
-rw-r--r-- | reproduce/software/make/basic.mk | 25 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 53 |
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 |