version 1.21, 2007/07/21 18:18:20
|
version 1.22, 2007/10/29 15:56:31
|
Line 124
|
Line 124
|
\ first-time word, then to the run-time word; the run-time word calls |
\ first-time word, then to the run-time word; the run-time word calls |
\ the c function. |
\ the c function. |
|
|
|
: delete-file 2drop 0 ; |
|
|
require struct.fs |
require struct.fs |
|
|
Line 434 DEFER compile-wrapper-function
|
Line 435 DEFER compile-wrapper-function
|
:NONAME ( -- ) |
:NONAME ( -- ) |
c-source-file close-file throw |
c-source-file close-file throw |
0 c-source-file-id ! |
0 c-source-file-id ! |
s" gcc -fPIC -shared -Wl,-soname," lib-filename 2@ s+ |
[ s" libtool --silent --mode=link gcc -module -I " |
s" .so.1 -Wl,-export_dynamic -o " append lib-filename 2@ append |
s" includedir" getenv append s" -rpath " append ] sliteral |
[ s" .so.1 -O -I " s" includedir" getenv append s" " append ] sliteral |
tempdir s+ s" -O -c " append lib-filename 2@ append s" .c -o " append |
append lib-filename 2@ append s" .c" append ( c-addr u ) |
lib-filename 2@ append s" .la" append ( c-addr u ) |
2dup system drop free throw |
\ s" gcc -fPIC -shared -Wl,-soname," lib-filename 2@ s+ |
|
\ s" .so.1 -Wl,-export_dynamic -o " append lib-filename 2@ append |
|
\ [ s" .so.1 -O -I " s" includedir" getenv append s" " append ] sliteral |
|
\ append lib-filename 2@ append s" .c" append ( c-addr u ) |
|
~~ 2dup type 2dup system drop free throw |
$? abort" compiler generated error" \ !! call dlerror |
$? abort" compiler generated error" \ !! call dlerror |
lib-filename 2@ s" .so.1" s+ |
tempdir s" /.libs/" s+ lib-filename 2@ append s" .so.0" append |
|
2dup type |
2dup open-lib dup 0= abort" open-lib failed" \ !! call dlerror |
2dup open-lib dup 0= abort" open-lib failed" \ !! call dlerror |
( lib-handle ) lib-handle-addr @ ! |
( lib-handle ) lib-handle-addr @ ! |
2dup delete-file throw drop free throw |
2dup delete-file throw drop free throw |