[Mono-devel-list] New build system in CVS

Pablo Baena pbaena at uol.com.ar
Tue Jul 15 14:01:39 EDT 2003

It would be nice if the Makefile could turn the prefix argument
mandatory, or making it /usr/local by default.

I regularly build from CVS, and today I found out that I installed
accidentally on /usr/lib.


On Mon, 2003-07-14 at 23:20, Peter Williams wrote:
> On Mon, 2003-07-14 at 10:07, Varga Zoltan wrote:
> >                                                     Hi,
> > 
> > "make clean all" seems to be broken in class/corlib:
> Hm, I get the same error as you, but "make clean ; make all" works. I'm
> not sure what's going on there, I would think that make processes them
> in the same way.
> This leads to my disclaimer / offer:
> 	* I probably broke lots of stuff. If you lost a beloved target or
> something isn't working right, email me and I'll fix it. Most developers
> shouldn't have to worry about Makefiles, so I don't want to waste
> everyone's time with weird new problems. I'll try and hang out in #mono
> (peterw) tonight, so you can talk to me there if something is wacky.
> Anyway, here are some of the goodies in the new build system:
> 	* Unified build system for Windows and Linux. Windows is still fairly
> untested, but "should work." Unfortunately I don't have a Windows
> machine to test on, but Gonzalo can get corlib to build I think and
> that's about as complicated as it gets.
> 	* Profile support. 'make PROFILE=profilename' or 'export
> PROFILE=profilename ; make' will work. Profiles are defined in
> build/profiles/profilename.make ; right now there isn't too much going
> on. The 'bootstrap' profile will build the way makefile.gnu did on
> Linux, by setting MONO_PATH and using mcs/mcs.exe; the default profile
> will build against the existing system libraries and compile with 'mcs',
> which should reduce a lot of 'corlib out of sync' warnings.
> 	* Important variables are shared among makefiles now; you can edit
> build/config.make (see build/config-default.make for a template) and
> give global settings, or just have a much saner time of writing new
> makefiles.
> 	* Response files, stamps, and other build trivia now all land in
> build/deps/, making the library build directories cleaner.
> 	* Test libraries now live in class/Library/Library_test.dll, not
> class/Library/Test. 'make test' will build the test DLL, 'make run-test'
> will actually run the nunit tests. Set the variable TEST_HARNESS to run
> with a program other than nunit-console (for example, nunit-gtk).
> 	* Standardized recursive targets: all, clean, install, test, run-test.
> Read build/README.makefiles for definitions of what they should do
> 	* (Relatively) sane 'make dist' target; 'make distcheck' support; cute
> 'make monocharge' and 'make monocharge-lite' targets. They're made
> possible because 'make install' now supports DESTDIR a la automake,
> which I'm sure someone cares about.
> 	That's all I can think of at the moment. If there are any problems,
> please tell me; I'm more than willing to fix them.
> 	Share and enjoy,
> 		Peter
Whip it, baby. Whip it right. Whip it, baby. Whip it all night!

More information about the Mono-devel-list mailing list