With some help by Chris Waterson, I've managed to cobble together some files I think might actually compile. But I have no idea how to get them to compile. How do you build a component dll outside of mozilla? I understand from Chris's docs that I need to build a factory with a hook to the datasource CID, then call the datasource from the factory. I just don't have the documentation which would tell me what to change. Do I change the MODULE? What is the module? What does the library name do? What are the LCFLAGS? Anyway, the bug is that you have to know the build system as well as the code to actually build anything, and I'm not confident I know what I'm doing without docs. DEPTH=..\..\.. MODULE=rdf LIBRARY_NAME=rdfdatasource_s LCFLAGS=-DMOZ_BRPROF CPP_OBJS=\ .\$(OBJDIR)\nsFileSystemDataSource.obj \ .\$(OBJDIR)\nsFindDataSource.obj \ .\$(OBJDIR)\nsFTPDataSource.obj \ .\$(OBJDIR)\nsLocalStore.obj \ .\$(OBJDIR)\nsSearchDataSource.obj \ .\$(OBJDIR)\nsXULContentSink.obj \ $(NULL) # XXX Note the dependency on $(DEPTH)\rdf\base\src: we use rdfutil.h over # in this library: this'll go away once we formalize utilities into an # "real live" XPCOM interface. LINCS= -I$(DEPTH)\rdf\base\src \ -I$(DEPTH)\rdf\content\src \ $(NULL) include <$(DEPTH)\config\rules.mak> libs:: $(LIBRARY) $(MAKE_INSTALL) $(LIBRARY) $(DIST)\lib clobber:: rm -f $(DIST)\lib\$(LIBRARY_NAME).lib
MODULE refers to the name of the final dll, so MODULE=rdf -> rdf.dll LIBRARY_NAME refers to the name of a static library which optionally produced. LIBRARY_NAME=foo -> foo.lib LCFLAGS stands for 'local c-flags' that apply only to this makefile. On not having docs: we're accepting patches. Traditionally (and I don't say that it's a good tradition) there have been no docs or consistancy in the win32 build system, other than the occasional purge every three years. People just copy and paste and random stuff until it builds, then leaves it alone.
The summary was a bit harsh... i mean there is *some* documentation. I'll try getting this fixed before the M9 release crunch hits.
Obviously, i missed m9. I probably won't have time for a while to get to docs on ``how to write a windows makefile,'' but i think there should be some. So i'll leave this open, and assigned to me.
mass re-assign of all bugs where i was listed as the qa contact
Looks like this can be resolved fixed. The build system is moving to gmake.
bug cleanup - all leaf's bugzilla bugs should be assigned to email@example.com (not firstname.lastname@example.org), now and any future bugs created. this should be a one time change, apologies for the spam.
On second thought - it wouldn't hurt to write something like this for the gmake builds if it doesn't exist already.
updating summary, accepting.
Is this bug fixed with http://www.mozilla.org/build/build-system.html ?