| here 0 , lib-handle-addr ! \ just make sure LIB-HANDLE always works |
here 0 , lib-handle-addr ! \ just make sure LIB-HANDLE always works |
| 2variable lib-filename \ filename without extension |
2variable lib-filename \ filename without extension |
| 2variable lib-modulename \ basename of the file without extension |
2variable lib-modulename \ basename of the file without extension |
| |
2variable libcc-named-dir-v \ directory for named libcc wrapper libraries |
| |
0 value libcc-path \ pointer to path of library directories |
| |
|
| : delete-file 2drop 0 ; |
: delete-file 2drop 0 ; |
| |
|
| 0 <<# ['] #s $10 base-execute #> |
0 <<# ['] #s $10 base-execute #> |
| s" gforth_c_" 2swap s+ #>> ; |
s" gforth_c_" 2swap s+ #>> ; |
| |
|
| 2variable libcc-named-dir-v |
|
| |
|
| : libcc-named-dir ( -- c-addr u ) |
: libcc-named-dir ( -- c-addr u ) |
| libcc-named-dir-v 2@ ; |
libcc-named-dir-v 2@ ; |
| |
|
| : prepend-dirname ( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 ) |
: prepend-dirname ( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 ) |
| 2over s+ 2swap drop free throw ; |
2over s+ 2swap drop free throw ; |
| |
|
| 0 value libcc-path |
|
| |
|
| : open-wrappers ( -- addr|0 ) |
: open-wrappers ( -- addr|0 ) |
| lib-filename 2@ s" .la" s+ |
lib-filename 2@ s" .la" s+ |
| 2dup libcc-named-dir string-prefix? if ( c-addr u ) |
2dup libcc-named-dir string-prefix? if ( c-addr u ) |