1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
Description: Adapt build system for the absence of lapack-netlib/ directory.
Instead use the binary provided by package liblapack-pic, stripping from it the
symbols that are overriden by OpenBLAS.
Author: Sébastien Villemot <sebastien@debian.org>
Forwarded: not-needed
Last-Update: 2014-08-05
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/Makefile
+++ b/Makefile
@@ -201,64 +201,14 @@ hpl_p :
fi; \
done
-ifeq ($(NO_LAPACK), 1)
netlib :
+ mkdir lapack-netlib
+ cd lapack-netlib && ar -x /usr/lib/lapack/liblapack_pic.a
+ make -C interface delete-duplicate-lapack-objects
+ ar -ru $(LIBNAME) lapack-netlib/*
-else
-netlib : lapack_prebuild
-ifndef NOFORTRAN
- @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapacklib
- @$(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib
-endif
-ifndef NO_LAPACKE
- @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapackelib
-endif
-endif
-
-prof_lapack : lapack_prebuild
- @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapack_prof
-
-lapack_prebuild :
-ifndef NOFORTRAN
- -@echo "FORTRAN = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "OPTS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "POPTS = $(LAPACK_FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "NOOPT = -O0 $(LAPACK_NOOPT)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "PNOOPT = $(LAPACK_FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "LOADOPTS = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "override CFLAGS = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "ARCH = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "ARCHFLAGS = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "TMGLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "BLASLIB = ../../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "LAPACKELIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "SUFFIX = $(SUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "PSUFFIX = $(PSUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "CEXTRALIB = $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
-ifeq ($(F_COMPILER), GFORTRAN)
- -@echo "TIMER = INT_ETIME" >> $(NETLIB_LAPACK_DIR)/make.inc
-ifdef SMP
-ifeq ($(OSNAME), WINNT)
- -@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
-else
- -@echo "LOADER = $(FC) -pthread" >> $(NETLIB_LAPACK_DIR)/make.inc
-endif
-else
- -@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
-endif
-else
- -@echo "TIMER = NONE" >> $(NETLIB_LAPACK_DIR)/make.inc
- -@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
-endif
-ifeq ($(BUILD_LAPACK_DEPRECATED), 1)
- -@echo "BUILD_DEPRECATED = 1" >> $(NETLIB_LAPACK_DIR)/make.inc
-endif
- -@cat make.inc >> $(NETLIB_LAPACK_DIR)/make.inc
-endif
+clean::
+ rm -rf lapack-netlib
large.tgz :
ifndef NOFORTRAN
@@ -323,9 +273,5 @@ ifeq ($(OSNAME), Darwin)
@rm -rf getarch.dSYM getarch_2nd.dSYM
endif
@rm -f Makefile.conf config.h Makefile_kernel.conf config_kernel.h st* *.dylib
- @touch $(NETLIB_LAPACK_DIR)/make.inc
- @$(MAKE) -C $(NETLIB_LAPACK_DIR) clean
- @rm -f $(NETLIB_LAPACK_DIR)/make.inc $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling.h
@rm -f *.grd Makefile.conf_last config_last.h
- @(cd $(NETLIB_LAPACK_DIR)/TESTING && rm -f x* *.out testing_results.txt)
@echo Done.
--- a/Makefile.system
+++ b/Makefile.system
@@ -9,8 +9,6 @@ ifndef TOPDIR
TOPDIR = .
endif
-NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-netlib
-
# Default C compiler
# - Only set if not specified on the command line or inherited from the environment.
# - CC is an implicit variable so neither '?=' or 'ifndef' can be used.
--- a/interface/Makefile
+++ b/interface/Makefile
@@ -2137,3 +2137,8 @@ cblas_cgeadd.$(SUFFIX) cblas_cgeadd.$(PS
cblas_zgeadd.$(SUFFIX) cblas_zgeadd.$(PSUFFIX) : zgeadd.c
$(CC) -c $(CFLAGS) -DCBLAS $< -o $(@F)
+# The list of symbols to be removed can be seen in the diff between LAPACK's
+# original SRC/Makefile and the version of that same file that is included in
+# OpenBLAS (unfiltered) tarball
+delete-duplicate-lapack-objects:
+ cd ../lapack-netlib && rm $(SLAPACKOBJS) $(DLAPACKOBJS) $(CLAPACKOBJS) $(ZLAPACKOBJS) lsame.o xerbla.o
--- a/Makefile.install
+++ b/Makefile.install
@@ -46,14 +46,6 @@ ifndef NO_CBLAS
@sed 's/common/openblas_config/g' cblas.h > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h"
endif
-ifndef NO_LAPACKE
- @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
- @-install -pm644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h"
- @-install -pm644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_config.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h"
- @-install -pm644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_mangling_with_flags.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h"
- @-install -pm644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_utils.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h"
-endif
-
#for install static library
ifndef NO_STATIC
@echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|