aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/make/atlas-multiple.mk
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-04-15 01:47:58 +0100
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-04-15 02:24:09 +0100
commit313b936b502d22b6a2ff43f560dee0bb51fd01d0 (patch)
tree70f884b91b393be4d3c6b7cfaeaf3412900bd16f /reproduce/software/make/atlas-multiple.mk
parent4722ea598edd6b630227404c48c1c09ac527e9b8 (diff)
New architecture to separate software-building and analysis steps
Until now, the software building and analysis steps of the pipeline were intertwined. However, these steps (of how to build a software, and how to use it) are logically completely independent. Therefore with this commit, the pipeline now has a new architecture (particularly in the `reproduce' directory) to emphasize this distinction: The `reproduce' directory now has the two `software' and `analysis' subdirectories and the respective parts of the previous architecture have been broken up between these two based on their function. There is also no more `src' directory. The `config' directory for software and analysis is now mixed with the language-specific directories. Also, some of the software versions were also updated after some checks with their webpages. This new architecture will allow much more focused work on each part of the pipeline (to install the software and to run them for an analysis).
Diffstat (limited to 'reproduce/software/make/atlas-multiple.mk')
-rwxr-xr-xreproduce/software/make/atlas-multiple.mk72
1 files changed, 72 insertions, 0 deletions
diff --git a/reproduce/software/make/atlas-multiple.mk b/reproduce/software/make/atlas-multiple.mk
new file mode 100755
index 0000000..fef25c7
--- /dev/null
+++ b/reproduce/software/make/atlas-multiple.mk
@@ -0,0 +1,72 @@
+# Rules to build ATLAS shared libraries in multi-threaded mode on GNU/Linux
+#
+# ------------------------------------------------------------------------
+# !!!!! IMPORTANT NOTES !!!!!
+#
+# This Makefile will be run during the initial `./configure' script. It is
+# not included into the reproduction pipe after that.
+#
+# ------------------------------------------------------------------------
+#
+# Copyright (C) 2019 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+#
+# This Makefile is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation, either version 3 of the License, or (at your
+# option) any later version.
+#
+# This Makefile is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# <http://www.gnu.org/licenses/>.
+
+ORIGLDFLAGS := $(LDFLAGS)
+
+include Make.inc
+
+all: libatlas.so libf77blas.so libptf77blas.so libstcblas.so libptcblas.so \
+ libblas.so libcblas.so liblapack.so.3.6.1 libptlapack.so.3.6.1 liblapack.so.3
+
+libatlas.so: libatlas.a
+ ld $(ORIGLDFLAGS) $(LDFLAGS) -shared -soname $@ -o $@ \
+ --whole-archive libatlas.a --no-whole-archive -lc $(LIBS)
+
+libf77blas.so : libf77blas.a libatlas.so
+ ld $(ORIGLDFLAGS) $(LDFLAGS) -shared -soname libf77blas.so.3 \
+ -o $@ --whole-archive libf77blas.a --no-whole-archive \
+ $(F77SYSLIB) -L. -latlas
+
+libptf77blas.so : libptf77blas.a libatlas.so
+ ld $(ORIGLDFLAGS) $(LDFLAGS) -shared -soname libblas.so.3 \
+ -o $@ --whole-archive libptf77blas.a --no-whole-archive \
+ $(F77SYSLIB) -L. -latlas
+
+libstcblas.so : libcblas.a libatlas.so libblas.so
+ ld $(ORIGLDFLAGS) $(LDFLAGS) -shared -soname libstcblas.so \
+ -o $@ --whole-archive libcblas.a -L. -latlas -lblas
+
+libptcblas.so : libptcblas.a libatlas.so libblas.so
+ ld $(ORIGLDFLAGS) $(LDFLAGS) -shared -soname libcblas.so \
+ -o $@ --whole-archive libptcblas.a -L. -latlas -lblas
+
+libblas.so: libptf77blas.so
+ ln -s $< $@
+
+libcblas.so: libptcblas.so
+ ln -s $< $@
+
+liblapack.so.3.6.1 : liblapack.a libstcblas.so libf77blas.so
+ ld $(ORIGLDFLAGS) $(LDFLAGS) -shared -soname libstlapack.so.3 \
+ -o $@ --whole-archive liblapack.a --no-whole-archive \
+ $(F77SYSLIB) -L. -lstcblas -lf77blas
+
+libptlapack.so.3.6.1 : libptlapack.a libcblas.so libblas.so
+ ld $(ORIGLDFLAGS) $(LDFLAGS) -shared -soname liblapack.so.3 \
+ -o $@ --whole-archive libptlapack.a --no-whole-archive \
+ $(F77SYSLIB) -L. -lcblas -lblas
+
+liblapack.so.3: libptlapack.so.3.6.1
+ ln -s $< $@