More, cause I can't sleep til I get this. I've got the arguments in order, and in the meantime figured out how to use blocks to check for functions with proper arguments.

```ruby
have_func("clapack_dgetrf(Order, M, N, &A, lda, &ipiv)", ["cblas.h", "clapack.h"]) do |src|
  s = src.split("int t(void)")
  s[1] << <<HERE
int Order = CblasRowMajor;
int M = 0;
int N = 0;
double A = 1.0;
lda = 0;
int ipiv = 0;
HERE
  s.join('int t(void)')
end
```

produces this c code:

```c
 1: #include "ruby.h"
 2:
 3: #include <cblas.h>
 4: #include <clapack.h>
 5:  
 6: /*top*/
 7: extern int t(void);
 8: int main(int argc, char **argv)
 9: {
10:   if (argc > 1000000) {
11:     printf("%p", &t);
12:   }
13:
14:   return 0;
15: }
16: int Order = CblasRowMajor;
17: int M = 0;
18: int N = 0;
19: double A = 1.0;
20: int lda = 0;
21: int ipiv = 0;
22: int t(void) { clapack_dgetrf(Order, M, N, &A, lda, &ipiv); return 0; }
```

which gives me this error:

```
Undefined symbols for architecture x86_64:
  "_clapack_dgetrf", referenced from:
      _t in conftest-cd983b.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```