Diff for /gforth/libcc.fs between versions 1.24 and 1.30

version 1.24, 2007/12/04 15:19:59 version 1.30, 2008/02/12 20:28:51
Line 1 Line 1
 \ libcc.fs      foreign function interface implemented using a C compiler  \ libcc.fs      foreign function interface implemented using a C compiler
   
 \ Copyright (C) 2006 Free Software Foundation, Inc.  \ Copyright (C) 2006,2007 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
 \ Gforth is free software; you can redistribute it and/or  \ Gforth is free software; you can redistribute it and/or
 \ modify it under the terms of the GNU General Public License  \ modify it under the terms of the GNU General Public License
 \ as published by the Free Software Foundation; either version 2  \ as published by the Free Software Foundation, either version 3
 \ of the License, or (at your option) any later version.  \ of the License, or (at your option) any later version.
   
 \ This program is distributed in the hope that it will be useful,  \ This program is distributed in the hope that it will be useful,
Line 15 Line 15
 \ GNU General Public License for more details.  \ GNU General Public License for more details.
   
 \ 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, write to the Free Software  \ along with this program. If not, see http://www.gnu.org/licenses/.
 \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.  
   
   
 \ What this implementation does is this: if it sees a declaration like  \ What this implementation does is this: if it sees a declaration like
Line 124 Line 123
 \ 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 ;  [ifundef] parse-name
       ' parse-word alias parse-name
   [then]
   [ifundef] defer!
   : defer! ( xt xt-deferred -- ) \ gforth  defer-store
   \G Changes the @code{defer}red word @var{xt-deferred} to execute @var{xt}.
       >body [ has? rom [IF] ] @ [ [THEN] ] ! ;
   [then]
   
   \ : delete-file 2drop 0 ;
   
 require struct.fs  require struct.fs
   
Line 364  create gen-par-types Line 372  create gen-par-types
     ." ," gen-par-n ." ," gen-par-n ." )" ;      ." ," gen-par-n ." ," gen-par-n ." )" ;
   
 : gen-wrapped-r ( pars c-name fp-change1 sp-change1 -- fp-change sp-change )  : gen-wrapped-r ( pars c-name fp-change1 sp-change1 -- fp-change sp-change )
     2dup gen-par-r 2>r ." =" gen-wrapped-void 2r> ;      2dup gen-par-r 2>r ." =" gen-wrapped-call 2r> ;
   
 : gen-wrapped-func ( pars c-name fp-change1 sp-change1 -- fp-change sp-change )  : gen-wrapped-func ( pars c-name fp-change1 sp-change1 -- fp-change sp-change )
     gen-wrapped-a ;      gen-wrapped-a ;
Line 443  DEFER compile-wrapper-function Line 451  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" libtool --silent --mode=compile gcc -I "      [ libtool-command s"  --silent --mode=compile gcc -I " s+
       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 )
     2dup system drop free throw $? abort" libtool compile failed"      2dup system drop free throw $? abort" libtool compile failed"
     s" libtool --silent --mode=link gcc -module -rpath " tempdir s+ s"  " append      [ libtool-command s"  --silent --mode=link gcc -module -rpath " s+ ] sliteral
       tempdir 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 )
     2dup system drop free throw $? abort" libtool link failed"      2dup system drop free throw $? abort" libtool link failed"

Removed from v.1.24  
changed lines
  Added in v.1.30


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>