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:
Field G. Van Zee
2013-09-10 16:35:12 -05:00
parent 068437736b
commit 7ae4d7a41d
70 changed files with 3344 additions and 3281 deletions

View File

@@ -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)

View File

@@ -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!

View File

@@ -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 ## _

View File

@@ -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 ## _

View File

@@ -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); \
} \
}

View File

@@ -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;

View File

@@ -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 --

View File

@@ -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

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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,

View File

@@ -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

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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 )
{

View File

@@ -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)

View File

@@ -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).
#

View File

@@ -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

View File

@@ -1 +0,0 @@
../../build/gen-make-frags/ignore_list

View File

@@ -0,0 +1,7 @@
attic
broken
old
other
temp
tmp
test

View File

@@ -1 +1 @@
.git
.git

View File

@@ -1 +1 @@
c:h
c:h

File diff suppressed because it is too large Load Diff