From: Marco A. <ma...@cs...> - 2001-08-10 15:24:23
|
> Date: Thu, 9 Aug 2001 17:07:03 +0100 > Cc: ccl...@li... > Content-Type: text/plain; charset=us-ascii > Content-Disposition: inline > User-Agent: Mutt/1.3.20i > From: Christophe Rhodes <cs...@ca...> > X-Filter-Version: 1.7 (cat) > Content-Length: 1267 > > On Thu, Aug 09, 2001 at 11:24:32AM -0400, Marco Antoniotti wrote: > > > > May I kindly prod you again to have a second look at CL-CONFIGURATION? > > > > That is what it does. It ain't complete and foolproof, but that is > > > > the idea. > > > > > > If you do, please report what you find. Macro has been prodding me > > > forever to look at it, but I keep not seeing the point... I'm assuming > > > I'm blind :-) > > > > The idea is very simple. Think 'configure' written in CL. You > > separate the concerns of "building" a system (defsystem/make) and > > configuring it (cl-configuration/autoconf). > > Yes, but this doesn't actually tell me either what problems it solves > or whether it does so in an optimal fashion. Trying to copy > traditional Unix tools isn't necessarily the best approach. It solves the same problem that c-l-c solves, in a different way (note that I could make CL-CONFIGURATION default to cl-library: instead of /usr/local). Whether it is "optimal", I don not know. I certainly took care to make it flexible and portable. It is true that trying to copy the UNIX apporach isn't necessarily the best solution, but it has the advantages of "familiarity". Besides, 'autoconf' works well. > > On top of that, cl-configuration is pure CL. Hence it is portable to > > the Windows systems as well. > > As anyone who has recently suffered with pathnames can testify, this > doesn't even remotely follow... That is why pathnames must be dealt with in a careful and controlled way. CL-CONFIGURATION tries to do that. And it is portable to Windows. (conf:defconfiguration "VALIS" () (:library-location "/home/marcoxa/projects/genomics/valis/" :os-type :unix) (:library-location "C:\\VALIS-CL\\" :os-type :ms-windows) (:finally (conf:configure-format t "VALIS package configured."))) This is a simple example of what CL-CONFIGURATION can do. Note that the message that sparked this discussion was Tijs van Bakel proposal to augment DEFSYSTEM. (mk:defsystem clggi :source-pathname "" :installed-source-pathname "cl-library:clggi;" :components ((:file "package") (:file "ffi-load") ...)) I toyed with this idea, but I beleive it fails to "separate" the concerns. My solution is (conf:defconfiguration "CLGI" () (:library-location "/where/I/want/the/library/" :os-type :unix) (:source-location "/the/sources/are/here/" :os-type :unix) (:library-location "C:\\clgi\\" :os-type :ms-windows) (:source-location "D:\\stuff\\clgi\\sources\\" :os-type :ms-windows)) and then you can always say (conf:setup "CLGI" :library-location "/no/I/want/to/put/my/stuff/here/") which will redefine your paths accordingly. That is what CL-CONFIGURATION does and how it can be used to solve Tijs' problem. Cheers -- Marco Antoniotti ======================================================== NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488 719 Broadway 12th Floor fax +1 - 212 - 995 4122 New York, NY 10003, USA http://bioinformatics.cat.nyu.edu "Hello New York! We'll do what we can!" Bill Murray in `Ghostbusters'. |