Ideas can also be borrowed from Gentoo Linux (pretty much like FreeBSD). Quote from their website: http://www.gentoo.org/main/en/about.xml : ------------------- Portage is the heart of Gentoo Linux, and performs many key functions. For one, Portage is the software distribution system for Gentoo Linux. To get the latest software for Gentoo Linux, you type one command: emerge sync. This command tells Portage to update your local "Portage tree" over the Internet. Your local Portage tree contains a complete collection of scripts that can be used by Portage to create and install the latest Gentoo packages. Currently, we have over 4000 packages in our Portage tree, with new ones being added all the time. Portage is also a package building and installation system. When you want to install a package, you type emerge packagename, at which point Portage automatically builds a custom version of the package to your exact specifications, optimizing it for your hardware and ensuring that the optional features in the the package that you want are enabled -- and those you don't want aren't. Portage also keeps your system up-to-date. Typing emerge -u world -- one command -- will ensure that all the packages that you want on your system are updated automatically. ------------------- Like FreeBSD, all contributions and updates are handled through CVS. On Tuesday 22 April 2003 17:24, Matthew Donadio wrote:
I think one way to look at this is to examine similar ideas for other systems that work well.
The FreeBSD ports tree is very successful in bringing in a diverse set of libraries and programs. Dependencies and builds are pretty much handled automagically through some (rather complicated) Makefiles. They have also provided a fairly nice web interface for browsing and searching the ports tree. Contributions and updates are handled through CVS. Conceivably, this could handle issues like building and installing libraries for each installed compiler, and eliminate the need to distribute binaries.
I think that building and including libraries has to be standardized across the different compilers. One big benefit of using unix is that the C suite is basically consistent across platforms.
Other random thoughts...
I think that in addition to the Report and Tutorial, a Best Practices document needs to be developed. This would outline the preferable naming conventions, indentation, make targets, and also recommend the use of tools like Haddock of HDoc for generating consistent documentation.
I am willing to use my DSP library as a guinea pig for any ideas (it is still a little immature, though), and to help out where I can.