diff --git a/camino.mk b/camino.mk new file mode 100644 index 000000000000..b44e01e59088 --- /dev/null +++ b/camino.mk @@ -0,0 +1,129 @@ +# ***** 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. +# +# The Original Code is Camino. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2003 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Brian Ryner +# +# 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. +# +# ***** END LICENSE BLOCK ***** + +CVS = cvs +CWD := $(shell pwd) + +ifeq "$(CWD)" "/" +CWD := /. +endif + +ifneq (, $(wildcard camino.mk)) +# Ran from mozilla directory +ROOTDIR := $(shell dirname $(CWD)) +TOPSRCDIR := $(CWD) +else +# Ran from mozilla/.. directory (?) +ROOTDIR := $(CWD) +TOPSRCDIR := $(CWD)/mozilla +endif + +ifndef MAKE +MAKE := gmake +endif + +CVS_ROOT_IN_TREE := $(shell cat $(TOPSRCDIR)/CVS/Root 2>/dev/null) +ifneq ($(CVS_ROOT_IN_TREE),) +ifneq ($(CVS_ROOT_IN_TREE),$(CVSROOT)) + CVS_FLAGS := -d $(CVS_ROOT_IN_TREE) +endif +endif + +CVSCO = $(strip $(CVS) $(CVS_FLAGS) co $(CVS_CO_FLAGS)) +CVSCO_LOGFILE := $(ROOTDIR)/cvsco.log +CVS_CO_LOGFILE := $(shell echo $(CVSCO_LOGFILE) | sed s%//%/%) + +ifdef MOZ_CO_TAG + CVS_CO_FLAGS := -r $(MOZ_CO_TAG) +endif + +ifeq "$(origin MOZ_CVS_FLAGS)" "undefined" + CVS_FLAGS := $(CVS_FLAGS) -q -z 3 +else + CVS_FLAGS := $(MOZ_CVS_FLAGS) +endif + +ifeq "$(origin MOZ_CO_FLAGS)" "undefined" + CVS_CO_FLAGS := $(CVS_CO_FLAGS) -P +else + CVS_CO_FLAGS := $(CVS_CO_FLAGS) $(MOZ_CO_FLAGS) +endif + +ifdef MOZ_CO_DATE + CVS_CO_DATE_FLAGS := -D "$(MOZ_CO_DATE)" +endif + +# export these so they'll be picked up by client.mk +export MOZ_CO_TAG +export MOZ_CO_FLAGS +export MOZ_CO_DATE + +CVSCO_CAMINO = $(CVSCO) $(CVS_CO_DATE_FLAGS) mozilla/camino + +all: checkout build + +checkout:: + cd $(ROOTDIR) && \ + $(CVSCO) $(CVS_CO_DATE_FLAGS) mozilla/client.mk + @cd $(ROOTDIR) && $(MAKE) -f mozilla/client.mk checkout + $(CVSCO) $(CVS_CO_DATE_FLAGS) mozilla/camino.mk + @cd $(ROOTDIR) && $(MAKE) -f mozilla/camino.mk real_checkout + +real_checkout: + @failed=.cvs-failed.tmp; \ + cvs_co() { echo "$$@" ; \ + ("$$@" || touch $$failed) 2>&1 | tee -a $(CVSCO_LOGFILE) && \ + if test -f $$failed; then false; else true; fi; }; \ + cvs_co $(CVSCO_CAMINO) + @echo "camino checkout finish: "`date` | tee -a $(CVSCO_LOGFILE) + @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." ;\ + false; \ + else true; \ + fi + +build: + $(MAKE) -f client.mk build + $(MAKE) -C embedding/config + $(MAKE) -C camino + +clean distclean: + $(MAKE) -f client.mk $@ + $(RM) -rf camino/build