pantry/projects/openblas.net/package.yml
Marc Seitz d1eaadf428
+openblas (#1464)
* +openblas

* fix build

* add -pthread; cleanup

* fix cpu target for darwin/x86-64

* exclude darwin/x86-64 for now

---------

Co-authored-by: Jacob Heider <jacob@tea.xyz>
2023-05-12 18:29:40 -04:00

66 lines
1.7 KiB
YAML

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/
platforms:
- linux
- darwin/aarch64
# FIXME: illegal instruction on darwin/x86-64
build:
dependencies:
tea.xyz/gx/cc: c99
tea.xyz/gx/make: '*'
cmake.org: '*'
working-directory: build
script:
- cmake .. -DCMAKE_INSTALL_PREFIX="{{prefix}}" -DCMAKE_BUILD_TYPE=Release
- make --jobs {{ hw.concurrency }} $ARGS
- make install
## removing a redundant directory with a duplicate file
- run: rm -r openblas/openblas
working-directory: ${{prefix}}/include
- run: |
mv openblas/* .
rmdir openblas
ln -s . openblas
working-directory: ${{prefix}}/include
# FIXME: illegal instruction on darwin/x86-64
# line 25: 2290 Illegal instruction: 4 ./a.out
# env:
# darwin/x86-64:
# ARGS:
# - TARGET=CORE2
test:
fixture: |
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#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;
}
dependencies:
tea.xyz/gx/cc: c99
script: |
mv $FIXTURE test.c
cc test.c -lopenblas -pthread $CFLAGS $LDFLAGS
./a.out