# 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): 

NECKO=1

#//------------------------------------------------------------------------
#//
#// Toplevel windows Makefile to build the mozilla tree
#//
#//------------------------------------------------------------------------

#//------------------------------------------------------------------------
#//
#// Specify the depth of the current directory relative to the
#// root of mozilla
#//
#//------------------------------------------------------------------------

DEPTH=.

include <$(DEPTH)\config\config.mak>

#//------------------------------------------------------------------------
#//
#// Specify any "command" targets. (ie. DIRS, INSTALL_FILES, ...)
#// (these must come before the common makefiles are included)
#// 
#// DIRS          - There are subdirectories to process
#//
#//------------------------------------------------------------------------

DIRS =                         \
  config                       \
  include                      \
  jpeg                         \
  sun-java                     \
  modules\libreg               \
  string                       \
  xpcom                        \
  db                           \
  dbm                          \
  modules\libutil              \
  modules\mpfilelocprovider    \
  modules\zlib                 \
  intl                         \
  netwerk                      \
  js                           \
  js\src\xpconnect             \
!ifdef MOZ_OJI
  js\src\liveconnect           \
!endif
!if !defined(DISABLE_JSD)
  js\jsd                       \
!endif
  modules\libjar               \
  modules\libimg               \
  modules\libpref              \
  modules\oji                  \
  caps                         \
  rdf                          \
  expat                        \
  gfx                          \
  gfx2                         \
!ifdef MOZ_INTERNAL_LIBART_LGPL
  other-licenses\libart_lgpl   \
!endif
  modules\libpr0n              \
  modules\plugin               \
  uriloader                    \
  htmlparser                   \
  widget                       \
  dom                          \
  view                         \
  content                      \
  layout                       \
  docshell                     \
  webshell                     \
  embedding                    \
  profile                      \
  editor                       \
!if defined(ACCESSIBILITY)
  accessible                   \
!endif 
!if defined(GC_LEAK_DETECTOR)
  gc\boehm                     \
!endif
  xpfe                         \
  xpinstall                    \
!if defined(BUILD_PSM) || defined(BUILD_PSM2)
  security                     \
!endif
  extensions                   \
  themes \
!if !defined(DISABLE_LDAP)       
  directory\c-sdk              \
  directory\xpcom              \
!endif
  l10n                     \
!if !defined(DISABLE_MAILNEWS)
  mailnews                     \
!endif
  xpfe\bootstrap               \
!if defined(MOZ_STATIC_COMPONENT_LIBS)
  modules\staticmod            \
!endif
  $(NULL)

#//------------------------------------------------------------------------
#//
#// Include the common makefile rules
#//
#//------------------------------------------------------------------------

include <$(DEPTH)\config\rules.mak>

export::
	$(PERL) $(DEPTH)\config\purge-old-headers.pl $(XPDIST)\include

#//------------------------------------------------------------------------
#//
#// MOZILLA_OFFICIAL junk: rebase and splitsym for binary release
#//
#//------------------------------------------------------------------------
#// should make sure we have rebase, and die if not

!if defined(MOZILLA_OFFICIAL)

!if [for %i in (. %PATH%) do $(QUIET)if exist %i\$(REBASE) echo %i\$(REBASE) > rebase.yes]
!endif

!if !exist(rebase.yes)  
REBASE=
!if [del rebase.yes]                                                           
!endif
!endif
!endif

rebase:
!if defined(MOZILLA_OFFICIAL)
!if defined(FIND)
!if "$(REBASE)" != ""
	echo rebasing $(DIST:\=/)
        $(FIND) $(DIST:\=/) -name "*.dll" > rebase.lst
        $(REBASE) -b 60000000 -R . -G rebase.lst
        del rebase.lst
!else
        echo No rebase defined.
!endif
!else
        echo No find defined.
!endif
!endif

splitsymbols:
!if defined(MOZILLA_OFFICIAL)
!if defined(FIND)
!if "$(SPLITSYM)" != ""
	echo splitting symbols out of binaries
	cd $(MOZ_SRC)\mozilla
	$(FIND) $(DIST:\=/) -name "*.dll" -exec $(SPLITSYM) {} ;
	$(FIND) $(DIST:\=/) -name "*.exe" -exec $(SPLITSYM) {} ;
	$(FIND) $(DIST:\=/) -name "*.EXE" -exec $(SPLITSYM) {} ;

!else
        echo No splitsym defined.
!endif
!else
        echo No find defined.
!endif
!endif

componentreg:
!if defined(MOZILLA_OFFICIAL)
!if !defined(MOZ_STATIC_COMPONENT_LIBS)
	cd $(DIST)\bin
	regxpcom.exe
!endif
!endif

libs:: regchrome rebase splitsymbols componentreg

