From Karl.Reinl at ...16... Tue Mar 1 21:55:07 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Tue, 1 Mar 2005 21:55:07 +0100 Subject: [Gambas-devel] need a hand for testing Message-ID: <200503012155.08050.Karl.Reinl@...16...> Salut, I wrote a class for handle with gb.db and TableView. I'v tried to use strictly the gb.db sql way. Most ran fine, even if it is not finally tested . My problem are two things (till now). First : In the project you can use the right mouse button to click on cell or the columns header. Click on a cell opens a InputBox with the Cells value for makeing changes Click on the header opens a InputBox for asking a value to search for on this column. That makes troubles on postgresql. If I'm on the first page, the right mouse click on the header works fine (use xPos = Mouse.X , yPos = Mouse.Y , TBVdb1.RowAt(yPos), TBVdb1.ColumnAt(xPos) [you find it in FMain.TBVdb1_MouseDown()]) to find out where I am. But if I'v scrolled down on the TableView and click on the header I get back a Cell.Value Seconde: But this can be while I ignore the right syntax my 'Like 1&' don't work on postgresql (to find in DBTableView.TblVFind). Would be nice to have a look to it. Oh, I have to say, my postgresql is roughly installed and makes sometimes troubles. Thanks Amicalment Charly -------------- next part -------------- A non-text attachment was scrubbed... Name: DBTableView-0.0.1.tar.gz Type: application/x-tgz Size: 77540 bytes Desc: not available URL: From Karl.Reinl at ...16... Tue Mar 1 22:31:14 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Tue, 1 Mar 2005 22:31:14 +0100 Subject: [Gambas-devel] Re: need a hand for testing In-Reply-To: <200503012155.08050.Karl.Reinl@...16...> References: <200503012155.08050.Karl.Reinl@...16...> Message-ID: <200503012231.14340.Karl.Reinl@...16...> On Tuesday 01 March 2005 21:55, Charlie Reinl wrote: > Salut, > shame on me, that first Pb,seams to be a TableView RowAt pb and has nothing to do with poastgresql > First : > In the project you can use the right mouse button to click on cell or the > columns header. > Click on a cell opens a InputBox with the Cells value for makeing changes > Click on the header opens a InputBox for asking a value to search for on > this column. > That makes troubles on postgresql. > If I'm on the first page, the right mouse click on the header works fine > (use xPos = Mouse.X , yPos = Mouse.Y , TBVdb1.RowAt(yPos), > TBVdb1.ColumnAt(xPos) [you find it in FMain.TBVdb1_MouseDown()]) to find > out where I am. > But if I'v scrolled down on the TableView and click on the header I get > back a Cell.Value Amicalment Charly From gambasfr at ...4... Tue Mar 1 23:35:22 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Tue, 1 Mar 2005 23:35:22 +0100 Subject: [Gambas-devel] About the container class Message-ID: <200503012335.22199.gambasfr@...4...> Hi benoit I've think about something... Can you add an event in the container class that raise when a new child is added to the container. in fact it will be usefull to force the code to scan the child properties and get some information about it. I'm going to try to add it to my own source but if you can add this more officially... i will be happy Regards, Fabien Bodard From gambas at ...1... Wed Mar 2 11:33:12 2005 From: gambas at ...1... (Benoit Minisini) Date: Wed, 2 Mar 2005 11:33:12 +0100 Subject: [Gambas-devel] Re: QMap my implementation in DCOP class file. In-Reply-To: <6.0.0.22.2.20050224184018.02bcc750@...239...> References: <6.0.0.22.2.20050224184018.02bcc750@...239...> Message-ID: <200503021133.12260.gambas@...1...> On Thursday 24 February 2005 19:07, Carlo Sorda wrote: > Thanks a lot!!! > > I have compiled this: > > else if (type == QT_T_QMAP_QSTRING) > { > GB_COLLECTION aCollection; > GB_VARIANT aValue; > > QMap r; > reply >> r; > > GB.Collection.New(&aCollection,GB_COMP_BINARY); > > QMap::Iterator it; > aValue.type = GB_T_VARIANT; > > for (it =r.begin() ;it != r.end();it++) > { > GB.NewString(&aValue.value._string.value,it.data().utf8().data(),0); > > GB.Collection.Set(aCollection,it.key().utf8().data(),0,&aValue); > } > > and I haved an error like this: > Type mismatch: wanted Void, got Variant instead!!! > What can I do?? > > Tank you , see you soon. > > By comparing with other similar datatype, I think a 'GB.ReturnObject(aCollection)' is missing... Regards, -- Benoit Minisini mailto:gambas at ...1... From csorda at ...69... Wed Mar 2 12:47:44 2005 From: csorda at ...69... (Carlo Sorda) Date: Wed, 02 Mar 2005 12:47:44 +0100 Subject: [Gambas-devel] Re: QMap my implementation in DCOP class file. In-Reply-To: <200503021133.12260.gambas@...1...> References: <6.0.0.22.2.20050224184018.02bcc750@...239...> <200503021133.12260.gambas@...1...> Message-ID: <6.0.0.22.2.20050302123302.02b9d720@...239...> > >By comparing with other similar datatype, I think a >'GB.ReturnObject(aCollection)' is missing... > >Regards, Thanks for your answer, but I think the problem is not in GB.ReturnObject, becouse the error appear when GB.Collection.Set(aCollection,(const char*)&aKey,0,&aValue) is called!! In fact I implemented this method using GB_ARRAY of GB_STRING like this and there is not error appear!!! ... //{ "QMap", (GB_TYPE)"Collection" }, { "QMap", (GB_TYPE)"String[]" }, ... ... And into method: else if (type == QT_T_QMAP_QSTRING) { GB_ARRAY array; ... n = r.count(); GB.Array.New(&array,GB_Y_STRING,n); for (it = r.begin();it!=r.end();i++) GB.NewString((char **)GB_Array.Get(array,i++),it.key().utf8.data(),0); ... GB.ReturnObject(array); In this case there isn't error!!! Is there a problem in Collection's Set method! I Hope not! Thanks in advance, see you soon, Carlo. From ronstk at ...124... Wed Mar 2 21:37:04 2005 From: ronstk at ...124... (Ron Onstenk) Date: Wed, 2 Mar 2005 21:37:04 +0100 Subject: [Gambas-devel] Re: need a hand for testing In-Reply-To: <200503012231.14340.Karl.Reinl@...16...> References: <200503012155.08050.Karl.Reinl@...16...> <200503012231.14340.Karl.Reinl@...16...> Message-ID: <200503022137.05055.ronstk@...124...> On Tuesday 01 March 2005 22:31, Charlie Reinl wrote: > On Tuesday 01 March 2005 21:55, Charlie Reinl wrote: > > Salut, > > shame on me, that first Pb,seams to be a TableView RowAt pb and has > nothing to do with poastgresql > > > First : > > In the project you can use the right mouse button to click on cell or the > > columns header. > > Click on a cell opens a InputBox with the Cells value for makeing changes > > Click on the header opens a InputBox for asking a value to search for on > > this column. > > That makes troubles on postgresql. > > If I'm on the first page, the right mouse click on the header works fine > > (use xPos = Mouse.X , yPos = Mouse.Y , TBVdb1.RowAt(yPos), <======== > > TBVdb1.ColumnAt(xPos) [you find it in FMain.TBVdb1_MouseDown()]) to find > > out where I am. I see here no offset for the row/column header is addjusted to the gotten xpos and ypos. But you can click on the column header for search, then it must adjusted. > > But if I'v scrolled down on the TableView and click on the header I get > > back a Cell.Value > > Amicalment > Charly Ron From ronstk at ...124... Wed Mar 2 21:51:04 2005 From: ronstk at ...124... (Ron Onstenk) Date: Wed, 2 Mar 2005 21:51:04 +0100 Subject: [Gambas-devel] About the container class In-Reply-To: <200503012335.22199.gambasfr@...4...> References: <200503012335.22199.gambasfr@...4...> Message-ID: <200503022151.04396.ronstk@...124...> On Tuesday 01 March 2005 23:35, Bodard Fabien wrote: > Hi benoit > > I've think about something... > > Can you add an event in the container class that raise when a new child is > added to the container. > > in fact it will be usefull to force the code to scan the child properties > and get some information about it. > > I'm going to try to add it to my own source but if you can add this more > officially... i will be happy > > Regards, > Fabien Bodard > > Makes sense but maybe it can be a OnChildrenCount(index) This does also the Remove(index) where index equals the ID or the ordered number in the list that is involved. OnChildrenCount(index) OnCountChange(index) OnChildrenAdd() OnChildrenRemove() or OnChildren(Method,Index) where Method a enum for Add, Remove, etc features. Ron From daniel.campos at ...103... Thu Mar 3 13:44:10 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Thu, 03 Mar 2005 13:44:10 +0100 Subject: [Gambas-devel] New GTK+ features Message-ID: <4227069A.2020507@...103...> Hi: Here's gb.gtk 050303. Two new features added: 1) I've implemented then "MovieBox" widget, it is fully functional, so MovieBox could be removed from gb.qt.ext and added to gb.qt. 2) I've added a new (experimental) feature, that I think is very important, trying to make it as simple and intuitive as possible: I've added a new widget called "Plugin" which embeeds a X-window (mainly from another process, but could be from the same process). This has been done using the XEMBED protocol specification, which is managed by the GtkPlugin and GtkSocket classes when using GTK+, and can be easily implemented with QtXembedContainer and QtXembedClient ( http://www.trolltech.com/products/solutions/catalog/Widgets/qtxembed/ ) when using QT ... Beno?t? Thanks to the XEMBED protocol, both client (plugin) and server (main application) can work together, without the problems of the old system: just using a remote XID without any coordination between the two apps: A plugin is just a Form. Now gb.gtk forms have an optional parameter called "Plug". If you load a Form using the "normal way": Form1.Load() Form1.Show() Form is shown as usual, allowing to work with the plugin as a stand-alone application, and to debug the program without problems. But if you ser the "Plug" parameter: Form1.Load(NULL,true) Form1.Show() The Form is hidden (it is really a GtkPlug window instead of a main window). Then we obtain the Form ID: PRINT Form1.ID (We print it on stdout, or we can write in a file, or send it using a Socket, or whatever) We receive the ID in the main application, and we pass the Form ID from the plugin application to the "Plugin" widget: ... READ #hProcess,Id,-255 ... MyPlugin.Plug (Id) ... Then, the Plugin widget shows the Form embeed into the main application. "Plugin" has two signals: "Plugged" when a remoted XID is sucessfully loaded, and "Unplugged" when the plugin application frees or closes then Form. Then, the programmer can create any communication system between both applications. As XEMBED protocol is a standard, you can even mix GTK+,QT, Motif, FOX... applications, written in any programming language (python, for example). This feature would allow to write, for example, a control panel adding new features using plugins, (writting plugins for the Mandrake control center?), and to work with these plugins as stand-alone applications when you do not want to use the centralized control panel. This would allow also to run applications from different computers (that are using the same X-Server), and to show them as one big application to the user. I send a little example, with a little communication system. You've create a "plugintest" folder into your home folder. Then compile and place there the "Plugin1" and "Plugin2" applications. Now run the "MainApplication" and enjoy! (do not place "MainApp" at plugins folder, it will not run!) Regards, D. Campos -------------- next part -------------- A non-text attachment was scrubbed... Name: MainApp.tar.gz Type: application/x-gzip Size: 1914 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Plugin1.tar.gz Type: application/x-gzip Size: 1008 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Plugin2.tar.gz Type: application/x-gzip Size: 1013 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: gtk-050303-gb1.9.tar.bz2 Type: application/x-bzip Size: 61010 bytes Desc: not available URL: From gambas at ...1... Thu Mar 3 18:38:22 2005 From: gambas at ...1... (Benoit Minisini) Date: Thu, 3 Mar 2005 18:38:22 +0100 Subject: [Gambas-devel] Using GAMBAS for running Visual Basic projects (2) Message-ID: <200503031838.22296.gambas@...1...> Some weeks ago, Rob Kudla sent me a modified version of the IDE that includes a rudimentary Visual Basic project translator that mainly translates forms. As you may have understood in my previous post, Richard Stallman semms to be interested in using Gambas to run Visual Basic projects, and may look for people that are able to work on that. I think the better way to do that is writing an external translator tool (in GAMBAS of course). So now I think I won't include your changes directly in the IDE, Rob, but keep them for this translator. An external tool is more flexible, as I don't know who will work on that at the moment. What do you (Rob, and others of course) think about that ? Regards, -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Thu Mar 3 18:33:03 2005 From: gambas at ...1... (Benoit Minisini) Date: Thu, 3 Mar 2005 18:33:03 +0100 Subject: [Gambas-devel] Using GAMBAS for running Visual Basic projects Message-ID: <200503031833.03823.gambas@...1...> Hi, I didn't have the time to talk with you during the FOSDEM about Gambas, as there was too many people around you. I listened your talk with a friend of mine who was a rock guitarist in the past, before maintaining networks now. He was totally agree with you about copyright on music and other artistic works. With his own words, he says that as there is no "painting industry", nor "sculture industry", why should there be a "music industry" ? We both find your talk very clear, accessible to everybody, even for the non-geek people. Let's go back to Gambas now... I wrote a little document with two sketches with OpenOffice to explain the way Gambas will be able to be used for running Visual Basic projects. Actually, running them directly is impossible, but porting them should be. I join this mail the file in OpenOffice format and in PDF format. Tell me if you need another format, and/or if you need more technical details. Regards, -- Benoit Minisini mailto:gambas at ...1... -------------- next part -------------- A non-text attachment was scrubbed... Name: Visual Basic to Gambas translator.sxd Type: application/vnd.sun.xml.draw Size: 28795 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Visual Basic to Gambas translator.pdf Type: application/pdf Size: 58256 bytes Desc: not available URL: From gambasfr at ...4... Thu Mar 3 21:46:35 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Thu, 3 Mar 2005 21:46:35 +0100 Subject: [Gambas-devel] Using GAMBAS for running Visual Basic projects (2) In-Reply-To: <200503031838.22296.gambas@...1...> References: <200503031838.22296.gambas@...1...> Message-ID: <200503032146.35725.gambasfr@...4...> Le jeudi 3 Mars 2005 18:38, Benoit Minisini a ?crit?: > Some weeks ago, Rob Kudla sent me a modified version of the IDE that > includes a rudimentary Visual Basic project translator that mainly > translates forms. > > As you may have understood in my previous post, Richard Stallman semms to > be interested in using Gambas to run Visual Basic projects, and may look > for people that are able to work on that. > > I think the better way to do that is writing an external translator tool > (in GAMBAS of course). > > So now I think I won't include your changes directly in the IDE, Rob, but > keep them for this translator. > > An external tool is more flexible, as I don't know who will work on that at > the moment. > > What do you (Rob, and others of course) think about that ? > > Regards, Hi benoit, For me, gambas must to beleve gambas.. I meen, I don't want a vb clone! So an translator is the better way to enable the vb source migration. Fabien From sourceforge-raindog2 at ...19... Thu Mar 3 21:59:59 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Thu, 3 Mar 2005 15:59:59 -0500 Subject: [Gambas-devel] Using GAMBAS for running Visual Basic projects (2) In-Reply-To: <200503031838.22296.gambas@...1...> References: <200503031838.22296.gambas@...1...> Message-ID: <200503031559.59654.sourceforge-raindog2@...19...> On Thursday 03 March 2005 12:38, Benoit Minisini wrote: > As you may have understood in my previous post, Richard > Stallman semms to be interested in using Gambas to run Visual > Basic projects, and may look for people that are able to work > on that. > So now I think I won't include your changes directly in the > IDE, Rob, but keep them for this translator. > An external tool is more flexible, as I don't know who will > work on that at the moment. > What do you (Rob, and others of course) think about that ? Er, I originally published it as an external tool, and you had me merge it into the IDE. Just go back in the archives and find my post about ImportVBProject from 2005-01-27 23:03. I'll repost it if people like (the only reason it's not on my website is because it requires the 1.9 series of gambas, and I don't want to entice new users coming from VB and Windows to try an unstable pre-alpha release like that.) I suspect the author of the world's most widely used compiler will probably know some people who'd do better at parsing and translating the actual VB code than I would, but I'll start trying to do some rudimentary translation. I still haven't gotten the original post about using Gambas for running VB projects, btw, so I'm sorry if I've said anything that contradicts that post. Rob From sourceforge-raindog2 at ...19... Fri Mar 4 15:48:12 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Fri, 4 Mar 2005 09:48:12 -0500 Subject: [Gambas-devel] New GTK+ features In-Reply-To: <4227069A.2020507@...103...> References: <4227069A.2020507@...103...> Message-ID: <200503040948.12913.sourceforge-raindog2@...19...> On Thursday 03 March 2005 07:44, Daniel Campos wrote: > Here's gb.gtk 050303. Two new features added: I received this mail 27 hours after Daniel sent it, and looking at the headers, the slowness was definitely in sourceforge's servers. I still haven't gotten Benoit's original post about VB and rms. Anyone else getting mail late or never? Rob From gambas at ...1... Fri Mar 4 16:06:45 2005 From: gambas at ...1... (Benoit Minisini) Date: Fri, 4 Mar 2005 16:06:45 +0100 Subject: [Gambas-devel] New GTK+ features In-Reply-To: <200503040948.12913.sourceforge-raindog2@...19...> References: <4227069A.2020507@...103...> <200503040948.12913.sourceforge-raindog2@...19...> Message-ID: <200503041606.46001.gambas@...1...> On Friday 04 March 2005 15:48, Rob wrote: > On Thursday 03 March 2005 07:44, Daniel Campos wrote: > > Here's gb.gtk 050303. Two new features added: > > I received this mail 27 hours after Daniel sent it, and looking > at the headers, the slowness was definitely in sourceforge's > servers. I still haven't gotten Benoit's original post about VB > and rms. Anyone else getting mail late or never? > > Rob > Yes, it seems that sourceforge servers have problems. It happens regularly :-) -- Benoit Minisini mailto:gambas at ...1... From na2492 at ...16... Fri Mar 4 16:55:03 2005 From: na2492 at ...16... (Charlie Reinl) Date: Fri, 4 Mar 2005 16:55:03 00100 Subject: [Gambas-devel] New GTK+ features Message-ID: <422884d7.70de.0@...16...> >On Thursday 03 March 2005 07:44, Daniel Campos wrote: >> Here's gb.gtk 050303. Two new features added: > >I received this mail 27 hours after Daniel sent it, and looking >at the headers, the slowness was definitely in sourceforge's >servers. I still haven't gotten Benoit's original post about VB >and rms. Anyone else getting mail late or never? > >Rob > Salut Rob, never I ignore, but I remarked that sometimes I don't understand a replay, because the mail in the middle wasn't yet in my box. Last week was very slow, at noon 2 mails, and actually the 1/3 of new mails are allway somewhere not on top of the list, where I look for. Amicalment Charlie * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * From gambas at ...1... Fri Mar 4 16:28:39 2005 From: gambas at ...1... (Benoit Minisini) Date: Fri, 4 Mar 2005 16:28:39 +0100 Subject: [Gambas-devel] New GTK+ features In-Reply-To: <4227069A.2020507@...103...> References: <4227069A.2020507@...103...> Message-ID: <200503041628.39256.gambas@...1...> On Thursday 03 March 2005 13:44, Daniel Campos wrote: > Hi: > > Here's gb.gtk 050303. Two new features added: > > 1) I've implemented then "MovieBox" widget, it is fully functional, so > MovieBox could be removed from gb.qt.ext and added to gb.qt. > Cool. > 2) I've added a new (experimental) feature, that I think is very important, > trying to make it as simple and intuitive as possible: > > I've added a new widget called "Plugin" which embeeds a X-window (mainly > from > another process, but could be from the same process). This has been done > using the XEMBED protocol specification, which is managed by the > GtkPlugin and > GtkSocket classes when using GTK+, and can be easily implemented with > QtXembedContainer and QtXembedClient ( > http://www.trolltech.com/products/solutions/catalog/Widgets/qtxembed/ ) > when using QT ... Beno?t? Cool yet :-) A few remarks: * This feature is not included in the standard qt library, and that it is an X11 only feature. * You should use GB.Alloc(), GB.Realloc() and GB.Free() instead of malloc(), realloc() and free(). This way, you can easily debug memory leaks. > Thanks to the XEMBED protocol, both client > (plugin) and > server (main application) can work together, without the problems of the > old system: > just using a remote XID without any coordination between the two apps: > > A plugin is just a Form. Now gb.gtk forms have an optional parameter > called "Plug". If you load > a Form using the "normal way": > > > Form1.Load() > Form1.Show() > > > Form is shown as usual, allowing to work with the plugin as a > stand-alone application, and to > debug the program without problems. But if you ser the "Plug" parameter: > > Form1.Load(NULL,true) > Form1.Show() > > The Form is hidden (it is really a GtkPlug window instead of a main > window). As, in the future, the IDE will be able to manage different types of form (Form, WebForm, ReportForm, ...), wouldn't it be possible to make a class named "Plugin", like "Form", that would inherit "Window", instead of one extra argument to Window constructor ? > Then we obtain > the Form ID: > > PRINT Form1.ID > > (We print it on stdout, or we can write in a file, or send it using a > Socket, or whatever) > > We receive the ID in the main application, and we pass the Form ID from > the plugin application to > the "Plugin" widget: Shouldn't the "Plugin" widget named something like "Plugger" instead ? If I understand well what is plugged in what of course :-) > > ... > READ #hProcess,Id,-255 > ... > MyPlugin.Plug (Id) > ... > > Then, the Plugin widget shows the Form embeed into the main application. > > "Plugin" has two signals: "Plugged" when a remoted XID is sucessfully > loaded, and "Unplugged" when > the plugin application frees or closes then Form. > > Then, the programmer can create any communication system between both > applications. > > As XEMBED protocol is a standard, you can even mix GTK+,QT, Motif, > FOX... applications, written in > any programming language (python, for example). > > This feature would allow to write, for example, a control panel adding > new features using plugins, > (writting plugins for the Mandrake control center?), and to work with > these plugins as stand-alone > applications when you do not want to use the centralized control panel. > This would allow also to > run applications from different computers (that are using the same > X-Server), and to show them > as one big application to the user. > > I send a little example, with a little communication system. You've > create a "plugintest" folder into > your home folder. Then compile and place there the "Plugin1" and > "Plugin2" applications. Now > run the "MainApplication" and enjoy! (do not place "MainApp" at plugins > folder, it will not run!) I tried them. The focus behaves strangely. It works, but sometimes I don't see the mouse, or the focus rectangle. Strange... I saw by using these examples that message boxes are not modal. This is a problem, they must be! > > Regards, > > D. Campos Regards, -- Benoit Minisini mailto:gambas at ...1... From daniel.campos at ...103... Fri Mar 4 22:14:25 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Fri, 04 Mar 2005 22:14:25 +0100 Subject: [Gambas-devel] New GTK+ features In-Reply-To: <200503041628.39256.gambas@...1...> References: <4227069A.2020507@...103...> <200503041628.39256.gambas@...1...> Message-ID: <4228CFB1.10504@...103...> >A few remarks: > >* This feature is not included in the standard qt library, and that it is an >X11 only feature. > > Yes, this won't be available for a native Windows version, for example... another reason to use Linux and *BSD :-))). Some #ifdefs can help to compile it on Windows or framebuffer systems. >* You should use GB.Alloc(), GB.Realloc() and GB.Free() instead of malloc(), >realloc() and free(). This way, you can easily debug memory leaks. > > > All files that begin with "g" will be part of a stand-alone library for C++ in the future, that's why I do not use GB.Alloc() in these files, and to free that memory in the interface files (those which begin with "C"). However... yes, I'll write a wrapper for malloc, realloc and free, and probably They'll just call to GB.Alloc and GB.Free when using Gambas and another functions when beeing alone (some #ifdefs...) > >As, in the future, the IDE will be able to manage different types of form >(Form, WebForm, ReportForm, ...), wouldn't it be possible to make a class >named "Plugin", like "Form", that would inherit "Window", instead of one >extra argument to Window constructor ? > > Mmmhh... I don't know, one of the advantages of using the same "Form" class is that you can use the application both as a plugin or as an stand-alone application, for example some Mandrake control centrel apps do it. > >Shouldn't the "Plugin" widget named something like "Plugger" instead ? If I >understand well what is plugged in what of course :-) > > Yes, of course, fixed! > > >I tried them. The focus behaves strangely. It works, but sometimes I don't see >the mouse, or the focus rectangle. Strange... > > I didn't found these problems... what X server are you using? >I saw by using these examples that message boxes are not modal. This is a >problem, they must be! > > Well, they are modal but just for the plugin! . As they are two separate applications, there's no way to make all modal, unless the programmer writes some communication code between both apps... or may be in the future Gambas could do it internally if a sort of "Gambas communications system" is written. Regards, D. Campos From rms at ...84... Sat Mar 5 00:44:39 2005 From: rms at ...84... (Richard Stallman) Date: Fri, 04 Mar 2005 18:44:39 -0500 Subject: [Gambas-devel] Re: Using GAMBAS for running Visual Basic projects In-Reply-To: <200503031833.03823.gambas@...1...> (message from Benoit Minisini on Thu, 3 Mar 2005 18:33:03 +0100) References: <200503031833.03823.gambas@...1...> Message-ID: You seem to have considered two possible approaches: running VB byte codes (which is hard since they are not documented), and "translating the projects to GAMBAS projects". Those words suggest sone kind of hand translation of source code, which also sounds hard. The natural approach, which I think would be easiest, would be to write an alternate parser that reads VB programs and generates GAMBAS byte codes. How about considering that? By the way, how come you're using a special byte code for GAMBAS? Would it work to use Java byte codes? I think that would be a lot more convenient for the users, not to need a special byte code interpreter. In addition, it would be less work for you, since you would not have to maintain the bytecode interpreter. Does this idea make sense? From bdragon at ...185... Sat Mar 5 07:10:16 2005 From: bdragon at ...185... (Brandon Bergren) Date: Sat, 5 Mar 2005 00:10:16 -0600 (Central Standard Time) Subject: [Gambas-devel] New GTK+ features In-Reply-To: <200503041628.39256.gambas@...1...> References: <4227069A.2020507@...103...> <200503041628.39256.gambas@...1...> Message-ID: On Fri, 4 Mar 2005, Benoit Minisini wrote: > On Thursday 03 March 2005 13:44, Daniel Campos wrote: >> Hi: >> >> Here's gb.gtk 050303. Two new features added: >> >> 1) I've implemented then "MovieBox" widget, it is fully functional, so >> MovieBox could be removed from gb.qt.ext and added to gb.qt. >> > > Cool. > >> 2) I've added a new (experimental) feature, that I think is very important, >> trying to make it as simple and intuitive as possible: >> >> I've added a new widget called "Plugin" which embeeds a X-window (mainly >> from >> another process, but could be from the same process). This has been done >> using the XEMBED protocol specification, which is managed by the >> GtkPlugin and >> GtkSocket classes when using GTK+, and can be easily implemented with >> QtXembedContainer and QtXembedClient ( >> http://www.trolltech.com/products/solutions/catalog/Widgets/qtxembed/ ) >> when using QT ... Beno?t? > > Cool yet :-) > > A few remarks: > > * This feature is not included in the standard qt library, and that it is an > X11 only feature. > > * You should use GB.Alloc(), GB.Realloc() and GB.Free() instead of malloc(), > realloc() and free(). This way, you can easily debug memory leaks. Benoit, this is actually possible on Windows too. I've been banging my head against the wall (figuratively) learning how window handles on Win32 work, and it's actually quite straightforward (once you know what the @#$!$# handle is, that is.) XIDs can basically be mapped to win32 HWNDs. I'm having problems getting Cygwin to give me a window handle, though. I suspect it's a subsystem:windows versus subsystem:console issue. You Unix guys have it easy ;P (I actually like Unix/POSIX systems better than Windows, but I find Win32 porting more sporting. It certainly can be more difficult at times.) > >> Thanks to the XEMBED protocol, both client >> (plugin) and >> server (main application) can work together, without the problems of the >> old system: >> just using a remote XID without any coordination between the two apps: >> >> A plugin is just a Form. Now gb.gtk forms have an optional parameter >> called "Plug". If you load >> a Form using the "normal way": >> >> >> Form1.Load() >> Form1.Show() >> >> >> Form is shown as usual, allowing to work with the plugin as a >> stand-alone application, and to >> debug the program without problems. But if you ser the "Plug" parameter: >> >> Form1.Load(NULL,true) >> Form1.Show() >> >> The Form is hidden (it is really a GtkPlug window instead of a main >> window). > > As, in the future, the IDE will be able to manage different types of form > (Form, WebForm, ReportForm, ...), wouldn't it be possible to make a class > named "Plugin", like "Form", that would inherit "Window", instead of one > extra argument to Window constructor ? > >> Then we obtain >> the Form ID: >> >> PRINT Form1.ID >> >> (We print it on stdout, or we can write in a file, or send it using a >> Socket, or whatever) >> >> We receive the ID in the main application, and we pass the Form ID from >> the plugin application to >> the "Plugin" widget: > > Shouldn't the "Plugin" widget named something like "Plugger" instead ? If I > understand well what is plugged in what of course :-) > How about using "widget source" and "widget sink"? Widget sink is the container, widget source diddles around in sink. Right? >> >> ... >> READ #hProcess,Id,-255 >> ... >> MyPlugin.Plug (Id) >> ... >> >> Then, the Plugin widget shows the Form embeed into the main application. >> >> "Plugin" has two signals: "Plugged" when a remoted XID is sucessfully >> loaded, and "Unplugged" when >> the plugin application frees or closes then Form. >> >> Then, the programmer can create any communication system between both >> applications. >> >> As XEMBED protocol is a standard, you can even mix GTK+,QT, Motif, >> FOX... applications, written in >> any programming language (python, for example). >> on X at least. On windows, it's easier. You just hijack the window handle, bugger the host app. ;P I kid you not, all you have to do is grab the window handle, Windows doesn't care WHAT is doing drawing calls against the handle. Why do you think virus writers love windows? ;P Proof yet again that Windows wasn't designed to be a multi-user system. Heck, if you hijack a MFC CWND handle you can even do stuff like make all MFC level buttons flash red and green... Anyway, shouldn't be too much pain to do this on Windows, at least when I get the basic stuff working. >> This feature would allow to write, for example, a control panel adding >> new features using plugins, >> (writting plugins for the Mandrake control center?), and to work with >> these plugins as stand-alone >> applications when you do not want to use the centralized control panel. >> This would allow also to >> run applications from different computers (that are using the same >> X-Server), and to show them >> as one big application to the user. >> >> I send a little example, with a little communication system. You've >> create a "plugintest" folder into >> your home folder. Then compile and place there the "Plugin1" and >> "Plugin2" applications. Now >> run the "MainApplication" and enjoy! (do not place "MainApp" at plugins >> folder, it will not run!) > > I tried them. The focus behaves strangely. It works, but sometimes I don't see > the mouse, or the focus rectangle. Strange... > > I saw by using these examples that message boxes are not modal. This is a > problem, they must be! > >> >> Regards, >> >> D. Campos > > Regards, > > -- > Benoit Minisini > mailto:gambas at ...1... 73, --Brandon B. From daniel.campos at ...103... Sat Mar 5 16:10:27 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Sat, 05 Mar 2005 16:10:27 +0100 Subject: [Gambas-devel] gb.gtk 050305 Message-ID: <4229CBE3.2080901@...103...> Hi: gb.gtk 050305: -> "Plugin" widget changed its name to "Plugger". -> "Grab" method from Widgets and Desktop is working now. -> Added "ScrollView" widget, partially working. -> Added a "TrayIcon" class which allows to add an icon in the notification area, comonly called "System Tray" on win$ systems. This has been written using the freedesktop.org specifications, so it works when using GNOME, KDE, XFCE and may be other desktops/window managers. The main part of this class is X-Windows code (gtrayicon.cpp), so it should be ported to QT using the QtXEmbedContainer and a QPixmap. This feature, of course is just for X-WIndows systems, but it is sure it can be ported to Win$ using the Systray API from that system, or may be it can work directly with the rootless X server usually used with Cygwin. (By the way, once I had to embeed a window from a process into another, using Win$ and VB, and I was able to do it using API calls, so the "Plugger" widget should be portable too). About framebuffer implementations, just a simple application can be run at once in the framebuffer, so "Plugger" has no sense there, and the notification area can be just a "stub". May be DirectFB will allow to run multiple applications using the Fusion API, but GTK+ for DirectFB is very inmature now, even if a guy decided recently to restart the work in the gdk-directfb, so it is not a problem by now, and I suppose they will offer these features in the future. (I don't know anything about QTopia) Note that this icon is just an icon into the notification area, which is quite different from KDE or GNOME "applets". Theorically, any kind of widget could be added in the notification area, however, an image is the only widget that really works for all notification area implementations (KDE,GNOME,XFCE...), and trying to add windows, buttons and other stuff causes strange problems. However, it makes no sense to add a lot of widgets in that small area: programmers usually want to place just an icon there. This Systray class emits the "MouseDown","MouseUp" and "Menu" signals, so you can easily popup menus when clicked. I send a little example. There's also a "TrayIcons" class which enumerates all Tray icons managed by the application. I think it is very simple, following the "Gambas" way: two properties "Picture" for the icon, and "Text"/"ToolTip" for the tip, and three events, thats all. The application can work normally even if there's notification area: the icon is simply not shown. This is the last "new feature" I will add to gb.gtk, prior to complete all the rest of widgets (I mean at least the skeleton of the widgets), and release the first alpha gb.gtk version. -> Beno?t: I have problems trying to manage menus with gb.gtk and the Gambas IDE 1.9.3, I think i've implemented all needed to manage the menus, but it seems there's any kind of bug in the IDE that causes the problem when gb.qt is not the graphical library used. Regards, D. Campos -------------- next part -------------- A non-text attachment was scrubbed... Name: Tray.tar.gz Type: application/x-gzip Size: 8567 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: gtk-050305-gb1.9.tar.bz2 Type: application/x-bzip Size: 63457 bytes Desc: not available URL: From sourceforge-raindog2 at ...19... Sat Mar 5 20:08:07 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Sat, 5 Mar 2005 14:08:07 -0500 Subject: [Gambas-devel] Re: Using GAMBAS for running Visual Basic projects In-Reply-To: References: <200503031833.03823.gambas@...1...> Message-ID: <200503051406.01131.sourceforge-raindog2@...19...> On Friday 04 March 2005 18:44, Richard Stallman wrote: > By the way, how come you're using a special byte code for > GAMBAS? Would it work to use Java byte codes? I think that > would be a lot more convenient for the users, not to need a > special byte code interpreter. In addition, it would be less > work for you, since you would not have to maintain the > bytecode interpreter. Does this idea make sense? Here are some of Benoit's responses to this question in the past: http://www.binara.com/gambas-wiki/bin/view/Gambas/WebSiteFAQ#Will_Gamb as_be_compatible_with_J Shortened: http://xrl.us/fcfi I can't speak for Benoit (I haven't submitted any patches against the interpreter though I've referred to the source when developing components), but I can think of several other reasons not to target Java bytecode. There are two Java bytecode scenarios I can envision: one where we target "any JVM" and one where we target a Free JVM like Kaffe or gij. Any JVM (which, practically speaking, means the Sun JVM): 1. We are at the mercy of the proprietary JVM developers' implementations. If J2SE 6.0 comes out and breaks Gambas, we are basically screwed once it's widely adopted, especially without the ability to debug it. I think the support headaches this would cause would far outweigh maintaining the existing bytecode interpreter, which is currently quite simple compared to Java. 2. The Gambas interpreter is only 160K on my machine. It's all the components that take up space and must be present on any machine running Gambas applications. All together (plus a bunch of documentation) they are around 10MB. Sun's Java, which is the mostlikely thing users will download when they hear they need Java, is around 25MB. Most Free GNU/Linux distributions do not ship Java, and I'm only aware of a few partially-proprietary ones that install it by default, so I think the special-interpreter argument is something of a red herring. In fact, the way package management works on modern distributions, it's actually harder to distribute packages that require Java: since Java is non-Free, it's most often a separate download or installation. 3. All the Gambas components would have to be reimplemented from scratch using JNI, necessitating basically a restart of the entire project. I don't even know if it's possible to write GPL or LGPL code against JNI. 4. If we toss the whole Gambas component idea and use other people's Java bindings, we are at the mercy of their development cycle as well as the JVM's. This isn't too much of an issue at present for the major ones like Qt and Gtk, but it has been in the past and may very well be in the future (c.f. the Perl Qt bindings, which went unmaintained for almost 3 years.) This would also be a total nightmare to document and, while providing a lot of new functionality to Gambas programmers, would reduce Gambas to being a glorified alternative Java syntax. Single Free JVM (Kaffe, gij, etc.): 1. Defeats some of the purpose of targeting Java bytecode, since it would require one particular JVM. 2. Still requires the user to install a special interpreter (or JIT compiler, whichever), except now it's Java-based and not included with Gambas. Most desktop users of Java do not have a Free JVM installed, since GNU Classpath is not yet sufficient to run most Java desktop applications, even Free ones. (The situation is better than in point 2 above, though, since kaffe and gij are quite small and since they're both Free, there are usually packages available.) 3. Points 3 and 4 above still apply. It could be possible to link Gambas components directly against kaffe or gij, but this kind of goes against the whole Java philosophy as I understand it. 4. Since kaffe and gij are both developed rather slowly, Gambas developers would likely end up doing more JVM work than work on improving Gambas. This negates the advantage of not having to maintain the bytecode interpreter anymore. Nonetheless, I acknowledge the advantages of targeting an existing well-known, well-documented bytecode. I still hope someone will look at targeting Parrot if and when Perl 6 ever matures, since there will be only one implementation, it will be free software, and it will be installed on basically every GNU/Linux system by default as perl is now. The "being at the mercy of the bindings' development cycle" issue would then be the only real concern. Well, that and Benoit's comfort level, because Gambas is his baby and looking at its current state, he must be doing something right. I wonder if a better idea isn't to develop a cross-compiler that converts Gambas bytecode into something gcc can make a native executable out of (maybe Java bytecode even fits this bill, I don't know.) The interpreter could be kept around to facilitate debugging in the Gambas IDE, but programs could be distributed without an interpreter (perhaps we could even statically link components against executables produced that way.) That would be way beyond my skill level, but it seems to me such a thing should be possible. Rob Kudla From gambasfr at ...4... Sat Mar 5 23:57:07 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Sat, 5 Mar 2005 23:57:07 +0100 Subject: [Gambas-devel] gb.gtk 050305 In-Reply-To: <4229CBE3.2080901@...103...> References: <4229CBE3.2080901@...103...> Message-ID: <200503052357.08072.gambasfr@...4...> Le samedi 5 Mars 2005 16:10, Daniel Campos a ?crit?: Hi daniel i can't use the menu editor on your exemple ... the ide raise an error ! fabien ps: good work :) > Hi: > > gb.gtk 050305: > > -> "Plugin" widget changed its name to "Plugger". > > -> "Grab" method from Widgets and Desktop is working now. > > -> Added "ScrollView" widget, partially working. > > -> Added a "TrayIcon" class which allows to add an icon in the > notification area, comonly called "System Tray" on win$ systems. > This has been written using the freedesktop.org specifications, so > it works when using GNOME, KDE, XFCE and may be other > desktops/window managers. > > The main part of this class is X-Windows code (gtrayicon.cpp), > so it should be ported to QT using the QtXEmbedContainer > and > a QPixmap. This feature, of course is just for X-WIndows systems, > but it is sure it can be ported to Win$ using the Systray API from > that system, or may be it can work directly with the rootless X server > usually > used with Cygwin. (By the way, once I had to embeed a window from a > process into another, using Win$ and VB, and I was able to do it using API > calls, so the "Plugger" widget should be portable too). About > framebuffer implementations, > just a simple application can be run at once in the framebuffer, so > "Plugger" has no > sense there, and the notification area can be just a "stub". May be > DirectFB will allow > to run multiple applications using the Fusion API, but GTK+ for DirectFB > is very > inmature now, even if a guy decided recently to restart the work in the > gdk-directfb, > so it is not a problem by now, and I suppose they will offer these > features in the future. > (I don't know anything about QTopia) > > Note that this icon is just an icon into the notification area, which is > quite different > from KDE or GNOME "applets". Theorically, any kind of widget could > be added in the notification area, however, an image is the only widget > that really works for all notification area implementations > (KDE,GNOME,XFCE...), > and trying to add windows, buttons and other stuff causes strange problems. > However, it makes no sense to add a lot of widgets in that small area: > programmers usually > want to place just an icon there. > > This Systray class emits the "MouseDown","MouseUp" and "Menu" signals, so > you can easily popup menus when clicked. I send a little example. > > There's also a "TrayIcons" class which enumerates all Tray icons managed > by the > application. > > I think it is very simple, following the "Gambas" way: two properties > "Picture" for > the icon, and "Text"/"ToolTip" for the tip, and three events, thats all. > > The application can work normally even if there's notification area: the > icon is simply > not shown. > > This is the last "new feature" I will add to gb.gtk, prior to complete > all the rest of > widgets (I mean at least the skeleton of the widgets), and release the > first alpha > gb.gtk version. > > -> Beno?t: I have problems trying to manage menus with gb.gtk and the > Gambas IDE 1.9.3, > I think i've implemented all needed to manage the menus, but it seems > there's any > kind of bug in the IDE that causes the problem when gb.qt is not the > graphical library used. > > Regards, > > D. Campos From karl.reinl at ...16... Sun Mar 6 00:14:22 2005 From: karl.reinl at ...16... (Charlie) Date: Sun, 06 Mar 2005 00:14:22 +0100 Subject: [Gambas-devel] Re: need a hand for testing References: <200503012155.08050.Karl.Reinl@...16...> <200503012231.14340.Karl.Reinl@...16...> <200503022137.05055.ronstk@...124...> Message-ID: <422A3D4E.4000601@...16...> Ron Onstenk schrieb: >On Tuesday 01 March 2005 22:31, Charlie Reinl wrote: > > >>On Tuesday 01 March 2005 21:55, Charlie Reinl wrote: >> >> >>>Salut, >>> >>> >>shame on me, that first Pb,seams to be a TableView RowAt pb and has >>nothing to do with poastgresql >> >> >> >>>First : >>>In the project you can use the right mouse button to click on cell or the >>>columns header. >>>Click on a cell opens a InputBox with the Cells value for makeing changes >>>Click on the header opens a InputBox for asking a value to search for on >>>this column. >>> That makes troubles on postgresql. >>>If I'm on the first page, the right mouse click on the header works fine >>> >>> > > > >>>(use xPos = Mouse.X , yPos = Mouse.Y , TBVdb1.RowAt(yPos), <======== >>> >>> > > > >>>TBVdb1.ColumnAt(xPos) [you find it in FMain.TBVdb1_MouseDown()]) to find >>>out where I am. >>> >>> > >I see here no offset for the row/column header is addjusted to the gotten >xpos and ypos. >But you can click on the column header for search, then it must adjusted. > > > > >>>But if I'v scrolled down on the TableView and click on the header I get >>>back a Cell.Value >>> >>> >> Amicalment >> Charly >> >> > > >Ron > > Salut Ron, you saw no offset, because my first tests was with too less data who ditn't fill the TableView, so it worked, and your proposed row=tbv.RowAt(ypos + (tbv.columnheader.visible * tbv.columnheader.height) ) don't work in gambas-1.0.3 anymore. And even if you look closly to it, it couldn't make sence ! I was certenly something other. As my example use row and columns headers, now I say for row that yPos <= tbv.columns.height and for column xPos <= tbv.rows.width that I clicked on a header. And it seams to work! Send you the full, changed project. Amicalment Charlie -------------- next part -------------- A non-text attachment was scrubbed... Name: DBTableView-0.0.2.tar.gz Type: application/x-tar Size: 77715 bytes Desc: not available URL: From ronstk at ...124... Sun Mar 6 08:43:42 2005 From: ronstk at ...124... (Ron Onstenk) Date: Sun, 6 Mar 2005 08:43:42 +0100 Subject: [Gambas-devel] Re: need a hand for testing In-Reply-To: <422A3D4E.4000601@...16...> References: <200503012155.08050.Karl.Reinl@...16...> <200503022137.05055.ronstk@...124...> <422A3D4E.4000601@...16...> Message-ID: <200503060843.42734.ronstk@...124...> On Sunday 06 March 2005 00:14, Charlie wrote: > Ron Onstenk schrieb: > >On Tuesday 01 March 2005 22:31, Charlie Reinl wrote: ..... > > Salut Ron, > > you saw no offset, because my first tests was with too less data who > ditn't fill the TableView, so it worked, > and your proposed > row=tbv.RowAt(ypos + (tbv.columnheader.visible * tbv.columnheader.height) ) > don't work in gambas-1.0.3 anymore. > And even if you look closly to it, it couldn't make sence ! I was > certenly something other. > > As my example use row and columns headers, now I say for > row that yPos <= tbv.columns.height > and for column > xPos <= tbv.rows.width > that I clicked on a header. And it seams to work! > > Send you the full, changed project. > > Amicalment > Charlie Goeie dag Charlie, I 'm switched to mandrake and have not installed gambas atm. Busy to learn the diff between SuSE and Mandrake :) SuSE did not accept adding a HD in a proper way and the filesystem was corrupted. It had to do with the HPA (?? Protected Area), the disk was less then the real size resulting fschk try'd to read sectors past end of the area. I have also other work to do, going in a few weeks again to tenerifa. I'm now just reading and following the development of gambas. Groeten, Ron From eng_ak at ...43... Sun Mar 6 16:16:42 2005 From: eng_ak at ...43... (Ahmed Kamal) Date: Sun, 06 Mar 2005 17:16:42 +0200 Subject: [Gambas-devel] Re: Using GAMBAS for running Visual Basic projects In-Reply-To: References: <200503031833.03823.gambas@...1...> Message-ID: <422B1EDA.9000907@...43...> One would also think about targeting the Parrot VM. http://www.parrotcode.org/ Eliminates all concerns about following some closed source VM. BR Richard Stallman wrote: >You seem to have considered two possible approaches: running VB byte >codes (which is hard since they are not documented), and "translating >the projects to GAMBAS projects". Those words suggest sone kind of >hand translation of source code, which also sounds hard. > >The natural approach, which I think would be easiest, would be to >write an alternate parser that reads VB programs and generates GAMBAS >byte codes. How about considering that? > >By the way, how come you're using a special byte code for GAMBAS? >Would it work to use Java byte codes? I think that would be a lot >more convenient for the users, not to need a special byte code >interpreter. In addition, it would be less work for you, since you >would not have to maintain the bytecode interpreter. Does this idea >make sense? > > > >------------------------------------------------------- >SF email is sponsored by - The IT Product Guide >Read honest & candid reviews on hundreds of IT Products from real users. >Discover which products truly live up to the hype. Start reading now. >http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >_______________________________________________ >Gambas-devel mailing list >Gambas-devel at lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/gambas-devel > > From rms at ...84... Sun Mar 6 20:10:53 2005 From: rms at ...84... (Richard Stallman) Date: Sun, 06 Mar 2005 14:10:53 -0500 Subject: [Gambas-devel] Re: Using GAMBAS for running Visual Basic projects In-Reply-To: <200503051406.01131.sourceforge-raindog2@...19...> (message from Rob on Sat, 5 Mar 2005 14:08:07 -0500) References: <200503031833.03823.gambas@...1...> <200503051406.01131.sourceforge-raindog2@...19...> Message-ID: This is not my project, so I am not going to try to insist on telling people how to design it. Please don't interpret this message as trying to demand a change. However, I'd like to respond to the arguments you've raised. There are two Java bytecode scenarios I can envision: one where we target "any JVM" and one where we target a Free JVM like Kaffe or gij. Any JVM (which, practically speaking, means the Sun JVM): The scenario I would first think of is targeting all JVMs, but focusing on a free one such as GIJ. 1. We are at the mercy of the proprietary JVM developers' implementations. If J2SE 6.0 comes out and breaks Gambas, If you use documented interfaces used by many others, it is hardly likely any Java platform developer would break them. 4. If we toss the whole Gambas component idea and use other people's Java bindings, I do not know what the "Gambas component idea" is, but using other people's bindings for other packages seems to be a very good idea. we are at the mercy of their development cycle as well as the JVM's. This isn't too much of an issue at present for the major ones like Qt and Gtk, but it has been in the past and may very well be in the future (c.f. the Perl Qt bindings, which went unmaintained for almost 3 years.) When that happens, it is a problem, but you don't have to consider that your problem. This would also be a total nightmare to document In some sense, it would not be your problem. However, if you want to undertake the extra responsibility to document bindings for GTK and Qt, it seems to me that your work would provide increased benefits to the community if the bindings you are documenting are also useful to others. and, while providing a lot of new functionality to Gambas programmers, would reduce Gambas to being a glorified alternative Java syntax. Would that be a bad thing? The usefulness of a project is not measured by the amount of effort you duplicate. 4. Since kaffe and gij are both developed rather slowly, Gambas developers would likely end up doing more JVM work than work on improving Gambas. This negates the advantage of not having to maintain the bytecode interpreter anymore. Another way of putting it is that the work you do on maintaining the bytecode interpreter would also benefit lots of Java users. I wonder if a better idea isn't to develop a cross-compiler that converts Gambas bytecode into something gcc can make a native executable out of (maybe Java bytecode even fits this bill, I don't know.) The Gambas parser could be turned into a GCC front end. GCC could generate Java bytecodes as well as native code. From daniel.campos at ...103... Sun Mar 6 21:41:17 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Sun, 06 Mar 2005 21:41:17 +0100 Subject: [Gambas-devel] GTK+ menu / Gambas IDE 1.9.3 Message-ID: <422B6AED.6010105@...103...> OK: I've found the error that makes the Gambas IDE crash when using menus and the gb.gtk component: Gambas IDE - CComponent.class (line 205) IF Type = "Form" THEN IF Key = "gb.gtk" THEN FOR EACH sClass IN ["Control", "Form"] Classes[sClass].InitControl(hForm) NEXT ........... Shold be replaced by: IF Type = "Form" THEN IF Key = "gb.gtk" THEN FOR EACH sClass IN ["Control", "Form", "Menu"] Classes[sClass].InitControl(hForm) NEXT ........... Then compiling and running the patched IDE all menu design operations work OK with gb.gtk. Regards, D. Campos From gambas at ...1... Mon Mar 7 13:43:59 2005 From: gambas at ...1... (Benoit Minisini) Date: Mon, 7 Mar 2005 13:43:59 +0100 Subject: [Gambas-devel] Re: Using GAMBAS for running Visual Basic projects In-Reply-To: References: <200503031833.03823.gambas@...1...> Message-ID: <200503071343.59589.gambas@...1...> On Saturday 05 March 2005 00:44, Richard Stallman wrote: > You seem to have considered two possible approaches: running VB byte > codes (which is hard since they are not documented), and "translating > the projects to GAMBAS projects". Those words suggest sone kind of > hand translation of source code, which also sounds hard. > > The natural approach, which I think would be easiest, would be to > write an alternate parser that reads VB programs and generates GAMBAS > byte codes. How about considering that? Of course it is possible. But it implies that there will be two compilers to maintain, so changes in bytecode and gambas compiler will become difficult. And the native visual-basic code is not so difficult to translate. The more complicate task is in the visual basic controls and components: it is really a translating job. > > By the way, how come you're using a special byte code for GAMBAS? > Would it work to use Java byte codes? I think that would be a lot > more convenient for the users, not to need a special byte code > interpreter. In addition, it would be less work for you, since you > would not have to maintain the bytecode interpreter. Does this idea > make sense? > Logically, yes. But I have no knowledge about the Java byte code and the way it works. And I wanted to write my own bytecode because I wanted to implement a few ideas of mine, and because it was fun. Maybe, in the future, it will make sense to use a more "professional" bytecode, or to simply redesign it. But I don't think it is necessary now, even for translating visual-basic projects. -- Benoit Minisini mailto:gambas at ...1... From daniel.campos at ...103... Mon Mar 7 17:16:09 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Mon, 07 Mar 2005 17:16:09 +0100 Subject: [Gambas-devel] gb.gtk 050307 Message-ID: <422C7E49.8060806@...103...> Hi: This release adds the "SpinBox" widget, which originally was part of the gb.qt.ext component. By now, it is partially implemented, but I'll finish the work later, there's not problem to emulate all the qt funcionallity, so SpinBox could be removed from gb.qt.ext and added to gb.qt. Thanks to this addition, the LXCOPY application seems to work now with gb.gtk ( http://www.gambasforge.net/code.php?id=26 ) Regards, D. Campos -------------- next part -------------- A non-text attachment was scrubbed... Name: gtk-050307-gb1.9.tar.bz2 Type: application/x-bzip Size: 64323 bytes Desc: not available URL: From gambasfr at ...4... Mon Mar 7 23:31:46 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Mon, 7 Mar 2005 23:31:46 +0100 Subject: [Gambas-devel] BUG in the gridvew widget Message-ID: <200503072331.46786.gambasfr@...4...> I think there is a bug in the grid view try this exemple and press arrow keys 4 time to the left and the 1 or 2 to the right ... bizzard ! Fabien -------------- next part -------------- A non-text attachment was scrubbed... Name: test6-0.0.1.tar.gz Type: application/x-tgz Size: 713 bytes Desc: not available URL: From rms at ...84... Tue Mar 8 03:53:01 2005 From: rms at ...84... (Richard Stallman) Date: Mon, 07 Mar 2005 21:53:01 -0500 Subject: [Gambas-devel] Re: Using GAMBAS for running Visual Basic projects In-Reply-To: <200503071343.59589.gambas@...1...> (message from Benoit Minisini on Mon, 7 Mar 2005 13:43:59 +0100) References: <200503031833.03823.gambas@...1...> <200503071343.59589.gambas@...1...> Message-ID: > The natural approach, which I think would be easiest, would be to > write an alternate parser that reads VB programs and generates GAMBAS > byte codes. How about considering that? Of course it is possible. But it implies that there will be two compilers to maintain, It is not two compilers, just two front-ends. To support two different languages inevitably requires two parsers. Any method of supporting these two languages will requires at least that much. Most other ways really will require two compilers, but this way only requires two front ends. So I think it is the best way to do the job. And the native visual-basic code is not so difficult to translate. When you say "difficult to translate", do you mean "difficult for a program" or "difficult for a human"? If you plan to use a program to do this, that program will include a parser for VB syntax. It would be less work to maintain the parser as part of a compiler front end. Logically, yes. But I have no knowledge about the Java byte code and the way it works. And I wanted to write my own bytecode because I wanted to implement a few ideas of mine, and because it was fun. I think it would be a useful idea to investigate whether you could redirect the output to Java bytecodes, or some other popular and already-existing kind of bytecodes. It would increase interoperability, and that is very useful for the users. From srikantux at ...176... Wed Mar 9 19:11:01 2005 From: srikantux at ...176... (Srikanta Prasanna) Date: Wed, 9 Mar 2005 23:41:01 +0530 Subject: [Gambas-devel] Re: Test component compilation problem... In-Reply-To: <001801c51c41$20dc2f00$c6f0fea9@...146...> References: <7f8e4a5a0501220510fd710d3@...178...> <7f8e4a5a050125022533320d5e@...178...> <7f8e4a5a05012505597ccc409e@...178...> <001801c51c41$20dc2f00$c6f0fea9@...146...> Message-ID: <7f8e4a5a050309101158798439@...178...> Hi, On Sat, 26 Feb 2005 21:24:06 +0100, Frank Berg wrote: > hi Srikanta > > how long are your with the xyz project? Hey, sorry was so much delay that occured due to some in personal reason. Pleas excuse me for that. Re XYZ component: I've not been able to look at it for last few weeks, for the same reasons mentioned above. But, i'll surely compile it and proceed with the actual stuff (yes, the ImageMagick Component). Thank you very much for your concern. Regards, Srikanta From gambasfr at ...4... Wed Mar 9 21:16:58 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Wed, 9 Mar 2005 21:16:58 +0100 Subject: [Gambas-devel] juste une question comme =?iso-8859-1?q?=E7a?= ... Message-ID: <200503092116.58476.gambasfr@...4...> Hi benoit Ive juste a little query... I've you thinked about something to mke more simple the creation of multidimentionnal array ? Actually i need to use an object[] and another array to do that ... i'ts not really easy when i've 10 array of this type ! I just talking about static array... but it while be good for array class too array.resize(2[,3,...]) Fabien From bdragon at ...185... Fri Mar 11 00:43:10 2005 From: bdragon at ...185... (Brandon Bergren) Date: Thu, 10 Mar 2005 17:43:10 -0600 (Central Standard Time) Subject: [Gambas-devel] Windows stuff Message-ID: I managed to get a dll to provide GDI windowing in Cygwin, finally. Apparently, the host app DOES have to use the WINDOWS subsystem. Using argc and argv with that subsystem really sucks, though. Micro$oft only provides a Unicode version of the routine to make an argv from what you are provided by windows, so you basically have to write your own command line parser. Anyway, I'll probabaly end up writing a simple GDI canvas to dump console output on, and maybe have a couple debugging dohickeys and stuff. I also got a cygwin host to load a mingw dll, without any ill effects. I don't think it's guaranteed to be stable, as there's two C runtimes going if you do that. (cygwin1 and msvcrt) But, it seems to work. As GTK is a complete PITA to get running using the win32 gdk backend while the rest of GTK is doing POSIX, that's a relief. As a side effect, I can bluff my way through GDI now. ;) Anyway, if everything goes well, I might be able to get the GTK component to compile against a MINGW style GTK. --Brandon From sourceforge-raindog2 at ...19... Fri Mar 11 01:02:24 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Thu, 10 Mar 2005 19:02:24 -0500 Subject: [Gambas-devel] Windows stuff In-Reply-To: References: Message-ID: <200503101902.24650.sourceforge-raindog2@...19...> On Thursday 10 March 2005 18:43, Brandon Bergren wrote: > I managed to get a dll to provide GDI windowing in Cygwin, finally. [...] > Anyway, if everything goes well, I might be able to get the GTK > component to compile against a MINGW style GTK. What I'm getting from this is that you may be close to getting gambas-cygwin working against gtk-win32 via some presumably twisted IPC. I didn't know you could even do that :) What are the benefits over, say, displaying on cygwin's X server in seamless mode? Rob From bdragon at ...185... Fri Mar 11 02:06:21 2005 From: bdragon at ...185... (Brandon Bergren) Date: Thu, 10 Mar 2005 19:06:21 -0600 (Central Standard Time) Subject: [Gambas-devel] Windows stuff In-Reply-To: <200503101902.24650.sourceforge-raindog2@...19...> References: <200503101902.24650.sourceforge-raindog2@...19...> Message-ID: On Thu, 10 Mar 2005, Rob wrote: > On Thursday 10 March 2005 18:43, Brandon Bergren wrote: >> I managed to get a dll to provide GDI windowing in Cygwin, finally. > [...] >> Anyway, if everything goes well, I might be able to get the GTK >> component to compile against a MINGW style GTK. > > What I'm getting from this is that you may be close to getting > gambas-cygwin working against gtk-win32 via some presumably twisted > IPC. I didn't know you could even do that :) What are the benefits > over, say, displaying on cygwin's X server in seamless mode? > > Rob > Heh heh, closer than even I thought. OMG IT FRICKING WORKS!!! gb.gtk win32 NATIVE is WORKING!!! (more in a few minutes, still recovering from just watching everything come together in one moment) --Brandon From bdragon at ...185... Fri Mar 11 02:25:35 2005 From: bdragon at ...185... (Brandon Bergren) Date: Thu, 10 Mar 2005 19:25:35 -0600 (Central Standard Time) Subject: [Gambas-devel] Windows stuff In-Reply-To: References: <200503101902.24650.sourceforge-raindog2@...19...> Message-ID: On Thu, 10 Mar 2005, Brandon Bergren wrote: > > > On Thu, 10 Mar 2005, Rob wrote: > >> On Thursday 10 March 2005 18:43, Brandon Bergren wrote: >>> I managed to get a dll to provide GDI windowing in Cygwin, finally. >> [...] >>> Anyway, if everything goes well, I might be able to get the GTK >>> component to compile against a MINGW style GTK. >> >> What I'm getting from this is that you may be close to getting >> gambas-cygwin working against gtk-win32 via some presumably twisted >> IPC. I didn't know you could even do that :) What are the benefits >> over, say, displaying on cygwin's X server in seamless mode? >> No, not twisted IPC, twisted run-time-library-loading. It isn't simple like it is on Linux. The benefit is that it is about 200x faster to do GDI native versus X on windows. Actually, it worked ok without using most of the tricks I was thinking about. GTK apparently was able to fudge its own handle. >> Rob >> > > Heh heh, closer than even I thought. > > OMG IT FRICKING WORKS!!! > > gb.gtk win32 NATIVE is WORKING!!! > sorry, got really excited. ;P > (more in a few minutes, still recovering from just watching everything come > together in one moment) > > --Brandon Ok, here's my followup. I just got the gob of gb.gtk code to compile in dev-cpp. -- I.E. completely native. The DLL doesn't link against anything but windows libs. The only stuff currently disabled is: Plugin stuff -- There isn't glue code in gtk for windows. Should be easy, probabaly possible to make a single file glue to drop in that doesn't require a gtk recompile. Really, since windows isn't picky about security like X, making most of the Plugin/Socket stuff nullop should just work(tm) TrayIcon -- Platform dependent crap. Daniel: Would you accept windows patches? :) CWatcher -- I had to remove the filewatcher hook. Watching file descriptors on Windows is DIFFERENT. Daniel: Why do you need to override the default watch hook? and the event loop doesn't have a sleep in it. (but it still doesn't take a bunch of CPU time... I don't know why...) I tested the Notepad example so far. It crashes when you save, but the rest seems to work OK. Here's the console output, if anyone can tell me what is happening here, I'd like to know. DataObject Shell IDList Array Preferred DropEffect Shell Object Offsets FileName FileNameW Ole Private Data (gbx2): GLib-CRITICAL **: g_convert: assertion `str != NULL' failed FNotepad.?.0: #43: Access forbidden WARNING: circular references detected FNotepad (1) WARNING: CCONTAINER_width not yet implemented WARNING: CCONTAINER_height not yet implemented WARNING: gButton::setCancel() not yet implemented Of course, it's probabaly having something to do with one of the bits that doesn't work properly. I also had to stub two unimplemented functions (Daniel, why isn't this a compile error for you?) Well, that's about it, screenshots will follow soon. --Brandon From bdragon at ...185... Fri Mar 11 03:11:41 2005 From: bdragon at ...185... (Brandon Bergren) Date: Thu, 10 Mar 2005 20:11:41 -0600 (Central Standard Time) Subject: [Gambas-devel] Windows stuff (The screenshots) In-Reply-To: References: <200503101902.24650.sourceforge-raindog2@...19...> Message-ID: Here's some screenshots. With captions, even! --Brandon ------------------------- http://bdragon.freeshell.org/projects/gambas/screenshots/gambas-gtk-win32-01.png The filebrowser uses Windows paths. Loading works OK, but saving doesn't, currently. --------------------------- http://bdragon.freeshell.org/projects/gambas/screenshots/gambas-gtk-win32-02.png This shows the font browser. ----------------------------- http://bdragon.freeshell.org/projects/gambas/screenshots/gambas-gtk-win32-03.png I opened a file successfully. ------------------------ http://bdragon.freeshell.org/projects/gambas/screenshots/gambas-gtk-win32-04.png Simple Image Viewer kinda works. I can't load a picture properly (green background), but the confetti works. It disappears when the window is covered and exposed again, though. Is this normal? ------------------------ http://bdragon.freeshell.org/projects/gambas/screenshots/gambas-gtk-win32-05.png Blinkenlights works wonderfully. The custom icon even works. ----------------- http://bdragon.freeshell.org/projects/gambas/screenshots/gambas-gtk-win32-06.png DnsClient kinda works. Async mode doesn't work that hot, though. ----------------- And that's it for this round of screenshots. I only have 100M of bandwidth/day, so don't slashdot it or anything ;P Trivia: The white window with the green, yellow, and black text is an rxvt console. It currently has a really weird path set, so that everything gets found in the right order. (PATH == LD_LIBRARY_PATH on windows.) The Dev-C++ window in the background has the project I used to compile the component. The white and green text on black background windows in some of the shots are copies of Putty connecting to the SSH server running in the background. All that TRY_DLOPEN cruft in some of the consoles is left over from when I was debugging an error in libltdl. "sf_bbergren at ...187..." is the current windows user. (domain user) "iggy at ...187..." is another user account. (localmachine user) D:\ has a netbsd install cd in it. Z:\ is a Daemon Tools virtual drive. ------------ --Brandon From daniel.campos at ...103... Fri Mar 11 05:12:32 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Fri, 11 Mar 2005 05:12:32 +0100 Subject: [Gambas-devel] Windows stuff In-Reply-To: References: <200503101902.24650.sourceforge-raindog2@...19...> Message-ID: <42311AB0.7030108@...103...> OK, Brandom, good job! I hope you'll publish a tutorial soon about this... > > > The only stuff currently disabled is: > > Plugin stuff -- There isn't glue code in gtk for windows. Should be > easy, probabaly possible to make a single file glue to drop in that > doesn't require a gtk recompile. Really, since windows isn't picky > about security like X, making most of the Plugin/Socket stuff nullop > should just work(tm) As I said in aprevious message, I made a program in VB that used a foreign window, however I have got not the sources as I was not allowed to copy them in my old company. But it is possible to emulate that function in Win$. However... what key word should I use to disable this in the Win$ compilation? ( #ifndef CYGWIN or #ifndef WINDOWS...?) > > TrayIcon -- Platform dependent crap. Daniel: Would you accept windows > patches? :) Yes, of course I accept patches, but as I said in the previous point I just need to know the macro that I need to disable it in the Win version (or to include the Systray code for windows). However, note that I do not accept the "crap" adjective for that code, it is freedesktop compliant. > > > CWatcher -- I had to remove the filewatcher hook. Watching file > descriptors on Windows is DIFFERENT. Daniel: Why do you need to > override the default watch hook? Talking properly, watching file descriptors in Windows is not possible, it is just an API emulation that Win$ people added to their API because they realized it was important after they released the first version :-)) Well, the GTK+ component uses the MAIN hook, so I have to watch the file descriptors myself, Gambas can not do it, look at the QT component, it has the same "problem". However, I'm using the same stuff that Beno?t uses in the gambas watch code to watch the file descriptors, so I do not understand why the gambas watching code works and not the code included in the gb.gtk component. The DNS async code can not work if you remove the watching code, sockets can not work, too... > > and the event loop doesn't have a sleep in it. (but it still doesn't > take a bunch of CPU time... I don't know why...) > Mmmhh... another #ifdef that I should include. > I tested the Notepad example so far. It crashes when you save, but the > rest seems to work OK. > > Here's the console output, if anyone can tell me what is happening > here, I'd like to know. > > DataObject Shell IDList Array Preferred DropEffect Shell Object > Offsets FileName FileNameW Ole Private Data > (gbx2): GLib-CRITICAL **: g_convert: assertion `str != NULL' failed ? I don't know yet, I have to investigate it. > FNotepad.?.0: #43: Access forbidden > WARNING: circular references detected > FNotepad (1) > WARNING: CCONTAINER_width not yet implemented > WARNING: CCONTAINER_height not yet implemented > WARNING: gButton::setCancel() not yet implemented I have to write the code for CCONTAINER_width, height and setCancel(), this is normal > > Of course, it's probabaly having something to do with one of the bits > that doesn't work properly. > > I also had to stub two unimplemented functions (Daniel, why isn't this > a compile error for you?) Linux compiler allows to compile it, and then, if the function is called, the program stops with an error (undefined symbol...) What are these two functions? > > > > Well, that's about it, screenshots will follow soon. Cool > > > --Brandon Regards, D. Campos > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel > > From bdragon at ...185... Fri Mar 11 07:27:22 2005 From: bdragon at ...185... (Brandon Bergren) Date: Fri, 11 Mar 2005 00:27:22 -0600 (Central Standard Time) Subject: [Gambas-devel] Windows stuff In-Reply-To: <42311AB0.7030108@...103...> References: <200503101902.24650.sourceforge-raindog2@...19...> <42311AB0.7030108@...103...> Message-ID: On Fri, 11 Mar 2005, Daniel Campos wrote: > OK, Brandom, good job! I hope you'll publish a tutorial soon about this... > >> >> >> The only stuff currently disabled is: >> >> Plugin stuff -- There isn't glue code in gtk for windows. Should be easy, >> probabaly possible to make a single file glue to drop in that doesn't >> require a gtk recompile. Really, since windows isn't picky about security >> like X, making most of the Plugin/Socket stuff nullop should just work(tm) > > > As I said in aprevious message, I made a program in VB that used a foreign > window, however I have got not the sources as I was not allowed to copy them > in my old company. But it is possible to emulate that function in Win$. > However... what key word should I use to disable this in the Win$ > compilation? ( #ifndef CYGWIN or #ifndef WINDOWS...?) Well, I started using OS_WINDOWS for native windows stuff. Benoit: do you think that is a good define for a non-cygwin windows native compile? Here's a really old patch someone made in 2001 that kinda implements plugin/socket. http://bugzilla.gnome.org/attachment.cgi?id=5917&action=view > >> >> TrayIcon -- Platform dependent crap. Daniel: Would you accept windows >> patches? :) > > > Yes, of course I accept patches, but as I said in the previous point I just > need to know the macro that I need to > disable it in the Win version (or to include the Systray code for windows). > However, note that I do not accept the > "crap" adjective for that code, it is freedesktop compliant. oops, sorry about that. I type like I speak. I forget that X is quite platform agnostic, but I have the luck to use Windows and BeOS machines. :( Too bad Windows isn't freedesktop.org compliant! ;) (hmm, now where would I send patches to fix that....) > > >> >> >> CWatcher -- I had to remove the filewatcher hook. Watching file descriptors >> on Windows is DIFFERENT. Daniel: Why do you need to override the default >> watch hook? > > Talking properly, watching file descriptors in Windows is not possible, it is > just an API emulation that Win$ people added to their API because they > realized it was important after they released the first version :-)) You nailed that one right on the head. > Well, > the GTK+ component uses the MAIN hook, so I have to watch the file > descriptors myself, Gambas can not do it, look at the QT component, it has > the same "problem". However, I'm using the same stuff that Beno?t uses in > the gambas watch code to watch the file descriptors, so I do not understand > why the gambas watching code works and not the code included in the gb.gtk > component. Because his code is still compiled against cygwin, and I'm trying to get yours to not depend on it. Really, I don't see a way to hook WATCH right now on Windows. It's really hard to figure out the kernel file object from a descriptor. (impossible?) The other two ways of keeping track of a file on Windows would work better... (by other two ways, I mean passing HANDLEs and CFILEs.) That would break the ABI interface, though... :( I might see if I can tweak gbx to use CreateFile and pass the handle across the interface instead of a FD. "Windows doesn't have design flaws. Windows IS a design flaw." -- me > The DNS async code can not work if you remove the watching code, > sockets can not work, too... Well, the DNS async code doesn't work on Windows properly, anyway. Too bad the whole OS wasn't designed around Winsock2. > > >> >> and the event loop doesn't have a sleep in it. (but it still doesn't take a >> bunch of CPU time... I don't know why...) >> And then I notice that I actually put in Sleep(10); instead. Heh. > Mmmhh... another #ifdef that I should include. > Here's some other ifdefs: #ifndef OS_WINDOWS #include #include #include #else #include #endif and long gControl::handle() { #ifndef OS_WINDOWS return (long)GDK_WINDOW_XID(border->window); #else return (long)GDK_WINDOW_HWND(border->window); #endif } I have never used GTK before. First time I actually read any sort of documentation on it was today. I'm used to Fox. >> I tested the Notepad example so far. It crashes when you save, but the rest >> seems to work OK. >> >> Here's the console output, if anyone can tell me what is happening here, >> I'd like to know. >> >> DataObject Shell IDList Array Preferred DropEffect Shell Object Offsets >> FileName FileNameW Ole Private Data >> (gbx2): GLib-CRITICAL **: g_convert: assertion `str != NULL' failed > > ? I don't know yet, I have to investigate it. > Well, could be because of my changes. I listed them at the end. If I did anything stupid to your code (most likely), shout. The line above seems to be nonfatal. Everything seems to print that one. >> FNotepad.?.0: #43: Access forbidden >> WARNING: circular references detected >> FNotepad (1) I think this is where it's actually dumping. >> WARNING: CCONTAINER_width not yet implemented > > >> WARNING: CCONTAINER_height not yet implemented >> WARNING: gButton::setCancel() not yet implemented And I think these are printed later because of my stupid buffered console. > > > I have to write the code for CCONTAINER_width, height and setCancel(), this > is normal > Yeah. I saw those warnings in the X11 version too. >> >> Of course, it's probabaly having something to do with one of the bits that >> doesn't work properly. >> >> I also had to stub two unimplemented functions (Daniel, why isn't this a >> compile error for you?) > > Linux compiler allows to compile it, and then, if the function is called, the > program stops with an error (undefined symbol...) What are these two > functions? void gListBox::setIndex(long vl) void gListBox::setItemText(long ind,char *txt) Do you get a warning? I noticed you have a few instances of missing newline at end of file... I could've sworn linux warns about that too... how bout using "make 2>warnings.txt" so you can notice these? > > >> >> >> >> Well, that's about it, screenshots will follow soon. > > Cool > >> >> >> --Brandon > > > Regards, > > D. Campos > Here's a diff, along with commentary. diff -u -x '*.o' ./CFont.h ../../CFont.h --- ./CFont.h 2005-01-20 09:09:55.000000000 -0600 +++ ../../CFont.h 2005-03-10 18:26:00.085782400 -0600 @@ -54,4 +54,4 @@ } CFONT; -#endif \ No newline at end of file +#endif I just added a newline at end of file here. diff -u -x '*.o' ./CTrayIcon.h ../../CTrayIcon.h --- ./CTrayIcon.h 2005-03-04 13:18:20.000000000 -0600 +++ ../../CTrayIcon.h 2005-03-10 18:55:52.000000000 -0600 @@ -42,7 +42,7 @@ typedef struct { GB_BASE ob; - gTrayIcon *icon; +// gTrayIcon *icon; } CTRAYICON; Here's me commenting out part of TrayIcon. diff -u -x '*.o' ./gcontrol.cpp ../../gcontrol.cpp --- ./gcontrol.cpp 2005-03-05 04:21:59.000000000 -0600 +++ ../../gcontrol.cpp 2005-03-10 18:54:38.000000000 -0600 @@ -28,7 +28,11 @@ #include #include +#ifndef OS_WINDOWS #include +#else +#include +#endif #include #include #include "widgets.h" @@ -159,17 +163,17 @@ gboolean gPlugin_OnUnplug(GtkSocket *socket,gPlugin *data) { - if (data->onUnplug) data->onUnplug(data); - return true; +//if (data->onUnplug) data->onUnplug(data); +// return true; } void gPlugin_OnPlug(GtkSocket *socket,gPlugin *data) { - if (data->onPlug) data->onPlug(data); +// if (data->onPlug) data->onPlug(data); } gPlugin::gPlugin(gControl *parent) : gControl(parent) -{ +{/* g_typ=Type_gPlugin; border=gtk_event_box_new(); widget=gtk_socket_new(); @@ -180,14 +184,15 @@ onUnplug=NULL; g_signal_connect(G_OBJECT(widget),"plug-removed",G_CALLBACK(gPlugin_OnUnplug),(gpointer)this); g_signal_connect(G_OBJECT(widget),"plug-added",G_CALLBACK(gPlugin_OnPlug),(gpointer)this); - +*/ } void gPlugin::plug(long id) { - gtk_socket_add_id(GTK_SOCKET(widget),(GdkNativeWindow)id); + //gtk_socket_add_id(GTK_SOCKET(widget),(GdkNativeWindow)id); } + void gControl::destroy() { gtk_widget_destroy(border); @@ -732,7 +737,11 @@ } long gControl::handle() { +#ifndef OS_WINDOWS return (long)GDK_WINDOW_XID(border->window); +#else + return (long)GDK_WINDOW_HWND(border->window); +#endif } /***************************************************************** @@ -860,7 +869,7 @@ entry[1].flags=0; entry[1].info=0; - gtk_drag_dest_set(border,(GtkDestDefaults)0,0, \ + gtk_drag_dest_set(border,(GtkDestDefaults)0,0, \ 0, \ (GdkDragAction)(GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK)); //gtk_drag_dest_set(w,(GtkDestDefaults)0,0, \ Yeah, I did a lot of stuff here. The last hunk is interesting. You have a space after the \ at the end of the line. My compiler warned me about that.... diff -u -x '*.o' ./glistbox.cpp ../../glistbox.cpp --- ./glistbox.cpp 2005-03-05 03:22:53.000000000 -0600 +++ ../../glistbox.cpp 2005-03-10 18:29:56.000000000 -0600 @@ -423,4 +423,12 @@ gStoreList_Clear(STORE_LIST); } +void gListBox::setIndex(long vl) +{ + stub("gListBox::setIndex"); +} +void gListBox::setItemText(long ind,char *txt) +{ + stub("gListBox::setItemText"); +} And here's the missing stubs. diff -u -x '*.o' ./gmainwindow.cpp ../../gmainwindow.cpp --- ./gmainwindow.cpp 2005-03-06 15:10:30.000000000 -0600 +++ ../../gmainwindow.cpp 2005-03-10 18:50:30.000000000 -0600 @@ -108,7 +108,8 @@ windows[nwindows-1]=this; if (plug) - border=gtk_plug_new(0); + stub("mainwindow plugin"); +// border=gtk_plug_new(0); else border=gtk_window_new(GTK_WINDOW_TOPLEVEL); @@ -490,7 +491,9 @@ void gApplication::iteration() { +#ifndef OS_WINDOWS struct timespec mywait; +#endif if (gtk_events_pending ()) { @@ -498,9 +501,13 @@ } else { +#ifndef OS_WINDOWS mywait.tv_sec=0; mywait.tv_nsec=100000; nanosleep(&mywait,NULL); +#else + Sleep(10); +#endif } } And here's me hacking around the lack of nanosleep and struct timespec. diff -u -x '*.o' ./main.cpp ../../main.cpp --- ./main.cpp 2005-03-07 09:26:52.000000000 -0600 +++ ../../main.cpp 2005-03-10 19:01:58.000000000 -0600 @@ -85,10 +85,10 @@ extern "C" { - GB_INTERFACE GB; +__declspec(dllexport) GB_INTERFACE GB; - GB_DESC *GB_CLASSES[] = +__declspec(dllexport) GB_DESC *GB_CLASSES[] = { CTimerDesc, CDesktopDesc, @@ -168,22 +168,22 @@ NULL }; - int GB_INIT(void) +__declspec(dllexport) int GB_INIT(void) { - CWatcher::Init(); +// CWatcher::Init(); gMessage::setTitle(GB.Application.Name()); GB.Hook(GB_HOOK_QUIT, (void *)my_quit); GB.Hook(GB_HOOK_MAIN, (void *)my_main); GB.Hook(GB_HOOK_WAIT, (void *)my_wait); GB.Hook(GB_HOOK_LOOP, (void *)my_loop); - GB.Hook(GB_HOOK_WATCH,(void *)my_watch); + // GB.Hook(GB_HOOK_WATCH,(void *)my_watch); GB.Hook(GB_HOOK_POST,(void*)my_post); return FALSE; } - void GB_EXIT() +__declspec(dllexport) void GB_EXIT() { - CWatcher::Clear(); + // CWatcher::Clear(); gMessage::setTitle(NULL); gDialog::setPath(NULL); gDialog::setFilter(NULL,0); @@ -234,13 +234,13 @@ static void my_watch(int fd, int type, void *callback, long param) { - CWatcher::Add(fd,type,callback,param); +// CWatcher::Add(fd,type,callback,param); } void do_iteration(void) { if (post_Check) { post_Check=false; GB.CheckPost(); } - CWatcher::Perform(); +// CWatcher::Perform(); gApplication::iteration(); } I had to manually export the interface symbols, because I was too lazy to write a .def file for the DLL. diff -u -x '*.o' ./widgets.h ../../widgets.h --- ./widgets.h 2005-03-07 09:59:14.000000000 -0600 +++ ../../widgets.h 2005-03-10 18:53:58.038560000 -0600 @@ -25,9 +25,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ***************************************************************************/ - +#ifndef OS_WINDOWS #include #include +#else +#include +#include +#endif #ifndef __widgets_h #define __widgets_h @@ -505,6 +509,7 @@ void connectParent(); }; +/* class gTrayIcon { public: @@ -532,13 +537,17 @@ GtkWidget *img; GtkTooltips *tip; +#ifndef OS_WINDOWS Screen *xscreen; Display *xdisplay; + Atom selection_atom; Atom manager_atom; Atom system_tray_opcode_atom; Window manager_window; +#endif }; +*/ class gPlugin : public gControl { @@ -925,6 +934,15 @@ gSlider(gControl *parent); //"Properties" + +#ifdef OS_WINDOWS + + #undef max + #undef min + +#endif + + long max(); long min(); bool tracking(); The last hunk is of interest. min and max are macros here. (stupid namespace pollution...) Really, having min() and max() member functions is kinda asking for trouble. From jredrejo at ...101... Fri Mar 11 14:05:18 2005 From: jredrejo at ...101... (=?ISO-8859-1?Q?Jos=E9?= L. Redrejo =?ISO-8859-1?Q?Rodr=EDguez?=) Date: Fri, 11 Mar 2005 14:05:18 +0100 Subject: [Gambas-devel] More about fosdem and gambas Message-ID: <1110546318.6468.32.camel@...102...> I had the pleasure of being in FOSDEM , listening and talking with Beno?t about our favourite seafood. I have written a brief of the conversation in my blog: http://www.itais.net/index.php?title=con_benoit_minisini_en_el_fosdem&more=1&c=1&tb=1&pb=1 Daniel Campos was also there with me, and I think there are many ideas to share with you all. Beno?t also told me he would like people from this list to give their contributions. Regards From sourceforge-raindog2 at ...19... Fri Mar 11 15:39:22 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Fri, 11 Mar 2005 09:39:22 -0500 Subject: [Gambas-devel] Re: [Gambas-user] Oh dear... Gambas Source (implement blob into gb.db) In-Reply-To: <200503111246.36554.thomas@...249...> References: <200503111246.36554.thomas@...249...> Message-ID: <200503110939.22739.sourceforge-raindog2@...19...> On Friday 11 March 2005 06:46, Thomas Kleindienst wrote: > I had the idea to implement blobs into GB.db myself, but I'm lost > in the code (dunno where to start) > > should be like: > > dim ba as byte[] I think I asked this before, but I don't think anyone responded. What's the downside to just adding a join() method to the Byte[] class, since inserting blobs as strings seems to work fine? Won't your modifications to gb.db just be implementing a join()-like functionality anyway, internally to the component? Under what circumstances would you use byte[] in Gambas rather than string[] or integer[]? It looks like the code that maps blobs to strings is driver-specific.... in src/lib/db/mysql/main.c and src/lib/db/sqlite/sqlitedataset.cpp. In the case of mysql, I'd say you need to change it so a BLOB becomes a GB_T_OBJECT and do what you need to do to allocate the object and populate it. Either that or you can look at DB_Format in src/lib/db/main.c and try to add code to accept GB_T_OBJECT arguments and then verify that they're Byte[] arguments, then do pretty much the same thing as the GB_T_STRING and GB_T_CSTRING cases do. That's where I'd start, anyway, not having looked at the db component and drivers until 5 minutes ago. I'm copying gambas-devel because we're getting into devel territory. Rob From sourceforge-raindog2 at ...19... Fri Mar 11 16:27:49 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Fri, 11 Mar 2005 10:27:49 -0500 Subject: [Gambas-devel] More about fosdem and gambas In-Reply-To: <1110546318.6468.32.camel@...102...> References: <1110546318.6468.32.camel@...102...> Message-ID: <200503111025.16214.sourceforge-raindog2@...19...> On Friday 11 March 2005 08:05, Jos? "L. Redrejo" Rodr?guez wrote: > Daniel Campos was also there with me, and I think there are many > ideas to share with you all. Beno?t also told me he would like > people from this list to give their contributions. It sounds like you guys had a very productive discussion about Gambas and especially its toolkit agnosticism. I look forward to what's coming. From gambasfr at ...4... Fri Mar 11 21:58:34 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Fri, 11 Mar 2005 21:58:34 +0100 Subject: [Gambas-devel] More about fosdem and gambas In-Reply-To: <1110546318.6468.32.camel@...102...> References: <1110546318.6468.32.camel@...102...> Message-ID: <200503112158.34858.gambasfr@...4...> Le vendredi 11 Mars 2005 14:05, Jos? L. Redrejo Rodr?guez a ?crit?: > I had the pleasure of being in FOSDEM , listening and talking with > Beno?t about our favourite seafood. I have written a brief of the > conversation in my blog: > http://www.itais.net/index.php?title=con_benoit_minisini_en_el_fosdem&more= >1&c=1&tb=1&pb=1 > > Daniel Campos was also there with me, and I think there are many ideas > to share with you all. Beno?t also told me he would like people from > this list to give their contributions. > Regards Just a little thing... who is Daniel and who is Jos? on the photo ? there I am sad bus frankly I bitterly regret not having been able to go the FOSDEM (google traduce) Fabien Bodard From daniel.campos at ...103... Fri Mar 11 22:51:43 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Fri, 11 Mar 2005 22:51:43 +0100 Subject: [Gambas-devel] More about fosdem and gambas In-Reply-To: <200503112158.34858.gambasfr@...4...> References: <1110546318.6468.32.camel@...102...> <200503112158.34858.gambasfr@...4...> Message-ID: <423212EF.1030603@...103...> > >Just a little thing... who is Daniel and who is Jos? on the photo ? > > > Some clues... :-))) -------------- next part -------------- A non-text attachment was scrubbed... Name: GbWhois.tar.gz Type: application/x-gzip Size: 17846 bytes Desc: not available URL: From gambasfr at ...4... Fri Mar 11 22:53:14 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Fri, 11 Mar 2005 22:53:14 +0100 Subject: [Gambas-devel] More about fosdem and gambas In-Reply-To: <423212EF.1030603@...103...> References: <1110546318.6468.32.camel@...102...> <200503112158.34858.gambasfr@...4...> <423212EF.1030603@...103...> Message-ID: <200503112253.14954.gambasfr@...4...> Le vendredi 11 Mars 2005 22:51, Daniel Campos a ?crit?: > >Just a little thing... who is Daniel and who is Jos? on the photo ? > > Some clues... :-))) Thank you daniel ! I hope a next time to be on the photo ;-) Nevertheless, are you sure Benoit, that there is some video taken during your speech ? Fabien From Karl.Reinl at ...16... Sat Mar 12 00:23:45 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Sat, 12 Mar 2005 00:23:45 +0100 Subject: [Gambas-devel] xslt Message-ID: <200503120023.46077.Karl.Reinl@...16...> Salut, send this mail, even if it is prematurity for my actual knowledge . Listening the started discussion about xforms etc. on the list. To know I like to work with the XML-structure, I use it to save my data, but I will also use it to descript my gambas-forms. I made a project to read in gambas forms and saved it to an XML structure. see attached MySQLLogin-0.0.6.tar.gz and set the startup to CReadForm if not. But I'm lazy, too lazy to write a code to transform that Form.xml to a gambas form. Why am I to lazy to do that? I hope to find the day where I need it, I can do it with a style sheet who calls Gambia's Subs or Functions, which will do the job for me, and for all Form.XML I need. I did that in VB6 with msxml 3.x like processor:SETBUTTON(.) called in an class 'preprocessor' the function/sub SETBUTTON with the node (.), where all rules for Buttons, and set this on the form . With am XML/XLS like that, you can design your project on an browser or in an VB-project. Actually I know the xlst from gambas can't do that. So I need from Daniel Campos informations about the lib/libs used by the xlst-component , to know if that what I want is possible with th lib used. Amicalment Charlie -------------- next part -------------- A non-text attachment was scrubbed... Name: MySQLLogin-0.0.6.tar.gz Type: application/x-tgz Size: 16097 bytes Desc: not available URL: From daniel.campos at ...103... Sat Mar 12 12:18:26 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Sat, 12 Mar 2005 12:18:26 +0100 Subject: [Gambas-devel] xslt In-Reply-To: <200503120023.46077.Karl.Reinl@...16...> References: <200503120023.46077.Karl.Reinl@...16...> Message-ID: <4232D002.4050309@...103...> Charlie Reinl escribi?: >Salut, > >send this mail, even if it is prematurity for my actual knowledge . >Listening the started discussion about xforms etc. on the list. > >To know I like to work with the XML-structure, I use it to save my data, but I >will also use it to descript my gambas-forms. > >I made a project to read in gambas forms and saved it to an XML structure. >see attached MySQLLogin-0.0.6.tar.gz and set the startup to CReadForm if not. > >But I'm lazy, too lazy to write a code to transform that Form.xml to a gambas >form. > >Why am I to lazy to do that? I hope to find the day where I need it, I can do >it with a style sheet who calls Gambia's Subs or Functions, which will do the >job for me, and for all Form.XML I need. > >I did that in VB6 with msxml 3.x like > > > > > > > >processor:SETBUTTON(.) called in an class 'preprocessor' the function/sub >SETBUTTON with the node (.), where all rules for Buttons, and set this on the >form . > >With am XML/XLS like that, you can design your project on an browser or in an >VB-project. > >Actually I know the xlst from gambas can't do that. > >So I need from Daniel Campos informations about the lib/libs used by the >xlst-component , to know if that what I want is possible with th lib used. > >Amicalment >Charlie > > Well, If I understood your message, you want to read a XML file and create forms, buttons, etc with that information. This is not what XSLT does, it just transform between markup file formats. I think you should wait until Beno?t releases the new Gambas developement version in which you'll be able to create components with Gambas, and then, from your component, read XML files and create forms, and other widgets based on the XML file information at runtime. This will be easy than adding it to the C XSTL code (which uses libxml ( http://www.xmlsoft.org ). This would be the way: You can XmlReader (or may be XmlDocument when I finish it) to read the XML file, and modify that XSLT file: Read and parsed by your component which receives the information from both the XSLT file and a Form that you pass as parameter, for example: MyClass. Parse("XslFile.xsl",MyForm) Regards, D. Campos From daniel.campos at ...103... Sat Mar 12 13:00:06 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Sat, 12 Mar 2005 13:00:06 +0100 Subject: [Gambas-devel] gtk 050312 Message-ID: <4232D9C6.9070203@...103...> Hi: New prealpha version of the gtk component. This is a bug fix release, specially for some graphic methods. This version allows to play the "AnalogWatch" example. Other graphical examples and games begin to work, but it needs more work. Regards, D. Campos -------------- next part -------------- A non-text attachment was scrubbed... Name: gtk-050312-gb1.9.tar.bz2 Type: application/x-bzip Size: 65514 bytes Desc: not available URL: From gambas at ...1... Mon Mar 14 12:26:32 2005 From: gambas at ...1... (Benoit Minisini) Date: Mon, 14 Mar 2005 12:26:32 +0100 Subject: [Gambas-devel] juste une question comme =?iso-8859-1?q?=E7a?= ... In-Reply-To: <200503092116.58476.gambasfr@...4...> References: <200503092116.58476.gambasfr@...4...> Message-ID: <200503141226.32466.gambas@...1...> On Wednesday 09 March 2005 21:16, Bodard Fabien wrote: > Hi benoit > Ive juste a little query... > > I've you thinked about something to mke more simple the creation of > multidimentionnal array ? > > Actually i need to use an object[] and another array to do that ... i'ts > not really easy when i've 10 array of this type ! > > I just talking about static array... but it while be good for array class > too > > array.resize(2[,3,...]) > > Fabien > Yes, I am thinking about adding syntactic sugar to the compiler for simplifying array declaration. I just don't have time :-) It may be something like that: DIM aString AS NEW String[5, 6] <=> DIM aString AS NEW String[](5, 6) Array classes may become multi-dimensional. Regards, -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Mon Mar 14 12:28:13 2005 From: gambas at ...1... (Benoit Minisini) Date: Mon, 14 Mar 2005 12:28:13 +0100 Subject: [Gambas-devel] Windows stuff In-Reply-To: References: <42311AB0.7030108@...103...> Message-ID: <200503141228.13276.gambas@...1...> On Friday 11 March 2005 07:27, Brandon Bergren wrote: > On Fri, 11 Mar 2005, Daniel Campos wrote: > > OK, Brandom, good job! I hope you'll publish a tutorial soon about > > this... > > > >> The only stuff currently disabled is: > >> > >> Plugin stuff -- There isn't glue code in gtk for windows. Should be > >> easy, probabaly possible to make a single file glue to drop in that > >> doesn't require a gtk recompile. Really, since windows isn't picky about > >> security like X, making most of the Plugin/Socket stuff nullop should > >> just work(tm) > > > > As I said in aprevious message, I made a program in VB that used a > > foreign window, however I have got not the sources as I was not allowed > > to copy them in my old company. But it is possible to emulate that > > function in Win$. However... what key word should I use to disable this > > in the Win$ compilation? ( #ifndef CYGWIN or #ifndef WINDOWS...?) > > Well, I started using OS_WINDOWS for native windows stuff. > Benoit: do you think that is a good define for a non-cygwin windows native > compile? Yes. But you must add its detection in acinclude.m4 with the others I think... -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Mon Mar 14 12:41:48 2005 From: gambas at ...1... (Benoit Minisini) Date: Mon, 14 Mar 2005 12:41:48 +0100 Subject: [Gambas-devel] Re: Gambas and Visual Basic In-Reply-To: References: <200502231140.08495.gambas@...1...> Message-ID: <200503141241.48164.gambas@...1...> On Saturday 12 March 2005 23:16, Richard Stallman wrote: > [I sent this message a week ago but did not get a response. > Could we get the discussion moving again?] I thought we could continue the discussion on the devel mailing-list of Gambas, as many other people already use Gambas for translating Visual-Basic projects, and so may have better ideas than mine. > > I think the better way to start such a huge thing is writing a VB > project -> Gambas project translator, by implementing a few needed > features directly in Gambas (like paramater passed by reference), > and all other VB specific stuff in a component. The translator > will tell wich lines of code can have some problems. > > Would you like to write a file describing your ideas for how to do > this? That would help recruit people to do the work. > I sent you in a last mail an OpenOffice document which describes the way I think it is possible to use Gambas for translating VB projects. Was it too short ? As I tried to say before, directly compiling VB source code in Gambas, Java, or any other bytecode does not solve the big problems: calls to external Windows DLLs, use of ActiveX controls and objects, use of ActiveX automation. That is the important things people using VB need to translate! Regards, -- Benoit Minisini mailto:gambas at ...1... From gambasfr at ...4... Mon Mar 14 13:47:26 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Mon, 14 Mar 2005 13:47:26 +0100 Subject: [Gambas-devel] juste une question comme =?iso-8859-1?q?=E7a?= ... In-Reply-To: <200503141226.32466.gambas@...1...> References: <200503092116.58476.gambasfr@...4...> <200503141226.32466.gambas@...1...> Message-ID: <200503141347.26581.gambasfr@...4...> Le lundi 14 Mars 2005 12:26, Benoit Minisini a ?crit?: > On Wednesday 09 March 2005 21:16, Bodard Fabien wrote: > > Hi benoit > > Ive juste a little query... > > > > I've you thinked about something to mke more simple the creation of > > multidimentionnal array ? > > > > Actually i need to use an object[] and another array to do that ... i'ts > > not really easy when i've 10 array of this type ! > > > > I just talking about static array... but it while be good for array class > > too > > > > array.resize(2[,3,...]) > > > > Fabien > > Yes, I am thinking about adding syntactic sugar to the compiler for > simplifying array declaration. I just don't have time :-) > > It may be something like that: > > DIM aString AS NEW String[5, 6] > <=> DIM aString AS NEW String[](5, 6) yeepee ! :) and about TYPE ? > Array classes may become multi-dimensional. > > Regards, From gambasfr at ...4... Mon Mar 14 14:02:07 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Mon, 14 Mar 2005 14:02:07 +0100 Subject: [Gambas-devel] Re: Gambas and Visual Basic In-Reply-To: <200503141241.48164.gambas@...1...> References: <200503141241.48164.gambas@...1...> Message-ID: <200503141402.07750.gambasfr@...4...> Le lundi 14 Mars 2005 12:41, Benoit Minisini a ?crit?: > On Saturday 12 March 2005 23:16, Richard Stallman wrote: > > [I sent this message a week ago but did not get a response. > > Could we get the discussion moving again?] > > I thought we could continue the discussion on the devel mailing-list of > Gambas, as many other people already use Gambas for translating > Visual-Basic projects, and so may have better ideas than mine. > > > I think the better way to start such a huge thing is writing a VB > > project -> Gambas project translator, by implementing a few needed > > features directly in Gambas (like paramater passed by reference), > > and all other VB specific stuff in a component. The translator > > will tell wich lines of code can have some problems. > > > > Would you like to write a file describing your ideas for how to do > > this? That would help recruit people to do the work. > > I sent you in a last mail an OpenOffice document which describes the way I > think it is possible to use Gambas for translating VB projects. Was it too > short ? > > As I tried to say before, directly compiling VB source code in Gambas, > Java, or any other bytecode does not solve the big problems: calls to > external Windows DLLs, use of ActiveX controls and objects, use of ActiveX > automation. That is the important things people using VB need to translate! > > Regards, I've something to say... i think directly use a compiler for translate a vb programme is not a good idea ... just for the reason that vb is now an old privacy language.. and may be not maintained by his own .. who prefer now .net version. But some vb to gambas traducer are better option ... with a native windows compiler. if rms know someone to do this stuff ? I know vb is a standart but is not free . Gambas is free but is not actually a standart. Why not make gambas a free standart, that look like vb but that is not vb. In a near time vb6 program's can't run on new m$ systems... no ? Fabien Bodard From gambas at ...1... Mon Mar 14 15:13:24 2005 From: gambas at ...1... (Benoit Minisini) Date: Mon, 14 Mar 2005 15:13:24 +0100 Subject: [Gambas-devel] package splitting Message-ID: <200503141513.24963.gambas@...1...> Hi all component developers. I'm currently splitting the big gambas source package into mainly one source package for each component. This will imply a new organization, so I won't be able to merge your changes. When the splitting process is finished, I will release a 1.9.4 version. Then you will have to apply the new organization to your own component source directories, and then you will be able to send me your sources so that I merge them. I will send more explanation of what you will have to do exactly at 1.9.4 release. Regards, -- Benoit Minisini mailto:gambas at ...1... From sourceforge-raindog2 at ...19... Mon Mar 14 15:42:34 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Mon, 14 Mar 2005 09:42:34 -0500 Subject: [Gambas-devel] package splitting In-Reply-To: <200503141513.24963.gambas@...1...> References: <200503141513.24963.gambas@...1...> Message-ID: <200503140942.34063.sourceforge-raindog2@...19...> On Monday 14 March 2005 09:13, Benoit Minisini wrote: > I'm currently splitting the big gambas source package into mainly > one source package for each component. Thank you! This will make it a lot easier when there are a hundred Gambas components written :) Rob From sourceforge-raindog2 at ...19... Mon Mar 14 15:40:37 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Mon, 14 Mar 2005 09:40:37 -0500 Subject: [Gambas-devel] Re: Gambas and Visual Basic In-Reply-To: <200503141402.07750.gambasfr@...4...> References: <200503141241.48164.gambas@...1...> <200503141402.07750.gambasfr@...4...> Message-ID: <200503140940.37292.sourceforge-raindog2@...19...> On Monday 14 March 2005 08:02, Bodard Fabien wrote: > In a near time vb6 program's can't run on new m$ systems... no ? I would jump for joy if Longhorn dropped support for old Windows programs like VB6, especially if such programs could run under wine or be translated into Gambas, because many shops would jump over to Linux rather than move to longhorn. But Longhorn's not due for another couple years yet, and I can't imagine that Microsoft would possibly be that self-destructive. On the subject at hand, I'm definitely in favor of writing something to translate VB code to Gambas, and if no one who's ever written a language parser before will volunteer, I will end up starting in on it with a lot of Regexp objects. :) Rob From eng_ak at ...43... Mon Mar 14 15:53:32 2005 From: eng_ak at ...43... (Ahmed Kamal) Date: Mon, 14 Mar 2005 16:53:32 +0200 Subject: [Gambas-devel] Re: Gambas and Visual Basic In-Reply-To: <200503140940.37292.sourceforge-raindog2@...19...> References: <200503141241.48164.gambas@...1...> <200503141402.07750.gambasfr@...4...> <200503140940.37292.sourceforge-raindog2@...19...> Message-ID: <4235A56C.3010000@...43...> An HTML attachment was scrubbed... URL: From sourceforge-raindog2 at ...19... Mon Mar 14 16:27:31 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Mon, 14 Mar 2005 10:27:31 -0500 Subject: [Gambas-devel] Re: Gambas and Visual Basic In-Reply-To: <4235A56C.3010000@...43...> References: <200503140940.37292.sourceforge-raindog2@...19...> <4235A56C.3010000@...43...> Message-ID: <200503141027.31092.sourceforge-raindog2@...19...> On Monday 14 March 2005 09:53, Ahmed Kamal wrote: > Well MS did drop support for old VB6 apps with VB.net. Everything > changed. Well, Fabien was talking about vb6 programs not running at all under new Microsoft operating systems, not just having to rewrite your source for vb.net. > If you could support VB.net, we would be embracing the > future. Everybody is porting old code now. No, if we ever claimed to support VB.net we would be chasing taillights. Besides, the Mono project (specifically mbas) is already taking on that challenge, even if they don't have an IDE yet. It may be that once they do, its popularity will make Gambas fade into insignificance, but I personally (and some of my clients) feel the same way about Mono as we do about Java. But I'd love to be able to support VB5/6 and VB.Net, if I'm the one who ends up writing the translator. It's just kinda likely that I'll do it badly, what with never making it past CS 101. > I always thought (Like Stallman) we should target some generic VM. > Either mono (stop screaming), or www.parrotcode.org (This is really > a good option IMHO), opens up tons of perl/python code. I would be excited about a parrotized Gambas, but I question whether Gambas would still be Gambas at that point. Much of what we have written would basically need to be flushed down the toilet and rewritten. I would certainly rather use Gambas' Qt bindings than Perl's, for example. Also, I don't know if you've noticed, but components are loaded with meta-information used in the documentation and elsewhere in the IDE to make the end user's life easier. I don't even know if you can reliably enumerate installed Perl modules, much less enumerate the classes, methods, constants and properties embodied by each one. Ditto Python, Java, and .net/Mono. Maybe it's there and I just don't know about it. Being able to tick off a box to include a reference to a component rather than typing "#include" or "uses" or "import" etc. is kinda important to the RAD concept in a way that those who haven't spent their entire career using RAD tools usually don't understand. Worse, those of us who have written components would need to re-learn to write components against whatever VM ended up being the chosen one, and from experience in other projects where the underlying technology was changed midstream, I can tell you many of us just won't bother (though maybe other people would join in.) I think those who would like to target a different bytecode should grab the Gambas compiler source and just do it. Make a proof of concept, post it, and show us why it's better. If you're proud of your work and we're not receptive, you can always fork. Free software projects thrive when the developers are excited about working on them.... VM advocates, now's your chance to make us all excited. Rob From bdragon at ...185... Mon Mar 14 16:52:29 2005 From: bdragon at ...185... (Brandon Bergren) Date: Mon, 14 Mar 2005 09:52:29 -0600 (Central Standard Time) Subject: [Gambas-devel] Windows stuff In-Reply-To: <200503141228.13276.gambas@...1...> References: <42311AB0.7030108@...103...> <200503141228.13276.gambas@...1...> Message-ID: On Mon, 14 Mar 2005, Benoit Minisini wrote: >> Well, I started using OS_WINDOWS for native windows stuff. >> Benoit: do you think that is a good define for a non-cygwin windows native >> compile? > > Yes. But you must add its detection in acinclude.m4 with the others I think... But I'm not using autoconf for that part right now. (Unless the platform is MSYS) On msys, detection is like this: $ uname -mps MINGW32_NT-5.1 i686 unknown The _NT-5.1 is derived from my os (Windows XP) The i686 is my processor. But I'm currently using Dev-CPP, which doesn't use auto*. I'm just asking for a reservation for future use. ;) --Brandon From gambas at ...1... Mon Mar 14 16:56:27 2005 From: gambas at ...1... (Benoit Minisini) Date: Mon, 14 Mar 2005 16:56:27 +0100 Subject: [Gambas-devel] Windows stuff In-Reply-To: References: <200503141228.13276.gambas@...1...> Message-ID: <200503141656.27503.gambas@...1...> On Monday 14 March 2005 16:52, Brandon Bergren wrote: > On Mon, 14 Mar 2005, Benoit Minisini wrote: > >> Well, I started using OS_WINDOWS for native windows stuff. > >> Benoit: do you think that is a good define for a non-cygwin windows > >> native compile? > > > > Yes. But you must add its detection in acinclude.m4 with the others I > > think... > > But I'm not using autoconf for that part right now. > (Unless the platform is MSYS) > > On msys, detection is like this: > > $ uname -mps > MINGW32_NT-5.1 i686 unknown > > The _NT-5.1 is derived from my os (Windows XP) > The i686 is my processor. > > But I'm currently using Dev-CPP, which doesn't use auto*. > > I'm just asking for a reservation for future use. ;) > > --Brandon > No problem with OS_WINDOWS. -- Benoit Minisini mailto:gambas at ...1... From bdragon at ...185... Mon Mar 14 17:14:00 2005 From: bdragon at ...185... (Brandon Bergren) Date: Mon, 14 Mar 2005 10:14:00 -0600 (Central Standard Time) Subject: [Gambas-devel] Windows stuff In-Reply-To: <200503141656.27503.gambas@...1...> References: <200503141228.13276.gambas@...1...> <200503141656.27503.gambas@...1...> Message-ID: >> I'm just asking for a reservation for future use. ;) > No problem with OS_WINDOWS. Wow, that was fast. Any chance of using caching for the configure script? Configure on cygwin takes a VERY long time. (forking on windows is EXTREMELY slow.) I started using libtool-cache (http://libtool-cache.sourceforge.net/) which speeds up compiles a lot, but that doesn't decrease the time to run configure. I'm looking forward to 1.9.4! Two more things about the build system: 1. builddir!=srcdir. Has anyone thought about this problem? Example: cd gambas2-1.9.3 mkdir build-debug cd build-debug ../configure make This lets you have several parallel builds. I think you do it by using $TOP_BUILDDIR instead of relative ../'s, or something.. It's a useful thing to support. 2. Nonrecursive make. Here's a (somewhat famous) paper on the topic: http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html --Brandon B. From gambas at ...1... Mon Mar 14 17:47:32 2005 From: gambas at ...1... (Benoit Minisini) Date: Mon, 14 Mar 2005 17:47:32 +0100 Subject: [Gambas-devel] Package splitting (2) Message-ID: <200503141747.32130.gambas@...1...> Arf! The package has been splitted, but there are many scripts to rewrite in my own compilation system. And I have to split the big .spec file. So you won't see it now :-) Here is the list of independant source packages: gb.compress.zlib gb.compress.bzlib2 gb.db.mysql gb.db.odbc gb.db.postgresql gb.db.sqlite gb.db.sqlite3 gb.gtk gb.net gb.net.curl gb.pcre gb.qt gb.qt.kde gb.sdl gb.xml main All gb.* sources packages are independant GNU autotools packages. But then, of course, you will have to manage compilation dependencies between different packages by hand. Every package can be compiled in any order, except that the 'main' package *must* be compiled last, once every other component has been compiled AND installed. To Jos? Rodr?guez: is it possible with the Debian compilation system ? -- Benoit Minisini mailto:gambas at ...1... From jredrejo at ...101... Mon Mar 14 17:54:21 2005 From: jredrejo at ...101... (=?ISO-8859-1?Q?Jos=E9?= L. Redrejo =?ISO-8859-1?Q?Rodr=EDguez?=) Date: Mon, 14 Mar 2005 17:54:21 +0100 Subject: [Gambas-devel] Package splitting (2) In-Reply-To: <200503141747.32130.gambas@...1...> References: <200503141747.32130.gambas@...1...> Message-ID: <1110819261.11579.5.camel@...102...> El lun, 14-03-2005 a las 17:47 +0100, Benoit Minisini escribi?: > Arf! The package has been splitted, but there are many scripts to rewrite in > my own compilation system. And I have to split the big .spec file. > > So you won't see it now :-) > > Here is the list of independant source packages: > > gb.compress.zlib > gb.compress.bzlib2 > gb.db.mysql > gb.db.odbc > gb.db.postgresql > gb.db.sqlite > gb.db.sqlite3 > gb.gtk > gb.net > gb.net.curl > gb.pcre > gb.qt > gb.qt.kde > gb.sdl > gb.xml > main > > All gb.* sources packages are independant GNU autotools packages. But then, of > course, you will have to manage compilation dependencies between different > packages by hand. > > Every package can be compiled in any order, except that the 'main' package > *must* be compiled last, once every other component has been compiled AND > installed. > > To Jos? Rodr?guez: is it possible with the Debian compilation system ? > It is just pefect :-D Building dependencies can be easily managed in Debian. Only one doubt: what about the ide ? I supposse it is in another component that will depend, at least on main & ( gb.qt ||gb.gtk ) . isn't it? From gambas at ...1... Mon Mar 14 17:56:06 2005 From: gambas at ...1... (Benoit Minisini) Date: Mon, 14 Mar 2005 17:56:06 +0100 Subject: [Gambas-devel] gtk 050312 In-Reply-To: <4232D9C6.9070203@...103...> References: <4232D9C6.9070203@...103...> Message-ID: <200503141756.06203.gambas@...1...> On Saturday 12 March 2005 13:00, Daniel Campos wrote: > Hi: > > New prealpha version of the gtk component. This is a bug fix release, > specially for > some graphic methods. This version allows to play the "AnalogWatch" > example. Other graphical examples and games begin to work, but it needs > more work. > > Regards, > > D. Campos This is the last update I merge before 1.9.4. -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Mon Mar 14 18:02:39 2005 From: gambas at ...1... (Benoit Minisini) Date: Mon, 14 Mar 2005 18:02:39 +0100 Subject: [Gambas-devel] Package splitting (2) In-Reply-To: <1110819261.11579.5.camel@...102...> References: <200503141747.32130.gambas@...1...> <1110819261.11579.5.camel@...102...> Message-ID: <200503141802.40099.gambas@...1...> On Monday 14 March 2005 17:54, Jos? L. Redrejo Rodr?guez wrote: > El lun, 14-03-2005 a las 17:47 +0100, Benoit Minisini escribi?: > > Arf! The package has been splitted, but there are many scripts to rewrite > > in my own compilation system. And I have to split the big .spec file. > > > > So you won't see it now :-) > > > > Here is the list of independant source packages: > > > > gb.compress.zlib > > gb.compress.bzlib2 > > gb.db.mysql > > gb.db.odbc > > gb.db.postgresql > > gb.db.sqlite > > gb.db.sqlite3 > > gb.gtk > > gb.net > > gb.net.curl > > gb.pcre > > gb.qt > > gb.qt.kde > > gb.sdl > > gb.xml > > main > > > > All gb.* sources packages are independant GNU autotools packages. But > > then, of course, you will have to manage compilation dependencies between > > different packages by hand. > > > > Every package can be compiled in any order, except that the 'main' > > package *must* be compiled last, once every other component has been > > compiled AND installed. > > > > To Jos? Rodr?guez: is it possible with the Debian compilation system ? > > It is just pefect :-D > Building dependencies can be easily managed in Debian. > > Only one doubt: what about the ide ? I supposse it is in another > component that will depend, at least on main & ( gb.qt ||gb.gtk ) . > isn't it? > This is the reason why the "main" package must be compiled last, and after every other components are compiles AND installed. The compiler just need the *.info and *.list files generated by the components to compile projects using these components. As for component dependencies, they will be enhanced in a next release, so that you can use expression like (gb.qt || gb.gtk) Regards, -- Benoit Minisini mailto:gambas at ...1... From lordheavy at ...141... Mon Mar 14 18:59:49 2005 From: lordheavy at ...141... (Laurent Carlier) Date: Mon, 14 Mar 2005 18:59:49 +0100 Subject: [Gambas-devel] Package splitting (2) In-Reply-To: <200503141802.40099.gambas@...1...> References: <200503141747.32130.gambas@...1...> <1110819261.11579.5.camel@...102...> <200503141802.40099.gambas@...1...> Message-ID: <200503141859.50170.lordheavy@...141...> Le Lundi 14 Mars 2005 18:02, Benoit Minisini a ?crit?: > > > > > All gb.* sources packages are independant GNU autotools packages. But > > > then, of course, you will have to manage compilation dependencies > > > between different packages by hand. > > > > > > Every package can be compiled in any order, except that the 'main' > > > package *must* be compiled last, once every other component has been > > > compiled AND installed. > > > Does that means that componant will have their own configure script (with the help of some gambas macros) ? > As for component dependencies, they will be enhanced in a next release, so > that you can use expression like (gb.qt || gb.gtk) It should be great to have rules like firewall too : REJECT ALL ACCEPT (gb.qt || gb.gtk) * Enhance the debugging of componant : gb.warning(char *,...) , in the same way of qt warning should do in term something like WARNING : gb.mycomponant - ......... gb.debug(int level,char *,...), will be for debug output with various debug level (and perhaps with log facilities) with some switch in command line ? Regards, -- Laurent Carlier From henrik at ...254... Mon Mar 14 20:47:13 2005 From: henrik at ...254... (Henrik Pihl) Date: Mon, 14 Mar 2005 21:47:13 +0200 Subject: [Gambas-devel] Renaming on forms Message-ID: <4235EA41.6060606@...254...> Hello, Some people at #gambas suggested that I should mention this idea. When renaming something on the form, Gambas should rename the corresponding entrys in the classes also. It is easy with little projects - a little search and replace will do. What about big projects? On the other hand, how frequently developers change the name of a control, once the big part of the project is finished? Just my 5 cents, Henrik From bdragon at ...185... Tue Mar 15 01:49:08 2005 From: bdragon at ...185... (Brandon Bergren) Date: Mon, 14 Mar 2005 18:49:08 -0600 (Central Standard Time) Subject: [Gambas-devel] Gambas Devel-branch on NetBSD 2.0/i386 nits Message-ID: I got gambas 1.9.3 to compile/run on netbsd/i386 v2.0. The biggest issues: 1. gbi2 and gbx2 NEED to be compiled with -lpthread as a link option. That's because, on NetBSD, if you dlopen() a threaded library from a single-threaded image, you will get a nasty crash. 2. If you are going to guess paths, you need these, too: BIN: /usr/pkg/bin /usr/pkg/qt3/bin INCLUDE: /usr/pkg/include /usr/pkg/qt3/include LIB: /usr/pkg/lib /usr/pkg/qt3/lib These are the main pkgsrc directories. (QT is stored seperate from everything else...) 3. net/curl #includes are really messy. On netbsd, you get the correct path to curl includes automatically, but NOT the parent directory of that. So, is NOT reachable, but is. 4. memset() is in . --Brandon From gambas at ...1... Tue Mar 15 09:56:37 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 15 Mar 2005 09:56:37 +0100 Subject: [Gambas-devel] Package splitting (2) In-Reply-To: <200503141859.50170.lordheavy@...141...> References: <200503141747.32130.gambas@...1...> <200503141802.40099.gambas@...1...> <200503141859.50170.lordheavy@...141...> Message-ID: <200503150956.37232.gambas@...1...> On Monday 14 March 2005 18:59, Laurent Carlier wrote: > Le Lundi 14 Mars 2005 18:02, Benoit Minisini a ?crit?: > > > > All gb.* sources packages are independant GNU autotools packages. But > > > > then, of course, you will have to manage compilation dependencies > > > > between different packages by hand. > > > > > > > > Every package can be compiled in any order, except that the 'main' > > > > package *must* be compiled last, once every other component has been > > > > compiled AND installed. > > Does that means that componant will have their own configure script (with > the help of some gambas macros) ? > > > As for component dependencies, they will be enhanced in a next release, > > so that you can use expression like (gb.qt || gb.gtk) > > It should be great to have rules like firewall too : > > REJECT ALL > ACCEPT (gb.qt || gb.gtk) Very strange idea... :-) > > * Enhance the debugging of componant : > > gb.warning(char *,...) , in the same way of qt warning should do in term > something like WARNING : gb.mycomponant - ......... > > gb.debug(int level,char *,...), will be for debug output with various debug > level (and perhaps with log facilities) with some switch in command line ? What for ? Printing debugging message for the component is not the interpreter job. But why not... Regards, -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Tue Mar 15 09:57:08 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 15 Mar 2005 09:57:08 +0100 Subject: [Gambas-devel] Renaming on forms In-Reply-To: <4235EA41.6060606@...254...> References: <4235EA41.6060606@...254...> Message-ID: <200503150957.08294.gambas@...1...> On Monday 14 March 2005 20:47, Henrik Pihl wrote: > Hello, > Some people at #gambas suggested that I should mention this idea. > When renaming something on the form, Gambas should rename the > corresponding entrys in the classes also. It is easy with little > projects - a little search and replace will do. What about big projects? > On the other hand, how frequently developers change the name of a > control, once the big part of the project is finished? > > Just my 5 cents, > Henrik > > This is a good idea, and I think it is possible. I note it in the TODO file. -- Benoit Minisini mailto:gambas at ...1... From rms at ...84... Tue Mar 15 19:39:02 2005 From: rms at ...84... (Richard Stallman) Date: Tue, 15 Mar 2005 13:39:02 -0500 Subject: [Gambas-devel] Re: Gambas and Visual Basic In-Reply-To: <200503141241.48164.gambas@...1...> (message from Benoit Minisini on Mon, 14 Mar 2005 12:41:48 +0100) References: <200502231140.08495.gambas@...1...> <200503141241.48164.gambas@...1...> Message-ID: I thought we could continue the discussion on the devel mailing-list of Gambas, as many other people already use Gambas for translating Visual-Basic projects, and so may have better ideas than mine. Ok. I sent you in a last mail an OpenOffice document which describes the way I think it is possible to use Gambas for translating VB projects. I don't have OpenOffice installed, so I can't read that format. (I don't know why I didn't say this the first time--perhaps I didn't notice that the attachment was there, or perhaps I saw it and wasn't sure what to say and forgot about it and then deleted the message. Either way, sorry.) If you send me the information in plain text, then I will read it. As I tried to say before, directly compiling VB source code in Gambas, Java, or any other bytecode does not solve the big problems: calls to external Windows DLLs, use of ActiveX controls and objects, use of ActiveX automation. I understand this part, but I disagree with the conclusion. Just because this won't solve all the problems is no reason not to do it. Solving part of the problem is better than nothing, Every long journey starts with a single step. This can be the first step. I think the ReactOS developers are writing replacements for many Windows DLLs. That would be a second step. Eventually we will do it all. If you do the part of this job that you can straightforwardly do, it will be a great start. So how about it? From sanyaade at ...255... Wed Mar 16 00:07:49 2005 From: sanyaade at ...255... (sanyaade) Date: Tue, 15 Mar 2005 23:07:49 -0000 Subject: [Gambas-devel] Re: Gambas and Visual Basic References: <200503141241.48164.gambas@...1...> <200503141402.07750.gambasfr@...4...> <200503140940.37292.sourceforge-raindog2@...19...> Message-ID: > On the subject at hand, I'm definitely in favor of writing something > to translate VB code to Gambas, and if no one who's ever written a > language parser before will volunteer, I will end up starting in on > it with a lot of Regexp objects. :) =>1.) There is BXC at http://groups.yahoo.com/group/BCX/ that is an open-source kit it can transate Basic, Visual Basic to C and I think not sure to C++. Perhaps the translator could be a starting point, a jump start or a knowldge base on how to do such things. => 2.) More also there is http://www.purebasic.com/index.php3 Closed Source Commercial. => 3.) http://sourceforge.net/projects/rbasic/ => is a interpretor/parser/compiler based on the Visual Basic (6/.net) grammer. It will parse to C++ and compile with MingW => 4.) Another one is VB62VC6 => http://sourceforge.net/projects/vb6tovc6/ a add-in code translator I think some of these open-source kits can be twinked to work in Gambas or as starting point. God blesses!!! Best regards, Sanyaade ----- Original Message ----- From: "Rob" To: Sent: Monday, March 14, 2005 2:40 PM Subject: Re: [Gambas-devel] Re: Gambas and Visual Basic > On Monday 14 March 2005 08:02, Bodard Fabien wrote: > > In a near time vb6 program's can't run on new m$ systems... no ? > > I would jump for joy if Longhorn dropped support for old Windows > programs like VB6, especially if such programs could run under wine > or be translated into Gambas, because many shops would jump over to > Linux rather than move to longhorn. > > But Longhorn's not due for another couple years yet, and I can't > imagine that Microsoft would possibly be that self-destructive. > > On the subject at hand, I'm definitely in favor of writing something > to translate VB code to Gambas, and if no one who's ever written a > language parser before will volunteer, I will end up starting in on > it with a lot of Regexp objects. :) > > Rob > > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel > From gambas at ...1... Wed Mar 16 14:22:37 2005 From: gambas at ...1... (Benoit Minisini) Date: Wed, 16 Mar 2005 14:22:37 +0100 Subject: [Gambas-devel] Gambas Devel-branch on NetBSD 2.0/i386 nits In-Reply-To: References: Message-ID: <200503161422.37767.gambas@...1...> On Tuesday 15 March 2005 01:49, Brandon Bergren wrote: > I got gambas 1.9.3 to compile/run on netbsd/i386 v2.0. > > The biggest issues: > > 1. gbi2 and gbx2 NEED to be compiled with -lpthread as a link option. > > That's because, on NetBSD, if you dlopen() a threaded library from a > single-threaded image, you will get a nasty crash. > This is just a metter of adding netbsd detection in the two autoconf macros GB_THREAD and GB_SYSTEM. This will be done in the next release. > 2. If you are going to guess paths, you need these, too: > BIN: > /usr/pkg/bin > /usr/pkg/qt3/bin > > INCLUDE: > /usr/pkg/include > /usr/pkg/qt3/include > > LIB: > /usr/pkg/lib > /usr/pkg/qt3/lib > > These are the main pkgsrc directories. (QT is stored seperate from > everything else...) I will add them in specific components configure.ac files. > > 3. net/curl #includes are really messy. > On netbsd, you get the correct path to curl includes automatically, but > NOT the parent directory of that. > > So, is NOT reachable, but is. > This problem must be fixed by Daniel... > 4. memset() is in . > Which files need to be modified ? > --Brandon > -- Benoit Minisini mailto:gambas at ...1... From gambasfr at ...4... Wed Mar 16 21:53:05 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Wed, 16 Mar 2005 21:53:05 +0100 Subject: [Gambas-devel] BUG in db component Message-ID: <200503162153.06100.gambasfr@...4...> Hi, If a field not exist, this query return as error at the place of NOT in gambas 1.9.3 and Maybe 1.0.4 hResult.Fields.Exist(a$) Fabien From bdragon at ...185... Wed Mar 16 22:13:49 2005 From: bdragon at ...185... (Brandon Bergren) Date: Wed, 16 Mar 2005 15:13:49 -0600 (Central Standard Time) Subject: [Gambas-devel] Gambas Devel-branch on NetBSD 2.0/i386 nits In-Reply-To: <200503161422.37767.gambas@...1...> References: <200503161422.37767.gambas@...1...> Message-ID: On Wed, 16 Mar 2005, Benoit Minisini wrote: > On Tuesday 15 March 2005 01:49, Brandon Bergren wrote: >> I got gambas 1.9.3 to compile/run on netbsd/i386 v2.0. >> >> The biggest issues: >> >> 1. gbi2 and gbx2 NEED to be compiled with -lpthread as a link option. >> >> That's because, on NetBSD, if you dlopen() a threaded library from a >> single-threaded image, you will get a nasty crash. >> > > This is just a metter of adding netbsd detection in the two autoconf macros > GB_THREAD and GB_SYSTEM. This will be done in the next release. > OK. >> 2. If you are going to guess paths, you need these, too: >> BIN: >> /usr/pkg/bin >> /usr/pkg/qt3/bin >> >> INCLUDE: >> /usr/pkg/include >> /usr/pkg/qt3/include >> >> LIB: >> /usr/pkg/lib >> /usr/pkg/qt3/lib >> >> These are the main pkgsrc directories. (QT is stored seperate from >> everything else...) > > I will add them in specific components configure.ac files. > Sounds good. uname -s is NetBSD uname -r is 2.0 >> >> 3. net/curl #includes are really messy. >> On netbsd, you get the correct path to curl includes automatically, but >> NOT the parent directory of that. >> >> So, is NOT reachable, but is. >> > > This problem must be fixed by Daniel... > OK... >> 4. memset() is in . >> > > Which files need to be modified ? > gambas2-1.9.3/src/lib/gtk/watcher.cpp I didn't use a newer version than the one that came with 1.9.3. It's probabaly already fixed... --Brandon From gambasfr at ...4... Wed Mar 16 22:47:52 2005 From: gambasfr at ...4... (Bodard Fabien) Date: Wed, 16 Mar 2005 22:47:52 +0100 Subject: [Gambas-devel] BUG in db component In-Reply-To: <200503162153.06100.gambasfr@...4...> References: <200503162153.06100.gambasfr@...4...> Message-ID: <200503162247.53029.gambasfr@...4...> Le mercredi 16 Mars 2005 21:53, Bodard Fabien a ?crit?: > Hi, > If a field not exist, this query return as error at the place of NOT in hem FALSE > gambas 1.9.3 and Maybe 1.0.4 > > hResult.Fields.Exist(a$) > > Fabien > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From cmcpero at ...28... Fri Mar 18 06:28:49 2005 From: cmcpero at ...28... (Jean-Francois Perreault) Date: Fri, 18 Mar 2005 00:28:49 -0500 Subject: [Gambas-devel] Re: Gambas and Visual Basic In-Reply-To: References: <200502231140.08495.gambas@...1...> <200503141241.48164.gambas@...1...> Message-ID: <423A6711.6040303@...28...> An HTML attachment was scrubbed... URL: From andrea_bortolan at ...112... Fri Mar 18 14:23:37 2005 From: andrea_bortolan at ...112... (Andrea Bortolan) Date: Fri, 18 Mar 2005 14:23:37 +0100 (CET) Subject: [Gambas-devel] ODBC Message-ID: <20050318132337.14899.qmail@...258...> Hi all, here the new version of the ODBC component, this should fix some errors and problems. Remember that it's still in alpha version... Have a nice day,Andrea. ___________________________________ Nuovo Yahoo! Messenger: E' molto pi? divertente: Audibles, Avatar, Webcam, Giochi, Rubrica Scaricalo ora! http://it.messenger.yahoo.it -------------- next part -------------- A non-text attachment was scrubbed... Name: odbc-18032005.tar.gz Type: application/x-gzip Size: 11495 bytes Desc: odbc-18032005.tar.gz URL: From sourceforge-raindog2 at ...19... Fri Mar 18 16:07:57 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Fri, 18 Mar 2005 10:07:57 -0500 Subject: [Gambas-devel] Re: Gambas and Visual Basic In-Reply-To: <423A6711.6040303@...28...> References: <423A6711.6040303@...28...> Message-ID: <200503181007.57473.sourceforge-raindog2@...19...> On Friday 18 March 2005 00:28, Jean-Francois Perreault wrote: > > > > References: <423A6711.6040303@...28...> <200503181007.57473.sourceforge-raindog2@...19...> Message-ID: <423B058B.2070203@...28...> Hi, Richard Stallman wrote: > As I tried to say before, directly compiling VB source code in Gambas, > Java, > or any other bytecode does not solve the big problems: calls to external > Windows DLLs, use of ActiveX controls and objects, use of ActiveX > automation. > > I understand this part, but I disagree with the conclusion. Just > because this won't solve all the problems is no reason not to do it. > Solving part of the problem is better than nothing, Every long journey > starts with a single step. This can be the first step. > > I think the ReactOS developers are writing replacements for many Windows > DLLs. That would be a second step. Eventually we will do it all. > > If you do the part of this job that you can straightforwardly do, > it will be a great start. So how about it? first , I'd like to say that if gambas is going to be involved in running VB code, the only way this should happen would be to "re-compile" VB code straight into gambas code , targeting the gambas bytecode , isn't an optimal solution because there are "better" bytecode for that purpose , while gambas is great, it's internal bytecode wasn't necesarily designed for this so if a bytecode was to be targeted , parrocode , or the (not as quickly moving as people think target) java, are probably better target just because they are more general/all-purpose than gambas is (what with being developped exclusively for the gambas language) if it's going to re-interpret vb code into gambas code , every native vb function that gambas doesn't have or behave the same as in vb will have to be decomposed into simpler gambas functions , not unlike how a C compiler decompose each statement into a lot of simpler asm commands (I guess) but that doesn't solve the problem that there are some things gambas just can't do I think this is what the original poster was trying to say , the problem with gambas is that it can't directly access arbitrary functions in a lib or dll so the problem isn't that the windows API isn't available on the target environment, it's that it's innacessible even if it was available , at least in the way vb does it gambas need components to bridge between system supplied API and gambas interpreted code and judging from previous answer on that subject from Benoit , at least for now it is impossible to access outside functions like VB does for example .. VB has the Lib and Alias keywords for use while declaring a function Lib specifies the dll (or lib if this could work with other OSes) and Alias give the name of the function in that dll a declaration is like this Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal IpPathName as String, ByVal iReadWrite as long) as Long it seems that it is the nature of interpreted language to have this limitation PERL , PHP , Python , apparently all need some special code to bridge that gap in the intepreter between the system and the running code so this is why I guess , vb code cannot run 1:1 on gambas , or any other interpreted environment , some code might run (pure vb only) but never all but this might only be true with vb6 , I don't know if vb.net only runs inside that .net framework (an interpreter ?) if it does then I suppose getting that code to run would be the mono project's job more that gambas' but if vb.net code is running inside an interpreter then I suppose this mean vb.net also cannot access external dlls without some patchwork code ? I don't think they would do that because that greatly limit what the language can do , maybe some code run natively while some other parts run in the .NET interpreter , if that is the case , to run under linux , it would be the job of both mono and wine (via winelib) , still not gambas' job it would be great if there was a way to dynamically access functions inside external dlls without the need for any special interface code , then it could be possible to run vb code in gambas on windows at least on linux (and macos), it would still be the system's job to supply the windows API and other libraries but at least the code could run mostly as-is the problem with components is that they can only be added to the gambas interpreter at the of compilation of the interpreter it self , that make adding components without recompiling gambas impossible , if it was possible to "plug-in" any component into any live gambas installation , then the component could be distributed with the application or distribued via a centrallized system not unlike PHP's PEAR and PERL's CPAN and others just that would be a big step forward in programmer (and user) usability but if that was possible then I guess it would be then possible for the gambas interpreter to dynamically generate components based on instructions in the running gambas code and then we could have a working Lib and Alias keyword for our SUB and FUNCTION in the case of Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal IpPathName as String, ByVal iReadWrite as long) as Long the interpreter could just, on the fly generate a kernel32 class module with a lopen function , so I guess there is something infeasible about this , because that would mean the other interpreted language could work without special "components" too .... but still the other interpreters allow to install those component after the compilation of the interpreter (they are not "built-in" to the interpreter) , so I guess the key here would be to generate components , on the fly , at run time then reload the interpreter with those new components , or dynamically insert them (like kernel modules ?) ? in any way , I can only come to the conclusion that something in this method is not possible , or else there would be no need for CPAN/PEAR and the others, I'm sure much better engineers than I, have worked on this problem and it must be impossible because of the existance of CPAN/PEAR .... this also points out another problem with gambas , not as pressing , but since every lib is going to need a component before it is used , many components will be created , at some point it will not be practical for all of them to be bundled with the gambas interpreter , so they will need to be separate , also to avoid "DLL HELL" problem , a central repository will need to be created , and a tool to easily download and install individual components on a live gambas installation (even if this require recompiling the interpreter) without that , when gambas start getting bundled with the major distros you'll have the default component installed and if you want more you need to re-install gambas by hand , since the user won't bother doing that if it's not easy enough, that would mean for gambas programmers that the default components are the only components they can use because their audience don't have and won't install extra components , this is also why a single programmer won't bother make a single-use component for his applications , because then his application will only run on his workstation if creating components on the fly is possible -- if there can be a Lib and Alias keywork to FUNCTION in gambas , I suppose the reason it does not exist now is that it would not work at all times right now in the case of Function lopen Lib "kernel32" Alias "_lopen" (ByVal IpPathName as String, ByVal iReadWrite as long) as Long it would be no problem becase all the arguments are ByVal , which is the default way gambas passes variables but for some (many?) function it is not so easy first some functions require just the pointer to variables so the called functions can write to it , there is no ByRef keywork with gambas also if there was , there is no garantee that the variables are stored in a way that the called function expects (if it wants a CHAR array you can't give it a string (even a native gambas string) because those are internally stored as utf-8 while the called function is going to expect 1 byte per character ASCII , and there is no garantee that strings in gambas are contiguous or uncompressed or etc.. we don't know how gambas stores strings (well .. I don't) and we can't make assumptions about that, and one thing is sure is that however strings are stored it is highly unlikely that the called function will know how that strings are stored and how to manipulate them) assuming native byte arrays are stored the same way they are elsewhere we could use that instead , then there would need to be a way to get the pointer to that byte array , in VB, if the ByRef keyword didn't exist and ByVal was the default way of passing variables , then the VarPtr() function would be used , VarPtr is a function that return the pointer to any "standard" variable (there is also StrPtr , that return a pointer to the unicode string you ask it and ObjPtr for the pointer to object and User Defined Types (another feature I would love to see in gambas , making a class is overkill when you want a UDT , how come we don't have UDTs ?! that's just weird I can't find a reason why we don't have them ! oh well...)) if we had those special function , and assuming that at least native byte arrays are stored in memory the same way it is with other languages when most API would become accessible but there is at least another special case that wouldn't work , callbacks from memory there is this very important windows API that uses callback Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long that function if I remember correctly serves to intercept all events of a "window" the last argument is a pointer to a subroutine in vb to use that API you have to use the AddressOf function like this SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc) AddressOf returns the pointer to the function , now the only way this could possibly work in gambas in the dynamically run-time created component scenario is if subroutine are stored in memory as machine executable code (if I understand correctly a JIT compiler like gambas compiles the subroutines and functions into executable at run-time using the bytecode , but I don't know if all the code is turned into machine code when the program start or just as the code is about to be executed (and discarded afterwards or kept in a cache , but not kept in whole in memory in a static location)) if it's not possible to give it the pointer to the real subroutine then there should be a way to tell the interpreter to listen for events at a certain address and when an event comes it would then fire the real sub-routine well anyway , direct "component-less" access to function in arbitrary DLLs and libs is certainly #1 in my gambas wishlist , I'd be really interested to hear how this could be done or why it's impossible with that I could even do ioctls and finish my joystick class ! ;) which btw , can easily handle 500+ events at less then 5% CPU usage on an athlon 1800+ and with only 0.002 second latency (only if I use native variables however , classes (like string array classes) eat 100% real quick (but latency is a bit better however , but at that cpu cost it's irrelevent)) I hope to hear some comments on this , from anyone! -- Jean-Francois Perreault From gambas at ...1... Tue Mar 22 12:47:04 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 22 Mar 2005 12:47:04 +0100 Subject: [Gambas-devel] Re: Gambas and Visual Basic (plain text version) In-Reply-To: <423B058B.2070203@...28...> References: <200503181007.57473.sourceforge-raindog2@...19...> <423B058B.2070203@...28...> Message-ID: <200503221247.05003.gambas@...1...> On Friday 18 March 2005 17:44, Jean-Francois Perreault wrote: > Hi, > > Richard Stallman wrote: > > As I tried to say before, directly compiling VB source code in Gambas, > > Java, > > or any other bytecode does not solve the big problems: calls to external > > Windows DLLs, use of ActiveX controls and objects, use of ActiveX > > automation. > > > > I understand this part, but I disagree with the conclusion. Just > > because this won't solve all the problems is no reason not to do it. > > Solving part of the problem is better than nothing, Every long journey > > starts with a single step. This can be the first step. > > > > I think the ReactOS developers are writing replacements for many Windows > > DLLs. That would be a second step. Eventually we will do it all. > > > > If you do the part of this job that you can straightforwardly do, > > it will be a great start. So how about it? > > first , I'd like to say that if gambas is going to be involved in > running VB code, the only way this should happen would be to > "re-compile" VB code straight into gambas code , targeting the gambas > bytecode , isn't an optimal solution because there are "better" bytecode > for that purpose , while gambas is great, it's internal bytecode wasn't > necesarily designed for this so if a bytecode was to be targeted , > parrocode , or the (not as quickly moving as people think target) java, > are probably better target just because they are more > general/all-purpose than gambas is (what with being developped > exclusively for the gambas language) This is right. But I think that old VB programmers want to port their old projects to free OS, AND to open their projects in a VB-like environment (Mono/GAMBAS) > > if it's going to re-interpret vb code into gambas code , every native vb > function that gambas doesn't have or behave the same as in vb will have > to be decomposed into simpler gambas functions , not unlike how a C > compiler decompose each statement into a lot of simpler asm commands (I > guess) > > but that doesn't solve the problem that there are some things gambas > just can't do I think there is not a lot of things GAMBAS can't do and VB can. > > I think this is what the original poster was trying to say , the problem > with gambas is that it can't directly access arbitrary functions in a > lib or dll > > so the problem isn't that the windows API isn't available on the target > environment, it's that it's innacessible even if it was available , at > least in the way vb does it > > gambas need components to bridge between system supplied API and gambas > interpreted code and judging from previous answer on that subject from > Benoit , at least for now it is impossible to access outside functions > like VB does > > for example .. > VB has the Lib and Alias keywords for use while declaring a function > > Lib specifies the dll (or lib if this could work with other OSes) and > Alias give the name of the function in that dll > a declaration is like this > > Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal IpPathName > as String, ByVal iReadWrite as long) as Long > > it seems that it is the nature of interpreted language to have this > limitation > PERL , PHP , Python , apparently all need some special code to bridge > that gap in the intepreter between the system and the running code > > so this is why I guess , vb code cannot run 1:1 on gambas , or any other > interpreted environment , some code might run (pure vb only) but never all > > but this might only be true with vb6 , I don't know if vb.net only runs > inside that .net framework (an interpreter ?) > if it does then I suppose getting that code to run would be the mono > project's job more that gambas' > > but if vb.net code is running inside an interpreter then I suppose this > mean vb.net also cannot access external dlls without some patchwork code > ? I don't think they would do that because that greatly limit what the > language can do , maybe some code run natively while some other parts > run in the .NET interpreter , if that is the case , to run under linux , > it would be the job of both mono and wine (via winelib) , still not > gambas' job > > it would be great if there was a way to dynamically access functions > inside external dlls without the need for any special interface code , > then it could be possible to run vb code in gambas on windows at least > I don't want to let Gambas program access external functions in libraries without using a component - I'm a bit scared of that :-) But I think maybe it is possible to use Wine libraries to replace calls to DLLs by calls to Wine libraries (making Wine libraries some Gambas components ?) > on linux (and macos), it would still be the system's job to supply the > windows API and other libraries but at least the code could run mostly > as-is > > the problem with components is that they can only be added to the gambas > interpreter at the of compilation of the interpreter it self , that make > adding components without recompiling gambas impossible , if it was > possible to "plug-in" any component into any live gambas installation , > then the component could be distributed with the application or > distribued via a centrallized system not unlike PHP's PEAR and PERL's > CPAN and others In the soon coming 1.9.4, components sources are splitted in many source packages. Note that in stable version, components can already be distributed in independant binary RPM packages. > > just that would be a big step forward in programmer (and user) usability > > but if that was possible then I guess it would be then possible for the > gambas interpreter to dynamically generate components based on > instructions in the running gambas code and then we could have a working > Lib and Alias keyword for our SUB and FUNCTION > > in the case of Declare Function lopen Lib "kernel32" Alias "_lopen" > (ByVal IpPathName as String, ByVal iReadWrite as long) as Long > the interpreter could just, on the fly generate a kernel32 class module > with a lopen function , so I guess there is something infeasible about > this , because that would mean the other interpreted language could work > without special "components" too .... but still the other interpreters > allow to install those component after the compilation of the > interpreter (they are not "built-in" to the interpreter) , so I guess > the key here would be to generate components , on the fly , at run time > then reload the interpreter with those new components , or dynamically > insert them (like kernel modules ?) ? > > in any way , I can only come to the conclusion that something in this > method is not possible , or else there would be no need for CPAN/PEAR > and the others, I'm sure much better engineers than I, have worked on > this problem and it must be impossible because of the existance of > CPAN/PEAR .... > For me, it is a translation problem (replace _lopen with something that does the same thing). Wine is sort of translation project (at runtime). > this also points out another problem with gambas , not as pressing , but > since every lib is going to need a component before it is used , many > components will be created , at some point it will not be practical for > all of them to be bundled with the gambas interpreter , so they will > need to be separate , also to avoid "DLL HELL" problem , a central > repository will need to be created , and a tool to easily download and > install individual components on a live gambas installation (even if > this require recompiling the interpreter) without that , when gambas > start getting bundled with the major distros you'll have the default > component installed and if you want more you need to re-install gambas > by hand , since the user won't bother doing that if it's not easy > enough, that would mean for gambas programmers that the default > components are the only components they can use because their audience > don't have and won't install extra components , this is also why a > single programmer won't bother make a single-use component for his > applications , because then his application will only run on his > workstation > I don't want DLL hell. This is why I want to centralize every component in a unique tree, and that all components in one tree has the same version number: gambas1, gambas2, ... > > > if creating components on the fly is possible -- if there can be a Lib > and Alias keywork to FUNCTION in gambas , I suppose the reason it does > not exist now is that it would not work at all times right now > Note that from 1.9.4, it will be possible to create components directly in Gamnbas. > in the case of Function lopen Lib "kernel32" Alias "_lopen" (ByVal > IpPathName as String, ByVal iReadWrite as long) as Long > > it would be no problem becase all the arguments are ByVal , which is the > default way gambas passes variables > > but for some (many?) function it is not so easy > > first some functions require just the pointer to variables so the called > functions can write to it , there is no ByRef keywork with gambas > also if there was , there is no garantee that the variables are stored > in a way that the called function expects > > (if it wants a CHAR array you can't give it a string (even a native > gambas string) because those are internally stored as utf-8 while the > called function is going to expect 1 byte per character ASCII , and > there is no garantee that strings in gambas are contiguous or > uncompressed or etc.. we don't know how gambas stores strings (well .. I > don't) and we can't make assumptions about that, and one thing is sure > is that however strings are stored it is highly unlikely that the called > function will know how that strings are stored and how to manipulate them) > > assuming native byte arrays are stored the same way they are elsewhere > we could use that instead , then there would need to be a way to get the > pointer to that byte array , in VB, if the ByRef keyword didn't exist > and ByVal was the default way of passing variables , then the VarPtr() > function would be used , VarPtr is a function that return the pointer to > any "standard" variable (there is also StrPtr , that return a pointer to > the unicode string you ask it and ObjPtr for the pointer to object and > User Defined Types (another feature I would love to see in gambas , > making a class is overkill when you want a UDT , how come we don't have > UDTs ?! that's just weird I can't find a reason why we don't have them ! > oh well...)) > > if we had those special function , and assuming that at least native > byte arrays are stored in memory the same way it is with other languages > when most API would become accessible > > but there is at least another special case that wouldn't work , callbacks > from memory there is this very important windows API that uses callback > > Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd > As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long > > that function if I remember correctly serves to intercept all events of > a "window" the last argument is a pointer to a subroutine > > in vb to use that API you have to use the AddressOf function > > like this > > SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc) > > AddressOf returns the pointer to the function , now the only way this > could possibly work in gambas in the dynamically run-time created > component scenario is if subroutine are stored in memory as machine > executable code (if I understand correctly a JIT compiler like gambas > compiles the subroutines and functions into executable at run-time using > the bytecode , but I don't know if all the code is turned into machine > code when the program start or just as the code is about to be executed > (and discarded afterwards or kept in a cache , but not kept in whole in > memory in a static location)) if it's not possible to give it the > pointer to the real subroutine then there should be a way to tell the > interpreter to listen for events at a certain address and when an event > comes it would then fire the real sub-routine > For such case, Gambas can't emulate this behavior. But I think Wine DLL can. I need a Wine specialist that could tell what is possible and what is not. > well anyway , direct "component-less" access to function in arbitrary > DLLs and libs is certainly #1 in my gambas wishlist , I'd be really > interested to hear how this could be done or why it's impossible > > with that I could even do ioctls and finish my joystick class ! ;) > which btw , can easily handle 500+ events at less then 5% CPU usage on > an athlon 1800+ and with only 0.002 second latency (only if I use native > variables however , classes (like string array classes) eat 100% real > quick (but latency is a bit better however , but at that cpu cost it's > irrelevent)) > If I let Gambas projects access external shared libraries directly, I can say "good bye" to the portability! > > I hope to hear some comments on this , from anyone! > Here it is. Did you read the OpenOffice/PDF document I posted on this mailing-list ? -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Tue Mar 22 14:24:44 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 22 Mar 2005 14:24:44 +0100 Subject: [Gambas-devel] ODBC In-Reply-To: <20050318132337.14899.qmail@...258...> References: <20050318132337.14899.qmail@...258...> Message-ID: <200503221424.46887.gambas@...1...> On Friday 18 March 2005 14:23, Andrea Bortolan wrote: > Hi all, > here the new version of the ODBC component, > this should fix some errors and problems. > Remember that it's still in alpha version... > > Have a nice day,Andrea. > > I got it. It will be in 1.9.4... -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Tue Mar 22 15:15:17 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 22 Mar 2005 15:15:17 +0100 Subject: [Gambas-devel] ODBC In-Reply-To: <20050318132337.14899.qmail@...258...> References: <20050318132337.14899.qmail@...258...> Message-ID: <200503221515.17769.gambas@...1...> On Friday 18 March 2005 14:23, Andrea Bortolan wrote: > Hi all, > here the new version of the ODBC component, > this should fix some errors and problems. > Remember that it's still in alpha version... > > Have a nice day,Andrea. > You should be careful when writing your code... ---------8<------------------------------------------------ main.c: In function `open_database': main.c:379: warning: passing arg 3 of `SQLSetConnectAttr' makes pointer from integer without a cast main.c: In function `query_free_result': main.c:585: warning: assignment from incompatible pointer type main.c: In function `query_make_result': main.c:660: warning: assignment from incompatible pointer type main.c: In function `query_fill': main.c:844: warning: assignment from incompatible pointer type main.c: In function `table_exist': main.c:1255: warning: passing arg 1 of `SQLFreeHandle' makes integer from pointer without a cast main.c:1255: warning: passing arg 2 of `SQLFreeHandle' makes pointer from integer without a cast main.c: In function `table_list': main.c:1321: warning: passing arg 1 of `SQLFreeHandle' makes integer from pointer without a cast main.c:1321: warning: passing arg 2 of `SQLFreeHandle' makes pointer from integer without a cast main.c:1335: warning: assignment from incompatible pointer type main.c:1343: warning: passing arg 1 of `SQLFreeHandle' makes integer from pointer without a cast main.c:1343: warning: passing arg 2 of `SQLFreeHandle' makes pointer from integer without a cast main.c:1355: warning: assignment from incompatible pointer type main.c:1366: warning: assignment from incompatible pointer type main.c: In function `table_primary_key': main.c:1433: warning: passing arg 3 of `do_query' from incompatible pointer type main.c:1460: warning: passing arg 1 of `SQLFreeHandle' makes integer from pointer without a cast main.c:1460: warning: passing arg 2 of `SQLFreeHandle' makes pointer from integer without a cast main.c:1400: warning: unused variable `tablelist' main.c:1400: warning: unused variable `curtable' main.c:1403: warning: unused variable `szTableName' main.c:1405: warning: unused variable `szTableType' main.c:1406: warning: unused variable `szTableRemarks' main.c:1410: warning: unused variable `nIndicatorName' main.c:1411: warning: unused variable `nIndicatorType' main.c:1412: warning: unused variable `nIndicatorRemarks' main.c:1415: warning: unused variable `tablenum' main.c: In function `field_exist': main.c:1662: error: 'field' redeclared as different kind of symbol main.c:1646: error: previous definition of 'field' was here >>>>>>>>>>>>>>>>> I fixed the error, but I'm afraid about what is really done by that function. Which compiler do you use ? >>>>>>>>>>>>>>>>> main.c:1696: warning: passing arg 1 of `strcmp' makes pointer from integer without a cast main.c:1697: warning: passing arg 1 of `SQLFreeHandle' makes integer from pointer without a cast main.c:1697: warning: passing arg 2 of `SQLFreeHandle' makes pointer from integer without a cast main.c:1702: warning: passing arg 1 of `SQLFreeHandle' makes integer from pointer without a cast main.c:1702: warning: passing arg 2 of `SQLFreeHandle' makes pointer from integer without a cast main.c:1663: warning: unused variable `tablelist' main.c:1663: warning: unused variable `curtable' main.c:1666: warning: unused variable `nReturn' main.c:1667: warning: unused variable `szTableName' main.c:1668: warning: unused variable `szTableType' main.c:1669: warning: unused variable `szTableRemarks' main.c:1671: warning: unused variable `nIndicatorName' main.c:1672: warning: unused variable `nIndicatorType' main.c:1673: warning: unused variable `nIndicatorRemarks' main.c:1675: warning: unused variable `tablenum' main.c: In function `field_list': main.c:1774: warning: passing arg 1 of `SQLFreeHandle' makes integer from pointer without a cast main.c:1774: warning: passing arg 2 of `SQLFreeHandle' makes pointer from integer without a cast main.c:1735: warning: unused variable `tablelist' main.c:1735: warning: unused variable `curtable' main.c:1738: warning: unused variable `nReturn' main.c:1739: warning: unused variable `szTableName' main.c:1740: warning: unused variable `szTableType' main.c:1741: warning: unused variable `szTableRemarks' main.c:1742: warning: unused variable `nIndicatorName' main.c:1743: warning: unused variable `nIndicatorType' main.c:1744: warning: unused variable `nIndicatorRemarks' main.c:1745: warning: unused variable `tablenum' main.c:1747: warning: unused variable `field' main.c: At top level: main.c:138: warning: 'conv_boolean' defined but not used main.c:269: warning: 'query_get_param' defined but not used ---------8<------------------------------------------------ Regards, -- Benoit Minisini mailto:gambas at ...1... From cmcpero at ...28... Wed Mar 23 00:32:00 2005 From: cmcpero at ...28... (Jean-Francois Perreault) Date: Tue, 22 Mar 2005 18:32:00 -0500 Subject: [Gambas-devel] Re: Gambas and Visual Basic (plain text version) In-Reply-To: <200503221247.05003.gambas@...1...> References: <200503181007.57473.sourceforge-raindog2@...19...> <423B058B.2070203@...28...> <200503221247.05003.gambas@...1...> Message-ID: <4240AAF0.8050702@...28...> Hi ! Benoit Minisini wrote: >On Friday 18 March 2005 17:44, Jean-Francois Perreault wrote: > >>first , I'd like to say that if gambas is going to be involved in >>running VB code, the only way this should happen would be to >>"re-compile" VB code straight into gambas code , targeting the gambas >>bytecode , isn't an optimal solution because there are "better" bytecode >>for that purpose , while gambas is great, it's internal bytecode wasn't >>necesarily designed for this so if a bytecode was to be targeted , >>parrocode , or the (not as quickly moving as people think target) java, >>are probably better target just because they are more >>general/all-purpose than gambas is (what with being developped >>exclusively for the gambas language) >> > >This is right. But I think that old VB programmers want to port their old >projects to free OS, AND to open their projects in a VB-like environment >(Mono/GAMBAS) > I agree, VB code to Gambas code is the cleanest way to do this >>but that doesn't solve the problem that there are some things gambas >>just can't do >> > >I think there is not a lot of things GAMBAS can't do and VB can. > I agree gambas is already a very capable language I was refering to external calls to libraries and gettings pointers to variables, strings, object, and subroutines >> >>it would be great if there was a way to dynamically access functions >>inside external dlls without the need for any special interface code , >>then it could be possible to run vb code in gambas on windows at least >> >> > >I don't want to let Gambas program access external functions in libraries >without using a component - I'm a bit scared of that :-) > >But I think maybe it is possible to use Wine libraries to replace calls to >DLLs by calls to Wine libraries (making Wine libraries some Gambas >components ?) > > yes , most API calls can be implemented classes and functions in a component in the case of a VB to Gambas code conversion this is probably the safest way to do it it would be the safe way to do an api call but direct access to libraries offer a degree of flexibility that can never be achieved via a component one of the problem is that there are libraries that will not have a component >>the problem with components is that they can only be added to the gambas >>interpreter at the of compilation of the interpreter it self , that make >>adding components without recompiling gambas impossible , if it was >>possible to "plug-in" any component into any live gambas installation , >>then the component could be distributed with the application or >>distribued via a centrallized system not unlike PHP's PEAR and PERL's >>CPAN and others >> > >In the soon coming 1.9.4, components sources are splitted in many source >packages. > >Note that in stable version, components can already be distributed in >independant binary RPM packages. > > that's great, this is a step in the right direction but for component distributed as independant binary packages, you must have the same version of gambas installed as the one used to compile that component , if you compiled gambas yourself you can't use those binary package and if you compiled gambas yourself without a certain component , you can't add a component later on without recompiling gambas entirely, right? >>just that would be a big step forward in programmer (and user) usability >> >>but if that was possible then I guess it would be then possible for the >>gambas interpreter to dynamically generate components based on >>instructions in the running gambas code and then we could have a working >>Lib and Alias keyword for our SUB and FUNCTION >> >>in the case of Declare Function lopen Lib "kernel32" Alias "_lopen" >>(ByVal IpPathName as String, ByVal iReadWrite as long) as Long >>the interpreter could just, on the fly generate a kernel32 class module >>with a lopen function , so I guess there is something infeasible about >>this , because that would mean the other interpreted language could work >>without special "components" too .... but still the other interpreters >>allow to install those component after the compilation of the >>interpreter (they are not "built-in" to the interpreter) , so I guess >>the key here would be to generate components , on the fly , at run time >>then reload the interpreter with those new components , or dynamically >>insert them (like kernel modules ?) ? >> >>in any way , I can only come to the conclusion that something in this >>method is not possible , or else there would be no need for CPAN/PEAR >>and the others, I'm sure much better engineers than I, have worked on >>this problem and it must be impossible because of the existance of >>CPAN/PEAR .... >> >> > >For me, it is a translation problem (replace _lopen with something that does >the same thing). Wine is sort of translation project (at runtime). > > >>this also points out another problem with gambas , not as pressing , but >>since every lib is going to need a component before it is used , many >>components will be created , at some point it will not be practical for >>all of them to be bundled with the gambas interpreter , so they will >>need to be separate , also to avoid "DLL HELL" problem , a central >>repository will need to be created , and a tool to easily download and >>install individual components on a live gambas installation (even if >>this require recompiling the interpreter) without that , when gambas >>start getting bundled with the major distros you'll have the default >>component installed and if you want more you need to re-install gambas >>by hand , since the user won't bother doing that if it's not easy >>enough, that would mean for gambas programmers that the default >>components are the only components they can use because their audience >>don't have and won't install extra components , this is also why a >>single programmer won't bother make a single-use component for his >>applications , because then his application will only run on his >>workstation >> >> > >I don't want DLL hell. This is why I want to centralize every component in a >unique tree, and that all components in one tree has the same version number: >gambas1, gambas2, ... > > >> >>if creating components on the fly is possible -- if there can be a Lib >>and Alias keywork to FUNCTION in gambas , I suppose the reason it does >>not exist now is that it would not work at all times right now >> >> > >Note that from 1.9.4, it will be possible to create components directly in >Gamnbas. > > that's a very interesting feature ! you mean like I make a project , in my project I make a component , I take my project , tar it , send it to gambasforge and anyone running a version of gambas >= than mine can just hit F5 and run ? where gambas takes care of compiling and using the component I just made ? that would make single-use component practical , it's just as good as direct library access >>but there is at least another special case that wouldn't work , callbacks >>from memory there is this very important windows API that uses callback >> >>Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd >>As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long >> >>that function if I remember correctly serves to intercept all events of >>a "window" the last argument is a pointer to a subroutine >> >>in vb to use that API you have to use the AddressOf function >> >>like this >> >>SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc) >> >>AddressOf returns the pointer to the function , now the only way this >>could possibly work in gambas in the dynamically run-time created >>component scenario is if subroutine are stored in memory as machine >>executable code (if I understand correctly a JIT compiler like gambas >>compiles the subroutines and functions into executable at run-time using >>the bytecode , but I don't know if all the code is turned into machine >>code when the program start or just as the code is about to be executed >>(and discarded afterwards or kept in a cache , but not kept in whole in >>memory in a static location)) if it's not possible to give it the >>pointer to the real subroutine then there should be a way to tell the >>interpreter to listen for events at a certain address and when an event >>comes it would then fire the real sub-routine >> >> > >For such case, Gambas can't emulate this behavior. But I think Wine DLL can. I >need a Wine specialist that could tell what is possible and what is not. > > does that mean that if direct library access was possible , callback are not possible ? or that there's no clean way to convert vb code that uses that into gambas code , at least not without a specially designed component ? SetWindowLong was just an example , I'm sure many libraries out there also use callbacks I used the win32-api here because that's the only one I know (to an extent) , I'm sure the same principles apply to most libs >>well anyway , direct "component-less" access to function in arbitrary >>DLLs and libs is certainly #1 in my gambas wishlist , I'd be really >>interested to hear how this could be done or why it's impossible >> >>with that I could even do ioctls and finish my joystick class ! ;) >>which btw , can easily handle 500+ events at less then 5% CPU usage on >>an athlon 1800+ and with only 0.002 second latency (only if I use native >>variables however , classes (like string array classes) eat 100% real >>quick (but latency is a bit better however , but at that cpu cost it's >>irrelevent)) >> >> > >If I let Gambas projects access external shared libraries directly, I can say >"good bye" to the portability! > in this case , portability is the programmer's responsability I can make my gambas project unportable by hardcoding unix paths , then it won't work on windows the same if I were to directly use the win32 api , I shouldn't expect it to work on linux but if I used direct library access on SDL , portability wouldn't be compromised off course if used the SDL component it would be a lot cleaner but the SDL component cannot do everything you can do with direct access to the SDL api I shouldn't expect my project to be portable if I used a library that is only available for linux for example DirectFB (http://www.directfb.org/) "DirectFB is a thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system with support for translucent windows and multiple display layers on top of the Linux Framebuffer Device." that will never run on windows (well , it's probably technically possible , but there's no point , this is for lightweight applications without a X server) if direct lib access was possible , I could make use of this right now and probably have a working demo by tomorrow even if there was a gb.directfb component , it still wouldn't work where DirectFB doesn't the component would only be a wrapper that can do sanity check , it would not act as an abstraction layer like gb.qt or gb.gtk (it could but that's not the point) so in that light I see making a component an obstacle rather than a feature if I were to make a component , before my program would work on "any computer with gambas installed" I would need to write , test it , make sure it's usable for production use by others , then post it , wait for it to be included in the cvs , then wait for the next gambas release , then wait for most binary distribution to propagate the new version of gambas containing my component , then hoping the distro on the target machine has compiled my component (probably not , it would add DirectFB as a dependency to gambas) , my program might finally run I estimate that this would take , even on a "cutting edge" distro like gentoo , about 2 weeks -minimum- , (right now the "stable" version of gambas with gentoo is 1.0.2 , but the 1.0.4 ebuild has been available since march 12) on debian the official is still 1.0 and redhat 0.97 ? (I could be wrong with those number , but they do lag behind quite a bit) and the "mainstream" binary builds wouldn't have my component , requiring my target user to manually recompile gambas since it is this much trouble to use "some random external lib" , it quite effectively limits the abilities of the gambas programmer to the components available a couple versions ago and this raise the bar to experimenting with new libs for example , I just opened freshmeat.net and on the front page there is a post about libieee1284 I could probably use that , I have just received IEEE1284 transceiver chips from Texas Instrument if I could just read their interface documentation at http://cyberelk.net/tim/libieee1284/interface/index.html and start playing with it right away I would have nothing to envy from other languages I can understand why you don't want to allow direct access to external libs it's not safe, the gambas interpreter , can't sanity check API calls all the problems of unsafe languages (like C) would apply , buffer overflows just to name one it circumvent the entire component system, the need for components would be less pressing and maybe this would mean less programmers would work on new components if they could just access the lib s directly , also since the API are a lot harder to work with that the sugar-coated component interface , that would raise the bar for beginners which isn't a good thing so there should be a way to make that feature a "advanced programmer only" feature , with a rather high "cost of use" , so that it's use doesn't become rampant it's still a hack versus using a component and should be used as such , only minimal documentation should be available for this and it should not be reference in any example that isn't explaining this feature you don't want something like this -- newbie: how can I use the PC speaker ? helpful-stranger: just use direct API calls to libpcspeaker, take a look at my code demonstrating this hack at http://example.com/gambas-hacks/pcspeaker -- if direct lib access is ever implemented it should not be too accessible to the beginner it should only be used when there is no alternative and it is -really- appropriate ... I'm curious , Benoit , do you have other reasons for not allowing direct API call to work ? > >Here it is. Did you read the OpenOffice/PDF document I posted on this >mailing-list ? > I just did , it's interesting but actually I don't have a real interest in using VB code, I don't have tons of leftover VB code at this time , all that I have is proof-of-concept code that mostly demonstrate the win32 api I just used this discussion to point out the need for external lib access , which is a big deal for me since I have a hard time using C. gambas is really the ideal language for me , basic is the only language I've used a lot (I started on a C64) but the only problem I have with gambas is hitting limitations that can only be worked around with a component and I can't do that since I don't know C enough but even then, I do think that gambas is very powerful as it is , I just miss my hacking tools a bit btw, I suggest you to read (or at least skim through) this book on vb hacking http://vb.mvps.org/hardcore/ I don't think it will teach you anything new about how vb works, but maybe it could give you an idea of my motivation for using vb hacking tools bye ! Jean-Francois Perreault From gambas at ...1... Wed Mar 23 14:20:28 2005 From: gambas at ...1... (Benoit Minisini) Date: Wed, 23 Mar 2005 14:20:28 +0100 Subject: [Gambas-devel] Release of gambas2-1.9.4 Message-ID: <200503231420.28852.gambas@...1...> At least, here is a new release of gambas development version! The source package has been completely reorganized. Now, almost each component has its own source sub-package independent from the others. This has two drawbacks: the source package is bigger (more than 7 Mb), and is slower to compile. Use ./configure -C to speed-up the configure process a little bit. Components now can be written in Gambas too: look in the comp directory for the gb.settings component. GTK+, SDL and ODBC components has been updated. Andrea, I added your name to the hall of fame! Read the ChangeLog for more details... HOW TO MAKE COMPONENTS WRITTEN IN GAMBAS ? The IDE has no complete support for writing components at the moment. Just create a normal project with the IDE, and add the 'EXPORT' keyword at the beginning of the classes that will be exported by the component. You can create a startup class/module to help debugging your component. Then, when the project is compiled, an '.info' and a '.list' files are created in the project directory. To install the component: 1) Make an executable, and copy it into the gambas component directory (/usr/local/lib/gambas2 by default). Give the executable the name of the component followed by the '.gambas' extension. You must be root. 2) Copy the '.info' and '.list' files into the gambas information directory (/usr/local/share/gambas2/info by default). Rename them by adding the component name at their beginning. 3) Create a .component file with all needed information in it, and copy it into the gambas component directory. For example, look at the 'gb.settings' project in the 'comp' source directory: you will find a gb.settings.component inside the project, and in the Makefile.am, you will find directives for installing the 'gb.settings' executable, the .info file, the .list files and the component file. WHAT ARE THE CHANGES FOR COMPONENT DEVELOPERS ? They must merge their own sources with those including in this release, so that they have the same organization. In the Makefile.am, the $(pkg*) variables must be replaced by $(gb*) variables. A component source directory is a complete autoconf package now: developers should read the autoconf manual: http://www.gnu.org/software/autoconf/manual/autoconf.pdf For example, the changelog file is required, must be named 'ChangeLog' and is located in the root directory of the component sources. Actually, developers just have to work with the 'src' subdirectory of the component package. Some components need some include files for other components. Look in 'gb.qt.kde' to see how I deal with that. You will see some 'gambas.h' in the root directory, and a 'share' subdirectory that contains other include files. These files are not copies on my own machine, they are symbolic links to the real files. If a developer need to share an include file between two component sources packages, tell me, and I will create the needed symbolic links on my machine. Can anybody tell me if CVS behaves correctly with symbolic links ? Note that the .component file format will change in the future. TRY IT! I hope I didn't break too many things... :-) -- Benoit Minisini mailto:gambas at ...1... From sourceforge-raindog2 at ...19... Wed Mar 23 15:34:50 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Wed, 23 Mar 2005 09:34:50 -0500 Subject: [Gambas-devel] Re: [Gambas-user] Release of gambas2-1.9.4 In-Reply-To: <200503231420.28852.gambas@...1...> References: <200503231420.28852.gambas@...1...> Message-ID: <200503230934.50386.sourceforge-raindog2@...19...> On Wednesday 23 March 2005 08:20, Benoit Minisini wrote: > At least, here is a new release of gambas development version! [...] > TRY IT! > I hope I didn't break too many things... :-) Thanks for doing all this work! I look forward to trying it out. Rob From sourceforge-raindog2 at ...19... Wed Mar 23 15:31:41 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Wed, 23 Mar 2005 09:31:41 -0500 Subject: [Gambas-devel] Re: Gambas and Visual Basic (plain text version) In-Reply-To: <4240AAF0.8050702@...28...> References: <200503221247.05003.gambas@...1...> <4240AAF0.8050702@...28...> Message-ID: <200503230931.41554.sourceforge-raindog2@...19...> On Tuesday 22 March 2005 18:32, Jean-Francois Perreault wrote: > language I've used a lot (I started on a C64) but the only problem > I have with gambas is hitting > limitations that can only be worked around with a component and I > can't do that since I don't > know C enough A number of people have asked for the ability to call C functions from Gambas, or bemoaned the difficulty in using ActiveX/OCX components when translating VB code. Can you give me an example of a task you need to do from a Gambas app that you could solve with API calls to a C library, but can't solve either by running a program over a pipe with SHELL or EXEC or by opening files directly in /dev, /proc or what have you (as I did with my PVRec example a couple years ago?) I think VB programmers in particular overlook this, since it's largely impossible to do under Windows. Rob From jcostello at ...259... Wed Mar 23 17:26:51 2005 From: jcostello at ...259... (jcostello at ...259...) Date: Wed, 23 Mar 2005 13:26:51 -0300 Subject: [Gambas-devel] =?iso-8859-1?Q?RE:[Gambas-user]=20Release=20of=20gambas2-1.9.4?= Message-ID: <20050323132651.8E69E3A9.CEC51A52@...260...> Benoit, Where is the link to download the latest development version? Thanks. Juan -- Mensaje Original -- Enviado por: Benoit Minisini Fecha: 23/03/2005 13:20:28 Para: ; T?tulo: [Gambas-user] Release of gambas2-1.9.4 At least, here is a new release of gambas development version! The source package has been completely reorganized. Now, almost each component has its own source sub-package independent from the others. This has two drawbacks: the source package is bigger (more than 7 Mb), and is slower to compile. Use ./configure -C to speed-up the configure process a little bit. Components now can be written in Gambas too: look in the comp directory for the gb.settings component. GTK+, SDL and ODBC components has been updated. Andrea, I added your name to the hall of fame! Read the ChangeLog for more details... HOW TO MAKE COMPONENTS WRITTEN IN GAMBAS ? The IDE has no complete support for writing components at the moment. Just create a normal project with the IDE, and add the 'EXPORT' keyword at the beginning of the classes that will be exported by the component. You can create a startup class/module to help debugging your component. Then, when the project is compiled, an '.info' and a '.list' files are created in the project directory. To install the component: 1) Make an executable, and copy it into the gambas component directory (/usr/local/lib/gambas2 by default). Give the executable the name of the component followed by the '.gambas' extension. You must be root. 2) Copy the '.info' and '.list' files into the gambas information directory (/usr/local/share/gambas2/info by default). Rename them by adding the component name at their beginning. 3) Create a .component file with all needed information in it, and copy it into the gambas component directory. For example, look at the 'gb.settings' project in the 'comp' source directory: you will find a gb.settings.component inside the project, and in the Makefile.am, you will find directives for installing the 'gb.settings' executable, the .info file, the .list files and the component file. WHAT ARE THE CHANGES FOR COMPONENT DEVELOPERS ? They must merge their own sources with those including in this release, so that they have the same organization. In the Makefile.am, the $(pkg*) variables must be replaced by $(gb*) variables. A component source directory is a complete autoconf package now: developers should read the autoconf manual: http://www.gnu.org/software/autoconf/manual/autoconf.pdf For example, the changelog file is required, must be named 'ChangeLog' and is located in the root directory of the component sources. Actually, developers just have to work with the 'src' subdirectory of the component package. Some components need some include files for other components. Look in 'gb.qt.kde' to see how I deal with that. You will see some 'gambas.h' in the root directory, and a 'share' subdirectory that contains other include files. These files are not copies on my own machine, they are symbolic links to the real files. If a developer need to share an include file between two component sources packages, tell me, and I will create the needed symbolic links on my machine. Can anybody tell me if CVS behaves correctly with symbolic links ? Note that the .component file format will change in the future. TRY IT! I hope I didn't break too many things... :-) -- Benoit Minisini mailto:gambas at ...1... ------------------------------------------------------- This SF.net email is sponsored by: 2005 Windows Mobile Application Contest Submit applications for Windows Mobile(tm)-based Pocket PCs or Smartphones for the chance to win $25,000 and application distribution. Enter today at http://ads.osdn.com/?ad_id=6882&alloc_id=15148&op=click _______________________________________________ Gambas-user mailing list Gambas-user at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user __________________________________________________ Datafull - 100% Internet Gratis http://www.datafull.com From mrbits at ...262... Wed Mar 23 17:39:56 2005 From: mrbits at ...262... (MrBiTs) Date: Wed, 23 Mar 2005 13:39:56 -0300 Subject: [Gambas-devel] Compiling Gambas 1.9.4 In Slackware 10 In-Reply-To: <200503221515.17769.gambas@...1...> Message-ID: <20050323163721.71FE113C09C@...265...> >>>>>>>>>>>>>>>>> I fixed the error, but I'm afraid about what is really done by that function. Which compiler do you use ? >>>>>>>>>>>>>>>>> Hi, All Let me introduce myself. My name is Diogo, living in Brazil and completely in love with Gambas :) Congratulations for the idea, for the work. Trying to compile 1.9.4 downloaded today, 13:30 UTC Time, I got those errors, while compiling ODBC main.c:38:17: sql.h: No such file or directory main.c:39:20: sqlext.h: No such file or directory main.c:40:22: sqltypes.h: No such file or directory As I'm using Slackware Linux 10.1, I really don't have these files. They are in UnixODBC package, that can be downloaded for Slackware 10.1 here: http://www2.linuxpackages.net/packages/Slackware-10.1/jay/unixODBC/unixODBC- 2.2.11-i686-1jto.tgz Here is the complete install process: [root at ...263... ~]# wget http://www2.linuxpackages.net/packages/Slackware-10.1/jay/unixODBC/unixODBC- 2.2.11-i686-1jto.tgz --11:26:06-- http://www2.linuxpackages.net/packages/Slackware-10.1/jay/unixODBC/unixODBC- 2.2.11-i686-1jto.tgz => `unixODBC-2.2.11-i686-1jto.tgz' Resolving www2.linuxpackages.net... 64.90.191.130 Connecting to www2.linuxpackages.net[64.90.191.130]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1,440,717 [application/x-tar] 100%[======================================================================= ==================>] 1,440,717 47.64K/s ETA 00:00 11:26:35 (50.46 KB/s) - `unixODBC-2.2.11-i686-1jto.tgz' saved [1440717/1440717] [root at ...263... ~]# installpkg unixODBC-2.2.11-i686-1jto.tgz Installing package unixODBC-2.2.11-i686-1jto... PACKAGE DESCRIPTION: unixODBC: unixODBC 2.2.11 unixODBC: unixODBC: unixODBC is an Open Source ODBC sub-system and an ODBC SDK unixODBC: for Linux, Mac OSX, and UNIX. unixODBC: unixODBC: unixODBC: http://sourceforge.net/projects/unixodbc/ unixODBC: unixODBC: Packager: Jay Scott Raymond unixODBC: Executing install script for unixODBC-2.2.11-i686-1jto... [root at ...263... ~]# find / -name sql.h /usr/include/sql.h This solved the errors from gb.db.odbc. Then, in the next step ( gb.db.postgresql ), I got: main.c:32:22: libpq-fe.h: No such file or directory main.c:33:22: postgres.h: No such file or directory main.c:34:21: pg_type.h: No such file or directory That's right, because I don't have PostgreSQL installed. Then, I installed it from http://www2.linuxpackages.net/packages/Slackware-10.0/Daemon/PostgreSQL/post gresql-8.0.1-i486-1gca.tgz I need to run ./configure --prefix=/opt/gambas -C again... Then, errors in sqllite compilation. I downloaded SQLite from http://www.sqlite.org/sqlite-3.2.0.tar.gz, and perform a ./configure --prefix=/usr && make && make install. Then, I did ln -s /usr/include/sqlite3.h /usr/include/sqlite.h and run ./configure again. Unfortunatelly, I quit here... Anybody can help me ? Following, the error make[4]: Entering directory `/root/gambas2-1.9.4/gb.db.sqlite/src' if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -pipe -Wall -fno-exceptions -g -Os -fno-omit-frame-pointer -MT main.lo -MD -MP -MF ".deps/main.Tpo" -c -o main.lo main.cpp; \ then mv -f ".deps/main.Tpo" ".deps/main.Plo"; else rm -f ".deps/main.Tpo"; exit 1; fi g++ -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -pipe -Wall -fno-exceptions -g -Os -fno-omit-frame-pointer -MT main.lo -MD -MP -MF .deps/main.Tpo -c main.cpp -fPIC -DPIC -o .libs/main.o In file included from dataset.h:38, from sqlitedataset.h:33, from main.cpp:40: qry_dat.h:225: error: syntax error before `*' token In file included from sqlitedataset.h:33, from main.cpp:40: dataset.h:72: warning: `class Database' has virtual functions but non-virtual destructor dataset.h:158: warning: `class Dataset' has virtual functions but non-virtual destructor In file included from main.cpp:40: sqlitedataset.h:71: error: syntax error before `*' token sqlitedataset.h:84: error: syntax error before `*' token sqlitedataset.h:68: warning: `class SqliteDatabase' has virtual functions but non-virtual destructor sqlitedataset.h:86: error: extraneous `int' ignored sqlitedataset.h:86: error: virtual outside class declaration sqlitedataset.h:86: error: invalid return type for function `SqliteDatabase status()' sqlitedataset.h:86: error: because the following virtual functions are abstract: dataset.h:117: error: virtual int Database::setErr(int) dataset.h:127: error: virtual long int Database::nextid(const char*) sqlitedataset.h:87: error: virtual outside class declaration sqlitedataset.h:89: error: virtual outside class declaration sqlitedataset.h:92: error: virtual outside class declaration sqlitedataset.h:94: error: virtual outside class declaration sqlitedataset.h:96: error: virtual outside class declaration sqlitedataset.h:98: error: virtual outside class declaration sqlitedataset.h:100: error: virtual outside class declaration sqlitedataset.h:104: error: virtual outside class declaration sqlitedataset.h:105: error: virtual outside class declaration sqlitedataset.h:106: error: virtual outside class declaration sqlitedataset.h: In function `bool in_transaction()': sqlitedataset.h:108: error: `_in_transaction' undeclared (first use this function) sqlitedataset.h:108: error: (Each undeclared identifier is reported only once for each function it appears in.) sqlitedataset.h: At global scope: sqlitedataset.h:111: error: parse error before `}' token sqlitedataset.h:129: error: syntax error before `*' token sqlitedataset.h:121: warning: `class SqliteDataset' has virtual functions but non-virtual destructor main.cpp: In function `long int db_version()': main.cpp:546: error: `sqlite_version' undeclared (first use this function) main.cpp: In function `void* open_database(DB_DESC*, char**)': main.cpp:582: error: cannot allocate an object of type `SqliteDatabase' main.cpp:582: error: since type `SqliteDatabase' has abstract virtual functions main.cpp:628: error: `sqlite_encoding' undeclared (first use this function) main.cpp: In function `int database_create(void*, char*)': main.cpp:2015: error: cannot declare variable `conn2' to be of type ` SqliteDatabase' main.cpp:2015: error: since type `SqliteDatabase' has abstract virtual functions make[4]: *** [main.lo] Error 1 make[4]: Leaving directory `/root/gambas2-1.9.4/gb.db.sqlite/src' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/root/gambas2-1.9.4/gb.db.sqlite' make[2]: *** [all] Error 2 make[2]: Leaving directory `/root/gambas2-1.9.4/gb.db.sqlite' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/gambas2-1.9.4' make: *** [all] Error 2 From lordheavy at ...141... Wed Mar 23 17:54:38 2005 From: lordheavy at ...141... (Laurent Carlier) Date: Wed, 23 Mar 2005 17:54:38 +0100 Subject: [Gambas-devel] RE:[Gambas-user] Release of gambas2-1.9.4 In-Reply-To: <20050323132651.8E69E3A9.CEC51A52@...260...> References: <20050323132651.8E69E3A9.CEC51A52@...260...> Message-ID: <200503231754.38266.lordheavy@...141...> Le Mercredi 23 Mars 2005 17:26, jcostello at ...259... a ?crit?: > Benoit, > > Where is the link to download the latest development version? > > Thanks. > > > Juan > Here : http://gambas.sourceforge.net/gambas2-1.9.4.tar.bz2 -- Laurent Carlier From mrbits at ...262... Wed Mar 23 19:20:16 2005 From: mrbits at ...262... (MrBiTs) Date: Wed, 23 Mar 2005 15:20:16 -0300 Subject: [Gambas-devel] Compiling Gambas 1.9.4 In Slackware 10 In-Reply-To: <20050323163721.71FE113C09C@...265...> Message-ID: <20050323181740.E25763C0A5@...266...> /* I downloaded SQLite from http://www.sqlite.org/sqlite-3.2.0.tar.gz, and perform a ./configure --prefix=/usr && make && make install. Then, I did ln -s /usr/include/sqlite3.h /usr/include/sqlite.h and run ./configure again. Unfortunatelly, I quit here... Anybody can help me ? */ Hi, All I got my error: we need to use sqlite-2 instead sqlite3. Download the http://www2.linuxpackages.net/packages/Slackware-10.1/Library/sqlite/sqlite- 2.8.16-i486-1jac.tgz package and install it: # installpkg sqlite-2.8.16-i486-1jac.tgz Is good to install sqliteodbc ( http://www2.linuxpackages.net/packages/Slackware-10.1/Console/sqliteodbc/sql iteodbc-0.65-i486-1jac.tgz ) too. Now I'm compiling everything w/o errors. I'll post a complete how-to soon. Do you think interesting to create a binary tgz slackware package ? CheerS From bdragon at ...185... Wed Mar 23 21:52:00 2005 From: bdragon at ...185... (Brandon Bergren) Date: Wed, 23 Mar 2005 14:52:00 -0600 (Central Standard Time) Subject: [Gambas-devel] Release of gambas2-1.9.4 In-Reply-To: <200503231420.28852.gambas@...1...> References: <200503231420.28852.gambas@...1...> Message-ID: On Wed, 23 Mar 2005, Benoit Minisini wrote: > At least, here is a new release of gambas development version! > :) > The source package has been completely reorganized. Now, almost each component > has its own source sub-package independent from the others. > > This has two drawbacks: the source package is bigger (more than 7 Mb), and is > slower to compile. Use ./configure -C to speed-up the configure process a > little bit. > > Components now can be written in Gambas too: look in the comp directory for > the gb.settings component. > > GTK+, SDL and ODBC components has been updated. Andrea, I added your name to > the hall of fame! > > Read the ChangeLog for more details... > > > HOW TO MAKE COMPONENTS WRITTEN IN GAMBAS ? > > The IDE has no complete support for writing components at the moment. > > Just create a normal project with the IDE, and add the 'EXPORT' keyword at the > beginning of the classes that will be exported by the component. > > You can create a startup class/module to help debugging your component. > > Then, when the project is compiled, an '.info' and a '.list' files are created > in the project directory. > > To install the component: > > 1) Make an executable, and copy it into the gambas component directory > (/usr/local/lib/gambas2 by default). Give the executable the name of the > component followed by the '.gambas' extension. You must be root. > > 2) Copy the '.info' and '.list' files into the gambas information directory > (/usr/local/share/gambas2/info by default). Rename them by adding the > component name at their beginning. > > 3) Create a .component file with all needed information in it, and copy it > into the gambas component directory. > > For example, look at the 'gb.settings' project in the 'comp' source directory: > you will find a gb.settings.component inside the project, and in the > Makefile.am, you will find directives for installing the 'gb.settings' > executable, the .info file, the .list files and the component file. > > > WHAT ARE THE CHANGES FOR COMPONENT DEVELOPERS ? > > They must merge their own sources with those including in this release, so > that they have the same organization. > > In the Makefile.am, the $(pkg*) variables must be replaced by $(gb*) > variables. > > A component source directory is a complete autoconf package now: developers > should read the autoconf manual: > http://www.gnu.org/software/autoconf/manual/autoconf.pdf > > For example, the changelog file is required, must be named 'ChangeLog' and is > located in the root directory of the component sources. > > Actually, developers just have to work with the 'src' subdirectory of the > component package. > > Some components need some include files for other components. Look in > 'gb.qt.kde' to see how I deal with that. You will see some 'gambas.h' in the > root directory, and a 'share' subdirectory that contains other include files. > These files are not copies on my own machine, they are symbolic links to the > real files. > > If a developer need to share an include file between two component sources > packages, tell me, and I will create the needed symbolic links on my machine. > > Can anybody tell me if CVS behaves correctly with symbolic links ? > Not really.... There's a feature flag called PreservePermissions. However, it is historically very buggy and I don't think it's recommended to be enabled anymore. And I think it doesn't work with client/server cvs at all. But you can write a script to generate symlinks. I think that is currently the recommended solution. Links: http://lists.debian.org/debian-mentors/1999/05/msg00042.html http://bre.klaki.net/programs/cvs-symlinks/ http://lists.gnu.org/archive/html/info-cvs/2004-02/msg00327.html Or you can wait for Sourceforge to roll out Subversion support. http://subversion.tigris.org/ http://sourceforge.net/docman/display_doc.php?docid=2352&group_id=1 (Strategic Projects section) > Note that the .component file format will change in the future. > > > TRY IT! > > I hope I didn't break too many things... :-) > > -- > Benoit Minisini > mailto:gambas at ...1... > From cmcpero at ...28... Wed Mar 23 22:20:30 2005 From: cmcpero at ...28... (Jean-Francois Perreault) Date: Wed, 23 Mar 2005 16:20:30 -0500 Subject: [Gambas-devel] Re: Gambas and Visual Basic (plain text version) In-Reply-To: <200503230931.41554.sourceforge-raindog2@...19...> References: <200503221247.05003.gambas@...1...> <4240AAF0.8050702@...28...> <200503230931.41554.sourceforge-raindog2@...19...> Message-ID: <4241DD9E.8000000@...28...> Rob wrote: > >A number of people have asked for the ability to call C functions from >Gambas, or bemoaned the difficulty in using ActiveX/OCX components >when translating VB code. > >Can you give me an example of a task you need to do from a Gambas app >that you could solve with API calls to a C library, but can't solve >either by running a program over a pipe with SHELL or EXEC or by >opening files directly in /dev, /proc or what have you (as I did with >my PVRec example a couple years ago?) I think VB programmers in >particular overlook this, since it's largely impossible to do under >Windows. > > just like that I'd say... ioctl , there are probably a lot of other cases that apply but I'm making a joystick interface class and it won't be complete without ioctls it's probably possible to have an external C program do some ioctl operations , but , I don't know C well enough and some ioctl operation only affect the device for the process who did the ioctl so an external program wouldn't work for that unfortunately also I suspect there is a major performance penalty to doing that ? in any case , just that you need to write a C program is already a problem , if you don't know C you're stuck Jean-Francois Perreault From frankberg at ...136... Wed Mar 23 22:29:07 2005 From: frankberg at ...136... (Frank Berg) Date: Wed, 23 Mar 2005 22:29:07 +0100 Subject: [Gambas-devel] (no subject) Message-ID: <002c01c52fef$5aae51b0$c6f0fea9@...146...> hi benoit, this is my try to compile the gambas2 version 1.9.4 my system is suse 9.2, all updates inclusive and the gambas 1.0.4 is compiling without errors..( all 0.x.x versions to ) frank -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: output.txt.tar.gz Type: application/x-gzip Size: 7873 bytes Desc: not available URL: From Karl.Reinl at ...16... Wed Mar 23 22:39:56 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Wed, 23 Mar 2005 22:39:56 +0100 Subject: [Gambas-devel] gambas-1.9.4 Message-ID: <200503232239.56970.Karl.Reinl@...16...> Salut Benoit, gambas2 I made till 1.9.3 with a script like that: ./configure --disable-gtk --disable-sdl I added odbc, now it looks like this: ./configure --disable-gtk --disable-sdl --disable-odbc -C but I don't work. A look to configure showed me why: these cases are not handled. Do I realy have to install all that stuff to compile gambas-1.9.4 ?? Or how have I to do it ? Amicalment Charlie From gambas at ...1... Thu Mar 24 11:12:05 2005 From: gambas at ...1... (Benoit Minisini) Date: Thu, 24 Mar 2005 11:12:05 +0100 Subject: [Gambas-devel] Compiling Gambas 1.9.4 In Slackware 10 In-Reply-To: <20050323181740.E25763C0A5@...266...> References: <20050323181740.E25763C0A5@...266...> Message-ID: <200503241112.05238.gambas@...1...> On Wednesday 23 March 2005 19:20, MrBiTs wrote: > /* > I downloaded SQLite from http://www.sqlite.org/sqlite-3.2.0.tar.gz, and > perform a ./configure --prefix=/usr && make && make install. Then, I did ln > -s /usr/include/sqlite3.h /usr/include/sqlite.h and run ./configure again. > Unfortunatelly, I quit here... Anybody can help me ? > */ > > Hi, All > > I got my error: we need to use sqlite-2 instead sqlite3. > > Download the > http://www2.linuxpackages.net/packages/Slackware-10.1/Library/sqlite/sqlite >- 2.8.16-i486-1jac.tgz package and install it: > > # installpkg sqlite-2.8.16-i486-1jac.tgz > > Is good to install sqliteodbc ( > http://www2.linuxpackages.net/packages/Slackware-10.1/Console/sqliteodbc/sq >l iteodbc-0.65-i486-1jac.tgz ) too. > > Now I'm compiling everything w/o errors. I'll post a complete how-to soon. > Good idea. > Do you think interesting to create a binary tgz slackware package ? > As you like :-) You should ask Slackware users... > CheerS > > Regards, -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Thu Mar 24 11:15:50 2005 From: gambas at ...1... (Benoit Minisini) Date: Thu, 24 Mar 2005 11:15:50 +0100 Subject: [Gambas-devel] gambas-1.9.4 In-Reply-To: <200503232239.56970.Karl.Reinl@...16...> References: <200503232239.56970.Karl.Reinl@...16...> Message-ID: <200503241115.51001.gambas@...1...> On Wednesday 23 March 2005 22:39, Charlie Reinl wrote: > Salut Benoit, > > gambas2 I made till 1.9.3 with a script like that: > > ./configure --disable-gtk --disable-sdl > > I added odbc, now it looks like this: > > ./configure --disable-gtk --disable-sdl --disable-odbc -C > > but I don't work. > > A look to configure showed me why: these cases are not handled. > > Do I realy have to install all that stuff to compile gambas-1.9.4 ?? > > Or how have I to do it ? > Good question... I don't know yet :-) It seems that the flags of the top 'configure' are not passed to the 'configure' script inside sub-directories... I thought that when components does not detect libraries, they were not compiled. But I didn't test. What happens exactly ? -- Benoit Minisini mailto:gambas at ...1... From na2492 at ...16... Thu Mar 24 12:05:22 2005 From: na2492 at ...16... (Charlie Reinl) Date: Thu, 24 Mar 2005 12:05:22 00100 Subject: [Gambas-devel] gambas-1.9.4 Message-ID: <42429ef2.6c14.0@...16...> >On Wednesday 23 March 2005 22:39, Charlie Reinl wrote: >> Salut Benoit, >> >> gambas2 I made till 1.9.3 with a script like that: >> >> ./configure --disable-gtk --disable-sdl >> >> I added odbc, now it looks like this: >> >> ./configure --disable-gtk --disable-sdl --disable-odbc -C >> >> but I don't work. >> >> A look to configure showed me why: these cases are not handled. >> >> Do I realy have to install all that stuff to compile gambas-1.9.4 ?? >> >> Or how have I to do it ? >> > >Good question... I don't know yet :-) > >It seems that the flags of the top 'configure' are not passed to the >'configure' script inside sub-directories... > >I thought that when components does not detect libraries, they were not >compiled. But I didn't test. What happens exactly ? > >-- >Benoit Minisini Salut Benoit, during 'make', it stops with an error while trying to make the odbc driver (odbc is NOT installed on my box, even gtk (only an older one) and sdl). Amicalment Charlie * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * From frankberg at ...136... Thu Mar 24 12:15:31 2005 From: frankberg at ...136... (Frank Berg) Date: Thu, 24 Mar 2005 12:15:31 +0100 Subject: [Gambas-devel] gambas-1.9.4 References: <200503232239.56970.Karl.Reinl@...16...> <200503241115.51001.gambas@...1...> Message-ID: <005201c53062$cd943e60$c6f0fea9@...146...> hi, i use suse 9.2, gcc 3.3.4 mysql is installed sdl is installed, but not "sdl 2d" i was try to compile with ./configure --disable-gtk --disable-sdl --disable-odbc -C make but it stops with errors in postgresql i wat try --disable-postgresql too with same effect.. frank -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: output.txt URL: From frankberg at ...136... Thu Mar 24 13:20:18 2005 From: frankberg at ...136... (Frank Berg) Date: Thu, 24 Mar 2005 13:20:18 +0100 Subject: [Gambas-devel] gambas-1.9.4 References: <42429ef2.6c14.0@...16...> Message-ID: <000901c5306b$da21cf90$c6f0fea9@...146...> hi, i missing the "reconf" in the 1.9.4 frank, i was install now the postgresql, but the make now stops with sqlite From gambas at ...1... Thu Mar 24 14:05:01 2005 From: gambas at ...1... (Benoit Minisini) Date: Thu, 24 Mar 2005 14:05:01 +0100 Subject: [Gambas-devel] gambas-1.9.4 In-Reply-To: <200503232239.56970.Karl.Reinl@...16...> References: <200503232239.56970.Karl.Reinl@...16...> Message-ID: <200503241405.01207.gambas@...1...> On Wednesday 23 March 2005 22:39, Charlie Reinl wrote: > Salut Benoit, > > gambas2 I made till 1.9.3 with a script like that: > > ./configure --disable-gtk --disable-sdl > > I added odbc, now it looks like this: > > ./configure --disable-gtk --disable-sdl --disable-odbc -C > > but I don't work. > > A look to configure showed me why: these cases are not handled. > > Do I realy have to install all that stuff to compile gambas-1.9.4 ?? > > Or how have I to do it ? > > > Amicalment > Charlie > Here is a patch that let you disable components correctly: put these files in the root directory, and type ./reconf-all. Then ./configure -C --disable-XXX... Regards, -- Benoit Minisini mailto:gambas at ...1... -------------- next part -------------- dnl **************************************************************************** dnl global configure.ac dnl (c) Beno?t Minisini 2000-2005 dnl **************************************************************************** dnl ---- Initialization AC_INIT(configure.ac) GB_CONFIG_SUBDIRS(bzlib2, gb.compress.bzlib2) GB_CONFIG_SUBDIRS(zlib, gb.compress.zlib) GB_CONFIG_SUBDIRS(mysql, gb.db.mysql) GB_CONFIG_SUBDIRS(odbc, gb.db.odbc) GB_CONFIG_SUBDIRS(postgresql, gb.db.postgresql) GB_CONFIG_SUBDIRS(sqlite, gb.db.sqlite) dnl AC_CONFIG_SUBDIRS(gb.db.sqlite3) GB_CONFIG_SUBDIRS(gtk, gb.gtk) GB_CONFIG_SUBDIRS(net, gb.net) GB_CONFIG_SUBDIRS(curl, gb.net.curl) GB_CONFIG_SUBDIRS(pcre, gb.pcre) GB_CONFIG_SUBDIRS(qt, gb.qt) GB_CONFIG_SUBDIRS(kde, gb.qt.kde) GB_CONFIG_SUBDIRS(sdl, gb.sdl) GB_CONFIG_SUBDIRS(xml, gb.xml) AC_CONFIG_SUBDIRS(main) AC_CONFIG_SUBDIRS(comp) AC_CONFIG_SUBDIRS(app) AC_CONFIG_SUBDIRS(help) AM_MAINTAINER_MODE GB_INIT_AUTOMAKE(gambas2) AM_CONFIG_HEADER(config.h) AC_PREFIX_DEFAULT(/usr/local) AC_CANONICAL_HOST GAMBAS_VERSION=2 AC_SUBST(GAMBAS_VERSION) gbbindir=$bindir/gambas$GAMBAS_VERSION/ AC_SUBST(gbbindir) gblibdir=$libdir/gambas$GAMBAS_VERSION/ AC_SUBST(gblibdir) gbdatadir=$datadir/gambas$GAMBAS_VERSION/ AC_SUBST(gbdatadir) AC_OUTPUT(Makefile) -------------- next part -------------- A non-text attachment was scrubbed... Name: reconf-all Type: application/x-shellscript Size: 85 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: Makefile.am Type: text/x-makefile Size: 234 bytes Desc: not available URL: -------------- next part -------------- ####################################################################################### ## ## The following macros are specific to Gambas. ## Some of them are made by me (B. Minisini) ## Feel free to use these macros as you need ! ## ## The remaining contents are a copy of libtool.m4. ## ## IMPORTANT: this file is shared by all Gambas ## source packages ## ####################################################################################### ## --------------------------------------------------------------------------- ## GB_INIT_AUTOMAKE ## automake initialization with common version number ## --------------------------------------------------------------------------- AC_DEFUN([GB_INIT_AUTOMAKE], [ AM_INIT_AUTOMAKE($1, 1.9.4) ]) ## --------------------------------------------------------------------------- ## GB_CONFIG_SUBDIRS ## configuration of a component sub-directory, with a flag for disabling it ## --------------------------------------------------------------------------- AC_DEFUN([GB_CONFIG_SUBDIRS], [ AC_ARG_ENABLE( $1, [ --enable-$1 enable $1 component (default: yes)], gb_enable_$1=$enableval, gb_enable_$1=yes ) if test "$gb_enable_$1" = "yes"; then if test -d $srcdir/$2; then AC_CONFIG_SUBDIRS($2) $1_dir=$2 fi else AC_MSG_WARN([$1 component is disabled]) $1_dir="" fi AC_SUBST($1_dir) ]) ## --------------------------------------------------------------------------- ## GB_INIT_SHORT GB_INIT GB_LIBTOOL ## configure.ac initialization ## --------------------------------------------------------------------------- AC_DEFUN([GB_INIT_SHORT], [ AM_MAINTAINER_MODE GB_INIT_AUTOMAKE(gambas2-$1) AM_CONFIG_HEADER(config.h) AC_PREFIX_DEFAULT(/usr/local) AC_CANONICAL_HOST GAMBAS_VERSION=2 AC_SUBST(GAMBAS_VERSION) gbbindir=$bindir/gambas$GAMBAS_VERSION AC_SUBST(gbbindir) gblibdir=$libdir/gambas$GAMBAS_VERSION AC_SUBST(gblibdir) gbdatadir=$datadir/gambas$GAMBAS_VERSION AC_SUBST(gbdatadir) ]) AC_DEFUN([GB_LIBTOOL], [ AC_LIBTOOL_DLOPEN AC_LIBLTDL_CONVENIENCE AC_LIBTOOL_WIN32_DLL AC_DISABLE_STATIC AC_SUBST(INCLTDL) AC_SUBST(LIBLTDL) #LD_FLAGS="-z defs" LD_FLAGS="-no-undefined" AC_SUBST(LD_FLAGS) ]) AC_DEFUN([GB_INIT], [ GB_INIT_SHORT($1) GB_LIBTOOL AC_DEFINE(GAMBAS_VERSION, 2, Gambas version) AC_DEFINE(GAMBAS_VERSION_STRING, "2", Gambas version string) dnl ---- Checks for programs AC_PROG_CC AC_PROG_CPP AC_PROG_CXX AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET dnl ---- Checks for header files. dnl AC_HEADER_DIRENT dnl AC_HEADER_STDC dnl AC_HEADER_SYS_WAIT dnl AC_CHECK_HEADERS(fcntl.h limits.h malloc.h strings.h sys/ioctl.h sys/time.h unistd.h) dnl ---- Checks for typedefs, structures, and compiler characteristics. dnl AC_C_CONST dnl AC_TYPE_PID_T dnl AC_TYPE_SIZE_T dnl AC_HEADER_TIME dnl AC_STRUCT_TM dnl ---- Checks for library functions. dnl AC_FUNC_ALLOCA dnl AC_PROG_GCC_TRADITIONAL dnl AC_TYPE_SIGNAL dnl AC_FUNC_STRCOLL dnl AC_FUNC_STRFTIME dnl AC_FUNC_VPRINTF dnl AC_FUNC_WAIT3 dnl AC_CHECK_FUNCS(getcwd gettimeofday mkdir rmdir select socket strdup strerror strtod strtol sysinfo) AC_REPLACE_FUNCS(setenv unsetenv getdomainname) dnl ---- Support for ccache dnl AC_PATH_PROG(CCACHE, ccache) if test x"$CCACHE" != x; then CC="ccache $CC" CXX="ccache $CXX" fi dnl ---- Checks for libraries AC_CHECK_LIB(m, main, echo -n) AC_CHECK_LIB(z, main, echo -n) C_LIB=-lc AC_SUBST(C_LIB) AC_CHECK_LIB(gcc_s, main, CXX_LIB="$CXX_LIB -lgcc_s") AC_CHECK_LIB(stdc++, main, CXX_LIB="$CXX_LIB -lstdc++") AC_SUBST(CXX_LIB) dnl ---- Check for system GB_SYSTEM() dnl ---- Check for shared library extension GB_SHARED_LIBRARY_EXT() dnl ---- Check for threading GB_THREAD() dnl ---- Check for gambas include dnl GB_INCLUDE(gambas.h) dnl ---- Other options AC_ARG_ENABLE( debug, [ --enable-debug compile for debugging (default: yes)], gambas_debug=$enableval, gambas_debug=yes ) AM_CONDITIONAL(DEBUG, test "$gambas_debug" = yes) AC_ARG_ENABLE( optimization, [ --enable-optimization compile with optimizations (default: yes)], gambas_optimization=$enableval, gambas_optimization=yes ) AM_CONDITIONAL(OPTIMIZE, test "$gambas_optimization" = yes) CFLAGS="$CFLAGS -pipe -Wall -fno-strict-aliasing" CXXFLAGS="$CXXFLAGS -pipe -Wall -fno-exceptions" if test "$gambas_debug" = "yes"; then CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" fi dnl # gambas_flag="-O2 -fstrength-reduce -frerun-loop-opt -fexpensive-optimizations -fschedule-insns2 -funroll-loops" dnl # gambas_flags="$gambas_flags -fno-strict-aliasing -falign-loops=2 -falign-jumps=2" dnl # gambas_flags="$gambas_flags -falign-functions=2 -ffast-math" dnl # gambas_flags="$gambas_flags -fomit-frame-pointer" if test "x$gambas_optimization" = "xyes"; then CFLAGS="$CFLAGS -Os" CXXFLAGS="$CXXFLAGS -Os -fno-omit-frame-pointer" else CFLAGS="$CFLAGS -O0" CXXFLAGS="$CXXFLAGS -O0" fi ]) ## --------------------------------------------------------------------------- ## GB_THREAD ## Detect threading compiler options ## --------------------------------------------------------------------------- AC_DEFUN([GB_THREAD], [ case "${host}" in *-*-freebsd* ) THREAD_LIB="" THREAD_INC="-pthread -D_REENTRANT" GBX_THREAD_LIB="" GBX_THREAD_INC="-pthread -D_REENTRANT" ;; *-*-netbsd* ) THREAD_LIB="" THREAD_INC="-pthread -D_REENTRANT" GBX_THREAD_LIB="" GBX_THREAD_INC="-pthread -D_REENTRANT" ;; *) THREAD_LIB="-lpthread" THREAD_INC="-D_REENTRANT" GBX_THREAD_LIB="" GBX_THREAD_INC="" ;; esac AC_MSG_CHECKING(for threading compiler options) AC_MSG_RESULT($THREAD_INC) AC_MSG_CHECKING(for threading linker options) AC_MSG_RESULT($THREAD_LIB) AC_SUBST(THREAD_LIB) AC_SUBST(THREAD_INC) AC_SUBST(GBX_THREAD_LIB) AC_SUBST(GBX_THREAD_INC) ]) ## --------------------------------------------------------------------------- ## GB_SYSTEM ## Detect the target system ## --------------------------------------------------------------------------- AC_DEFUN([GB_SYSTEM], [ AC_MSG_CHECKING(target system) case "${host}" in *-*-linux* ) SYSTEM=LINUX AC_DEFINE(OS_LINUX, 1, [Target system is Linux]) ;; *-*-freebsd* ) SYSTEM=FREEBSD AC_DEFINE(OS_FREEBSD, 1, [Target system is FreeBSD]) ;; *-*-netbsd* ) SYSTEM=NETBSD AC_DEFINE(OS_NETBSD, 1, [Target system is NetBSD]) ;; *-*-cygwin* ) SYSTEM=CYGWIN AC_DEFINE(OS_CYGWIN, 1, [Target system is Cygwin/Windows]) ;; *-*-darwin* | *-*-rhapsody* ) SYSTEM=MACOSX AC_DEFINE(OS_MACOSX, 1, [Target system is MacOS X]) ;; *-*-solaris* ) SYSTEM=SOLARIS AC_DEFINE(OS_SOLARIS, 1, [Target system is Solaris]) ;; *) SYSTEM=UNKNOWN ;; esac AC_MSG_RESULT($SYSTEM) ]) ## --------------------------------------------------------------------------- ## GB_SHARED_LIBRARY_EXT ## Detect shared library extension ## --------------------------------------------------------------------------- AC_DEFUN([GB_SHARED_LIBRARY_EXT], [ AC_MSG_CHECKING(which extension is used for shared libraries) case "${host}" in *-*-cygwin* ) SHLIBEXT="la" AC_DEFINE(SHARED_LIBRARY_EXT, "la", [Shared library extension is '.la']) ;; *-*-darwin* ) SHLIBEXT="dylib" AC_DEFINE(SHARED_LIBRARY_EXT, "dylib", [Shared library extension is '.dylib']) ;; *) SHLIBEXT="so" AC_DEFINE(SHARED_LIBRARY_EXT, "so", [Shared library extension is '.so']) ;; esac AC_SUBST(SHLIBEXT) AC_MSG_RESULT([.$SHLIBEXT]) ]) ## --------------------------------------------------------------------------- ## GB_FIND ## Find files in directorys ## ## $1 = Files to search ## $2 = Directories ## $3 = Sub-directories patterns ## ## Returns a path list in $gb_val ## --------------------------------------------------------------------------- AC_DEFUN([GB_FIND], [ dnl echo "Searching $1, $2, $3" gb_val="" gb_save=`pwd` gb_file_list="$1" for gb_main_dir in $2; do if test -d $gb_main_dir; then cd $gb_main_dir for gb_search_dir in $3; do for gb_dir in $gb_search_dir/ $gb_search_dir/*/ $gb_search_dir/*/*/; do gb_new_file_list="" gb_find_dir="" for gb_file in $gb_file_list; do gb_find=no if test -r "$gb_main_dir/$gb_dir/$gb_file" || test -d "$gb_main_dir/$gb_dir/$gb_file"; then ifelse($4,[], gb_find=yes, for gb_test in $4; do gb_output=`ls -la $gb_main_dir/$gb_dir/$gb_file | grep "$gb_test"` if test "x$gb_output" != "x"; then gb_find=yes fi done ) fi if test "$gb_find" = "yes"; then if test "x$gb_find_dir" = "x"; then if test "x$gb_val" = "x"; then gb_val="$gb_main_dir/$gb_dir" else gb_val="$gb_val $gb_main_dir/$gb_dir" fi fi gb_find_dir=yes else gb_new_file_list="$gb_new_file_list $gb_file" fi done gb_file_list=$gb_new_file_list if test "x$gb_file_list" = "x " || test "x$gb_file_list" = "x"; then break 3 fi done done fi done if test "x$gb_file_list" != "x " && test "x$gb_file_list" != "x"; then gb_val=no fi cd $gb_save ]) ## --------------------------------------------------------------------------- ## GB_COMPONENT ## Component detection macro ## ## $1 = Component key in lower case (ex: pgsql) ## $2 = Component key in upper case (ex: PGSQL) ## $3 = Component name (ex: PostgreSQL) ## $4 = Sub-directory name ## $5 = How to get include path (must return it in gb_val) ## $6 = How to get library path (must return it in gb_val) ## $7 = Libraries ## $8 = Compiler flags (optional) ## ## => defines HAVE_* (to know if you can compile the component) ## *_INC (for the compiler) and *_LIB (for the linker) ## --------------------------------------------------------------------------- AC_DEFUN([GB_COMPONENT], [ AC_ARG_ENABLE( $1, [ --enable-$1 enable $3 (default: yes)], gb_enable_$1=$enableval, gb_enable_$1=yes ) gb_inc_$1=no gb_lib_$1=no if test "$gb_enable_$1" = "yes"; then ## Checking for headers AC_MSG_CHECKING(for $3 headers) AC_ARG_WITH($1-includes, [ --with-$1-includes where the $3 headers are located. ], [ gb_inc_$1="$withval" ]) AC_CACHE_VAL(gb_cv_header_$1, [ if test "$gb_inc_$1" = no; then gb_val="" $5 gb_inc_$1=$gb_val fi gb_cv_header_$1=$gb_inc_$1 ]) AC_MSG_RESULT([$gb_cv_header_$1]) $2_INC="" for gb_dir in $gb_cv_header_$1; do if test "$gb_dir" != "/usr/include"; then if test "$gb_dir" != "/usr/include/"; then $2_INC="$$2_INC -I$gb_dir" fi fi done if test "x$8" != "x"; then $2_INC="$$2_INC $8" fi if test "$gb_cv_header_$1" = no; then have_inc_$1="no" $2_INC="" else have_inc_$1="yes" fi AC_SUBST($2_INC) ## Checking for libraries AC_MSG_CHECKING(for $3 libraries) AC_ARG_WITH($1-libraries, [ --with-$1-libraries where the $3 libraries are located. ], [ gb_lib_$1="$withval" ]) AC_CACHE_VAL(gb_cv_lib_$1, [ if test "$gb_lib_$1" = no; then gb_val="" $6 gb_lib_$1=$gb_val fi gb_cv_lib_$1=$gb_lib_$1 ]) if test "$gb_cv_lib_$1" = no; then have_lib_$1="no" else have_lib_$1="yes" fi AC_MSG_RESULT([$gb_cv_lib_$1]) $2_LIB="" $2_PATH="" for gb_dir in $gb_cv_lib_$1; do if test "x$$2_PATH" = "x"; then $2_PATH="$gb_dir/.." fi if test "$gb_dir" != "/lib" && test "$gb_dir" != "/lib/"&& test "$gb_dir" != "/usr/lib" && test "$gb_dir" != "/usr/lib/"; then $2_LIB="$$2_LIB -L$gb_dir" fi done $2_LIB="$$2_LIB $7" fi if test "$have_inc_$1" = "yes" && test "$have_lib_$1" = "yes"; then have_$1=yes $2_DIR=$4 AC_DEFINE(HAVE_$2_COMPONENT, 1, Have $3) else have_$1=no $2_LIB="" $2_DIR="" $2_PATH="" AC_MSG_WARN([*** $3 is disabled]) fi AC_SUBST($2_LIB) AC_SUBST($2_DIR) AC_SUBST($2_PATH) ]) ## --------------------------------------------------------------------------- ## GB_COMPONENT_PKG_CONFIG ## Component detection macro based on pkg-config ## ## $1 = Component key in lower case (ex: pgsql) ## $2 = Component key in upper case (ex: PGSQL) ## $3 = Component name (ex: PostgreSQL) ## $4 = Sub-directory name ## $5 = pkg-config module name ## ## => defines HAVE_* (to know if you can compile the component) ## *_INC (for the compiler) and *_LIB / *_LDFLAGS (for the linker) ## --------------------------------------------------------------------------- AC_DEFUN([GB_COMPONENT_PKG_CONFIG], [ AC_ARG_ENABLE( $1, [ --enable-$1 enable $3 (default: yes)], gb_enable_$1=$enableval, gb_enable_$1=yes ) AC_ARG_WITH($1-includes, [ --with-$1-includes where the $3 headers are located. ], [ gb_inc_$1="$withval" ]) AC_ARG_WITH($1-libraries, [ --with-$1-libraries where the $3 libraries are located. ], [ gb_lib_$1="$withval" ]) have_$1=no if test "$gb_enable_$1"="yes"; then if test x`pkg-config --silence-errors --modversion $5` != x; then AC_MSG_CHECKING(for $3 component with pkg-config) ## Checking for headers gb_inc_$1="" #if test x"$gb_inc_$1" = x; then $2_INC=`pkg-config --cflags $5` #else # $2_INC=$gb_inc_$1 #fi ## Checking for libraries gb_lib_$1="" #if test x"$gb_lib_$1" = x; then $2_LIB=`pkg-config --libs-only-l $5` #else # $2_LIB=$gb_lib_$1 #fi gb_ldflags_$1="" #if test x"$gb_ldflags_$1" = x; then $2_LDFLAGS="`pkg-config --libs-only-L $5` `pkg-config --libs-only-other $5`" #else # $2_LDFLAGS=$gb_ldflags_$1 #fi have_$1=yes $2_DIR=$4 else if test x"$gb_inc_$1" != x && test x"$gb_lib_$1" != x; then $2_INC="" for gb_dir in $gb_inc_$1; do if test "$gb_dir" != "/usr/include"; then if test "$gb_dir" != "/usr/include/"; then $2_INC="$$2_INC -I$gb_dir" fi fi done $2_LIB="" $2_PATH="" for gb_dir in $gb_lib_$1; do if test "x$$2_PATH" = "x"; then $2_PATH="$gb_dir/.." fi if test "$gb_dir" != "/lib" && test "$gb_dir" != "/lib/"&& test "$gb_dir" != "/usr/lib" && test "$gb_dir" != "/usr/lib/"; then $2_LIB="$$2_LIB -L$gb_dir" fi done $2_LDFLAGS="" have_$1=yes $2_DIR=$4 else have_$1=no fi fi fi if test "$have_$1" = "no"; then $2_LIB="" $2_LDFLAGS="" $2_DIR="" AC_MSG_RESULT(no) AC_MSG_WARN([*** $3 is disabled]) else AC_DEFINE(HAVE_$2_COMPONENT, 1, Have $3) AC_MSG_RESULT(OK) fi AC_SUBST($2_INC) AC_SUBST($2_LIB) AC_SUBST($2_LDFLAGS) AC_SUBST($2_DIR) ]) ## --------------------------------------------------------------------------- ## GB_FIND_QT_MOC ## Find QT moc compiler ## ## $1 = Files to search ## $2 = Directories ## $3 = Sub-directories patterns ## ## Returns a path list in $gb_val ## --------------------------------------------------------------------------- AC_DEFUN([GB_FIND_QT_MOC], [ gb_path_qt_moc=no AC_ARG_WITH(moc, [ --with-moc where the QT moc compiler is located. ], [ gb_path_qt_moc="$withval" ]) AC_MSG_CHECKING(for QT meta-object compiler) AC_CACHE_VAL(gb_cv_path_qt_moc, [ gb_val="" if test "$gb_path_qt_moc" = no; then GB_FIND(moc, $QTDIR /usr /usr/lib/qt* /usr/local/qt* /usr/share/qt* /usr/qt/* /usr/pkg /usr/pkg/qt* , bin) gb_path_qt_moc=$gb_val fi gb_cv_path_qt_moc=$gb_path_qt_moc ]) AC_MSG_RESULT([$gb_cv_path_qt_moc]) if test "$gb_cv_path_qt_moc" = no; then AC_MSG_ERROR([QT moc compiler not found. Try --with-moc option.]) fi MOC=$gb_cv_path_qt_moc/moc AC_SUBST(MOC) ]) ## --------------------------------------------------------------------------- ## GB_CHECK_XWINDOW ## Check the X-Window system installation ## --------------------------------------------------------------------------- AC_DEFUN([GB_CHECK_XWINDOW], [ AC_PATH_X AC_PATH_XTRA AC_CHECK_LIB(X11, XOpenDisplay, echo -n, AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]), $X_LIBS) AC_CHECK_LIB(Xext, XShmAttach, echo -n, AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]), $X_LIBS) ]) ####################################################################################### # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- ## Copyright 1996, 1997, 1998, 1999, 2000, 2001 ## Free Software Foundation, Inc. ## Originally by Gordon Matzigkeit , 1996 ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## ## As a special exception to the GNU General Public License, if you ## distribute this file as part of a program that contains a ## configuration script generated by Autoconf, you may include it under ## the same distribution terms that you use for the rest of that program. # serial 47 AC_PROG_LIBTOOL # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) # ----------------------------------------------------------- # If this macro is not defined by Autoconf, define it here. m4_ifdef([AC_PROVIDE_IFELSE], [], [m4_define([AC_PROVIDE_IFELSE], [m4_ifdef([AC_PROVIDE_$1], [$2], [$3])])]) # AC_PROG_LIBTOOL # --------------- AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([_AC_PROG_LIBTOOL])dnl dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. AC_PROVIDE_IFELSE([AC_PROG_CXX], [AC_LIBTOOL_CXX], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX ])]) dnl And a similar setup for Fortran 77 support AC_PROVIDE_IFELSE([AC_PROG_F77], [AC_LIBTOOL_F77], [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 ])]) dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [ifdef([AC_PROG_GCJ], [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([A][M_PROG_GCJ], [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([LT_AC_PROG_GCJ], [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) ])])# AC_PROG_LIBTOOL # _AC_PROG_LIBTOOL # ---------------- AC_DEFUN([_AC_PROG_LIBTOOL], [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Prevent multiple expansion define([AC_PROG_LIBTOOL], []) ])# _AC_PROG_LIBTOOL # AC_LIBTOOL_SETUP # ---------------- AC_DEFUN([AC_LIBTOOL_SETUP], [AC_PREREQ(2.50)dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl AC_LIBTOOL_SYS_MAX_CMD_LEN AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE AC_LIBTOOL_OBJDIR AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' [sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] # Same as above, but do not quote variable references. [double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" AC_CHECK_TOOL(AR, ar, false) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then AC_PATH_MAGIC fi ;; esac AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes AC_ARG_WITH([pic], [AC_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= AC_LIBTOOL_LANG_C_CONFIG _LT_AC_TAGCONFIG ])# AC_LIBTOOL_SETUP # _LT_AC_SYS_COMPILER # ------------------- AC_DEFUN([_LT_AC_SYS_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_AC_SYS_COMPILER # _LT_AC_SYS_LIBPATH_AIX # ---------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], [AC_LINK_IFELSE(AC_LANG_PROGRAM,[ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_AC_SYS_LIBPATH_AIX # _LT_AC_SHELL_INIT(ARG) # ---------------------- AC_DEFUN([_LT_AC_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_AC_SHELL_INIT # _LT_AC_PROG_ECHO_BACKSLASH # -------------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], [_LT_AC_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac echo=${ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null && echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(ECHO) ])])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_LOCK # ----------- AC_DEFUN([_LT_AC_LOCK], [AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext lt_cv_cc_lib64_suffix=no if AC_TRY_EVAL(ac_compile); then case "`/usr/bin/file conftest.$ac_objext`" in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" lt_cv_cc_lib64_suffix=yes ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" lt_cv_cc_lib64_suffix=yes ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" lt_cv_cc_lib64_suffix=yes ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" lt_cv_cc_lib64_suffix=yes ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; ]) esac need_locks="$enable_libtool_lock" ])# _LT_AC_LOCK # AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_REQUIRE([LT_AC_PROG_SED]) AC_CACHE_CHECK([$1], [$2], [$2=no ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then $2=yes fi fi $rm conftest* ]) if test x"[$]$2" = xyes; then ifelse([$5], , :, [$5]) else ifelse([$6], , :, [$6]) fi ])# AC_LIBTOOL_COMPILER_OPTION # AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ------------------------------------------------------------ # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD else $2=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then ifelse([$4], , :, [$4]) else ifelse([$5], , :, [$5]) fi ])# AC_LIBTOOL_LINKER_OPTION # AC_LIBTOOL_SYS_MAX_CMD_LEN # -------------------------- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [# find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi ])# AC_LIBTOOL_SYS_MAX_CMD_LEN # _LT_AC_CHECK_DLFCN # -------------------- AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h)dnl ])# _LT_AC_CHECK_DLFCN # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ------------------------------------------------------------------ AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); }] EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_unknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF # ------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi ])# AC_LIBTOOL_DLOPEN_SELF # AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) # --------------------------------- # Check to see if options -c and -o are simultaneously supported by compiler AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* ]) ])# AC_LIBTOOL_PROG_CC_C_O # AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) # ----------------------------------------- # Check to see if we can do hard links to lock some files if needed AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_REQUIRE([_LT_AC_LOCK])dnl hard_links="nottested" if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi ])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS # AC_LIBTOOL_OBJDIR # ----------------- AC_DEFUN([AC_LIBTOOL_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir ])# AC_LIBTOOL_OBJDIR # AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) # ---------------------------------------------- # Check hardcoding attributes. AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_AC_TAGVAR(hardcode_action, $1)= if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then # We can hardcode non-existant directories. if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_AC_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_AC_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_AC_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi ])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH # AC_LIBTOOL_SYS_LIB_STRIP # ------------------------ AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], [striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi ])# AC_LIBTOOL_SYS_LIB_STRIP # AC_LIBTOOL_SYS_DYNAMIC_LINKER # ----------------------------- # PORTME Fill in your ld.so characteristics AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_MSG_CHECKING([dynamic linker characteristics]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes libsuff= if test "$lt_cv_cc_lib64_suffix" = "yes"; then libsuff=64 fi # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/X11R6/lib${libsuff} $lt_ld_extra" sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/X11R6/lib${libsuff} /usr/local/lib${libsuff} $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=yes library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER # _LT_AC_TAGCONFIG # ---------------- AC_DEFUN([_LT_AC_TAGCONFIG], [AC_ARG_WITH([tags], [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], [include additional configurations @<:@automatic@:>@])], [tagnames="$withval"]) if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then AC_MSG_WARN([output file `$ofile' does not exist]) fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) else AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) fi fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in "") ;; *) AC_MSG_ERROR([invalid tag name: $tagname]) ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then AC_MSG_ERROR([tag name \"$tagname\" already exists]) fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && test "X$CXX" != "Xno"; then AC_LIBTOOL_LANG_CXX_CONFIG else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then AC_LIBTOOL_LANG_F77_CONFIG else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then AC_LIBTOOL_LANG_GCJ_CONFIG else tagname="" fi ;; RC) AC_LIBTOOL_LANG_RC_CONFIG ;; *) AC_MSG_ERROR([Unsupported tag name: $tagname]) ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" AC_MSG_ERROR([unable to update list of available tagged configurations.]) fi fi ])# _LT_AC_TAGCONFIG # AC_LIBTOOL_DLOPEN # ----------------- # enable checks for dlopen support AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_DLOPEN # AC_LIBTOOL_WIN32_DLL # -------------------- # declare package support for building win32 dll's AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_WIN32_DLL # AC_ENABLE_SHARED([DEFAULT]) # --------------------------- # implement the --enable-shared flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_SHARED], [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([shared], [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]AC_ENABLE_SHARED_DEFAULT) ])# AC_ENABLE_SHARED # AC_DISABLE_SHARED # ----------------- #- set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no) ])# AC_DISABLE_SHARED # AC_ENABLE_STATIC([DEFAULT]) # --------------------------- # implement the --enable-static flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_STATIC], [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([static], [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]AC_ENABLE_STATIC_DEFAULT) ])# AC_ENABLE_STATIC # AC_DISABLE_STATIC # ----------------- # set the default static flag to --disable-static AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_STATIC(no) ])# AC_DISABLE_STATIC # AC_ENABLE_FAST_INSTALL([DEFAULT]) # --------------------------------- # implement the --enable-fast-install flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_FAST_INSTALL], [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([fast-install], [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) ])# AC_ENABLE_FAST_INSTALL # AC_DISABLE_FAST_INSTALL # ----------------------- # set the default to --disable-fast-install AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_FAST_INSTALL(no) ])# AC_DISABLE_FAST_INSTALL # AC_LIBTOOL_PICMODE([MODE]) # -------------------------- # implement the --with-pic flag # MODE is either `yes' or `no'. If omitted, it defaults to `both'. AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl pic_mode=ifelse($#,1,$1,default) ])# AC_LIBTOOL_PICMODE # AC_PROG_EGREP # ------------- # This is predefined starting with Autoconf 2.54, so this conditional # definition can be removed once we require Autoconf 2.54 or later. m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi]) EGREP=$ac_cv_prog_egrep AC_SUBST([EGREP]) ])]) # AC_PATH_TOOL_PREFIX # ------------------- # find a file program which can recognise shared library AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="ifelse([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool at ...84... EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi ])# AC_PATH_TOOL_PREFIX # AC_PATH_MAGIC # ------------- # find a file program which can recognise a shared library AC_DEFUN([AC_PATH_MAGIC], [AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# AC_PATH_MAGIC # AC_PROG_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([AC_PROG_LD], [AC_ARG_WITH([gnu-ld], [AC_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no]) AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case "$host_cpu" in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) case $host_cpu in alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*) lt_cv_deplibs_check_method=pass_all ;; *) # glibc up to 2.1.1 does not perform some relocations on ARM # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; esac lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' else lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown ])# AC_DEPLIBS_CHECK_METHOD # AC_PROG_NM # ---------- # find the pathname to a BSD-compatible name lister AC_DEFUN([AC_PROG_NM], [AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/${ac_tool_prefix}nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac esac fi done IFS="$lt_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" ])# AC_PROG_NM # AC_CHECK_LIBM # ------------- # check for math library AC_DEFUN([AC_CHECK_LIBM], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac ])# AC_CHECK_LIBM # AC_LIBLTDL_CONVENIENCE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL # and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If # DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will # be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with # '${top_srcdir}/' (note the single quotes!). If your package is not # flat and you're not using automake, define top_builddir and # top_srcdir appropriately in the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_CONVENIENCE # AC_LIBLTDL_INSTALLABLE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl installable library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that LIBLTDL # and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If # DIRECTORY is not provided and an installed libltdl is not found, it is # assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' # and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single # quotes!). If your package is not flat and you're not using automake, # define top_builddir and top_srcdir appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_CHECK_LIB(ltdl, lt_dlinit, [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], [if test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) else enable_ltdl_install=yes fi ]) if test x"$enable_ltdl_install" = x"yes"; then ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) else ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLINCL= fi # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_INSTALLABLE # AC_LIBTOOL_CXX # -------------- # enable support for C++ libraries AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_LT_AC_LANG_CXX]) ])# AC_LIBTOOL_CXX # _LT_AC_LANG_CXX # --------------- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXXCPP]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX # AC_LIBTOOL_F77 # -------------- # enable support for Fortran 77 libraries AC_DEFUN([AC_LIBTOOL_F77], [AC_REQUIRE([_LT_AC_LANG_F77]) ])# AC_LIBTOOL_F77 # _LT_AC_LANG_F77 # --------------- AC_DEFUN([_LT_AC_LANG_F77], [AC_REQUIRE([AC_PROG_F77]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) ])# _LT_AC_LANG_F77 # AC_LIBTOOL_GCJ # -------------- # enable support for GCJ libraries AC_DEFUN([AC_LIBTOOL_GCJ], [AC_REQUIRE([_LT_AC_LANG_GCJ]) ])# AC_LIBTOOL_GCJ # _LT_AC_LANG_GCJ # --------------- AC_DEFUN([_LT_AC_LANG_GCJ], [AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) ])# _LT_AC_LANG_GCJ # AC_LIBTOOL_RC # -------------- # enable support for Windows resource files AC_DEFUN([AC_LIBTOOL_RC], [AC_REQUIRE([LT_AC_PROG_RC]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) ])# AC_LIBTOOL_RC # AC_LIBTOOL_LANG_C_CONFIG # ------------------------ # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) AC_DEFUN([_LT_AC_LANG_C_CONFIG], [lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' _LT_AC_SYS_COMPILER # # Check for any special shared library compilation flags. # _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= if test "$GCC" = no; then case $host_os in sco3.2v5*) _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' ;; esac fi if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then : else AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no fi fi # # Check to make sure the static flag actually works. # AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), [], [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF($1) # Report which librarie types wil actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; darwin* | rhapsody*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' ;; esac fi ;; esac output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_C_CONFIG # AC_LIBTOOL_LANG_CXX_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], [AC_LANG_PUSH(C++) AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXXCPP]) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_AC_TAGVAR(no_undefined_flag, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Dependencies to place before and after the object being linked: _LT_AC_TAGVAR(predep_objects, $1)= _LT_AC_TAGVAR(postdep_objects, $1)= _LT_AC_TAGVAR(predeps, $1)= _LT_AC_TAGVAR(postdeps, $1)= _LT_AC_TAGVAR(compiler_lib_search_path, $1)= # Source file extension for C++ test sources. ac_ext=cc # Object file extension for compiled C++ test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_COMPILER # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration AC_PROG_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_AC_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) _LT_AC_TAGVAR(always_export_symbols, $1)=yes # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds it's shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; dgux*) case $cc_basename in ec++) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; ghcx) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | kfreebsd*-gnu) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_AC_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then case "$host_cpu" in hppa*64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; *) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case "$host_cpu" in hppa*64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; ia64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC) case "$host_cpu" in hppa*64*|ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case "$host_cpu" in ia64*|hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; irix5* | irix6*) case $cc_basename in CC) # SGI C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; linux*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc) # Intel C++ with_gnu_ld=yes _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; cxx) # Compaq C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; osf3*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ $rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; sco*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case $cc_basename in CC) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; lcc) # Lucid # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx) # Green Hills C++ Compiler _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' fi ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_AC_TAGVAR(GCC, $1)="$GXX" _LT_AC_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... AC_LIBTOOL_POSTDEP_PREDEP($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF($1) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ])# AC_LIBTOOL_LANG_CXX_CONFIG # AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) # ------------------------ # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" ifelse([$1], [], [#! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG], [# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? with_gcc=$_LT_AC_TAGVAR(GCC, $1) # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_[]_LT_AC_TAGVAR(LD, $1) # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) # Commands used to build and install a shared archive. archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) # Flag that forces no undefined symbols. no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" # Set to yes if exported symbols are required. always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) # The commands to list exported symbols. export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) # Symbols that must always be exported. include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) ifelse([$1],[], [# ### END LIBTOOL CONFIG], [# ### END LIBTOOL TAG CONFIG: $tagname]) __EOF__ ifelse([$1],[], [ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ]) else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ])# AC_LIBTOOL_CONFIG # AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi ])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # --------------------------------- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_OBJEXT]) # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32*) symcode='[[ABCDGISTW]]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris* | sysv5*) symcode='[[BDRT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[[]] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) # --------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], [_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) ifelse([$1],[CXX],[ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC) # KAI C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; icpc) # Intel C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; cxx) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC) # Rational C++ 2.4.1 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx) # Digital/Compaq C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; sco*) case $cc_basename in CC) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; *) ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc) # Lucid _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; unixware*) ;; vxworks*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; newsos6) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; linux*) case $CC in icc* | ecc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; ccc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; sco3.2v5*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' ;; solaris*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sunos4*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; uts4*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" ;; esac ]) # AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) # ------------------------------------ # See if the linker supports building shared libraries. AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ifelse([$1],[CXX],[ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw*) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ],[ runpath_var= _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)= _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_AC_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac _LT_AC_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; sunos4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds" supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac if test $supports_anon_versioning = yes; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds" fi else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=yes _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) _LT_AC_TAGVAR(always_export_symbols, $1)=yes # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds it's shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # see comment about different semantics on the GNU ld section _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; bsdi4*) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) if test "$GXX" = yes ; then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; dgux*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10* | hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*|ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case "$host_cpu" in hppa*64*|ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac fi if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; *) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; openbsd*) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi ;; os2*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; sco3.2v5*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_AC_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_AC_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4.2uw2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv5*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' ;; uts4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_AC_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) _LT_AC_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac ])# AC_LIBTOOL_PROG_LD_SHLIBS # _LT_AC_FILE_LTDLL_C # ------------------- # Be careful that the start marker always follows a newline. AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ ])# _LT_AC_FILE_LTDLL_C # _LT_AC_TAGVAR(VARNAME, [TAGNAME]) # --------------------------------- AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) AC_DEFUN([LT_AC_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj, no) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS) ]) AC_DEFUN([LT_AC_PROG_RC], [AC_CHECK_TOOL(RC, windres, no) ]) ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ # LT_AC_PROG_SED # -------------- # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. AC_DEFUN([LT_AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && break cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done SED=$lt_cv_path_SED ]) AC_MSG_RESULT([$SED]) ]) ##----------------------------------------------------------------------------------- dnl Like AC_CHECK_HEADER, but it uses the already-computed -I directories. AC_DEFUN([AC_CHECK_X_HEADER], [ ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" AC_CHECK_HEADER([$1],[$2],[$3]) CPPFLAGS="$ac_save_CPPFLAGS" ]) dnl Like AC_CHECK_LIB, but it used the -L dirs set up by the X checks. AC_DEFUN([AC_CHECK_X_LIB], [ ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" fi dnl note: $X_CFLAGS includes $x_includes CPPFLAGS="$CPPFLAGS $X_CFLAGS" if test \! -z "$libdir" ; then LDFLAGS="$LDFLAGS -L$libdir" fi dnl note: $X_LIBS includes $x_libraries LDFLAGS="$LDFLAGS $X_LIBS" AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5]) CPPFLAGS="$ac_save_CPPFLAGS" LDFLAGS="$ac_save_LDFLAGS"] ) dnl Check if it is possible to turn off run time type information (RTTI) AC_DEFUN([AC_PROG_CXX_FNO_RTTI], [AC_CACHE_CHECK(whether ${CXX-g++} accepts -fno-rtti, ac_cv_prog_cxx_fno_rtti, [echo 'void f(){}' > conftest.cc if test -z "`${CXX-g++} -fno-rtti -c conftest.cc 2>&1`"; then ac_cv_prog_cxx_fno_rtti=yes CXXFLAGS="${CXXFLAGS} -fno-rtti" else ac_cv_prog_cxx_fno_rtti=no fi rm -f conftest* ])]) dnl Check if the type socklen_t is defined anywhere AC_DEFUN([AC_C_SOCKLEN_T], [AC_CACHE_CHECK(for socklen_t, ac_cv_c_socklen_t, [ AC_TRY_COMPILE([ #include #include ],[ socklen_t foo; ],[ ac_cv_c_socklen_t=yes ],[ ac_cv_c_socklen_t=no AC_DEFINE(socklen_t,int) ])])]) dnl Check for sys_errlist[] and sys_nerr, check for declaration dnl Check nicked from aclocal.m4 from GNU bash 2.01 AC_DEFUN([AC_SYS_ERRLIST], [AC_MSG_CHECKING([for sys_errlist and sys_nerr]) AC_CACHE_VAL(ac_cv_sys_errlist, [AC_TRY_LINK([#include ], [extern char *sys_errlist[]; extern int sys_nerr; char *msg = sys_errlist[sys_nerr - 1];], ac_cv_sys_errlist=yes, ac_cv_sys_errlist=no)])dnl AC_MSG_RESULT($ac_cv_sys_errlist) if test $ac_cv_sys_errlist = yes; then AC_DEFINE(HAVE_SYS_ERRLIST) fi ]) From henrik at ...254... Thu Mar 24 20:10:08 2005 From: henrik at ...254... (Henrik Pihl) Date: Thu, 24 Mar 2005 21:10:08 +0200 Subject: [Gambas-devel] Summary in the end of ./configure ? Message-ID: <42431090.106@...254...> Mplayer has one, so you could determine, what components were included / not included, instead of scrolling up reviewing the log. Shouldn't be hard to implement? :) From Karl.Reinl at ...16... Thu Mar 24 21:03:03 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Thu, 24 Mar 2005 21:03:03 +0100 Subject: [Gambas-devel] this concerns gambas-1.9.4 Message-ID: <200503242103.03707.Karl.Reinl@...16...> Salut Benoit, sorry I dit like you said and used the 4 files, in root from gambas-1.9.4, but still have problems with odbc . I started with a new unpacked gambas-1.9.4 Send you my scripts and the logs. (reconf-all had not the execute) Using: ?gambas-1.9.4 ?(downloaded from the gambas-shrine) ????????gentoo 1.4 (last Updated 18.12.2004) = 2004.3 ?Qt: 3.3.3 ?KDE: 3.3.1 ????????gcc (GCC) 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, pie-8.7.6) ????????mysql ?Ver 12.22 Distrib 4.0.22, for pc-linux-gnu (i686) ????????psql (PostgreSQL) 7.4.6 ????????sqlite 2.8.15 make = GNU Make 3.80 Amicalement Charlie -------------- next part -------------- A non-text attachment was scrubbed... Name: configure.log Type: text/x-log Size: 110282 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: my_conf Type: application/x-shellscript Size: 103 bytes Desc: not available URL: -------------- next part -------------- #!/bin/sh make > /opt/gambas2/make.log 2>&1 -------------- next part -------------- A non-text attachment was scrubbed... Name: make.log Type: text/x-log Size: 33767 bytes Desc: not available URL: From frankberg at ...136... Thu Mar 24 21:58:51 2005 From: frankberg at ...136... (Frank Berg) Date: Thu, 24 Mar 2005 21:58:51 +0100 Subject: [Gambas-devel] gambas-1.9.4 References: <200503232239.56970.Karl.Reinl@...16...> <200503241405.01207.gambas@...1...> Message-ID: <09c301c530b4$4b215790$c6f0fea9@...146...> > > Here is a patch that let you disable components correctly: put these files > in > the root directory, and type ./reconf-all. Then ./configure -C > --disable-XXX... > hi, there is no "reconf" in the packet file in the patch there is only an "reconf-all.dat", but nothing to execute there is no effect to compile w w/o patch and --disable-xxx same errors as before the patch look at the output.log i send before frank From sourceforge-raindog2 at ...19... Thu Mar 24 22:10:23 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Thu, 24 Mar 2005 16:10:23 -0500 Subject: [Gambas-devel] gambas-1.9.4 In-Reply-To: <09c301c530b4$4b215790$c6f0fea9@...146...> References: <200503232239.56970.Karl.Reinl@...16...> <200503241405.01207.gambas@...1...> <09c301c530b4$4b215790$c6f0fea9@...146...> Message-ID: <200503241610.23803.sourceforge-raindog2@...19...> On Thursday 24 March 2005 15:58, Frank Berg wrote: > > Here is a patch that let you disable components correctly: put > > these files in > > the root directory, and type ./reconf-all. Then ./configure -C > there is no "reconf" in the packet file > in the patch there is only an "reconf-all.dat", but nothing to > execute Shame on you for using Outlook Express. The file is called "reconf-all" with no extension. Since OE is retarded, it added ".dat" to the end of it. Renameit , turn on its execute permission, and off you go. Rob From Karl.Reinl at ...16... Thu Mar 24 22:20:39 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Thu, 24 Mar 2005 22:20:39 +0100 Subject: [Gambas-devel] reconf-all Message-ID: <200503242220.40041.Karl.Reinl@...16...> Salut Benoit, I found a 'reconf' at app, comp and main. But reconf are not in any gb.* and also not in the root of gambas-1.9.4 see your reconf-all script Amicalment Charlie From frankberg at ...136... Thu Mar 24 22:45:22 2005 From: frankberg at ...136... (Frank Berg) Date: Thu, 24 Mar 2005 22:45:22 +0100 Subject: [Gambas-devel] gambas-1.9.4 References: <200503232239.56970.Karl.Reinl@...16...> <200503241405.01207.gambas@...1...> <09c301c530b4$4b215790$c6f0fea9@...146...> <200503241610.23803.sourceforge-raindog2@...19...> Message-ID: <001e01c530ba$cac2edf0$c6f0fea9@...146...> > Shame on you for using Outlook Express. The file is called > "reconf-all" with no extension. Since OE is retarded, it added > ".dat" to the end of it. Renameit , turn on its execute permission, > and off you go. > > Rob > hi, this was i try first.. rename it to reconf-all and set the execute permission.. but my suse tell me: bad interpreter so what is wrong?? and i still miss the reconf file in the root dir.. frank From sourceforge-raindog2 at ...19... Thu Mar 24 22:55:27 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Thu, 24 Mar 2005 16:55:27 -0500 Subject: [Gambas-devel] gambas-1.9.4 In-Reply-To: <001e01c530ba$cac2edf0$c6f0fea9@...146...> References: <200503232239.56970.Karl.Reinl@...16...> <200503241610.23803.sourceforge-raindog2@...19...> <001e01c530ba$cac2edf0$c6f0fea9@...146...> Message-ID: <200503241655.27404.sourceforge-raindog2@...19...> On Thursday 24 March 2005 16:45, Frank Berg wrote: > this was i try first.. rename it to reconf-all and set the execute > permission.. > but my suse tell me: bad interpreter > so what is wrong?? My guess would be that Outlook Express also helpfully converted all the linefeeds in the file to carriage returns plus linefeeds. The only other option is that /bin/sh is missing or installed wrong on your SuSE box and I would find that hard to believe since you're able to use it at all. "perl -pibak -e 's/\r//g' reconf-all" should take care of that linefeed thing. I don't know about the missing reconf though as I haven't had time to try building it myself. Rob From frankberg at ...136... Fri Mar 25 08:13:05 2005 From: frankberg at ...136... (Frank Berg) Date: Fri, 25 Mar 2005 08:13:05 +0100 Subject: [Gambas-devel] gambas-1.9.4 References: <200503232239.56970.Karl.Reinl@...16...> <200503241610.23803.sourceforge-raindog2@...19...> <001e01c530ba$cac2edf0$c6f0fea9@...146...> <200503241655.27404.sourceforge-raindog2@...19...> Message-ID: <001201c5310a$1a439d80$c6f0fea9@...146...> ----- Original Message ----- From: "Rob" To: Sent: Thursday, March 24, 2005 10:55 PM Subject: Re: [Gambas-devel] gambas-1.9.4 > My guess would be that Outlook Express also helpfully converted all > the linefeeds in the file to carriage returns plus linefeeds. The > only other option is that /bin/sh is missing or installed wrong on > your SuSE box and I would find that hard to believe since you're able > to use it at all. > > "perl -pibak -e 's/\r//g' reconf-all" should take care of that > linefeed thing. I don't know about the missing reconf though as I > haven't had time to try building it myself. > > Rob > hi rob, i was use the tool dos2unix to convert the file to unix format, then i set the permission new and now the script run. thanks rob... thanks OE... mmmmhhh... hi benoit, but: there is only an reconf file in the subfolder from main, app and comp.. in all other subfilders beginning with gb.* ther is no ./reconf and in the root folder there is none too so i receive many errors from script : ./reconf : no file or directory frank From andrea_bortolan at ...112... Fri Mar 25 11:08:24 2005 From: andrea_bortolan at ...112... (Andrea Bortolan) Date: Fri, 25 Mar 2005 11:08:24 +0100 (CET) Subject: [Gambas-devel] ODBC In-Reply-To: <200503221515.17769.gambas@...1...> Message-ID: <20050325100824.83211.qmail@...270...> --- Benoit Minisini ha > > >>>>>>>>>>>>>>>>> > I fixed the error, but I'm afraid about what is > really done by that function. > Which compiler do you use ? > >>>>>>>>>>>>>>>>> > > You're right, I'll fix it asap. My compiler is gcc 3.3.3 do you think I need to update it ? Ciao, Andrea. ___________________________________ Nuovo Yahoo! Messenger: E' molto pi? divertente: Audibles, Avatar, Webcam, Giochi, Rubrica Scaricalo ora! http://it.messenger.yahoo.it From nigel at ...2... Fri Mar 25 15:10:30 2005 From: nigel at ...2... (nigel at ...2...) Date: Fri, 25 Mar 2005 15:10:30 +0100 (CET) Subject: [Gambas-devel] Date Value Message-ID: <25318085.1111759830003.JavaMail.www@...231...> Benoit, I'm looking at adding more date related functions to gambas, for example a julian function to return julian dates from gregorian. Looking at the code in gbx_date.c I am uncertain as to whether value->_date.date (ndays) is the julian value. (It is a slightly different value from the values calculated using the formula that I am use to). e.g. The gambas date value for 01/01/2005 is 2485476 whilst the Julian is 2453372. Is the value intended to be Julian or is the value only specific to gambas? Kind regards Nigel -- Whatever you Wanadoo: http://www.wanadoo.co.uk/time/ This email has been checked for most known viruses - find out more at: http://www.wanadoo.co.uk/help/id/7098.htm From andrea_bortolan at ...112... Fri Mar 25 16:05:09 2005 From: andrea_bortolan at ...112... (Andrea Bortolan) Date: Fri, 25 Mar 2005 16:05:09 +0100 (CET) Subject: [Gambas-devel] ODBC In-Reply-To: 6667 Message-ID: <20050325150509.1409.qmail@...272...> Beno?t, I hope this version should compile without bad warnings, the remainings warnings are about functions still in implementation stage. Sorry for my bad coding stile.... Have a nice day. ___________________________________ Nuovo Yahoo! Messenger: E' molto pi? divertente: Audibles, Avatar, Webcam, Giochi, Rubrica Scaricalo ora! http://it.messenger.yahoo.it -------------- next part -------------- A non-text attachment was scrubbed... Name: main.c Type: text/x-c Size: 55445 bytes Desc: main.c URL: From na2492 at ...16... Fri Mar 25 21:23:08 2005 From: na2492 at ...16... (Charlie Reinl) Date: Fri, 25 Mar 2005 21:23:08 00100 Subject: [Gambas-devel] Date Value Message-ID: <4244732c.2b24.0@...16...> >Benoit, > >I'm looking at adding more date related functions to gambas, for example a julian function to return julian dates from gregorian. Looking at the code in gbx_date.c I am uncertain as to whether value->_date.date (ndays) is the julian value. (It is a slightly different value from the values calculated using the formula that I am use to). e.g. The gambas date value for 01/01/2005 is 2485476 whilst the Julian is 2453372. > >Is the value intended to be Julian or is the value only specific to gambas? > >Kind regards > >Nigel > Salut Nigel, while you talking Dates. I remaked that, if you insert into a SQlite table values like '1872-7-4','1933-1-5', SQLite hase problem with (mySQl and postgres haven't) to make it run for all 3 you have to write '1872-07-04','1933-01-05' So I think it's perhaps a SQLite-driver problem. You can see that in the attached project.The insert into you find in FSampl. Amicalment Charlie * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * -------------- next part -------------- A non-text attachment was scrubbed... Name: DBTableView-0.0.5.tar.bz2 Type: application/x-tbz Size: 114095 bytes Desc: not available URL: From Karl.Reinl at ...16... Sat Mar 26 00:35:01 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Sat, 26 Mar 2005 00:35:01 +0100 Subject: [Gambas-devel] using Eclipse 3.0 to work on gambas - sourcecode Message-ID: <200503260035.01262.Karl.Reinl@...16...> Salut, while looking to a better way then kate, for working on gambas - sourcecode, I use eclipse. Till now only as editor, but since today also to compile gambas. I tried to write down the way to install the gambas - sourcecode as project in eclipse. See the attachment Amicalment Charlie -------------- next part -------------- A non-text attachment was scrubbed... Name: useEclipse.pdf Type: application/pdf Size: 325451 bytes Desc: not available URL: From gambasfr at ...4... Sat Mar 26 16:30:23 2005 From: gambasfr at ...4... (fabien) Date: Sat, 26 Mar 2005 16:30:23 +0100 Subject: [Gambas-devel] bug in configure script Message-ID: <200503261630.23270.gambasfr@...4...> Hi I'm trying to compile gambas under ubuntu stable -> the bz2 lib is not present but gambas not desable the compilation -> the odbc lib do the same in fact to make a good comilation ... i need to install all the lib... Nevertheless gambas 1.9.4 compile fine on ubunti warty fabien From daniel.campos at ...103... Sat Mar 26 18:39:39 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Sat, 26 Mar 2005 18:39:39 +0100 Subject: [Gambas-devel] Gambas component creation / Error Message-ID: <42459E5B.4050306@...103...> Hi Beno?t: I'm rewritting the gb.xml.rpc class in Gambas, by now I have a functional RPC standalone server, I tested it as a program, and then I tried to convert it to a gambas component. I copied the list,component and info files ,and I copied the executable to the library path as gb.xml.rpc.gambas . When I try to insert this component in a program, I always find the error "End of File" all the time at "CComponent.Load" while opening the project and writting any code. I can see only two of the five classes exported, too. However the component works and I can use it in the test program... By other side, there's another bug in the IDE: CComponent.class (line 205): IF Key = "gb.gtk" THEN FOR EACH sClass IN ["Control", "Form"] Should be: IF Key = "gb.gtk" THEN FOR EACH sClass IN ["Control", "Form","Menu"] Regards, D. Campos -------------- next part -------------- A non-text attachment was scrubbed... Name: RPC.tar.bz2 Type: application/x-bzip Size: 28173 bytes Desc: not available URL: From Karl.Reinl at ...16... Sat Mar 26 20:29:53 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Sat, 26 Mar 2005 20:29:53 +0100 Subject: [Gambas-devel] Now I have also gambas-1.9.4 Message-ID: <200503262029.54195.Karl.Reinl@...16...> Salut, finaly I found a way to do it. After Benoits changing last week to the configure script etc. The --disable- switch worked for the analyzing, but had noe efects during 'make'. While I'm not willing to install lib's I normaly don't need I was waiting. A few moments ago I had an Idea, configure prepares the Makefile so I had a look into, and searched for odbc . I found it in to Lines, which starts with subdir = and SUBDIR = . Followed by all the dirs with the componts for gambas, all separated in own dirs like Benoit said. I deleted (after backing up the Makefile) in both lines the dirs which contains the components I disabled by calling 'configure' , saved the changes and typed 'make' Hey it worked , make finished without an ERROR and I could type 'make install' The Ide works, but I'v tried nothing till yet. So stop downloading lib , try this way. Amicalment Charlie From Karl.Reinl at ...16... Sat Mar 26 21:03:36 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Sat, 26 Mar 2005 21:03:36 +0100 Subject: [Gambas-devel] Debugging gambas-source-code Message-ID: <200503262103.37048.Karl.Reinl@...16...> Salut Benoit, actually I succeted to work with Eclipse 3.0 on the gambas-sourccode. I made it to an eclipse-project and can build it form there, without any change made to the original packet from the shrine. Today I also succeted to custemize the eclipse - debugger (which use gdb) to debug gambas. But I olny can debug binaries from the project, which are gba, gbc, gbi and gbx. Not knowing gdb well, my question is, is it possible to debug components ? And if, what have I to do to have access ? If I set a breakpoint in CTableView.cpp gdb say 'No source file named CTableView.cpp. warning: Unable to find dynamic linker breakpoint function. GDB will be unable to debug shared library initializers and track explicitly loaded dynamic code.' Would be nice to have some help, about that. Send you an SnapShot Amicalment Charlie -------------- next part -------------- A non-text attachment was scrubbed... Name: UEpg010.png Type: image/png Size: 127677 bytes Desc: not available URL: From nigel at ...2... Sun Mar 27 12:46:51 2005 From: nigel at ...2... (nigel at ...2...) Date: Sun, 27 Mar 2005 12:46:51 +0200 (CEST) Subject: [Gambas-devel] Date Value Message-ID: <25383359.1111920411855.JavaMail.www@...275...> Charlie, You are correct. Remember that there is no such type as Date in true sqlite and that the gambas driver tries to approximate it. This problem generally only appears if you use the Exec to insert a value. If you used the independent gambas methods table!fieldname = value then the conversion would happen automatically. Nigel > Message date : Mar 25 2005, 08:26 PM > From : "Charlie Reinl" > To : gambas-devel at lists.sourceforge.net > Copy to : > Subject : Re: [Gambas-devel] Date Value > > >Benoit, > > > >I'm looking at adding more date related functions to gambas, for example > a julian function to return julian dates from gregorian. Looking at the > code in gbx_date.c I am uncertain as to whether value->_date.date (ndays) > is the julian value. (It is a slightly different value from the values > calculated using the formula that I am use to). e.g. The gambas date value > > for 01/01/2005 is 2485476 whilst the Julian is 2453372. > > > >Is the value intended to be Julian or is the value only specific to > gambas? > > > >Kind regards > > > >Nigel > > > Salut Nigel, > > while you talking Dates. > I remaked that, if you insert into a SQlite table values like > '1872-7-4','1933-1-5', SQLite hase problem with (mySQl and postgres > haven't) > to make it run for all 3 you have to write '1872-07-04','1933-01-05' > So I think it's perhaps a SQLite-driver problem. > You can see that in the attached project.The insert into you find in > FSampl. > > Amicalment > Charlie > * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * > > > [ DBTableView-0.0.5.tar.bz2 (153.5 Kb) ] -- Whatever you Wanadoo: http://www.wanadoo.co.uk/time/ This email has been checked for most known viruses - find out more at: http://www.wanadoo.co.uk/help/id/7098.htm From bdragon at ...185... Sun Mar 27 20:52:42 2005 From: bdragon at ...185... (Brandon Bergren) Date: Sun, 27 Mar 2005 12:52:42 -0600 (Central Standard Time) Subject: [Gambas-devel] Debugging gambas-source-code In-Reply-To: <200503262103.37048.Karl.Reinl@...16...> References: <200503262103.37048.Karl.Reinl@...16...> Message-ID: On Sat, 26 Mar 2005, Charlie Reinl wrote: > Salut Benoit, > > actually I succeted to work with Eclipse 3.0 on the gambas-sourccode. > I made it to an eclipse-project and can build it form there, without any > change made to the original packet from the shrine. > > Today I also succeted to custemize the eclipse - debugger (which use gdb) to > debug gambas. > > But I olny can debug binaries from the project, which are gba, gbc, gbi and > gbx. > > Not knowing gdb well, my question is, is it possible to debug components ? > And if, what have I to do to have access ? Yes. You need to set your breakpoints AFTER the modules are loaded. 1. Disable preloading. (gdb doesn't get along with preloading) 2. Break after library load. gdb command "break TRACE_init" should do the trick for gbx. (TRACE_init() isn't called until after LIBRARY_load_all() in gbx.c, as far as I can tell.) 3. Set your breakpoints. 4. "c"ontinue execution. > > If I set a breakpoint in CTableView.cpp gdb > say > 'No source file named CTableView.cpp. > warning: Unable to find dynamic linker breakpoint function. > GDB will be unable to debug shared library initializers > and track explicitly loaded dynamic code.' > > Would be nice to have some help, about that. > > Send you an SnapShot > > Amicalment > Charlie > From na2492 at ...16... Sun Mar 27 22:57:14 2005 From: na2492 at ...16... (Charlie Reinl) Date: Sun, 27 Mar 2005 22:57:14 00200 Subject: [Gambas-devel] Debugging gambas-source-code Message-ID: <42471e2a.5215.0@...16...> > > >On Sat, 26 Mar 2005, Charlie Reinl wrote: > >> Salut Benoit, >> >> actually I succeted to work with Eclipse 3.0 on the gambas-sourccode. >> I made it to an eclipse-project and can build it form there, without any >> change made to the original packet from the shrine. >> >> Today I also succeted to custemize the eclipse - debugger (which use gdb) to >> debug gambas. >> >> But I olny can debug binaries from the project, which are gba, gbc, gbi and >> gbx. >> >> Not knowing gdb well, my question is, is it possible to debug components ? >> And if, what have I to do to have access ? > >Yes. > >You need to set your breakpoints AFTER the modules are loaded. > >1. Disable preloading. (gdb doesn't get along with preloading) Thanks. But I think that gbx -p does that, so I will look if I pass the args in a right way. >2. Break after library load. >gdb command "break TRACE_init" should do the trick for gbx. >(TRACE_init() isn't called until after LIBRARY_load_all() in gbx.c, as >far as I can tell.) >3. Set your breakpoints. >4. "c"ontinue execution. > > >> >> If I set a breakpoint in CTableView.cpp gdb >> say >> 'No source file named CTableView.cpp. >> warning: Unable to find dynamic linker breakpoint function. >> GDB will be unable to debug shared library initializers >> and track explicitly loaded dynamic code.' >> >> Would be nice to have some help, about that. >> >> Send you an SnapShot >> >> Amicalment >> Charlie >> > > >------------------------------------------------------- >SF email is sponsored by - The IT Product Guide >Read honest & candid reviews on hundreds of IT Products from real users. >Discover which products truly live up to the hype. Start reading now. >http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >_______________________________________________ >Gambas-devel mailing list >Gambas-devel at lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/gambas-devel > > * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * From na2492 at ...16... Mon Mar 28 00:07:09 2005 From: na2492 at ...16... (Charlie Reinl) Date: Mon, 28 Mar 2005 00:07:09 00200 Subject: [Gambas-devel] Debugging gambas-source-code Message-ID: <42472e8d.ad1.0@...16...> >> >> >>On Sat, 26 Mar 2005, Charlie Reinl wrote: >> >>> Salut Benoit, >>> >>> actually I succeted to work with Eclipse 3.0 on the gambas-sourccode. >>> I made it to an eclipse-project and can build it form there, without >any >>> change made to the original packet from the shrine. >>> >>> Today I also succeted to custemize the eclipse - debugger (which use >gdb) to >>> debug gambas. >>> >>> But I olny can debug binaries from the project, which are gba, gbc, gbi > >and >>> gbx. >>> >>> Not knowing gdb well, my question is, is it possible to debug >components ? >>> And if, what have I to do to have access ? >> >>Yes. >> >>You need to set your breakpoints AFTER the modules are loaded. >> >>1. Disable preloading. (gdb doesn't get along with preloading) > >Thanks. > >But I think that gbx -p does that, so I will look if I pass the >args in a right way. The arg was set right and the modules are NOT loaded, I can debug it in gbx, but when gbx has done his job, the thread says 'runnig' but shows no more loaded part. Anything to do, to load that, or ??? > >>2. Break after library load. >>gdb command "break TRACE_init" should do the trick for gbx. >>(TRACE_init() isn't called until after LIBRARY_load_all() in gbx.c, as >>far as I can tell.) >>3. Set your breakpoints. >>4. "c"ontinue execution. >> >> >>> >>> If I set a breakpoint in CTableView.cpp gdb >>> say >>> 'No source file named CTableView.cpp. >>> warning: Unable to find dynamic linker breakpoint function. >>> GDB will be unable to debug shared library initializers >>> and track explicitly loaded dynamic code.' >>> >>> Would be nice to have some help, about that. >>> >>> Send you an SnapShot >>> >>> Amicalment >>> Charlie >>> >> >> >>------------------------------------------------------- >>SF email is sponsored by - The IT Product Guide >>Read honest & candid reviews on hundreds of IT Products from real users. >>Discover which products truly live up to the hype. Start reading now. >>http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >>_______________________________________________ >>Gambas-devel mailing list >>Gambas-devel at lists.sourceforge.net >>https://lists.sourceforge.net/lists/listinfo/gambas-devel >> >> > >* Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * > > >------------------------------------------------------- >SF email is sponsored by - The IT Product Guide >Read honest & candid reviews on hundreds of IT Products from real users. >Discover which products truly live up to the hype. Start reading now. >http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >_______________________________________________ >Gambas-devel mailing list >Gambas-devel at lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/gambas-devel > > * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * From bdragon at ...185... Mon Mar 28 09:05:00 2005 From: bdragon at ...185... (Brandon Bergren) Date: Mon, 28 Mar 2005 01:05:00 -0600 (Central Standard Time) Subject: [Gambas-devel] Debugging gambas-source-code In-Reply-To: <42472e8d.ad1.0@...16...> References: <42472e8d.ad1.0@...16...> Message-ID: On Mon, 28 Mar 2005, Charlie Reinl wrote: >>> >>> >>> On Sat, 26 Mar 2005, Charlie Reinl wrote: >>> >>>> Salut Benoit, >>>> >>>> actually I succeted to work with Eclipse 3.0 on the gambas-sourccode. > >>>> I made it to an eclipse-project and can build it form there, without >> any >>>> change made to the original packet from the shrine. >>>> >>>> Today I also succeted to custemize the eclipse - debugger (which use >> gdb) to >>>> debug gambas. >>>> >>>> But I olny can debug binaries from the project, which are gba, gbc, > gbi >> >> and >>>> gbx. >>>> >>>> Not knowing gdb well, my question is, is it possible to debug >> components ? >>>> And if, what have I to do to have access ? >>> >>> Yes. >>> >>> You need to set your breakpoints AFTER the modules are loaded. >>> >>> 1. Disable preloading. (gdb doesn't get along with preloading) >> >> Thanks. >> >> But I think that gbx -p does that, so I will look if I pass the >> args in a right way. > > > The arg was set right and the modules are NOT loaded, > I can debug it in gbx, > but when gbx has done his job, the thread says 'runnig' but shows no more > > loaded part. > > Anything to do, to load that, or ??? > It's a step by step list. Here's a clarified version, using command line gdb: $ gdb gbx <- start gdb from the command line set args -p <- set program arguments to disable preloading break TRACE_init <- set our initial breakpoint run <- execute gbx. (gdb stops at TRACE_init, and you get a gdb prompt.) >>>!Here's where you can set your breakpoints!<<< example: "break CTableView.cpp:45" should break on or near line 45 of file CTableView.cpp. cont <- continue execution from where we entered the debugger. (gdb now stops at your breakpoints) > > >> >>> 2. Break after library load. >>> gdb command "break TRACE_init" should do the trick for gbx. >>> (TRACE_init() isn't called until after LIBRARY_load_all() in gbx.c, as > >>> far as I can tell.) >>> 3. Set your breakpoints. >>> 4. "c"ontinue execution. >>> >>> >>>> >>>> If I set a breakpoint in CTableView.cpp gdb >>>> say >>>> 'No source file named CTableView.cpp. >>>> warning: Unable to find dynamic linker breakpoint function. >>>> GDB will be unable to debug shared library initializers >>>> and track explicitly loaded dynamic code.' >>>> >>>> Would be nice to have some help, about that. >>>> >>>> Send you an SnapShot >>>> >>>> Amicalment >>>> Charlie >>>> >>> >>> >>> ------------------------------------------------------- >>> SF email is sponsored by - The IT Product Guide >>> Read honest & candid reviews on hundreds of IT Products from real users. > >>> Discover which products truly live up to the hype. Start reading now. >>> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >>> _______________________________________________ >>> Gambas-devel mailing list >>> Gambas-devel at lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/gambas-devel >>> >>> >> >> * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * >> >> >> ------------------------------------------------------- >> SF email is sponsored by - The IT Product Guide >> Read honest & candid reviews on hundreds of IT Products from real users. >> Discover which products truly live up to the hype. Start reading now. >> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel >> >> > > * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From na2492 at ...16... Mon Mar 28 21:43:34 2005 From: na2492 at ...16... (Charlie Reinl) Date: Mon, 28 Mar 2005 21:43:34 00200 Subject: [Gambas-devel] Debugging gambas-source-code Message-ID: <42485e66.5d35.0@...16...> >>> Thanks. >>> >>> But I think that gbx -p does that, so I will look if I pass the >>> args in a right way. >> >> >> The arg was set right and the modules are NOT loaded, >> I can debug it in gbx, >> but when gbx has done his job, the thread says 'runnig' but shows no more >> >> loaded part. >> >> Anything to do, to load that, or ??? >> >It's a step by step list. > >Here's a clarified version, using command line gdb: > >$ gdb gbx <- start gdb from the command line >set args -p <- set program arguments to disable preloading >break TRACE_init <- set our initial breakpoint >run <- execute gbx. >(gdb stops at TRACE_init, and you get a gdb prompt.) >>>>!Here's where you can set your breakpoints!<<< >example: "break CTableView.cpp:45" should break on or near line 45 of file >CTableView.cpp. >cont <- continue execution from where we entered the debugger. >(gdb now stops at your breakpoints) > Salut, here my output, bash-2.05b$ cd /opt/gambas/gambas/app/gambas bash-2.05b$ gdb gbx GNU gdb 6.0 Copyright 2003 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) set args -p (gdb) break TRACE_init Breakpoint 1 at 0x805008c: file gbx_trace.c, line 234. (gdb) run Starting program: /usr/bin/gbx -p warning: Unable to find dynamic linker breakpoint function. GDB will be unable to debug shared library initializers and track explicitly loaded dynamic code. Breakpoint 1, TRACE_init () at gbx_trace.c:234 234 if (!EXEC_debug) (gdb) break /opt/gambas/gambas/src/lib/qt/ext/CTableView.cpp:1074 No source file named /opt/gambas/gambas/src/lib/qt/ext/CTableView.cpp. (gdb) break CTableView.cpp:1074 No source file named CTableView.cpp. I had a look to qt/ext and I'm saw it was compiled with -g So it has to be something else, I ignore ? To you have an easier call, which work on your box. Just for testing ? Amicalment Charlie * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * From bdragon at ...185... Mon Mar 28 21:59:18 2005 From: bdragon at ...185... (Brandon Bergren) Date: Mon, 28 Mar 2005 13:59:18 -0600 (Central Standard Time) Subject: [Gambas-devel] Misc. win32 stuff Message-ID: Hello again. Here's a newsletter-style progress report. Item 1: GTK plug/socket for win32 in gtk+ HEAD soon? Tor Lillqvist is working on a Windows Plug/Socket implementation. More information can be found here: http://bugzilla.gnome.org/show_bug.cgi?id=58541 I'd like this bug to get more publicity, because gb.gtk uses some plug/socket stuff. Getting this in GTK would mean the only remaining part of gb.gtk not working on Windows would be the trayicon class. (and that only requires a bit of elbow grease to get working.) Item 2: Minor nit in config.h Benoit, could you force DONT_USE_LTDL to be not defined when building for OS_CYGWIN? I have to manually comment out the line in config.h every time I reconfigure, and it's getting annoying. Item 3: 1.9.4 works (kinda) I upgraded my working copy to 1.9.4. Most of the things that were working before still work OK. However, gb.gtk is now having trouble placing windows so they appear on-screen. :( I haven't had time to look into that yet. --Brandon From bdragon at ...185... Mon Mar 28 22:18:19 2005 From: bdragon at ...185... (Brandon Bergren) Date: Mon, 28 Mar 2005 14:18:19 -0600 (Central Standard Time) Subject: [Gambas-devel] Debugging gambas-source-code In-Reply-To: <42485e66.5d35.0@...16...> References: <42485e66.5d35.0@...16...> Message-ID: On Mon, 28 Mar 2005, Charlie Reinl wrote: >>>> Thanks. >>>> >>>> But I think that gbx -p does that, so I will look if I pass the >>>> args in a right way. >>> >>> >>> The arg was set right and the modules are NOT loaded, >>> I can debug it in gbx, >>> but when gbx has done his job, the thread says 'runnig' but shows no > more >>> >>> loaded part. >>> >>> Anything to do, to load that, or ??? >>> >> It's a step by step list. >> >> Here's a clarified version, using command line gdb: >> >> $ gdb gbx <- start gdb from the command line >> set args -p <- set program arguments to disable preloading >> break TRACE_init <- set our initial breakpoint >> run <- execute gbx. >> (gdb stops at TRACE_init, and you get a gdb prompt.) >>>>> !Here's where you can set your breakpoints!<<< >> example: "break CTableView.cpp:45" should break on or near line 45 of > file >> CTableView.cpp. >> cont <- continue execution from where we entered the debugger. >> (gdb now stops at your breakpoints) >> > Salut, > > here my output, > > bash-2.05b$ cd /opt/gambas/gambas/app/gambas > > bash-2.05b$ gdb gbx > > GNU gdb 6.0 > Copyright 2003 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you > are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db > library "/lib/libthread_db.so.1". > > (gdb) set args -p > > (gdb) break TRACE_init > > Breakpoint 1 at 0x805008c: file gbx_trace.c, line 234. > > (gdb) run > Starting program: /usr/bin/gbx -p > warning: Unable to find dynamic linker breakpoint function. > GDB will be unable to debug shared library initializers > and track explicitly loaded dynamic code. Huh? That shouldn't happen. That would explain why my instructions don't work. What does "uname -a" report? That message means that /lib/ld-linux.so.2 is stripped, which prevents GDB from detecting runtime loaded modules, which is something that's needed to debug plugins. > > Breakpoint 1, TRACE_init () at gbx_trace.c:234 > 234 if (!EXEC_debug) > > (gdb) break /opt/gambas/gambas/src/lib/qt/ext/CTableView.cpp:1074 > No source file named /opt/gambas/gambas/src/lib/qt/ext/CTableView.cpp. GDB doesn't know about CTableView.cpp because it failed to hook the module load routine. (the warning message above) > > (gdb) break CTableView.cpp:1074 > No source file named CTableView.cpp. > Again, GDB doesn't know about the file because it couldn't detect the module was loaded. > I had a look to qt/ext and I'm saw it was compiled with -g > So it has to be something else, I ignore ? > > To you have an easier call, which work on your box. Just for testing ? > Post your "uname -a" result and I'll figure out how you can get the debugging version of ld installed. Then the instructions will work. > > Amicalment > Charlie > * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From daniel.campos at ...103... Mon Mar 28 22:34:27 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Mon, 28 Mar 2005 22:34:27 +0200 Subject: [Gambas-devel] Misc. win32 stuff In-Reply-To: References: Message-ID: <42486A53.8070702@...103...> > > > I upgraded my working copy to 1.9.4. Most of the things that were > working before still work OK. However, gb.gtk is now having trouble > placing windows so they appear on-screen. :( Could you be more precise? I do not understand the "on-screen" term... Regards, D. Campos From bdragon at ...185... Mon Mar 28 22:47:30 2005 From: bdragon at ...185... (Brandon Bergren) Date: Mon, 28 Mar 2005 14:47:30 -0600 (Central Standard Time) Subject: [Gambas-devel] Misc. win32 stuff In-Reply-To: <42486A53.8070702@...103...> References: <42486A53.8070702@...103...> Message-ID: On Mon, 28 Mar 2005, Daniel Campos wrote: > >> >> >> I upgraded my working copy to 1.9.4. Most of the things that were working >> before still work OK. However, gb.gtk is now having trouble placing windows >> so they appear on-screen. :( > > > Could you be more precise? I do not understand the "on-screen" term... > > Regards, > > D. Campos Yes. I can't find the window anywhere. I think it's putting itself somewhere outside of the viewport. If I force the window to maximize itself (by right clicking on the taskbar and choosing Maximize), it appears, in the general location it should be, and the size it would normally be. (This is from testing blights, btw.) > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From na2492 at ...16... Mon Mar 28 22:53:12 2005 From: na2492 at ...16... (Charlie Reinl) Date: Mon, 28 Mar 2005 22:53:12 00200 Subject: [Gambas-devel] Debugging gambas-source-code Message-ID: <42486eb8.14fe.0@...16...> > > >On Mon, 28 Mar 2005, Charlie Reinl wrote: > >>>>> Thanks. >>>>> >>>>> But I think that gbx -p does that, so I will look if I pass the >>>>> args in a right way. >>>> >>>> >>>> The arg was set right and the modules are NOT loaded, >>>> I can debug it in gbx, >>>> but when gbx has done his job, the thread says 'runnig' but shows no >> more >>>> >>>> loaded part. >>>> >>>> Anything to do, to load that, or ??? >>>> >>> It's a step by step list. >>> >>> Here's a clarified version, using command line gdb: >>> >>> $ gdb gbx <- start gdb from the command line >>> set args -p <- set program arguments to disable preloading >>> break TRACE_init <- set our initial breakpoint >>> run <- execute gbx. >>> (gdb stops at TRACE_init, and you get a gdb prompt.) >>>>>> !Here's where you can set your breakpoints!<<< >>> example: "break CTableView.cpp:45" should break on or near line 45 of >> file >>> CTableView.cpp. >>> cont <- continue execution from where we entered the debugger. >>> (gdb now stops at your breakpoints) >>> >> Salut, >> >> here my output, >> >> bash-2.05b$ cd /opt/gambas/gambas/app/gambas >> >> bash-2.05b$ gdb gbx >> >> GNU gdb 6.0 >> Copyright 2003 Free Software Foundation, Inc. >> GDB is free software, covered by the GNU General Public License, and you >> are >> welcome to change it and/or distribute copies of it under certain >> conditions. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for >> details. >> This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db >> library "/lib/libthread_db.so.1". >> >> (gdb) set args -p >> >> (gdb) break TRACE_init >> >> Breakpoint 1 at 0x805008c: file gbx_trace.c, line 234. >> >> (gdb) run >> Starting program: /usr/bin/gbx -p >> warning: Unable to find dynamic linker breakpoint function. >> GDB will be unable to debug shared library initializers >> and track explicitly loaded dynamic code. > >Huh? > >That shouldn't happen. That would explain why my instructions don't >work. > >What does "uname -a" report? > >That message means that /lib/ld-linux.so.2 is stripped, which prevents GDB >from detecting runtime loaded modules, which is something that's needed to >debug plugins. > > >> >> Breakpoint 1, TRACE_init () at gbx_trace.c:234 >> 234 if (!EXEC_debug) >> >> (gdb) break /opt/gambas/gambas/src/lib/qt/ext/CTableView.cpp:1074 >> No source file named /opt/gambas/gambas/src/lib/qt/ext/CTableView.cpp. > >GDB doesn't know about CTableView.cpp because it failed to hook the >module load routine. (the warning message above) > >> >> (gdb) break CTableView.cpp:1074 >> No source file named CTableView.cpp. >> > >Again, GDB doesn't know about the file because it couldn't detect the >module was loaded. > >> I had a look to qt/ext and I'm saw it was compiled with -g >> So it has to be something else, I ignore ? >> >> To you have an easier call, which work on your box. Just for testing ? >> >Post your "uname -a" result and I'll figure out how you can get the >debugging version of ld installed. Then the instructions will work. > Linux gentoo01 2.6.8-gentoo-r3 #1 SMP Sun Feb 13 21:57:11 CET 2005 i686 AMD Athlon(tm) MP AuthenticAMD GNU/Linux > and here more about my box Using: ?- gambas-1.0.4 ?(downloaded from the gambas-shrine) ?- X Window System Version 6.8.2 Release Date: 9 February 2005 ? X Protocol Version 11, Revision 0, Release 6.8.2 ? Build Operating System: Linux 2.6.8-gentoo-r3 i686 [ELF] ? Current Operating System: Linux gentoo01 2.6.8-gentoo-r3 #1 SMP ? ?Sun Feb 13 21:57:11 CET 2005 i686 - gentoo 1.4 (last Updated 27.03.2005) on Gentoo Base System version 1.4.16 - Qt: 3.3.3 ?- KDE: 3.3.1 ?- gcc (GCC) 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, pie-8.7.6) ?- mysql ?Ver 12.22 Distrib 4.0.22, for pc-linux-gnu (i686) ?- psql (PostgreSQL) 7.4.6 ?- sqlite 2.8.15 ?- GNU Make 3.80>> >> Amicalment >> Charlie >> * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * >> >> >> ------------------------------------------------------- >> SF email is sponsored by - The IT Product Guide >> Read honest & candid reviews on hundreds of IT Products from real users. >> Discover which products truly live up to the hype. Start reading now. >> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel > > >------------------------------------------------------- >SF email is sponsored by - The IT Product Guide >Read honest & candid reviews on hundreds of IT Products from real users. >Discover which products truly live up to the hype. Start reading now. >http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >_______________________________________________ >Gambas-devel mailing list >Gambas-devel at lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/gambas-devel > > * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * From lordheavy at ...141... Mon Mar 28 23:10:16 2005 From: lordheavy at ...141... (Laurent Carlier) Date: Mon, 28 Mar 2005 22:10:16 +0100 Subject: [Gambas-devel] Debugging gambas-source-code In-Reply-To: <42486eb8.14fe.0@...16...> References: <42486eb8.14fe.0@...16...> Message-ID: <200503282310.17674.lordheavy@...141...> Le Mardi 29 Mars 2005 00:53, Charlie Reinl a ?crit?: > > Linux gentoo01 2.6.8-gentoo-r3 #1 SMP Sun Feb 13 21:57:11 CET 2005 i686 > AMD Athlon(tm) MP AuthenticAMD GNU/Linux > > and here more about my box > > Using: > ?- gambas-1.0.4 ?(downloaded from the gambas-shrine) > ?- X Window System Version 6.8.2 Release Date: 9 February 2005 > ? X Protocol Version 11, Revision 0, Release 6.8.2 > ? Build Operating System: Linux 2.6.8-gentoo-r3 i686 [ELF] > ? Current Operating System: Linux gentoo01 2.6.8-gentoo-r3 #1 SMP > ? ?Sun Feb 13 21:57:11 CET 2005 i686 > - gentoo 1.4 (last Updated 27.03.2005) on Gentoo Base System version > 1.4.16 > - Qt: 3.3.3 > ?- KDE: 3.3.1 > ?- gcc (GCC) 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, > pie-8.7.6) > ?- mysql ?Ver 12.22 Distrib 4.0.22, for pc-linux-gnu (i686) > ?- psql (PostgreSQL) 7.4.6 > ?- sqlite 2.8.15 > ?- GNU Make 3.80>> > There was/(is ?) a bug in gentoo where glibc is stripped and it doesn't. Try to reemerge with this : FEATURES="nostrip" emerge glibc -- Laurent Carlier From lordheavy at ...141... Mon Mar 28 23:12:29 2005 From: lordheavy at ...141... (Laurent Carlier) Date: Mon, 28 Mar 2005 22:12:29 +0100 Subject: [Gambas-devel] Debugging gambas-source-code In-Reply-To: <42486eb8.14fe.0@...16...> References: <42486eb8.14fe.0@...16...> Message-ID: <200503282312.29724.lordheavy@...141...> http://bugs.gentoo.org/show_bug.cgi?id=52100 -- Laurent Carlier From bdragon at ...185... Mon Mar 28 23:22:58 2005 From: bdragon at ...185... (Brandon Bergren) Date: Mon, 28 Mar 2005 15:22:58 -0600 (Central Standard Time) Subject: [Gambas-devel] Debugging gambas-source-code In-Reply-To: <42486eb8.14fe.0@...16...> References: <42486eb8.14fe.0@...16...> Message-ID: > and here more about my box > > Using: > ?- gambas-1.0.4 ?(downloaded from the gambas-shrine) > ?- X Window System Version 6.8.2 Release Date: 9 February 2005 > ? X Protocol Version 11, Revision 0, Release 6.8.2 > ? Build Operating System: Linux 2.6.8-gentoo-r3 i686 [ELF] > ? Current Operating System: Linux gentoo01 2.6.8-gentoo-r3 #1 SMP > ? ?Sun Feb 13 21:57:11 CET 2005 i686 > - gentoo 1.4 (last Updated 27.03.2005) on Gentoo Base System version > 1.4.16 > - Qt: 3.3.3 > ?- KDE: 3.3.1 > ?- gcc (GCC) 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, > pie-8.7.6) I see. Gentoo hardened, right? Seems to be a known issue. http://bugs.gentoo.org/show_bug.cgi?id=52100 The temporary solution appears to be re-emerging glibc with feature "nostrip" added to your make.conf. Oh, another thing. If you use GDB 6.1 or later, you can set breakpoints to functions not resolved yet. That means you wouldn't need to use the instructions I wrote. Just do "break blabla.cpp:222" and it will ask you Make breakpoint pending on future shared library load? (y or [n]) Tell it "y" and it will retry setting the breakpoint when a new module is loaded into the process automatically. --Brandon > ?- mysql ?Ver 12.22 Distrib 4.0.22, for pc-linux-gnu (i686) > ?- psql (PostgreSQL) 7.4.6 > ?- sqlite 2.8.15 > ?- GNU Make 3.80>> From na2492 at ...16... Mon Mar 28 23:28:14 2005 From: na2492 at ...16... (Charlie Reinl) Date: Mon, 28 Mar 2005 23:28:14 00200 Subject: [Gambas-devel] Debugging gambas-source-code Message-ID: <424876ee.2b81.0@...16...> >Le Mardi 29 Mars 2005 00:53, Charlie Reinl a ?crit?: >> >> Linux gentoo01 2.6.8-gentoo-r3 #1 SMP Sun Feb 13 21:57:11 CET 2005 i686 >> AMD Athlon(tm) MP AuthenticAMD GNU/Linux >> >> and here more about my box >> >> Using: >> ?- gambas-1.0.4 ?(downloaded from the gambas-shrine) >> ?- X Window System Version 6.8.2 Release Date: 9 February 2005 >> ? X Protocol Version 11, Revision 0, Release 6.8.2 >> ? Build Operating System: Linux 2.6.8-gentoo-r3 i686 [ELF] >> ? Current Operating System: Linux gentoo01 2.6.8-gentoo-r3 #1 SMP >> ? ?Sun Feb 13 21:57:11 CET 2005 i686 >> - gentoo 1.4 (last Updated 27.03.2005) on Gentoo Base System version >> 1.4.16 >> - Qt: 3.3.3 >> ?- KDE: 3.3.1 >> ?- gcc (GCC) 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, >> pie-8.7.6) >> ?- mysql ?Ver 12.22 Distrib 4.0.22, for pc-linux-gnu (i686) >> ?- psql (PostgreSQL) 7.4.6 >> ?- sqlite 2.8.15 >> ?- GNU Make 3.80>> >> > >There was/(is ?) a bug in gentoo where glibc is stripped and it doesn't. >Try to reemerge with this : >FEATURES="nostrip" emerge glibc > >-- > >Laurent Carlier > Thanks to you both, have to get first a new glibc then I tell you . Amicalment Charlie * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * From bdragon at ...185... Mon Mar 28 23:39:20 2005 From: bdragon at ...185... (Brandon Bergren) Date: Mon, 28 Mar 2005 15:39:20 -0600 (Central Standard Time) Subject: [Gambas-devel] Misc. win32 stuff In-Reply-To: References: <42486A53.8070702@...103...> Message-ID: On Mon, 28 Mar 2005, Brandon Bergren wrote: > > > On Mon, 28 Mar 2005, Daniel Campos wrote: > >> >>> >>> >>> I upgraded my working copy to 1.9.4. Most of the things that were working >>> before still work OK. However, gb.gtk is now having trouble placing >>> windows so they appear on-screen. :( >> >> >> Could you be more precise? I do not understand the "on-screen" term... >> >> Regards, >> >> D. Campos > > Yes. > > I can't find the window anywhere. I think it's putting itself somewhere > outside of the viewport. If I force the window to maximize itself (by right > clicking on the taskbar and choosing Maximize), it appears, in the general > location it should be, and the size it would normally be. > (This is from testing blights, btw.) And I just figured it out. Instead of it being "not working", it's "working too well." I looked at blight's win1.form, and, lo and behold, I saw this. ---- { win1 Form Move(1110,80,480,47) Text = ("Blinkenlights") ---- Doh! Since my screen is 1024x768, of COURSE it's putting the window outside of my viewport. I changed the Move line to Move(10,80,480,47) and, sure enough, it appeared at 10,80. Could someone check all the examples to make sure they have sane location values? Thanks. --Brandon > >> >> >> >> ------------------------------------------------------- >> SF email is sponsored by - The IT Product Guide >> Read honest & candid reviews on hundreds of IT Products from real users. >> Discover which products truly live up to the hype. Start reading now. >> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From karl.reinl at ...16... Tue Mar 29 01:56:23 2005 From: karl.reinl at ...16... (Charlie) Date: Tue, 29 Mar 2005 01:56:23 +0200 Subject: [Gambas-devel] Debugging gambas-source-code References: <424876ee.2b81.0@...16...> Message-ID: <424899A7.3040502@...16...> Charlie Reinl schrieb: >>There was/(is ?) a bug in gentoo where glibc is stripped and it doesn't. >>Try to reemerge with this : >>FEATURES="nostrip" emerge glibc >> >>-- >> >>Laurent Carlier >> >> >> >Thanks to you both, > >have to get first a new glibc then I tell you . > >Amicalment >Charlie > > Salut Brandon, Laurent, no more warning: Unable to find dynamic linker breakpoint function. >> GDB will be unable to debug shared library initializers >> and track explicitly loaded dynamic code. now, will update to gdb 6.3 (takes a little time) and then going forward to debug under eclipse. What I saw till now, it is like known in other debuggers YSWYA (you see where you are) :o) Amicalment Charlie From gambas at ...1... Tue Mar 29 09:47:39 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 29 Mar 2005 09:47:39 +0200 Subject: [Gambas-devel] gambas-1.9.4 In-Reply-To: <09c301c530b4$4b215790$c6f0fea9@...146...> References: <200503232239.56970.Karl.Reinl@...16...> <200503241405.01207.gambas@...1...> <09c301c530b4$4b215790$c6f0fea9@...146...> Message-ID: <200503290947.39703.gambas@...1...> On Thursday 24 March 2005 21:58, Frank Berg wrote: > > Here is a patch that let you disable components correctly: put these > > files in > > the root directory, and type ./reconf-all. Then ./configure -C > > --disable-XXX... > > hi, > > there is no "reconf" in the packet file > in the patch there is only an "reconf-all.dat", but nothing to execute > > there is no effect to compile w w/o patch and --disable-xxx > same errors as before the patch > > look at the output.log i send before > > frank > Mmm. The patch does not work. I will release a 1.9.5 as soon as possible, where disabling component works. -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Tue Mar 29 09:49:58 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 29 Mar 2005 09:49:58 +0200 Subject: [Gambas-devel] Date Value In-Reply-To: <25318085.1111759830003.JavaMail.www@...231...> References: <25318085.1111759830003.JavaMail.www@...231...> Message-ID: <200503290949.58477.gambas@...1...> On Friday 25 March 2005 15:10, nigel at ...2... wrote: > Benoit, > > I'm looking at adding more date related functions to gambas, for example a > julian function to return julian dates from gregorian. Looking at the code > in gbx_date.c I am uncertain as to whether value->_date.date (ndays) is the > julian value. (It is a slightly different value from the values calculated > using the formula that I am use to). e.g. The gambas date value for > 01/01/2005 is 2485476 whilst the Julian is 2453372. > > Is the value intended to be Julian or is the value only specific to gambas? > > Kind regards > > Nigel I took some code from the glib for managing dates, but I patched it because I didn't get the result I wanted - Maybe there were bugs, or maybe I was wrong. The Gambas date value has no meaning in absolute. It is just days from a arbitrary day in the past. The value was not intended to be Julian, but it could be without any problems - except for people that stored this value directly. Regards, -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Tue Mar 29 10:16:09 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 29 Mar 2005 10:16:09 +0200 Subject: [Gambas-devel] Summary in the end of ./configure ? In-Reply-To: <42431090.106@...254...> References: <42431090.106@...254...> Message-ID: <200503291016.09153.gambas@...1...> On Thursday 24 March 2005 20:10, Henrik Pihl wrote: > Mplayer has one, so you could determine, what components were > included / not included, instead of scrolling up reviewing the log. > Shouldn't be hard to implement? :) > Good idea :-) -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Tue Mar 29 10:18:58 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 29 Mar 2005 10:18:58 +0200 Subject: [Gambas-devel] Gambas component creation / Error In-Reply-To: <42459E5B.4050306@...103...> References: <42459E5B.4050306@...103...> Message-ID: <200503291018.58246.gambas@...1...> On Saturday 26 March 2005 18:39, Daniel Campos wrote: > Hi Beno?t: Hi, > > I'm rewritting the gb.xml.rpc class in Gambas, by now I have a functional > RPC standalone server, I tested it as a program, and then I tried to > convert > it to a gambas component. I copied the list,component and info files > ,and I copied > the executable to the library path as gb.xml.rpc.gambas . > > When I try to insert this component in a program, I always find the > error "End of File" > all the time at "CComponent.Load" while opening the project and writting > any code. > > I can see only two of the five classes exported, too. Please send me the component project. > > However the component works and I can use it in the test program... > > By other side, there's another bug in the IDE: > > CComponent.class (line 205): > > > IF Key = "gb.gtk" THEN > FOR EACH sClass IN ["Control", "Form"] > > > Should be: > > > IF Key = "gb.gtk" THEN > FOR EACH sClass IN ["Control", "Form","Menu"] > Sorry, I forgot to remove the patch that let older version of gtk+ component work. > > Regards, > > D. Campos Regards, -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Tue Mar 29 10:22:16 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 29 Mar 2005 10:22:16 +0200 Subject: [Gambas-devel] Debugging gambas-source-code In-Reply-To: <200503262103.37048.Karl.Reinl@...16...> References: <200503262103.37048.Karl.Reinl@...16...> Message-ID: <200503291022.16530.gambas@...1...> On Saturday 26 March 2005 21:03, Charlie Reinl wrote: > Salut Benoit, > > actually I succeted to work with Eclipse 3.0 on the gambas-sourccode. > I made it to an eclipse-project and can build it form there, without any > change made to the original packet from the shrine. > > Today I also succeted to custemize the eclipse - debugger (which use gdb) > to debug gambas. > > But I olny can debug binaries from the project, which are gba, gbc, gbi and > gbx. > > Not knowing gdb well, my question is, is it possible to debug components ? Yes. How could I debug them otherwise ? > And if, what have I to do to have access ? Nothing special on gdb. On Eclipse, I don't know. > > If I set a breakpoint in CTableView.cpp gdb > say > 'No source file named CTableView.cpp. > warning: Unable to find dynamic linker breakpoint function. > GDB will be unable to debug shared library initializers > and track explicitly loaded dynamic code.' gdb should be able to set dynamic breakpoints. If it does not work, just put a breakpoint in gbx.c at the line where main is called (...HOOK(main)...), and there put all your needed breakpoints, as all dynamic libraries will be loaded. Don't forget to always run gbx2 with the '-p' option. Regards, -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Tue Mar 29 10:26:57 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 29 Mar 2005 10:26:57 +0200 Subject: [Gambas-devel] ODBC In-Reply-To: <20050325150509.1409.qmail@...272...> References: <20050325150509.1409.qmail@...272...> Message-ID: <200503291026.58320.gambas@...1...> On Friday 25 March 2005 16:05, Andrea Bortolan wrote: > Beno?t, > I hope this version should compile without bad > warnings, the remainings warnings are about functions > still in implementation stage. > Sorry for my bad coding stile.... > > Have a nice day. > > Thanks. -- Benoit Minisini mailto:gambas at ...1... From daniel.campos at ...103... Tue Mar 29 12:09:45 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Tue, 29 Mar 2005 12:09:45 +0200 Subject: [Gambas-devel] Gambas component creation / Error In-Reply-To: <200503291018.58246.gambas@...1...> References: <42459E5B.4050306@...103...> <200503291018.58246.gambas@...1...> Message-ID: <42492969.5010800@...103...> > >Please send me the component project. > > Sorry! I forgot to attach the project in the previous message... Here is... Regards, D, Campos > > > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: xmlrpc-0.0.5.tar.gz Type: application/x-gzip Size: 17245 bytes Desc: not available URL: From gambas at ...1... Tue Mar 29 13:00:27 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 29 Mar 2005 13:00:27 +0200 Subject: [Gambas-devel] Gambas component creation / Error In-Reply-To: <42492969.5010800@...103...> References: <42459E5B.4050306@...103...> <200503291018.58246.gambas@...1...> <42492969.5010800@...103...> Message-ID: <200503291300.28065.gambas@...1...> On Tuesday 29 March 2005 12:09, Daniel Campos wrote: > >Please send me the component project. > > Sorry! I forgot to attach the project in the previous message... > > Here is... > > Regards, > > D, Campos Can you send me the .component file ? -- Benoit Minisini mailto:gambas at ...1... From na2492 at ...16... Tue Mar 29 13:47:38 2005 From: na2492 at ...16... (Charlie Reinl) Date: Tue, 29 Mar 2005 13:47:38 00200 Subject: [Gambas-devel] Debugging gambas-source-code Message-ID: <4249405a.6e43.0@...16...> >On Saturday 26 March 2005 21:03, Charlie Reinl wrote: >> Salut Benoit, >> >> actually I succeted to work with Eclipse 3.0 on the gambas-sourccode. >> I made it to an eclipse-project and can build it form there, without any >> change made to the original packet from the shrine. >> >> Today I also succeted to custemize the eclipse - debugger (which use gdb) >> to debug gambas. >> >> But I olny can debug binaries from the project, which are gba, gbc, gbi and >> gbx. >> >> Not knowing gdb well, my question is, is it possible to debug components ? > >Yes. How could I debug them otherwise ? > >> And if, what have I to do to have access ? > >Nothing special on gdb. On Eclipse, I don't know. > >> >> If I set a breakpoint in CTableView.cpp gdb >> say >> 'No source file named CTableView.cpp. >> warning: Unable to find dynamic linker breakpoint function. >> GDB will be unable to debug shared library initializers >> and track explicitly loaded dynamic code.' > >gdb should be able to set dynamic breakpoints. If it does not work, just put a >breakpoint in gbx.c at the line where main is called (...HOOK(main)...), and >there put all your needed breakpoints, as all dynamic libraries will be >loaded. Don't forget to always run gbx2 with the '-p' option. Thanks, we worked it out (see mails) it is a bug in gentoos glic >Regards, > >-- >Benoit Minisini >mailto:gambas at ...1... > > >------------------------------------------------------- >SF email is sponsored by - The IT Product Guide >Read honest & candid reviews on hundreds of IT Products from real users. >Discover which products truly live up to the hype. Start reading now. >http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >_______________________________________________ >Gambas-devel mailing list >Gambas-devel at lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/gambas-devel > > * Gesendet mit / Sent by: FEN-Webmail * http://www.fen-net.de * From gambas at ...1... Tue Mar 29 14:05:14 2005 From: gambas at ...1... (Benoit Minisini) Date: Tue, 29 Mar 2005 14:05:14 +0200 Subject: [Gambas-devel] Gambas component creation / Error In-Reply-To: <42492969.5010800@...103...> References: <42459E5B.4050306@...103...> <200503291018.58246.gambas@...1...> <42492969.5010800@...103...> Message-ID: <200503291405.14904.gambas@...1...> On Tuesday 29 March 2005 12:09, Daniel Campos wrote: > >Please send me the component project. > > Sorry! I forgot to attach the project in the previous message... > > Here is... > > Regards, > > D, Campos This was a bug in the compiler that generated bad .info files in some cases. Here is a patch for the compiler. Mmm... It seems I should enforce a naming convention for public constants :-) -- Benoit Minisini mailto:gambas at ...1... -------------- next part -------------- A non-text attachment was scrubbed... Name: gbc_dump.c Type: text/x-csrc Size: 8351 bytes Desc: not available URL: From gambas at ...1... Wed Mar 30 15:27:01 2005 From: gambas at ...1... (Benoit Minisini) Date: Wed, 30 Mar 2005 15:27:01 +0200 Subject: [Gambas-devel] Misc. win32 stuff In-Reply-To: References: Message-ID: <200503301527.01696.gambas@...1...> On Monday 28 March 2005 21:59, Brandon Bergren wrote: > Hello again. > Here's a newsletter-style progress report. > > Item 1: GTK plug/socket for win32 in gtk+ HEAD soon? > > Tor Lillqvist is working on a Windows Plug/Socket implementation. > More information can be found here: > http://bugzilla.gnome.org/show_bug.cgi?id=58541 > > I'd like this bug to get more publicity, because gb.gtk uses some > plug/socket stuff. > > Getting this in GTK would mean the only remaining part of gb.gtk not > working on Windows would be the trayicon class. (and that only requires a > bit of elbow grease to get working.) > > Item 2: Minor nit in config.h > > Benoit, could you force DONT_USE_LTDL to be not defined when building for > OS_CYGWIN? I have to manually comment out the line in config.h every time > I reconfigure, and it's getting annoying. Done. -- Benoit Minisini mailto:gambas at ...1... From gambas at ...1... Thu Mar 31 16:23:52 2005 From: gambas at ...1... (Benoit Minisini) Date: Thu, 31 Mar 2005 16:23:52 +0200 Subject: [Gambas-devel] Release of gambas 1.9.5 Message-ID: <200503311623.53179.gambas@...1...> Hi, Here is gambas 1.9.5. It should fix the configuration problems of gambas 1.9.4. Components can now be disabled one by one from the configure script. Written components in Gambas has been fixed too. Moreover, array classes can be multi-dimensional now! Try to make components in gambas, guys :-) Regards, -- Benoit Minisini mailto:gambas at ...1... From sourceforge-raindog2 at ...19... Thu Mar 31 17:22:29 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Thu, 31 Mar 2005 10:22:29 -0500 Subject: [Gambas-devel] Release of gambas 1.9.5 In-Reply-To: <200503311623.53179.gambas@...1...> References: <200503311623.53179.gambas@...1...> Message-ID: <200503311022.29982.sourceforge-raindog2@...19...> On Thursday 31 March 2005 09:23, Benoit Minisini wrote: > Here is gambas 1.9.5. It should fix the configuration problems of > gambas 1.9.4. Thanks, maybe I'll even be able to package this one ;) > Try to make components in gambas, guys :-) I'm chomping at the bit.... Rob From lordheavy at ...141... Thu Mar 31 20:07:59 2005 From: lordheavy at ...141... (Laurent Carlier) Date: Thu, 31 Mar 2005 20:07:59 +0200 Subject: [Gambas-devel] Release of gambas 1.9.5 In-Reply-To: <200503311623.53179.gambas@...1...> References: <200503311623.53179.gambas@...1...> Message-ID: <200503312007.59835.lordheavy@...141...> Le Jeudi 31 Mars 2005 16:23, Benoit Minisini a ?crit?: > Hi, > > Here is gambas 1.9.5. It should fix the configuration problems of gambas > 1.9.4. > > Components can now be disabled one by one from the configure script. > Written components in Gambas has been fixed too. > > Moreover, array classes can be multi-dimensional now! > > Try to make components in gambas, guys :-) > > Regards, There's a small prob with dates on the web site on the Changelog page : 1.9.5 : 31 Feb 2005 1.9.4 : 23 Feb 2005 Need a Patch ? ;p Regards, -- Laurent Carlier From sourceforge-raindog2 at ...19... Thu Mar 31 21:53:17 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Thu, 31 Mar 2005 14:53:17 -0500 Subject: [Gambas-devel] 1.9.5 still not packagable Message-ID: <200503311453.17115.sourceforge-raindog2@...19...> While the --disable stuff seems to be getting passed through to the configure scripts in the subdirectories, the --prefix type stuff isn't, making gambas 1.9.5 impossible to package: + make prefix=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr exec_prefix=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr bindir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr/bin sbindir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr/sbin sysconfdir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/etc datadir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr/share includedir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr/include libdir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr/lib libexecdir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr/lib localstatedir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/var/lib sharedstatedir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr/com mandir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr/share/man infodir=/home/rob/RPM/tmp/gambas2-1.9.5-1rk-buildroot/usr/share/info install Making install in gb.compress.bzlib2 make[1]: Entering directory `/home/rob/RPM/BUILD/gambas2-1.9.5/gb.compress.bzlib2' Making install in src make[2]: Entering directory `/home/rob/RPM/BUILD/gambas2-1.9.5/gb.compress.bzlib2/src' make[3]: Entering directory `/home/rob/RPM/BUILD/gambas2-1.9.5/gb.compress.bzlib2/src' make[3]: Nothing to be done for `install-exec-am'. test -z "/usr/lib/gambas2" || mkdir -p -- . "/usr/lib/gambas2" /bin/sh ../libtool --mode=install /usr/bin/install -c 'gb.compress.bzlib2.la' '/usr/lib/gambas2/gb.compress.bzlib2.la' /usr/bin/install -c .libs/gb.compress.bzlib2.so.0.0.0 /usr/lib/gambas2/gb.compress.bzlib2.so.0.0.0 /usr/bin/install: cannot create regular file `/usr/lib/gambas2/gb.compress.bzlib2.so.0.0.0': Permission denied I didn't type the above make command by hand, that's the standard RPM macro "%makeinstall" which I've been using in my Gambas spec files since about 0.60. Rob From karl.reinl at ...16... Thu Mar 31 22:45:08 2005 From: karl.reinl at ...16... (Charlie) Date: Thu, 31 Mar 2005 22:45:08 +0200 Subject: [Gambas-devel] Debugging gambas-source-code References: <200503262103.37048.Karl.Reinl@...16...> <200503291022.16530.gambas@...1...> Message-ID: <424C6154.4090304@...16...> Benoit Minisini schrieb: >gdb should be able to set dynamic breakpoints. If it does not work, just put a >breakpoint in gbx.c at the line where main is called (...HOOK(main)...), and >there put all your needed breakpoints, as all dynamic libraries will be >loaded. Don't forget to always run gbx2 with the '-p' option. > >Regards > > Salut , no realy news from that. After solving the glibc problems on my gentoo box, it works fine, with all the help from you, if I call gdb on a shell. But for using the same way in 'eclipse' it failes, never hat a break a the set breakpoit in CTableView.cpp. But searching is not finished, because I want it. to next time Amicalment Charlie From Karl.Reinl at ...16... Thu Mar 31 23:04:04 2005 From: Karl.Reinl at ...16... (Charlie Reinl) Date: Thu, 31 Mar 2005 23:04:04 +0200 Subject: [Gambas-devel] our net is slow today Message-ID: <200503312304.04441.Karl.Reinl@...16...> Salut, today I'v got mails from today, before some mails from yesterday came in. Amicalment Charlie From sourceforge-raindog2 at ...19... Thu Mar 31 23:31:35 2005 From: sourceforge-raindog2 at ...19... (Rob) Date: Thu, 31 Mar 2005 16:31:35 -0500 Subject: [Gambas-devel] 1.9.5 still not packagable In-Reply-To: <200503311453.17115.sourceforge-raindog2@...19...> References: <200503311453.17115.sourceforge-raindog2@...19...> Message-ID: <200503311631.35404.sourceforge-raindog2@...19...> On Thursday 31 March 2005 14:53, Rob wrote: > make[3]: Entering directory > `/home/rob/RPM/BUILD/gambas2-1.9.5/gb.compress.bzlib2/src' > make[3]: Nothing to be done for `install-exec-am'. > test -z "/usr/lib/gambas2" || mkdir -p -- . "/usr/lib/gambas2" > /bin/sh ../libtool --mode=install /usr/bin/install -c > 'gb.compress.bzlib2.la' '/usr/lib/gambas2/gb.compress.bzlib2.la' > /usr/bin/install -c .libs/gb.compress.bzlib2.so.0.0.0 > /usr/lib/gambas2/gb.compress.bzlib2.so.0.0.0 > /usr/bin/install: cannot create regular file > `/usr/lib/gambas2/gb.compress.bzlib2.so.0.0.0': Permission denied After further review, it turns out that manually changing to the above directory and manually issuing that big long make command still generates the same error, so it's not that the prefixes aren't getting passed to the makefile in that subdirectory, it's that the makefile in that subdirectory appears to ignore all the prefix stuff somehow. Being a total idiot when it comes to automake, I have no idea how to resolve this. Rob From daniel.campos at ...103... Thu Mar 31 23:47:51 2005 From: daniel.campos at ...103... (Daniel Campos) Date: Thu, 31 Mar 2005 23:47:51 +0200 Subject: [Gambas-devel] Release of gambas 1.9.5 In-Reply-To: <200503311623.53179.gambas@...1...> References: <200503311623.53179.gambas@...1...> Message-ID: <424C7007.3030609@...103...> Benoit Minisini escribi?: > >Try to make components in gambas, guys :-) > > OK, now gb.xml.rpc made with gambas works... almost OK. I have still a little problem, I have to add gb.xml and gb.net.curl as dependencies, however, using this .component file: [Component] Key=gb.xml.rpc Name=XML-RPC client based on libxml and libcurl Name[es]=Cliente XML-RPC basado en libxml y libcurl Name[pl]=Klient XML-RPC bazuj?cy na libxml i libcurl Name[fr]=Client XML-RPC bas? sur libxml et libcurl Author=Daniel Campos Fern?ndez Require=gb.xml Require=gb.net.curl Alpha=1 No gb.xml nor gb.net.curl component becomes marked as a dependency in the project properties form... Regards, D. Campos >Regards, > > >