mozilla

Compare Revisions

Building a component DLL

Change Revisions

Revision 61212:

Revision 61212 by Nickolay on

Revision 61213:

Revision 61213 by BenB on

Title:
Building a component DLL
Building a component DLL
Slug:
Building_a_component_DLL
Building_a_component_DLL
Tags:
Sample_Makefiles, "Developing Mozilla", "Build documentation"
Sample_Makefiles, "Developing Mozilla", "Build documentation"
Content:

Revision 61212
Revision 61213
n8      Here is an example <tt>Makefile.in</tt> for building an XPCn8      Here is an example <code>Makefile.in</code> for building an
>OM component library. In this example, all of the source files ar> XPCOM component library. In this example, all of the source file
>e in the same directory. {{ :en/Standard_Makefile_Header() }}>s are in the same directory. {{ :en/Standard_Makefile_Header() }}
n11<a href="en/MODULE">MODULE</a>         = filepickern11<a href="/en/MODULE" title="en/MODULE">MODULE</a>         = filep
 >icker
12<a href="en/LIBRARY_NAME">LIBRARY_NAME</a>   = fileview12<a href="/en/LIBRARY_NAME" title="en/LIBRARY_NAME">LIBRARY_NAME</
 >a>   = fileview
13<a href="en/SHORT_LIBNAME">SHORT_LIBNAME</a>  = fileview13<a href="/en/SHORT_LIBNAME" title="en/SHORT_LIBNAME">SHORT_LIBNAM
 >E</a>  = fileview
14<a href="en/EXPORT_LIBRARY">EXPORT_LIBRARY</a> = 114<a href="/en/EXPORT_LIBRARY" title="en/EXPORT_LIBRARY">EXPORT_LIB
 >RARY</a> = 1
15<a href="en/IS_COMPONENT">IS_COMPONENT</a>   = 115<a href="/en/IS_COMPONENT" title="en/IS_COMPONENT">IS_COMPONENT</
 >a>   = 1
16<a href="en/MODULE_NAME">MODULE_NAME</a>    = nsFileViewModule16<a href="/en/MODULE_NAME" title="en/MODULE_NAME">MODULE_NAME</a> 
 >   = nsFileViewModule
17<a href="en/REQUIRES">REQUIRES</a> = \17<a href="/en/REQUIRES" title="en/REQUIRES">REQUIRES</a> = \
n25<a href="en/CPPSRCS">CPPSRCS</a> = \n25<a href="/en/CPPSRCS" title="en/CPPSRCS">CPPSRCS</a> = \
n32<a href="en/EXTRA_DSO_LDOPTS">EXTRA_DSO_LDOPTS</a> += $(<a href="n32<a href="/en/EXTRA_DSO_LDOPTS" title="en/EXTRA_DSO_LDOPTS">EXTRA_
>en/MOZ_COMPONENT_LIBS">MOZ_COMPONENT_LIBS</a>)>DSO_LDOPTS</a> += $(<a href="/en/MOZ_COMPONENT_LIBS" title="en/MO
 >Z_COMPONENT_LIBS">XPCOM_GLUE_LDOPTS</a>)
n39        <b>MODULE</b> should be set to a short name for this modun39        <strong>MODULE</strong> should be set to a short name for
>le of code.> this module of code.
n42        <b>LIBRARY_NAME</b> should be set to the base name of then42        <strong>LIBRARY_NAME</strong> should be set to the base n
> shared library that should be created for this module. You shoul>ame of the shared library that should be created for this module.
>d not prepend "lib" or append any suffix such as "dll" to this na> You should not prepend "lib" or append any suffix such as "dll" 
>me.<br>>to this name.<br>
43        If <code>LIBRARY_NAME</code> is longer than 8 characters,43        If <code>LIBRARY_NAME</code> is longer than 8 characters,
> you should set <b>SHORT_LIBNAME</b> to an 8 character or less na> you should set <strong>SHORT_LIBNAME</strong> to an 8 character 
>me for this library. This is to address limitations on Windows an>or less name for this library. This is to address limitations on 
>d OS/2. If <code>LIBRARY_NAME</code> is 8 characters or less, you>Windows and OS/2. If <code>LIBRARY_NAME</code> is 8 characters or
> do not need to specify <code>SHORT_LIBNAME</code>.> less, you do not need to specify <code>SHORT_LIBNAME</code>.
n46        <b>EXPORT_LIBRARY</b> should be set to 1 unless you want n46        <strong>EXPORT_LIBRARY</strong> should be set to 1 unless
>to make sure your module is a shared library even in a static bui> you want to make sure your module is a shared library even in a 
>ld.>static build.
n49        <b>IS_COMPONENT</b> should be set to 1 for all componentsn49        <strong>IS_COMPONENT</strong> should be set to 1 for all 
>.>components.
n52        <b>MODULE_NAME</b> is used mainly for static builds, and n52        <strong>MODULE_NAME</strong> is used mainly for static bu
>should match the module name used in your <code>NS_IMPL_NSGETMODU>ilds, and should match the module name used in your <code>NS_IMPL
>LE</code> call.>_NSGETMODULE</code> call.
n55        <b>REQUIRES</b> is a list of other modules whose header fn55        <strong>REQUIRES</strong> is a list of other modules whos
>iles you need to include. <tt>dist/include/module_name</tt> is ad>e header files you need to include. <code>dist/include/module_nam
>ded to the compiler include list for each module you specify in R>e</code> is added to the compiler include list for each module yo
>EQUIRES.>u specify in REQUIRES.
n58        <b>CPPSRCS</b> lists the C++ files to compile in this dirn58        <strong>CPPSRCS</strong> lists the C++ files to compile i
>ectory. You can use <b>CSRCS</b> to specify C files.>n this directory. You can use <strong>CSRCS</strong> to specify C
 > files.
t61        <b>EXTRA_DSO_LDOPTS</b> has <code>$(MOZ_COMPONENT_LIBS)</t61        <strong>EXTRA_DSO_LDOPTS</strong> has <code>$(</code>XPCO
>code> added to it. These are extra libraries and linker flags nec>M_GLUE_LDOPTS<code>)</code> added to it. These are extra librarie
>essary for building components.>s and linker flags necessary for building components.

Back to History