mirror of
https://github.com/amd/blis.git
synced 2026-04-19 23:28:52 +00:00
Various changes to treatment of integers.
Details:
- Added a new cpp macro in bli_config.h, BLIS_INT_TYPE_SIZE, which can be
assigned values of 32, 64, or some other value. The former two result in
defining gint_t/guint_t in terms of 32- or 64-bit integers, while the latter
causes integers to be defined in terms of a default type (e.g. long int).
- Updated bli_config.h in reference and clarksville configurations according
to above changes.
- Updated test drivers in test and testsuite to avoid type warnings associated
with format specifiers not matching the types of their arguments to printf()
and scanf().
- Inserted missing #include "bli_system.h" into blis.h (which was slated for
inclusion in d141f9eeb6).
- Added explicit typecasting of dim_t and inc_t to macros in
bli_blas_macro_defs.h (which are used in BLAS compatibility layer).
- Slight changes to CREDITS and INSTALL files.
- Slight tweaks to Windows build system, mostly in the form of switching to
Windows-style CRLF newlines for certain files.
This commit is contained in:
1
CREDITS
1
CREDITS
@@ -20,6 +20,7 @@ but many others have contributed input and feedback, including:
|
||||
Devin Matthews (The University of Texas at Austin)
|
||||
Tze Meng Low (The University of Texas at Austin)
|
||||
Mikhail Smelyanskiy (Intel, Parallel Computing Lab)
|
||||
Tyler Smith (The University of Texas at Austin)
|
||||
Rhys Ulerich (The University of Texas at Austin)
|
||||
Robert van de Geijn (The University of Texas at Austin)
|
||||
Zhang Xianyi (Chinese Academy of Sciences)
|
||||
|
||||
8
INSTALL
8
INSTALL
@@ -10,11 +10,11 @@ located at the BLIS project's official website:
|
||||
http://code.google.com/p/blis/wiki/BuildSystem
|
||||
|
||||
This document will always contain the most up-to-date information related
|
||||
to instantiating a BLIS library from the framework source code. If you
|
||||
have any further questions or wish to provide feedback, please contact the
|
||||
BLIS community by posting your message to the general user mailing list:
|
||||
to instantiating a BLIS library from the framework source code. If you have
|
||||
any further questions or wish to provide feedback, please contact the BLIS
|
||||
community by posting your message to the BLIS developer's mailing list:
|
||||
|
||||
https://groups.google.com/d/forum/blis-discuss
|
||||
https://groups.google.com/d/forum/blis-devel
|
||||
|
||||
Thanks for your interest in the BLIS framework!
|
||||
|
||||
|
||||
@@ -40,6 +40,18 @@
|
||||
|
||||
|
||||
|
||||
// -- INTEGER PROPERTIES -------------------------------------------------------
|
||||
|
||||
// The bit size of the integer type used to track values such as dimensions,
|
||||
// strides, diagonal offsets. A value of 32 results in BLIS using 32-bit signed
|
||||
// integers while 64 results in 64-bit integers. Any other value results in use
|
||||
// of the C99 type "long int". Note that this ONLY affects integers used
|
||||
// internally within BLIS as well as those exposed in the native BLAS-like BLIS
|
||||
// interface.
|
||||
#define BLIS_INT_TYPE_SIZE 64
|
||||
|
||||
|
||||
|
||||
// -- FLOATING-POINT PROPERTIES ------------------------------------------------
|
||||
|
||||
#define BLIS_NUM_FP_TYPES 4
|
||||
@@ -131,9 +143,13 @@
|
||||
// Enable the BLAS compatibility layer?
|
||||
#define BLIS_ENABLE_BLAS2BLIS
|
||||
|
||||
// Enable 64-bit integers in the BLAS compatibility layer? If disabled,
|
||||
// these integers will be defined as 32-bit.
|
||||
#define BLIS_ENABLE_BLAS2BLIS_INT64
|
||||
// The bit size of the integer type used to track values such as dimensions and
|
||||
// leading dimensions (ie: column strides) within the BLAS compatibility layer.
|
||||
// A value of 32 results in the compatibility layer using 32-bit signed integers
|
||||
// while 64 results in 64-bit integers. Any other value results in use of the
|
||||
// C99 type "long int". Note that this ONLY affects integers used within the
|
||||
// BLAS compatibility layer.
|
||||
#define BLIS_BLAS2BLIS_INT_TYPE_SIZE 64
|
||||
|
||||
// Fortran-77 name-mangling macros.
|
||||
#define PASTEF770(name) name ## _
|
||||
|
||||
@@ -40,6 +40,18 @@
|
||||
|
||||
|
||||
|
||||
// -- INTEGER PROPERTIES -------------------------------------------------------
|
||||
|
||||
// The bit size of the integer type used to track values such as dimensions,
|
||||
// strides, diagonal offsets. A value of 32 results in BLIS using 32-bit signed
|
||||
// integers while 64 results in 64-bit integers. Any other value results in use
|
||||
// of the C99 type "long int". Note that this ONLY affects integers used
|
||||
// internally within BLIS as well as those exposed in the native BLAS-like BLIS
|
||||
// interface.
|
||||
#define BLIS_INT_TYPE_SIZE 32
|
||||
|
||||
|
||||
|
||||
// -- FLOATING-POINT PROPERTIES ------------------------------------------------
|
||||
|
||||
#define BLIS_NUM_FP_TYPES 4
|
||||
@@ -55,7 +67,7 @@
|
||||
// -- MULTITHREADING -----------------------------------------------------------
|
||||
|
||||
// The maximum number of BLIS threads that will run concurrently.
|
||||
#define BLIS_MAX_NUM_THREADS 24
|
||||
#define BLIS_MAX_NUM_THREADS 1
|
||||
|
||||
|
||||
|
||||
@@ -131,9 +143,13 @@
|
||||
// Enable the BLAS compatibility layer?
|
||||
#define BLIS_ENABLE_BLAS2BLIS
|
||||
|
||||
// Enable 64-bit integers in the BLAS compatibility layer? If disabled,
|
||||
// these integers will be defined as 32-bit.
|
||||
//#define BLIS_ENABLE_BLAS2BLIS_INT64
|
||||
// The bit size of the integer type used to track values such as dimensions and
|
||||
// leading dimensions (ie: column strides) within the BLAS compatibility layer.
|
||||
// A value of 32 results in the compatibility layer using 32-bit signed integers
|
||||
// while 64 results in 64-bit integers. Any other value results in use of the
|
||||
// C99 type "long int". Note that this ONLY affects integers used within the
|
||||
// BLAS compatibility layer.
|
||||
#define BLIS_BLAS2BLIS_INT_TYPE_SIZE 32
|
||||
|
||||
// Fortran-77 name-mangling macros.
|
||||
#define PASTEF770(name) name ## _
|
||||
|
||||
@@ -41,8 +41,8 @@
|
||||
|
||||
#define bli_convert_blas_dim1( n_blas, n_blis )\
|
||||
{ \
|
||||
if ( n_blas < 0 ) n_blis = 0; \
|
||||
else n_blis = n_blas; \
|
||||
if ( n_blas < 0 ) n_blis = ( dim_t )0; \
|
||||
else n_blis = ( dim_t )n_blas; \
|
||||
}
|
||||
|
||||
// Macro to reposition vector pointers and flip signs of increments
|
||||
@@ -54,12 +54,12 @@
|
||||
if ( incx_blas < 0 ) \
|
||||
{ \
|
||||
x_blis = (x_blas) + (n-1) * (incx_blas); \
|
||||
incx_blis = -(incx_blas); \
|
||||
incx_blis = ( inc_t )(-incx_blas); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
x_blis = (x_blas); \
|
||||
incx_blis = (incx_blas); \
|
||||
incx_blis = ( inc_t )(incx_blas); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
@@ -48,34 +48,33 @@
|
||||
#include <stdint.h>
|
||||
#else
|
||||
// When stdint.h is not available, manually typedef the types we will use.
|
||||
#if 0
|
||||
typedef signed long int int64_t;
|
||||
typedef unsigned long int uint64_t;
|
||||
#ifdef _WIN32
|
||||
typedef __int32 int32_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
typedef __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#else
|
||||
typedef signed long int int32_t;
|
||||
typedef unsigned long int uint32_t;
|
||||
#error "Attempting to compile on pre-C99 system without stdint.h."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// -- General-purpose integers --
|
||||
|
||||
// NOTE: Here we define our general-purpose integers in terms of the C types,
|
||||
// rather than stdint types, because some systems will need larger integers
|
||||
// than others, and "long int" seems to be interpreted to the correct size
|
||||
// on most of our systems.
|
||||
//#if 0
|
||||
//typedef int64_t gint_t; // general signed integer
|
||||
//typedef uint64_t guint_t; // general unsigned integer
|
||||
//#else
|
||||
//typedef int32_t gint_t; // general signed integer
|
||||
//typedef uint32_t guint_t; // general unsigned integer
|
||||
//#endif
|
||||
typedef signed long int gint_t; // general signed integer
|
||||
typedef unsigned long int guint_t; // general unsigned integer
|
||||
// Define integer types depending on what size integer was requested.
|
||||
#if BLIS_INT_TYPE_SIZE == 32
|
||||
typedef int32_t gint_t;
|
||||
typedef uint32_t guint_t;
|
||||
#elif BLIS_INT_TYPE_SIZE == 64
|
||||
typedef int64_t gint_t;
|
||||
typedef uint64_t guint_t;
|
||||
#else
|
||||
typedef signed long int gint_t;
|
||||
typedef unsigned long int guint_t;
|
||||
#endif
|
||||
|
||||
// -- Boolean type --
|
||||
|
||||
typedef gint_t bool_t;
|
||||
typedef gint_t bool_t;
|
||||
|
||||
// -- Special-purpose integers --
|
||||
|
||||
@@ -83,13 +82,12 @@ typedef gint_t bool_t;
|
||||
// interoperability with BLIS.
|
||||
#ifndef _DEFINED_DIM_T
|
||||
#define _DEFINED_DIM_T
|
||||
//typedef unsigned long int dim_t; // dimension type
|
||||
typedef guint_t dim_t; // dimension type
|
||||
typedef guint_t dim_t; // dimension type
|
||||
#endif
|
||||
typedef guint_t inc_t; // increment/stride type
|
||||
typedef gint_t doff_t; // diagonal offset type
|
||||
typedef guint_t siz_t; // byte size type
|
||||
typedef guint_t info_t; // object information bit field
|
||||
typedef guint_t inc_t; // increment/stride type
|
||||
typedef gint_t doff_t; // diagonal offset type
|
||||
typedef guint_t siz_t; // byte size type
|
||||
typedef guint_t info_t; // object information bit field
|
||||
|
||||
// -- Complex types --
|
||||
|
||||
@@ -143,11 +141,16 @@ typedef dcomplex atom_t;
|
||||
// Note: These types are typically only used by BLAS compatibility layer, but
|
||||
// we must define them even when the compatibility layer isn't being built
|
||||
// because they also occur in bli_slamch() and bli_dlamch().
|
||||
#ifdef BLIS_ENABLE_BLAS2BLIS_INT64
|
||||
|
||||
// Define f77_int depending on what size of integer was requested.
|
||||
#if BLIS_BLAS2BLIS_INT_TYPE_SIZE == 32
|
||||
typedef int32_t f77_int;
|
||||
#elif BLIS_BLAS2BLIS_INT_TYPE_SIZE == 64
|
||||
typedef int64_t f77_int;
|
||||
#else
|
||||
typedef int32_t f77_int;
|
||||
typedef long int f77_int;
|
||||
#endif
|
||||
|
||||
typedef char f77_char;
|
||||
typedef float f77_float;
|
||||
typedef double f77_double;
|
||||
|
||||
@@ -55,13 +55,7 @@ extern "C" {
|
||||
|
||||
// -- System headers --
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
// gettimeofday() needs this.
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#include "bli_system.h"
|
||||
|
||||
|
||||
// -- BLIS definitions --
|
||||
|
||||
@@ -158,9 +158,9 @@ TEST_OBJS := $(patsubst $(TEST_SRC_PATH)/%.c, \
|
||||
CFLAGS += -I$(BLIS_INC_PATH) -I$(TEST_SRC_PATH)
|
||||
|
||||
LINKER := $(CC)
|
||||
LDFLAGS := -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -lgfortranbegin -lgfortran -lm
|
||||
LDFLAGS += -lpthread
|
||||
#LDFLAGS := -L/usr/lib/gcc/i486-linux-gnu/4.4.3 -L/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.4.3/../../.. -L/usr/lib/i486-linux-gnu -lgfortranbegin -lgfortran -lm
|
||||
#LDFLAGS := -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -lgfortranbegin -lgfortran -lm
|
||||
#LDFLAGS += -lpthread
|
||||
LDFLAGS := -L/usr/lib/gcc/i486-linux-gnu/4.4.3 -L/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.4.3/../../.. -L/usr/lib/i486-linux-gnu -lgfortranbegin -lgfortran -lm
|
||||
|
||||
|
||||
|
||||
@@ -274,5 +274,5 @@ test_%_blis.x: test_%_blis.o $(BLIS_LIB)
|
||||
clean: cleanx
|
||||
|
||||
cleanx:
|
||||
- $(RM_F) *.x
|
||||
- $(RM_F) *.o *.x
|
||||
|
||||
|
||||
@@ -290,8 +290,11 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_gemm_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:5 ) = [ %4lu %4lu %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, k, n, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:5 ) = [ %4lu %4lu %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m,
|
||||
( unsigned long )k,
|
||||
( unsigned long )n, dtime_save, gflops );
|
||||
|
||||
#if 0
|
||||
bli_obj_release_pack( &a_pack );
|
||||
|
||||
@@ -197,8 +197,10 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_gemv_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, n, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m,
|
||||
( unsigned long )n, dtime_save, gflops );
|
||||
|
||||
bli_obj_free( &alpha );
|
||||
bli_obj_free( &beta );
|
||||
|
||||
@@ -166,8 +166,10 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_ger_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, n, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m,
|
||||
( unsigned long )n, dtime_save, gflops );
|
||||
|
||||
bli_obj_free( &alpha );
|
||||
|
||||
|
||||
@@ -299,8 +299,10 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_hemm_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, n, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m,
|
||||
( unsigned long )n, dtime_save, gflops );
|
||||
|
||||
#if 0
|
||||
bli_blksz_obj_free( mr );
|
||||
|
||||
@@ -183,8 +183,9 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_hemv_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m, dtime_save, gflops );
|
||||
|
||||
bli_obj_free( &alpha );
|
||||
bli_obj_free( &beta );
|
||||
|
||||
@@ -173,8 +173,9 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_her_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m, dtime_save, gflops );
|
||||
|
||||
bli_obj_free( &alpha );
|
||||
|
||||
|
||||
@@ -178,8 +178,9 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_her2_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m, dtime_save, gflops );
|
||||
|
||||
bli_obj_free( &alpha );
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ int main( int argc, char** argv )
|
||||
bli_obj_create( dt_beta, 1, 1, 0, 0, &beta );
|
||||
|
||||
bli_obj_create( dt_a, m, k, 0, 0, &a );
|
||||
bli_obj_create( dt_a, m, k, 0, 0, &b );
|
||||
bli_obj_create( dt_b, m, k, 0, 0, &b );
|
||||
bli_obj_create( dt_c, m, m, 0, 0, &c );
|
||||
bli_obj_create( dt_c, m, m, 0, 0, &c_save );
|
||||
|
||||
@@ -286,8 +286,10 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_her2k_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, k, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m,
|
||||
( unsigned long )k, dtime_save, gflops );
|
||||
|
||||
#if 0
|
||||
bli_blksz_obj_free( mr );
|
||||
|
||||
@@ -49,7 +49,7 @@ int main( int argc, char** argv )
|
||||
dim_t p;
|
||||
dim_t p_begin, p_end, p_inc;
|
||||
int m_input, k_input;
|
||||
num_t dt_a, dt_b, dt_c;
|
||||
num_t dt_a, dt_c;
|
||||
num_t dt_alpha, dt_beta;
|
||||
int r, n_repeats;
|
||||
|
||||
@@ -98,7 +98,6 @@ int main( int argc, char** argv )
|
||||
#endif
|
||||
|
||||
dt_a = BLIS_DOUBLE;
|
||||
dt_b = BLIS_DOUBLE;
|
||||
dt_c = BLIS_DOUBLE;
|
||||
dt_alpha = BLIS_DOUBLE;
|
||||
dt_beta = BLIS_DOUBLE;
|
||||
@@ -278,8 +277,10 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_herk_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, k, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m,
|
||||
( unsigned long )k, dtime_save, gflops );
|
||||
|
||||
#if 0
|
||||
bli_blksz_obj_free( mr );
|
||||
|
||||
@@ -312,8 +312,10 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_trmm_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, n, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m,
|
||||
( unsigned long )n, dtime_save, gflops );
|
||||
|
||||
#if 0
|
||||
bli_blksz_obj_free( mr );
|
||||
|
||||
@@ -161,8 +161,9 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_trmv_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m, dtime_save, gflops );
|
||||
|
||||
bli_obj_free( &alpha );
|
||||
|
||||
|
||||
@@ -307,8 +307,10 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_trsm_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, n, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:4 ) = [ %4lu %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m,
|
||||
( unsigned long )n, dtime_save, gflops );
|
||||
|
||||
#if 0
|
||||
bli_blksz_obj_free( mr );
|
||||
|
||||
@@ -161,8 +161,9 @@ int main( int argc, char** argv )
|
||||
#else
|
||||
printf( "data_trsv_%s", BLAS );
|
||||
#endif
|
||||
printf( "( %2ld, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
(p - p_begin + 1)/p_inc + 1, m, dtime_save, gflops );
|
||||
printf( "( %2lu, 1:3 ) = [ %4lu %10.3e %6.3f ];\n",
|
||||
( unsigned long )(p - p_begin + 1)/p_inc + 1,
|
||||
( unsigned long )m, dtime_save, gflops );
|
||||
|
||||
bli_obj_free( &alpha );
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_addm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -110,7 +110,7 @@ void libblis_test_addm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_addv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -109,7 +109,7 @@ void libblis_test_addv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_axpym_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -115,7 +115,7 @@ void libblis_test_axpym_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_axpyv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -115,7 +115,7 @@ void libblis_test_axpyv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_copym_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -109,7 +109,7 @@ void libblis_test_copym_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_copyv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -109,7 +109,7 @@ void libblis_test_copyv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_dotv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -111,7 +111,7 @@ void libblis_test_dotv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_dotxv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -116,7 +116,7 @@ void libblis_test_dotxv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_fnormm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -108,7 +108,7 @@ void libblis_test_fnormm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_fnormv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -108,7 +108,7 @@ void libblis_test_fnormv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_gemm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -122,7 +122,7 @@ void libblis_test_gemm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_gemv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -119,7 +119,7 @@ void libblis_test_gemv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_ger_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -117,7 +117,7 @@ void libblis_test_ger_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_hemm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -125,7 +125,7 @@ void libblis_test_hemm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_hemv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -120,7 +120,7 @@ void libblis_test_hemv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_her_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -117,7 +117,7 @@ void libblis_test_her_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_her2_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -119,7 +119,7 @@ void libblis_test_her2_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_her2k_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -123,7 +123,7 @@ void libblis_test_her2k_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_herk_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -121,7 +121,7 @@ void libblis_test_herk_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -325,15 +325,15 @@ void libblis_test_read_params_file( char* input_filename, test_params_t* params
|
||||
|
||||
// Read the initial problem size to test.
|
||||
libblis_test_read_next_line( buffer, input_stream );
|
||||
sscanf( buffer, "%lu ", &(params->p_first) );
|
||||
sscanf( buffer, "%u ", &(params->p_first) );
|
||||
|
||||
// Read the maximum problem size to test.
|
||||
libblis_test_read_next_line( buffer, input_stream );
|
||||
sscanf( buffer, "%lu ", &(params->p_max) );
|
||||
sscanf( buffer, "%u ", &(params->p_max) );
|
||||
|
||||
// Read the problem size increment to test.
|
||||
libblis_test_read_next_line( buffer, input_stream );
|
||||
sscanf( buffer, "%lu ", &(params->p_inc) );
|
||||
sscanf( buffer, "%u ", &(params->p_inc) );
|
||||
|
||||
// Read the requested error-checking level.
|
||||
libblis_test_read_next_line( buffer, input_stream );
|
||||
@@ -455,6 +455,12 @@ void libblis_test_read_op_info( test_ops_t* ops,
|
||||
void libblis_test_output_params_struct( FILE* os, test_params_t* params )
|
||||
{
|
||||
int i;
|
||||
char intsize_str[8];
|
||||
|
||||
if ( BLIS_INT_TYPE_SIZE == 32 || BLIS_INT_TYPE_SIZE == 64 )
|
||||
sprintf( intsize_str, "%d", BLIS_INT_TYPE_SIZE );
|
||||
else
|
||||
sprintf( intsize_str, "%d", sizeof(gint_t) * 8 );
|
||||
|
||||
// Output some system parameters.
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
@@ -462,16 +468,10 @@ void libblis_test_output_params_struct( FILE* os, test_params_t* params )
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
libblis_test_fprintf_c( os, "version string %s\n", bli_version() );
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
libblis_test_fprintf_c( os, "type sizes\n" );
|
||||
libblis_test_fprintf_c( os, " gint_t %d\n", sizeof(gint_t) );
|
||||
libblis_test_fprintf_c( os, " guint_t %d\n", sizeof(guint_t) );
|
||||
libblis_test_fprintf_c( os, " float %d\n", sizeof(float) );
|
||||
libblis_test_fprintf_c( os, " double %d\n", sizeof(double) );
|
||||
libblis_test_fprintf_c( os, " scomplex %d\n", sizeof(scomplex) );
|
||||
libblis_test_fprintf_c( os, " dcomplex %d\n", sizeof(dcomplex) );
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
libblis_test_fprintf_c( os, "--- BLIS config header ---\n" );
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
libblis_test_fprintf_c( os, "integer type size (bits) %s\n", intsize_str );
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
libblis_test_fprintf_c( os, "stack memory allocation \n" );
|
||||
libblis_test_fprintf_c( os, " address alignment %u\n", BLIS_STACK_BUF_ALIGN_SIZE );
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
@@ -489,6 +489,12 @@ void libblis_test_output_params_struct( FILE* os, test_params_t* params )
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
libblis_test_fprintf_c( os, "--- BLIS kernel header ---\n" );
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
libblis_test_fprintf_c( os, "floating-point types s d c z \n" );
|
||||
libblis_test_fprintf_c( os, " sizes (bytes) %5u %5u %5u %5u\n", sizeof(float),
|
||||
sizeof(double),
|
||||
sizeof(scomplex),
|
||||
sizeof(dcomplex) );
|
||||
libblis_test_fprintf_c( os, "\n" );
|
||||
libblis_test_fprintf_c( os, "level-3 cache blocksizes s d c z \n" );
|
||||
libblis_test_fprintf_c( os, " m dimension %5u %5u %5u %5u\n",
|
||||
BLIS_DEFAULT_MC_S,
|
||||
@@ -713,9 +719,9 @@ operand_t libblis_test_get_operand_type_for_char( char o_type )
|
||||
|
||||
|
||||
|
||||
dim_t libblis_test_get_n_dims_from_dimset( dimset_t dimset )
|
||||
unsigned int libblis_test_get_n_dims_from_dimset( dimset_t dimset )
|
||||
{
|
||||
dim_t n_dims;
|
||||
unsigned int n_dims;
|
||||
|
||||
if ( dimset == BLIS_TEST_DIMS_MNK ) n_dims = 3;
|
||||
else if ( dimset == BLIS_TEST_DIMS_MN ) n_dims = 2;
|
||||
@@ -732,14 +738,13 @@ dim_t libblis_test_get_n_dims_from_dimset( dimset_t dimset )
|
||||
|
||||
|
||||
|
||||
dim_t libblis_test_get_dim_from_prob_size( int dim_spec,
|
||||
dim_t p_size )
|
||||
dim_t libblis_test_get_dim_from_prob_size( int dim_spec,
|
||||
unsigned int p_size )
|
||||
{
|
||||
dim_t dim;
|
||||
|
||||
if ( dim_spec < 0 ) dim = ( unsigned long )p_size /
|
||||
( unsigned long )bli_abs(dim_spec);
|
||||
else dim = ( unsigned long )dim_spec;
|
||||
if ( dim_spec < 0 ) dim = p_size / bli_abs(dim_spec);
|
||||
else dim = dim_spec;
|
||||
|
||||
return dim;
|
||||
}
|
||||
@@ -851,16 +856,16 @@ void libblis_test_op_driver( test_params_t* params,
|
||||
num_t, // datatype (current datatype)
|
||||
char*, // pc_str (current param string)
|
||||
char*, // sc_str (current storage string)
|
||||
dim_t, // p_cur (current problem size)
|
||||
unsigned int, // p_cur (current problem size)
|
||||
double*, // perf
|
||||
double* ) ) // residual
|
||||
{
|
||||
unsigned int n_mstorage = params->n_mstorage;
|
||||
unsigned int n_vstorage = params->n_vstorage;
|
||||
unsigned int n_datatypes = params->n_datatypes;
|
||||
dim_t p_first = params->p_first;
|
||||
dim_t p_max = params->p_max;
|
||||
dim_t p_inc = params->p_inc;
|
||||
unsigned int p_first = params->p_first;
|
||||
unsigned int p_max = params->p_max;
|
||||
unsigned int p_inc = params->p_inc;
|
||||
unsigned int reaction_to_failure = params->reaction_to_failure;
|
||||
|
||||
num_t datatype;
|
||||
@@ -878,7 +883,7 @@ void libblis_test_op_driver( test_params_t* params,
|
||||
unsigned int n_store_combos;
|
||||
char** sc_str;
|
||||
|
||||
dim_t p_cur, pi;
|
||||
unsigned int p_cur, pi;
|
||||
unsigned int dt, pci, sci, i, j, o;
|
||||
|
||||
double perf, resid;
|
||||
@@ -1144,7 +1149,8 @@ void libblis_test_op_driver( test_params_t* params,
|
||||
strcpy( dims_str, "" );
|
||||
for ( i = 0; i < op->n_dims; ++i )
|
||||
{
|
||||
sprintf( &dims_str[strlen(dims_str)], " %5lu",
|
||||
sprintf( &dims_str[strlen(dims_str)], " %5u",
|
||||
( unsigned int )
|
||||
libblis_test_get_dim_from_prob_size( op->dim_spec[i],
|
||||
p_cur ) );
|
||||
}
|
||||
@@ -1153,7 +1159,7 @@ void libblis_test_op_driver( test_params_t* params,
|
||||
if ( params->output_matlab_format )
|
||||
{
|
||||
libblis_test_fprintf( stdout,
|
||||
"%s%s( %3lu, 1:%lu ) = [ %s %6.3lf %9.2le ]; %c %s\n",
|
||||
"%s%s( %3u, 1:%u ) = [ %s %6.3lf %9.2le ]; %c %s\n",
|
||||
funcname_str, blank_str, pi, op->n_dims + 2,
|
||||
dims_str, perf, resid,
|
||||
OUTPUT_COMMENT_CHAR,
|
||||
@@ -1162,7 +1168,7 @@ void libblis_test_op_driver( test_params_t* params,
|
||||
// Also output to a file if requested (and successfully opened).
|
||||
if ( output_stream )
|
||||
libblis_test_fprintf( output_stream,
|
||||
"%s%s( %3lu, 1:%lu ) = [ %s %6.3lf %9.2le ]; %c %s\n",
|
||||
"%s%s( %3u, 1:%u ) = [ %s %6.3lf %9.2le ]; %c %s\n",
|
||||
funcname_str, blank_str, pi, op->n_dims + 2,
|
||||
dims_str, perf, resid,
|
||||
OUTPUT_COMMENT_CHAR,
|
||||
|
||||
@@ -153,9 +153,9 @@ typedef struct
|
||||
unsigned int n_datatypes;
|
||||
char datatype_char[ MAX_NUM_DATATYPES + 1 ];
|
||||
num_t datatype[ MAX_NUM_DATATYPES + 1 ];
|
||||
dim_t p_first;
|
||||
dim_t p_max;
|
||||
dim_t p_inc;
|
||||
unsigned int p_first;
|
||||
unsigned int p_max;
|
||||
unsigned int p_inc;
|
||||
char reaction_to_failure;
|
||||
unsigned int output_matlab_format;
|
||||
unsigned int output_files;
|
||||
@@ -169,7 +169,7 @@ typedef struct
|
||||
struct test_ops_s* ops;
|
||||
|
||||
int front_seq;
|
||||
dim_t n_dims;
|
||||
unsigned int n_dims;
|
||||
dimset_t dimset;
|
||||
int dim_spec[ MAX_NUM_DIMENSIONS ];
|
||||
unsigned int n_params;
|
||||
@@ -271,8 +271,8 @@ char* libblis_test_get_string_for_result( double residual, num_t dt,
|
||||
thresh_t* thresh );
|
||||
param_t libblis_test_get_param_type_for_char( char p_type );
|
||||
operand_t libblis_test_get_operand_type_for_char( char o_type );
|
||||
dim_t libblis_test_get_n_dims_from_dimset( dimset_t dimset );
|
||||
dim_t libblis_test_get_dim_from_prob_size( int dim_spec, dim_t p_size );
|
||||
unsigned int libblis_test_get_n_dims_from_dimset( dimset_t dimset );
|
||||
dim_t libblis_test_get_dim_from_prob_size( int dim_spec, unsigned int p_size );
|
||||
|
||||
// --- Parameter/storage string generation ---
|
||||
|
||||
@@ -300,7 +300,7 @@ void libblis_test_op_driver( test_params_t* params,
|
||||
num_t, // datatype (current datatype)
|
||||
char*, // pc_str (current param string)
|
||||
char*, // sc_str (current storage string)
|
||||
dim_t, // p_cur (current problem size)
|
||||
unsigned int, // p_cur (current problem size)
|
||||
double*, // perf
|
||||
double* ) ); // residual
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_randm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -105,7 +105,7 @@ void libblis_test_randm_experiment( test_params_t* params,
|
||||
num_t dt,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_randv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -105,7 +105,7 @@ void libblis_test_randv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_scal2m_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -114,7 +114,7 @@ void libblis_test_scal2m_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_scal2v_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -114,7 +114,7 @@ void libblis_test_scal2v_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_scalm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -110,7 +110,7 @@ void libblis_test_scalm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_scalv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -111,7 +111,7 @@ void libblis_test_scalv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_setm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -107,7 +107,7 @@ void libblis_test_setm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_setv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -107,7 +107,7 @@ void libblis_test_setv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_subm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -110,7 +110,7 @@ void libblis_test_subm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_subv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -110,7 +110,7 @@ void libblis_test_subv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_symm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -125,7 +125,7 @@ void libblis_test_symm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_symv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -120,7 +120,7 @@ void libblis_test_symv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_syr_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -117,7 +117,7 @@ void libblis_test_syr_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_syr2_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -119,7 +119,7 @@ void libblis_test_syr2_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_syr2k_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -123,7 +123,7 @@ void libblis_test_syr2k_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_syrk_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -121,7 +121,7 @@ void libblis_test_syrk_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_trmm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -121,7 +121,7 @@ void libblis_test_trmm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_trmm3_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -125,7 +125,7 @@ void libblis_test_trmm3_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_trmv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -116,7 +116,7 @@ void libblis_test_trmv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_trsm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -121,7 +121,7 @@ void libblis_test_trsm_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ void libblis_test_trsv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid );
|
||||
|
||||
@@ -116,7 +116,7 @@ void libblis_test_trsv_experiment( test_params_t* params,
|
||||
num_t datatype,
|
||||
char* pc_str,
|
||||
char* sc_str,
|
||||
dim_t p_cur,
|
||||
unsigned int p_cur,
|
||||
double* perf,
|
||||
double* resid )
|
||||
{
|
||||
|
||||
678
windows/Makefile
678
windows/Makefile
@@ -1,339 +1,339 @@
|
||||
#
|
||||
# libblis
|
||||
# An object-based infrastructure for developing high-performance
|
||||
# dense linear algebra libraries.
|
||||
#
|
||||
# Copyright (C) 2011, The University of Texas
|
||||
#
|
||||
# libblis is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# libblis is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with libblis; if you did not receive a copy, see
|
||||
# http://www.gnu.org/licenses/.
|
||||
#
|
||||
# For more information, please contact us at flame@cs.utexas.edu or
|
||||
# send mail to:
|
||||
#
|
||||
# Field G. Van Zee and/or
|
||||
# Robert A. van de Geijn
|
||||
# The University of Texas at Austin
|
||||
# Department of Computer Sciences
|
||||
# 1 University Station C0500
|
||||
# Austin TX 78712
|
||||
#
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Include variables determined at configure-time --------------------------
|
||||
#
|
||||
CONFIGURE_DEFS = config\config.mk
|
||||
|
||||
!if exist ( $(CONFIGURE_DEFS) )
|
||||
!include $(CONFIGURE_DEFS)
|
||||
!else
|
||||
!error nmake: $(CONFIGURE_DEFS) does not exist! Run configure.cmd first.
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Include environment- and build-specific definitions ----------------------
|
||||
#
|
||||
|
||||
MAKE_DEFS = build\defs.mk
|
||||
|
||||
# Include build definitions
|
||||
!if exist ( $(MAKE_DEFS) )
|
||||
!include $(MAKE_DEFS)
|
||||
!else
|
||||
!error nmake: $(MAKE_DEFS) does not exist! Your libblis distribution may be incomplete.
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Variable modifications ---------------------------------------------------
|
||||
#
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- High-level rules ---------------------------------------------------------
|
||||
#
|
||||
|
||||
all: libblis
|
||||
|
||||
libblis: libblis-lib
|
||||
|
||||
libblis-objs: $(BLIS_OBJS)
|
||||
|
||||
libblis-lib: $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS_LIB)
|
||||
|
||||
libblis-dll: $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS_DLL)
|
||||
|
||||
lib: libblis-lib
|
||||
|
||||
dll: libblis-dll
|
||||
|
||||
install: install-lib install-headers
|
||||
|
||||
install-lib: $(INSTALL_PREFIX_LIB)\$(LIBBLIS).lib
|
||||
|
||||
install-dll: $(INSTALL_PREFIX_DLL)\$(LIBBLIS).dll \
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).lib \
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).exp
|
||||
|
||||
install-headers: $(INSTALL_PREFIX_INC)\$(BLIS_H)
|
||||
|
||||
clean: clean-build clean-log
|
||||
|
||||
distclean: clean-config clean-build clean-log
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Source code (inference) rules --------------------------------------------
|
||||
#
|
||||
|
||||
# --- C source files in flamec directory ---
|
||||
{$(SRC_BLI_DIRPATH)}.c{$(OBJ_BLI_DIRPATH)}.obj:
|
||||
!ifdef VERBOSE
|
||||
if not exist $(OBJ_BLI_DIRPATH) \
|
||||
( $(MKDIR) $(OBJ_BLI_DIRPATH) )
|
||||
$(CC) $(CFLAGS) /c $< /Fo$@
|
||||
!else
|
||||
@if not exist $(OBJ_BLI_DIRPATH) \
|
||||
( ( $(ECHO) nmake: Creating $(OBJ_BLI_DIRPATH) directory ) & \
|
||||
( $(MKDIR) $(OBJ_BLI_DIRPATH) ) )
|
||||
@$(ECHO) nmake: Compiling $<
|
||||
@$(CC) $(CFLAGS) /c $< /Fo$@ >> $(CC_LOG_FILE)
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Library generation rules -------------------------------------------------
|
||||
#
|
||||
|
||||
# --- Static library ---
|
||||
$(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS_LIB): libblis-objs
|
||||
!ifdef VERBOSE
|
||||
if not exist $(LIB_LIBBLIS_DIRPATH) \
|
||||
( $(MKDIR) $(LIB_LIBBLIS_DIRPATH) )
|
||||
$(COPY) $(OBJ_BLI_DIRPATH)\*.obj $(LIB_LIBBLIS_DIRPATH)
|
||||
$(CD) $(LIB_LIBBLIS_DIRPATH)
|
||||
$(LIB) $(LIB_OPTIONS) $(LIB_BLI_OUTPUT_ARG) $(LIB_BLI_INPUT_ARGS)
|
||||
$(DEL) *.obj
|
||||
$(CD) $(TOP_BUILD_DIR_ABS)
|
||||
!else
|
||||
@if not exist $(LIB_LIBBLIS_DIRPATH) \
|
||||
( ( $(ECHO) nmake: Creating $(LIB_LIBBLIS_DIRPATH) directory ) & \
|
||||
( $(MKDIR) $(LIB_LIBBLIS_DIRPATH) ) )
|
||||
@$(ECHO) nmake: Creating static library $@
|
||||
@$(COPY) $(OBJ_BLI_DIRPATH)\*.obj $(LIB_LIBBLIS_DIRPATH) >> $(COPY_LOG_FILE)
|
||||
@$(CD) $(LIB_LIBBLIS_DIRPATH)
|
||||
@$(LIB) /VERBOSE $(LIB_OPTIONS) $(LIB_BLI_OUTPUT_ARG) $(LIB_BLI_INPUT_ARGS)
|
||||
@$(DEL) *.obj
|
||||
@$(CD) $(TOP_BUILD_DIR_ABS)
|
||||
!endif
|
||||
|
||||
# --- Dynamic library (object code file, import library, and export file) ---
|
||||
$(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS_DLL): libblis-objs
|
||||
!ifdef VERBOSE
|
||||
if not exist $(DLL_LIBBLIS_DIRPATH) \
|
||||
( $(MKDIR) $(DLL_LIBBLIS_DIRPATH) )
|
||||
$(COPY) $(OBJ_BLI_DIRPATH)\*.obj $(DLL_LIBBLIS_DIRPATH) >> $(COPY_LOG_FILE)
|
||||
$(CD) $(DLL_LIBBLIS_DIRPATH)
|
||||
$(DIR) /B *.obj > $(OBJ_LIST_FILE)
|
||||
$(GENDLL) $(LIBBLIS) $(LIBBLIS) $(CC) $(LINKARGS_FILEPATH) $(SYM_DEF_FILEPATH) /objlist $(OBJ_LIST_FILE)
|
||||
$(DEL) $(OBJ_LIST_FILE)
|
||||
$(DEL) *.obj
|
||||
$(CD) $(TOP_BUILD_DIR_ABS)
|
||||
!else
|
||||
@if not exist $(DLL_LIBBLIS_DIRPATH) \
|
||||
( ( $(ECHO) nmake: Creating $(DLL_LIBBLIS_DIRPATH) directory ) & \
|
||||
( $(MKDIR) $(DLL_LIBBLIS_DIRPATH) ) )
|
||||
@$(ECHO) nmake: Creating dynamic library $@
|
||||
@$(COPY) $(OBJ_BLI_DIRPATH)\*.obj $(DLL_LIBBLIS_DIRPATH) >> $(COPY_LOG_FILE)
|
||||
@$(CD) $(DLL_LIBBLIS_DIRPATH)
|
||||
@$(DIR) /B *.obj > $(OBJ_LIST_FILE)
|
||||
@$(GENDLL) $(LIBBLIS) $(LIBBLIS) $(CC) $(LINKARGS_FILEPATH) $(SYM_DEF_FILEPATH) /objlist $(OBJ_LIST_FILE)
|
||||
@$(DEL) $(OBJ_LIST_FILE)
|
||||
@$(DEL) *.obj
|
||||
@$(CD) $(TOP_BUILD_DIR_ABS)
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Install rules ------------------------------------------------------------
|
||||
#
|
||||
|
||||
# --- Header files ---
|
||||
$(INSTALL_PREFIX_INC)\$(BLIS_H): $(INC_BLI_DIRPATH)\$(BLIS_H) \
|
||||
$(BUILD_DIRNAME)\$(BLI_CONFIG_H)
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_INC) \
|
||||
( $(MKDIR) $(INSTALL_PREFIX_INC) )
|
||||
$(COPY) $(BUILD_DIRNAME)\$(BLI_CONFIG_H) $(INSTALL_PREFIX_INC) >> $(COPY_LOG_FILE)
|
||||
$(COPY) $(INC_BLI_DIRPATH)\*.h $(INSTALL_PREFIX_INC) >> $(COPY_LOG_FILE)
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_INC) \
|
||||
( $(MKDIR) $(INSTALL_PREFIX_INC) )
|
||||
@$(ECHO) nmake: Installing libblis header files to $(INSTALL_PREFIX_INC)
|
||||
@$(COPY) $(BUILD_DIRNAME)\$(BLI_CONFIG_H) $(INSTALL_PREFIX_INC) >> $(COPY_LOG_FILE)
|
||||
@$(COPY) $(INC_BLI_DIRPATH)\*.h $(INSTALL_PREFIX_INC) >> $(COPY_LOG_FILE)
|
||||
!endif
|
||||
|
||||
# --- Static library ---
|
||||
$(INSTALL_PREFIX_LIB)\$(LIBBLIS).lib: $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_LIB) ( $(MKDIR) $(INSTALL_PREFIX_LIB) )
|
||||
if exist $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib \
|
||||
( $(COPY) $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib $(INSTALL_PREFIX_LIB) >> $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_LIB) ( $(MKDIR) $(INSTALL_PREFIX_LIB) )
|
||||
@if exist $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib \
|
||||
( ( $(ECHO) nmake: Installing $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib to $(INSTALL_PREFIX_LIB) ) & \
|
||||
( $(COPY) $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib $(INSTALL_PREFIX_LIB) >> $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
# --- Dynamic library (object code) ---
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).dll: $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
@if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll \
|
||||
( ( $(ECHO) nmake: Installing $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll to $(INSTALL_PREFIX_DLL) ) & \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
# --- Dynamic library (import library) ---
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).lib: $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
@if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib \
|
||||
( ( $(ECHO) nmake: Installing $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib to $(INSTALL_PREFIX_DLL) ) & \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
# --- Dynamic library (export file) ---
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).exp: $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
@if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp \
|
||||
( ( $(ECHO) nmake: Installing $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp to $(INSTALL_PREFIX_DLL) ) & \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Clean rules --------------------------------------------------------------
|
||||
#
|
||||
|
||||
clean-log:
|
||||
!ifdef VERBOSE
|
||||
if exist $(CC_LOG_FILE) \
|
||||
( $(DEL) $(CC_LOG_FILE) )
|
||||
if exist $(FC_LOG_FILE) \
|
||||
( $(DEL) $(FC_LOG_FILE) )
|
||||
if exist $(COPY_LOG_FILE) \
|
||||
( $(DEL) $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if exist $(CC_LOG_FILE) \
|
||||
( ( $(ECHO) nmake: Deleting $(CC_LOG_FILE) ) & \
|
||||
( $(DEL) $(CC_LOG_FILE) ) )
|
||||
@if exist $(FC_LOG_FILE) \
|
||||
( ( $(ECHO) nmake: Deleting $(FC_LOG_FILE) ) & \
|
||||
( $(DEL) $(FC_LOG_FILE) ) )
|
||||
@if exist $(COPY_LOG_FILE) \
|
||||
( ( $(ECHO) nmake: Deleting $(COPY_LOG_FILE) ) & \
|
||||
( $(DEL) $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
clean-config:
|
||||
!ifdef VERBOSE
|
||||
if exist $(CNF_DIRNAME) \
|
||||
( $(RMDIR) $(CNF_DIRNAME) )
|
||||
if exist $(INC_DIRNAME) \
|
||||
( $(RMDIR) $(INC_DIRNAME) )
|
||||
if exist $(SRC_DIRNAME) \
|
||||
( $(RMDIR) $(SRC_DIRNAME) )
|
||||
!else
|
||||
@if exist $(CNF_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(CNF_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(CNF_DIRNAME) ) )
|
||||
@if exist $(INC_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(INC_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(INC_DIRNAME) ) )
|
||||
@if exist $(SRC_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(SRC_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(SRC_DIRNAME) ) )
|
||||
!endif
|
||||
|
||||
clean-build:
|
||||
!ifdef VERBOSE
|
||||
if exist $(OBJ_DIRNAME) \
|
||||
( $(RMDIR) $(OBJ_DIRNAME) )
|
||||
if exist $(LIB_DIRNAME) \
|
||||
( $(RMDIR) $(LIB_DIRNAME) )
|
||||
if exist $(DLL_DIRNAME) \
|
||||
( $(RMDIR) $(DLL_DIRNAME) )
|
||||
!else
|
||||
@if exist $(OBJ_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(OBJ_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(OBJ_DIRNAME) ) )
|
||||
@if exist $(LIB_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(LIB_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(LIB_DIRNAME) ) )
|
||||
@if exist $(DLL_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(DLL_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(DLL_DIRNAME) ) )
|
||||
!endif
|
||||
|
||||
# Useful for developing when all we want to do is remove the library products.
|
||||
clean-lib:
|
||||
!ifdef VERBOSE
|
||||
if exist $(LIB_DIRNAME) \
|
||||
( $(RMDIR) $(LIB_DIRNAME) )
|
||||
if exist $(DLL_DIRNAME) \
|
||||
( $(RMDIR) $(DLL_DIRNAME) )
|
||||
!else
|
||||
@if exist $(LIB_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(LIB_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(LIB_DIRNAME) ) )
|
||||
@if exist $(DLL_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(DLL_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(DLL_DIRNAME) ) )
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Help target --------------------------------------------------------------
|
||||
#
|
||||
|
||||
help:
|
||||
@$(NMAKE_HELP)
|
||||
|
||||
#
|
||||
# libblis
|
||||
# An object-based infrastructure for developing high-performance
|
||||
# dense linear algebra libraries.
|
||||
#
|
||||
# Copyright (C) 2011, The University of Texas
|
||||
#
|
||||
# libblis is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as
|
||||
# published by the Free Software Foundation; either version 2.1 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# libblis is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with libblis; if you did not receive a copy, see
|
||||
# http://www.gnu.org/licenses/.
|
||||
#
|
||||
# For more information, please contact us at flame@cs.utexas.edu or
|
||||
# send mail to:
|
||||
#
|
||||
# Field G. Van Zee and/or
|
||||
# Robert A. van de Geijn
|
||||
# The University of Texas at Austin
|
||||
# Department of Computer Sciences
|
||||
# 1 University Station C0500
|
||||
# Austin TX 78712
|
||||
#
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Include variables determined at configure-time --------------------------
|
||||
#
|
||||
CONFIGURE_DEFS = config\config.mk
|
||||
|
||||
!if exist ( $(CONFIGURE_DEFS) )
|
||||
!include $(CONFIGURE_DEFS)
|
||||
!else
|
||||
!error nmake: $(CONFIGURE_DEFS) does not exist! Run configure.cmd first.
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Include environment- and build-specific definitions ----------------------
|
||||
#
|
||||
|
||||
MAKE_DEFS = build\defs.mk
|
||||
|
||||
# Include build definitions
|
||||
!if exist ( $(MAKE_DEFS) )
|
||||
!include $(MAKE_DEFS)
|
||||
!else
|
||||
!error nmake: $(MAKE_DEFS) does not exist! Your libblis distribution may be incomplete.
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Variable modifications ---------------------------------------------------
|
||||
#
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- High-level rules ---------------------------------------------------------
|
||||
#
|
||||
|
||||
all: libblis
|
||||
|
||||
libblis: libblis-lib
|
||||
|
||||
libblis-objs: $(BLIS_OBJS)
|
||||
|
||||
libblis-lib: $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS_LIB)
|
||||
|
||||
libblis-dll: $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS_DLL)
|
||||
|
||||
lib: libblis-lib
|
||||
|
||||
dll: libblis-dll
|
||||
|
||||
install: install-lib install-headers
|
||||
|
||||
install-lib: $(INSTALL_PREFIX_LIB)\$(LIBBLIS).lib
|
||||
|
||||
install-dll: $(INSTALL_PREFIX_DLL)\$(LIBBLIS).dll \
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).lib \
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).exp
|
||||
|
||||
install-headers: $(INSTALL_PREFIX_INC)\$(BLIS_H)
|
||||
|
||||
clean: clean-build clean-log
|
||||
|
||||
distclean: clean-config clean-build clean-log
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Source code (inference) rules --------------------------------------------
|
||||
#
|
||||
|
||||
# --- C source files in flamec directory ---
|
||||
{$(SRC_BLI_DIRPATH)}.c{$(OBJ_BLI_DIRPATH)}.obj:
|
||||
!ifdef VERBOSE
|
||||
if not exist $(OBJ_BLI_DIRPATH) \
|
||||
( $(MKDIR) $(OBJ_BLI_DIRPATH) )
|
||||
$(CC) $(CFLAGS) /c $< /Fo$@
|
||||
!else
|
||||
@if not exist $(OBJ_BLI_DIRPATH) \
|
||||
( ( $(ECHO) nmake: Creating $(OBJ_BLI_DIRPATH) directory ) & \
|
||||
( $(MKDIR) $(OBJ_BLI_DIRPATH) ) )
|
||||
@$(ECHO) nmake: Compiling $<
|
||||
@$(CC) $(CFLAGS) /c $< /Fo$@ >> $(CC_LOG_FILE)
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Library generation rules -------------------------------------------------
|
||||
#
|
||||
|
||||
# --- Static library ---
|
||||
$(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS_LIB): libblis-objs
|
||||
!ifdef VERBOSE
|
||||
if not exist $(LIB_LIBBLIS_DIRPATH) \
|
||||
( $(MKDIR) $(LIB_LIBBLIS_DIRPATH) )
|
||||
$(COPY) $(OBJ_BLI_DIRPATH)\*.obj $(LIB_LIBBLIS_DIRPATH)
|
||||
$(CD) $(LIB_LIBBLIS_DIRPATH)
|
||||
$(LIB) $(LIB_OPTIONS) $(LIB_BLI_OUTPUT_ARG) $(LIB_BLI_INPUT_ARGS)
|
||||
$(DEL) *.obj
|
||||
$(CD) $(TOP_BUILD_DIR_ABS)
|
||||
!else
|
||||
@if not exist $(LIB_LIBBLIS_DIRPATH) \
|
||||
( ( $(ECHO) nmake: Creating $(LIB_LIBBLIS_DIRPATH) directory ) & \
|
||||
( $(MKDIR) $(LIB_LIBBLIS_DIRPATH) ) )
|
||||
@$(ECHO) nmake: Creating static library $@
|
||||
@$(COPY) $(OBJ_BLI_DIRPATH)\*.obj $(LIB_LIBBLIS_DIRPATH) >> $(COPY_LOG_FILE)
|
||||
@$(CD) $(LIB_LIBBLIS_DIRPATH)
|
||||
@$(LIB) /VERBOSE $(LIB_OPTIONS) $(LIB_BLI_OUTPUT_ARG) $(LIB_BLI_INPUT_ARGS)
|
||||
@$(DEL) *.obj
|
||||
@$(CD) $(TOP_BUILD_DIR_ABS)
|
||||
!endif
|
||||
|
||||
# --- Dynamic library (object code file, import library, and export file) ---
|
||||
$(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS_DLL): libblis-objs
|
||||
!ifdef VERBOSE
|
||||
if not exist $(DLL_LIBBLIS_DIRPATH) \
|
||||
( $(MKDIR) $(DLL_LIBBLIS_DIRPATH) )
|
||||
$(COPY) $(OBJ_BLI_DIRPATH)\*.obj $(DLL_LIBBLIS_DIRPATH) >> $(COPY_LOG_FILE)
|
||||
$(CD) $(DLL_LIBBLIS_DIRPATH)
|
||||
$(DIR) /B *.obj > $(OBJ_LIST_FILE)
|
||||
$(GENDLL) $(LIBBLIS) $(LIBBLIS) $(CC) $(LINKARGS_FILEPATH) $(SYM_DEF_FILEPATH) /objlist $(OBJ_LIST_FILE)
|
||||
$(DEL) $(OBJ_LIST_FILE)
|
||||
$(DEL) *.obj
|
||||
$(CD) $(TOP_BUILD_DIR_ABS)
|
||||
!else
|
||||
@if not exist $(DLL_LIBBLIS_DIRPATH) \
|
||||
( ( $(ECHO) nmake: Creating $(DLL_LIBBLIS_DIRPATH) directory ) & \
|
||||
( $(MKDIR) $(DLL_LIBBLIS_DIRPATH) ) )
|
||||
@$(ECHO) nmake: Creating dynamic library $@
|
||||
@$(COPY) $(OBJ_BLI_DIRPATH)\*.obj $(DLL_LIBBLIS_DIRPATH) >> $(COPY_LOG_FILE)
|
||||
@$(CD) $(DLL_LIBBLIS_DIRPATH)
|
||||
@$(DIR) /B *.obj > $(OBJ_LIST_FILE)
|
||||
@$(GENDLL) $(LIBBLIS) $(LIBBLIS) $(CC) $(LINKARGS_FILEPATH) $(SYM_DEF_FILEPATH) /objlist $(OBJ_LIST_FILE)
|
||||
@$(DEL) $(OBJ_LIST_FILE)
|
||||
@$(DEL) *.obj
|
||||
@$(CD) $(TOP_BUILD_DIR_ABS)
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Install rules ------------------------------------------------------------
|
||||
#
|
||||
|
||||
# --- Header files ---
|
||||
$(INSTALL_PREFIX_INC)\$(BLIS_H): $(INC_BLI_DIRPATH)\$(BLIS_H) \
|
||||
$(BUILD_DIRNAME)\$(BLI_CONFIG_H)
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_INC) \
|
||||
( $(MKDIR) $(INSTALL_PREFIX_INC) )
|
||||
$(COPY) $(BUILD_DIRNAME)\$(BLI_CONFIG_H) $(INSTALL_PREFIX_INC) >> $(COPY_LOG_FILE)
|
||||
$(COPY) $(INC_BLI_DIRPATH)\*.h $(INSTALL_PREFIX_INC) >> $(COPY_LOG_FILE)
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_INC) \
|
||||
( $(MKDIR) $(INSTALL_PREFIX_INC) )
|
||||
@$(ECHO) nmake: Installing libblis header files to $(INSTALL_PREFIX_INC)
|
||||
@$(COPY) $(BUILD_DIRNAME)\$(BLI_CONFIG_H) $(INSTALL_PREFIX_INC) >> $(COPY_LOG_FILE)
|
||||
@$(COPY) $(INC_BLI_DIRPATH)\*.h $(INSTALL_PREFIX_INC) >> $(COPY_LOG_FILE)
|
||||
!endif
|
||||
|
||||
# --- Static library ---
|
||||
$(INSTALL_PREFIX_LIB)\$(LIBBLIS).lib: $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_LIB) ( $(MKDIR) $(INSTALL_PREFIX_LIB) )
|
||||
if exist $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib \
|
||||
( $(COPY) $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib $(INSTALL_PREFIX_LIB) >> $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_LIB) ( $(MKDIR) $(INSTALL_PREFIX_LIB) )
|
||||
@if exist $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib \
|
||||
( ( $(ECHO) nmake: Installing $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib to $(INSTALL_PREFIX_LIB) ) & \
|
||||
( $(COPY) $(LIB_LIBBLIS_DIRPATH)\$(LIBBLIS).lib $(INSTALL_PREFIX_LIB) >> $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
# --- Dynamic library (object code) ---
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).dll: $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
@if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll \
|
||||
( ( $(ECHO) nmake: Installing $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll to $(INSTALL_PREFIX_DLL) ) & \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).dll $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
# --- Dynamic library (import library) ---
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).lib: $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
@if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib \
|
||||
( ( $(ECHO) nmake: Installing $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib to $(INSTALL_PREFIX_DLL) ) & \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).lib $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
# --- Dynamic library (export file) ---
|
||||
$(INSTALL_PREFIX_DLL)\$(LIBBLIS).exp: $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp
|
||||
!ifdef VERBOSE
|
||||
if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if not exist $(INSTALL_PREFIX_DLL) ( $(MKDIR) $(INSTALL_PREFIX_DLL) )
|
||||
@if exist $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp \
|
||||
( ( $(ECHO) nmake: Installing $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp to $(INSTALL_PREFIX_DLL) ) & \
|
||||
( $(COPY) $(DLL_LIBBLIS_DIRPATH)\$(LIBBLIS).exp $(INSTALL_PREFIX_DLL) >> $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Clean rules --------------------------------------------------------------
|
||||
#
|
||||
|
||||
clean-log:
|
||||
!ifdef VERBOSE
|
||||
if exist $(CC_LOG_FILE) \
|
||||
( $(DEL) $(CC_LOG_FILE) )
|
||||
if exist $(FC_LOG_FILE) \
|
||||
( $(DEL) $(FC_LOG_FILE) )
|
||||
if exist $(COPY_LOG_FILE) \
|
||||
( $(DEL) $(COPY_LOG_FILE) )
|
||||
!else
|
||||
@if exist $(CC_LOG_FILE) \
|
||||
( ( $(ECHO) nmake: Deleting $(CC_LOG_FILE) ) & \
|
||||
( $(DEL) $(CC_LOG_FILE) ) )
|
||||
@if exist $(FC_LOG_FILE) \
|
||||
( ( $(ECHO) nmake: Deleting $(FC_LOG_FILE) ) & \
|
||||
( $(DEL) $(FC_LOG_FILE) ) )
|
||||
@if exist $(COPY_LOG_FILE) \
|
||||
( ( $(ECHO) nmake: Deleting $(COPY_LOG_FILE) ) & \
|
||||
( $(DEL) $(COPY_LOG_FILE) ) )
|
||||
!endif
|
||||
|
||||
clean-config:
|
||||
!ifdef VERBOSE
|
||||
if exist $(CNF_DIRNAME) \
|
||||
( $(RMDIR) $(CNF_DIRNAME) )
|
||||
if exist $(INC_DIRNAME) \
|
||||
( $(RMDIR) $(INC_DIRNAME) )
|
||||
if exist $(SRC_DIRNAME) \
|
||||
( $(RMDIR) $(SRC_DIRNAME) )
|
||||
!else
|
||||
@if exist $(CNF_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(CNF_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(CNF_DIRNAME) ) )
|
||||
@if exist $(INC_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(INC_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(INC_DIRNAME) ) )
|
||||
@if exist $(SRC_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(SRC_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(SRC_DIRNAME) ) )
|
||||
!endif
|
||||
|
||||
clean-build:
|
||||
!ifdef VERBOSE
|
||||
if exist $(OBJ_DIRNAME) \
|
||||
( $(RMDIR) $(OBJ_DIRNAME) )
|
||||
if exist $(LIB_DIRNAME) \
|
||||
( $(RMDIR) $(LIB_DIRNAME) )
|
||||
if exist $(DLL_DIRNAME) \
|
||||
( $(RMDIR) $(DLL_DIRNAME) )
|
||||
!else
|
||||
@if exist $(OBJ_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(OBJ_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(OBJ_DIRNAME) ) )
|
||||
@if exist $(LIB_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(LIB_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(LIB_DIRNAME) ) )
|
||||
@if exist $(DLL_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(DLL_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(DLL_DIRNAME) ) )
|
||||
!endif
|
||||
|
||||
# Useful for developing when all we want to do is remove the library products.
|
||||
clean-lib:
|
||||
!ifdef VERBOSE
|
||||
if exist $(LIB_DIRNAME) \
|
||||
( $(RMDIR) $(LIB_DIRNAME) )
|
||||
if exist $(DLL_DIRNAME) \
|
||||
( $(RMDIR) $(DLL_DIRNAME) )
|
||||
!else
|
||||
@if exist $(LIB_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(LIB_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(LIB_DIRNAME) ) )
|
||||
@if exist $(DLL_DIRNAME) \
|
||||
( ( $(ECHO) nmake: Deleting $(DLL_DIRNAME) directory ) & \
|
||||
( $(RMDIR) $(DLL_DIRNAME) ) )
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Help target --------------------------------------------------------------
|
||||
#
|
||||
|
||||
help:
|
||||
@$(NMAKE_HELP)
|
||||
|
||||
|
||||
@@ -1,52 +1,52 @@
|
||||
#
|
||||
#
|
||||
# BLIS
|
||||
# An object-based framework for developing high-performance BLAS-like
|
||||
# libraries.
|
||||
#
|
||||
# Copyright (C) 2013, The University of Texas
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# - 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.
|
||||
# - Neither the name of The University of Texas 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
|
||||
# HOLDER 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.
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# --- Configuration variable definitions ---------------------------------------
|
||||
#
|
||||
# Environment-related variables:
|
||||
# REVISION - The code's revision number.
|
||||
# PWD - The path to current working directory.
|
||||
# ARCH_STR - A string to identify the requested build architecture.
|
||||
# BUILD_STR - A string to identify the requested build type.
|
||||
# CCOMPILER_STR - A string to identify the requested C compiler.
|
||||
#
|
||||
# Target-related variables:
|
||||
# FLAMEC_OBJS - List of paths to flamec object files.
|
||||
# LAPACK2FLAMEC_OBJS - List of paths to lapack2flamec object files.
|
||||
#
|
||||
# Note: these variables are not present in the .in template file. Instead, they
|
||||
# are appended to the contents of the .in file by a build script and output to
|
||||
# a separate file (by the same name, without the .in extension).
|
||||
#
|
||||
#
|
||||
#
|
||||
# BLIS
|
||||
# An object-based framework for developing high-performance BLAS-like
|
||||
# libraries.
|
||||
#
|
||||
# Copyright (C) 2013, The University of Texas
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# - 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.
|
||||
# - Neither the name of The University of Texas 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
|
||||
# HOLDER 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.
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# --- Configuration variable definitions ---------------------------------------
|
||||
#
|
||||
# Environment-related variables:
|
||||
# REVISION - The code's revision number.
|
||||
# PWD - The path to current working directory.
|
||||
# ARCH_STR - A string to identify the requested build architecture.
|
||||
# BUILD_STR - A string to identify the requested build type.
|
||||
# CCOMPILER_STR - A string to identify the requested C compiler.
|
||||
#
|
||||
# Target-related variables:
|
||||
# FLAMEC_OBJS - List of paths to flamec object files.
|
||||
# LAPACK2FLAMEC_OBJS - List of paths to lapack2flamec object files.
|
||||
#
|
||||
# Note: these variables are not present in the .in template file. Instead, they
|
||||
# are appended to the contents of the .in file by a build script and output to
|
||||
# a separate file (by the same name, without the .in extension).
|
||||
#
|
||||
|
||||
@@ -1,240 +1,240 @@
|
||||
#
|
||||
#
|
||||
# BLIS
|
||||
# An object-based framework for developing high-performance BLAS-like
|
||||
# libraries.
|
||||
#
|
||||
# Copyright (C) 2013, The University of Texas
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# - 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.
|
||||
# - Neither the name of The University of Texas 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
|
||||
# HOLDER 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.
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# --- General build system options --------------------------------------------
|
||||
#
|
||||
|
||||
# Uncomment this for verbose output from nmake.
|
||||
# VERBOSE = 1
|
||||
|
||||
# Assign this varible to be the full path to the directory to which you would
|
||||
# like the BLIS build products to be installed upon running "nmake install".
|
||||
# The nmake install target will create the install directory and all requisite
|
||||
# subdirectories if they do not already exist (in which case the user must have
|
||||
# permission to create these directories).
|
||||
INSTALL_PREFIX = c:\field\lib
|
||||
|
||||
|
||||
#
|
||||
# --- Important build system filenames ----------------------------------------
|
||||
#
|
||||
|
||||
# DLL link arguments. The contents of this file should be customized when
|
||||
# building a dynamically-linked library. The lines of the file should contain
|
||||
# linker options, library names, and library paths. Note that the library
|
||||
# paths must be declared in the following form:
|
||||
#
|
||||
# /link /LIBPATH:<path1>
|
||||
# /link /LIBPATH:<path2>
|
||||
# /link /LIBPATH:<path3>
|
||||
#
|
||||
# where <path1>, <path2>, and <path3> are library paths to add to the list
|
||||
# of paths to search when the linker attempts to locate other libraries
|
||||
# listed in the file.
|
||||
LINKARGS_FILENAME = linkargs.txt
|
||||
LINKARGS_FILEPATH = $(PWD)\$(LINKARGS_FILENAME)
|
||||
|
||||
# Various log file names that capture standard output when VERBOSE is undefined.
|
||||
CC_LOG_FILE = nmake-cc.log
|
||||
FC_LOG_FILE = nmake-fc.log
|
||||
COPY_LOG_FILE = nmake-copy.log
|
||||
|
||||
|
||||
#
|
||||
# --- General name and directory definitions -----------------------------------
|
||||
#
|
||||
|
||||
# The relative and absolute locations of the top-level Windows build directory.
|
||||
# This is the directory in which nmake is run (not the directory named "build").
|
||||
TOP_BUILD_DIR_REL = .
|
||||
TOP_BUILD_DIR_ABS = $(PWD)
|
||||
|
||||
# The revision string.
|
||||
REV_STR = r$(REVISION)
|
||||
|
||||
# The names of the libraries.
|
||||
LIBBLIS_NAME_ONLY = libblis
|
||||
LIBBLIS = $(LIBBLIS_NAME_ONLY)-$(ARCH_STR)-$(REV_STR)
|
||||
|
||||
# Directories that reside within the top-level Windows directory.
|
||||
CNF_DIRNAME = config
|
||||
INC_DIRNAME = include
|
||||
SRC_DIRNAME = frame
|
||||
OBJ_DIRNAME = obj
|
||||
LIB_DIRNAME = lib
|
||||
DLL_DIRNAME = dll
|
||||
|
||||
# Leaves of interest for Windows.
|
||||
|
||||
# Relative directory paths to each of the above subdirectories.
|
||||
INC_DIRPATH = $(TOP_BUILD_DIR_REL)\$(INC_DIRNAME)
|
||||
SRC_DIRPATH = $(TOP_BUILD_DIR_REL)\$(SRC_DIRNAME)
|
||||
OBJ_DIRPATH = $(TOP_BUILD_DIR_REL)\$(OBJ_DIRNAME)
|
||||
LIB_DIRPATH = $(TOP_BUILD_DIR_REL)\$(LIB_DIRNAME)
|
||||
DLL_DIRPATH = $(TOP_BUILD_DIR_REL)\$(DLL_DIRNAME)
|
||||
|
||||
# We only have header files for flamec leaves.
|
||||
INC_BLI_DIRPATH = $(INC_DIRPATH)
|
||||
|
||||
# We have source code for flamec and lapack2flamec leaves.
|
||||
SRC_BLI_DIRPATH = $(SRC_DIRPATH)
|
||||
|
||||
|
||||
# And we have object file paths corresponding to those source leaves defined
|
||||
# above.
|
||||
OBJ_BLI_DIRPATH = $(OBJ_DIRPATH)\$(ARCH_STR)\$(BUILD_STR)
|
||||
|
||||
# Separate directories into which we'll move object files when we create the
|
||||
# static libraries.
|
||||
LIB_LIBBLIS_DIRPATH = $(LIB_DIRPATH)\$(ARCH_STR)\$(BUILD_STR)
|
||||
|
||||
# Separate directories into which we'll move object files when we create the
|
||||
# dynamic libraries.
|
||||
DLL_LIBBLIS_DIRPATH = $(DLL_DIRPATH)\$(ARCH_STR)\$(BUILD_STR)
|
||||
|
||||
# The install subdirectories.
|
||||
INSTALL_PREFIX_LIB = $(INSTALL_PREFIX)\libblis\lib
|
||||
INSTALL_PREFIX_DLL = $(INSTALL_PREFIX)\libblis\dll
|
||||
INSTALL_PREFIX_INC = $(INSTALL_PREFIX)\libblis\include-$(ARCH_STR)-$(REV_STR)
|
||||
|
||||
# Definitions for important header files used in the install-headers rule.
|
||||
BUILD_DIRNAME = build
|
||||
BLIS_H = blis.h
|
||||
|
||||
|
||||
#
|
||||
# --- General shell definitions ------------------------------------------------
|
||||
#
|
||||
|
||||
CD = cd
|
||||
DIR = dir
|
||||
COPY = copy
|
||||
DEL = del /F /Q
|
||||
MKDIR = mkdir
|
||||
RMDIR = rd /S /Q
|
||||
ECHO = echo
|
||||
|
||||
|
||||
#
|
||||
# --- Helper scripts -----------------------------------------------------------
|
||||
#
|
||||
|
||||
NMAKE_HELP = .\build\nmake-help.cmd
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Compiler-related definitions ---------------------------------------------
|
||||
#
|
||||
|
||||
#!include $(VERSION_FILE)
|
||||
|
||||
# --- C compiler definitions ---
|
||||
|
||||
WINDOWS_BUILD = BLIS_ENABLE_WINDOWS_BUILD
|
||||
VERS_STR = 0.0.9
|
||||
VERSION = BLIS_VERSION_STRING=\"$(VERS_STR)\"
|
||||
|
||||
!if "$(CCOMPILER_STR)"=="icl"
|
||||
|
||||
!if "$(BUILD_STR)"=="debug"
|
||||
CDEBUG = /Zi
|
||||
COPTIM = /Od
|
||||
!elseif "$(BUILD_STR)"=="release"
|
||||
CDEBUG =
|
||||
COPTIM = /Ox
|
||||
!endif
|
||||
|
||||
CC = icl.exe
|
||||
CMISCFLAGS = /nologo
|
||||
CLANGFLAGS =
|
||||
CPPROCFLAGS = /I.\build /I$(INC_BLI_DIRPATH) /D$(WINDOWS_BUILD) /D$(VERSION)
|
||||
CWARNFLAGS = /w
|
||||
CDBGFLAGS = $(CDEBUG)
|
||||
COPTFLAGS = $(COPTIM)
|
||||
CRTIMEFLAGS = /MT
|
||||
CMTHREADFLAGS = /Qopenmp
|
||||
CFLAGS = $(CMISCFLAGS) $(CLANGFLAGS) $(CPPROCFLAGS) $(CWARNFLAGS) \
|
||||
$(CDBGFLAGS) $(COPTFLAGS) $(CRTIMEFLAGS) $(CMTHREADFLAGS)
|
||||
|
||||
!elseif "$(CCOMPILER_STR)"=="cl"
|
||||
|
||||
!if "$(BUILD_STR)"=="debug"
|
||||
CDEBUG = /Zi
|
||||
COPTIM = /Od
|
||||
!elseif "$(BUILD_STR)"=="release"
|
||||
CDEBUG =
|
||||
COPTIM = /Ox
|
||||
!endif
|
||||
|
||||
CC = cl.exe
|
||||
CMISCFLAGS = /nologo
|
||||
CLANGFLAGS =
|
||||
CPPROCFLAGS = /I.\build /I$(INC_BLI_DIRPATH) /D$(WINDOWS_BUILD) /D$(VERSION)
|
||||
CWARNFLAGS = /w
|
||||
CDBGFLAGS = $(CDEBUG)
|
||||
COPTFLAGS = $(COPTIM)
|
||||
CRTIMEFLAGS = /MT
|
||||
CMTHREADFLAGS = /openmp
|
||||
CFLAGS = $(CMISCFLAGS) $(CLANGFLAGS) $(CPPROCFLAGS) $(CWARNFLAGS) \
|
||||
$(CDBGFLAGS) $(COPTFLAGS) $(CRTIMEFLAGS) $(CMTHREADFLAGS)
|
||||
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Library-related definitions ----------------------------------------------
|
||||
#
|
||||
|
||||
# --- Static library definitions ---
|
||||
|
||||
LIBBLIS_LIB = $(LIBBLIS).lib
|
||||
|
||||
LIB = lib
|
||||
LIB_OPTIONS = /nologo
|
||||
LIB_BLI_OUTPUT_ARG = /out:$(LIBBLIS_LIB)
|
||||
LIB_BLI_INPUT_ARGS = *.obj
|
||||
|
||||
# --- Dynamic library definitions ---
|
||||
|
||||
LIBBLIS_DLL = $(LIBBLIS).dll
|
||||
|
||||
GENDLL = $(TOP_BUILD_DIR_ABS)\gendll.cmd
|
||||
OBJ_LIST_FILE = libblis-objects.txt
|
||||
|
||||
SYM_DEF_FILEPATH = $(TOP_BUILD_DIR_ABS)\$(BUILD_DIRNAME)\libblis-symbols.def
|
||||
|
||||
#
|
||||
#
|
||||
# BLIS
|
||||
# An object-based framework for developing high-performance BLAS-like
|
||||
# libraries.
|
||||
#
|
||||
# Copyright (C) 2013, The University of Texas
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# - 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.
|
||||
# - Neither the name of The University of Texas 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
|
||||
# HOLDER 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.
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# --- General build system options --------------------------------------------
|
||||
#
|
||||
|
||||
# Uncomment this for verbose output from nmake.
|
||||
# VERBOSE = 1
|
||||
|
||||
# Assign this varible to be the full path to the directory to which you would
|
||||
# like the BLIS build products to be installed upon running "nmake install".
|
||||
# The nmake install target will create the install directory and all requisite
|
||||
# subdirectories if they do not already exist (in which case the user must have
|
||||
# permission to create these directories).
|
||||
INSTALL_PREFIX = c:\field\lib
|
||||
|
||||
|
||||
#
|
||||
# --- Important build system filenames ----------------------------------------
|
||||
#
|
||||
|
||||
# DLL link arguments. The contents of this file should be customized when
|
||||
# building a dynamically-linked library. The lines of the file should contain
|
||||
# linker options, library names, and library paths. Note that the library
|
||||
# paths must be declared in the following form:
|
||||
#
|
||||
# /link /LIBPATH:<path1>
|
||||
# /link /LIBPATH:<path2>
|
||||
# /link /LIBPATH:<path3>
|
||||
#
|
||||
# where <path1>, <path2>, and <path3> are library paths to add to the list
|
||||
# of paths to search when the linker attempts to locate other libraries
|
||||
# listed in the file.
|
||||
LINKARGS_FILENAME = linkargs.txt
|
||||
LINKARGS_FILEPATH = $(PWD)\$(LINKARGS_FILENAME)
|
||||
|
||||
# Various log file names that capture standard output when VERBOSE is undefined.
|
||||
CC_LOG_FILE = nmake-cc.log
|
||||
FC_LOG_FILE = nmake-fc.log
|
||||
COPY_LOG_FILE = nmake-copy.log
|
||||
|
||||
|
||||
#
|
||||
# --- General name and directory definitions -----------------------------------
|
||||
#
|
||||
|
||||
# The relative and absolute locations of the top-level Windows build directory.
|
||||
# This is the directory in which nmake is run (not the directory named "build").
|
||||
TOP_BUILD_DIR_REL = .
|
||||
TOP_BUILD_DIR_ABS = $(PWD)
|
||||
|
||||
# The revision string.
|
||||
REV_STR = r$(REVISION)
|
||||
|
||||
# The names of the libraries.
|
||||
LIBBLIS_NAME_ONLY = libblis
|
||||
LIBBLIS = $(LIBBLIS_NAME_ONLY)-$(ARCH_STR)-$(REV_STR)
|
||||
|
||||
# Directories that reside within the top-level Windows directory.
|
||||
CNF_DIRNAME = config
|
||||
INC_DIRNAME = include
|
||||
SRC_DIRNAME = frame
|
||||
OBJ_DIRNAME = obj
|
||||
LIB_DIRNAME = lib
|
||||
DLL_DIRNAME = dll
|
||||
|
||||
# Leaves of interest for Windows.
|
||||
|
||||
# Relative directory paths to each of the above subdirectories.
|
||||
INC_DIRPATH = $(TOP_BUILD_DIR_REL)\$(INC_DIRNAME)
|
||||
SRC_DIRPATH = $(TOP_BUILD_DIR_REL)\$(SRC_DIRNAME)
|
||||
OBJ_DIRPATH = $(TOP_BUILD_DIR_REL)\$(OBJ_DIRNAME)
|
||||
LIB_DIRPATH = $(TOP_BUILD_DIR_REL)\$(LIB_DIRNAME)
|
||||
DLL_DIRPATH = $(TOP_BUILD_DIR_REL)\$(DLL_DIRNAME)
|
||||
|
||||
# We only have header files for flamec leaves.
|
||||
INC_BLI_DIRPATH = $(INC_DIRPATH)
|
||||
|
||||
# We have source code for flamec and lapack2flamec leaves.
|
||||
SRC_BLI_DIRPATH = $(SRC_DIRPATH)
|
||||
|
||||
|
||||
# And we have object file paths corresponding to those source leaves defined
|
||||
# above.
|
||||
OBJ_BLI_DIRPATH = $(OBJ_DIRPATH)\$(ARCH_STR)\$(BUILD_STR)
|
||||
|
||||
# Separate directories into which we'll move object files when we create the
|
||||
# static libraries.
|
||||
LIB_LIBBLIS_DIRPATH = $(LIB_DIRPATH)\$(ARCH_STR)\$(BUILD_STR)
|
||||
|
||||
# Separate directories into which we'll move object files when we create the
|
||||
# dynamic libraries.
|
||||
DLL_LIBBLIS_DIRPATH = $(DLL_DIRPATH)\$(ARCH_STR)\$(BUILD_STR)
|
||||
|
||||
# The install subdirectories.
|
||||
INSTALL_PREFIX_LIB = $(INSTALL_PREFIX)\libblis\lib
|
||||
INSTALL_PREFIX_DLL = $(INSTALL_PREFIX)\libblis\dll
|
||||
INSTALL_PREFIX_INC = $(INSTALL_PREFIX)\libblis\include-$(ARCH_STR)-$(REV_STR)
|
||||
|
||||
# Definitions for important header files used in the install-headers rule.
|
||||
BUILD_DIRNAME = build
|
||||
BLIS_H = blis.h
|
||||
|
||||
|
||||
#
|
||||
# --- General shell definitions ------------------------------------------------
|
||||
#
|
||||
|
||||
CD = cd
|
||||
DIR = dir
|
||||
COPY = copy
|
||||
DEL = del /F /Q
|
||||
MKDIR = mkdir
|
||||
RMDIR = rd /S /Q
|
||||
ECHO = echo
|
||||
|
||||
|
||||
#
|
||||
# --- Helper scripts -----------------------------------------------------------
|
||||
#
|
||||
|
||||
NMAKE_HELP = .\build\nmake-help.cmd
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Compiler-related definitions ---------------------------------------------
|
||||
#
|
||||
|
||||
#!include $(VERSION_FILE)
|
||||
|
||||
# --- C compiler definitions ---
|
||||
|
||||
WINDOWS_BUILD = BLIS_ENABLE_WINDOWS_BUILD
|
||||
VERS_STR = 0.0.9
|
||||
VERSION = BLIS_VERSION_STRING=\"$(VERS_STR)\"
|
||||
|
||||
!if "$(CCOMPILER_STR)"=="icl"
|
||||
|
||||
!if "$(BUILD_STR)"=="debug"
|
||||
CDEBUG = /Zi
|
||||
COPTIM = /Od
|
||||
!elseif "$(BUILD_STR)"=="release"
|
||||
CDEBUG =
|
||||
COPTIM = /Ox
|
||||
!endif
|
||||
|
||||
CC = icl.exe
|
||||
CMISCFLAGS = /nologo
|
||||
CLANGFLAGS =
|
||||
CPPROCFLAGS = /I.\build /I$(INC_BLI_DIRPATH) /D$(WINDOWS_BUILD) /D$(VERSION)
|
||||
CWARNFLAGS = /w
|
||||
CDBGFLAGS = $(CDEBUG)
|
||||
COPTFLAGS = $(COPTIM)
|
||||
CRTIMEFLAGS = /MT
|
||||
CMTHREADFLAGS = /Qopenmp
|
||||
CFLAGS = $(CMISCFLAGS) $(CLANGFLAGS) $(CPPROCFLAGS) $(CWARNFLAGS) \
|
||||
$(CDBGFLAGS) $(COPTFLAGS) $(CRTIMEFLAGS) $(CMTHREADFLAGS)
|
||||
|
||||
!elseif "$(CCOMPILER_STR)"=="cl"
|
||||
|
||||
!if "$(BUILD_STR)"=="debug"
|
||||
CDEBUG = /Zi
|
||||
COPTIM = /Od
|
||||
!elseif "$(BUILD_STR)"=="release"
|
||||
CDEBUG =
|
||||
COPTIM = /Ox
|
||||
!endif
|
||||
|
||||
CC = cl.exe
|
||||
CMISCFLAGS = /nologo
|
||||
CLANGFLAGS =
|
||||
CPPROCFLAGS = /I.\build /I$(INC_BLI_DIRPATH) /D$(WINDOWS_BUILD) /D$(VERSION)
|
||||
CWARNFLAGS = /w
|
||||
CDBGFLAGS = $(CDEBUG)
|
||||
COPTFLAGS = $(COPTIM)
|
||||
CRTIMEFLAGS = /MT
|
||||
CMTHREADFLAGS = /openmp
|
||||
CFLAGS = $(CMISCFLAGS) $(CLANGFLAGS) $(CPPROCFLAGS) $(CWARNFLAGS) \
|
||||
$(CDBGFLAGS) $(COPTFLAGS) $(CRTIMEFLAGS) $(CMTHREADFLAGS)
|
||||
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
#
|
||||
# --- Library-related definitions ----------------------------------------------
|
||||
#
|
||||
|
||||
# --- Static library definitions ---
|
||||
|
||||
LIBBLIS_LIB = $(LIBBLIS).lib
|
||||
|
||||
LIB = lib
|
||||
LIB_OPTIONS = /nologo
|
||||
LIB_BLI_OUTPUT_ARG = /out:$(LIBBLIS_LIB)
|
||||
LIB_BLI_INPUT_ARGS = *.obj
|
||||
|
||||
# --- Dynamic library definitions ---
|
||||
|
||||
LIBBLIS_DLL = $(LIBBLIS).dll
|
||||
|
||||
GENDLL = $(TOP_BUILD_DIR_ABS)\gendll.cmd
|
||||
OBJ_LIST_FILE = libblis-objects.txt
|
||||
|
||||
SYM_DEF_FILEPATH = $(TOP_BUILD_DIR_ABS)\$(BUILD_DIRNAME)\libblis-symbols.def
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../../build/gen-make-frags/ignore_list
|
||||
7
windows/build/ignore_list
Normal file
7
windows/build/ignore_list
Normal file
@@ -0,0 +1,7 @@
|
||||
attic
|
||||
broken
|
||||
old
|
||||
other
|
||||
temp
|
||||
tmp
|
||||
test
|
||||
@@ -1 +1 @@
|
||||
.git
|
||||
.git
|
||||
|
||||
@@ -1 +1 @@
|
||||
c:h
|
||||
c:h
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user