| \ You should have received a copy of the GNU General Public License |
\ You should have received a copy of the GNU General Public License |
| \ along with this program. If not, see http://www.gnu.org/licenses/. |
\ along with this program. If not, see http://www.gnu.org/licenses/. |
| |
|
| |
s" os-type" environment? [IF] |
| |
2dup s" linux-gnu" str= [IF] 2drop |
| |
cell 8 = [IF] s" /usr/lib64/libffi.so" [ELSE] s" libffi.so" [THEN] |
| |
[ELSE] 2dup s" bsd" search nip nip [IF] 2drop s" libffi.so" |
| |
[ELSE] 2dup s" cygwin" str= [IF] 2drop s" libffi.dll" |
| |
[ELSE] 2dup s" darwin" string-prefix? [IF] 2drop s" libffi.dylib" |
| |
[ELSE] 2drop s" libffi" [THEN] [THEN] [THEN] [THEN] [THEN] |
| |
open-lib [if] |
| |
\ warnings @ [IF] .( including libffi.fs ) [THEN] |
| |
include libffi.fs |
| |
[ELSE] |
| s" libavcall.so" open-lib 0<> |
s" libavcall.so" open-lib 0<> |
| s" libcallback.so" open-lib 0<> and [if] |
s" libcallback.so" open-lib 0<> and [if] |
| .( including fflib.fs [ffcall] ) |
\ warnings @ [IF] .( including fflib.fs [ffcall] ) [THEN] |
| include fflib.fs |
include fflib.fs |
| [ELSE] |
[ELSE] |
| s" libffi.so" open-lib [if] |
|
| .( including libffi.fs ) |
|
| include libffi.fs |
|
| [ELSE] |
|
| .( Neither libffi nor ffcall are available ) cr |
.( Neither libffi nor ffcall are available ) cr |
| abort |
abort |
| .( Using oldlib.fs; incompatible with fflib.fs and libffi.fs) cr |
.( Using oldlib.fs; incompatible with fflib.fs and libffi.fs) cr |