Commit f7ff558e authored by Roman Yurchak's avatar Roman Yurchak Committed by GitHub

Merge pull request #238 from rth/blas-lapack

Package BLAS / CLAPACK
parents a954de10 93ada69b
......@@ -22,4 +22,6 @@ ccache
/six/six-1.11.0
/lz4/lz4-1.8.3
CLAPACK/CLAPACK-WA
CLAPACK/clapack.tgz
*.egg-info/
PYODIDE_ROOT=$(abspath ..)
include ../Makefile.envs
CLAPACK_VERSION=3.2.1
ROOT=$(abspath .)
SRC=$(ROOT)/CLAPACK-WA
all: $(SRC)/lapack_WA.bc
clean:
rm -rf CLAPACK-WA
$(SRC)/lapack_WA.bc: $(SRC)/Makefile
# We build BLAS/LAPACK only for target.
# On host we include -LCLAPACK-WA path which has no effect on host.
# On target it gets rewritten by pywasmcross to the full patch of
# blas_WA.bc, lapack_WA.bc which are linked statically in scipy
# in each module that needs them.
emmake make -C CLAPACK-WA/
$(SRC)/Makefile:
wget -q -O clapack.tgz http://www.netlib.org/clapack/clapack.tgz
md5sum --quiet --check checksums || (rm -f clapack.tgz; false)
tar xzf clapack.tgz
rm -rf $(SRC)
mv CLAPACK-$(CLAPACK_VERSION) $(SRC)
( \
cd $(SRC); \
(cat ../patches/*.patch | patch -p1) \
)
CFLAGS_OPT=-O2
LDFLAGS_OPT=-O2
040da31f3a7d4fbc9ac376c748d18d1f clapack.tgz
From a8b2d56cc6ff0a7d151cc9f6ef95a2cce9ca5f91 Mon Sep 17 00:00:00 2001
From: Adrian Bauer <agbauer@gmail.com>
Date: Tue, 19 Sep 2017 13:30:49 -0700
Subject: [PATCH 1/3] Awful hacks for WebAssembly build
---
BLAS/SRC/Makefile | 3 +-
BLAS/SRC/xerbla.c | 2 +
BLAS/WRAP/Makefile | 9 ++---
F2CLIBS/libf2c/Makefile | 25 ++++++-------
F2CLIBS/libf2c/arith.h | 0
Makefile | 10 ++---
SRC/Makefile | 3 +-
make.inc | 81 +++++++++++++++++++++++++++++++++++++++++
9 files changed, 109 insertions(+), 28 deletions(-)
create mode 100644 .gitignore
create mode 100644 F2CLIBS/libf2c/arith.h
create mode 100644 make.inc
diff --git a/BLAS/SRC/Makefile b/BLAS/SRC/Makefile
index 4835fd2..4a37c41 100644
--- a/BLAS/SRC/Makefile
+++ b/BLAS/SRC/Makefile
@@ -139,8 +139,7 @@ ALLOBJ=$(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
$(ZBLAS2) $(ZBLAS3) $(ALLBLAS)
$(BLASLIB): $(ALLOBJ)
- $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ)
- $(RANLIB) $@
+ $(LD) -o $@ $(ALLOBJ)
single: $(SBLAS1) $(ALLBLAS) $(SBLAS2) $(SBLAS3)
$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(SBLAS1) $(ALLBLAS) \
diff --git a/BLAS/SRC/xerbla.c b/BLAS/SRC/xerbla.c
index 2d7baf5..da1d7fd 100644
--- a/BLAS/SRC/xerbla.c
+++ b/BLAS/SRC/xerbla.c
@@ -10,6 +10,8 @@
http://www.netlib.org/f2c/libf2c.zip
*/
+#include <stdio.h>
+
#include "f2c.h"
#include "blaswrap.h"
diff --git a/BLAS/WRAP/Makefile b/BLAS/WRAP/Makefile
index d13fc97..16336da 100644
--- a/BLAS/WRAP/Makefile
+++ b/BLAS/WRAP/Makefile
@@ -5,12 +5,11 @@ include $(TOPDIR)/make.inc
# This is the makefile to create a wrapper for the CBLAS.
#######################################################################
-all: libcblaswr.a
+all: libcblaswr.bc
+
+libcblaswr.bc: cblaswr.o
+ $(LD) $(LDFLAGS) -o $@ $?
-libcblaswr.a: cblaswr.o
- $(ARCH) $(ARCHFLAGS) libcblaswr.a cblaswr.o
- $(RANLIB) libcblaswr.a
-
libfblaswr.a: fblaswr.o
$(ARCH) $(ARCHFLAGS) libfblaswr.a fblaswr.o
$(RANLIB) libfblaswr.a
diff --git a/F2CLIBS/libf2c/Makefile b/F2CLIBS/libf2c/Makefile
index 57eff0d..d9a42da 100644
--- a/F2CLIBS/libf2c/Makefile
+++ b/F2CLIBS/libf2c/Makefile
@@ -20,14 +20,13 @@ include $(TOPDIR)/make.inc
# compile, then strip unnecessary symbols
.c.o:
$(CC) -c -DSkip_f2c_Undefs $(CFLAGS) $*.c
- ld -r -x -o $*.xxx $*.o
- mv $*.xxx $*.o
+
## Under Solaris (and other systems that do not understand ld -x),
## omit -x in the ld line above.
## If your system does not have the ld command, comment out
## or remove both the ld and mv lines above.
-MISC = f77vers.o i77vers.o main.o s_rnge.o abort_.o exit_.o getarg_.o iargc_.o\
+MISC = f77vers.o i77vers.o s_rnge.o abort_.o exit_.o getarg_.o iargc_.o\
getenv_.o signal_.o s_stop.o s_paus.o system_.o cabs.o ctype.o\
derf_.o derfc_.o erf_.o erfc_.o sig_die.o uninit.o
POW = pow_ci.o pow_dd.o pow_di.o pow_hh.o pow_ii.o pow_ri.o pow_zi.o pow_zz.o
@@ -69,11 +68,10 @@ TIME = dtime_.o etime_.o
OFILES = $(MISC) $(POW) $(CX) $(DCX) $(REAL) $(DBL) $(INT) \
$(HALF) $(CMP) $(EFL) $(CHAR) $(I77) $(TIME)
-all: f2c.h signal1.h sysdep1.h libf2c.a clapack_install
+all: f2c.h signal1.h sysdep1.h libf2c.bc clapack_install
-libf2c.a: $(OFILES)
- ar r libf2c.a $?
- -ranlib libf2c.a
+libf2c.bc: $(OFILES)
+ $(LD) $(LDFLAGS) -o libf2c.bc $?
## Shared-library variant: the following rule works on Linux
## systems. Details are system-dependent. Under Linux, -fPIC
@@ -82,7 +80,7 @@ libf2c.a: $(OFILES)
## of "cc -shared".
libf2c.so: $(OFILES)
- cc -shared -o libf2c.so $(OFILES)
+ $(LD) $(LDFLAGS) -shared -o libf2c.so $(OFILES)
### If your system lacks ranlib, you don't need it; see README.
@@ -117,15 +115,14 @@ sysdep1.h: sysdep1.h0
#main.o: main.c
# $(CC) -c -Donexit=on_exit -DSkip_f2c_Undefs main.c
-install: libf2c.a
- cp libf2c.a $(LIBDIR)
- -ranlib $(LIBDIR)/libf2c.a
+install: libf2c.bc
+ cp libf2c.bc $(LIBDIR)
-clapack_install: libf2c.a
- mv libf2c.a ..
+clapack_install: libf2c.bc
+ mv libf2c.bc ..
clean:
- rm -f libf2c.a *.o arith.h signal1.h sysdep1.h
+ rm -f libf2c.bc *.o arith.h signal1.h sysdep1.h
backspac.o: fio.h
close.o: fio.h
diff --git a/F2CLIBS/libf2c/arith.h b/F2CLIBS/libf2c/arith.h
new file mode 100644
index 0000000..e69de29
diff --git a/Makefile b/Makefile
index 2875fbc..f3598b7 100644
--- a/Makefile
+++ b/Makefile
@@ -6,12 +6,12 @@
include make.inc
-all: f2clib lapack_install lib lapack_testing blas_testing
+all: f2clib cblaswrap lib
#all: f2clib lapack_install lib lapack_testing blas_testing variants_testing
#lib: lapacklib tmglib
#lib: f2clib lapacklib tmglib
-lib: f2clib blaslib variants lapacklib tmglib
+lib: f2clib blaslib lapacklib
clean: cleanlib cleantesting cleanblas_testing
@@ -23,12 +23,12 @@ blaslib:
( cd BLAS/SRC; $(MAKE) )
cblaswrap:
- ( cd BLAS/WRAP; $(MAKE) libcblaswr.a; cp libcblaswr.a ../.. )
+ ( cd BLAS/WRAP; $(MAKE) libcblaswr.bc; cp libcblaswr.bc ../.. )
fblaswrap:
( cd BLAS/WRAP; $(MAKE) libfblaswr.a; cp libfblaswr.a ../.. )
-lapacklib: lapack_install
+lapacklib:
( cd SRC; $(MAKE) )
variants:
@@ -56,7 +56,7 @@ variants_testing: lib
mv stest.out stest_lurec.out ; mv dtest.out dtest_lurec.out ; mv ctest.out ctest_lurec.out ; mv ztest.out ztest_lurec.out )
( cd TESTING ; rm -f xlintst* ; $(MAKE) VARLIB='SRC/VARIANTS/LIB/qrll.a' ; \
mv stest.out stest_qrll.out ; mv dtest.out dtest_qrll.out ; mv ctest.out ctest_qrll.out ; mv ztest.out ztest_qrll.out )
-
+
blas_testing:
( cd BLAS/TESTING; $(MAKE) -f Makeblat1 )
( cd BLAS; ./xblat1s > sblat1.out ; \
diff --git a/SRC/Makefile b/SRC/Makefile
index 223f4da..9df3e92 100644
--- a/SRC/Makefile
+++ b/SRC/Makefile
@@ -369,8 +369,7 @@ ALLOBJ=$(SLASRC) $(DLASRC) $(CLASRC) $(ZLASRC) $(SCLAUX) $(DZLAUX) \
$(ALLAUX)
../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ)
- $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ)
- $(RANLIB) $@
+ $(CC) -o $@ $(ALLOBJ) $(ALLXOBJ)
single: $(SLASRC) $(ALLAUX) $(SCLAUX)
$(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(ALLAUX) \
diff --git a/make.inc b/make.inc
new file mode 100644
index 0000000..7ba8d43
--- /dev/null
+++ b/make.inc
@@ -0,0 +1,81 @@
+# -*- Makefile -*-
+####################################################################
+# LAPACK make include file. #
+# LAPACK, Version 3.2.1 #
+# June 2009 #
+####################################################################
+#
+# See the INSTALL/ directory for more examples.
+#
+SHELL = /bin/sh
+#
+# The machine (platform) identifier to append to the library names
+#
+# WA for WebAssembly
+PLAT = _WA
+#
+# Modify the FORTRAN and OPTS definitions to refer to the
+# compiler and desired compiler options for your machine. NOOPT
+# refers to the compiler options desired when NO OPTIMIZATION is
+# selected. Define LOADER and LOADOPTS to refer to the loader
+# and desired load options for your machine.
+#
+#######################################################
+# This is used to compile C libary
+#CC = gcc # inherit $CC from emmake
+# if no wrapping of the blas library is needed, uncomment next line
+#CC = gcc -DNO_BLAS_WRAP
+CFLAGS = -O3 -I$(TOPDIR)/INCLUDE
+LDFLAGS = -O3
+LOADER = $(CC)
+LOADOPTS =
+NOOPT = -O0 -I$(TOPDIR)/INCLUDE
+DRVCFLAGS = $(CFLAGS)
+F2CCFLAGS = $(CFLAGS)
+#######################################################################
+
+#
+# Timer for the SECOND and DSECND routines
+#
+# Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
+# TIMER = EXT_ETIME
+# For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
+# TIMER = EXT_ETIME_
+# For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
+# TIMER = INT_ETIME
+# If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
+# SECOND and DSECND will use a call to the Fortran standard INTERNAL FUNCTION CPU_TIME
+TIMER = INT_CPU_TIME
+# If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
+# TIMER = NONE
+#
+# The archiver and the flag(s) to use when building archive (library)
+# If you system has no ranlib, set RANLIB = echo.
+#
+ARCH = ar
+ARCHFLAGS= cr
+RANLIB = ranlib
+#
+# The location of BLAS library for linking the testing programs.
+# The target's machine-specific, optimized BLAS library should be
+# used whenever possible.
+#
+BLASLIB = ../../blas$(PLAT).bc
+#
+# Location of the extended-precision BLAS (XBLAS) Fortran library
+# used for building and testing extended-precision routines. The
+# relevant routines will be compiled and XBLAS will be linked only if
+# USEXBLAS is defined.
+#
+# USEXBLAS = Yes
+XBLASLIB =
+# XBLASLIB = -lxblas
+#
+# Names of generated libraries.
+#
+LAPACKLIB = lapack$(PLAT).bc
+F2CLIB = ../../F2CLIBS/libf2c.bc
+TMGLIB = tmglib$(PLAT).bc
+EIGSRCLIB = eigsrc$(PLAT).bc
+LINSRCLIB = linsrc$(PLAT).bc
+F2CLIB = ../../F2CLIBS/libf2c.bc
--
2.19.0
From e88b053d3aa3a609990560a4a7c27b0a55d74730 Mon Sep 17 00:00:00 2001
From: Roman Yurchak <rth.yurchak@pm.me>
Date: Wed, 17 Oct 2018 18:23:00 +0200
Subject: [PATCH 2/3] Add -fPIC flag and skip cblaswrap
---
BLAS/SRC/Makefile | 2 +-
Makefile | 4 ++--
SRC/Makefile | 2 +-
make.inc | 3 +--
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/BLAS/SRC/Makefile b/BLAS/SRC/Makefile
index 4a37c41..e52e4ed 100644
--- a/BLAS/SRC/Makefile
+++ b/BLAS/SRC/Makefile
@@ -139,7 +139,7 @@ ALLOBJ=$(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
$(ZBLAS2) $(ZBLAS3) $(ALLBLAS)
$(BLASLIB): $(ALLOBJ)
- $(LD) -o $@ $(ALLOBJ)
+ $(LD) $(CFLAGS) -o $@ $(ALLOBJ)
single: $(SBLAS1) $(ALLBLAS) $(SBLAS2) $(SBLAS3)
$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(SBLAS1) $(ALLBLAS) \
diff --git a/Makefile b/Makefile
index f3598b7..b3467a6 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@
include make.inc
-all: f2clib cblaswrap lib
+all: f2clib lib
#all: f2clib lapack_install lib lapack_testing blas_testing variants_testing
#lib: lapacklib tmglib
@@ -95,4 +95,4 @@ cleantesting:
( cd TESTING; rm -f xlin* xeig* )
cleanall: cleanlib cleanblas_testing cleantesting
- rm -f *.a TESTING/*.out INSTALL/test* BLAS/*.out
+ rm -f *.bc TESTING/*.out INSTALL/test* BLAS/*.out
diff --git a/SRC/Makefile b/SRC/Makefile
index 9df3e92..7491963 100644
--- a/SRC/Makefile
+++ b/SRC/Makefile
@@ -369,7 +369,7 @@ ALLOBJ=$(SLASRC) $(DLASRC) $(CLASRC) $(ZLASRC) $(SCLAUX) $(DZLAUX) \
$(ALLAUX)
../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ)
- $(CC) -o $@ $(ALLOBJ) $(ALLXOBJ)
+ $(CC) $(CFLAGS) -o $@ $(ALLOBJ) $(ALLXOBJ)
single: $(SLASRC) $(ALLAUX) $(SCLAUX)
$(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(ALLAUX) \
diff --git a/make.inc b/make.inc
index 7ba8d43..567c737 100644
--- a/make.inc
+++ b/make.inc
@@ -25,7 +25,7 @@ PLAT = _WA
#CC = gcc # inherit $CC from emmake
# if no wrapping of the blas library is needed, uncomment next line
#CC = gcc -DNO_BLAS_WRAP
-CFLAGS = -O3 -I$(TOPDIR)/INCLUDE
+CFLAGS = -O3 -I$(TOPDIR)/INCLUDE -fPIC -DNO_BLAS_WRAP
LDFLAGS = -O3
LOADER = $(CC)
LOADOPTS =
@@ -78,4 +78,3 @@ F2CLIB = ../../F2CLIBS/libf2c.bc
TMGLIB = tmglib$(PLAT).bc
EIGSRCLIB = eigsrc$(PLAT).bc
LINSRCLIB = linsrc$(PLAT).bc
-F2CLIB = ../../F2CLIBS/libf2c.bc
--
2.19.0
From 8aae131e7bf4cfe3979edbbdce21803e1c5f9ac1 Mon Sep 17 00:00:00 2001
From: Roman Yurchak <rth.yurchak@pm.me>
Date: Thu, 25 Oct 2018 11:50:14 +0200
Subject: [PATCH 3/3] Remove redundant symbols
---
Makefile | 9 +++++++++
SRC/Makefile | 30 ++++++++++++++++++++----------
make.inc | 6 +-----
3 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/Makefile b/Makefile
index b3467a6..83baba5 100644
--- a/Makefile
+++ b/Makefile
@@ -5,6 +5,15 @@
#
include make.inc
+include ../Makefile.envs
+
+TOPDIR=$(abspath .)
+
+CFLAGS = $(CFLAGS_OPT) -I$(TOPDIR)/INCLUDE -fPIC -DNO_BLAS_WRAP
+LDFLAGS = $(LDFLAGS_OPT) -fPIC
+DRVCFLAGS = $(CFLAGS)
+F2CCFLAGS = $(CFLAGS)
+
all: f2clib lib
#all: f2clib lapack_install lib lapack_testing blas_testing variants_testing
diff --git a/SRC/Makefile b/SRC/Makefile
index 7491963..0cc1cda 100644
--- a/SRC/Makefile
+++ b/SRC/Makefile
@@ -50,9 +50,9 @@ include $(TOPDIR)/make.inc
#
#######################################################################
-ALLAUX = maxloc.o ilaenv.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o \
+ALLAUX = maxloc.o ilaenv.o ieeeck.o lsamen.o iparmq.o \
ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \
- ../INSTALL/ilaver.o ../INSTALL/lsame.o
+ ../INSTALL/ilaver.o
ALLXAUX =
@@ -90,11 +90,20 @@ DZLAUX = \
dsteqr.o dsterf.o dlaisnan.o disnan.o \
../INSTALL/dlamch.o ../INSTALL/dsecnd.o
+# We remove symbols that are included in scipy/linalg/src/lapack_deprecations/
+# cgegv.f dgegv.f sgegv.f zgegv.f
+# to avoid "symbol multiply defined" errors when linking statically
+# We also remove
+# clahqr, dlahqr, slahqr, zlahqr
+# to avoid duplicate symbol error when building scipy 0.17.1
+# scipy/sparse/linalg/eigen/arpack/_arpack.wasm
+
+
SLASRC = \
sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \
sgbsvx.o sgbtf2.o sgbtrf.o sgbtrs.o sgebak.o sgebal.o sgebd2.o \
sgebrd.o sgecon.o sgeequ.o sgees.o sgeesx.o sgeev.o sgeevx.o \
- sgegs.o sgegv.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o \
+ sgegs.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o \
sgels.o sgelsd.o sgelss.o sgelsx.o sgelsy.o sgeql2.o sgeqlf.o \
sgeqp3.o sgeqpf.o sgeqr2.o sgeqrf.o sgerfs.o sgerq2.o sgerqf.o \
sgesc2.o sgesdd.o sgesv.o sgesvd.o sgesvx.o sgetc2.o sgetf2.o \
@@ -104,7 +113,7 @@ SLASRC = \
sggrqf.o sggsvd.o sggsvp.o sgtcon.o sgtrfs.o sgtsv.o \
sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o \
shsein.o shseqr.o slabrd.o slacon.o slacn2.o \
- slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o slahqr.o \
+ slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o \
slahrd.o slahr2.o slaic1.o slaln2.o slals0.o slalsa.o slalsd.o \
slangb.o slange.o slangt.o slanhs.o slansb.o slansp.o \
slansy.o slantb.o slantp.o slantr.o slanv2.o \
@@ -152,11 +161,12 @@ SXLASRC = sgesvxx.o sgerfsx.o sla_gerfsx_extended.o sla_geamv.o \
sla_gbamv.o sla_gbrcond.o sla_gbrpvgrw.o sla_lin_berr.o slarscl2.o \
slascl2.o sla_wwaddw.o
+
CLASRC = \
cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \
cgbtf2.o cgbtrf.o cgbtrs.o cgebak.o cgebal.o cgebd2.o cgebrd.o \
cgecon.o cgeequ.o cgees.o cgeesx.o cgeev.o cgeevx.o \
- cgegs.o cgegv.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o \
+ cgegs.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o \
cgels.o cgelsd.o cgelss.o cgelsx.o cgelsy.o cgeql2.o cgeqlf.o cgeqp3.o \
cgeqpf.o cgeqr2.o cgeqrf.o cgerfs.o cgerq2.o cgerqf.o \
cgesc2.o cgesdd.o cgesv.o cgesvd.o cgesvx.o cgetc2.o cgetf2.o cgetrf.o \
@@ -176,7 +186,7 @@ CLASRC = \
clacgv.o clacon.o clacn2.o clacp2.o clacpy.o clacrm.o clacrt.o cladiv.o \
claed0.o claed7.o claed8.o \
claein.o claesy.o claev2.o clags2.o clagtm.o \
- clahef.o clahqr.o \
+ clahef.o \
clahrd.o clahr2.o claic1.o clals0.o clalsa.o clalsd.o clangb.o clange.o clangt.o \
clanhb.o clanhe.o \
clanhp.o clanhs.o clanht.o clansb.o clansp.o clansy.o clantb.o \
@@ -226,7 +236,7 @@ DLASRC = \
dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \
dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o \
dgebrd.o dgecon.o dgeequ.o dgees.o dgeesx.o dgeev.o dgeevx.o \
- dgegs.o dgegv.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o \
+ dgegs.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o \
dgels.o dgelsd.o dgelss.o dgelsx.o dgelsy.o dgeql2.o dgeqlf.o \
dgeqp3.o dgeqpf.o dgeqr2.o dgeqrf.o dgerfs.o dgerq2.o dgerqf.o \
dgesc2.o dgesdd.o dgesv.o dgesvd.o dgesvx.o dgetc2.o dgetf2.o \
@@ -236,7 +246,7 @@ DLASRC = \
dggrqf.o dggsvd.o dggsvp.o dgtcon.o dgtrfs.o dgtsv.o \
dgtsvx.o dgttrf.o dgttrs.o dgtts2.o dhgeqz.o \
dhsein.o dhseqr.o dlabrd.o dlacon.o dlacn2.o \
- dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o dlahqr.o \
+ dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o \
dlahrd.o dlahr2.o dlaic1.o dlaln2.o dlals0.o dlalsa.o dlalsd.o \
dlangb.o dlange.o dlangt.o dlanhs.o dlansb.o dlansp.o \
dlansy.o dlantb.o dlantp.o dlantr.o dlanv2.o \
@@ -290,7 +300,7 @@ ZLASRC = \
zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \
zgbtf2.o zgbtrf.o zgbtrs.o zgebak.o zgebal.o zgebd2.o zgebrd.o \
zgecon.o zgeequ.o zgees.o zgeesx.o zgeev.o zgeevx.o \
- zgegs.o zgegv.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o \
+ zgegs.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o \
zgels.o zgelsd.o zgelss.o zgelsx.o zgelsy.o zgeql2.o zgeqlf.o zgeqp3.o \
zgeqpf.o zgeqr2.o zgeqrf.o zgerfs.o zgerq2.o zgerqf.o \
zgesc2.o zgesdd.o zgesv.o zgesvd.o zgesvx.o zgetc2.o zgetf2.o zgetrf.o \
@@ -310,7 +320,7 @@ ZLASRC = \
zlacgv.o zlacon.o zlacn2.o zlacp2.o zlacpy.o zlacrm.o zlacrt.o zladiv.o \
zlaed0.o zlaed7.o zlaed8.o \
zlaein.o zlaesy.o zlaev2.o zlags2.o zlagtm.o \
- zlahef.o zlahqr.o \
+ zlahef.o \
zlahrd.o zlahr2.o zlaic1.o zlals0.o zlalsa.o zlalsd.o zlangb.o zlange.o \
zlangt.o zlanhb.o \
zlanhe.o \
diff --git a/make.inc b/make.inc
index 567c737..d010f57 100644
--- a/make.inc
+++ b/make.inc
@@ -21,19 +21,15 @@ PLAT = _WA
# and desired load options for your machine.
#
#######################################################
+
# This is used to compile C libary
#CC = gcc # inherit $CC from emmake
# if no wrapping of the blas library is needed, uncomment next line
#CC = gcc -DNO_BLAS_WRAP
-CFLAGS = -O3 -I$(TOPDIR)/INCLUDE -fPIC -DNO_BLAS_WRAP
-LDFLAGS = -O3
LOADER = $(CC)
LOADOPTS =
NOOPT = -O0 -I$(TOPDIR)/INCLUDE
-DRVCFLAGS = $(CFLAGS)
-F2CCFLAGS = $(CFLAGS)
#######################################################################
-
#
# Timer for the SECOND and DSECND routines
#
--
2.19.0
......@@ -5,7 +5,8 @@ FROM circleci/python:3.7.0-stretch
RUN sudo bash -c "echo \"deb http://ftp.us.debian.org/debian testing main contrib non-free\" >> /etc/apt/sources.list" \
&& sudo apt-get update \
# bzip2 and libgconf-2-4 are necessary for extracting firefox and running chrome, respectively
&& sudo apt-get install bzip2 libgconf-2-4 node-less cmake build-essential clang-format-6.0 uglifyjs chromium ccache libncurses6 \
&& sudo apt-get install bzip2 libgconf-2-4 node-less cmake build-essential clang-format-6.0 \
uglifyjs chromium ccache libncurses6 gfortran f2c \
&& sudo apt-get install -t testing g++-8 \
&& sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6 \
&& sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 --slave /usr/bin/g++ g++ /usr/bin/g++-8 \
......
......@@ -7,6 +7,7 @@ CPYTHONROOT=cpython
CPYTHONLIB=$(CPYTHONROOT)/installs/python-$(PYVERSION)/lib/python$(PYMINOR)
LZ4LIB=lz4/lz4-1.8.3/lib/liblz4.a
CLAPACK=CLAPACK/CLAPACK-WA/lapack_WA.bc
CC=emcc
CXX=em++
......@@ -61,8 +62,8 @@ all: build/pyodide.asm.js \
build/pyodide.asm.js: src/main.bc src/jsimport.bc src/jsproxy.bc src/js2python.bc \
src/pyimport.bc src/pyproxy.bc src/python2js.bc \
src/runpython.bc src/hiwire.bc
src/pyimport.bc src/pyproxy.bc src/python2js.bc \
src/runpython.bc src/hiwire.bc
[ -d build ] || mkdir build
$(CXX) -s EXPORT_NAME="'pyodide'" -o build/pyodide.asm.html $(filter %.bc,$^) \
$(LDFLAGS) -s FORCE_FILESYSTEM=1
......@@ -213,7 +214,11 @@ $(SIX_LIBS): $(CPYTHONLIB)
make -C six
build/packages.json: $(CPYTHONLIB)
$(CLAPACK): $(CPYTHONLIB)
make -C CLAPACK
build/packages.json: $(CPYTHONLIB) $(CLAPACK)
make -C packages
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment