Refs #163. Obtain the build configure on runtime.
authorZhang Xianyi <traits.zhang@gmail.com>
Mon, 10 Dec 2012 07:49:01 +0000 (15:49 +0800)
committerZhang Xianyi <traits.zhang@gmail.com>
Mon, 10 Dec 2012 07:52:51 +0000 (15:52 +0800)
openblas_get_config function returns the configure string.
So far, it supports USE64BITINT, NO_CBLAS, NO_LAPACK, NO_LAPACKE,
DYNAMIC_ARCH, NO_AFFINITY.

Example:
 #include <stdio.h>
extern char * openblas_get_config();
void main()
{
  printf("%s\n",openblas_get_config());
  return;
}

cblas.h
driver/others/Makefile
driver/others/openblas_get_config.c [new file with mode: 0644]
exports/gensymbol

diff --git a/cblas.h b/cblas.h
index ee8bf08..e9664fe 100644 (file)
--- a/cblas.h
+++ b/cblas.h
@@ -13,6 +13,9 @@ extern "C" {
 void openblas_set_num_threads(int num_threads);
 void goto_set_num_threads(int num_threads);
 
+/*Get the build configure on runtime.*/
+char* openblas_get_config(void);
+
 #define CBLAS_INDEX size_t
 
 enum CBLAS_ORDER     {CblasRowMajor=101, CblasColMajor=102};
index a1c7a50..c449ec6 100644 (file)
@@ -1,7 +1,7 @@
 TOPDIR = ../..
 include ../../Makefile.system
 
-COMMONOBJS      = memory.$(SUFFIX) xerbla.$(SUFFIX) c_abs.$(SUFFIX) z_abs.$(SUFFIX) openblas_set_num_threads.$(SUFFIX)
+COMMONOBJS      = memory.$(SUFFIX) xerbla.$(SUFFIX) c_abs.$(SUFFIX) z_abs.$(SUFFIX) openblas_set_num_threads.$(SUFFIX) openblas_get_config.$(SUFFIX)
 
 COMMONOBJS     += slamch.$(SUFFIX) slamc3.$(SUFFIX) dlamch.$(SUFFIX)  dlamc3.$(SUFFIX)
 
@@ -103,6 +103,9 @@ blas_server.$(SUFFIX) : $(BLAS_SERVER) ../../common.h ../../common_thread.h ../.
 openblas_set_num_threads.$(SUFFIX) : openblas_set_num_threads.c
        $(CC) $(CFLAGS) -c $< -o $(@F)
 
+openblas_get_config.$(SUFFIX) : openblas_get_config.c
+       $(CC) $(CFLAGS) -c $< -o $(@F)
+
 blasL1thread.$(SUFFIX) : blas_l1_thread.c ../../common.h ../../common_thread.h
        $(CC) $(CFLAGS) -c $< -o $(@F)
 
diff --git a/driver/others/openblas_get_config.c b/driver/others/openblas_get_config.c
new file mode 100644 (file)
index 0000000..581ab1a
--- /dev/null
@@ -0,0 +1,59 @@
+/*****************************************************************************
+Copyright (c) 2011,2012 Lab of Parallel Software and Computational Science,ISCAS
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   1. Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+   3. Neither the name of the ISCAS nor the names of its contributors may 
+      be used to endorse or promote products derived from this software 
+      without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+**********************************************************************************/
+
+#include "common.h"
+
+static char* openblas_config_str=""
+#ifdef USE64BITINT
+  "USE64BITINT "
+#endif
+#ifdef NO_CBLAS
+  "NO_CBLAS "
+#endif
+#ifdef NO_LAPACK
+  "NO_LAPACK "
+#endif
+#ifdef NO_LAPACKE
+  "NO_LAPACKE "
+#endif
+#ifdef DYNAMIC_ARCH
+  "DYNAMIC_ARCH "
+#endif
+#ifdef NO_AFFINITY
+  "NO_AFFINITY "
+#endif
+  ;
+
+char* CNAME() {
+  return openblas_config_str;
+}
+
index c492eef..04cbd7d 100644 (file)
@@ -74,6 +74,7 @@
 
 @misc_no_underscore_objs = (
                             openblas_set_num_threads, goto_set_num_threads,
+                            openblas_get_config,
                            );
 
 @misc_underscore_objs = (