Newer
Older
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
# The contents of this file are subject to the Mozilla 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/MPL/
#
# 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.

dmose%mozilla.org
committed
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Stephen Lamm

bsmedberg%covad.net
committed
# Benjamin Smedberg <bsmedberg@covad.net>
# Chase Phillips <chase@mozilla.org>

mark%moxienet.com
committed
# Mark Mentovai <mark@moxienet.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.

dmose%mozilla.org
committed
#
# ***** END LICENSE BLOCK *****

bsmedberg%covad.net
committed
# Build a mozilla application.

slamm%netscape.com
committed
# To checkout and build a tree,

slamm%netscape.com
committed
# 1. cvs co mozilla/client.mk
# 2. cd mozilla

bsmedberg%covad.net
committed
# 3. create your .mozconfig file with

dougt%meer.net
committed
# mk_add_options MOZ_CO_PROJECT=suite,browser,mail,minimo,xulrunner

bsmedberg%covad.net
committed
# 4. gmake -f client.mk
#
# This script will pick up the CVSROOT from the CVS/Root file. If you wish
# to use a different CVSROOT, you must set CVSROOT in your environment:
#
# export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
# export CVSROOT=:pserver:username%somedomain.org@cvs.mozilla.org:/cvsroot
#
# You must specify which products/modules you wish to checkout, with
# MOZ_CO_PROJECT, MOZ_CO_MODULE, and BUILD_MODULES variables.
#
# MOZ_CO_PROJECT possibilities include the following:
# suite (Seamonkey suite)
# browser (aka Firefox)
# mail (aka Thunderbird)

dougt%meer.net
committed
# minimo (small browser for devices)

bsmedberg%covad.net
committed
# composer (standalone composer, aka NVU)
# calendar (aka Sunbird, use this to build the calendar extensions also)
# xulrunner
# macbrowser (aka Camino)
#
# Other common MOZ_CO_MODULE options include the following:
# mozilla/other-licenses/libart_lgpl

darin%meer.net
committed
# mozilla/other-licenses/bsdiff

bsmedberg%covad.net
committed
# mozilla/tools/codesighs

slamm%netscape.com
committed
# Other targets (gmake -f client.mk [targets...]),

slamm%netscape.com
committed
# checkout
# build
# clean (realclean is now the same as clean)
# distclean

bsmedberg%covad.net
committed
# See http://www.mozilla.org/build/ for more information.

slamm%netscape.com
committed
# Options:

bsmedberg%covad.net
committed
# MOZ_BUILD_PROJECTS - Build multiple projects in subdirectories
# of MOZ_OBJDIR

slamm%netscape.com
committed
# MOZ_OBJDIR - Destination object directory
# MOZ_CO_DATE - Date tag to use for checkout (default: none)

bsmedberg%covad.net
committed
# MOZ_CO_LOCALES_DATE - Date tag to use for locale checkout
# (default: MOZ_CO_DATE)

bsmedberg%covad.net
committed
# MOZ_CO_MODULE - Module to checkout

slamm%netscape.com
committed
# MOZ_CVS_FLAGS - Flags to pass cvs (default: -q -z3)
# MOZ_CO_FLAGS - Flags to pass after 'cvs co' (default: -P)
# MOZ_MAKE_FLAGS - Flags to pass to $(MAKE)

bsmedberg%covad.net
committed
# MOZ_CO_LOCALES - localizations to pull (MOZ_CO_LOCALES="de-DE,pt-BR")
# MOZ_LOCALE_DIRS - directories which contain localizations
# LOCALES_CVSROOT - CVSROOT to use to pull localizations

mark%moxienet.com
committed
# MOZ_PREFLIGHT_ALL } - Makefiles to run before any project in
# MOZ_PREFLIGHT } MOZ_BUILD_PROJECTS, before each project, after
# MOZ_POSTFLIGHT } each project, and after all projects; these
# MOZ_POSTFLIGHT_ALL } variables contain space-separated lists

slamm%netscape.com
committed
#

slamm%netscape.com
committed

bsmedberg%covad.net
committed
AVAILABLE_PROJECTS = \

bsmedberg%covad.net
committed
suite \
toolkit \
browser \
mail \

dougt%meer.net
committed
minimo \

bsmedberg%covad.net
committed
composer \
calendar \
xulrunner \
macbrowser \
$(NULL)

bsmedberg%covad.net
committed
MODULES_core := \

bsmedberg%covad.net
committed
SeaMonkeyAll \
mozilla/browser/config/version.txt \
mozilla/mail/config/version.txt \

bsmedberg%covad.net
committed
mozilla/ipc/ipcd \
mozilla/modules/libpr0n \

darin%meer.net
committed
mozilla/modules/libmar \
mozilla/modules/libbz2 \

bsmedberg%covad.net
committed
mozilla/accessible \
mozilla/security/manager \
mozilla/toolkit \
mozilla/storage \
mozilla/db/sqlite3 \
mozilla/db/morkreader \

myk%mozilla.org
committed
mozilla/tools/cross-commit \

davel%mozilla.com
committed
mozilla/tools/test-harness \

bsmedberg%covad.net
committed
$(NULL)

kairo%kairo.at
committed
LOCALES_core := \

bsmedberg%covad.net
committed
netwerk \
dom \
$(NULL)

bsmedberg%covad.net
committed
MODULES_toolkit := \

kairo%kairo.at
committed
$(MODULES_core) \

bsmedberg%covad.net
committed
mozilla/chrome \
$(NULL)
LOCALES_toolkit := \

kairo%kairo.at
committed
$(LOCALES_core) \

bsmedberg%covad.net
committed
toolkit \

bsmedberg%covad.net
committed
security/manager \

bsmedberg%covad.net
committed
$(NULL)

kairo%kairo.at
committed
MODULES_suite := \
$(MODULES_core) \
mozilla/suite \
$(NULL)
LOCALES_suite := \
$(LOCALES_core) \
$(NULL)

bsmedberg%covad.net
committed
MODULES_browser := \
$(MODULES_toolkit) \
mozilla/browser \
mozilla/other-licenses/branding/firefox \
mozilla/other-licenses/7zstub/firefox \
$(NULL)
LOCALES_browser := \
$(LOCALES_toolkit) \

bsmedberg%covad.net
committed
browser \
extensions/reporter \

bsmedberg%covad.net
committed
other-licenses/branding/firefox \

bsmedberg%covad.net
committed
$(NULL)
BOOTSTRAP_browser := mozilla/browser/config/mozconfig

bsmedberg%covad.net
committed
MODULES_minimo := \
$(MODULES_toolkit) \
mozilla/minimo \
$(NULL)

dougt%meer.net
committed

bsmedberg%covad.net
committed
MODULES_mail := \
$(MODULES_toolkit) \
mozilla/mail \
mozilla/other-licenses/branding/thunderbird \
mozilla/other-licenses/7zstub/thunderbird \
$(NULL)
LOCALES_mail := \
$(LOCALES_toolkit) \

bsmedberg%covad.net
committed
mail \
other-licenses/branding/thunderbird \

bsmedberg%covad.net
committed
editor/ui \

bsmedberg%covad.net
committed
$(NULL)
BOOTSTRAP_mail := mozilla/mail/config/mozconfig

bsmedberg%covad.net
committed
MODULES_composer := \
$(MODULES_toolkit) \
mozilla/composer \
$(NULL)
MODULES_calendar := \
$(MODULES_toolkit) \

shaver%mozilla.org
committed
mozilla/storage \
mozilla/db/sqlite3 \

bsmedberg%covad.net
committed
mozilla/calendar \
$(NULL)
BOOTSTRAP_calendar := mozilla/calendar/sunbird/config/mozconfig

bsmedberg%covad.net
committed
MODULES_xulrunner := \
$(MODULES_toolkit) \
mozilla/xulrunner \
$(NULL)

axel%pike.org
committed
LOCALES_xulrunner := \
$(LOCALES_toolkit) \
$(NULL)
BOOTSTRAP_xulrunner := mozilla/xulrunner/config/mozconfig

bsmedberg%covad.net
committed
MODULES_macbrowser := \

kairo%kairo.at
committed
$(MODULES_core) \

bsmedberg%covad.net
committed
$(NULL)
BOOTSTRAP_macbrowser := mozilla/camino/config/mozconfig
MODULES_all := \
mozilla/other-licenses/bsdiff \
mozilla/other-licenses/libart_lgpl \
mozilla/tools/trace-malloc \
mozilla/tools/jprof \
mozilla/tools/codesighs \
mozilla/tools/update-packaging \
mozilla/other-licenses/branding \
mozilla/other-licenses/7zstub \
$(NULL)

slamm%netscape.com
committed
#######################################################################
# Checkout Tags
#
# For branches, uncomment the MOZ_CO_TAG line with the proper tag,
# and commit this file on that tag.

bsmedberg%covad.net
committed
#MOZ_CO_TAG = <tag>
NSPR_CO_TAG = NSPRPUB_PRE_4_2_CLIENT_BRANCH
NSS_CO_TAG = NSS_CLIENT_TAG
LDAPCSDK_CO_TAG = ldapcsdk_50_client_branch
LOCALES_CO_TAG =
BUILD_MODULES = all

slamm%netscape.com
committed
#######################################################################
# Defines
#

bsmedberg%covad.net
committed
comma := ,

slamm%netscape.com
committed
CWD := $(shell pwd)
ifneq (, $(wildcard client.mk))

slamm%netscape.com
committed
# Ran from mozilla directory
ROOTDIR := $(shell dirname $(CWD))
TOPSRCDIR := $(CWD)

slamm%netscape.com
committed
else

slamm%netscape.com
committed
# Ran from mozilla/.. directory (?)
ROOTDIR := $(CWD)
TOPSRCDIR := $(CWD)/mozilla

slamm%netscape.com
committed
endif
# on os2, TOPSRCDIR may have two forward slashes in a row, which doesn't
# work; replace first instance with one forward slash
TOPSRCDIR := $(shell echo "$(TOPSRCDIR)" | sed -e 's%//%/%')
ifndef TOPSRCDIR_MOZ
TOPSRCDIR_MOZ=$(TOPSRCDIR)
endif
# if ROOTDIR equals only drive letter (i.e. "C:"), set to "/"
DIRNAME := $(shell echo "$(ROOTDIR)" | sed -e 's/^.://')

slamm%netscape.com
committed
AUTOCONF := autoconf
MKDIR := mkdir
SH := /bin/sh

slamm%netscape.com
committed
MAKE := gmake

slamm%netscape.com
committed
endif

slamm%netscape.com
committed
CONFIG_GUESS_SCRIPT := $(wildcard $(TOPSRCDIR)/build/autoconf/config.guess)
ifdef CONFIG_GUESS_SCRIPT
CONFIG_GUESS = $(shell $(CONFIG_GUESS_SCRIPT))

slamm%netscape.com
committed
else

slamm%netscape.com
committed
_IS_FIRST_CHECKOUT := 1

slamm%netscape.com
committed
####################################
# CVS
# Add the CVS root to CVS_FLAGS if needed

slamm%netscape.com
committed
CVS_ROOT_IN_TREE := $(shell cat $(TOPSRCDIR)/CVS/Root 2>/dev/null)

slamm%netscape.com
committed
ifneq ($(CVS_ROOT_IN_TREE),)
ifneq ($(CVS_ROOT_IN_TREE),$(CVSROOT))

slamm%netscape.com
committed
CVS_FLAGS := -d $(CVS_ROOT_IN_TREE)

slamm%netscape.com
committed
endif

bsmedberg%covad.net
committed
CVS_CO_DATE_FLAGS = $(if $(MOZ_CO_DATE),-D "$(MOZ_CO_DATE)")

bsmedberg%covad.net
committed
CVS_CO_LOCALES_DATE_FLAGS = $(if $(MOZ_CO_LOCALES_DATE),-D "$(MOZ_CO_LOCALES_DATE)")

bsmedberg%covad.net
committed
CVSCO = $(CVS) $(CVS_FLAGS) co $(MOZ_CO_FLAGS) $(if $(MOZ_CO_TAG),-r $(MOZ_CO_TAG)) $(CVS_CO_DATE_FLAGS)

bsmedberg%covad.net
committed

slamm%netscape.com
committed
CVSCO_LOGFILE := $(ROOTDIR)/cvsco.log
CVSCO_LOGFILE := $(shell echo $(CVSCO_LOGFILE) | sed s%//%/%)

slamm%netscape.com
committed
# if LOCALES_CVSROOT is not specified, set it here
# (and let mozconfig override it)
LOCALES_CVSROOT ?= :pserver:anonymous@cvs-mirror.mozilla.org:/l10n

slamm%netscape.com
committed
####################################

slamm%netscape.com
committed
# Load mozconfig Options

slamm%netscape.com
committed

bsmedberg%covad.net
committed
# See build pages, http://www.mozilla.org/build/ for how to set up mozconfig.

slamm%netscape.com
committed
MOZCONFIG_LOADER := mozilla/build/autoconf/mozconfig2client-mk
MOZCONFIG_FINDER := mozilla/build/autoconf/mozconfig-find

seawood%netscape.com
committed
MOZCONFIG_MODULES := mozilla/build/unix/modules.mk mozilla/build/unix/uniq.pl

slamm%netscape.com
committed
run_for_side_effects := \
$(shell cd $(ROOTDIR); \

slamm%netscape.com
committed
if test "$(_IS_FIRST_CHECKOUT)"; then \
$(CVSCO) $(MOZCONFIG_FINDER) $(MOZCONFIG_LOADER) $(MOZCONFIG_MODULES); \

slamm%netscape.com
committed
else true; \
fi; \
$(MOZCONFIG_LOADER) $(TOPSRCDIR) mozilla/.mozconfig.mk > mozilla/.mozconfig.out)
include $(TOPSRCDIR)/.mozconfig.mk
include $(TOPSRCDIR)/build/unix/modules.mk

slamm%netscape.com
committed

slamm%netscape.com
committed
####################################
# Options that may come from mozconfig

slamm%netscape.com
committed

bsmedberg%covad.net
committed
MOZ_PROJECT_LIST := $(subst $(comma), ,$(MOZ_CO_PROJECT))
ifneq (,$(filter-out $(AVAILABLE_PROJECTS),$(MOZ_PROJECT_LIST)))
$(error MOZ_CO_PROJECT contains an unrecognized project.)
endif
ifeq (all,$(filter all,$(MOZ_PROJECT_LIST)))
MOZ_PROJECT_LIST := $(AVAILABLE_PROJECTS)
endif

bsmedberg%covad.net
committed
MOZ_MODULE_LIST := $(subst $(comma), ,$(MOZ_CO_MODULE)) $(foreach project,$(MOZ_PROJECT_LIST),$(MODULES_$(project)))
LOCALE_DIRS := $(MOZ_LOCALE_DIRS) $(foreach project,$(MOZ_PROJECT_LIST),$(LOCALES_$(project)))
MOZCONFIG_MODULES += $(foreach project,$(MOZ_PROJECT_LIST),$(BOOTSTRAP_$(project)))

bsmedberg%covad.net
committed
# Using $(sort) here because it also removes duplicate entries.
MOZ_MODULE_LIST := $(sort $(MOZ_MODULE_LIST))
LOCALE_DIRS := $(sort $(LOCALE_DIRS))

bryner%brianryner.com
committed
MOZCONFIG_MODULES := $(sort $(MOZCONFIG_MODULES))

slamm%netscape.com
committed
# Change CVS flags if anonymous root is requested
ifdef MOZ_CO_USE_MIRROR
CVS_FLAGS := -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
endif
# MOZ_CVS_FLAGS - Basic CVS flags
ifeq "$(origin MOZ_CVS_FLAGS)" "undefined"
else
CVS_FLAGS := $(MOZ_CVS_FLAGS)
endif

bsmedberg%covad.net
committed
ifdef MOZ_BUILD_PROJECTS
ifndef MOZ_OBJDIR
$(error When MOZ_BUILD_PROJECTS is set, you must set MOZ_OBJDIR)
endif
ifdef MOZ_CURRENT_PROJECT
OBJDIR = $(MOZ_OBJDIR)/$(MOZ_CURRENT_PROJECT)
MOZ_MAKE = $(MAKE) $(MOZ_MAKE_FLAGS) -C $(OBJDIR)
BUILD_PROJECT_ARG = MOZ_BUILD_APP=$(MOZ_CURRENT_PROJECT)
else
OBJDIR = $(error Cannot find the OBJDIR when MOZ_CURRENT_PROJECT is not set.)
MOZ_MAKE = $(error Cannot build in the OBJDIR when MOZ_CURRENT_PROJECT is not set.)
endif
else # MOZ_BUILD_PROJECTS

slamm%netscape.com
committed
ifdef MOZ_OBJDIR

bsmedberg%covad.net
committed
OBJDIR = $(MOZ_OBJDIR)
MOZ_MAKE = $(MAKE) $(MOZ_MAKE_FLAGS) -C $(OBJDIR)

slamm%netscape.com
committed
else
OBJDIR := $(TOPSRCDIR)

seawood%netscape.com
committed
MOZ_MAKE := $(MAKE) $(MOZ_MAKE_FLAGS)

slamm%netscape.com
committed
endif

bsmedberg%covad.net
committed
endif # MOZ_BUILD_PROJECTS
####################################
# CVS defines for NSS
#

bsmedberg%covad.net
committed
NSS_CO_MODULE = \
mozilla/security/nss \
mozilla/security/coreconf \
$(NULL)

cls%seawood.org
committed
ifdef MOZ_CO_FLAGS
NSS_CO_FLAGS := $(MOZ_CO_FLAGS)
endif

bsmedberg%covad.net
committed
NSS_CO_FLAGS := $(NSS_CO_FLAGS) $(if $(NSS_CO_TAG),-r $(NSS_CO_TAG),-A)

cls%seawood.org
committed
# Cannot pull static tags by date
ifeq ($(NSS_CO_TAG),NSS_CLIENT_TAG)
CVSCO_NSS = $(CVS) $(CVS_FLAGS) co $(NSS_CO_FLAGS) $(NSS_CO_MODULE)
else
CVSCO_NSS = $(CVS) $(CVS_FLAGS) co $(NSS_CO_FLAGS) $(CVS_CO_DATE_FLAGS) $(NSS_CO_MODULE)
####################################
# CVS defines for NSPR

slamm%netscape.com
committed
NSPR_CO_MODULE = mozilla/nsprpub
NSPR_CO_FLAGS := -P

cls%seawood.org
committed
ifdef MOZ_CO_FLAGS
NSPR_CO_FLAGS := $(MOZ_CO_FLAGS)
endif

bsmedberg%covad.net
committed
NSPR_CO_FLAGS := $(NSPR_CO_FLAGS) $(if $(NSPR_CO_TAG),-r $(NSPR_CO_TAG),-A)
# Cannot pull static tags by date
ifeq ($(NSPR_CO_TAG),NSPRPUB_CLIENT_TAG)
CVSCO_NSPR = $(CVS) $(CVS_FLAGS) co $(NSPR_CO_FLAGS) $(NSPR_CO_MODULE)
else
CVSCO_NSPR = $(CVS) $(CVS_FLAGS) co $(NSPR_CO_FLAGS) $(CVS_CO_DATE_FLAGS) $(NSPR_CO_MODULE)
endif

dmose%mozilla.org
committed
####################################
# CVS defines for the C LDAP SDK
#

dmose%mozilla.org
committed
LDAPCSDK_CO_MODULE = mozilla/directory/c-sdk

dmose%mozilla.org
committed
LDAPCSDK_CO_FLAGS := -P

cls%seawood.org
committed
ifdef MOZ_CO_FLAGS
LDAPCSDK_CO_FLAGS := $(MOZ_CO_FLAGS)
endif

bsmedberg%covad.net
committed
LDAPCSDK_CO_FLAGS := $(LDAPCSDK_CO_FLAGS) $(if $(LDAPCSDK_CO_TAG),-r $(LDAPCSDK_CO_TAG),-A)
CVSCO_LDAPCSDK = $(CVS) $(CVS_FLAGS) co $(LDAPCSDK_CO_FLAGS) $(CVS_CO_DATE_FLAGS) $(LDAPCSDK_CO_MODULE)

dmose%mozilla.org
committed
####################################
# CVS defines for standalone modules
#

seawood%netscape.com
committed
ifeq ($(BUILD_MODULES),all)
CHECKOUT_STANDALONE := true
CHECKOUT_STANDALONE_NOSUBDIRS := true
else
STANDALONE_CO_MODULE := $(filter-out $(NSPRPUB_DIR) security directory/c-sdk, $(BUILD_MODULE_CVS))
STANDALONE_CO_MODULE += allmakefiles.sh client.mk aclocal.m4 configure configure.in
STANDALONE_CO_MODULE += Makefile.in

cls%seawood.org
committed

bsmedberg%covad.net
committed
MOZ_MODULE_LIST += $(addprefix mozilla/,$(STANDALONE_CO_MODULE))
NOSUBDIRS_MODULE := $(addprefix mozilla/,$(BUILD_MODULE_CVS_NS))

cls%seawood.org
committed

bsmedberg%covad.net
committed
ifeq (,$(filter $(NSPRPUB_DIR), $(BUILD_MODULE_CVS))$(MOZ_CO_PROJECT))
CVSCO_NSPR :=
endif

bsmedberg%covad.net
committed
ifeq (,$(filter security security/manager, $(BUILD_MODULE_CVS))$(MOZ_CO_PROJECT))
endif

bsmedberg%covad.net
committed
ifeq (,$(filter directory/c-sdk, $(BUILD_MODULE_CVS))$(MOZ_CO_PROJECT))

dmose%mozilla.org
committed
CVSCO_LDAPCSDK :=
endif
####################################

bsmedberg%covad.net
committed
# Error on obsolete variables.
#

bsmedberg%covad.net
committed
ifdef MOZ_MAPINFO

bsmedberg%covad.net
committed
$(warning MOZ_MAPINFO is obsolete, use MOZ_CO_MODULE=mozilla/tools/codesighs instead.)

bsmedberg%covad.net
committed
MOZ_MODULE_LIST += mozilla/tools/codesighs
endif

bsmedberg%covad.net
committed
ifdef MOZ_INTERNAL_LIBART_LGPL
$(error MOZ_INTERNAL_LIBART_LGPL is obsolete, use MOZ_CO_MODULE=mozilla/other-licenses/libart_lgpl instead.)
endif

bryner%netscape.com
committed
ifdef MOZ_PHOENIX

bsmedberg%covad.net
committed
$(warning MOZ_PHOENIX is obsolete.)
MOZ_MODULE_LIST += $(MODULES_browser)
# $(error MOZ_PHOENIX is obsolete, use MOZ_CO_PROJECT=browser and --enable-application=browser)

bryner%netscape.com
committed
endif

scott%scott-macgregor.org
committed
ifdef MOZ_THUNDERBIRD

bsmedberg%covad.net
committed
$(warning MOZ_THUNDERBIRD is obsolete.)
MOZ_MODULE_LIST += $(MODULES_mail)
# $(error MOZ_THUNDERBIRD is obsolete, use MOZ_CO_PROJECT=mail and --enable-application=mail)

scott%scott-macgregor.org
committed
endif

bsmedberg%covad.net
committed
###################################
# Checkout main modules

bsmedberg%covad.net
committed
# sort is used to remove duplicates. SeaMonkeyAll is special-cased to
# checkout last, because if you check it out first, there is a sticky
# tag left over from checking out the LDAP SDK, which causes files in
# the root directory to be missed.

bsmedberg%covad.net
committed
MOZ_MODULE_LIST := $(sort $(filter-out SeaMonkeyAll,$(MOZ_MODULE_LIST))) $(firstword $(filter SeaMonkeyAll,$(MOZ_MODULE_LIST)))

bsmedberg%covad.net
committed
MODULES_CO_FLAGS := -P
ifdef MOZ_CO_FLAGS

bsmedberg%covad.net
committed
MODULES_CO_FLAGS := $(MOZ_CO_FLAGS)
endif

bsmedberg%covad.net
committed
MODULES_CO_FLAGS := $(MODULES_CO_FLAGS) $(if $(MOZ_CO_TAG),-r $(MOZ_CO_TAG),-A)

bsmedberg%covad.net
committed
CVSCO_MODULES_NS = $(CVS) $(CVS_FLAGS) co $(MODULES_CO_FLAGS) $(CVS_CO_DATE_FLAGS) -l $(NOSUBDIRS_MODULE)

scott%scott-macgregor.org
committed

bsmedberg%covad.net
committed
ifeq (,$(strip $(MOZ_MODULE_LIST)))

bsmedberg%covad.net
committed
FASTUPDATE_MODULES = $(error No modules or projects were specified. Use MOZ_CO_PROJECT to specify a project for checkout.)
CHECKOUT_MODULES = $(error No modules or projects were specified. Use MOZ_CO_PROJECT to specify a project for checkout.)
else

bsmedberg%covad.net
committed
FASTUPDATE_MODULES := fast_update $(CVS) $(CVS_FLAGS) co $(MODULES_CO_FLAGS) $(CVS_CO_DATE_FLAGS) $(MOZ_MODULE_LIST)
CHECKOUT_MODULES := $(foreach module,$(MOZ_MODULE_LIST),cvs_co $(CVS) $(CVS_FLAGS) co $(MODULES_CO_FLAGS) $(CVS_CO_DATE_FLAGS) $(module);)

bsmedberg%covad.net
committed
endif
ifeq (,$(NOSUBDIRS_MODULE))
FASTUPDATE_MODULES_NS := true
CHECKOUT_MODULES_NS := true

bsmedberg%covad.net
committed
FASTUPDATE_MODULES_NS := fast_update $(CVSCO_MODULES_NS)
CHECKOUT_MODULES_NS := cvs_co $(CVSCO_MODULES_NS)
###################################
# CVS defines for locales
#

bsmedberg%covad.net
committed
LOCALES_CO_FLAGS := -P
ifdef MOZ_CO_FLAGS
LOCALES_CO_FLAGS := $(MOZ_CO_FLAGS)
endif

bsmedberg%covad.net
committed
LOCALES_CO_FLAGS := $(LOCALES_CO_FLAGS) $(if $(LOCALES_CO_TAG),-r $(LOCALES_CO_TAG),-A)
ifndef MOZ_CO_LOCALES
FASTUPDATE_LOCALES := true
CHECKOUT_LOCALES := true
else

bsmedberg%covad.net
committed
override MOZ_CO_LOCALES := $(subst $(comma), ,$(MOZ_CO_LOCALES))
ifeq (all,$(MOZ_CO_LOCALES))

bsmedberg%covad.net
committed
MOZCONFIG_MODULES += $(foreach project,$(MOZ_PROJECT_LIST),mozilla/$(project)/locales/all-locales)

bsmedberg%covad.net
committed
LOCALE_CO_DIRS := $(sort $(foreach project,$(MOZ_PROJECT_LIST),$(foreach locale,$(shell cat mozilla/$(project)/locales/all-locales),$(foreach dir,$(LOCALES_$(project)),l10n/$(locale)/$(dir)))))

bsmedberg%covad.net
committed
else # MOZ_CO_LOCALES != all

axel%pike.org
committed
LOCALE_CO_DIRS = $(sort $(foreach locale,$(MOZ_CO_LOCALES),$(foreach dir,$(LOCALE_DIRS),l10n/$(locale)/$(dir))))

bsmedberg%covad.net
committed
endif

bsmedberg%covad.net
committed
CVSCO_LOCALES := $(CVS) $(CVS_FLAGS) -d $(LOCALES_CVSROOT) co $(LOCALES_CO_FLAGS) $(CVS_CO_LOCALES_DATE_FLAGS) $(LOCALE_CO_DIRS)
FASTUPDATE_LOCALES := fast_update $(CVSCO_LOCALES)
CHECKOUT_LOCALES := cvs_co $(CVSCO_LOCALES)
endif #MOZ_CO_LOCALES

slamm%netscape.com
committed
#######################################################################

slamm%netscape.com
committed
# Rules
# Print out any options loaded from mozconfig.
all build checkout clean depend distclean export libs install realclean::
@if test -f .mozconfig.out; then \
cat .mozconfig.out; \
rm -f .mozconfig.out; \
else true; \
fi

slamm%netscape.com
committed
ifdef _IS_FIRST_CHECKOUT
all:: checkout build

slamm%netscape.com
committed
else

seawood%netscape.com
committed
all:: checkout alldep

slamm%netscape.com
committed
endif
# Windows equivalents

slamm%netscape.com
committed
pull_all: checkout
build_all: build

seawood%netscape.com
committed
build_all_dep: alldep
build_all_depend: alldep

slamm%netscape.com
committed
clobber clobber_all: clean
pull_and_build_all: checkout alldep
# Do everything from scratch

slamm%netscape.com
committed
everything: checkout clean build

slamm%netscape.com
committed
####################################

slamm%netscape.com
committed
@if test -f $(CVSCO_LOGFILE) ; then \
mv $(CVSCO_LOGFILE) $(CVSCO_LOGFILE).old; \
else true; \
fi
ifdef RUN_AUTOCONF_LOCALLY
@echo "Removing local configures" ; \
cd $(ROOTDIR) && \
$(RM) -f mozilla/configure mozilla/nsprpub/configure \
endif

slamm%netscape.com
committed
@echo "checkout start: "`date` | tee $(CVSCO_LOGFILE)
@echo '$(CVSCO) $(CVS_CO_DATE_FLAGS) mozilla/client.mk $(MOZCONFIG_MODULES)'; \

seawood%netscape.com
committed
cd $(ROOTDIR) && \
$(CVSCO) $(CVS_CO_DATE_FLAGS) mozilla/client.mk $(MOZCONFIG_MODULES)

seawood%netscape.com
committed
@cd $(ROOTDIR) && $(MAKE) -f mozilla/client.mk real_checkout

slamm%netscape.com
committed
# Start the checkout. Split the output to the tty and a log file.

slamm%netscape.com
committed
real_checkout:
@set -e; \
cvs_co() { set -e; echo "$$@" ; \
"$$@" 2>&1 | tee -a $(CVSCO_LOGFILE); }; \
cvs_co $(CVSCO_NSPR); \
cvs_co $(CVSCO_NSS); \
cvs_co $(CVSCO_LDAPCSDK); \

bsmedberg%covad.net
committed
$(CHECKOUT_MODULES) \

bsmedberg%covad.net
committed
$(CHECKOUT_MODULES_NS); \

slamm%netscape.com
committed
@echo "checkout finish: "`date` | tee -a $(CVSCO_LOGFILE)

bryner%netscape.com
committed
# update the NSS checkout timestamp
@if test `egrep -c '^(U|C) mozilla/security/(nss|coreconf)' $(CVSCO_LOGFILE) 2>/dev/null` != 0; then \
touch $(TOPSRCDIR)/security/manager/.nss.checkout; \
fi
# @: Check the log for conflicts. ;
@conflicts=`egrep "^C " $(CVSCO_LOGFILE)` ;\
if test "$$conflicts" ; then \
echo "$(MAKE): *** Conflicts during checkout." ;\
echo "$$conflicts" ;\
echo "$(MAKE): Refer to $(CVSCO_LOGFILE) for full log." ;\

slamm%netscape.com
committed
false; \
else true; \
fi
ifdef RUN_AUTOCONF_LOCALLY
@echo Generating configures using $(AUTOCONF) ; \
cd $(TOPSRCDIR) && $(AUTOCONF) && \
cd $(TOPSRCDIR)/nsprpub && $(AUTOCONF) && \
cd $(TOPSRCDIR)/directory/c-sdk && $(AUTOCONF)
endif

slamm%netscape.com
committed
# @: Backup the last checkout log.
@if test -f $(CVSCO_LOGFILE) ; then \
mv $(CVSCO_LOGFILE) $(CVSCO_LOGFILE).old; \
else true; \
fi
ifdef RUN_AUTOCONF_LOCALLY
@echo "Removing local configures" ; \
cd $(ROOTDIR) && \
$(RM) -f mozilla/configure mozilla/nsprpub/configure \
endif
@echo "checkout start: "`date` | tee $(CVSCO_LOGFILE)

seawood%netscape.com
committed
@echo '$(CVSCO) mozilla/client.mk $(MOZCONFIG_MODULES)'; \

seawood%netscape.com
committed
cd $(ROOTDIR) && \

seawood%netscape.com
committed
$(CVSCO) mozilla/client.mk $(MOZCONFIG_MODULES)

seawood%netscape.com
committed
@cd $(TOPSRCDIR) && \
$(MAKE) -f client.mk real_fast-update
# Start the update. Split the output to the tty and a log file.
fast_update() { set -e; config/cvsco-fast-update.pl $$@ 2>&1 | tee -a $(CVSCO_LOGFILE); }; \
cvs_co() { set -e; echo "$$@" ; \
"$$@" 2>&1 | tee -a $(CVSCO_LOGFILE); }; \
fast_update $(CVSCO_NSPR); \
cd $(ROOTDIR); \
cvs_co $(CVSCO_NSS); \
cd mozilla; \
fast_update $(CVSCO_LDAPCSDK); \

bsmedberg%covad.net
committed
$(FASTUPDATE_MODULES); \
$(FASTUPDATE_MODULES_NS); \
$(FASTUPDATE_LOCALES);
@echo "fast_update finish: "`date` | tee -a $(CVSCO_LOGFILE)

bryner%netscape.com
committed
# update the NSS checkout timestamp
@if test `egrep -c '^(U|C) mozilla/security/(nss|coreconf)' $(CVSCO_LOGFILE) 2>/dev/null` != 0; then \
touch $(TOPSRCDIR)/security/manager/.nss.checkout; \

bryner%netscape.com
committed
fi
# @: Check the log for conflicts. ;
@conflicts=`egrep "^C " $(CVSCO_LOGFILE)` ;\
if test "$$conflicts" ; then \
echo "$(MAKE): *** Conflicts during fast-update." ;\
echo "$$conflicts" ;\
echo "$(MAKE): Refer to $(CVSCO_LOGFILE) for full log." ;\
false; \
else true; \
fi
ifdef RUN_AUTOCONF_LOCALLY
@echo Generating configures using $(AUTOCONF) ; \
cd $(TOPSRCDIR) && $(AUTOCONF) && \
cd $(TOPSRCDIR)/nsprpub && $(AUTOCONF) && \
cd $(TOPSRCDIR)/directory/c-sdk && $(AUTOCONF)
endif
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
CVSCO_LOGFILE_L10N := $(ROOTDIR)/cvsco-l10n.log
CVSCO_LOGFILE_L10N := $(shell echo $(CVSCO_LOGFILE_L10N) | sed s%//%/%)
l10n-checkout:
# @: Backup the last checkout log.
@if test -f $(CVSCO_LOGFILE_L10N) ; then \
mv $(CVSCO_LOGFILE_L10N) $(CVSCO_LOGFILE_L10N).old; \
else true; \
fi
@echo "checkout start: "`date` | tee $(CVSCO_LOGFILE_L10N)
@echo '$(CVSCO) $(CVS_CO_DATE_FLAGS) mozilla/client.mk $(MOZCONFIG_MODULES)'; \
cd $(ROOTDIR) && \
$(CVSCO) $(CVS_CO_DATE_FLAGS) mozilla/client.mk $(MOZCONFIG_MODULES)
@cd $(ROOTDIR) && $(MAKE) -f mozilla/client.mk real_l10n-checkout
EN_US_CO_DIRS := $(sort $(foreach dir,$(LOCALE_DIRS),mozilla/$(dir)/locales)) \
$(foreach mod,$(MOZ_PROJECT_LIST),mozilla/$(mod)/config) \
mozilla/client.mk \
$(MOZCONFIG_MODULES) \
mozilla/configure \
mozilla/configure.in \
mozilla/allmakefiles.sh \
mozilla/build \
mozilla/config \
$(NULL)
EN_US_CO_FILES_NS := \
mozilla/toolkit/mozapps/installer \
$(NULL)
# Start the checkout. Split the output to the tty and a log file.
real_l10n-checkout:
@set -e; \
cvs_co() { set -e; echo "$$@" ; \
"$$@" 2>&1 | tee -a $(CVSCO_LOGFILE_L10N); }; \
cvs_co $(CVS) $(CVS_FLAGS) co $(MODULES_CO_FLAGS) $(CVS_CO_DATE_FLAGS) $(EN_US_CO_DIRS); \
cvs_co $(CVS) $(CVS_FLAGS) co $(MODULES_CO_FLAGS) $(CVS_CO_DATE_FLAGS) -l $(EN_US_CO_FILES_NS); \
cvs_co $(CVSCO_LOCALES)
@echo "checkout finish: "`date` | tee -a $(CVSCO_LOGFILE_L10N)
# @: Check the log for conflicts. ;
@conflicts=`egrep "^C " $(CVSCO_LOGFILE_L10N)` ;\
if test "$$conflicts" ; then \
echo "$(MAKE): *** Conflicts during checkout." ;\
echo "$$conflicts" ;\
echo "$(MAKE): Refer to $(CVSCO_LOGFILE_L10N) for full log." ;\
false; \
else true; \
fi

slamm%netscape.com
committed
#####################################################
# First Checkout

slamm%netscape.com
committed
ifdef _IS_FIRST_CHECKOUT

slamm%netscape.com
committed
# First time, do build target in a new process to pick up new files.

akkana%netscape.com
committed
$(MAKE) -f $(TOPSRCDIR)/client.mk build

slamm%netscape.com
committed
else

slamm%netscape.com
committed
#####################################################
# After First Checkout

mark%moxienet.com
committed
#####################################################
# Preflight, before building any project
build profiledbuild alldep preflight_all::
ifeq (,$(MOZ_CURRENT_PROJECT)$(if $(MOZ_PREFLIGHT_ALL),,1))
# Don't run preflight_all for individual projects in multi-project builds
# (when MOZ_CURRENT_PROJECT is set.)
ifndef MOZ_BUILD_PROJECTS
# Building a single project, OBJDIR is usable.
set -e; \
for mkfile in $(MOZ_PREFLIGHT_ALL); do \
$(MAKE) -f $$mkfile preflight_all TOPSRCDIR=$(TOPSRCDIR) OBJDIR=$(OBJDIR) MOZ_OBJDIR=$(MOZ_OBJDIR); \
done
else
# OBJDIR refers to the project-specific OBJDIR, which is not available at
# this point when building multiple projects. Only MOZ_OBJDIR is available.
set -e; \
for mkfile in $(MOZ_PREFLIGHT_ALL); do \
$(MAKE) -f $$mkfile preflight_all TOPSRCDIR=$(TOPSRCDIR) MOZ_OBJDIR=$(MOZ_OBJDIR) MOZ_BUILD_PROJECTS="$(MOZ_BUILD_PROJECTS)"; \

mark%moxienet.com
committed
done
endif
endif

bsmedberg%covad.net
committed
# If we're building multiple projects, but haven't specified which project,
# loop through them.
ifeq (,$(MOZ_CURRENT_PROJECT)$(if $(MOZ_BUILD_PROJECTS),,1))

mark%moxienet.com
committed
configure depend build profiledbuild install export libs clean realclean distclean alldep preflight postflight::

bsmedberg%covad.net
committed
set -e; \
for app in $(MOZ_BUILD_PROJECTS); do \
$(MAKE) -f $(TOPSRCDIR)/client.mk $@ MOZ_CURRENT_PROJECT=$$app; \
done
else

slamm%netscape.com
committed

mark%moxienet.com
committed
# MOZ_CURRENT_PROJECT: either doing a single-project build, or building an
# individual project in a multi-project build.

slamm%netscape.com
committed
####################################

slamm%netscape.com
committed
# Configure

bsmedberg%covad.net
committed
CONFIG_STATUS = $(wildcard $(OBJDIR)/config.status)
CONFIG_CACHE = $(wildcard $(OBJDIR)/config.cache)

slamm%netscape.com
committed
ifdef RUN_AUTOCONF_LOCALLY

slamm%netscape.com
committed
EXTRA_CONFIG_DEPS := \

slamm%netscape.com
committed
$(TOPSRCDIR)/aclocal.m4 \
$(wildcard $(TOPSRCDIR)/build/autoconf/*.m4) \

slamm%netscape.com
committed
$(NULL)

slamm%netscape.com
committed
$(TOPSRCDIR)/configure: $(TOPSRCDIR)/configure.in $(EXTRA_CONFIG_DEPS)
@echo Generating $@ using autoconf

slamm%netscape.com
committed
cd $(TOPSRCDIR); $(AUTOCONF)
endif

slamm%netscape.com
committed
CONFIG_STATUS_DEPS := \
$(TOPSRCDIR)/configure \
$(TOPSRCDIR)/allmakefiles.sh \
$(TOPSRCDIR)/.mozconfig.mk \

cls%seawood.org
committed
$(wildcard $(TOPSRCDIR)/nsprpub/configure) \
$(wildcard $(TOPSRCDIR)/directory/c-sdk/configure) \

slamm%netscape.com
committed
$(wildcard $(TOPSRCDIR)/mailnews/makefiles) \

cls%seawood.org
committed
$(wildcard $(TOPSRCDIR)/themes/makefiles) \

dbaron%dbaron.org
committed
$(wildcard $(TOPSRCDIR)/config/milestone.txt) \
$(wildcard $(TOPSRCDIR)/config/chrome-versions.sh) \

slamm%netscape.com
committed
$(NULL)

slamm%netscape.com
committed
# configure uses the program name to determine @srcdir@. Calling it without
# $(TOPSRCDIR) will set @srcdir@ to "."; otherwise, it is set to the full
# path of $(TOPSRCDIR).
ifeq ($(TOPSRCDIR),$(OBJDIR))

bsmedberg%covad.net
committed
CONFIGURE = ./configure

slamm%netscape.com
committed
else

bsmedberg%covad.net
committed
CONFIGURE = $(TOPSRCDIR)/configure

slamm%netscape.com
committed
endif

seawood%netscape.com
committed
ifdef MOZ_TOOLS

bsmedberg%covad.net
committed
CONFIGURE = $(TOPSRCDIR)/configure

cls%seawood.org
committed
endif

bsmedberg%covad.net
committed
configure::
ifdef MOZ_BUILD_PROJECTS
@if test ! -d $(MOZ_OBJDIR); then $(MKDIR) $(MOZ_OBJDIR); else true; fi
endif
@if test ! -d $(OBJDIR); then $(MKDIR) $(OBJDIR); else true; fi

slamm%netscape.com
committed
@echo cd $(OBJDIR);

cls%seawood.org
committed
@echo $(CONFIGURE) $(CONFIGURE_ARGS)

bsmedberg%covad.net
committed
@cd $(OBJDIR) && $(BUILD_PROJECT_ARG) $(CONFIGURE_ENV_ARGS) $(CONFIGURE) $(CONFIGURE_ARGS) \

slamm%netscape.com
committed
|| ( echo "*** Fix above errors and then restart with\
\"$(MAKE) -f client.mk build\"" && exit 1 )

slamm%netscape.com
committed

bsmedberg%covad.net
committed
$(OBJDIR)/Makefile $(OBJDIR)/config.status: $(CONFIG_STATUS_DEPS)
@$(MAKE) -f $(TOPSRCDIR)/client.mk configure

bsmedberg%covad.net
committed

bsmedberg%covad.net
committed
ifneq (,$(CONFIG_STATUS))

slamm%netscape.com
committed
$(OBJDIR)/config/autoconf.mk: $(TOPSRCDIR)/config/autoconf.mk.in
cd $(OBJDIR); \
CONFIG_FILES=config/autoconf.mk ./config.status
endif

cls%seawood.org
committed

slamm%netscape.com
committed
####################################
# Depend
depend:: $(OBJDIR)/Makefile $(OBJDIR)/config.status

seawood%netscape.com
committed
$(MOZ_MAKE) export && $(MOZ_MAKE) depend

slamm%netscape.com
committed

mark%moxienet.com
committed
####################################
# Preflight
build profiledbuild alldep preflight::
ifdef MOZ_PREFLIGHT
set -e; \
for mkfile in $(MOZ_PREFLIGHT); do \
$(MAKE) -f $$mkfile preflight TOPSRCDIR=$(TOPSRCDIR) OBJDIR=$(OBJDIR) MOZ_OBJDIR=$(MOZ_OBJDIR); \
done
endif

slamm%netscape.com
committed
####################################
# Build it
build:: $(OBJDIR)/Makefile $(OBJDIR)/config.status

seawood%netscape.com
committed
$(MOZ_MAKE)

slamm%netscape.com
committed
####################################
# Profile-feedback build (gcc only)
# To use this, you should set the following variables in your mozconfig
# mk_add_options PROFILE_GEN_SCRIPT=/path/to/profile-script
#
# The profile script should exercise the functionality to be included
# in the profile feedback.
profiledbuild:: $(OBJDIR)/Makefile $(OBJDIR)/config.status
$(MOZ_MAKE) MOZ_PROFILE_GENERATE=1
OBJDIR=${OBJDIR} $(PROFILE_GEN_SCRIPT)
$(MOZ_MAKE) clobber_all
$(MOZ_MAKE) MOZ_PROFILE_USE=1

bryner%brianryner.com
committed
find $(OBJDIR) -name "*.da" -exec rm {} \;

slamm%netscape.com
committed
####################################
# Other targets
# Pass these target onto the real build system

seawood%netscape.com
committed
install export libs clean realclean distclean alldep:: $(OBJDIR)/Makefile $(OBJDIR)/config.status

slamm%netscape.com
committed
$(MOZ_MAKE) $@

mark%moxienet.com
committed
####################################
# Postflight
build profiledbuild alldep postflight::
ifdef MOZ_POSTFLIGHT
set -e; \
for mkfile in $(MOZ_POSTFLIGHT); do \
$(MAKE) -f $$mkfile postflight TOPSRCDIR=$(TOPSRCDIR) OBJDIR=$(OBJDIR) MOZ_OBJDIR=$(MOZ_OBJDIR); \
done
endif

bsmedberg%covad.net
committed
endif # MOZ_CURRENT_PROJECT

mark%moxienet.com
committed
####################################
# Postflight, after building all projects
build profiledbuild alldep postflight_all::
ifeq (,$(MOZ_CURRENT_PROJECT)$(if $(MOZ_POSTFLIGHT_ALL),,1))
# Don't run postflight_all for individual projects in multi-project builds
# (when MOZ_CURRENT_PROJECT is set.)
ifndef MOZ_BUILD_PROJECTS
# Building a single project, OBJDIR is usable.
set -e; \
for mkfile in $(MOZ_POSTFLIGHT_ALL); do \
$(MAKE) -f $$mkfile postflight_all TOPSRCDIR=$(TOPSRCDIR) OBJDIR=$(OBJDIR) MOZ_OBJDIR=$(MOZ_OBJDIR); \
done
else
# OBJDIR refers to the project-specific OBJDIR, which is not available at
# this point when building multiple projects. Only MOZ_OBJDIR is available.
set -e; \
for mkfile in $(MOZ_POSTFLIGHT_ALL); do \
$(MAKE) -f $$mkfile postflight_all TOPSRCDIR=$(TOPSRCDIR) MOZ_OBJDIR=$(MOZ_OBJDIR) MOZ_BUILD_PROJECTS="$(MOZ_BUILD_PROJECTS)"; \

mark%moxienet.com
committed
done
endif
endif

slamm%netscape.com
committed
cleansrcdir:
@cd $(TOPSRCDIR); \
if [ -f Makefile ]; then \
$(MAKE) distclean ; \
else \

slamm%netscape.com
committed
echo "Removing object files from srcdir..."; \
rm -fr `find . -type d \( -name .deps -print -o -name CVS \
-o -exec test ! -d {}/CVS \; \) -prune \
-o \( -name '*.[ao]' -o -name '*.so' \) -type f -print`; \
build/autoconf/clean-config.sh; \
fi;

slamm%netscape.com
committed

slamm%netscape.com
committed
# (! IS_FIRST_CHECKOUT)
endif

slamm%netscape.com
committed

bryner%netscape.com
committed
echo_objdir:
@echo $(OBJDIR)

mark%moxienet.com
committed
.PHONY: checkout real_checkout depend build export libs alldep install clean realclean distclean cleansrcdir pull_all build_all clobber clobber_all pull_and_build_all everything configure preflight_all preflight postflight postflight_all