alien.inline.compiler: fixed library-path and made other words private
							parent
							
								
									b03b769966
								
							
						
					
					
						commit
						eb72ba84f6
					
				| 
						 | 
				
			
			@ -22,14 +22,8 @@ SYMBOL: C++
 | 
			
		|||
        { [ dup windows? ] [ drop ".dll" ] }
 | 
			
		||||
    } cond ;
 | 
			
		||||
 | 
			
		||||
: library-path ( str -- str' )
 | 
			
		||||
    '[ "lib" % _ % library-suffix % ] "" make temp-file ;
 | 
			
		||||
 | 
			
		||||
: src-suffix ( lang -- str )
 | 
			
		||||
    {
 | 
			
		||||
        { C [ ".c" ] }
 | 
			
		||||
        { C++ [ ".cpp" ] }
 | 
			
		||||
    } case ;
 | 
			
		||||
: library-path ( str -- path )
 | 
			
		||||
    '[ "lib" % _ % library-suffix % ] "" make inline-library-file ;
 | 
			
		||||
 | 
			
		||||
HOOK: compiler os ( lang -- str )
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -59,8 +53,16 @@ M: macosx link-descr
 | 
			
		|||
    { "-g" "-prebind" "-dynamiclib" "-o" }
 | 
			
		||||
    cpu x86.64? [ { "-arch" "x86_64" } prepend ] when ;
 | 
			
		||||
 | 
			
		||||
: link-command ( in out lang -- descr )
 | 
			
		||||
    compiler-descr link-descr append prepend prepend ;
 | 
			
		||||
<PRIVATE
 | 
			
		||||
: src-suffix ( lang -- str )
 | 
			
		||||
    {
 | 
			
		||||
        { C [ ".c" ] }
 | 
			
		||||
        { C++ [ ".cpp" ] }
 | 
			
		||||
    } case ;
 | 
			
		||||
 | 
			
		||||
: link-command ( args in out lang -- descr )
 | 
			
		||||
    [ 2array ] dip compiler-descr link-descr
 | 
			
		||||
    append prepend prepend ;
 | 
			
		||||
 | 
			
		||||
:: compile-to-object ( lang contents name -- )
 | 
			
		||||
    name ".o" append temp-file
 | 
			
		||||
| 
						 | 
				
			
			@ -71,8 +73,9 @@ M: macosx link-descr
 | 
			
		|||
 | 
			
		||||
:: link-object ( lang args name -- )
 | 
			
		||||
    args name [ library-path ]
 | 
			
		||||
    [ ".o" append temp-file ] bi 2array
 | 
			
		||||
    [ ".o" append temp-file ] bi
 | 
			
		||||
    lang link-command try-process ;
 | 
			
		||||
PRIVATE>
 | 
			
		||||
 | 
			
		||||
:: compile-to-library ( lang args contents name -- )
 | 
			
		||||
    lang contents name compile-to-object
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue