Closed Bug 11196 Opened 21 years ago Closed 17 years ago

Document how to write a Makefile

Categories

(SeaMonkey :: Build Config, enhancement, P4)

x86
Windows 98
enhancement

Tracking

(Not tracked)

RESOLVED FIXED
Future

People

(Reporter: wsargent, Assigned: leaf)

Details

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
Assignee: briano → leaf
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.
Status: NEW → ASSIGNED
Summary: No documentation on Win32 build system → Incomplete documentation on Win32 build system
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.
Severity: normal → enhancement
mass re-assign of all bugs where i was listed as the qa contact
QA Contact: cyeh → chofmann
Priority: P3 → P4
QA Contact: chofmann → granrose
Summary: Incomplete documentation on Win32 build system → Document how to write a win32 Makefile
Target Milestone: --- → Future
Looks like this can be resolved fixed. The build system is moving to gmake.
s/fixed/wontfix
bug cleanup - all leaf's bugzilla bugs should be assigned to leaf@mozilla.org
(not leaf@netscape.com), now and any future bugs created.

this should be a one time change, apologies for the spam.
Assignee: leaf → leaf
Status: ASSIGNED → NEW
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.
Status: NEW → ASSIGNED
Summary: Document how to write a win32 Makefile → Document how to write a Makefile
yeah!
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.