# 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.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation.  Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): 

#//------------------------------------------------------------------------
#//
#// Makefile for MOZILLA/CONFIG - various commands used by other makefiles
#//
#//------------------------------------------------------------------------

!if "$(MOZ_BITS)" == "16"
!error This makefile must be build using 32-bit tools
!endif

#//------------------------------------------------------------------------
#//
#// Specify the depth of the current directory relative to the
#// root of MOZILLA
#//
#//------------------------------------------------------------------------
DEPTH = ..

#// Specify any "command" targets. (ie. DIRS, INSTALL_FILES, ...)
#// (these must come before the common makefiles are included)
#// 
#// DIRS          - There is a subdirectory to process
#// INSTALL_FILES - Files to be installed in the distribution area
#//
#//------------------------------------------------------------------------

GARBAGE = *.obj *.sbr *.pdb build_number nsBuildID.h

!ifdef MOZ_COVERAGE
GARBAGE = $(GARBAGE) trace.dll trace.lib trace.exp
!endif

EXPORTS	= nsBuildID.h

#//------------------------------------------------------------------------
#//
#// Include the common makefile rules
#//
#//------------------------------------------------------------------------
include <$(DEPTH)/config/config.mak>
include <$(DEPTH)/config/rules.mak>

!ifdef MOZILLA_OFFICIAL 
_BN_OFFICIAL=1
!else
_BN_OFFICIAL=
!endif

# update build number from within make script
build_number:
	$(PERL) -I. bdate.pl $@ $(_BN_OFFICIAL)

nsBuildID.h: build_number nsBuildID.h.in
	$(RM) $@
	$(PERL) -I. aboutime.pl $@ build_number nsBuildID.h.in

#// Rule to set the timebomb on official mozilla builds


#//
#// Rules to build make utils
#//

#CFLAGS = /FR /Zi -MDd /W4
CFLAGS = /O2 /GB /MD

makecopy.exe:: makecopy.cpp
    $(CC) $(CFLAGS) $**

mangle.exe:: mangle.c
    $(CC) $(CFLAGS) $**

mantomak.exe:: mantomak.c
    $(CC) $(CFLAGS) $**

bin2rc.exe:: bin2rc.c
    $(CC) $(CFLAGS) $**

makedep.exe:: makedep.cpp
    $(CC) -MT /O2 /GB $**

!ifdef MOZ_COVERAGE 
trace.dll:: trace.obj pldhash.obj
    $(LD) /nologo /debug /libpath:$(DIST)/lib /dll /out:$@ $** nspr4.lib imagehlp.lib

pldhash.obj:: $(DEPTH)/xpcom/ds/pldhash.c
    $(CC) /c /nologo /Od /Z7 /I$(DEPTH)/xpcom/ds /I$(DEPTH)/dist/include/nspr $**
 
trace.obj:: trace.cpp
    $(CC) /c /nologo /Od /Z7 /DMOZ_SRC=\"$(MOZ_SRC)\" /I$(DEPTH)/xpcom/ds /I$(DEPTH)/dist/include/nspr $**
!endif

export:: \
        makecopy.exe  \
        mangle.exe    \
        mantomak.exe  \
        bin2rc.exe    \
!ifndef NO_MFC
        makedep.exe   \
!endif
        build_number  \
        nsBuildID.h   \
        $(NULL)

!ifdef MOZ_COVERAGE
export:: trace.dll
       $(MAKE_INSTALL) trace.dll $(DIST)/bin
       $(MAKE_INSTALL) trace.lib $(DIST)/lib
       $(MAKE_INSTALL) trace.dll $(DIST)/install
       $(MAKE_INSTALL) $(DIST)/bin/nspr4.dll $(DIST)/install
!endif

export::
	$(RM) $(DIST)\bin\chrome\chromelist.txt 
	$(RM) $(FINAL_LINK_LIBS) $(FINAL_LINK_COMPS) $(FINAL_LINK_COMP_NAMES)

#install::
#	$(RM) $(DIST)\bin\chrome\installed-chrome.txt

FORCE::
