From: Francesco M. <f18...@ya...> - 2004-10-02 16:37:26
|
Hi, since Bakefile is now the official build system of wxWidgets, I was wondering: it should be possible to put in the wxCode folder a dir like "build" containing some bakefiles common to all the components, making easier for the programmer both the packaging & the cross-compilation. It could be a easy to make more uniform also the compilation process of those programmers who want to try out several components. With some tricks, we could add the "dist", "docs", "tarball" targets or what else to *all* components (with a very small effort for the mantainer of each component...). What do you think about it ? Thanks, FM |
From: Mike W. <mik...@nt...> - 2004-10-02 22:00:13
|
On Saturday 02 October 2004 5:36 pm, Francesco Montorsi wrote: > since Bakefile is now the official build system of wxWidgets, I > was wondering: > it should be possible to put in the wxCode folder a dir like "build" > containing some > bakefiles common to all the components, making easier for the > programmer both the packaging & the cross-compilation. > > What do you think about it ? Yes I think the same. Each component could have a small bakefile which includes a central wxCode bakefile which does all the work. Rather like in wxWidgets each contrib has a small bakefile which includes wxWidget's 'build/bakefiles/common_contrib.bkl'. Regards, Mike |
From: Otto W. <ott...@or...> - 2004-10-03 08:02:53
|
Francesco Montorsi wrote: > > since Bakefile is now the official build system of wxWidgets, I was > wondering: First of all each component is free to choose its own build system. Second it's not easy possible to create a build system for all components since if one doesn't build it may stop the others from building. Of course you are free to create as system which can handle a changing set of components. Anyway it doesn't make much sense to create a build system for wxCode as long as it isn't supported by wxWidgets. Third I don't think Bakefile is needed for anything else except the _main_ wxWidgets libraries. The _only_ solution is to use wx-config all the time since wx-config contains _every_ build information on any system. BTW IMO even the main libraries could be built with wx-config without Bakefile not to speak of all the contribs, demos, samples, utilities, etc. Bakefile has its use for creating base make/project files for all the different platform but it shouldn't be used for more. Just look at the Makefile of treelisttest and compare it with the Makefile of wyoEditor. You can easily copy this Makefile and just exchange the source files and maybe the libraries. With the use of wx-config nothing else is needed while it works everywhere. O. Wyss -- See a huge pile of work at "http://wyodesktop.sourceforge.net/" |
From: Francesco M. <f18...@ya...> - 2004-10-03 15:14:25
|
Hi, > First of all each component is free to choose its own build system. I'm just proposing to put a bakefile in a folder like wxCode/build to give to the programmers of wxCode the *possibility* to use bakefile: it wouldn't be required, just an option to make "standardized" the compilation & packaging of a wxCode's component. Each programmer could decide to use its old build system (tipically a makefile) or bakefile or both. > Second it's not easy possible to create a build system for all > components since if one doesn't build it may stop the others from > building. well, I did not mean to create a super-makefile/bakefile which allows the compilation of all components with one command. I'm just proposing to give to all the components whose mantainers approve this build system the same targets in bakefile-generated makefiles: they could be - ALL: docs + samples + lib + tarball + others - LIB: creates a (small) library using the sources of the component (if it makes sense for the component to be packaged in a library) - TARBALL: creates a tar.gz archive containing the sources of the component, to provide 1) the release of the component, ready to be uploaded at SF.net 2) an easy-to-use system for the component's mantainer to provide the sources of its component to others. - DOCS: creates the documentation for the component, if it support some sort of doc-generation (like doxygen) - SAMPLES: builds all the samples of the component In this way, a programmer who wants to use a component can decide if he wants to use it as an external library (and thus compiling the component with the LIB target) or to integrate the component's sources in its project (downloading for example the tarball).... > Of course you are free to create as system which can handle a > changing set of components. Anyway it doesn't make much sense to create > a build system for wxCode as long as it isn't supported by wxWidgets. such a system could be easily integrated in the future in wxWidgets build system since bakefiles are quite flexible and they are used everywhere in wxWidgets. > Third I don't think Bakefile is needed for anything else except the > _main_ wxWidgets libraries. The _only_ solution is to use wx-config all > the time since wx-config contains _every_ build information on any > system. BTW IMO even the main libraries could be built with wx-config > without Bakefile not to speak of all the contribs, demos, samples, > utilities, etc. wx-config program is wonderful but it can be used only with those systems supporting autoconf: on win32 you cannot use wx-config (at least, not with all compilers !). if you see my components, you will see that in the BUILD folder, there are always two bakefiles: wxbase.bkl and wxscript/keybinder/.... wxbase.bkl is a bakefile I modified from the original version created by Ryan Norton and which I put at wxwiki: it allows the creation of perfectly working win32 makefiles and the use of autoconf on platform supporting it. Precisely, using wxbase.bkl you can produce "Makefile.in" files containing the following CXXFLAGS: MATHCORE_CXXFLAGS = $(__mathcore_PCH_INC) $(MCDEBUG_DEFINE) $(MCINCLUDE_PATHS) \ -I../../include `wx-config --cxxflags` -Wall $(CPPFLAGS) $(CXXFLAGS) as you see, bakefile allows without any problem the usage of "wxconfig" (with the compilers that support it) > Bakefile has its use for creating base make/project files for all the > different platform but it shouldn't be used for more. Just look at the > Makefile of treelisttest and compare it with the Makefile of wyoEditor. > You can easily copy this Makefile and just exchange the source files and > maybe the libraries. With the use of wx-config nothing else is needed > while it works everywhere. also on win32 ? As far as I know, only the mingw compiler (& cygwin suite) supports the use of wx-config on win32.... As you said, GCC makefiles can be easily re-used (in fact, my components are actually using bakefile only to generate win32 makefiles) and I often copy them just changing the source file lists, too. Anyway, hybrid solutions can be easily supported, too: the mantainer would be free to choose what he likes most. Let me know, Francesco Montorsi |
From: Otto W. <ott...@or...> - 2004-10-03 19:00:20
|
Francesco Montorsi wrote: > > > First of all each component is free to choose its own build system. > I'm just proposing to put a bakefile in a folder like wxCode/build to > give to the programmers of wxCode the *possibility* to use bakefile: I've given you access rights to wxCode/build. O. Wyss -- See a huge pile of work at "http://wyodesktop.sourceforge.net/" |
From: Francesco M. <f18...@ya...> - 2004-10-09 18:39:14
|
Hi, > I've given you access rights to wxCode/build. I just commmitted to the build folder everything is required to use bakefile with a component. I'm open to any critic and suggestion... All my components are now using those bakefiles; since I completed the wxCode bakefiles, it required me about 10 minutes to convert from old bakefiles & makefiles to the new wxCode bakefiles. The Readme I put in the build dir should help in this process everyone who wants to use it. anyway, I still have to check the (very important) autoconf target; I'll have linux access in short time. I'll then provide a default configure.ac file ready to be configured for the bakefiles of wxCode. Francesco Montorsi PS: should I update the complist.php file or someone is working to make it automatic ? |
From: Francesco M. <f18...@ya...> - 2004-10-24 10:07:29
|
Hi, > anyway, I still have to check the (very important) autoconf target; I'll > have linux > access in short time. > I'll then provide a default configure.ac file ready to be configured for > the bakefiles of wxCode. I found time to make the autoconf target work: I've added some new files to make the bakefilizing easier: the config.sub, config.guess and install.sh files, for example. I also created two simple scripts "regenall.sh" and "cleanall.sh" in the build folder of wxCode which can be used to regenerate the makefiles of all wxCode bakefile-based components or to clean out all intermediate/log/exe files before committing. For this last script, I created a new "cleanall" target in the generated makefiles. Hope this will be useful, Francesco Montorsi |