From 12648438cf9f75738cef045fd02f4093eab7990d Mon Sep 17 00:00:00 2001 From: Raul Infante-Sainz Date: Wed, 27 Mar 2019 17:16:21 +0000 Subject: GCC is now built on a Mac, not yet ATLAS Until now, we were simply using the host's GCC for Mac systems. But we found that except for a single step (to fixing `rpath'), it works on Mac!!! So, GCC is now part of the Mac build as well. However, we are still having some problems in building ATLAS on Mac. It works on GNU/Linux, but not in Mac. So for the time being (just temporarily), we are avoiding ATLAS (and thus Scipy) on Mac systems. We just filed an issue on the ATLAS discussion list to hopefully fix the problem soon. --- reproduce/src/make/dependencies-basic.mk | 37 ++++++++++++++++++------------- reproduce/src/make/dependencies-python.mk | 5 ++++- reproduce/src/make/dependencies.mk | 19 ++++++++++++++-- 3 files changed, 42 insertions(+), 19 deletions(-) (limited to 'reproduce/src/make') diff --git a/reproduce/src/make/dependencies-basic.mk b/reproduce/src/make/dependencies-basic.mk index b51f35d..69d2d84 100644 --- a/reproduce/src/make/dependencies-basic.mk +++ b/reproduce/src/make/dependencies-basic.mk @@ -740,13 +740,13 @@ $(ibdir)/ld: $(tdir)/binutils-$(binutils-version).tar.lz # # We are currently having problems installing GCC on macOS, so for the time # being, if the pipeline is being run on a macOS, we'll just set a link. -ifeq ($(on_mac_os),yes) -gcc-prerequisites = -else +#ifeq ($(on_mac_os),yes) +#gcc-prerequisites = +#else gcc-prerequisites = $(tdir)/gcc-$(gcc-version).tar.xz \ $(ilidir)/isl \ $(ilidir)/mpc -endif +#endif $(ibdir)/gcc: $(gcc-prerequisites) \ $(ibdir)/ls \ $(ibdir)/sed \ @@ -766,12 +766,15 @@ $(ibdir)/gcc: $(gcc-prerequisites) \ # single architecture, we can trick GCC into building its libraries # in '$(idir)/lib' by defining the '$(idir)/lib64' as a symbolic # link to '$(idir)/lib'. - if [ "x$(on_mac_os)" = xyes ]; then \ - $(call makelink,gfortran); \ - $(call makelink,g++); \ - $(call makelink,gcc,copy); \ - else \ - \ + +# SO FAR IT SEEMS TO BE WORKING ON MAC, BUT MORE TESTS ARE NEEDED TO TOTALLY +# REMOVE THE STEP WHERE WE JUST USE THE HOST'S GCC. +# if [ "x$(on_mac_os)" = xyesno ]; then \ +# $(call makelink,gfortran); \ +# $(call makelink,g++); \ +# $(call makelink,gcc,copy); \ +# else \ + rm -f $(ibdir)/gcc* $(ibdir)/g++ $(ibdir)/gfortran $(ibdir)/gcov*;\ rm -rf $(ildir)/gcc $(ildir)/libcc* $(ildir)/libgcc*; \ rm -rf $(ildir)/libgfortran* $(ildir)/libstdc* rm $(idir)/x86_64*;\ @@ -807,10 +810,12 @@ $(ibdir)/gcc: $(gcc-prerequisites) \ && cd .. \ && rm -rf gcc-build gcc-$(gcc-version) \ \ - && for f in $$(find $(idir)/libexec/gcc); do \ - if ldd $$f &> /dev/null; then \ - patchelf --set-rpath $(ildir) $$f; \ - fi; \ - done; \ - fi + && if [ "x$(on_mac_os)" != xyes ]; then \ + for f in $$(find $(idir)/libexec/gcc); do \ + if ldd $$f &> /dev/null; then \ + patchelf --set-rpath $(ildir) $$f; \ + fi; \ + done; \ + fi; \ +# fi diff --git a/reproduce/src/make/dependencies-python.mk b/reproduce/src/make/dependencies-python.mk index 54d3a56..fe82175 100644 --- a/reproduce/src/make/dependencies-python.mk +++ b/reproduce/src/make/dependencies-python.mk @@ -43,7 +43,10 @@ ilidir = $(BDIR)/dependencies/installed/lib/built ipydir = $(BDIR)/dependencies/installed/lib/built/python # Define the top-level programs to build (installed in `.local/bin'). -top-level-python = astroquery matplotlib scipy +ifneq ($(on_mac_os),yes) +withscipy=scipy +endif +top-level-python = astroquery matplotlib $(withscipy) all: $(foreach p, $(top-level-python), $(ipydir)/$(p)) # Other basic environment settings: We are only including the host diff --git a/reproduce/src/make/dependencies.mk b/reproduce/src/make/dependencies.mk index d797cdb..02fe18a 100644 --- a/reproduce/src/make/dependencies.mk +++ b/reproduce/src/make/dependencies.mk @@ -44,7 +44,10 @@ ilidir = $(BDIR)/dependencies/installed/lib/built # Define the top-level programs to build (installed in `.local/bin'). top-level-programs = astnoisechisel flock metastore unzip zip -top-level-libraries = atlas freetype +ifneq ($(on_mac_os),yes) +withatlas = atlas +endif +top-level-libraries = freetype $(withatlas) all: $(ddir)/texlive-versions.tex \ $(foreach p, $(top-level-programs), $(ibdir)/$(p)) \ $(foreach p, $(top-level-libraries), $(ilidir)/$(p)) @@ -260,6 +263,11 @@ $(ilidir)/libtiff: $(tdir)/tiff-$(libtiff-version).tar.gz \ $(ilidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \ $(tdir)/lapack-$(lapack-version).tar.gz + if [ x$(on_mac_os) = xyes ]; then + echo; echo; + echo "ATLAS build instructions not yet working on Mac" + exit 1 + fi # Get the operating system specific features (how to get # CPU frequency and the library suffixes). To make the steps @@ -294,7 +302,6 @@ $(ilidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \ # The linking step here doesn't recognize the `-Wl' in the # `rpath_command'. export LDFLAGS=-L$(ildir) - cd $(ddir) \ && tar xf $< \ && cd ATLAS \ @@ -305,6 +312,14 @@ $(ilidir)/atlas: $(tdir)/atlas-$(atlas-version).tar.bz2 \ --with-netlib-lapack-tarfile=$(word 2, $^) \ --cripple-atlas-performance \ -Fa alg -fPIC --shared \ + -C xc $(ibdir)/gcc \ + -C gc $(ibdir)/gcc \ + -C if $(ibdir)/gfortran \ + -C ic $(ibdir)/gcc \ + -C dm $(ibdir)/gcc \ + -C sm $(ibdir)/gcc \ + -C dk $(ibdir)/gcc \ + -C sk $(ibdir)/gcc \ --prefix=$(idir) \ && make \ && cd lib && make -f $$sharedmk && cd .. \ -- cgit v1.2.1