[Ecls-list] compiler flags for external libraries

Robert Lehr bozzio at the-lehrs.com
Mon Nov 24 11:06:05 UTC 2003


On Mon, Nov 24, 2003 at 10:00:44AM +0100, Juan Jose Garcia-Ripoll wrote:
> On Saturday 22 November 2003 03:08, Robert Lehr wrote:
> > First, has it been done with ECL?  If so, what is the usual method?  I
> > accomplished this by modifying the exported c:*cc*.
> 
> Don't do it this way. I do not remember whether it was introduced in ECL 0.9c, 
> but the right way would be to use
> 	C::BUILD-FASL
> It works just like BUILD-PROGRAM, but builds a loadable module. Another 
>           .
>           .
>           .

This is fine.  But I cannot pass include paths to the compiler.  How about
adding a cc-flags or c-flags flag to BUILDER to overcome this?

Your idea about adding cc-flags and ld-flags to the COMPILE & COMPILE-FILE
functions is very good, too.

> > The second matter concerns current scope during compilation.  These two
> > forms fail...
> 
> Yes, _ECL_ is right :-) The whole eval-when is read together, because it is a 

Understood.  I can work with it more easily now.

> But this is also not "right". If you want to change the compiler or linker 
> flags, do it around your compilation form:
> 
> 	(let ((c::*cc-flags* (concatenate 'string c::*cc-flags* "..."))
> 	      (c::*ld-bundle-flags* (concatenate ...))
> 	      ...)
> 	   (compile ...))

Yes, this is good, too.  Although for my current purpose, I will try to use
build-fasl for the moment.  This should work with defsystem, too.  So this idea
could be better altother.

-- 

Robert Lehr
bozzio at the-lehrs.com




More information about the ecl-devel mailing list