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

DEPTH=..\..
MODULE		= apprunner
REQUIRES	= xpcom \
		  string \
		  webBrowser_core \
		  widget \
		  dom \
		  necko \
		  pref \
		  appshell \
		  chrome \
		  xpinstall \
		  xpicleanup \
		  uriloader \
		  view \
		  windowwatcher \
		  embed_base \
		  appstartup \
		  mpfilelocprovider \
		  mozbrwsr \
		  appcomps \
		  docshell \
		  gfx \
		  intl \
		  profile \
		  xpconnect \
		  $(NULL)
include <$(DEPTH)/config/config.mak>

DEFINES=-DWIN32_LEAN_AND_MEAN

!if defined(MOZ_STATIC_COMPONENT_LIBS) && !defined(MOZ_GECKO_DLL)
DEFINES=$(DEFINES) -D_BUILD_STATIC_BIN
EXTRA_LIBS_LIST_FILE=$(OBJDIR)\libs.txt
SEDCMDS=nsStaticComonents.cpp.sed
GARBAGE=$(GARBAGE) $(EXTRA_LIBS_LIST_FILE) $(SEDCMDS) nsStaticComponents.cpp
!endif

CPP_OBJS=                               \
 .\$(OBJDIR)\nsAppRunner.obj            \
 .\$(OBJDIR)\nsWindowCreator.obj        \
 .\$(OBJDIR)\nsNativeAppSupportBase.obj \
 .\$(OBJDIR)\nsNativeAppSupportWin.obj  \
 .\$(OBJDIR)\showOSAlert.obj            \
!if defined(MOZ_STATIC_COMPONENT_LIBS) && !defined(MOZ_GECKO_DLL)
 .\$(OBJDIR)\nsStaticComponents.obj     \
!endif
 $(NULL)

MAKE_OBJ_TYPE = EXE
PROGRAM = .\$(OBJDIR)\mozilla.exe
RESFILE = splash.res

LCFLAGS = \
        $(LCFLAGS) \
        $(DEFINES) \
        $(NULL)

RCFLAGS = \
        $(RCFLAGS) \
        -I $(XPDIST)\include\appshell

# This code removes the console from release builds
# (unless you've set MOZ_WINCONSOLE=1).
!ifndef MOZ_WINCONSOLE
!ifdef MOZ_DEBUG
MOZ_WINCONSOLE=1
!else
MOZ_WINCONSOLE=0
!endif
!endif

# Set subsystem type according to whether we want a console.
!if $(MOZ_WINCONSOLE)
LFLAGS= $(LFLAGS) /subsystem:console
!else
LFLAGS= $(LFLAGS) /subsystem:windows
!endif

# These are the libraries we need to link with to create the exe
LLIBS=                               \
 $(DIST)\lib\xpcom.lib               \
!ifndef DISABLE_LDAP
 $(DIST)\lib\nsldap32v40.lib         \
!endif
 $(DIST)\lib\js3250.lib              \
 $(DIST)\lib\util.lib                \
 $(DIST)\lib\gkgfx.lib            \
 $(DIST)\lib\expat.lib               \
 $(DIST)\lib\png.lib                 \
 $(DIST)\lib\mng.lib                 \
 $(DIST)\lib\mpfilelocprovider_s.lib \
!ifdef GC_LEAK_DETECTOR
 $(DIST)\lib\boehm.lib               \
!endif
 $(LIBNSPR)                          \
 $(NULL)

WIN_LIBS=       \
 comctl32.lib   \
 comdlg32.lib   \
 Uuid.lib       \
 shell32.lib    \
 ole32.lib      \
 oleaut32.lib   \
 version.lib    \
 winspool.lib   \
 $(NULL)

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

!if defined(MOZ_STATIC_COMPONENT_LIBS) && !defined(MOZ_GECKO_DLL)

$(SEDCMDS): $(FINAL_LINK_COMP_NAMES)
        rm -f $@
        echo s/%DECL_NSGETMODULES%/\>> $@
        sed -e "s/^/DECL_NSGETMODULE(/" -e "s/$$/)\\\/" $(FINAL_LINK_COMP_NAMES) >> $@
        echo />> $@
        echo s/%MODULE_LIST%/\>> $@
        sed -e "s/^/MODULE(/" -e "s/$$/),\\\/" $(FINAL_LINK_COMP_NAMES) >> $@
        echo />> $@
        
nsStaticComponents.cpp: nsStaticComponents.cpp.in $(FINAL_LINK_COMP_NAMES) $(SEDCMDS)
        echo +++ make: Creating $@
        rm -f $@
        sed -f $(SEDCMDS) nsStaticComponents.cpp.in > $@
        rm -f $(SEDCMDS)

$(EXTRA_LIBS_LIST_FILE): $(FINAL_LINK_COMPS) $(FINAL_LINK_LIBS)
        echo +++ make: Creating list of link libraries: $@
        rm -f $@
        sed -e "s/^/$(DIST:\=\\\)\\\lib\\\/" -e "s/$$/.lib/" $(FINAL_LINK_COMPS)  > $@
        sed -e "s/^/$(DIST:\=\\\)\\\lib\\\/" -e "s/$$/.lib/" $(FINAL_LINK_LIBS)  >> $@

!endif

libs:: $(PROGRAM)
	$(MAKE_INSTALL) $(PROGRAM) $(DIST)\bin

clobber::
	rm -f $(DIST)\bin\mozilla.exe
