build script changes to support mac static build.
r=jfrancis
sr=sfraser
a=asa on behalf of drivers
This commit is contained in:
thesteve%netscape.com 2001-08-28 00:11:50 +00:00
Родитель e7fa050d04
Коммит 7c496219bf
4 изменённых файлов: 374 добавлений и 733 удалений

Просмотреть файл

@ -20,6 +20,7 @@ use Mac::StandardFile;
use Moz::Moz;
use Moz::BuildFlags;
use Moz::MacCVS;
#use Moz::ProjectXML; #optional; required for static build only
use vars qw(@ISA @EXPORT);
@ -217,6 +218,100 @@ sub BuildIDLProject($$)
}
#--------------------------------------------------------------------------------------------------
# CreateStaticLibTargets
#
#--------------------------------------------------------------------------------------------------
sub CreateXMLStaticLibTargets($)
{
my($xml_path) = @_;
my (@suffix_list) = (".xml");
my ($project_name, $project_dir, $suffix) = fileparse($xml_path, @suffix_list);
if ($suffix eq "") { die "XML munging: $xml_path must end in .xml\n"; }
#sniff the file to see if we need to fix up broken Pro5-exported XML
print "Parsing $xml_path\n";
my $ide_version = Moz::ProjectXML::SniffProjectXMLIDEVersion($xml_path);
if ($ide_version eq "4.0")
{
my $new_file = $project_dir.$project_name."2.xml";
print "Cleaning up Pro 5 xml to $new_file\n";
Moz::ProjectXML::CleanupPro5XML($xml_path, $new_file);
unlink $xml_path;
rename ($new_file, $xml_path);
}
my $doc = Moz::ProjectXML::ParseXMLDocument($xml_path);
my @target_list = Moz::ProjectXML::GetTargetsList($doc);
my $target;
my %target_hash; # for easy lookups below
foreach $target (@target_list) { $target_hash{$target} = 1; }
foreach $target (@target_list)
{
if ($target =~ /(.+).shlb$/) # if this is a shared lib target
{
my $target_base = $1;
my $static_target = $target_base.".o";
# ensure that this does not exist already
if ($target_hash{$static_target}) {
print "Static target $static_target already exists in project. Not making\n";
next;
}
print "Making static target '$static_target' from target '$target'\n";
Moz::ProjectXML::CloneTarget($doc, $target, $static_target);
Moz::ProjectXML::SetAsStaticLibraryTarget($doc, $static_target, $static_target);
}
}
print "Writing XML file to $xml_path\n";
my $temp_path = $project_dir."_".$project_name.".xml";
Moz::ProjectXML::WriteXMLDocument($doc, $temp_path, $ide_version);
Moz::ProjectXML::DisposeXMLDocument($doc);
if (-e $temp_path)
{
unlink $xml_path;
rename ($temp_path, $xml_path);
}
else
{
die "Error: Failed to add new targets to XML project\n";
}
}
#//--------------------------------------------------------------------------------------------------
#// ProcessProjectXML
#//
#// Helper routine to allow for XML pre-processing. This should read in the XML, process it,
#// and replace the original file with the processed version.
#//--------------------------------------------------------------------------------------------------
sub ProcessProjectXML($)
{
my($xml_path) = @_;
# we need to manually load Moz::ProjectXML, becaues not everyone will have the
# required perl modules in their distro.
my($cur_dir) = cwd();
chdir(dirname($0)); # change to the script dir
eval "require Moz::ProjectXML";
if ($@) { die "Error: could not do Project XML munging because you do not have the correct XML modules installed. Error is:\n################\n $@################"; }
chdir($cur_dir);
CreateXMLStaticLibTargets($xml_path);
}
#//--------------------------------------------------------------------------------------------------
#// Build one project, and make the alias. Parameters are project path, target name, shared library
#// name, make shlb alias (boolean), make xSYM alias (boolean), and is component (boolean).
@ -224,19 +319,74 @@ sub BuildIDLProject($$)
sub BuildOneProjectWithOutput($$$$$$)
{
my ($project_path, $target_name, $output_name, $alias_shlb, $alias_xSYM, $component) = @_;
my ($project_path, $target_name, $output_name, $alias_lib, $alias_xSYM, $component) = @_;
unless ($project_path =~ m/^$main::BUILD_ROOT.+/) { return; }
my (@suffix_list) = (".mcp", ".xml");
my ($project_name, $project_dir, $suffix) = fileparse($project_path, @suffix_list);
if ($suffix eq "") { die "Project: $project_path must end in .xml or .mcp\n"; }
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
my($dist_dir) = GetBinDirectory();
# Put libraries in "Essential Files" folder, Components in "Components" folder
my($component_dir) = $component ? "Components:" : "Essential Files:";
my($output_dir) = $component ? "Components:" : "Essential Files:";
my($output_path) = $dist_dir.$output_dir;
if ($main::options{static_build})
{
if ($output_name =~ /\.o$/ || $output_name =~ /\.[Ll]ib$/)
{
$alias_xSYM = 0;
$alias_lib = 1;
$output_path = $main::DEBUG ? ":mozilla:dist:static_libs_debug:" : ":mozilla:dist:static_libs:";
}
}
# if the flag is on to export projects to XML, export and munge them
if ($main::EXPORT_PROJECTS && !($project_path =~ /IDL\.mcp$/))
{
my $xml_out_path = $project_path;
$xml_out_path =~ s/\.mcp$/\.xml/;
# only do this if project is newer?
if (! -e $xml_out_path)
{
ExportProjectToXML(full_path_to($project_path), full_path_to($xml_out_path));
ProcessProjectXML($xml_out_path);
}
}
# if the flag is set to use XML projects, default to XML if the file
# is present.
if ($main::USE_XML_PROJECTS && !($project_path =~ /IDL\.mcp$/))
{
my $xml_project_path = $project_dir.$project_name.".xml";
if (-e $xml_project_path)
{
$project_path = $xml_project_path;
$suffix = ".xml";
}
}
if ($suffix eq ".xml")
{
my($xml_path) = $project_path;
# Prepend an "_" onto the name of the generated project file so it doesn't conflict
$project_path = $project_dir . "_" . $project_name . ".mcp";
my($project_modtime) = (-e $project_path ? GetFileModDate($project_path) : 0);
my($xml_modtime) = (-e $xml_path ? GetFileModDate($xml_path) : 0);
if ($xml_modtime > $project_modtime)
{
print("Importing $project_path from $project_name.xml.\n");
unlink($project_path);
# Might want to delete the "xxx.mcp Data" dir ???
ImportXMLProject(full_path_to($xml_path), full_path_to($project_path));
}
}
my($project_dir) = $project_path;
$project_dir =~ s/:[^:]+$/:/; # chop off leaf name
if ($main::CLOBBER_LIBS)
{
@ -246,8 +396,8 @@ sub BuildOneProjectWithOutput($$$$$$)
BuildProject($project_path, $target_name);
$alias_shlb ? MakeAlias("$project_dir$output_name", "$dist_dir$component_dir") : 0;
$alias_xSYM ? MakeAlias("$project_dir$output_name.xSYM", "$dist_dir$component_dir") : 0;
$alias_lib ? MakeAlias("$project_dir$output_name", "$output_path") : 0;
$alias_xSYM ? MakeAlias("$project_dir$output_name.xSYM", "$output_path") : 0;
}
#//--------------------------------------------------------------------------------------------------
@ -259,9 +409,10 @@ sub BuildOneProjectWithOutput($$$$$$)
sub BuildOneProject($$$$$)
{
my ($project_path, $target_name, $alias_shlb, $alias_xSYM, $component) = @_;
my ($project_path, $target_name, $alias_lib, $alias_xSYM, $component) = @_;
BuildOneProjectWithOutput($project_path, $target_name, $target_name,
$alias_shlb, $alias_xSYM, $component);
$alias_lib, $alias_xSYM, $component);
}
#//--------------------------------------------------------------------------------------------------

Просмотреть файл

@ -1,594 +0,0 @@
#!perl
package Moz::CodeWarriorLib;
=pod
=head1 NAME
CodeWarriorLib - supply interface to CodeWarrior
=head1 SYNOPSIS
#!perl
use CodeWarriorLib;
CodeWarriorLib::activate();
$had_errors = CodeWarriorLib::build_project(
$project_path, $target_name, $recent_errors_file, $clean_build
);
=head1 DESCRIPTION
Replaces the AppleScript library I<CodeWarriorLib>.
=over 4
=cut
use strict;
use Cwd;
use Mac::Types;
use Mac::Events;
use Mac::AppleEvents;
use Mac::AppleEvents::Simple;
use Mac::Processes;
use Mac::MoreFiles;
use Mac::StandardFile;
use File::Basename;
use vars qw($VERSION);
$VERSION = '1.02';
my($app) = 'CWIE';
my($scriptDir) = cwd(); # could use $0 for this
my($ide_loc_file) = "";
# 0 == don't switch CWIE to front app in do_event(), 1 == do switch
# note: activate() still switches when called
$Mac::AppleEvents::Simple::SWITCH = 0;
# $Mac::AppleEvents::Simple::WARN = 1;
# supply your own path to the source here
#_test('PowerPudgeIV:mozilla:mozilla:');
# If you want to understand the gobbldeygook that's used to build Apple Events,
# you should start by reading the AEGizmos documentation.
=pod
=item _get_project($full_path)
A private routine returning a reference to the open project with the given name,
or else the empty string (when that project is not open)
full_path is a string identifying the project to be built and is of the form,
e.g., "HD:ProjectFolder:MyProject.mcp". It must be supplied.
=cut
sub _get_project ($) {
my(
$full_path, $candidate_projects
) = @_;
$candidate_projects = _doc_named(basename($full_path, '*'));
if ($candidate_projects) {
my($cps) = _get_dobj($candidate_projects);
my($num) = AECountItems($cps);
if ($num) { # is a list
foreach (1 .. AECountItems($cps)) {
my($cp) = AEGetNthDesc($cps, $_);
if (lc $full_path eq lc _full_path($cp)) {
return($cp);
}
}
} else { # is only one, not a list
if (lc $full_path eq lc _full_path($cps)) {
return($cps);
}
}
}
return;
}
=pod
=item build_project
Build a selected target of a project, saving any errors to a file, if supplied.
full_path is a string identifying the project to be built and is of the form,
e.g., "HD:ProjectFolder:MyProject.mcp". It must be supplied.
If target_name is the empty string, the current target of the selected project
will be built, else, target_name should be a string matching a target name in
the selected project.
If error_path is the empty string, errors will not be saved to a file,
else, error_path should be the full path of a file to save error messages into.
=cut
$CodeWarriorLib::CLOSE_PROJECTS_FIRST = 0; # If true we close then make. If false, make then close.
my $last_project_built = "";
my $last_project_was_closed = 0;
sub build_project ($;$$$) {
my(
$full_path, $target_name, $error_path,
$remove_object, $p, $project_was_closed, $had_errors
) = @_;
_close_errors_window();
if ($CodeWarriorLib::CLOSE_PROJECTS_FIRST && ($last_project_built ne $full_path))
{
# If we're in "close first" mode, we don't close if the current project
# is the same as the previous one.
if ($last_project_was_closed) {
$p = _get_project($last_project_built);
_close($p);
}
$last_project_built = $full_path;
$last_project_was_closed = 0; # now refers to the new project
}
$project_was_closed = 0;
while (1) {
$p = _get_project($full_path);
if (!$p) {
if ($project_was_closed) {
print "### Error - request for project document failed after opening\n";
die "### possibly CW Pro 4 bug: be sure to close your Find window\n";
}
$project_was_closed = 1;
$last_project_was_closed = 1;
_open_file($full_path);
} else {
last;
}
}
$had_errors = 0;
if ($target_name eq '') {
if ($remove_object) {_remove_object($p)}
_build($p);
} else {
if ($remove_object) {_remove_object($p, $target_name)}
_build($p, $target_name);
}
if ($error_path ne '') {
_save_errors_window($error_path);
}
$had_errors = _close_errors_window();
if (!$CodeWarriorLib::CLOSE_PROJECTS_FIRST)
{
if ($project_was_closed) {
$p = _get_project($full_path);
_close($p);
}
}
return($had_errors);
}
=pod
=item appIsRunning()
=cut
sub _appIsRunning($)
{
my ($appSignature) = @_;
my ($psi);
my ($found) = 0;
my ($appPSN);
foreach $psi (values(%Process))
{
if ($psi->processSignature() eq $appSignature)
{
$appPSN = $psi->processNumber();
$found = 1;
last;
}
}
return $found;
}
=pod
=item appIsFrontmost()
=cut
sub _appIsFrontmost($)
{
my ($appSignature) = @_;
my ($psi);
my ($found) = 0;
my ($appPSN);
foreach $psi (values(%Process))
{
if ($psi->processSignature() eq $appSignature)
{
$appPSN = $psi->processNumber();
$found = 1;
last;
}
}
return (GetFrontProcess() == $appPSN);
}
=pod
=item activate()
Launches CodeWarrior and brings it to the front.
Once found, path will be saved in $idepath_file for future reference.
Edit or delete this file to change the location of the IDE. If app is
moved, C<activate()> will prompt for a new location.
First looks for an open CodeWarrior app. Second, tries to open previously
saved location in ':idepath.txt'. Third, tries to find it and allow user
to choose it with Navigation Services (if present). Fourth, uses good old
GUSI routines built-in to MacPerl for a Choose Directory dialog box.
=cut
sub activate ($) {
$ide_loc_file = $_[0]; # save in global
my($filepath, $appath, $psi) = ($ide_loc_file);
foreach $psi (values(%Process)) {
if ($psi->processSignature() eq $app) {
$appath = $psi->processAppSpec();
_save_appath($filepath, $appath);
last;
}
}
if (!$appath || !-x $appath) {
$appath = _read_appath($filepath);
}
if (!$appath || ! -x $appath)
{
# make sure that MacPerl is a front process
#ActivateApplication('McPL');
MacPerl::Answer("Please locate the CodeWarrior application.", "OK");
# prompt user for the file name, and store it
my $macFile = StandardGetFile( 0, "APPL");
if ( $macFile->sfGood() )
{
$appath = $macFile->sfFile();
}
else
{
die "Operation canceled\n";
}
# if (eval {require Mac::Navigation}) {
# my($options, $nav);
# Mac::Navigation->import();
# $options = NavGetDefaultDialogOptions();
# $options->message('Where is CodeWarrior IDE?');
# $options->windowTitle('Find CodeWarrior IDE');
# $nav = NavChooseObject($Application{$app}, $options);
# die "CodeWarrior IDE not found.\n" if (!$nav || !$nav->file(1));
# $appath = $nav->file(1);
# } else {
# local(*D);
# my $cwd = `pwd`;
# $appath = _get_folder(
# 'Where is the CW IDE folder?',
# dirname($Application{$app})
# );
# die "CodeWarrior IDE not found.\n" if !$appath;
# opendir(D, $appath) or die $!;
# chdir($appath);
# foreach my $file (sort readdir (D)) {
# my(@app) = MacPerl::GetFileInfo($file);
# if ($app[0] && $app[1] &&
# $app[1] eq 'APPL' && $app[0] eq $app
# ) {
# $appath .= $file;
# last;
# }
# }
# chomp($cwd);
# chdir($cwd);
# }
_save_appath($filepath, $appath);
}
my($lp) = LaunchParam->new(
launchAppSpec => $appath,
launchControlFlags => launchContinue() + launchNoFileFlags()
);
unless (LaunchApplication($lp)) {
unlink($filepath);
die $^E;
}
# wait for CodeWarrior to show up in the list of processes
while (!_appIsRunning('CWIE'))
{
WaitNextEvent();
}
# wait for CodeWarrior to come to the front
while (!_appIsFrontmost('CWIE'))
{
WaitNextEvent();
}
}
=pod
=item getCodeWarriorPath()
Returns a file path relative to the CodeWarrior folder
=cut
sub getCodeWarriorPath($)
{
my($subfolder)=@_;
my($app_path) = _read_appath($ide_loc_file);
if ($app_path eq "") { die "Error: Failed to get CodeWarrior IDE path\n"; }
my($codewarrior_root) = $app_path;
$codewarrior_root =~ s/[^:]*$//;
return ($codewarrior_root . $subfolder);
}
=pod
=item getCodeWarriorIDEName()
Returns the name of the CodeWarrior application
=cut
sub getCodeWarriorIDEName()
{
my($subfolder)=@_;
my($app_path) = _read_appath($ide_loc_file);
if ($app_path eq "") { die "Error: Failed to get CodeWarrior IDE path\n"; }
my(@codewarrior_path) = split(/:/, $app_path);
return pop(@codewarrior_path);
}
=pod
=item quit()
Quits CodeWarrior.
=cut
sub quit() {
$last_project_built = "";
$last_project_was_closed = 0;
my($evt) = do_event(qw/aevt quit/, $app);
}
sub _build ($;$) {
my($evt);
if ($_[1]) {
my($prm) =
q"'----':obj {form:name, want:type(TRGT), seld:TEXT(@), from:" .
AEPrint($_[0]) . '}';
$evt = do_event(qw/CWIE MAKE/, $app, $prm, $_[1]);
} else {
my($prm) = q"'----':" . AEPrint($_[0]);
$evt = do_event(qw/CWIE MAKE/, $app, $prm);
}
}
sub _remove_object ($;$) {
my($evt);
if ($_[1]) {
my($prm) =
q"'----':obj {form:name, want:type(TRGT), seld:TEXT(@), from:" .
AEPrint($_[0]) . '}';
$evt = do_event(qw/CWIE RMOB/, $app, $prm, $_[1]);
} else {
my($prm) = q"'----':" . AEPrint($_[0]);
$evt = do_event(qw/CWIE RMOB/, $app, $prm);
}
}
sub _open_file ($) {
my($prm) =
q"'----':obj {form:name, want:type(alis), " .
q"seld:TEXT(@), from:'null'()}";
do_event(qw/aevt odoc/, $app, $prm, $_[0]);
}
sub import_project ($$) {
my($xml_file, $project_path) = @_;
my($prm) = "kocl:type(PRJD), rtyp:TEXT(@), data:TEXT(@), &subj:'null'()";
my($evt) = do_event(qw/core crel/, $app, $prm, $project_path, $xml_file);
return $evt->{ERROR};
}
sub _doc_named ($) {
my($prm) =
q"'----':obj {form:test, want:type(docu), from:'null'(), " .
q"seld:cmpd{relo:'= ', 'obj1':obj {form:prop, want:type" .
q"(prop), seld:type(pnam), from:'exmn'()}, 'obj2':TEXT(@)}}";
my($evt) = do_event(qw/core getd/, $app, $prm, $_[0]);
return($evt->{REPLY} eq 'aevt\ansr{}' ? undef : $evt);
}
sub _full_path ($) {
my($obj) = $_[0];
my($prm) =
q"'----':obj {form:prop, want:type(prop), seld:type(FILE), " .
q"from:" . AEPrint($_[0]) . q"}, rtyp:type(TEXT)";
my($evt) = do_event(qw/core getd/, $app, $prm);
return MacPerl::MakePath(
MacUnpack('fss ', (
AEGetParamDesc($evt->{REP}, keyDirectObject()))->data()->get()
)
);
}
sub _save_errors_window ($) {
my($prm) =
q"'----':obj {form:name, want:type(alis), seld:TEXT(@), from:'null'()}";
do_event(qw/MMPR SvMs/, $app, $prm, $_[0]);
}
sub _close_errors_window () {
my($prm) =
q"'----':obj {form:name, want:type(cwin), " .
q"seld:TEXT(@), from:'null'()}";
my($evt) = do_event(qw/core clos/, $app, $prm, 'Errors & Warnings');
return($evt->{REPLY} eq 'aevt\ansr{}' ? 1 : 0);
}
sub _close () {
my($prm) = q"'----':" . AEPrint($_[0]);
do_event(qw/core clos/, $app, $prm);
}
sub _get_dobj ($) {
return(AEGetParamDesc($_[0]->{REP}, keyDirectObject()));
}
sub _get_folder ($$) {
require 'GUSI.ph';
my($prompt, $default) = @_;
MacPerl::Choose(
GUSI::AF_FILE(), 0, $prompt, '',
GUSI::CHOOSE_DIR() + ($default ? &GUSI::CHOOSE_DEFAULT : 0),
$default
);
}
sub _save_appath ($$) {
my($cwd) = cwd(); # remember the current working dir
chdir($scriptDir); # change dir to the script dir
local(*F);
open(F, '>' . $_[0]) or die $!;
print F $_[1];
close(F);
chdir($cwd); # restore the cwd
}
sub _read_appath ($) {
my($filepath) = @_;
my($cwd) = cwd(); # remember the current working dir
chdir($scriptDir); # change dir to the script dir
if (! -e $filepath) {
return "";
}
local(*F);
open(F, $filepath);
my($appath) = <F>;
close(F);
chdir($cwd); # restore the cwd
return($appath);
}
sub _test ($) {
activate($ide_loc_file);
my($path) = $_[0];
build_project(
"${path}modules:xml:macbuild:XML.mcp", '',
"${path}build:mac:Mozilla.BuildLog.part"
);
}
1;
=pod
=back
=head1 HISTORY
=over 4
=item v1.02, September 23, 1998
Made fixes in finding and saving location of CodeWarrior IDE.
=item v1.01, June 1, 1998
Made fixes to C<chdir()> in C<activate()>, made C<activate()> more robust
in finding CodeWarrior IDE, added global variable to NOT switch to IDE
for each sent event, a few other fixes.
=item v1.00, May 30, 1998
First shot
=back
=head1 AUTHORS
Chris Nandor F<E<lt>pudge@pobox.comE<gt>>, and the author of the
original I<CodeWarriorLib>, Scott Collins F<E<lt>scc@netscape.comE<gt>>.
=head1 SEE ALSO
BuildProject L<Moz>.
=head1 COPYRIGHT
The contents of this file are subject to the Netscape Public
License Version 1.1 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at http://www.mozilla.org/NPL/
Software distributed under the License is distributed on an "AS
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
implied. See the License for the specific language governing
rights and limitations under the License.
The Original Code is Mozilla Communicator client code, released
March 31, 1998.
The Initial Developer of the Original Code is Netscape
Communications Corporation. Portions created by Netscape are
Copyright (C) 1998-1999 Netscape Communications Corporation. All
Rights Reserved.
Contributor(s):
=cut

Просмотреть файл

@ -37,6 +37,7 @@ use Cwd;
use File::Copy;
use File::Path;
use File::Basename;
use Mac::Types;
use Mac::Events;
@ -55,6 +56,7 @@ use Moz::CodeWarriorLib;
BuildProject
BuildProjectClean
ImportXMLProject
ExportProjectToXML
OpenErrorLog
MakeAlias
GetFileModDate
@ -282,7 +284,8 @@ sub BuildProjectClean($;$)
sub ImportXMLProject($$)
{
my ($xml_path, $project_path) = @_;
my ($codewarrior_ide_name) = Moz::CodeWarriorLib::getCodeWarriorIDEName();
# my ($codewarrior_ide_name) = Moz::CodeWarriorLib::getCodeWarriorIDEName();
# my $ascript = <<EOS;
# tell application "$codewarrior_ide_name"
# make new (project document) as ("$project_path") with data ("$xml_path")
@ -299,6 +302,30 @@ sub ImportXMLProject($$)
}
}
sub ExportProjectToXML($$)
{
my ($project_path, $xml_path) = @_;
my (@suffix_list) = (".mcp");
my ($project_name, $project_dir, $suffix) = fileparse($project_path, @suffix_list);
if ($suffix eq "") { die "Project: $project_path doesn't look like a project file.\n"; }
if (-e $xml_path) {
print "$xml_path exists - not exporting $project_path\n";
}
else {
print "Exporting $project_path to $xml_path\n";
my($export_error) = Moz::CodeWarriorLib::export_project($project_path, $xml_path);
if ($export_error ne "") {
die "Error: export_project failed with error '$export_error'\n";
}
if (! -e $xml_path) {
die "Error: XML export to $xml_path failed\n";
}
}
}
=head2 Miscellaneous

Просмотреть файл

@ -934,6 +934,7 @@ sub BuildDist()
# we really do not need all these paths, but many client projects include them
mkpath([ ":mozilla:dist:", ":mozilla:dist:client_stubs:" ]);
mkpath([ ":mozilla:dist:static_libs:", ":mozilla:dist:static_libs_debug:" ]);
mkpath([ ":mozilla:dist:viewer:", ":mozilla:dist:viewer_debug:" ]);
#make default plugins folder so that apprunner won't go looking for 3.0 and 4.0 plugins.
@ -1202,6 +1203,9 @@ sub BuildRuntimeProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
# $C becomes a component of target names for selecting either the Carbon or non-Carbon target of a project
my($C) = $main::options{carbon} ? "Carbon" : "";
my($P) = $main::PROFILE ? "Profil" : "";
@ -1263,10 +1267,12 @@ sub BuildCommonProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
my $dist_dir = GetBinDirectory();
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
StartBuildModule("common");
BuildOneProject(":mozilla:string:macbuild:string.mcp", "string$D.o", 0, 0, 0);
BuildProject(":mozilla:string:macbuild:string.mcp", "string$D.o");
MakeAlias(":mozilla:string:macbuild:string$D.o", ":mozilla:dist:string:");
#//
@ -1276,26 +1282,26 @@ sub BuildCommonProjects()
BuildOneProject(":mozilla:modules:libreg:macbuild:libreg.mcp", "libreg$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:xpcom:macbuild:xpcomPPC.mcp", "xpcom$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:js:macbuild:JavaScript.mcp", "JavaScript$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:js:macbuild:JSLoader.mcp", "JSLoader$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:js:macbuild:LiveConnect.mcp", "LiveConnect$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:js:macbuild:JSLoader.mcp", "JSLoader$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:js:macbuild:LiveConnect.mcp", "LiveConnect$D.$S", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:modules:zlib:macbuild:zlib.mcp", "zlib$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:modules:zlib:macbuild:zlib.mcp", "zlib$D.Lib", 0, 0, 0);
BuildOneProject(":mozilla:modules:libjar:macbuild:libjar.mcp", "libjar$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libjar:macbuild:libjar.mcp", "libjar$D.Lib", 0, 0, 0);
BuildOneProject(":mozilla:modules:zlib:macbuild:zlib.mcp", "zlib$D.$S", 1, $main::ALIAS_SYM_FILES, 0);
BuildProject(":mozilla:modules:zlib:macbuild:zlib.mcp", "zlib$D.Lib");
BuildOneProject(":mozilla:modules:libjar:macbuild:libjar.mcp", "libjar$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildProject(":mozilla:modules:libjar:macbuild:libjar.mcp", "libjar$D.Lib");
BuildOneProject(":mozilla:modules:oji:macbuild:oji.mcp", "oji$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:caps:macbuild:Caps.mcp", "Caps$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpref:macbuild:libpref.mcp", "libpref$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:js:macbuild:XPConnect.mcp", "XPConnect$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libutil:macbuild:libutil.mcp", "libutil$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:modules:oji:macbuild:oji.mcp", "oji$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:caps:macbuild:Caps.mcp", "Caps$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpref:macbuild:libpref.mcp", "libpref$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:js:macbuild:XPConnect.mcp", "XPConnect$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libutil:macbuild:libutil.mcp", "libutil$D.$S", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:db:mork:macbuild:mork.mcp", "Mork$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:dbm:macbuild:DBM.mcp", "DBM$D.o", 0, 0, 0);
BuildOneProject(":mozilla:db:mork:macbuild:mork.mcp", "Mork$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildProject(":mozilla:dbm:macbuild:DBM.mcp", "DBM$D.o");
#// Static libraries
# Static Libs
BuildOneProject(":mozilla:modules:mpfilelocprovider:macbuild:mpfilelocprovider.mcp", "mpfilelocprovider$D.o", 0, 0, 0);
BuildProject(":mozilla:modules:mpfilelocprovider:macbuild:mpfilelocprovider.mcp", "mpfilelocprovider$D.o");
MakeAlias(":mozilla:modules:mpfilelocprovider:macbuild:mpfilelocprovider$D.o", ":mozilla:dist:mpfilelocprovider:");
InstallFromManifest(":mozilla:xpcom:components:MANIFEST_COMPONENTS", "${dist_dir}Components:");
@ -1316,13 +1322,13 @@ sub BuildImglibProjects()
StartBuildModule("imglib");
BuildOneProject(":mozilla:jpeg:macbuild:JPEG.mcp", "JPEG$D.o", 0, 0, 0);
BuildOneProject(":mozilla:modules:libimg:macbuild:png.mcp", "png$D.o", 0, 0, 0);
BuildProject(":mozilla:jpeg:macbuild:JPEG.mcp", "JPEG$D.o");
BuildProject(":mozilla:modules:libimg:macbuild:png.mcp", "png$D.o");
# MNG
if ($main::options{mng})
{
BuildOneProject(":mozilla:modules:libimg:macbuild:mng.mcp", "mng$D.o", 0, 0, 0);
BuildProject(":mozilla:modules:libimg:macbuild:mng.mcp", "mng$D.o");
}
EndBuildModule("imglib");
@ -1338,23 +1344,25 @@ sub BuildImglib2Projects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
StartBuildModule("libimg2");
if ($main::options{useimg2})
{
BuildOneProject(":mozilla:gfx2:macbuild:gfx2.mcp", "gfx2$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:libimg2.mcp", "libimg2$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:pngdecoder2.mcp", "pngdecoder2$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:gifdecoder2.mcp", "gifdecoder2$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:jpegdecoder2.mcp", "jpegdecoder2$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:icondecoder.mcp", "icondecoder$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:gfx2:macbuild:gfx2.mcp", "gfx2$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:libimg2.mcp", "libimg2$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:pngdecoder2.mcp", "pngdecoder2$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:gifdecoder2.mcp", "gifdecoder2$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:jpegdecoder2.mcp", "jpegdecoder2$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:libpr0n:macbuild:icondecoder.mcp", "icondecoder$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
# MNG
if ($main::options{mng})
{
#BuildOneProject(":mozilla:modules:libimg:macbuild:mng.mcp", "mng$D.o", 0, 0, 0);
#BuildOneProject(":mozilla:modules:libimg:macbuild:mngdecoder.mcp", "mngdecoder$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
#BuildProject(":mozilla:modules:libimg:macbuild:mng.mcp", "mng$D.o", 0, 0, 0);
#BuildOneProject(":mozilla:modules:libimg:macbuild:mngdecoder.mcp", "mngdecoder$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
}
}
@ -1371,30 +1379,32 @@ sub BuildInternationalProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
StartBuildModule("intl");
BuildOneProject(":mozilla:intl:chardet:macbuild:chardet.mcp", "chardet$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:uconv.mcp", "uconv$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvlatin.mcp", "ucvlatin$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvja.mcp", "ucvja$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvtw.mcp", "ucvtw$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvtw2.mcp", "ucvtw2$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvcn.mcp", "ucvcn$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvko.mcp", "ucvko$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvibm.mcp", "ucvibm$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:chardet:macbuild:chardet.mcp", "chardet$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:uconv.mcp", "uconv$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvlatin.mcp", "ucvlatin$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvja.mcp", "ucvja$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvtw.mcp", "ucvtw$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvtw2.mcp", "ucvtw2$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvcn.mcp", "ucvcn$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvko.mcp", "ucvko$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvibm.mcp", "ucvibm$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
if ($main::options{mathml})
{
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvmath.mcp", "ucvmath$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:uconv:macbuild:ucvmath.mcp", "ucvmath$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
}
BuildOneProject(":mozilla:intl:unicharutil:macbuild:unicharutil.mcp", "unicharutil$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:locale:macbuild:locale.mcp", "nslocale$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:lwbrk:macbuild:lwbrk.mcp", "lwbrk$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:strres:macbuild:strres.mcp", "strres$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:unicharutil:macbuild:unicharutil.mcp", "unicharutil$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:locale:macbuild:locale.mcp", "nslocale$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:lwbrk:macbuild:lwbrk.mcp", "lwbrk$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:intl:strres:macbuild:strres.mcp", "strres$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
# BuildOneProject(":mozilla:intl:uconv:macbuild:ucvja2.mcp", "ucvja2$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
# BuildOneProject(":mozilla:intl:uconv:macbuild:ucvvt.mcp", "ucvvt$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
# BuildOneProject(":mozilla:intl:uconv:macbuild:ucvth.mcp", "ucvth$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
# BuildOneProject(":mozilla:intl:uconv:macbuild:ucvja2.mcp", "ucvja2$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
# BuildOneProject(":mozilla:intl:uconv:macbuild:ucvvt.mcp", "ucvvt$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
# BuildOneProject(":mozilla:intl:uconv:macbuild:ucvth.mcp", "ucvth$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
EndBuildModule("intl");
} # intl
@ -1414,16 +1424,19 @@ sub BuildNeckoProjects()
# $C becomes a component of target names for selecting either the Carbon or non-Carbon target of a project
my($C) = $main::options{carbon} ? "Carbon" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
my $dist_dir = GetBinDirectory();
StartBuildModule("necko");
BuildOneProjectWithOutput(":mozilla:netwerk:macbuild:netwerk.mcp", "Necko$C$D.shlb", "Necko$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:netwerk:macbuild:netwerk2.mcp", "Necko2$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProjectWithOutput(":mozilla:netwerk:macbuild:netwerk.mcp", "Necko$C$D.$S", "Necko$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:netwerk:macbuild:netwerk2.mcp", "Necko2$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:netwerk:macbuild:cache.mcp", "Cache$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:netwerk:macbuild:cache.mcp", "Cache$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:dom:src:jsurl:macbuild:JSUrl.mcp", "JSUrl$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:dom:src:jsurl:macbuild:JSUrl.mcp", "JSUrl$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
InstallFromManifest(":mozilla:netwerk:base:src:MANIFEST_COMPONENTS", "${dist_dir}Components:");
@ -1441,18 +1454,23 @@ sub BuildSecurityProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
my $dist_dir = GetBinDirectory(); # the subdirectory with the libs and executable.
StartBuildModule("security");
BuildOneProject(":mozilla:security:nss:macbuild:NSS.mcp","NSS$D.o", 0, 0, 0);
BuildOneProject(":mozilla:security:manager:ssl:macbuild:PIPNSS.mcp", "PIPNSS$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:security:manager:pki:macbuild:PIPPKI.mcp", "PIPPKI$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildProject(":mozilla:security:nss:macbuild:NSS.mcp","NSS$D.o");
BuildOneProject(":mozilla:security:manager:ssl:macbuild:PIPNSS.mcp", "PIPNSS$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:security:manager:pki:macbuild:PIPPKI.mcp", "PIPPKI$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
#Build the loadable module that contains the root certs.
if ($main::options{static_build}) {
BuildOneProject(":mozilla:modules:staticmod:macbuild:cryptoComponent.mcp", "MetaCrypto$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
}
BuildOneProject(":mozilla:security:nss:macbuild:NSSckfw.mcp", "NSSckfw$D.o", 0, 0, 0);
BuildOneProject(":mozilla:security:nss:macbuild:LoadableRoots.mcp", "NSSckbi$D.shlb", 0, $main::ALIAS_SYM_FILES, 0);
#Build the loadable module that contains the root certs. This is always built as a shared lib, even in the static build.
BuildProject(":mozilla:security:nss:macbuild:NSSckfw.mcp", "NSSckfw$D.o");
BuildProject(":mozilla:security:nss:macbuild:LoadableRoots.mcp", "NSSckbi$D.shlb");
# NSS doesn't properly load the shared library created above if it's an alias, so we'll just copy it so that
# all builds will just work. It's 140K optimized and 164K debug so it's not too much disk space.
copy(":mozilla:security:nss:macbuild:NSSckbi$D.shlb",$dist_dir."Essential Files:NSSckbi$D.shlb");
@ -1471,19 +1489,21 @@ sub BuildBrowserUtilsProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
StartBuildModule("browserutils");
BuildOneProject(":mozilla:uriloader:macbuild:uriLoader.mcp", "uriLoader$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:uriloader:macbuild:uriLoader.mcp", "uriLoader$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:profile:macbuild:profile.mcp", "profile$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:profile:pref-migrator:macbuild:prefmigrator.mcp", "prefm$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:profile:macbuild:profile.mcp", "profile$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:profile:pref-migrator:macbuild:prefmigrator.mcp", "prefm$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:cookie:macbuild:cookie.mcp", "Cookie$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:wallet:macbuild:wallet.mcp", "Wallet$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:wallet:macbuild:walletviewers.mcp", "WalletViewers$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:cookie:macbuild:cookie.mcp", "Cookie$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:wallet:macbuild:wallet.mcp", "Wallet$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:wallet:macbuild:walletviewers.mcp", "WalletViewers$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:rdf:chrome:build:chrome.mcp", "ChomeRegistry$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:rdf:chrome:build:chrome.mcp", "ChomeRegistry$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
EndBuildModule("browserutils");
}
@ -1503,6 +1523,10 @@ sub BuildLayoutProjects()
my($D) = $main::DEBUG ? "Debug" : "";
# $C becomes a component of target names for selecting either the Carbon or non-Carbon target of a project
my($C) = $main::options{carbon} ? "Carbon" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
my($dist_dir) = GetBinDirectory();
my($EssentialFiles) = $main::DEBUG ? ":mozilla:dist:viewer_debug:Essential Files:" : ":mozilla:dist:viewer:Essential Files:";
my($resource_dir) = "$dist_dir" . "res:";
@ -1521,48 +1545,47 @@ sub BuildLayoutProjects()
#// Build Layout projects
#//
BuildOneProject(":mozilla:expat:macbuild:expat.mcp", "expat$D.o", 0, 0, 0);
BuildOneProject(":mozilla:htmlparser:macbuild:htmlparser.mcp", "htmlparser$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
# BuildOneProject(":mozilla:gfx:macbuild:gfx.mcp", "gfx$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProjectWithOutput(":mozilla:gfx:macbuild:gfx.mcp", "gfx$C$D.shlb", "gfx$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:dom:macbuild:dom.mcp", "dom$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:plugin:base:macbuild:plugin.mcp", "plugin$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildProject(":mozilla:expat:macbuild:expat.mcp", "expat$D.o");
BuildOneProject(":mozilla:htmlparser:macbuild:htmlparser.mcp", "htmlparser$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProjectWithOutput(":mozilla:gfx:macbuild:gfx.mcp", "gfx$C$D.$S", "gfx$D.$S", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:dom:macbuild:dom.mcp", "dom$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:modules:plugin:base:macbuild:plugin.mcp", "plugin$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
# Static library shared between different content- and layout-related libraries
BuildOneProject(":mozilla:content:macbuild:contentshared.mcp", "contentshared$D.o", 0, 0, 0);
BuildProject(":mozilla:content:macbuild:contentshared.mcp", "contentshared$D.o");
MakeAlias(":mozilla:content:macbuild:contentshared$D.o", ":mozilla:dist:content:");
BuildOneProject(":mozilla:content:macbuild:content.mcp", "content$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:content:macbuild:content.mcp", "content$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
if ($main::options{mathml})
{
BuildOneProject(":mozilla:layout:macbuild:layoutmathml.mcp", "layoutmathml$D.o", 0, 0, 0);
BuildProject(":mozilla:layout:macbuild:layoutmathml.mcp", "layoutmathml$D.o");
}
else
{
BuildOneProject(":mozilla:layout:macbuild:layoutmathml.mcp", "layoutmathml$D.o stub", 0, 0, 0);
BuildProject(":mozilla:layout:macbuild:layoutmathml.mcp", "layoutmathml$D.o stub");
}
if ($main::options{svg})
{
BuildOneProject(":mozilla:layout:macbuild:layoutsvg.mcp", "layoutsvg$D.o", 0, 0, 0);
BuildProject(":mozilla:layout:macbuild:layoutsvg.mcp", "layoutsvg$D.o");
}
else
{
BuildOneProject(":mozilla:layout:macbuild:layoutsvg.mcp", "layoutsvg$D.o stub", 0, 0, 0);
BuildProject(":mozilla:layout:macbuild:layoutsvg.mcp", "layoutsvg$D.o stub");
}
BuildOneProject(":mozilla:layout:macbuild:layout.mcp", "layout$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:view:macbuild:view.mcp", "view$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProjectWithOutput(":mozilla:widget:macbuild:widget.mcp", "widget$C$D.shlb", "widget$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:docshell:macbuild:docshell.mcp", "docshell$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:webshell:embed:mac:RaptorShell.mcp", "RaptorShell$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:layout:macbuild:layout.mcp", "layout$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:view:macbuild:view.mcp", "view$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProjectWithOutput(":mozilla:widget:macbuild:widget.mcp", "widget$C$D.$S", "widget$D.$S", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:docshell:macbuild:docshell.mcp", "docshell$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:webshell:embed:mac:RaptorShell.mcp", "RaptorShell$D.$S", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:rdf:macbuild:rdf.mcp", "RDFLibrary$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:rdf:macbuild:rdf.mcp", "RDFLibrary$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpinstall:macbuild:xpinstall.mcp", "xpinstall$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpinstall:macbuild:xpinstall.mcp", "xpinstall$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
if (!$main::options{carbon}) {
BuildOneProject(":mozilla:xpinstall:cleanup:macbuild:XPICleanup.mcp", "XPICleanup$D", 1, $main::ALIAS_SYM_FILES, 0);
InstallFromManifest(":mozilla:xpinstall:cleanup:MANIFEST_CMESSAGE", "$resource_dir");
}
BuildOneProject(":mozilla:xpinstall:macbuild:xpistub.mcp", "xpistub$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:xpinstall:macbuild:xpistub.mcp", "xpistub$D.$S", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProject(":mozilla:xpinstall:wizard:libxpnet:macbuild:xpnet.mcp", "xpnet$D.Lib", 0, 0, 0);
if (!($main::PROFILE)) {
BuildOneProject(":mozilla:xpinstall:wizard:mac:macbuild:MIW.mcp", "Mozilla Installer$D", 0, 0, 0);
@ -1580,12 +1603,14 @@ sub BuildAccessiblityProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
StartBuildModule("accessiblity");
if ($main::options{accessible})
{
BuildOneProject(":mozilla:accessible:macbuild:accessible.mcp", "accessible$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:accessible:macbuild:accessible.mcp", "accessible$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
}
EndBuildModule("accessiblity");
@ -1602,13 +1627,15 @@ sub BuildEditorProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
my($dist_dir) = GetBinDirectory();
StartBuildModule("editor");
BuildOneProject(":mozilla:editor:txmgr:macbuild:txmgr.mcp", "EditorTxmgr$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:editor:txtsvc:macbuild:txtsvc.mcp", "TextServices$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:editor:macbuild:editor.mcp", "EditorCore$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:editor:txmgr:macbuild:txmgr.mcp", "EditorTxmgr$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:editor:txtsvc:macbuild:txtsvc.mcp", "TextServices$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:editor:macbuild:editor.mcp", "EditorCore$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
EndBuildModule("editor");
}
@ -1633,7 +1660,10 @@ sub BuildViewerProjects()
StartBuildModule("viewer");
BuildOneProject(":mozilla:webshell:tests:viewer:mac:viewer.mcp", "viewer$C$D", 0, 0, 0);
if (! $main::options{"static_build"})
{
BuildProject(":mozilla:webshell:tests:viewer:mac:viewer.mcp", "viewer$C$D");
}
EndBuildModule("viewer");
}
@ -1650,6 +1680,8 @@ sub BuildEmbeddingProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
# $C becomes a component of target names for selecting either the Carbon or non-Carbon target of a project
my($C) = $main::options{carbon} ? "Carbon" : "";
@ -1657,10 +1689,10 @@ sub BuildEmbeddingProjects()
StartBuildModule("embedding");
BuildOneProject(":mozilla:embedding:components:build:macbuild:EmbedComponents.mcp", "EmbedComponents$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:embedding:browser:macbuild:webBrowser.mcp", "webBrowser$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:embedding:components:build:macbuild:EmbedComponents.mcp", "EmbedComponents$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:embedding:browser:macbuild:webBrowser.mcp", "webBrowser$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:embedding:base:macbuild:EmbedAPI.mcp", "EmbedAPI$D.o", 0, 0, 0);
BuildProject(":mozilla:embedding:base:macbuild:EmbedAPI.mcp", "EmbedAPI$D.o");
MakeAlias(":mozilla:embedding:base:macbuild:EmbedAPI$D.o", ":mozilla:dist:embedding:");
if ((!$main::options{carbon} && $main::options{embedding_test}) || ($main::options{carbon} && $main::options{embedding_test_carbon}))
@ -1668,12 +1700,15 @@ sub BuildEmbeddingProjects()
my($PowerPlantPath) = $main::options{carbon} ? "Carbon Support:PowerPlant" : "MacOS Support:PowerPlant";
if (-e GetCodeWarriorRelativePath($PowerPlantPath))
{
# Build PowerPlant and export the lib and the precompiled header
BuildOneProject(":mozilla:lib:mac:PowerPlant:PowerPlant.mcp", "PowerPlant$C$D.o", 0, 0, 0);
MakeAlias(":mozilla:lib:mac:PowerPlant:PowerPlant$C$D.o", ":mozilla:dist:mac:powerplant:");
MakeAlias(":mozilla:lib:mac:PowerPlant:pch:PPHeaders$D" . "_pch", ":mozilla:dist:mac:powerplant:");
if (! $main::options{"static_build"})
{
# Build PowerPlant and export the lib and the precompiled header
BuildOneProject(":mozilla:lib:mac:PowerPlant:PowerPlant.mcp", "PowerPlant$C$D.o", 0, 0, 0);
MakeAlias(":mozilla:lib:mac:PowerPlant:PowerPlant$C$D.o", ":mozilla:dist:mac:powerplant:");
MakeAlias(":mozilla:lib:mac:PowerPlant:pch:PPHeaders$D" . "_pch", ":mozilla:dist:mac:powerplant:");
BuildOneProject(":mozilla:embedding:browser:powerplant:PPBrowser.mcp", "PPEmbed$C$D", 0, 0, 0);
BuildOneProject(":mozilla:embedding:browser:powerplant:PPBrowser.mcp", "PPEmbed$C$D", 0, 0, 0);
}
}
else
{
@ -1696,20 +1731,22 @@ sub BuildXPAppProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
my($dist_dir) = GetBinDirectory();
StartBuildModule("xpapp");
# Components
BuildOneProject(":mozilla:xpfe:components:find:macbuild:FindComponent.mcp", "FindComponent$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:components:xfer:macbuild:xfer.mcp", "xfer$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:components:regviewer:RegViewer.mcp", "RegViewer$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:components:shistory:macbuild:shistory.mcp", "shistory$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:components:macbuild:appcomps.mcp", "appcomps$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:components:find:macbuild:FindComponent.mcp", "FindComponent$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:components:xfer:macbuild:xfer.mcp", "xfer$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:components:regviewer:RegViewer.mcp", "RegViewer$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:components:shistory:macbuild:shistory.mcp", "shistory$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:components:macbuild:appcomps.mcp", "appcomps$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
# Applications
BuildOneProject(":mozilla:xpfe:appshell:macbuild:AppShell.mcp", "AppShell$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:browser:macbuild:mozBrowser.mcp", "mozBrowser$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:appshell:macbuild:AppShell.mcp", "AppShell$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:xpfe:browser:macbuild:mozBrowser.mcp", "mozBrowser$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
EndBuildModule("xpapp");
}
@ -1726,6 +1763,8 @@ sub BuildExtensionsProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
my($dist_dir) = GetBinDirectory();
StartBuildModule("extensions");
@ -1750,7 +1789,7 @@ sub BuildExtensionsProjects()
# Transformiix
if ($main::options{transformiix})
{
BuildOneProject(":mozilla:extensions:transformiix:macbuild:transformiix.mcp", "transformiix$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:transformiix:macbuild:transformiix.mcp", "transformiix$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
}
# LDAP Client
@ -1759,32 +1798,38 @@ sub BuildExtensionsProjects()
my($experi) = $main::options{ldap_experimental} ? " experi" : "";
BuildOneProject(":mozilla:directory:c-sdk:ldap:libraries:macintosh:LDAPClient.mcp", "LDAPClient$D.shlb", 1, $main::ALIAS_SYM_FILES, 0);
BuildOneProjectWithOutput(":mozilla:directory:xpcom:macbuild:mozldap.mcp", "mozldap$D.shlb$experi", "mozldap$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProjectWithOutput(":mozilla:directory:xpcom:macbuild:mozldap.mcp", "mozldap$D.$S$experi", "mozldap$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
if ($main::options{ldap_experimental})
{
InstallResources(":mozilla:directory:xpcom:datasource:MANIFEST_COMPONENTS", "$components_dir");
}
}
else
{
# build a project that outputs a dummy LDAPClient lib so that later projects (e.g. apprunner) have something
# to link against. This is really only needed for the static build, but there is no harm in building it anyway.
BuildOneProject(":mozilla:directory:xpcom:macbuild:LDAPClientDummyLib.mcp", "LDAPClient$D.shlb", 1, 0, 0);
}
# XML Extras
if ($main::options{soap})
{
BuildOneProject(":mozilla:extensions:xmlextras:macbuild:xmlsoap.mcp", "xmlsoap$D.o", 0, 0, 0);
BuildProject(":mozilla:extensions:xmlextras:macbuild:xmlsoap.mcp", "xmlsoap$D.o");
}
else
{
BuildOneProject(":mozilla:extensions:xmlextras:macbuild:xmlsoap.mcp", "xmlsoap$D.o stub", 0, 0, 0);
BuildProject(":mozilla:extensions:xmlextras:macbuild:xmlsoap.mcp", "xmlsoap$D.o stub");
}
if ($main::options{xmlextras})
{
BuildOneProject(":mozilla:extensions:xmlextras:macbuild:xmlextras.mcp", "xmlextras$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:xmlextras:macbuild:xmlextras.mcp", "xmlextras$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
}
# Vixen
if ($main::options{vixen})
{
BuildOneProject(":mozilla:extensions:vixen:macbuild:vixen.mcp", "vixen$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:vixen:macbuild:vixen.mcp", "vixen$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
InstallResources(":mozilla:extensions:vixen:base:src:MANIFEST_COMPONENTS", "$components_dir");
}
@ -1792,19 +1837,19 @@ sub BuildExtensionsProjects()
# Document Inspector
if ($main::options{inspector})
{
BuildOneProject(":mozilla:extensions:inspector:macbuild:inspector.mcp", "inspector$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:inspector:macbuild:inspector.mcp", "inspector$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
}
# P3P
if ($main::options{p3p})
{
BuildOneProject(":mozilla:extensions:p3p:macbuild:p3p.mcp", "p3p$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:extensions:p3p:macbuild:p3p.mcp", "p3p$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
}
# JS Debugger
if ($main::options{jsdebugger})
{
BuildOneProject(":mozilla:js:jsd:macbuild:JSD.mcp", "jsdService$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:js:jsd:macbuild:JSD.mcp", "jsdService$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
InstallResources(":mozilla:extensions:venkman:js:MANIFEST_COMPONENTS", "$components_dir");
}
@ -1875,27 +1920,33 @@ sub BuildMailNewsProjects()
# $D becomes a suffix to target names for selecting either the debug or non-debug target of a project
my($D) = $main::DEBUG ? "Debug" : "";
# $S becomes the target suffix for the shared lib or static build.
my($S) = $main::options{static_build} ? "o" : "shlb";
my($dist_dir) = GetBinDirectory();
StartBuildModule("mailnews");
BuildOneProject(":mozilla:mailnews:base:util:macbuild:msgUtil.mcp", "MsgUtil$D.lib", 0, 0, 0);
BuildOneProject(":mozilla:mailnews:base:macbuild:msgCore.mcp", "mailnews$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:compose:macbuild:msgCompose.mcp", "MsgCompose$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:db:macbuild:msgDB.mcp", "MsgDB$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:local:macbuild:msglocal.mcp", "MsgLocal$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:imap:macbuild:msgimap.mcp", "MsgImap$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:news:macbuild:msgnews.mcp", "MsgNews$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:addrbook:macbuild:msgAddrbook.mcp", "MsgAddrbook$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:absync:macbuild:AbSync.mcp", "AbSyncSvc$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:mime:macbuild:mime.mcp", "Mime$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:mime:emitters:macbuild:mimeEmitter.mcp", "mimeEmitter$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:mime:cthandlers:vcard:macbuild:vcard.mcp", "vcard$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:mime:cthandlers:smimestub:macbuild:smime.mcp", "smime$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
# BuildOneProject(":mozilla:mailnews:mime:cthandlers:calendar:macbuild:calendar.mcp", "calendar$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:import:macbuild:msgImport.mcp", "msgImport$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:import:text:macbuild:msgImportText.mcp", "msgImportText$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:import:eudora:macbuild:msgImportEudora.mcp", "msgImportEudora$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:base:macbuild:msgCore.mcp", "mailnews$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:compose:macbuild:msgCompose.mcp", "MsgCompose$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:db:macbuild:msgDB.mcp", "MsgDB$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:local:macbuild:msglocal.mcp", "MsgLocal$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:imap:macbuild:msgimap.mcp", "MsgImap$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:news:macbuild:msgnews.mcp", "MsgNews$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:addrbook:macbuild:msgAddrbook.mcp", "MsgAddrbook$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:absync:macbuild:AbSync.mcp", "AbSyncSvc$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:mime:macbuild:mime.mcp", "Mime$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:mime:emitters:macbuild:mimeEmitter.mcp", "mimeEmitter$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:mime:cthandlers:vcard:macbuild:vcard.mcp", "vcard$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:mime:cthandlers:smimestub:macbuild:smime.mcp", "smime$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
# BuildOneProject(":mozilla:mailnews:mime:cthandlers:calendar:macbuild:calendar.mcp", "calendar$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:import:macbuild:msgImport.mcp", "msgImport$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:import:text:macbuild:msgImportText.mcp", "msgImportText$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
BuildOneProject(":mozilla:mailnews:import:eudora:macbuild:msgImportEudora.mcp", "msgImportEudora$D.$S", 1, $main::ALIAS_SYM_FILES, 1);
if ($main::options{static_build}) {
BuildOneProject(":mozilla:modules:staticmod:macbuild:mailnewsComponent.mcp", "MetaMailNews$D.shlb", 1, $main::ALIAS_SYM_FILES, 1);
}
InstallResources(":mozilla:mailnews:addrbook:src:MANIFEST_COMPONENTS", "${dist_dir}Components");
@ -1919,16 +1970,22 @@ sub BuildMozilla()
StartBuildModule("apprunner");
BuildOneProject(":mozilla:xpfe:bootstrap:macbuild:apprunner.mcp", "apprunner$C$D", 0, 0, 1);
if ($main::options{static_build}) {
BuildProject(":mozilla:xpfe:bootstrap:macbuild:StaticMerge.mcp", "StaticMerge$D.o");
} else {
BuildProject(":mozilla:xpfe:bootstrap:macbuild:StaticMerge.mcp", "StaticMergeDummy$D.o");
}
BuildProject(":mozilla:xpfe:bootstrap:macbuild:apprunner.mcp", "apprunner$C$D");
# build tool to create Component Registry in release builds only.
if (!($main::DEBUG)) {
BuildOneProject(":mozilla:xpcom:tools:registry:macbuild:RegXPCOM.mcp", "RegXPCOM", 0, 0, 1);
BuildProject(":mozilla:xpcom:tools:registry:macbuild:RegXPCOM.mcp", "RegXPCOM");
}
# build XPCShell to test the cache in debugging builds only.
if ($main::DEBUG) {
BuildOneProject(":mozilla:js:macbuild:XPCShell.mcp", "XPCShellDebug", 0, 0, 1);
BuildProject(":mozilla:js:macbuild:XPCShell.mcp", "XPCShellDebug");
}
# copy command line documents into the Apprunner folder and set correctly the signature