distributable: url: https://github.com/xianyi/OpenBLAS/releases/download/v{{version}}/OpenBLAS-{{version}}.tar.gz strip-components: 1 versions: github: xianyi/OpenBLAS/releases/tags strip: /^v/ build: dependencies: cmake.org: '*' working-directory: build script: - cmake .. $ARGS - make --jobs {{ hw.concurrency }} - make install ## removing a redundant directory with a duplicate file - run: if test -d openblas/openblas; then rm -r openblas/openblas; fi working-directory: ${{prefix}}/include - run: | mv openblas/* . rmdir openblas ln -s . openblas working-directory: ${{prefix}}/include env: ARGS: - -DCMAKE_INSTALL_PREFIX="{{prefix}}" - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_C_FLAGS="-fPIC" - -DCMAKE_CXX_FLAGS="-fPIC" x86-64: ARGS: - -DDYNAMIC_ARCH=ON test: fixture: | #include #include #include #include "cblas.h" int main(void) { int i; double A[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0}; double B[6] = {1.0, 2.0, 1.0, -3.0, 4.0, -1.0}; double C[9] = {.5, .5, .5, .5, .5, .5, .5, .5, .5}; cblas_dgemm(CblasColMajor, CblasNoTrans, CblasTrans, 3, 3, 2, 1, A, 3, B, 3, 2, C, 3); for (i = 0; i < 9; i++) printf("%lf ", C[i]); printf("\\n"); if (fabs(C[0]-11) > 1.e-5) abort(); if (fabs(C[4]-21) > 1.e-5) abort(); return 0; } script: | mv $FIXTURE test.c cc test.c -lopenblas -pthread $CFLAGS $LDFLAGS ./a.out env: linux: CFLAGS: -fPIC LDFLAGS: -pie