version 1.52, 2008/07/29 09:01:44
|
version 1.55, 2008/09/18 15:47:04
|
Line 226 end-struct c-lib%
|
Line 226 end-struct c-lib%
|
|
|
variable c-libs \ linked list of library names (without "lib") |
variable c-libs \ linked list of library names (without "lib") |
|
|
: add-lib ( c-addr u -- ) |
: add-lib ( c-addr u -- ) \ gforth |
\G Add library lib@i{string} to the list of libraries, where |
\G Add library lib@i{string} to the list of libraries, where |
\G @i{string} is represented by @i{c-addr u}. |
\G @i{string} is represented by @i{c-addr u}. |
c-lib% %size allocate throw dup >r |
c-lib% %size allocate throw dup >r |
Line 431 create gen-wrapped-types
|
Line 431 create gen-wrapped-types
|
dup { descriptor } |
dup { descriptor } |
count { ret } count 2dup { d: pars } chars + count { d: c-name } |
count { ret } count 2dup { d: pars } chars + count { d: c-name } |
." void " lib-modulename 2@ type ." _LTX_" descriptor wrapper-function-name 2dup type drop free throw |
." void " lib-modulename 2@ type ." _LTX_" descriptor wrapper-function-name 2dup type drop free throw |
.\" (void)\n" |
.\" (GFORTH_ARGS)\n" |
.\" {\n Cell MAYBE_UNUSED *sp = gforth_SP;\n Float MAYBE_UNUSED *fp = gforth_FP;\n " |
.\" {\n Cell MAYBE_UNUSED *sp = gforth_SP;\n Float MAYBE_UNUSED *fp = gforth_FP;\n " |
pars c-name 2over count-stacks ret gen-wrapped-stmt .\" ;\n" |
pars c-name 2over count-stacks ret gen-wrapped-stmt .\" ;\n" |
?dup-if |
?dup-if |
Line 558 DEFER compile-wrapper-function ( -- )
|
Line 558 DEFER compile-wrapper-function ( -- )
|
s" includedir" getenv append ] sliteral |
s" includedir" getenv append ] sliteral |
s" -O -c " s+ lib-filename 2@ append s" .c -o " append |
s" -O -c " s+ lib-filename 2@ append s" .c -o " append |
lib-filename 2@ append s" .lo" append ( c-addr u ) |
lib-filename 2@ append s" .lo" append ( c-addr u ) |
\ cr 2dup type |
\ 2dup type cr |
2dup system drop free throw $? abort" libtool compile failed" |
2dup system drop free throw $? abort" libtool compile failed" |
[ libtool-command s" --silent --mode=link --tag=CC " s+ |
[ libtool-command s" --silent --mode=link --tag=CC " s+ |
libtool-cc append s" -module -rpath " s+ ] sliteral |
libtool-cc append libtool-flags append s" -module -rpath " s+ ] sliteral |
lib-filename 2@ dirname replace-rpath s+ s" " append |
lib-filename 2@ dirname replace-rpath s+ s" " append |
lib-filename 2@ append s" .lo -o " append |
lib-filename 2@ append s" .lo -o " append |
lib-filename 2@ append s" .la" append ( c-addr u ) |
lib-filename 2@ append s" .la" append ( c-addr u ) |
Line 614 DEFER compile-wrapper-function ( -- )
|
Line 614 DEFER compile-wrapper-function ( -- )
|
defer lastxt dup c-function-rt lastxt c-function-ft |
defer lastxt dup c-function-rt lastxt c-function-ft |
lastxt swap defer! ; |
lastxt swap defer! ; |
|
|
: clear-libs ( -- ) |
: clear-libs ( -- ) \ gforth |
\G Clear the list of libs |
\G Clear the list of libs |
c-source-file-id @ if |
c-source-file-id @ if |
compile-wrapper-function |
compile-wrapper-function |