9cc17c
From 14e717c4367c04570863220c3faf5ce41dabbf05 Mon Sep 17 00:00:00 2001
9cc17c
From: Andreas Arnez <arnez@linux.ibm.com>
9cc17c
Date: Wed, 29 May 2019 17:51:34 +0200
9cc17c
Subject: [PATCH 7/8] Enable "cross-compile"
9cc17c
9cc17c
This adds support for building ATLAS without running any target code.  In
9cc17c
order for this to work, the archdefs must contain some additional files
9cc17c
that would otherwise be built during various tuning steps; see the new
9cc17c
targets extra_get and extra_put in "CONFIG/ARCHS/Makefile".
9cc17c
9cc17c
Even if the archdefs contain these additional files, cross compilation
9cc17c
is *not* automatically enabled.  To activate it and disable tuning at
9cc17c
build time, add the option "-Si archdef 2" when running "configure".
9cc17c
---
9cc17c
 CONFIG/ARCHS/Makefile | 24 ++++++++++++++++++++++++
9cc17c
 bin/atlas_install.c   |  2 ++
9cc17c
 makes/Make.aux        | 10 +++++-----
9cc17c
 makes/Make.bin        | 22 ++++++++++++++++++++++
9cc17c
 makes/Make.l3tune     |  6 ++++++
9cc17c
 makes/Make.sysinfo    |  8 +++++++-
9cc17c
 6 files changed, 66 insertions(+), 6 deletions(-)
9cc17c
9cc17c
diff --git a/CONFIG/ARCHS/Makefile b/CONFIG/ARCHS/Makefile
9cc17c
index 321e05c..e61b5a0 100644
9cc17c
--- a/CONFIG/ARCHS/Makefile
9cc17c
+++ b/CONFIG/ARCHS/Makefile
9cc17c
@@ -211,3 +211,27 @@ ArchNew : $(mach) xnegflt
9cc17c
 	- cp $(BLDdir)/bin/INSTALL_LOG/?PerfSumm.txt $(adefd)/.
9cc17c
 	rm -f xnegflt
9cc17c
 archput : sys_put kern_put gemm_put la_put
9cc17c
+
9cc17c
+ifdef ATL_NOTUNE
9cc17c
+
9cc17c
+# To avoid tuning, some extra files are needed.
9cc17c
+
9cc17c
+extra_get :
9cc17c
+	- cp $(INCAdir)/atlas_type.h $(adefd)/kern/
9cc17c
+	- cp $(INCAdir)/atlas_[sdcz]sysinfo.h $(adefd)/kern/
9cc17c
+	- cp $(INCAdir)/atlas_[sd]lamch.h $(adefd)/kern/
9cc17c
+	- cp $(INCAdir)/atlas_[sdcz]trsmXover.h $(adefd)/kern/
9cc17c
+	- cp $(INCAdir)/atlas_[sdcz]syr*NX.h $(adefd)/kern/
9cc17c
+
9cc17c
+extra_put :
9cc17c
+	- cp $(adefd)/kern/atlas_type.h $(INCAdir)/.
9cc17c
+	- cp $(adefd)/kern/atlas_[sdcz]sysinfo.h $(INCAdir)/.
9cc17c
+	- cp $(adefd)/kern/atlas_[sd]lamch.h $(INCAdir)/.
9cc17c
+	- cp $(adefd)/kern/atlas_[sdcz]trsmXover.h $(INCAdir)/.
9cc17c
+	- cp $(adefd)/kern/atlas_[sdcz]syr*NX.h  $(INCAdir)/.
9cc17c
+
9cc17c
+ArchNew : extra_get
9cc17c
+
9cc17c
+archput : extra_put
9cc17c
+
9cc17c
+endif
9cc17c
diff --git a/bin/atlas_install.c b/bin/atlas_install.c
9cc17c
index de3eb3a..3c811e6 100644
9cc17c
--- a/bin/atlas_install.c
9cc17c
+++ b/bin/atlas_install.c
9cc17c
@@ -697,6 +697,8 @@ void GoToTown(int ARCHDEF, int L1DEF, int TuneLA)
9cc17c
       ATL_Cassert(system("make IBozoL1.grd\n")==0,
9cc17c
                   "USING BOZO L1 DEFAULTS", NULL);
9cc17c
    }
9cc17c
+   if (ARCHDEF >= 2)
9cc17c
+      setenv("ATL_NOTUNE", "1", 1);
9cc17c
    if (ARCHDEF)
9cc17c
       DefInstall = !system("make IArchDef.grd\n");
9cc17c
 
9cc17c
diff --git a/makes/Make.aux b/makes/Make.aux
9cc17c
index 1f769c8..c793028 100644
9cc17c
--- a/makes/Make.aux
9cc17c
+++ b/makes/Make.aux
9cc17c
@@ -113,23 +113,23 @@ clean :
9cc17c
 
9cc17c
 $(ATLFWAIT) :
9cc17c
 	cd $(BINdir) ; $(MAKE) xatlas_waitfile
9cc17c
-$(INCAdir)/atlas_type.h : $(ATLFWAIT)
9cc17c
+$(INCAdir)/atlas_type.h : | $(ATLFWAIT)
9cc17c
 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_type.h
9cc17c
 	$(ATLFWAIT) -f $(INCAdir)/atlas_type.h
9cc17c
 sINCdep = $(INCAdir)/atlas_ssysinfo.h $(INCAdir)/atlas_type.h 
9cc17c
-$(INCAdir)/atlas_ssysinfo.h : $(ATLFWAIT)
9cc17c
+$(INCAdir)/atlas_ssysinfo.h : | $(ATLFWAIT)
9cc17c
 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_ssysinfo.h
9cc17c
 	$(ATLFWAIT) -f $(INCAdir)/atlas_ssysinfo.h
9cc17c
 dINCdep = $(INCAdir)/atlas_dsysinfo.h $(INCAdir)/atlas_type.h 
9cc17c
-$(INCAdir)/atlas_dsysinfo.h : $(ATLFWAIT)
9cc17c
+$(INCAdir)/atlas_dsysinfo.h : | $(ATLFWAIT)
9cc17c
 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_dsysinfo.h
9cc17c
 	$(ATLFWAIT) -f $(INCAdir)/atlas_dsysinfo.h
9cc17c
 cINCdep = $(INCAdir)/atlas_csysinfo.h $(INCAdir)/atlas_type.h 
9cc17c
-$(INCAdir)/atlas_csysinfo.h : $(ATLFWAIT)
9cc17c
+$(INCAdir)/atlas_csysinfo.h : | $(ATLFWAIT)
9cc17c
 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_csysinfo.h
9cc17c
 	$(ATLFWAIT) -f $(INCAdir)/atlas_csysinfo.h
9cc17c
 zINCdep = $(INCAdir)/atlas_zsysinfo.h $(INCAdir)/atlas_type.h 
9cc17c
-$(INCAdir)/atlas_zsysinfo.h : $(ATLFWAIT)
9cc17c
+$(INCAdir)/atlas_zsysinfo.h : | $(ATLFWAIT)
9cc17c
 	cd $(SYSdir) ; $(MAKE) $(INCAdir)/atlas_zsysinfo.h
9cc17c
 	$(ATLFWAIT) -f $(INCAdir)/atlas_zsysinfo.h
9cc17c
 
9cc17c
diff --git a/makes/Make.bin b/makes/Make.bin
9cc17c
index 1035cb9..acad578 100644
9cc17c
--- a/makes/Make.bin
9cc17c
+++ b/makes/Make.bin
9cc17c
@@ -163,7 +163,9 @@ IRunMADef :
9cc17c
 	cd $(SYSdir) ; $(MAKE) RunMADef pre=$(pre)
9cc17c
 
9cc17c
 IRunMMDef :
9cc17c
+ifndef ATL_NOTUNE
9cc17c
 	cd $(MMTdir) ; $(MAKE) RunMMDef pre=$(pre)
9cc17c
+endif
9cc17c
 	cd $(MMTdir) ; ./xemit_mm  -p $(pre) -R -2
9cc17c
 	cd $(MMTdir) ; $(MAKE) install pre=$(pre)
9cc17c
 IKillL1 : force_build
9cc17c
@@ -303,22 +305,42 @@ INSTALL_LOG/$(pre)bestTT_$(nb)x$(nb)x$(nb) : \
9cc17c
 	cp $(MMTdir)/res/$(pre)bestTT_$(nb)x$(nb)x$(nb) INSTALL_LOG/.
9cc17c
 
9cc17c
 $(R1Tdir)/res/$(pre)R2K.sum : $(R1Tdir)/res/$(pre)R1K.sum force_build
9cc17c
+ifdef ATL_NOTUNE
9cc17c
+	cd $(R1Tdir) ; $(MAKE) $(pre)r2install
9cc17c
+else
9cc17c
 	cd $(R1Tdir) ; $(MAKE) res/$(pre)R2K.sum pre=$(pre)
9cc17c
+endif
9cc17c
 $(R1Tdir)/res/$(pre)R1K.sum : force_build
9cc17c
+ifdef ATL_NOTUNE
9cc17c
+	cd $(R1Tdir) ; $(MAKE) $(pre)r1install
9cc17c
+else
9cc17c
 	cd $(R1Tdir) ; $(MAKE) res/$(pre)R1K.sum pre=$(pre)
9cc17c
+endif
9cc17c
 INSTALL_LOG/$(pre)R1K.sum : $(R1Tdir)/res/$(pre)R1K.sum
9cc17c
 	cp $(R1Tdir)/res/$(pre)R1K.sum INSTALL_LOG/.
9cc17c
 INSTALL_LOG/$(pre)R2K.sum : INSTALL_LOG/$(pre)R1K.sum \
9cc17c
    $(R1Tdir)/res/$(pre)R2K.sum
9cc17c
 	cp $(R1Tdir)/res/$(pre)R2K.sum INSTALL_LOG/.
9cc17c
+ifndef ATL_NOTUNE
9cc17c
 	cd $(R1Tdir) ; $(MAKE) $(pre)nxtune
9cc17c
+else
9cc17c
+	cd $(BLDdir)/src/blas/reference/level2 ; make $(pre)lib
9cc17c
+endif
9cc17c
 
9cc17c
 $(MVTdir)/res/$(pre)MVNK.sum : force_build
9cc17c
+ifdef ATL_NOTUNE
9cc17c
+	cd $(MVTdir) ; $(MAKE) $(pre)mvninstall
9cc17c
+else
9cc17c
 	cd $(MVTdir) ; $(MAKE) res/$(pre)MVNK.sum pre=$(pre)
9cc17c
+endif
9cc17c
 INSTALL_LOG/$(pre)MVNK.sum : $(MVTdir)/res/$(pre)MVNK.sum
9cc17c
 	cp $(MVTdir)/res/$(pre)MVNK.sum INSTALL_LOG/.
9cc17c
 $(MVTdir)/res/$(pre)MVTK.sum : force_build
9cc17c
+ifdef ATL_NOTUNE
9cc17c
+	cd $(MVTdir) ; $(MAKE) $(pre)mvtinstall
9cc17c
+else
9cc17c
 	cd $(MVTdir) ; $(MAKE) res/$(pre)MVTK.sum pre=$(pre)
9cc17c
+endif
9cc17c
 INSTALL_LOG/$(pre)MVTK.sum : $(MVTdir)/res/$(pre)MVTK.sum
9cc17c
 	cp $(MVTdir)/res/$(pre)MVTK.sum INSTALL_LOG/.
9cc17c
 
9cc17c
diff --git a/makes/Make.l3tune b/makes/Make.l3tune
9cc17c
index eaf7d7d..cd7f5f1 100644
9cc17c
--- a/makes/Make.l3tune
9cc17c
+++ b/makes/Make.l3tune
9cc17c
@@ -118,6 +118,7 @@ res/atlas_strsmXover.h :
9cc17c
 	cp $(strsmXover) res/.
9cc17c
 
9cc17c
 stsmfc :
9cc17c
+ifndef ATL_NOTUNE
9cc17c
 	rm -f $(strsmXover)
9cc17c
 	cd $(L3Bdir) ; $(MAKE) slib
9cc17c
 	$(MAKE) xstsmfc2 pre=s typ=SREAL side=$(side) uplo=Upper_ \
9cc17c
@@ -128,6 +129,7 @@ stsmfc :
9cc17c
                 tran=NoTranspose_ diag=$(diag)
9cc17c
 	$(MAKE) xstsmfc2 pre=s typ=SREAL side=$(side) uplo=Lower_ \
9cc17c
                 tran=Transpose_ diag=$(diag)
9cc17c
+endif
9cc17c
 	cd $(L3Bdir) ; $(MAKE) slib
9cc17c
 dtrsmXover = $(INCAdir)/atlas_dtrsmXover.h
9cc17c
 
9cc17c
@@ -138,6 +140,7 @@ res/atlas_dtrsmXover.h :
9cc17c
 	cp $(dtrsmXover) res/.
9cc17c
 
9cc17c
 dtsmfc :
9cc17c
+ifndef ATL_NOTUNE
9cc17c
 	rm -f $(dtrsmXover)
9cc17c
 	cd $(L3Bdir) ; $(MAKE) dlib
9cc17c
 	$(MAKE) xdtsmfc2 pre=d typ=DREAL side=$(side) uplo=Upper_ \
9cc17c
@@ -148,6 +151,7 @@ dtsmfc :
9cc17c
                 tran=NoTranspose_ diag=$(diag)
9cc17c
 	$(MAKE) xdtsmfc2 pre=d typ=DREAL side=$(side) uplo=Lower_ \
9cc17c
                 tran=Transpose_ diag=$(diag)
9cc17c
+endif
9cc17c
 	cd $(L3Bdir) ; $(MAKE) dlib
9cc17c
 qtrsmXover = $(INCAdir)/atlas_qtrsmXover.h
9cc17c
 
9cc17c
@@ -158,6 +162,7 @@ res/atlas_qtrsmXover.h :
9cc17c
 	cp $(qtrsmXover) res/.
9cc17c
 
9cc17c
 qtsmfc :
9cc17c
+ifndef ATL_NOTUNE
9cc17c
 	rm -f $(qtrsmXover)
9cc17c
 	cd $(L3Bdir) ; $(MAKE) qlib
9cc17c
 	$(MAKE) xqtsmfc2 pre=q typ=QREAL side=$(side) uplo=Upper_ \
9cc17c
@@ -168,6 +173,7 @@ qtsmfc :
9cc17c
                 tran=NoTranspose_ diag=$(diag)
9cc17c
 	$(MAKE) xqtsmfc2 pre=q typ=QREAL side=$(side) uplo=Lower_ \
9cc17c
                 tran=Transpose_ diag=$(diag)
9cc17c
+endif
9cc17c
 	cd $(L3Bdir) ; $(MAKE) qlib
9cc17c
 
9cc17c
 $(pre)tsmfc.o : force_build
9cc17c
diff --git a/makes/Make.sysinfo b/makes/Make.sysinfo
9cc17c
index 2b7dfdc..8e5dab2 100644
9cc17c
--- a/makes/Make.sysinfo
9cc17c
+++ b/makes/Make.sysinfo
9cc17c
@@ -5,6 +5,7 @@ maxlat=6
9cc17c
 mflop=200
9cc17c
 flags=
9cc17c
 
9cc17c
+ifndef ATL_NOTUNE
9cc17c
 sTestFlags : force_build
9cc17c
 	$(MAKE) srbob `cat res/sBEST` pre='s' type=float
9cc17c
 
9cc17c
@@ -85,12 +86,14 @@ RunLamch : xemit_lamch
9cc17c
 	cp res/atlas_?lamch.h $(INCAdir)/.
9cc17c
 RunTyp: xemit_typ
9cc17c
 	$(ATLRUN) $(SYSdir) xemit_typ > $(INCAdir)/atlas_type.h
9cc17c
+endif
9cc17c
 
9cc17c
 xemit_buildinfo : emit_buildinfo.o
9cc17c
 	$(XCC) $(XCCFLAGS) -o $@ emit_buildinfo.o
9cc17c
 xsyssum : GetSysSum.o
9cc17c
 	$(XCC) $(XCCFLAGS) -o $@ GetSysSum.o
9cc17c
 
9cc17c
+ifndef ATL_NOTUNE
9cc17c
 xL1 : time.o L1CacheSize.o
9cc17c
 	$(KC) $(KCFLAGS) -o $@ L1CacheSize.o time.o
9cc17c
 
9cc17c
@@ -125,6 +128,7 @@ smatime.o : $(mySRCdir)/matime.c
9cc17c
 	$(KC) -c $(KCFLAGS) -DSREAL $(mySRCdir)/matime.c
9cc17c
 xmasrch : $(mySRCdir)/masrch.c
9cc17c
 	$(XCC) $(XCCFLAGS) -o $@ $(mySRCdir)/masrch.c
9cc17c
+endif
9cc17c
 
9cc17c
 ATL_cputime.c : 
9cc17c
 	cp $(mySRCdir)/ATL_cputime.c .
9cc17c
@@ -143,6 +147,8 @@ emit_buildinfo.o : $(mySRCdir)/emit_buildinfo.c
9cc17c
 	$(XCC) -c $(XCCFLAGS) $(mySRCdir)/emit_buildinfo.c
9cc17c
 GetSysSum.o : $(INCAdir)/atlas_type.h $(mySRCdir)/GetSysSum.c
9cc17c
 	$(XCC) -c $(XCCFLAGS) $(mySRCdir)/GetSysSum.c
9cc17c
+
9cc17c
+ifndef ATL_NOTUNE
9cc17c
 time.o : $(mySRCdir)/time.c
9cc17c
 	$(KC) -c $(KCFLAGS) -I./ $(mySRCdir)/time.c
9cc17c
 emit_lamch.o : $(mySRCdir)/emit_lamch.c
9cc17c
@@ -155,7 +161,7 @@ findNT.o : $(mySRCdir)/findNT.c
9cc17c
 	$(KC) -c $(KCFLAGS) $(mySRCdir)/findNT.c
9cc17c
 tlb.o : $(mySRCdir)/tlb.c
9cc17c
 	$(KC) -c $(KCFLAGS) $(mySRCdir)/tlb.c
9cc17c
-
9cc17c
+endif
9cc17c
 
9cc17c
 
9cc17c
 force_build :
9cc17c
-- 
9cc17c
2.23.0
9cc17c