diff options
Diffstat (limited to 'reproduce/software/make')
-rw-r--r-- | reproduce/software/make/basic.mk | 98 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 13 |
2 files changed, 58 insertions, 53 deletions
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk index 1709082..3c03fdc 100644 --- a/reproduce/software/make/basic.mk +++ b/reproduce/software/make/basic.mk @@ -124,6 +124,7 @@ tarballs = $(foreach t, bash-$(bash-version).tar.lz \ findutils-$(findutils-version).tar.xz \ gawk-$(gawk-version).tar.lz \ gcc-$(gcc-version).tar.xz \ + gettext-$(gettext-version).tar.xz \ git-$(git-version).tar.xz \ gmp-$(gmp-version).tar.lz \ grep-$(grep-version).tar.xz \ @@ -132,6 +133,8 @@ tarballs = $(foreach t, bash-$(bash-version).tar.lz \ libbsd-$(libbsd-version).tar.xz \ libiconv-$(libiconv-version).tar.gz \ libtool-$(libtool-version).tar.xz \ + libunistring-$(libunistring-version).tar.xz \ + libxml2-$(libxml2-version).tar.gz \ lzip-$(lzip-version).tar.gz \ m4-$(m4-version).tar.gz \ make-$(make-version).tar.gz \ @@ -176,6 +179,7 @@ $(tarballs): $(tdir)/%: | $(lockdir) elif [ $$n = findutils ]; then c=$(findutils-checksum); w=http://ftp.gnu.org/gnu/findutils; \ elif [ $$n = gawk ]; then c=$(gawk-checksum); w=http://ftp.gnu.org/gnu/gawk; \ elif [ $$n = gcc ]; then c=$(gcc-checksum); w=http://ftp.gnu.org/gnu/gcc/gcc-$(gcc-version); \ + elif [ $$n = gettext ]; then c=$(gettext-checksum); w=https://ftp.gnu.org/gnu/gettext; \ elif [ $$n = git ]; then c=$(git-checksum); w=http://mirrors.edge.kernel.org/pub/software/scm/git; \ elif [ $$n = gmp ]; then c=$(gmp-checksum); w=https://gmplib.org/download/gmp; \ elif [ $$n = grep ]; then c=$(grep-checksum); w=http://ftp.gnu.org/gnu/grep; \ @@ -184,6 +188,8 @@ $(tarballs): $(tdir)/%: | $(lockdir) elif [ $$n = libbsd ]; then c=$(libbsd-checksum); w=http://libbsd.freedesktop.org/releases; \ elif [ $$n = libiconv ]; then c=$(libiconv-checksum); w=https://ftp.gnu.org/pub/gnu/libiconv; \ elif [ $$n = libtool ]; then c=$(libtool-checksum); w=http://ftp.gnu.org/gnu/libtool; \ + elif [ $$n = libunistring ]; then c=$(libunistring-checksum); w=http://ftp.gnu.org/gnu/libunistring; \ + elif [ $$n = libxml2 ]; then c=$(libxml2-checksum); w=ftp://xmlsoft.org/libxml2; \ elif [ $$n = lzip ]; then c=$(lzip-checksum); w=http://download.savannah.gnu.org/releases/lzip; \ elif [ $$n = m4 ]; then \ mergenames=0; \ @@ -312,9 +318,6 @@ $(ibidir)/low-level-links: | $(ibdir) $(ildir) # executable name `glibtool'. $(call makelink,libtool) - # GNU Gettext (translate messages) - $(call makelink,msgfmt) - # Necessary libraries: # Libdl (for dynamic loading libraries at runtime) # POSIX Threads library for multi-threaded programs. @@ -610,24 +613,14 @@ else needpatchelf = $(ibidir)/patchelf endif $(ibidir)/bash: $(needpatchelf) \ + $(ibidir)/gettext \ $(ibidir)/readline \ $(tdir)/bash-$(bash-version).tar.lz - # Delete the (possibly) existing Bash executable. + # Delete the (possibly) existing Bash executable in the project, + # let it use the default shell of the host. rm -f $(ibdir)/bash - # Build Bash. Note that we aren't building Bash with - # `--with-installed-readline'. This is because (as described above) - # Bash needs the `LD_LIBRARY_PATH' set properly before it is - # run. Within a recipe, things are fine (we do set - # `LD_LIBRARY_PATH'). However, Make will also call the shell - # outside of the recipe (for example in the `foreach' Make - # function!). In such cases, our new `LD_LIBRARY_PATH' is not set. - # This will cause a crash in the shell and thus the Makefile, - # complaining that it can't find `libreadline'. Therefore, even - # though we build readline below, we won't link Bash with an - # external readline. - # # Bash has many `--enable' features which are already enabled by # default. As described in the manual, they are mainly useful when # you disable them all with `--enable-minimal-config' and enable a @@ -635,9 +628,14 @@ $(ibidir)/bash: $(needpatchelf) \ if [ "x$(static_build)" = xyes ]; then stopt="--enable-static-link";\ else stopt=""; \ fi; \ - $(call gbuild, bash-$(bash-version),, \ - --with-installed-readline=$(ildir) $$stopt, \ - -j$(numthreads)) + export CFLAGS="$$CFLAGS \ + -DDEFAULT_PATH_VALUE='\"$(ibdir)\"' \ + -DSTANDARD_UTILS_PATH='\"$(ibdir)\"' \ + -DSYS_BASHRC='\"$(BASH_ENV)\"' "; \ + $(call gbuild, bash-$(bash-version),, $$stopt \ + --with-installed-readline=$(ildir) \ + --with-curses=yes, \ + -j$(numthreads)) # Atleast on GNU/Linux systems, Bash doesn't include RPATH by # default. So, we have to manually include it, currently we are @@ -676,7 +674,7 @@ perl-conflddlflags = else perl-conflddlflags = -Dlddlflags="-shared $$LDFLAGS" endif -$(ibidir)/perl: $(ibidir)/bash \ +$(ibidir)/perl: $(ibidir)/make \ $(tdir)/perl-$(perl-version).tar.gz major_version=$$(echo $(perl-version) \ | sed -e's/\./ /g' \ @@ -690,11 +688,6 @@ $(ibidir)/perl: $(ibidir)/bash \ echo; echo "Tar error"; exit 1; \ fi \ && cd perl-$(perl-version) \ - && sed -e's|\#\! /bin/sh|\#\! $(ibdir)/bash|' \ - -e's|\#\!/bin/sh|\#\! $(ibdir)/bash|' \ - Configure > Configure-tmp \ - && mv -f Configure-tmp Configure \ - && chmod +x Configure \ && ./Configure -des \ -Dusethreads \ -Duseshrplib \ @@ -715,8 +708,8 @@ $(ibidir)/perl: $(ibidir)/bash \ -Dcccdlflags='-fPIC' \ $(perl-conflddlflags) \ -Dldflags="$$LDFLAGS" \ - && make SHELL=$(ibdir)/bash -j$(numthreads) \ - && make SHELL=$(ibdir)/bash install \ + && make -j$(numthreads) \ + && make install \ && cd .. \ && rm -rf perl-$(perl-version) \ && cd $$topdir \ @@ -747,7 +740,8 @@ $(ibidir)/perl: $(ibidir)/bash \ # an error). # # Coreutils uses Perl to create man pages! -$(ibidir)/coreutils: $(ibidir)/perl \ +$(ibidir)/coreutils: $(ibidir)/bash \ + $(ibidir)/perl \ $(ibidir)/openssl \ $(tdir)/coreutils-$(coreutils-version).tar.xz cd $(ddir) \ @@ -971,7 +965,34 @@ $(ibidir)/libiconv: $(ibidir)/pkg-config \ $(call gbuild, libiconv-$(libiconv-version), static) \ && echo "GNU libiconv $(libiconv-version)" > $@ +$(ibidir)/libunistring: $(ibidir)/make \ + $(tdir)/libunistring-$(libunistring-version).tar.xz + $(call gbuild, libunistring-$(libunistring-version), static,, \ + -j$(numthreads)) \ + && echo "GNU libunistring $(libunistring-version)" > $@ + +$(ibidir)/libxml2: $(ibidir)/make \ + $(tdir)/libxml2-$(libxml2-version).tar.gz + # The libxml2 tarball also contains Python bindings which are built + # and installed to a system directory by default. If you don't need + # the Python bindings, the easiest solution is to compile without + # Python support: `./configure --without-python'. If you really need + # the Python bindings, use `--with-python-install-dir=DIR' instead. + $(call gbuild, libxml2-$(libxml2-version), static, \ + --without-python) \ + && echo "Libxml2 $(libxml2-version)" > $@ + +$(ibidir)/gettext: $(ibidir)/m4 \ + $(ibidir)/libxml2 \ + $(ibidir)/ncurses \ + $(ibidir)/libiconv \ + $(ibidir)/libunistring \ + $(tdir)/gettext-$(gettext-version).tar.xz + $(call gbuild, gettext-$(gettext-version), static, V=1) \ + && echo "GNU gettext $(gettext-version)" > $@ + $(ibidir)/git: $(ibidir)/curl \ + $(ibidir)/gettext \ $(ibidir)/libiconv \ $(tdir)/git-$(git-version).tar.xz if [ x$(on_mac_os) = xyes ]; then \ @@ -1013,9 +1034,7 @@ $(ibidir)/libbsd: $(ibidir)/coreutils \ # # [1] https://raw.githubusercontent.com/macports/macports-ports/edf0ee1e2cf/devel/m4/files/secure_snprintf.patch # [2] https://github.com/Homebrew/homebrew-core/blob/master/Formula/m4.rb -$(ibidir)/m4: $(ibidir)/sed \ - $(ibidir)/texinfo \ - $(ibidir)/coreutils \ +$(ibidir)/m4: $(ibidir)/texinfo \ $(tdir)/m4-$(m4-version).tar.gz cd $(ddir); \ unpackdir=m4-$(m4-version); \ @@ -1025,15 +1044,14 @@ $(ibidir)/m4: $(ibidir)/sed \ fi \ && cd $$unpackdir \ && if [ x$(on_mac_os) = xyes ]; then \ - sed -i -e's|if !(((__GLIBC__ > 2|if !defined(__APPLE__) \&\& !(((__GLIBC__ > 2|' lib/vasnprintf.c; \ + sed 's|if !(((__GLIBC__ > 2|if !defined(__APPLE__) \&\& !(((__GLIBC__ > 2|' \ + lib/vasnprintf.c > lib/vasnprintf_edited.c; \ + mv lib/vasnprintf_edited.c lib/vasnprintf.c; \ fi \ - && sed -i -e's|\#\! /bin/sh|\#\! $(ibdir)/bash|' \ - -e's|\#\!/bin/sh|\#\! $(ibdir)/bash|' \ - configure \ - && ./configure --prefix=$(idir) SHELL=$(ibdir)/bash \ - LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ - && make SHELL=$(ibdir)/bash V=1 -j$(numthreads) \ - && make SHELL=$(ibdir)/bash V=1 install \ + && ./configure --prefix=$(idir) LDFLAGS="$(LDFLAGS)" \ + CPPFLAGS="$(CPPFLAGS)" \ + && make V=1 -j$(numthreads) \ + && make V=1 install \ && cd .. \ && rm -rf $$unpackdir \ && echo "GNU M4 $(m4-version)" > $@ @@ -1128,7 +1146,7 @@ $(ibidir)/mpfr: $(ibidir)/gmp \ $(call gbuild, mpfr-$(mpfr-version), static, , , make check) \ && echo "GNU Multiple Precision Floating-Point Reliably $(mpfr-version)" > $@ -$(ibidir)/pkg-config: $(ibidir)/coreutils \ +$(ibidir)/pkg-config: $(ibidir)/make \ $(tdir)/pkg-config-$(pkgconfig-version).tar.gz # An existing `libiconv' can cause a conflict with `pkg-config', # this is why `libiconv' depends on `pkg-config'. On a clean build, diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index 21cc4ea..8caa968 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -180,7 +180,6 @@ tarballs = $(foreach t, apachelog4cxx-$(apachelog4cxx-version).tar.lz \ libnsl-$(libnsl-version).tar.gz \ libpng-$(libpng-version).tar.xz \ libtirpc-$(libtirpc-version).tar.bz2 \ - libxml2-$(libxml2-version).tar.gz \ missfits-$(missfits-version).tar.gz \ netpbm-$(netpbm-version).tar.gz \ openblas-$(openblas-version).tar.gz \ @@ -280,7 +279,6 @@ $(tarballs): $(tdir)/%: | $(lockdir) c=$(libgit2-checksum) w=https://github.com/libgit2/libgit2/archive/v$(libgit2-version).tar.gz elif [ $$n = libtirpc ]; then c=$(libtirpc-checksum); w=https://downloads.sourceforge.net/libtirpc - elif [ $$n = libxml2 ]; then c=$(libxml2-checksum); w=ftp://xmlsoft.org/libxml2 elif [ $$n = missfits ]; then c=$(missfits-checksum); w=https://www.astromatic.net/download/missfits elif [ $$n = netpbm ]; then c=$(netpbm-checksum); w=http://akhlaghi.org/maneage-software elif [ $$n = openblas ]; then @@ -689,17 +687,6 @@ $(ibidir)/libtirpc: $(tdir)/libtirpc-$(libtirpc-version).tar.bz2 --disable-gssapi, V=1) \ echo "libtirpc $(libtirpc-version)" > $@ -$(ibidir)/libxml2: | $(tdir)/libxml2-$(libxml2-version).tar.gz - # The libxml2 tarball also contains Python bindings which are built and - # installed to a system directory by default. If you don't need the Python - # bindings, the easiest solution is to compile without Python support: - # ./configure --without-python - # If you really need the Python bindings, try the - # --with-python-install-dir=DIR option - $(call gbuild, libxml2-$(libxml2-version), static, \ - --without-python) \ - && echo "Libxml2 $(libxml2-version)" > $@ - $(ibidir)/openblas: $(tdir)/openblas-$(openblas-version).tar.gz if [ x$(on_mac_os) = xyes ]; then \ export CC=clang; \ |