Merge pull request #1985 from tonytheodore/openblas

openblas: update and replace reference blas/lapack
This commit is contained in:
Tony Theodore 2017-11-21 20:40:50 +11:00 committed by GitHub
commit 7c63f7e198
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 1207 additions and 140 deletions

View File

@ -1,18 +1,19 @@
From f33262c29c253608f57e91af0e96bdb7bfa3cc00 Mon Sep 17 00:00:00 2001
This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Timothy Gu <timothygu99@gmail.com>
Date: Sun, 19 Oct 2014 12:09:55 -0400
Subject: [PATCH] Don't export package
Subject: [PATCH 1/1] Don't export package
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
---
CMakeLists.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d0f2180..5ecba48 100644
index 1111111..2222222 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -402,7 +402,9 @@ install(TARGETS armadillo EXPORT ArmadilloLibraryDepends
@@ -444,7 +444,9 @@ install(TARGETS armadillo EXPORT ArmadilloLibraryDepends
# Export the package for use from the build-tree
# (this registers the build-tree with a global CMake-registry)
@ -23,6 +24,3 @@ index d0f2180..5ecba48 100644
## LOCAL FILES
# Create ArmadilloConfig.cmake file for the use from the build tree
--
1.9.1

View File

@ -4,12 +4,12 @@ PKG := armadillo
$(PKG)_WEBSITE := https://arma.sourceforge.io/
$(PKG)_DESCR := Armadillo C++ linear algebra library
$(PKG)_IGNORE :=
$(PKG)_VERSION := 7.960.1
$(PKG)_CHECKSUM := 57de6b9eb547f168e5dd2d2736c75b609bb2d1761120f608ff6530d7247082ff
$(PKG)_VERSION := 8.200.2
$(PKG)_CHECKSUM := 63845e36235f2bd78b4f6890fe5013b6ce51a4e92e3176b20bbc6631b340050a
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := https://$(SOURCEFORGE_MIRROR)/project/arma/$($(PKG)_FILE)
$(PKG)_DEPS := gcc blas lapack
$(PKG)_DEPS := gcc hdf5 openblas
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://sourceforge.net/projects/arma/files/' | \
@ -18,13 +18,25 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
mkdir '$(1)/build'
cd '$(1)/build' && '$(TARGET)-cmake' .. \
-DARMA_USE_WRAPPER=false
$(MAKE) -C '$(1)/build' -j '$(JOBS)' install VERBOSE=1
# build and install the library
cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)' \
-DDETECT_HDF5=ON \
-DARMA_USE_WRAPPER=ON
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install VERBOSE=1
# create pkg-config file
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
(echo 'Name: $(PKG)'; \
echo 'Version: $($(PKG)_VERSION)'; \
echo 'Description: $($(PKG)_DESCR)'; \
echo 'Requires: hdf5 openblas'; \
echo 'Libs: -larmadillo'; \
) > '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
# compile test
'$(TARGET)-g++' \
-W -Wall -Werror \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-armadillo.exe' \
-larmadillo -llapack -lblas -lgfortran -lquadmath
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
`'$(TARGET)-pkg-config' $(PKG) --cflags --libs`
endef

View File

@ -8,13 +8,16 @@ $(PKG)_CHECKSUM := ef7d775d380f255d1902bce374ff7c8a594846454fcaeae552292168af1ac
$(PKG)_SUBDIR := BLAS-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tgz
$(PKG)_URL := http://www.netlib.org/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
$(PKG)_DEPS := gcc openblas
$(PKG)_MESSAGE :=*** blas has been replaced by openblas ***
define $(PKG)_UPDATE
echo 1
echo 'Warning: blas has been replaced by openblas' >&2;
echo $(blas_VERSION)
endef
define $(PKG)_BUILD
define $(PKG)_DISABLED_BUILD
$(MAKE) -C '$(1)' -j '$(JOBS)' \
FORTRAN='$(TARGET)-gfortran' \
RANLIB='$(TARGET)-ranlib' \

View File

@ -9,13 +9,16 @@ $(PKG)_SUBDIR := CBLAS
$(PKG)_FILE := $(PKG).tgz
$(PKG)_URL := http://www.netlib.org/blas/blast-forum/$($(PKG)_FILE)
$(PKG)_URL_2 := https://ftp.eq.uc.pt/software/math/netlib/blas/blast-forum/$($(PKG)_FILE)
$(PKG)_DEPS := gcc blas
$(PKG)_DEPS := gcc openblas
$(PKG)_MESSAGE :=*** cblas has been replaced by openblas ***
define $(PKG)_UPDATE
echo 1
echo 'Warning: cblas has been replaced by openblas' >&2;
echo $(cblas_VERSION)
endef
define $(PKG)_BUILD
define $(PKG)_DISABLED_BUILD
$(SED) -i 's, make , $(MAKE) ,g' '$(1)/Makefile'
$(MAKE) -C '$(1)' -j '$(JOBS)' \
CBDIR='$(1)' \

View File

@ -65,11 +65,20 @@ define $(PKG)_BUILD
echo 'set(HDF5_CXX_COMPILER_EXECUTABLE $(PREFIX)/bin/$(TARGET)-h5c++)'; \
) > '$(CMAKE_TOOLCHAIN_DIR)/$(PKG).cmake'
## test hdf5
# create pkg-config file
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
(echo 'Name: $(PKG)'; \
echo 'Version: $($(PKG)_VERSION)'; \
echo 'Description: $($(PKG)_DESCR)'; \
echo 'Requires: zlib'; \
echo 'Libs: -lhdf5_hl -lhdf5'; \
) > '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
# compile test
'$(TARGET)-g++' \
-W -Wall -Werror -ansi -pedantic \
'$(PWD)/src/$(PKG)-test.cpp' -o '$(PREFIX)/$(TARGET)/bin/test-hdf5.exe' \
-lhdf5_hl -lhdf5 -lz
`'$(TARGET)-pkg-config' $(PKG) --cflags --libs`
# test cmake can find hdf5
mkdir '$(1).test-cmake'

View File

@ -8,7 +8,7 @@ $(PKG)_CHECKSUM := 50717621c5dfb5ed22f8492f8af32b17776e6e06641dfe3a3a8f82c8d353b
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := https://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc blas lapack fftw
$(PKG)_DEPS := gcc openblas fftw
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://sourceforge.net/projects/itpp/files/itpp/' | \
@ -20,8 +20,8 @@ define $(PKG)_BUILD
cd '$(BUILD_DIR)' && '$(TARGET)-cmake' '$(SOURCE_DIR)' \
-DITPP_SHARED_LIB=$(CMAKE_SHARED_BOOL) \
-DHTML_DOCS=OFF \
-DBLAS_LIBRARIES=-lblas \
-DLAPACK_LIBRARIES='-llapack -lgfortran -lquadmath'
-DBLAS_LIBRARIES="`'$(TARGET)-pkg-config' --libs openblas`" \
-DLAPACK_LIBRARIES="`'$(TARGET)-pkg-config' --libs openblas`"
$(MAKE) -C '$(BUILD_DIR)' -j $(JOBS)
$(MAKE) -C '$(BUILD_DIR)' -j 1 install

View File

@ -8,15 +8,16 @@ $(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tgz
$(PKG)_URL := http://www.netlib.org/$(PKG)/$($(PKG)_FILE)
$(PKG)_URL_2 := https://ftp.eq.uc.pt/software/math/netlib/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc cblas
$(PKG)_DEPS := gcc openblas
$(PKG)_MESSAGE :=*** lapack has been replaced by openblas ***
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.netlib.org/lapack/' | \
$(SED) -n 's_.*>LAPACK, version \([0-9]\.[0-9]\.[0-9]\).*_\1_ip' | \
head -1
echo 'Warning: lapack has been replaced by openblas' >&2;
echo $(lapack_VERSION)
endef
define $(PKG)_BUILD
define $(PKG)_DISABLED_BUILD
cd '$(1)' && '$(TARGET)-cmake' \
-DCMAKE_AR='$(PREFIX)/bin/$(TARGET)-ar' \
-DCMAKE_RANLIB='$(PREFIX)/bin/$(TARGET)-ranlib' \

View File

@ -9,7 +9,7 @@ $(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tgz
$(PKG)_URL := https://www.ics.forth.gr/~lourakis/$(PKG)/$($(PKG)_FILE)
$(PKG)_UA := MXE
$(PKG)_DEPS := gcc blas lapack libf2c
$(PKG)_DEPS := gcc openblas
define $(PKG)_UPDATE
$(WGET) -q -O- "https://www.ics.forth.gr/~lourakis/levmar/" | \
@ -18,12 +18,31 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
$(MAKE) -C '$(1)' -j '$(JOBS)' liblevmar.a \
$(MAKE) -C '$(SOURCE_DIR)' -j '$(JOBS)' liblevmar.a \
CC=$(TARGET)-gcc \
AR=$(TARGET)-ar \
RANLIB=$(TARGET)-ranlib
$(INSTALL) -m644 '$(1)/levmar.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/liblevmar.a' '$(PREFIX)/$(TARGET)/lib/'
endef
RANLIB=$(TARGET)-ranlib \
LAPACKLIBS="`'$(TARGET)-pkg-config' --libs openblas`"
$(INSTALL) -m644 '$(SOURCE_DIR)/levmar.h' '$(PREFIX)/$(TARGET)/include/'
$(if $(BUILD_STATIC),\
$(INSTALL) -m644 '$(SOURCE_DIR)/liblevmar.a' '$(PREFIX)/$(TARGET)/lib/' \
$(else), \
$(MAKE_SHARED_FROM_STATIC) '$(SOURCE_DIR)/liblevmar.a' \
`$(TARGET)-pkg-config --libs openblas`)
$(PKG)_BUILD_SHARED =
# create pkg-config file
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
(echo 'Name: $(PKG)'; \
echo 'Version: $($(PKG)_VERSION)'; \
echo 'Description: $($(PKG)_DESCR)'; \
echo 'Requires: openblas'; \
echo 'Libs: -llevmar'; \
) > '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
# compile test
'$(TARGET)-gcc' \
-W -Wall \
'$(SOURCE_DIR)/expfit.c' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
`'$(TARGET)-pkg-config' $(PKG) --cflags --libs` \
-Dsrandom=srand -Drandom=rand
endef

125
src/metis-1-fixes.patch Normal file
View File

@ -0,0 +1,125 @@
This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Mon, 20 Nov 2017 22:54:25 +1100
Subject: [PATCH 1/5] mingw-w64-does-not-have-sys-resource-h
taken from:
https://github.com/Alexpux/MINGW-packages/blob/484b873e8a1967b7809127682635888b7329417f/mingw-w64-metis/0001-mingw-w64-does-not-have-sys-resource-h.patch
diff --git a/GKlib/gk_arch.h b/GKlib/gk_arch.h
index 1111111..2222222 100644
--- a/GKlib/gk_arch.h
+++ b/GKlib/gk_arch.h
@@ -41,7 +41,9 @@
#endif
#include <inttypes.h>
#include <sys/types.h>
- #include <sys/resource.h>
+ #ifndef __MINGW32__
+ #include <sys/resource.h>
+ #endif
#include <sys/time.h>
#endif
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Mon, 20 Nov 2017 22:55:34 +1100
Subject: [PATCH 2/5] mingw-w64-do-not-use-reserved-double-underscored-names
taken from:
https://github.com/Alexpux/MINGW-packages/blob/484b873e8a1967b7809127682635888b7329417f/mingw-w64-metis/0002-mingw-w64-do-not-use-reserved-double-underscored-names.patch
diff --git a/GKlib/gk_getopt.h b/GKlib/gk_getopt.h
index 1111111..2222222 100644
--- a/GKlib/gk_getopt.h
+++ b/GKlib/gk_getopt.h
@@ -52,10 +52,10 @@ struct gk_option {
/* Function prototypes */
-extern int gk_getopt(int __argc, char **__argv, char *__shortopts);
-extern int gk_getopt_long(int __argc, char **__argv, char *__shortopts,
+extern int gk_getopt(int gk_argc, char **gk_argv, char *__shortopts);
+extern int gk_getopt_long(int gk_argc, char **gk_argv, char *__shortopts,
struct gk_option *__longopts, int *__longind);
-extern int gk_getopt_long_only (int __argc, char **__argv,
+extern int gk_getopt_long_only (int gk_argc, char **gk_argv,
char *__shortopts, struct gk_option *__longopts, int *__longind);
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Mon, 20 Nov 2017 22:58:20 +1100
Subject: [PATCH 3/5] WIN32-Install-RUNTIME-to-bin
taken from:
https://github.com/Alexpux/MINGW-packages/blob/484b873e8a1967b7809127682635888b7329417f/mingw-w64-metis/0003-WIN32-Install-RUNTIME-to-bin.patch
diff --git a/libmetis/CMakeLists.txt b/libmetis/CMakeLists.txt
index 1111111..2222222 100644
--- a/libmetis/CMakeLists.txt
+++ b/libmetis/CMakeLists.txt
@@ -8,9 +8,15 @@ if(UNIX)
target_link_libraries(metis m)
endif()
+if(WIN32)
+ set(RT_DEST bin)
+else()
+ set(RT_DEST lib)
+endif()
+
if(METIS_INSTALL)
install(TARGETS metis
LIBRARY DESTINATION lib
- RUNTIME DESTINATION lib
+ RUNTIME DESTINATION ${RT_DEST}
ARCHIVE DESTINATION lib)
endif()
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Mon, 20 Nov 2017 22:59:10 +1100
Subject: [PATCH 4/5] Fix-GKLIB_PATH-default-for-out-of-tree-builds
taken from:
https://github.com/Alexpux/MINGW-packages/blob/484b873e8a1967b7809127682635888b7329417f/mingw-w64-metis/0004-Fix-GKLIB_PATH-default-for-out-of-tree-builds.patch
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1111111..2222222 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 2.8)
project(METIS)
-set(GKLIB_PATH "GKlib" CACHE PATH "path to GKlib")
+set(GKLIB_PATH "${CMAKE_SOURCE_DIR}/GKlib" CACHE PATH "path to GKlib")
set(SHARED FALSE CACHE BOOL "build a shared library")
if(MSVC)
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Mon, 20 Nov 2017 23:05:12 +1100
Subject: [PATCH 5/5] disable programs
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1111111..2222222 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,4 +24,6 @@ include_directories(include)
# Recursively look for CMakeLists.txt in subdirs.
add_subdirectory("include")
add_subdirectory("libmetis")
-add_subdirectory("programs")
+if(BUILD_PROGRAMS)
+ add_subdirectory("programs")
+endif()

57
src/metis-test.cpp Normal file
View File

@ -0,0 +1,57 @@
/*
* This file is part of MXE. See LICENSE.md for licensing information.
*
* taken from: https://gist.github.com/erikzenker/c4dc42c8d5a8c1cd3e5a
*/
#include <cstddef> /* NULL */
#include <metis.h>
#include <iostream>
// Install metis from:
// http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz
// Build with
// g++ metis.cc -lmetis
int main(){
idx_t nVertices = 6;
idx_t nEdges = 7;
idx_t nWeights = 1;
idx_t nParts = 2;
idx_t objval;
idx_t part[nVertices];
// Indexes of starting points in adjacent array
idx_t xadj[nVertices+1] = {0,2,5,7,9,12,14};
// Adjacent vertices in consecutive index order
idx_t adjncy[2 * nEdges] = {1,3,0,4,2,1,5,0,4,3,1,5,4,2};
// Weights of vertices
// if all weights are equal then can be set to NULL
idx_t vwgt[nVertices * nWeights];
// int ret = METIS_PartGraphRecursive(&nVertices,& nWeights, xadj, adjncy,
// NULL, NULL, NULL, &nParts, NULL,
// NULL, NULL, &objval, part);
int ret = METIS_PartGraphKway(&nVertices,& nWeights, xadj, adjncy,
NULL, NULL, NULL, &nParts, NULL,
NULL, NULL, &objval, part);
std::cout << ret << std::endl;
for(unsigned part_i = 0; part_i < nVertices; part_i++){
std::cout << part_i << " " << part[part_i] << std::endl;
}
return 0;
}

38
src/metis.mk Normal file
View File

@ -0,0 +1,38 @@
# This file is part of MXE. See LICENSE.md for licensing information.
PKG := metis
$(PKG)_WEBSITE := glaros.dtc.umn.edu
$(PKG)_DESCR := metis
$(PKG)_IGNORE :=
$(PKG)_VERSION := 5.1.0
$(PKG)_CHECKSUM := 76faebe03f6c963127dbb73c13eab58c9a3faeae48779f049066a21c087c5db2
$(PKG)_SUBDIR := metis-$($(PKG)_VERSION)
$(PKG)_FILE := metis-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(call GET_LATEST_VERSION, http://glaros.dtc.umn.edu/gkhome/metis/metis/download, metis-)
endef
define $(PKG)_BUILD
# build and install the library
cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)' \
-DSHARED=$(CMAKE_SHARED_BOOL)
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)'
$(MAKE) -C '$(BUILD_DIR)' -j 1 install
# create pkg-config file
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
(echo 'Name: $(PKG)'; \
echo 'Version: $($(PKG)_VERSION)'; \
echo 'Description: $($(PKG)_DESCR)'; \
echo 'Libs: -lmetis'; \
) > '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
# compile test
'$(TARGET)-g++' \
-W -Wall \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
`'$(TARGET)-pkg-config' $(PKG) --cflags --libs`
endef

View File

@ -0,0 +1,23 @@
This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Mon, 20 Nov 2017 16:20:03 +1100
Subject: [PATCH 1/1] ARCH from openblas build conflicts with lapack
diff --git a/Makefile b/Makefile
index 1111111..2222222 100644
--- a/Makefile
+++ b/Makefile
@@ -241,7 +241,7 @@ ifndef NOFORTRAN
-@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 "override 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

71
src/openblas-test.c Normal file
View File

@ -0,0 +1,71 @@
/*
* This file is part of MXE.
* See index.html for further information.
*
* taken from: https://gist.github.com/xianyi/5780018
*/
#include "stdio.h"
#include "stdlib.h"
#include "sys/time.h"
#include "time.h"
extern void dgemm_(char*, char*, int*, int*,int*, double*, double*, int*, double*, int*, double*, double*, int*);
int main(int argc, char* argv[])
{
int i;
printf("test!\n");
if(argc<4){
printf("Input Error\n");
return 1;
}
int m = atoi(argv[1]);
int n = atoi(argv[2]);
int k = atoi(argv[3]);
int sizeofa = m * k;
int sizeofb = k * n;
int sizeofc = m * n;
char ta = 'N';
char tb = 'N';
double alpha = 1.2;
double beta = 0.001;
struct timeval start,finish;
double duration;
double* A = (double*)malloc(sizeof(double) * sizeofa);
double* B = (double*)malloc(sizeof(double) * sizeofb);
double* C = (double*)malloc(sizeof(double) * sizeofc);
srand((unsigned)time(NULL));
for (i=0; i<sizeofa; i++)
A[i] = i%3+1;//(rand()%100)/10.0;
for (i=0; i<sizeofb; i++)
B[i] = i%3+1;//(rand()%100)/10.0;
for (i=0; i<sizeofc; i++)
C[i] = i%3+1;//(rand()%100)/10.0;
//#if 0
printf("m=%d,n=%d,k=%d,alpha=%lf,beta=%lf,sizeofc=%d\n",m,n,k,alpha,beta,sizeofc);
gettimeofday(&start, NULL);
dgemm_(&ta, &tb, &m, &n, &k, &alpha, A, &m, B, &k, &beta, C, &m);
gettimeofday(&finish, NULL);
duration = ((double)(finish.tv_sec-start.tv_sec)*1000000 + (double)(finish.tv_usec-start.tv_usec)) / 1000000;
double gflops = 2.0 * m *n*k;
gflops = gflops/duration*1.0e-6;
FILE *fp;
fp = fopen("timeDGEMM.txt", "a");
fprintf(fp, "%dx%dx%d\t%lf s\t%lf MFLOPS\n", m, n, k, duration, gflops);
fclose(fp);
free(A);
free(B);
free(C);
return 0;
}

View File

@ -4,20 +4,13 @@ PKG := openblas
$(PKG)_WEBSITE := http://www.openblas.net/
$(PKG)_DESCR := OpenBLAS
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.2.15
$(PKG)_CHECKSUM := 73c40ace5978282224e5e122a41c8388c5a19e65a6f2329c2b7c0b61bacc9044
$(PKG)_SUBDIR := OpenBLAS-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.gz
$(PKG)_URL := https://github.com/xianyi/OpenBLAS/archive/v$($(PKG)_VERSION).tar.gz
$(PKG)_VERSION := 0.2.20
$(PKG)_CHECKSUM := 5ef38b15d9c652985774869efd548b8e3e972e1e99475c673b25537ed7bcf394
$(PKG)_GH_CONF := xianyi/OpenBLAS/tags, v
$(PKG)_DEPS := gcc pthreads
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://github.com/xianyi/OpenBLAS/releases' | \
$(SED) -n 's,.*OpenBLAS/archive/v\([0-9][^"]*\)\.tar\.gz.*,\1,p' | \
grep -v 'rc' | \
$(SORT) -V | \
tail -1
endef
# openblas has it's own optimised versions of netlib lapack that
# it bundles into -lopenblas so won't conflict with those libs
$(PKG)_MAKE_OPTS = \
PREFIX='$(PREFIX)/$(TARGET)' \
@ -25,9 +18,9 @@ $(PKG)_MAKE_OPTS = \
FC='$(TARGET)-gfortran' \
CC='$(TARGET)-gcc' \
HOSTCC='$(BUILD_CC)' \
MAKE_NB_JOBS=-1 \
CROSS=1 \
NO_CBLAS=1 \
NO_LAPACK=1 \
BUILD_RELAPACK=1 \
USE_THREAD=1 \
USE_OPENMP=1 \
TARGET=CORE2 \
@ -38,9 +31,14 @@ $(PKG)_MAKE_OPTS = \
BINARY=$(BITS) \
$(if $(BUILD_STATIC),NO_SHARED=1) \
$(if $(BUILD_SHARED),NO_STATIC=1) \
EXTRALIB="`'$(TARGET)-pkg-config' --libs pthreads` -fopenmp"
EXTRALIB="`'$(TARGET)-pkg-config' --libs pthreads` -fopenmp -lgfortran -lquadmath"
define $(PKG)_BUILD
$(MAKE) -C '$(1)' -j '$(JOBS)' $($(PKG)_MAKE_OPTS)
$(MAKE) -C '$(1)' -j 1 install $($(PKG)_MAKE_OPTS)
$(MAKE) -C '$(SOURCE_DIR)' -j '$(JOBS)' $($(PKG)_MAKE_OPTS)
$(MAKE) -C '$(SOURCE_DIR)' -j 1 install $($(PKG)_MAKE_OPTS)
'$(TARGET)-gcc' \
-W -Wall -Werror \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
`'$(TARGET)-pkg-config' --cflags --libs $(PKG)`
endef

View File

@ -10,7 +10,8 @@ $(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := opencv-$($(PKG)_VERSION).zip
$(PKG)_URL := https://$(SOURCEFORGE_MIRROR)/project/$(PKG)library/$(PKG)-unix/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_URL_2 := https://distfiles.macports.org/opencv/$($(PKG)_FILE)
$(PKG)_DEPS := gcc eigen ffmpeg jasper jpeg lcms1 libpng libwebp openexr protobuf tiff xz zlib
$(PKG)_DEPS := gcc eigen ffmpeg jasper jpeg lcms1 libpng libwebp \
openblas openexr protobuf tiff xz zlib
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/' | \

View File

@ -0,0 +1,717 @@
This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Tue, 21 Nov 2017 00:39:21 +1100
Subject: [PATCH 1/3] mingw-w64-Use-a-not-lib-as-AR_TARGET-extension
taken from:
https://github.com/Alexpux/MINGW-packages/blob/6d1afc34842f2faf6c50c04e5904cdb8b7f20e3b/mingw-w64-suitesparse/0001-mingw-w64-Use-a-not-lib-as-AR_TARGET-extension.patch
diff --git a/SuiteSparse_config/SuiteSparse_config.mk b/SuiteSparse_config/SuiteSparse_config.mk
index 1111111..2222222 100644
--- a/SuiteSparse_config/SuiteSparse_config.mk
+++ b/SuiteSparse_config/SuiteSparse_config.mk
@@ -429,10 +429,8 @@ SO_OPTS = $(LDFLAGS)
ifeq ($(UNAME),Windows)
# Cygwin Make on Windows (untested)
- AR_TARGET = $(LIBRARY).lib
- SO_PLAIN = $(LIBRARY).dll
- SO_MAIN = $(LIBRARY).$(SO_VERSION).dll
- SO_TARGET = $(LIBRARY).$(VERSION).dll
+ AR_TARGET = $(LIBRARY).a
+ SO_TARGET = $(LIBRARY).dll
SO_INSTALL_NAME = echo
else
# Mac or Linux/Unix
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Tue, 21 Nov 2017 00:41:07 +1100
Subject: [PATCH 2/3]
mingw-w64-Set-SO_OPTS--shared-move-dlls-create-import-libs
taken from:
https://github.com/Alexpux/MINGW-packages/blob/6d1afc34842f2faf6c50c04e5904cdb8b7f20e3b/mingw-w64-suitesparse/0002-mingw-w64-Set-SO_OPTS--shared-move-dlls-create-import-libs.patch
diff --git a/AMD/Lib/Makefile b/AMD/Lib/Makefile
index 1111111..2222222 100644
--- a/AMD/Lib/Makefile
+++ b/AMD/Lib/Makefile
@@ -81,28 +81,24 @@ libamdf77.a: $(AMDF77)
#-------------------------------------------------------------------------------
# install AMD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/amd.h $(INSTALL_INCLUDE)
$(CP) ../Doc/AMD_UserGuide.pdf $(INSTALL_DOC)
$(CP) ../README.txt $(INSTALL_DOC)/AMD_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/amd.h
chmod 644 $(INSTALL_DOC)/AMD_UserGuide.pdf
chmod 644 $(INSTALL_DOC)/AMD_README.txt
# uninstall AMD
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/amd.h
$(RM) $(INSTALL_DOC)/AMD_UserGuide.pdf
$(RM) $(INSTALL_DOC)/AMD_README.txt
diff --git a/BTF/Lib/Makefile b/BTF/Lib/Makefile
index 1111111..2222222 100644
--- a/BTF/Lib/Makefile
+++ b/BTF/Lib/Makefile
@@ -66,25 +66,21 @@ btf_l_strongcomp.o: ../Source/btf_strongcomp.c
#-------------------------------------------------------------------------------
# install BTF
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/btf.h $(INSTALL_INCLUDE)
$(CP) ../README.txt $(INSTALL_DOC)/BTF_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/btf.h
chmod 644 $(INSTALL_DOC)/BTF_README.txt
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/btf.h
$(RM) $(INSTALL_DOC)/BTF_README.txt
diff --git a/CAMD/Lib/Makefile b/CAMD/Lib/Makefile
index 1111111..2222222 100644
--- a/CAMD/Lib/Makefile
+++ b/CAMD/Lib/Makefile
@@ -62,28 +62,24 @@ $(AR_TARGET): $(OBJ)
#-------------------------------------------------------------------------------
# install CAMD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/camd.h $(INSTALL_INCLUDE)
$(CP) ../Doc/CAMD_UserGuide.pdf $(INSTALL_DOC)
$(CP) ../README.txt $(INSTALL_DOC)/CAMD_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/camd.h
chmod 644 $(INSTALL_DOC)/CAMD_UserGuide.pdf
chmod 644 $(INSTALL_DOC)/CAMD_README.txt
# uninstall CAMD
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/camd.h
$(RM) $(INSTALL_DOC)/CAMD_UserGuide.pdf
$(RM) $(INSTALL_DOC)/CAMD_README.txt
diff --git a/CCOLAMD/Lib/Makefile b/CCOLAMD/Lib/Makefile
index 1111111..2222222 100644
--- a/CCOLAMD/Lib/Makefile
+++ b/CCOLAMD/Lib/Makefile
@@ -49,25 +49,21 @@ distclean: clean
- $(RM) -r $(PURGE)
# install CCOLAMD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/ccolamd.h $(INSTALL_INCLUDE)
$(CP) ../README.txt $(INSTALL_DOC)/CCOLAMD_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/ccolamd.h
chmod 644 $(INSTALL_DOC)/CCOLAMD_README.txt
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/ccolamd.h
$(RM) $(INSTALL_DOC)/CCOLAMD_README.txt
diff --git a/CHOLMOD/Lib/Makefile b/CHOLMOD/Lib/Makefile
index 1111111..2222222 100644
--- a/CHOLMOD/Lib/Makefile
+++ b/CHOLMOD/Lib/Makefile
@@ -535,29 +535,25 @@ cholmod_l_gpu.o: ../GPU/cholmod_gpu.c
#-------------------------------------------------------------------------------
# install CHOLMOD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/cholmod*.h $(INSTALL_INCLUDE)
$(RM) $(INSTALL_INCLUDE)/cholmod_internal.h
$(CP) ../Doc/CHOLMOD_UserGuide.pdf $(INSTALL_DOC)
$(CP) ../README.txt $(INSTALL_DOC)/CHOLMOD_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/cholmod*.h
chmod 644 $(INSTALL_DOC)/CHOLMOD_UserGuide.pdf
chmod 644 $(INSTALL_DOC)/CHOLMOD_README.txt
# uninstall CHOLMOD
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/cholmod*.h
$(RM) $(INSTALL_DOC)/CHOLMOD_UserGuide.pdf
$(RM) $(INSTALL_DOC)/CHOLMOD_README.txt
diff --git a/COLAMD/Lib/Makefile b/COLAMD/Lib/Makefile
index 1111111..2222222 100644
--- a/COLAMD/Lib/Makefile
+++ b/COLAMD/Lib/Makefile
@@ -49,25 +49,21 @@ distclean: clean
- $(RM) -r $(PURGE)
# install COLAMD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/colamd.h $(INSTALL_INCLUDE)
$(CP) ../README.txt $(INSTALL_DOC)/COLAMD_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/colamd.h
chmod 644 $(INSTALL_DOC)/COLAMD_README.txt
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/colamd.h
$(RM) $(INSTALL_DOC)/COLAMD_README.txt
diff --git a/CXSparse/Lib/Makefile b/CXSparse/Lib/Makefile
index 1111111..2222222 100644
--- a/CXSparse/Lib/Makefile
+++ b/CXSparse/Lib/Makefile
@@ -113,26 +113,22 @@ distclean: clean
- $(RM) -r $(PURGE)
# install CXSparse
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(CS)
+$(INSTALL_SO)/$(SO_TARGET): $(CS)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/cs.h $(INSTALL_INCLUDE)
$(CP) ../README.txt $(INSTALL_DOC)/CXSPARSE_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/cs.h
chmod 644 $(INSTALL_DOC)/CXSPARSE_README.txt
# uninstall CXSparse
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/cs.h
$(RM) $(INSTALL_DOC)/CXSPARSE_README.txt
diff --git a/CXSparse_newfiles/Lib/Makefile b/CXSparse_newfiles/Lib/Makefile
index 1111111..2222222 100644
--- a/CXSparse_newfiles/Lib/Makefile
+++ b/CXSparse_newfiles/Lib/Makefile
@@ -113,26 +113,22 @@ distclean: clean
- $(RM) -r $(PURGE)
# install CXSparse
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(CS)
+$(INSTALL_SO)/$(SO_TARGET): $(CS)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/cs.h $(INSTALL_INCLUDE)
$(CP) ../README.txt $(INSTALL_DOC)/CXSPARSE_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/cs.h
chmod 644 $(INSTALL_DOC)/CXSPARSE_README.txt
# uninstall CXSparse
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/cs.h
$(RM) $(INSTALL_DOC)/CXSPARSE_README.txt
diff --git a/GPUQREngine/Lib/Makefile b/GPUQREngine/Lib/Makefile
index 1111111..2222222 100644
--- a/GPUQREngine/Lib/Makefile
+++ b/GPUQREngine/Lib/Makefile
@@ -129,24 +129,20 @@ $(AR_TARGET): $(OBJS)
#-------------------------------------------------------------------------------
# install GPUQREngine. Note that the include files are not installed.
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJS)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJS)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../README.txt $(INSTALL_DOC)/GPUQRENGINE_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_DOC)/GPUQRENGINE_README.txt
# uninstall GPUQREngine
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_DOC)/GPUQRENGINE_README.txt
#-------------------------------------------------------------------------------
diff --git a/KLU/Lib/Makefile b/KLU/Lib/Makefile
index 1111111..2222222 100644
--- a/KLU/Lib/Makefile
+++ b/KLU/Lib/Makefile
@@ -263,28 +263,24 @@ klu_l_memory.o: ../Source/klu_memory.c
#-------------------------------------------------------------------------------
# install KLU
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/klu.h $(INSTALL_INCLUDE)
$(CP) ../Doc/KLU_UserGuide.pdf $(INSTALL_DOC)
$(CP) ../README.txt $(INSTALL_DOC)/KLU_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/klu.h
chmod 644 $(INSTALL_DOC)/KLU_UserGuide.pdf
chmod 644 $(INSTALL_DOC)/KLU_README.txt
# uninstall KLU
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/klu.h
$(RM) $(INSTALL_DOC)/KLU_UserGuide.pdf
$(RM) $(INSTALL_DOC)/KLU_README.txt
diff --git a/LDL/Lib/Makefile b/LDL/Lib/Makefile
index 1111111..2222222 100644
--- a/LDL/Lib/Makefile
+++ b/LDL/Lib/Makefile
@@ -46,28 +46,24 @@ clean:
- $(RM) -r $(CLEAN)
# install LDL
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/ldl.h $(INSTALL_INCLUDE)
$(CP) ../Doc/ldl_userguide.pdf $(INSTALL_DOC)
$(CP) ../README.txt $(INSTALL_DOC)/LDL_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/ldl.h
chmod 644 $(INSTALL_DOC)/ldl_userguide.pdf
chmod 644 $(INSTALL_DOC)/LDL_README.txt
# uninstall LDL
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/ldl.h
$(RM) $(INSTALL_DOC)/ldl_userguide.pdf
$(RM) $(INSTALL_DOC)/LDL_README.txt
diff --git a/Makefile b/Makefile
index 1111111..2222222 100644
--- a/Makefile
+++ b/Makefile
@@ -63,13 +63,13 @@ ifeq (,$(MY_METIS_LIB))
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
- - $(CP) lib/libmetis.* $(INSTALL_LIB)
+ - $(CP) lib/libmetis.* $(INSTALL_SO)
- $(CP) metis-5.1.0/manual/manual.pdf $(INSTALL_DOC)/METIS_manual.pdf
- $(CP) metis-5.1.0/README.txt $(INSTALL_DOC)/METIS_README.txt
# the following is needed only on the Mac, so *.dylib is hardcoded:
$(SO_INSTALL_NAME) $(INSTALL_LIB)/libmetis.dylib $(INSTALL_LIB)/libmetis.dylib
- $(CP) include/metis.h $(INSTALL_INCLUDE)
- chmod 755 $(INSTALL_LIB)/libmetis.*
+ chmod 755 $(INSTALL_SO)/libmetis.*
chmod 644 $(INSTALL_INCLUDE)/metis.h
chmod 644 $(INSTALL_DOC)/METIS_manual.pdf
chmod 644 $(INSTALL_DOC)/METIS_README.txt
diff --git a/RBio/Lib/Makefile b/RBio/Lib/Makefile
index 1111111..2222222 100644
--- a/RBio/Lib/Makefile
+++ b/RBio/Lib/Makefile
@@ -60,25 +60,21 @@ RBio_i.o: ../Source/RBio.c
#-------------------------------------------------------------------------------
# install RBio
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/RBio.h $(INSTALL_INCLUDE)
$(CP) ../README.txt $(INSTALL_DOC)/RBIO_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/RBio.h
chmod 644 $(INSTALL_DOC)/RBIO_README.txt
# uninstall RBio
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/RBio.h
$(RM) $(INSTALL_DOC)/RBIO_README.txt
diff --git a/SPQR/Lib/Makefile b/SPQR/Lib/Makefile
index 1111111..2222222 100644
--- a/SPQR/Lib/Makefile
+++ b/SPQR/Lib/Makefile
@@ -242,22 +242,20 @@ spqrgpu_computeFrontStaging.o: ../SPQRGPU/spqrgpu_computeFrontStaging.cpp
#-------------------------------------------------------------------------------
# install SPQR
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/SuiteSparseQR.hpp $(INSTALL_INCLUDE)
$(CP) ../Include/SuiteSparseQR_C.h $(INSTALL_INCLUDE)
$(CP) ../Include/SuiteSparseQR_definitions.h $(INSTALL_INCLUDE)
$(CP) ../Include/spqr.hpp $(INSTALL_INCLUDE)
$(CP) ../Doc/spqr_user_guide.pdf $(INSTALL_DOC)
$(CP) ../README.txt $(INSTALL_DOC)/SPQR_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR.hpp
chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR_C.h
chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR_definitions.h
@@ -267,9 +265,7 @@ $(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
# uninstall SPQR
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/SuiteSparseQR.hpp
$(RM) $(INSTALL_INCLUDE)/SuiteSparseQR_C.h
$(RM) $(INSTALL_INCLUDE)/SuiteSparseQR_definitions.h
diff --git a/SuiteSparse_GPURuntime/Lib/Makefile b/SuiteSparse_GPURuntime/Lib/Makefile
index 1111111..2222222 100644
--- a/SuiteSparse_GPURuntime/Lib/Makefile
+++ b/SuiteSparse_GPURuntime/Lib/Makefile
@@ -70,23 +70,19 @@ SuiteSparseGPU_Workspace_transfer.o: ../Source/SuiteSparseGPU_Workspace_transfer
#-------------------------------------------------------------------------------
# install SuiteSparse_GPURuntime (just the library, not the include files)
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJS)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJS)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../README.txt $(INSTALL_DOC)/GPURUNTIME_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_DOC)/GPURUNTIME_README.txt
# uninstall SuiteSparse_GPURuntime
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_DOC)/GPURUNTIME_README.txt
diff --git a/SuiteSparse_config/Makefile b/SuiteSparse_config/Makefile
index 1111111..2222222 100644
--- a/SuiteSparse_config/Makefile
+++ b/SuiteSparse_config/Makefile
@@ -44,27 +44,22 @@ clean:
- $(RM) -r $(CLEAN)
# install SuiteSparse_config
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) SuiteSparse_config.h $(INSTALL_INCLUDE)
$(CP) README.txt $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
- chmod 755 $(INSTALL_LIB)/$(SO_PLAIN)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/SuiteSparse_config.h
chmod 644 $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt
# uninstall SuiteSparse_config
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/SuiteSparse_config.h
$(RM) $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt
( cd xerbla ; $(MAKE) uninstall )
diff --git a/SuiteSparse_config/SuiteSparse_config.mk b/SuiteSparse_config/SuiteSparse_config.mk
index 1111111..2222222 100644
--- a/SuiteSparse_config/SuiteSparse_config.mk
+++ b/SuiteSparse_config/SuiteSparse_config.mk
@@ -54,6 +54,7 @@ SUITESPARSE_VERSION = 4.5.6
# and documentation in /solo/mydox.
INSTALL ?= $(SUITESPARSE)
INSTALL_LIB ?= $(INSTALL)/lib
+ INSTALL_SO ?= $(INSTALL)/lib
INSTALL_INCLUDE ?= $(INSTALL)/include
INSTALL_DOC ?= $(INSTALL)/share/doc/suitesparse-$(SUITESPARSE_VERSION)
@@ -339,7 +340,7 @@ SUITESPARSE_VERSION = 4.5.6
ifeq ($(UNAME),Linux)
# add the realtime library, librt, and SuiteSparse/lib
- LDLIBS += -lrt -Wl,-rpath=$(INSTALL_LIB)
+ LDLIBS += -lrt -Wl,-rpath=$(INSTALL_SO)
endif
#---------------------------------------------------------------------------
@@ -428,10 +429,11 @@ SUITESPARSE_VERSION = 4.5.6
SO_OPTS = $(LDFLAGS)
ifeq ($(UNAME),Windows)
- # Cygwin Make on Windows (untested)
AR_TARGET = $(LIBRARY).a
SO_TARGET = $(LIBRARY).dll
SO_INSTALL_NAME = echo
+ SO_OPTS += -shared -Wl,--out-implib,$(INSTALL_LIB)/$(LIBRARY).dll.a
+ INSTALL_SO = $(INSTALL)/bin
else
# Mac or Linux/Unix
AR_TARGET = $(LIBRARY).a
@@ -550,6 +552,7 @@ config:
@echo 'System: UNAME= ' '$(UNAME)'
@echo 'Install directory: INSTALL= ' '$(INSTALL)'
@echo 'Install libraries in: INSTALL_LIB= ' '$(INSTALL_LIB)'
+ @echo 'Install shared libs in: INSTALL_SO= ' '$(INSTALL_SO)'
@echo 'Install include files in: INSTALL_INCLUDE=' '$(INSTALL_INCLUDE)'
@echo 'Install documentation in: INSTALL_DOC= ' '$(INSTALL_DOC)'
@echo 'Optimization level: OPTIMIZATION= ' '$(OPTIMIZATION)'
diff --git a/SuiteSparse_config/xerbla/Makefile b/SuiteSparse_config/xerbla/Makefile
index 1111111..2222222 100644
--- a/SuiteSparse_config/xerbla/Makefile
+++ b/SuiteSparse_config/xerbla/Makefile
@@ -53,16 +53,13 @@ $(INSTALL_LIB)/$(SO_TARGET): $(DEPENDS)
$(COMPILE)
$(CC) $(SO_OPTS) xerbla.o -o $@
- $(RM) xerbla.o
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) xerbla.h $(INSTALL_INCLUDE)
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/xerbla.h
# uninstall libcerbla / libxerbla
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/xerbla.h
distclean: purge
diff --git a/UMFPACK/Lib/Makefile b/UMFPACK/Lib/Makefile
index 1111111..2222222 100644
--- a/UMFPACK/Lib/Makefile
+++ b/UMFPACK/Lib/Makefile
@@ -288,20 +288,18 @@ clean:
#-------------------------------------------------------------------------------
# install UMFPACK
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
@mkdir -p $(INSTALL_LIB)
@mkdir -p $(INSTALL_INCLUDE)
@mkdir -p $(INSTALL_DOC)
$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
- ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
$(CP) ../Include/umfpack*.h $(INSTALL_INCLUDE)
$(CP) ../Doc/UMFPACK_UserGuide.pdf $(INSTALL_DOC)
$(CP) ../Doc/UMFPACK_QuickStart.pdf $(INSTALL_DOC)
$(CP) ../README.txt $(INSTALL_DOC)/UMFPACK_README.txt
- chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+ chmod 755 $(INSTALL_SO)/$(SO_TARGET)
chmod 644 $(INSTALL_INCLUDE)/umfpack*.h
chmod 644 $(INSTALL_DOC)/UMFPACK_UserGuide.pdf
chmod 644 $(INSTALL_DOC)/UMFPACK_QuickStart.pdf
@@ -309,9 +307,7 @@ $(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
# uninstall UMFPACK
uninstall:
- $(RM) $(INSTALL_LIB)/$(SO_TARGET)
- $(RM) $(INSTALL_LIB)/$(SO_PLAIN)
- $(RM) $(INSTALL_LIB)/$(SO_MAIN)
+ $(RM) $(INSTALL_SO)/$(SO_TARGET)
$(RM) $(INSTALL_INCLUDE)/umfpack*.h
$(RM) $(INSTALL_DOC)/UMFPACK_UserGuide.pdf
$(RM) $(INSTALL_DOC)/UMFPACK_QuickStart.pdf
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Tue, 21 Nov 2017 01:20:21 +1100
Subject: [PATCH 3/3] add $(TBB) libs to SPQR
diff --git a/SPQR/Lib/Makefile b/SPQR/Lib/Makefile
index 1111111..2222222 100644
--- a/SPQR/Lib/Makefile
+++ b/SPQR/Lib/Makefile
@@ -13,7 +13,7 @@ ccode: all
include ../../SuiteSparse_config/SuiteSparse_config.mk
# SPQR depends on CHOLMOD, AMD, COLAMD, LAPACK, the BLAS and SuiteSparse_config
-LDLIBS += -lamd -lcolamd -lcholmod -lsuitesparseconfig $(LAPACK) $(BLAS)
+LDLIBS += -lamd -lcolamd -lcholmod -lsuitesparseconfig $(LAPACK) $(BLAS) $(TBB)
# compile and install in SuiteSparse/lib
library:

View File

@ -1,41 +0,0 @@
This file is part of MXE. See LICENSE.md for licensing information.
From 169f88aef7ff1d302aa3eac48d779d009780b87f Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sun, 20 May 2012 23:41:27 +0200
Subject: [PATCH] build lib not demo
---
CHOLMOD/Makefile | 2 +-
UMFPACK/Makefile | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHOLMOD/Makefile b/CHOLMOD/Makefile
index 97911ef..4a3bcae 100644
--- a/CHOLMOD/Makefile
+++ b/CHOLMOD/Makefile
@@ -14,7 +14,7 @@ include ../SuiteSparse_config/SuiteSparse_config.mk
# Compile the C-callable libraries and the Demo programs.
all:
- ( cd Demo ; $(MAKE) )
+ ( cd Lib ; $(MAKE) )
# Compile the C-callable libraries only.
library:
diff --git a/UMFPACK/Makefile b/UMFPACK/Makefile
index 622ee39..e19cd2f 100644
--- a/UMFPACK/Makefile
+++ b/UMFPACK/Makefile
@@ -12,7 +12,7 @@ include ../SuiteSparse_config/SuiteSparse_config.mk
# compile all C code (except hb, fortran, and fortran64), incl. AMD and demos
all:
- ( cd Demo ; $(MAKE) )
+ ( cd Lib ; $(MAKE) )
# compile just the C-callable UMFPACK library
library:
--
1.7.10.4

View File

@ -3,13 +3,13 @@
PKG := suitesparse
$(PKG)_WEBSITE := http://faculty.cse.tamu.edu/davis/suitesparse.html
$(PKG)_DESCR := SuiteSparse
$(PKG)_VERSION := 4.2.1
$(PKG)_CHECKSUM := e8023850bc30742e20a3623fabda02421cb5774b980e3e7c9c6d9e7e864946bd
$(PKG)_VERSION := 4.5.6
$(PKG)_CHECKSUM := de5fb496bdc029e55955e05d918a1862a177805fbbd5b957e8b5ce6632f6c77e
$(PKG)_SUBDIR := SuiteSparse
$(PKG)_FILE := SuiteSparse-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://faculty.cse.tamu.edu/davis/SuiteSparse/$($(PKG)_FILE)
$(PKG)_URL_2 := https://distfiles.macports.org/SuiteSparse/$($(PKG)_FILE)
$(PKG)_DEPS := gcc blas lapack
$(PKG)_DEPS := gcc intel-tbb metis openblas
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://faculty.cse.tamu.edu/davis/suitesparse.html' | \
@ -17,42 +17,74 @@ define $(PKG)_UPDATE
head -1
endef
define $(PKG)_BUILD
# exclude demos
find '$(1)' -name 'Makefile' \
-exec $(SED) -i 's,( cd Demo,#( cd Demo,' {} \;
$(PKG)_MAKE_OPTS = \
UNAME=Windows \
AR='$(TARGET)-ar' \
CC='$(TARGET)-gcc' \
CXX='$(TARGET)-g++' \
F77='$(TARGET)-gfortran' \
RANLIB='$(TARGET)-ranlib' \
BLAS="`'$(TARGET)-pkg-config' --libs openblas`" \
LAPACK="`'$(TARGET)-pkg-config' --libs openblas`" \
MY_METIS_LIB="`'$(TARGET)-pkg-config' --libs metis`" \
TBB="`'$(TARGET)-pkg-config' --libs intel-tbb`" \
SPQR_CONFIG="-DHAVE_TBB"
# build all
$(MAKE) -C '$(1)' -j '$(JOBS)' \
CC='$(TARGET)-gcc' \
CPLUSPLUS='$(TARGET)-g++' \
CXX='$(TARGET)-g++' \
F77='$(TARGET)-gfortran' \
AR='$(TARGET)-ar' \
RANLIB='$(TARGET)-ranlib' \
BLAS='-lblas -lgfortran -lgfortranbegin -lquadmath' \
CHOLMOD_CONFIG='-DNPARTITION'
define $(PKG)_PC_TEST
# create pkg-config file for includes and base deps
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
(echo 'Name: suitesparseconfig'; \
echo 'Version: $($(PKG)_VERSION)'; \
echo 'Description: SuiteSparse includes and deps'; \
echo 'Requires: intel-tbb openblas metis'; \
echo 'Libs: -lsuitesparseconfig'; \
echo 'Cflags: -I"$(PREFIX)/$(TARGET)/include/suitesparse"'; \
) > '$(PREFIX)/$(TARGET)/lib/pkgconfig/suitesparseconfig.pc'
'$(TARGET)-g++' \
-W -Wall \
'$(SOURCE_DIR)/SPQR/Demo/qrdemo.cpp' \
-o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
-lspqr -lcholmod -lcolamd -lccolamd -lcamd -lamd \
`'$(TARGET)-pkg-config' suitesparseconfig --cflags --libs `
# batch file to run test program
cp '$(SOURCE_DIR)/SPQR/Matrix/a2.mtx' '$(PREFIX)/$(TARGET)/bin/test-$(PKG)-matrix.txt'
(printf 'test-$(PKG).exe < test-$(PKG)-matrix.txt\r\n'; \
) > '$(PREFIX)/$(TARGET)/bin/test-$(PKG).bat'
endef
define $(PKG)_BUILD_STATIC
# build libraries
$(MAKE) -C '$(SOURCE_DIR)' -j '$(JOBS)' \
$($(PKG)_MAKE_OPTS) \
static
# install library files
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
find '$(1)' -name '*.a' \
find '$(SOURCE_DIR)' -name 'lib*.a' \
-exec $(INSTALL) -m644 {} '$(PREFIX)/$(TARGET)/lib/' \;
# install include files
$(INSTALL) -d '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/SuiteSparse_config/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/AMD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/BTF/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/CAMD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/CCOLAMD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/CHOLMOD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/COLAMD/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/CSparse/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/CXSparse/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/KLU/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/LDL/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/SPQR/Include/'* '$(PREFIX)/$(TARGET)/include/suitesparse/'
$(INSTALL) -m644 '$(1)/UMFPACK/Include/'*.h '$(PREFIX)/$(TARGET)/include/suitesparse/'
# install headers
$(MAKE) -C '$(SOURCE_DIR)' -j 1 install \
$($(PKG)_MAKE_OPTS) \
INSTALL_INCLUDE='$(PREFIX)/$(TARGET)/include/suitesparse'
# pc and test
$($(PKG)_PC_TEST)
endef
$(PKG)_BUILD_SHARED =
define $(PKG)_BUILD_SHARED
# build and install libraries and headers
$(MAKE) -C '$(SOURCE_DIR)' -j '$(JOBS)' \
$($(PKG)_MAKE_OPTS) \
library
$(MAKE) -C '$(SOURCE_DIR)' -j 1 install \
$($(PKG)_MAKE_OPTS) \
INSTALL_INCLUDE='$(PREFIX)/$(TARGET)/include/suitesparse' \
INSTALL_LIB='$(PREFIX)/$(TARGET)/lib' \
INSTALL_SO='$(PREFIX)/$(TARGET)/bin'
# pc and test
$($(PKG)_PC_TEST)
endef

View File

@ -19,9 +19,10 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
cd '$(1)' && '$(TARGET)-cmake' . \
-DQNANHIBIT_VALUE=1 -DQNANHIBIT_VALUE__TRYRUN_OUTPUT=1
$(MAKE) -C '$(1)' -j '$(JOBS)' install VERBOSE=1
# build and install the library
cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)' \
-DQNANHIBIT_VALUE=1 \
-DQNANHIBIT_VALUE__TRYRUN_OUTPUT=1
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' VERBOSE=1
$(MAKE) -C '$(BUILD_DIR)' -j 1 install VERBOSE=1
endef
$(PKG)_BUILD_SHARED =