After installing the build pre-requisites and downloading the SpiderMonkey source tarball issue the following commands at the terminal:
cd js/src autoconf-2.13
For the remainder of this document wherever you see the text $BRAND you will substitute that text with the name of your brand. For example the default brand for SpiderMonkey 1.8.5 is 'mozjs185'.
mkdir build-$BRAND-release cd build-$BRAND-release
Configure this build of SpiderMonkey with the desired options. For example:
../configure --enable-ctypes --with-system-nspr
../configure
command.So far, so good. Now for the tricky parts. We need to perform a recursive find and replace text operation on all files in the current directory. In the UNIX world we would issue the following command:
find ./ -type f -exec sed -i "s/mozjs185/$BRAND/" {} \;
The above command has actually changed some information we need changed back so we will re-issue the recursive find and replace text in files command with some modifications.
find ./ -type f -exec sed -i "s/$BRAND.pc/mozjs185.pc/" {} \;
The last recursive search and replace, changes the file name of the static library:
find ./ -type f -exec sed -i "s/js_static/$BRAND_static/" {} \;
Allright, almost there. Now comes the manual editing. Using your favorite editor open up the file named Makefile
for editing. Search for this text: mozjs185.pc
"Scroll down" a few lines until you see this line:
> $@ && chmod 644 $@
That line should be modified to read back:
> $BRAND.pc &&
chmod 644 $BRAND.pc
"Scroll down" a few lines until you see these lines:
install:: $(pkg_config_files)
@echo pkg_config_file: $(pkg_config_files)
Those two lines should be modified to read back:
install:: $BRAND.pc
@echo pkg_config_file: $BRAND.pc
Save the file and exit the editor. You may now perform the build and installation of your custom branded SpiderMonkey library:
make
make install
The following information isn't technically needed for using your library but it will help other applications use your library. Your rebranded library has been succesfully built and installed to libdir
as specified in ./config/autoconf.mk
. A pkgconfig file has also been installed for your library at libdir/pkgconfig/$BRAND.pc
. You may wish to manually edit this file. It describes your library package.
The script file js-config
has not been modified either and still points to mozjs185. If this is not desirable, you can issue the following command on UNIX systems:
sed -i "s/mozjs185/$BRAND/" /usr/bin/js-config
Which performs a simple text replacement of mozjs185 with your branding on the js-config
script. You may need administrative rights to run the above command.