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