diff --git a/attic/windows/Makefile b/attic/windows/Makefile deleted file mode 100644 index f015fe14f..000000000 --- a/attic/windows/Makefile +++ /dev/null @@ -1,341 +0,0 @@ -# -# -# BLIS -# An object-based framework for developing high-performance BLAS-like -# libraries. -# -# Copyright (C) 2014, The University of Texas at Austin -# -# 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(s) of the copyright holder(s) 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. -# -# - - - -# -# --- 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) - diff --git a/attic/windows/build/bli_kernel.h b/attic/windows/build/bli_kernel.h deleted file mode 100644 index a5934312a..000000000 --- a/attic/windows/build/bli_kernel.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - - BLIS - An object-based framework for developing high-performance BLAS-like - libraries. - - Copyright (C) 2014, The University of Texas at Austin - - 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(s) of the copyright holder(s) 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. - -*/ - -GEMM_UKR_PROT( double, d, gemm_armsve256_asm_8x8 ) - -PACKM_KER_PROT( double, d, packm_armsve256_asm_8xk ) diff --git a/attic/windows/build/config.mk.in b/attic/windows/build/config.mk.in deleted file mode 100644 index 6752dde29..000000000 --- a/attic/windows/build/config.mk.in +++ /dev/null @@ -1,98 +0,0 @@ -# -# -# BLIS -# An object-based framework for developing high-performance BLAS-like -# libraries. -# -# Copyright (C) 2014, The University of Texas at Austin -# -# 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(s) of the copyright holder(s) 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. -# -# - - -# Declare the name of the current configuration and add it to the -# running list of configurations included by common.mk. -THIS_CONFIG := haswell -#CONFIGS_INCL += $(THIS_CONFIG) - -# -# --- Determine the C compiler and related flags --- -# - -# NOTE: The build system will append these variables with various -# general-purpose/configuration-agnostic flags in common.mk. You -# may specify additional flags here as needed. -CPPROCFLAGS := -CMISCFLAGS := -CPICFLAGS := -CWARNFLAGS := - -ifneq ($(DEBUG_TYPE),off) -CDBGFLAGS := -g -endif - -ifeq ($(DEBUG_TYPE),noopt) -COPTFLAGS := -O0 -else -COPTFLAGS := -O3 -endif - -# Flags specific to optimized kernels. -CKOPTFLAGS := $(COPTFLAGS) -ifeq ($(CC_VENDOR),gcc) -CKVECFLAGS := -mavx2 -mfma -mfpmath=sse -march=haswell -ifeq ($(GCC_OT_4_9_0),yes) -# If gcc is older than 4.9.0, we must use a different label for -march. -CKVECFLAGS := -mavx2 -mfma -mfpmath=sse -march=core-avx2 -endif -else -ifeq ($(CC_VENDOR),icc) -CKVECFLAGS := -xCORE-AVX2 -else -ifeq ($(CC_VENDOR),clang) -CKVECFLAGS := -mavx2 -mfma -mfpmath=sse -march=haswell -else -$(error gcc, icc, or clang is required for this configuration.) -endif -endif -endif - -# Flags specific to reference kernels. -CROPTFLAGS := $(CKOPTFLAGS) -ifeq ($(CC_VENDOR),gcc) -CRVECFLAGS := $(CKVECFLAGS) -funsafe-math-optimizations -ffp-contract=fast -else -ifeq ($(CC_VENDOR),clang) -CRVECFLAGS := $(CKVECFLAGS) -funsafe-math-optimizations -ffp-contract=fast -else -CRVECFLAGS := $(CKVECFLAGS) -endif -endif - -# Store all of the variables here to new variables containing the -# configuration name. -$(eval $(call store-make-defs,$(THIS_CONFIG))) - diff --git a/attic/windows/build/defs.mk b/attic/windows/build/defs.mk deleted file mode 100644 index 84b52b9ae..000000000 --- a/attic/windows/build/defs.mk +++ /dev/null @@ -1,240 +0,0 @@ -# -# -# BLIS -# An object-based framework for developing high-performance BLAS-like -# libraries. -# -# Copyright (C) 2014, The University of Texas at Austin -# -# 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(s) of the copyright holder(s) 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: -# /link /LIBPATH: -# /link /LIBPATH: -# -# where , , and 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 - diff --git a/attic/windows/build/gather-src-for-windows.py b/attic/windows/build/gather-src-for-windows.py deleted file mode 100644 index e3b589b5b..000000000 --- a/attic/windows/build/gather-src-for-windows.py +++ /dev/null @@ -1,351 +0,0 @@ -#! /usr/bin/env python -# -# BLIS -# An object-based framework for developing high-performance BLAS-like -# libraries. -# -# Copyright (C) 2014, The University of Texas at Austin -# -# 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(s) of the copyright holder(s) 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. -# -# - -# ------------------------------------------------------------------------------ - -# Import modules -import sys -import os -import os.path -import getopt -import shutil -import string - -# Global variables for command line options, with default settings. -script_name = "" -dry_run_flag = False -verbose_flag = False - -# Global constants -flat_config_dirname = "config" -flat_header_dirname = "include" -flat_source_dirname = "frame" -leaf_list_path = "build/leaf_list" -ignore_list_path = "build/ignore_list" -ignore_list_win_path = "build/ignore_list.windows" - -# ------------------------------------------------------------------------------ - -def print_usage(): - - # Print help information. - print " " - print " %s" % script_name - print " " - print " Field G. Van Zee" - print " " - print " Walk the BLIS source tree and copy all sources necessary for" - print " building BLIS under Windows into a single flat directory with" - print " no subdirectory hierarchy." - print " " - print " Usage:" - print " %s [options] tree_dir flat_dir" % script_name - print " " - print " The following options are accepted:" - print " " - print " -d dry-run" - print " Go through all the motions, but don't actually copy any" - print " files." - print " -v verbose" - print " Be verbose about actions (one line of output her action)." - print " " - - # Exit the script. - sys.exit() - -# ------------------------------------------------------------------------------ - -def main(): - - # Extern our global veriables. - global script_name - global dry_run_flag - global verbose_flag - - # Get the script name so we can use it in our output. - ( script_dir, script_name ) = os.path.split( sys.argv[0] ) - - try: - - # Get the command line options. - options, args = getopt.getopt( sys.argv[1:], "dv") - - except getopt.GetoptError, err: - - # print help information and exit: - print str( err ) # will print something like "option -a not recognized" - print_usage() - - # Parse our expected command line options. - print 'checking options' - for o, a in options: - - if o == "-d": - print 'found dry run' - dry_run_flag = True - elif o == "-v": - verbose_flag = True - else: - assert False, "unhandled option" - - # Check the number of arguments after command line option processing. - n_args = len( args ) - if n_args != 2: - print_usage() - - # Acquire the non-optional arguments. - tree_dir = args[0] - flat_dir = args[1] - - # Acquire the list of directories we will ignore. - ignore_list = read_ignore_list() - - # Acquire the list of leaf-type directories we will descend into. - leaf_list = read_leaf_list() - - # Create strings for each of the base subdirectories in the flat - # destination directory. - flat_config_base_dirpath = os.path.join( flat_dir, flat_config_dirname ) - flat_header_base_dirpath = os.path.join( flat_dir, flat_header_dirname ) - flat_source_base_dirpath = os.path.join( flat_dir, flat_source_dirname ) - - # Start a list of directories to create. - dirs_to_create = [] - - # Append the config directory. We do this outside of the for loop because - # we don't need subdirectories for each leaf type. - dirs_to_create.append( flat_config_base_dirpath ) - - # For each of the leaf specifications, make the full pathnames of the - # subdirectories that will reside within the root destination directory. - for leaf_spec in leaf_list: - - # Unpack the leaf_spec tuple. - src_exts, hdr_exts = leaf_spec - - # Append the directory path name to our list. - dirs_to_create.append( flat_header_base_dirpath ) - dirs_to_create.append( flat_source_base_dirpath ) - - # Iterate over the directory list we just created. - for dirpath in dirs_to_create: - - # Make the subdirectories within the root destination directory, but - # only if they are not existing directories. - if os.path.isdir( dirpath ) == False: - - # Take action only if this is not a dry run. - if dry_run_flag == False: - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: creating directory %s" % ( script_name, dirpath ) - - # Make the directory, and parent directories, for dirpath. - os.makedirs( dirpath ) - - else: - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: (dry-run) creating directory %s" % ( script_name, dirpath ) - - - # Walk the directory structure top-down. - for dirpath, dirnames, filenames in os.walk( tree_dir ): - - # Remove directories that appear in the ignore list. - for item in ignore_list: - if item in dirnames: - dirnames.remove( item ) - - # Consider each leaf specification. If we find the name in the directory - # path, then copy the files with its designated extensions into the flat - # source directory. - for leaf_spec in leaf_list: - - # Unpack the leaf_spec tuple. - src_exts, hdr_exts = leaf_spec - - # At this point following line can probably be removed - type_dir_name = os.sep + '' - - flat_source_leaf_dirpath = flat_source_base_dirpath - flat_header_leaf_dirpath = flat_header_base_dirpath - - if dirpath.find( type_dir_name ) != -1: - copy_files_to_flat_subdirs( dirpath, filenames, src_exts, hdr_exts, - flat_source_leaf_dirpath, - flat_header_leaf_dirpath ) - -# ------------------------------------------------------------------------------ - -def copy_files_to_flat_subdirs( dirpath, filenames, src_exts, hdr_exts, src_dirpath, hdr_dirpath ): - - # Consider all files in dirpath. - for filename in filenames: - - # Construct the full file path for the current file. - filepath = os.path.join( dirpath, filename ) - - # Iterate over the valid source extensions for the current directory - # path. - for src_ext in src_exts: - - # If the filename/filepath ends with the source extension, copy it - # to the source subdirectory within the flat destination directory. - if filepath.endswith( src_ext ): - - # Take action only if this is not a dry run. - if dry_run_flag == False: - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: copying to %s from %s" % ( script_name, src_dirpath, filepath ) - - # Copy the source file to the source subdirectory. - shutil.copy2( filepath, src_dirpath ) - - else: - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: (dry-run) copying to %s from %s" % ( script_name, src_dirpath, filepath ) - - # Iterate over the valid header extensions for the current directory - # path. - for hdr_ext in hdr_exts: - - # If the filename/filepath ends with the header extension, copy it - # to the include subdirectory within the flat destination directory. - if filepath.endswith( hdr_ext ): - - # Take action only if this is not a dry run. - if dry_run_flag == False: - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: copying to %s from %s" % ( script_name, hdr_dirpath, filepath ) - - # Copy the header file to the header subdirectory. - shutil.copy2( filepath, hdr_dirpath ) - - else: - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: (dry-run) copying to %s from %s" % ( script_name, hdr_dirpath, filepath ) - -# ------------------------------------------------------------------------------ - -def read_ignore_list(): - - # Open the ignore list files as read-only. - ignore_file = open( ignore_list_path, 'r' ) - ignore_file_win = open( ignore_list_win_path, 'r' ) - - # Read all lines in the ignore list files. The items in these lists contain - # newlines, which we'll strip out shortly. - raw_list = ignore_file.readlines() - raw_win_list = ignore_file_win.readlines() - - # Close the files. - ignore_file.close() - ignore_file_win.close() - - # Initialize an empty ignore list for the stripped version of the raw list. - ignore_list = [] - - # Iterate over the first raw list. - for line in raw_list: - - # Append the stripped line to a new list. - ignore_list.append( line.strip() ) - - # Iterate over the second raw list. - for line in raw_win_list: - - # Append the stripped line to a new list. - ignore_list.append( line.strip() ) - - # Return the list of stripped lines. - return ignore_list - -# ------------------------------------------------------------------------------ - -def read_leaf_list(): - - # Open the leaf list file. - leaf_file = open( leaf_list_path, 'r' ) - - # Read the lines in the file. - line_list = leaf_file.readlines() - - # Start with a blank list. - leaf_list = [] - - # Iterate over the lines. - for line in line_list: - - # Split the specification by colon to separate the fields. - fields = string.split( string.strip( line ), ':' ) - - # Get the individual fields of the specification. - src_exts = string.split( fields[0], ',' ) - hdr_exts = string.split( fields[1], ',' ) - - # If it's a singleton list of an empty string, make it an empty list. - if len(src_exts) == 1: - if src_exts[0] == '': - src_exts = [] - - # If it's a singleton list of an empty string, make it an empty list. - if len(hdr_exts) == 1: - if hdr_exts[0] == '': - hdr_exts = [] - - # Pack the fields into a tuple. - leaf_spec = ( src_exts, hdr_exts ) - - - # Append the tuple to our list. - leaf_list.append( leaf_spec ) - - # Return the list. - return leaf_list - -# ------------------------------------------------------------------------------ - -# Begin by executing main(). -main() diff --git a/attic/windows/build/gen-check-rev-file.py b/attic/windows/build/gen-check-rev-file.py deleted file mode 100644 index 20593f76b..000000000 --- a/attic/windows/build/gen-check-rev-file.py +++ /dev/null @@ -1,252 +0,0 @@ -#! /usr/bin/env python -# -# BLIS -# An object-based framework for developing high-performance BLAS-like -# libraries. -# -# Copyright (C) 2014, The University of Texas at Austin -# -# 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(s) of the copyright holder(s) 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. -# -# - -# ------------------------------------------------------------------------------ - -# Import modules -import sys -import os -import os.path -import getopt - -# Global variables for command line options, with default settings. -script_name = "" -verbose_flag = False - -# Global constants -toplevel_dirpath = "." -svn_dirname = ".svn" -entries_filename = "entries" -revision_filename = "revision" -dummy_rev_string = "unknown" - - -# ------------------------------------------------------------------------------ - -def print_usage(): - - # Print help information. - print " " - print " %s" % script_name - print " " - print " Field G. Van Zee" - print " " - print " This script ensures that a revision file exists so nmake can include the" - print " revision number in the subdirectory paths to the build products." - print " " - print " If a .svn directory exists, the revision file is created (or updated)" - print " to contain the revision number contained in .svn\entries file." - print " Otherwise, if a .svn directory does not exist, the revision file is" - print " left untouched if it exists, and created with a dummy value if it does" - print " not." - print " " - print " This script is typically invoked by configure.cmd, but it can also be" - print " run manually." - print " " - print " Usage:" - print " %s" % script_name - print " " - print " The following options are accepted:" - print " " - print " -v verbose" - print " Be verbose. Output what's happening." - print " " - - # Exit the script. - sys.exit() - -# ------------------------------------------------------------------------------ - -def main(): - - # Extern our global veriables. - global script_name - global verbose_flag - - # Get the script name so we can use it in our output. - ( script_dir, script_name ) = os.path.split( sys.argv[0] ) - - try: - - # Get the command line options. - options, args = getopt.getopt( sys.argv[1:], "v") - - except getopt.GetoptError, err: - - # print help information and exit: - print str( err ) # will print something like "option -a not recognized" - print_usage() - - # Parse our expected command line options. - for o, a in options: - - if o == "-v": - verbose_flag = True - else: - assert False, "unhandled option" - - # Check the number of arguments after command line option processing. - n_args = len( args ) - if n_args != 0: - print_usage() - - # Construct the filepaths to the entries and revision files. - entries_filepath = os.path.join( toplevel_dirpath, svn_dirname, entries_filename ) - revision_filepath = os.path.join( toplevel_dirpath, revision_filename ) - - # Test for the existence of the entries file (and by proxy, a working copy). - entries_file_exists = file_exists( entries_filepath ) - - # If the entries file exists, we are in a working copy, and thus we can - # overwrite the revision file with a potentially new value. - if entries_file_exists == True: - - # Read the revision number from the entries file. - rev_num_str = read_revision_from_entries( entries_filepath ) - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: Found working copy; writing revision string \"%s\" to %s" % ( script_name, rev_num_str, revision_filepath ) - - # Write the revision number to the revision file. - write_revision_to_file( rev_num_str, revision_filepath ) - - # If we can't find the entries file, we probably are in an exported - # copy: either an official snapshot, or a copy that someone exported - # manually--hopefully (and likely) the former. - else: - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: Found export. Checking for revision file..." % ( script_name ) - - # Test for the existence of the revision file. - rev_file_exists = file_exists( revision_filepath ) - - # If the revision file does not exist, create a dummy file so the - # configure script has something to work with. - if rev_file_exists == False: - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: Revision file not found. Writing dummy revision string \"%s\" to %s" % ( script_name, dummy_rev_string, revision_filepath ) - - # Write the dummy string to the revision file. - write_revision_to_file( dummy_rev_string, revision_filepath ) - - else: - - # Get the revision number from the file just for the purposes of - # being verbose, if it was requested. - rev_num_str = read_revision_file( revision_filepath ) - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: Revision file found containing revision string \"%s\". Export is valid snapshot!" % ( script_name, rev_num_str ) - - -# ------------------------------------------------------------------------------ - -def file_exists( filepath ): - - # Try to open the file read-only. - try: - - fp = open( filepath, 'r' ) - fp.close() - exists = True - - except IOError, err: - - exists = False - - return exists - - -# ------------------------------------------------------------------------------ - -def read_revision_from_entries( entries_filepath ): - - # Open the ignore list files as read-only. - entries_file = open( entries_filepath, 'r' ) - - # Read all lines in the entries file. - raw_list = entries_file.readlines() - - # Close the file. - entries_file.close() - - # Grab the fourth line, which is where the revision number lives, and strip - # it of whitespace (probably just a newline). - rev_num_str = raw_list[3].strip() - - # Return the revision number string. - return rev_num_str - -# ------------------------------------------------------------------------------ - -def write_revision_to_file( rev_string, revision_filepath ): - - # Open the revision file for writing. - revision_file = open( revision_filepath, 'w' ) - - # Write the revision string to the file. - revision_file.write( rev_string ) - - # Close the file. - revision_file.close() - -# ------------------------------------------------------------------------------ - -def read_revision_file( revision_filepath ): - - # Open the revision file. - revision_file = open( revision_filepath, 'r' ) - - # Read the first (and only) line. - line = revision_file.readline() - - # Close the file. - revision_file.close() - - # Grab the string and strip the it of whitespace (should just be a newline). - rev_num_str = line.strip() - - # Return the revision number string. - return rev_num_str - -# ------------------------------------------------------------------------------ - -# Begin by executing main(). -main() diff --git a/attic/windows/build/gen-config-file.py b/attic/windows/build/gen-config-file.py deleted file mode 100644 index 557083276..000000000 --- a/attic/windows/build/gen-config-file.py +++ /dev/null @@ -1,360 +0,0 @@ -#! /usr/bin/env python -# -# BLIS -# An object-based framework for developing high-performance BLAS-like -# libraries. -# -# Copyright (C) 2014, The University of Texas at Austin -# -# 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(s) of the copyright holder(s) 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. -# -# - -# ------------------------------------------------------------------------------ - -# Import modules -import sys -import os -import os.path -import getopt -import re -import string - -# Global variables for command line options, with default settings. -script_name = "" -dry_run_flag = False -verbose_flag = False - -# Global constants -config_dirname = "config" -source_dirname = "frame" -object_dirname = "obj" -object_extension = ".obj" -leaf_list_path = "build/leaf_list" -revision_filename = "revision" -rev_varname = "REVISION" -pwd_varname = "PWD" -arch_varname = "ARCH_STR" -build_varname = "BUILD_STR" -ccompiler_varname = "CCOMPILER_STR" - - -# ------------------------------------------------------------------------------ - -def print_usage(): - - # Print help information. - print " " - print " %s" % script_name - print " " - print " Field G. Van Zee" - print " " - print " Create a config.mk file that is to be included by the nmake Makefile." - print " This config.mk file is based on a template, but also includes variable" - print " definitions that are needed for the specific build were are performing." - print " The variables which are currently appended to config.mk at runtime are:" - print " - the revision string" - print " - the path to the current working directory" - print " - the build string (e.g. debug, release)" - print " - the architecture string (e.g. x86, x64)" - print " - the C compiler to use (e.g. icl, cl)" - print " - a list of paths to the object files to be compiled" - print " The config.mk file is placed within the config subdirectory." - print " " - print " Usage:" - print " %s [options] flat_dir arch build ccompiler path\\to\\config.mk.in" % script_name - print " " - print " The following options are accepted:" - print " " - print " -d dry-run" - print " Go through all the motions, but don't actually output" - print " the nmake definition file." - print " -v verbose" - print " Be verbose about actions (one line of output her action)." - print " " - - # Exit the script. - sys.exit() - -# ------------------------------------------------------------------------------ - -def main(): - - # Extern our global veriables. - global script_name - global dry_run_flag - global verbose_flag - - # Get the script name so we can use it in our output. - ( script_dir, script_name ) = os.path.split( sys.argv[0] ) - - try: - - # Get the command line options. - options, args = getopt.getopt( sys.argv[1:], "dv") - - except getopt.GetoptError, err: - - # print help information and exit: - print str( err ) # will print something like "option -a not recognized" - print_usage() - - # Parse our expected command line options. - for o, a in options: - - if o == "-d": - dry_run_flag = True - elif o == "-v": - verbose_flag = True - else: - assert False, "unhandled option" - - # Check the number of arguments after command line option processing. - n_args = len( args ) - if n_args != 5: - print_usage() - - # Acquire the non-optional arguments. - flat_dir = args[0] - arch_string = args[1] - build_string = args[2] - ccompiler_string = args[3] - input_filepath = args[4] - - # Acquire the list of leaf-type directories we will descend into. - leaf_list = read_leaf_list() - - # Read the contents of the template file. - template_file_line_list = read_template_file( input_filepath ) - - # Initialize a new list for the lines to be output - output_file_line_list = template_file_line_list - - # Read the revision number from the revision file. - rev_num_str = read_revision_file( revision_filename ) - - # Add a variable for the revision number of the code we're working with. - rev_var_value = rev_varname + " = " + rev_num_str + "\n" - output_file_line_list.append( rev_var_value ) - - # Add a variable for the path to the current working directory and append - # it to our list. - pwd_var_value = pwd_varname + " = " + os.getcwd() + "\n" - output_file_line_list.append( pwd_var_value ) - - # Add a variable for the architecture string and append it to our list. - arch_var_value = arch_varname + " = " + arch_string + "\n" - output_file_line_list.append( arch_var_value ) - - # Add a variable for the build type string and append it to our list. - build_var_value = build_varname + " = " + build_string + "\n" - output_file_line_list.append( build_var_value ) - - # Add a variable for the C compiler string and append it to our list. - ccompiler_var_value = ccompiler_varname + " = " + ccompiler_string + "\n" - output_file_line_list.append( ccompiler_var_value ) - - # Walk the flat subdirectories for each of the leaves. - for leaf_spec in leaf_list: - - # Unpack the leaf_spec tuple. - src_exts, hdr_exts = leaf_spec - - # Create the paths to the source and object subdirectories. - src_dirpath = os.path.join( flat_dir, source_dirname ) - obj_dirpath = os.path.join( flat_dir, object_dirname, arch_string, build_string ) - - # Get a list of files from the leaf subdirectory. - src_filenames = os.listdir( src_dirpath ) - - # This will be the nmake variable name to which we will assign the list - # of source files. - nmake_varname = "BLIS_OBJS" - - # Generate the line to output. - leaf_line = generate_object_list( nmake_varname, src_filenames, src_exts, obj_dirpath ) - - # Accumulate the lines. - output_file_line_list.append( leaf_line ) - - # Get the filename part of the input filepath. - input_filedir, input_filename = os.path.split( input_filepath ) - - # Remove the .in extension in the output filename. - output_filename = re.sub( '.mk.in', '.mk', input_filename ) - - # Construct the filepath for the output file. - output_filepath = os.path.join( flat_dir, config_dirname, output_filename ) - - # Write the output lines. - write_output_file( output_filepath, output_file_line_list ) - -# ------------------------------------------------------------------------------ - -def read_revision_file( filepath ): - - # Try to open the revision file. - try: - - revision_file = open( filepath, 'r' ) - - except IOError, err: - - print "%s: Couldn't open revision file %s" % ( script_name, filepath ) - sys.exit(1) - - # Read the first (and only) line. - line = revision_file.readline() - - # Close the file. - revision_file.close() - - # Grab the string and strip the it of whitespace (should just be a newline). - rev_num_str = line.strip() - - # Return the revision number string. - return rev_num_str - -# ------------------------------------------------------------------------------ - -def generate_object_list( nmake_varname, src_filenames, src_exts, obj_dirpath ): - - # Initialize the string as an assignment operation. - the_line = nmake_varname + " = " - - # Return early if there are no source extensions for this leaf spec. - if src_exts == []: - return "" - - # Construct a pattern to match any file ending with any of the source file - # extensions given. This string is going to look something like ".[cf]". - src_pattern = '\.[' - for src_ext in src_exts: - src_pattern = src_pattern + src_ext - src_pattern = src_pattern + ']' - - # Consider all source files. - for src_filename in src_filenames: - - obj_filename = re.sub( src_pattern, '.obj', src_filename ) - - # Create the full path to the file. - obj_filepath = os.path.join( obj_dirpath, obj_filename ) - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: adding file %s" % ( script_name, obj_filepath ) - - # And then add it to the list. - the_line = the_line + obj_filepath + " " - - # Be verbose if verbosity was requested. - if verbose_flag == True: - print "%s: %s" % ( script_name, the_line ) - - # Append a newline to the end of the line, for file.writelines(). - the_line = the_line + "\n" - - # Return the new line. - return the_line - -# ------------------------------------------------------------------------------ - -def read_template_file( template_filepath ): - - # Open the template file as read-only. - template_file = open( template_filepath, 'r' ) - - # Read all lines in the template file. - template_file_lines = template_file.readlines() - - # Close the file. - template_file.close() - - # Return the list of lines in the template file. - return template_file_lines - -# ------------------------------------------------------------------------------ - -def write_output_file( output_filepath, output_lines ): - - # Take action only if this is not a dry run. - if dry_run_flag == False: - - # Open the template file as writable. - output_file = open( output_filepath, 'w' ) - - # Write the lines. - output_file.writelines( output_lines ) - - # Close the file. - output_file.close() - -# ------------------------------------------------------------------------------ - -def read_leaf_list(): - - # Open the leaf list file. - leaf_file = open( leaf_list_path, 'r' ) - - # Read the lines in the file. - line_list = leaf_file.readlines() - - # Start with a blank list. - leaf_list = [] - - # Iterate over the lines. - for line in line_list: - - # Split the specification by colon to separate the fields. - fields = string.split( string.strip( line ), ':' ) - - # Get the individual fields of the specification. - src_exts = string.split( fields[0], ',' ) - hdr_exts = string.split( fields[1], ',' ) - - # If it's a singleton list of an empty string, make it an empty list. - if len(src_exts) == 1: - if src_exts[0] == '': - src_exts = [] - - # If it's a singleton list of an empty string, make it an empty list. - if len(hdr_exts) == 1: - if hdr_exts[0] == '': - hdr_exts = [] - - # Pack the fields into a tuple. - leaf_spec = ( src_exts, hdr_exts ) - - # Append the tuple to our list. - leaf_list.append( leaf_spec ) - - # Return the list. - return leaf_list - -# ------------------------------------------------------------------------------ - -# Begin by executing main(). -main() diff --git a/attic/windows/build/ignore_list b/attic/windows/build/ignore_list deleted file mode 100644 index a8230623e..000000000 --- a/attic/windows/build/ignore_list +++ /dev/null @@ -1,7 +0,0 @@ -attic -broken -old -other -temp -tmp -test diff --git a/attic/windows/build/ignore_list.windows b/attic/windows/build/ignore_list.windows deleted file mode 100644 index 46f8b9aac..000000000 --- a/attic/windows/build/ignore_list.windows +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/attic/windows/build/leaf_list b/attic/windows/build/leaf_list deleted file mode 100644 index 98e115e3f..000000000 --- a/attic/windows/build/leaf_list +++ /dev/null @@ -1 +0,0 @@ -c:h diff --git a/attic/windows/build/nmake-help.cmd b/attic/windows/build/nmake-help.cmd deleted file mode 100644 index a46ce5f1a..000000000 --- a/attic/windows/build/nmake-help.cmd +++ /dev/null @@ -1,72 +0,0 @@ -:: -:: -:: BLIS -:: An object-based framework for developing high-performance BLAS-like -:: libraries. -:: -:: Copyright (C) 2014, The University of Texas at Austin -:: -:: 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(s) of the copyright holder(s) 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. -:: -:: - -@echo off - -echo. -echo Makefile -echo. -echo Field G. Van Zee -echo. -echo nmake Makefile for building BLIS for Microsoft Windows. nmake targets -echo may be invoked after running the configure.cmd script. Valid targets are: -echo. -echo all - Invoke the lib and dll targets. -echo lib - Build BLIS as a static library. -echo dll - Build BLIS as a dynamically-linked library. -echo help - Output help and usage information. -echo clean - Invoke clean-log and clean-build targets. -echo clean-log - Remove any log files present. -echo clean-config - Remove all products of configure.cmd. Namely, remove the -echo config, include, and src directories. -echo clean-build - Remove all products of the compilation portion of the build -echo process. Namely, remove the obj, lib, and dll directories. -echo distclean - Invoke clean-log, clean-config, and clean-build targets. -echo. -echo The Makefile also recognizes configuration options corresponding to the -echo following Makefile variables: -echo. -echo VERBOSE - When defined, nmake outputs the actual commands -echo executed instead of more concise one-line progress -echo indicators. (Undefined by default.) -echo. -echo Typically, these options are specified by commenting or uncommenting the -echo corresponding lines in the Makefile. However, if the Makefile currently does -echo not define one of the options, and you wish to enable the corresponding -echo feature without editing the Makefile, you may define the variable at the -echo command line when nmake is invoked. For example, you may enable verboseness -echo while invoking the lib target as follows: -echo. -echo nmake lib VERBOSE=1 -echo. diff --git a/attic/windows/configure.cmd b/attic/windows/configure.cmd deleted file mode 100644 index c2ee037d7..000000000 --- a/attic/windows/configure.cmd +++ /dev/null @@ -1,87 +0,0 @@ -:: -:: -:: BLIS -:: An object-based framework for developing high-performance BLAS-like -:: libraries. -:: -:: Copyright (C) 2014, The University of Texas at Austin -:: -:: 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(s) of the copyright holder(s) 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. -:: -:: - -@echo off - -:ENVIRONMENT - set GEN_CHECK_REV_FILE=.\build\gen-check-rev-file.py - set GATHER_SRC=.\build\gather-src-for-windows.py - set GEN_CONFIG_FILE=.\build\gen-config-file.py - set CONFIG_DEFS_TEMPL=.\build\config.mk.in - set SRC_TREE_DIR=..\frame - set TOP_BUILD_DIR=. - -:PARAMS - if "%1"=="" (goto USAGE) - if "%2"=="" (goto USAGE) - if "%3"=="" (goto USAGE) - - set ARCH=%1 - set BUILD=%2 - set CCOMPILER=%3 - -:TASK_UNIT - echo %0: Checking/updating revision file. - %GEN_CHECK_REV_FILE% -v - echo %0: Gathering source files into local flat directories. - %GATHER_SRC% %SRC_TREE_DIR% %TOP_BUILD_DIR% - echo %0: Creating configure definitions file. - %GEN_CONFIG_FILE% %TOP_BUILD_DIR% %ARCH% %BUILD% %CCOMPILER% %CONFIG_DEFS_TEMPL% - echo %0: Configuration and setup complete. You may now run nmake. - - goto END - -:USAGE - echo. - echo configure.cmd - echo. - echo A wrapper script for various configuration and setup scripts that need - echo. to be run before nmake when building BLIS for Microsoft Windows. - echo. - echo USAGE: - echo %0 [arch] [build] [cc] - echo. - echo arch -- The architecture string to build. - echo Supported values: {x86,x64} - echo build -- The kind of build. - echo Supported values: {debug,release} - echo cc -- The C compiler to use. - echo Supported values: {icl,cl} - echo. - echo examples: - echo %0 x86 debug icl - echo %0 x64 release cl - echo. - -:END diff --git a/attic/windows/gendll.cmd b/attic/windows/gendll.cmd deleted file mode 100644 index db0cdc1d2..000000000 --- a/attic/windows/gendll.cmd +++ /dev/null @@ -1,128 +0,0 @@ -@echo off -@setlocal enabledelayedexpansion - -rem -------------------------------------------------------------------- -rem Build a dll out of a set of object files specified by the -rem argument /objlist. -rem -rem The .lib file thus created is an "import" library, which one links -rem with, but the bulk of the code ends up in the associated .dll file. -rem --------------------------------------------------------------------- - -set THIS_SCRIPT=%~dp0%~nx0 - -if "%1"=="" goto USAGE -if "%2"=="" goto USAGE -if "%3"=="" goto USAGE -if "%4"=="" goto USAGE -if "%5"=="" goto USAGE - -set gd_lib_name=%1 -set gd_link=%gd_lib_name%-static.link -set LINKER=%3 -set LINKARGSFILE=%4 -set gd_def=%5 - -:PARSE_ARGS -set IMPORT= -set OBJLIST= -:ARGLOOP -if "%6"=="" goto ENDARGLOOP -if /i not "%6"=="/import" goto OBJARG -set IMPORT=!IMPORT! %7 -goto SHIFT -:OBJARG -if /i not "%6"=="/objlist" goto ENDARGLOOP -set OBJLIST=%7 -:SHIFT -shift /4 -shift /4 -goto ARGLOOP -:ENDARGLOOP - -if defined OBJLIST goto COMPILER_SETUP -echo Error: must supply /objlist -goto USAGE - -:COMPILER_SETUP -set gd_path=%2 -set gd_dll_path=%gd_path%.dll -set gd_main_c=dll_main__%gd_lib_name%.c -set gd_main_obj=dll_main__%gd_lib_name%.obj - -rem create C file for dll_main -for /F "tokens=*" %%i in ("#include ") do echo %%i >%gd_main_c% -echo. >>%gd_main_c% -echo BOOLEAN WINAPI DllMain( >>%gd_main_c% -echo HINSTANCE hDllHandle, >>%gd_main_c% -echo DWORD nReason, >>%gd_main_c% -echo LPVOID Reserved){ >>%gd_main_c% -echo. >>%gd_main_c% -echo BOOLEAN bSuccess = TRUE;>>%gd_main_c% -echo. >>%gd_main_c% -echo switch (nReason){ >>%gd_main_c% -echo case DLL_PROCESS_ATTACH: >>%gd_main_c% -echo DisableThreadLibraryCalls( hDllHandle ); >>%gd_main_c% -echo break; >>%gd_main_c% -echo case DLL_PROCESS_DETACH: >>%gd_main_c% -echo break; >>%gd_main_c% -echo. >>%gd_main_c% -echo }; >>%gd_main_c% -echo. >>%gd_main_c% -echo return bSuccess; >>%gd_main_c% -echo }; >>%gd_main_c% -echo.>>%gd_main_c% - -rem set up link file by specifying dll filepath and main object -echo /Fe%gd_dll_path% > %gd_link% -echo %gd_main_obj% >> %gd_link% - -rem add contents of linkargs file; most of the link argument action is -rem in this file -type %LINKARGSFILE% >> %gd_link% - -rem add command-line import libraries, if any -if defined IMPORT echo !IMPORT! >> %gd_link% - -rem add export specification -echo %gd_def% >> %gd_link% - -rem add contents of OBJLIST file -type %OBJLIST% >> %gd_link% - -rem create dll, import lib, and export file -%LINKER% /nologo /c /O2 /Fo%gd_main_obj% %gd_main_c% >> gendll-cl.log -%LINKER% @%gd_link% - -:CLEANUP -del /F /Q %gd_link% %gd_main_c% %gd_main_obj% gendll-cl.log -goto END - - -:USAGE -echo. -echo. gendll.cmd -echo. -echo. Generate a dynamically-linked library from a set of object files -echo. specified in objlist_file. -echo. -echo. Usage: -echo. %0 dllname dllpath linker linkargs_file symbols_file {/import importlib} /objlist objlist_file -echo. -echo. dllname -- the name of the DLL being created, with no extension. -echo. dllpath -- the path to the DLL being created, with no extension. -echo. linker -- the compiler to use to link the DLL. -echo. linkargs_file -- the path to a file containing a list of all linker -echo. arguments--link options, libraries, and library paths-- -echo. that that may be needed to successfully link the DLL -echo. being created. -echo. symbols_file -- the path to a file containing a list of symbols to -echo. export in the DLL. -echo. importlib -- the path to a .lib library that you wish to import into -echo. the DLL being created. Optional. -echo. objlist_file -- the path to a file containing the list of object files -echo. that make up the bulk of the DLL being created. -echo. - -:END -endlocal diff --git a/attic/windows/linkargs.txt b/attic/windows/linkargs.txt deleted file mode 100644 index 61be998da..000000000 --- a/attic/windows/linkargs.txt +++ /dev/null @@ -1,11 +0,0 @@ -/nologo -/LD /MT -/LIBPATH:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" -/LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib" -/nodefaultlib:libcmt /nodefaultlib:libc /nodefaultlib:libmmt -msvcrt.lib -/LIBPATH:"C:\Program Files (x86)\Intel\Compiler\11.1\048\lib\ia32" -/LIBPATH:"C:\Program Files (x86)\Intel\Compiler\11.1\048\mkl\ia32\lib" -mkl_intel_c.lib -mkl_sequential.lib -mkl_core.lib diff --git a/attic/windows/linkargs64.txt b/attic/windows/linkargs64.txt deleted file mode 100644 index 35df4bba9..000000000 --- a/attic/windows/linkargs64.txt +++ /dev/null @@ -1,11 +0,0 @@ -/nologo -/LD /MT -/LIBPATH:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64" -/LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\amd64" -/nodefaultlib:libcmt /nodefaultlib:libc /nodefaultlib:libmmt -msvcrt.lib -/LIBPATH:"C:\Program Files (x86)\Intel\Compiler\11.1\048\lib\intel64" -/LIBPATH:"C:\Program Files (x86)\Intel\Compiler\11.1\048\mkl\em64t\lib" -mkl_intel_lp64.lib -mkl_sequential.lib -mkl_core.lib diff --git a/attic/windows/revision b/attic/windows/revision deleted file mode 100644 index 87edf799f..000000000 --- a/attic/windows/revision +++ /dev/null @@ -1 +0,0 @@ -unknown \ No newline at end of file diff --git a/attic/windows/vc110.pdb b/attic/windows/vc110.pdb deleted file mode 100644 index 39ecfdbbb..000000000 Binary files a/attic/windows/vc110.pdb and /dev/null differ diff --git a/build/templates/license.sh b/build/templates/license.sh index ad5965c79..b9c51e289 100644 --- a/build/templates/license.sh +++ b/build/templates/license.sh @@ -5,6 +5,7 @@ # libraries. # # Copyright (C) 2019, The University of Texas at Austin +# Copyright (C) 2018, Advanced Micro Devices, Inc. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are diff --git a/config/haswell/bli_family_haswell.h b/config/haswell/bli_family_haswell.h index d3812b928..58154692a 100644 --- a/config/haswell/bli_family_haswell.h +++ b/config/haswell/bli_family_haswell.h @@ -36,14 +36,6 @@ //#ifndef BLIS_FAMILY_H //#define BLIS_FAMILY_H -// Allow the sup implementation to combine some small edge case iterations in -// the 2nd loop of the panel-block algorithm (MR) and/or the 2nd loop of the -// block-panel algorithm (NR) with the last full iteration that precedes it. -// NOTE: These cpp macros need to be explicitly set to an integer since they -// are used at compile-time to create unconditional branches or dead code -// regions. -#define BLIS_ENABLE_SUP_MR_EXT 1 -#define BLIS_ENABLE_SUP_NR_EXT 0 #if 0 // -- LEVEL-3 MICRO-KERNEL CONSTANTS AND DEFINITIONS --------------------------- diff --git a/frame/3/bli_l3_oapi.c b/frame/3/bli_l3_oapi.c index 0e6a6959d..af240c224 100644 --- a/frame/3/bli_l3_oapi.c +++ b/frame/3/bli_l3_oapi.c @@ -76,19 +76,6 @@ void PASTEMAC(opname,EX_SUF) \ AOCL_DTL_TRACE_EXIT(AOCL_DTL_LEVEL_TRACE_2) \ return;\ }\ -\ - /* If C has a zero dimension, return early. */ \ - if ( bli_obj_has_zero_dim( c ) ) return; \ -\ - /* if alpha or A or B has a zero dimension, \ - scale C by beta and return early. */ \ - if ( bli_obj_equals( alpha, &BLIS_ZERO ) || \ - bli_obj_has_zero_dim( a ) || \ - bli_obj_has_zero_dim( b ) ) \ - {\ - bli_scalm( beta, c ); \ - return;\ - }\ \ /* If the rntm is non-NULL, it may indicate that we should forgo sup handling altogether. */ \ diff --git a/frame/3/bli_l3_sup_int.c b/frame/3/bli_l3_sup_int.c index a77bb11fb..77604f4a0 100644 --- a/frame/3/bli_l3_sup_int.c +++ b/frame/3/bli_l3_sup_int.c @@ -4,7 +4,7 @@ An object-based framework for developing high-performance BLAS-like libraries. - Copyright (C) 2019, Advanced Micro Devices, Inc. + Copyright (C) 2019-20, Advanced Micro Devices, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/frame/3/bli_l3_sup_int.h b/frame/3/bli_l3_sup_int.h index 77bb11c18..3ec14db4a 100644 --- a/frame/3/bli_l3_sup_int.h +++ b/frame/3/bli_l3_sup_int.h @@ -4,7 +4,7 @@ An object-based framework for developing high-performance BLAS-like libraries. - Copyright (C) 2019, Advanced Micro Devices, Inc. + Copyright (C) 2019-20, Advanced Micro Devices, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/frame/3/bli_l3_sup_ref.c b/frame/3/bli_l3_sup_ref.c index 7c1da24f7..c28f85238 100644 --- a/frame/3/bli_l3_sup_ref.c +++ b/frame/3/bli_l3_sup_ref.c @@ -4,7 +4,7 @@ An object-based framework for developing high-performance BLAS-like libraries. - Copyright (C) 2019, Advanced Micro Devices, Inc. + Copyright (C) 2019-20, Advanced Micro Devices, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/frame/3/gemm/bli_gemm_front.c b/frame/3/gemm/bli_gemm_front.c index c2b147e5a..018fb4f1a 100644 --- a/frame/3/gemm/bli_gemm_front.c +++ b/frame/3/gemm/bli_gemm_front.c @@ -74,20 +74,6 @@ void bli_gemm_front } } #endif - // Check parameters. - if ( bli_error_checking_is_enabled() ) - bli_gemm_check( alpha, a, b, beta, c, cntx ); - -#ifdef BLIS_ENABLE_SMALL_MATRIX - // Only handle small problems separately for homogeneous datatypes. - if ( bli_obj_dt( a ) == bli_obj_dt( b ) && - bli_obj_dt( a ) == bli_obj_dt( c ) && - bli_obj_comp_prec( c ) == bli_obj_prec( c ) ) - { - err_t status = bli_gemm_small( alpha, a, b, beta, c, cntx, cntl ); - if ( status == BLIS_SUCCESS ) return; - } -#endif // Alias A, B, and C in case we need to apply transformations. bli_obj_alias_to( a, &a_local ); diff --git a/frame/thread/bli_thread.c b/frame/thread/bli_thread.c index dcb4f0692..0c0401782 100644 --- a/frame/thread/bli_thread.c +++ b/frame/thread/bli_thread.c @@ -5,7 +5,7 @@ libraries. Copyright (C) 2014, The University of Texas at Austin - Copyright (C) 2018 - 2019, Advanced Micro Devices, Inc. + Copyright (C) 2018 - 2020, Advanced Micro Devices, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -677,10 +677,11 @@ siz_t bli_thread_range_mdim // function will mistakenly skip over unstored regions of the // structured matrix, even though they represent part of that matrix // that will be dense and full (after packing). - if ( family == BLIS_GEMM ) { x = a; use_weighted = FALSE; } - else if ( family == BLIS_HERK ) { x = c; use_weighted = TRUE; } - else if ( family == BLIS_TRMM ) { x = a; use_weighted = TRUE; } - else /*family == BLIS_TRSM*/ { x = a; use_weighted = FALSE; } + if ( family == BLIS_GEMM ) { x = a; use_weighted = FALSE; } + else if ( family == BLIS_HERK ) { x = c; use_weighted = TRUE; } + else if ( family == BLIS_GEMMT ) { x = c; use_weighted = TRUE; } + else if ( family == BLIS_TRMM ) { x = a; use_weighted = TRUE; } + else /*family == BLIS_TRSM*/ { x = a; use_weighted = FALSE; } if ( use_weighted ) { @@ -736,10 +737,11 @@ siz_t bli_thread_range_ndim // function will mistakenly skip over unstored regions of the // structured matrix, even though they represent part of that matrix // that will be dense and full (after packing). - if ( family == BLIS_GEMM ) { x = b; use_weighted = FALSE; } - else if ( family == BLIS_HERK ) { x = c; use_weighted = TRUE; } - else if ( family == BLIS_TRMM ) { x = b; use_weighted = TRUE; } - else /*family == BLIS_TRSM*/ { x = b; use_weighted = FALSE; } + if ( family == BLIS_GEMM ) { x = b; use_weighted = FALSE; } + else if ( family == BLIS_HERK ) { x = c; use_weighted = TRUE; } + else if ( family == BLIS_GEMMT ) { x = c; use_weighted = TRUE; } + else if ( family == BLIS_TRMM ) { x = b; use_weighted = TRUE; } + else /*family == BLIS_TRSM*/ { x = b; use_weighted = FALSE; } if ( use_weighted ) { @@ -1062,7 +1064,6 @@ void bli_thread_partition_2x2 { *nt1 = ( work1 >= work2 ? n_thread : 1 ); *nt2 = ( work1 < work2 ? n_thread : 1 ); - return; }