#!nmake
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL.  You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation.  Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation.  All Rights
# Reserved.

DEPTH=..\..
IGNORE_MANIFEST=1

LIBRARY_NAME=raptorhtmlpars 
DEFINES=-D_IMPL_NS_HTMLPARS -DWIN32_LEAN_AND_MEAN
MODULE=raptor 
REQUIRES=xpcom raptor netlib

CPPSRCS=					\
	nsDTDUtils.cpp				\
	nsHTMLTokenizer.cpp \
	nsXMLTokenizer.cpp \
  nsElementTable.cpp \
	CNavDTD.cpp				\
	COtherDTD.cpp				\
	CRtfDTD.cpp				\
	nsDTDDebug.cpp				\
	nsHTMLEntities.cpp			\
	nsHTMLNullSink.cpp			\
	nsHTMLTags.cpp				\
	nsHTMLTokens.cpp			\
	nsLoggingSink.cpp			\
	nsParser.cpp				\
	CParserContext.cpp			\
	nsParserFactory.cpp			\
	nsParserNode.cpp			\
	nsScanner.cpp				\
	nsToken.cpp				\
	nsTokenHandler.cpp			\
	nsHTMLContentSinkStream.cpp		\
	nsValidDTD.cpp				\
	nsWellFormedDTD.cpp			\
	nsViewSourceHTML.cpp \
  nsXIFDTD.cpp				\
	prstrm.cpp				\
	$(NULL)

CPP_OBJS=					\
	.\$(OBJDIR)\nsDTDUtils.obj			\
	.\$(OBJDIR)\nsHTMLTokenizer.obj \
	.\$(OBJDIR)\nsXMLTokenizer.obj \
	.\$(OBJDIR)\nsElementTable.obj \
	.\$(OBJDIR)\CNavDTD.obj			\
	.\$(OBJDIR)\COtherDTD.obj		\
	.\$(OBJDIR)\CRtfDTD.obj			\
	.\$(OBJDIR)\nsDTDDebug.obj		\
	.\$(OBJDIR)\nsHTMLEntities.obj		\
	.\$(OBJDIR)\nsHTMLNullSink.obj		\
	.\$(OBJDIR)\nsHTMLTags.obj		\
	.\$(OBJDIR)\nsHTMLTokens.obj		\
	.\$(OBJDIR)\nsLoggingSink.obj		\
	.\$(OBJDIR)\nsParser.obj		\
	.\$(OBJDIR)\CParserContext.obj		\
	.\$(OBJDIR)\nsParserFactory.obj		\
	.\$(OBJDIR)\nsParserNode.obj		\
	.\$(OBJDIR)\nsScanner.obj		\
	.\$(OBJDIR)\nsToken.obj			\
	.\$(OBJDIR)\nsTokenHandler.obj		\
	.\$(OBJDIR)\nsHTMLContentSinkStream.obj	\
	.\$(OBJDIR)\nsValidDTD.obj		\
	.\$(OBJDIR)\nsWellFormedDTD.obj		\
	.\$(OBJDIR)\nsViewSourceHTML.obj		\
	.\$(OBJDIR)\nsXIFDTD.obj		\
	.\$(OBJDIR)\prstrm.obj			\
	$(NULL)

EXPORTS=					\
	nshtmlpars.h				\
	nsITokenizer.h \
	nsIContentSink.h			\
	nsIHTMLContentSink.h			\
	nsILoggingSink.h			\
	nsHTMLContentSinkStream.h		\
	nsHTMLEntities.h			\
	nsHTMLTokens.h				\
	nsIParserNode.h				\
	nsIParser.h				\
	nsParser.h				\
	nsToken.h				\
	nsIDTDDebug.h				\
	nsIParserFilter.h			\
	CNavDTD.h				\
	nsWellFormedDTD.h			\
	nsValidDTD.h				\
	CRTFDTD.h				\
	COtherDTD.h				\
	nsIDTD.h				\
	nsXIFDTD.h				\
    nsParserCIID.h \
	$(NULL)

EXTRA_EXPORTS=					\
	nsHTMLTags.h				\
	$(NULL)

LINCS=-I$(PUBLIC)\xpcom -I$(PUBLIC)\raptor -I$(PUBLIC)\netlib

MAKE_OBJ_TYPE = DLL
DLLNAME = raptorhtmlpars
DLL=.\$(OBJDIR)\$(DLLNAME).dll

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

# These are the libraries we need to link with to create the dll
LLIBS=        \
 $(DIST)\lib\xpcom32.lib  \
 $(DIST)\lib\raptorbase.lib \
 $(DIST)\lib\libplc21.lib       \
 $(LIBNSPR)  

!ifdef MOZ_NO_DEBUG_RTL
LLFLAGS= /NODEFAULTLIB msvcirt.lib msvcrt.lib
#LLFLAGS= /NODEFAULTLIB
!endif

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

export:: generate
	$(MAKE_INSTALL) $(EXTRA_EXPORTS) $(PUBLIC)\$(MODULE)

libs:: generate $(DLL)
	$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).dll $(DIST)\bin
	$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).lib $(DIST)\lib

clobber::
	rm -f $(DIST)\bin\$(DLLNAME).dll
	rm -f $(DIST)\lib\$(DLLNAME).lib

generate: nsHTMLTags.h nsHTMLEntities.cpp

.\$(OBJDIR)\nsHTMLTags.obj: nsHTMLTags.h

GENTAGS = $(DEPTH)\htmlparser\tools\gentags.pl
GENENTITIES = $(DEPTH)\htmlparser\tools\genentities.pl

nsHTMLTags.h: $(GENTAGS)
	rm -f nsHTMLTags.h
	$(PERL) $(GENTAGS) nsHTMLTags

nsHTMLEntities.cpp: $(GENENTITIES)
	rm -f nsHTMLEntities.cpp
	$(PERL) $(GENENTITIES) nsHTMLEntities
