####### Directories

QTDIR   =   /usr/lib/qt
BASEDIR	=	$(QTDIR)
INCDIR	=	$(BASEDIR)/include
LIBDIR	=	$(BASEDIR)/lib

####### Compiler

# Linux 2.0.x, g++ 2.7.2.1
CFLAGS	=	-g -Wall -pipe -O2 -m486
LFLAGS	=	-L$(LIBDIR) -lqt
LEXTRA	= 	
CC	=	g++

# AIX 4.2, xlC 3.1.4
#CFLAGS	=	-+ -g -O2
#LFLAGS	=	-L$(LIBDIR) -lqt -lX11
#LEXTRA	= 	
#CC	=	xlC

# SunOS
#CFLAGS	=	-g -Wall -O2
#LFLAGS	=	-L$(LIBDIR) -lqt
#LEXTRA	=	
#CC	=	gcc

# Solaris
#CFLAGS	=	-O2
#LFLAGS	=	-L$(LIBDIR) -lqt -lX11
#LEXTRA	=	-lsocket -lnsl
#CC	=	CC

# HPUX 10.20
#CFLAGS	=	-g -O
#LFLAGS	=	-L$(LIBDIR) -lqt -lX11
#LEXTRA	=	
#CC	=	CC

#######	Files

HEADERS =	Attribute.h		\
		BlockRenderer.h		\
		Bookmarks.h		\
		Browser.h		\
		BrowserList.h		\
		ButtonRenderer.h	\
		Cache.h			\
		Canvas.h		\
		CatalogEntry.h		\
		CheckBoxRenderer.h	\
		Connection.h		\
		ConsoleWindow.h		\
		ContentModel.h		\
		ContentModelState.h	\
		DownloadRenderer.h	\
		Dtd.h			\
		DtdManager.h		\
		DtdParser.h		\
		EntryRenderer.h		\
		FileConn.h		\
		FormObjectRenderer.h	\
		FormRenderer.h		\
		GifDecoder.h		\
		History.h		\
		HLineRenderer.h		\
		HostCache.h		\
		HttpConn.h		\
		ImageDecoder.h		\
		ImageRenderer.h		\
		ListBoxRenderer.h	\
		OptionRenderer.h	\
		Options.h		\
		PlainRenderer.h		\
		Poller.h		\
		PreformatRenderer.h	\
		PrefsWindow.h		\
		ProgressBar.h		\
		RadioRenderer.h		\
		Renderer.h		\
		Request.h		\
		ScrolledWindow.h	\
		SgmlCatalog.h		\
		SgmlElement.h		\
		SgmlEntity.h		\
		SgmlLexer.h		\
		SgmlNode.h		\
		SgmlParser.h		\
		SgmlRenderer.h		\
		Style.h			\
		StyleAttr.h		\
		StyleAttrProto.h	\
		StyleEditor.h		\
		StyleLexer.h		\
		StyleParser.h		\
		StyleSelect.h		\
		StyleSheet.h		\
		StyleSheetManager.h	\
		StyleSheetProto.h	\
		TableRenderer.h		\
		TextAreaRenderer.h	\
		TextRenderer.h		\
		TransferLogo.h		\
		Url.h			\
		VerticalRenderer.h	\
		YesNoCancelDlg.h	\
		qweb.h

SOURCES	=	Attribute.cpp		\
		BlockRenderer.cpp	\
		Bookmarks.cpp		\
		Browser.cpp		\
		BrowserList.cpp		\
		ButtonRenderer.cpp	\
		Cache.cpp		\
		Canvas.cpp		\
		CatalogEntry.cpp	\
		CheckBoxRenderer.cpp	\
		Connection.cpp		\
		ConsoleWindow.cpp	\
		ContentModel.cpp	\
		ContentModelState.cpp	\
		DownloadRenderer.cpp	\
		Dtd.cpp			\
		DtdManager.cpp		\
		DtdParser.cpp		\
		EntryRenderer.cpp	\
		FileConn.cpp		\
		FormObjectRenderer.cpp	\
		FormRenderer.cpp	\
		GifDecoder.cpp		\
		History.cpp		\
		HLineRenderer.cpp	\
		HostCache.cpp		\
		HttpConn.cpp		\
		ImageDecoder.cpp	\
		ImageRenderer.cpp	\
		ListBoxRenderer.cpp	\
		OptionRenderer.cpp	\
		Options.cpp		\
		PlainRenderer.cpp	\
		Poller.cpp		\
		PreformatRenderer.cpp	\
		PrefsWindow.cpp		\
		ProgressBar.cpp		\
		RadioRenderer.cpp	\
		Renderer.cpp		\
		Request.cpp		\
		ScrolledWindow.cpp	\
		SgmlCatalog.cpp		\
		SgmlElement.cpp		\
		SgmlLexer.cpp		\
		SgmlNode.cpp		\
		SgmlParser.cpp		\
		SgmlRenderer.cpp	\
		Style.cpp		\
		StyleAttr.cpp		\
		StyleAttrProto.cpp	\
		StyleEditor.cpp		\
		StyleLexer.cpp		\
		StyleParser.cpp		\
		StyleSelect.cpp		\
		StyleSheet.cpp		\
		StyleSheetManager.cpp	\
		StyleSheetProto.cpp	\
		TableRenderer.cpp	\
		TextAreaRenderer.cpp	\
		TextRenderer.cpp	\
		TransferLogo.cpp	\
		Url.cpp			\
		VerticalRenderer.cpp	\
		YesNoCancelDlg.cpp	\
		qweb.cpp

OBJECTS	=	Attribute.o		\
		BlockRenderer.o		\
		Bookmarks.o		\
		Browser.o		\
		BrowserList.o		\
		ButtonRenderer.o	\
		Cache.o			\
		Canvas.o		\
		CatalogEntry.o		\
		CheckBoxRenderer.o	\
		Connection.o		\
		ConsoleWindow.o		\
		ContentModel.o		\
		ContentModelState.o	\
		DownloadRenderer.o	\
		Dtd.o			\
		DtdManager.o		\
		DtdParser.o		\
		EntryRenderer.o		\
		FileConn.o		\
		FormObjectRenderer.o	\
		FormRenderer.o		\
		GifDecoder.o		\
		History.o		\
		HLineRenderer.o		\
		HostCache.o		\
		HttpConn.o		\
		ImageDecoder.o		\
		ImageRenderer.o		\
		ListBoxRenderer.o	\
		OptionRenderer.o	\
		Options.o		\
		PlainRenderer.o		\
		Poller.o		\
		PreformatRenderer.o	\
		PrefsWindow.o		\
		ProgressBar.o		\
		RadioRenderer.o		\
		Renderer.o		\
		Request.o		\
		ScrolledWindow.o	\
		SgmlCatalog.o		\
		SgmlElement.o		\
		SgmlLexer.o		\
		SgmlNode.o		\
		SgmlParser.o		\
		SgmlRenderer.o		\
		Style.o			\
		StyleAttr.o		\
		StyleAttrProto.o	\
		StyleEditor.o		\
		StyleLexer.o		\
		StyleParser.o		\
		StyleSelect.o		\
		StyleSheet.o		\
		StyleSheetManager.o	\
		StyleSheetProto.o	\
		TableRenderer.o		\
		TextAreaRenderer.o	\
		TextRenderer.o		\
		TransferLogo.o		\
		Url.o			\
		VerticalRenderer.o	\
		YesNoCancelDlg.o	\
		qweb.o

SRCMETA =	mBlockRenderer.cpp	\
		mBookmarks.cpp		\
		mBrowser.cpp		\
		mBrowserList.cpp	\
		mButtonRenderer.cpp	\
		mCache.cpp		\
		mCanvas.cpp		\
		mCheckBoxRenderer.cpp	\
		mConnection.cpp		\
		mConsoleWindow.cpp	\
		mDownloadRenderer.cpp	\
		mDtdManager.cpp		\
		mDtdParser.cpp		\
		mEntryRenderer.cpp	\
		mFileConn.cpp		\
		mFormObjectRenderer.cpp	\
		mFormRenderer.cpp	\
		mGifDecoder.cpp		\
		mHistory.cpp		\
		mHLineRenderer.cpp	\
		mHttpConn.cpp		\
		mImageDecoder.cpp	\
		mImageRenderer.cpp	\
		mListBoxRenderer.cpp	\
		mOptionRenderer.cpp	\
		mOptions.cpp		\
		mPlainRenderer.cpp	\
		mPreformatRenderer.cpp	\
		mPrefsWindow.cpp	\
		mRadioRenderer.cpp	\
		mRenderer.cpp		\
		mRequest.cpp		\
		mScrolledWindow.cpp	\
		mSgmlCatalog.cpp	\
		mSgmlLexer.cpp		\
		mSgmlParser.cpp		\
		mSgmlRenderer.cpp	\
		mStyleEditor.cpp	\
		mStyleLexer.cpp		\
		mStyleParser.cpp	\
		mStyleSelect.cpp	\
		mStyleSheetManager.cpp	\
		mTableRenderer.cpp	\
		mTextAreaRenderer.cpp	\
		mTextRenderer.cpp	\
		mVerticalRenderer.cpp	\
		mYesNoCancelDlg.cpp

OBJMETA =	mBlockRenderer.o	\
		mBookmarks.o		\
		mBrowser.o		\
		mBrowserList.o		\
		mButtonRenderer.o	\
		mCache.o		\
		mCanvas.o		\
		mCheckBoxRenderer.o	\
		mConnection.o		\
		mConsoleWindow.o	\
		mDownloadRenderer.o	\
		mDtdManager.o		\
		mDtdParser.o		\
		mEntryRenderer.o	\
		mFileConn.o	   	\
		mFormObjectRenderer.o	\
		mFormRenderer.o		\
		mGifDecoder.o		\
		mHistory.o		\
		mHLineRenderer.o	\
		mHttpConn.o		\
		mImageDecoder.o		\
		mImageRenderer.o	\
		mListBoxRenderer.o	\
		mOptionRenderer.o	\
		mOptions.o		\
		mPlainRenderer.o	\
		mPreformatRenderer.o	\
		mPrefsWindow.o		\
		mRadioRenderer.o	\
		mRenderer.o		\
		mRequest.o		\
		mScrolledWindow.o	\
		mSgmlCatalog.o		\
		mSgmlLexer.o		\
		mSgmlParser.o		\
		mSgmlRenderer.o		\
		mStyleEditor.o		\
		mStyleLexer.o		\
		mStyleParser.o		\
		mStyleSelect.o		\
		mStyleSheetManager.o	\
		mTableRenderer.o	\
		mTextAreaRenderer.o	\
		mTextRenderer.o		\
		mVerticalRenderer.o	\
		mYesNoCancelDlg.o

TARGET	=	bin/qweb
VERSION =	1.3

#######	Implicit rules

#.SUFFIXES:
.SUFFIXES: .cpp $(SUFFIXES)

.cpp.o:
	$(CC) -c $(CFLAGS) -I$(INCDIR) $<

#######	Build rules

all: $(TARGET)

$(TARGET): $(OBJECTS) $(OBJMETA)
	$(CC) $(OBJECTS) $(OBJMETA) -o $(TARGET) $(LFLAGS) $(LEXTRA)

lextest: ContentModel.o ContentModelState.o Dtd.o DtdParser.o SgmlCatalog.o SgmlElement.o SgmlLexer.o SgmlNode.o mDtdParser.o mSgmlLexer.o lextest.o
	$(CC) ContentModel.o ContentModelState.o Dtd.o DtdParser.o SgmlCatalog.o SgmlElement.o SgmlLexer.o SgmlNode.o mDtdParser.o mSgmlLexer.o lextest.o -o lextest $(LFLAGS) $(LEXTRA)

urltest: Url.o urltest.o
	$(CC) Url.o urltest.o -o urltest $(LFLAGS) $(LEXTRA)

depend: $(SRCMETA)
	makedepend -I$(INCDIR) $(SOURCES) 2> /dev/null

showfiles:
	@echo $(SOURCES) $(HEADERS) Makefile

clean:
	/bin/rm -f *.o *.bak *BAK *~ *% #*
	/bin/rm -f $(SRCMETA) urltest
	/bin/rm -rf ptrepository Templates.DB

doc:
	- ../h2html-1.0/h2html $(HEADERS)

veryclean: clean
	/bin/rm -f $(TARGET)

betatar:
	make veryclean
	make doc
	cd ..; tar -zcvf qweb-`date +"%Y%m%d"`.tar.gz qweb-$(VERSION)

srctar:
	make veryclean
	make doc
	cd ..; tar -zcvf qweb-$(VERSION).tar.gz qweb-$(VERSION)

bintar:
	make veryclean
	make
	strip $(TARGET)
	tar -zcvf qweb-$(VERSION)-bin.tar.gz bin lib man


####### Meta objects

mBlockRenderer.cpp: BlockRenderer.h
	moc -o mBlockRenderer.cpp BlockRenderer.h

mBookmarks.cpp: Bookmarks.h
	moc -o mBookmarks.cpp Bookmarks.h

mBrowser.cpp: Browser.h
	moc -o mBrowser.cpp Browser.h

mBrowserList.cpp: BrowserList.h
	moc -o mBrowserList.cpp BrowserList.h

mButtonRenderer.cpp: ButtonRenderer.h
	moc -o mButtonRenderer.cpp ButtonRenderer.h

mCache.cpp: Cache.h
	moc -o mCache.cpp Cache.h

mCanvas.cpp: Canvas.h
	moc -o mCanvas.cpp Canvas.h

mCheckBoxRenderer.cpp: CheckBoxRenderer.h
	moc -o mCheckBoxRenderer.cpp CheckBoxRenderer.h

mConnection.cpp: Connection.h
	moc -o mConnection.cpp Connection.h

mConsoleWindow.cpp: ConsoleWindow.h
	moc -o mConsoleWindow.cpp ConsoleWindow.h

mDownloadRenderer.cpp: DownloadRenderer.h
	moc -o mDownloadRenderer.cpp DownloadRenderer.h

mDtdManager.cpp: DtdManager.h
	moc -o mDtdManager.cpp DtdManager.h

mDtdParser.cpp: DtdParser.h
	moc -o mDtdParser.cpp DtdParser.h

mEntryRenderer.cpp: EntryRenderer.h
	moc -o mEntryRenderer.cpp EntryRenderer.h

mFileConn.cpp: FileConn.h
	moc -o mFileConn.cpp FileConn.h

mFormObjectRenderer.cpp: FormObjectRenderer.h
	moc -o mFormObjectRenderer.cpp FormObjectRenderer.h

mFormRenderer.cpp: FormRenderer.h
	moc -o mFormRenderer.cpp FormRenderer.h

mGifDecoder.cpp: GifDecoder.h
	moc -o mGifDecoder.cpp GifDecoder.h

mHistory.cpp: History.h
	moc -o mHistory.cpp History.h

mHLineRenderer.cpp: HLineRenderer.h
	moc -o mHLineRenderer.cpp HLineRenderer.h

mHttpConn.cpp: HttpConn.h
	moc -o mHttpConn.cpp HttpConn.h

mImageDecoder.cpp: ImageDecoder.h
	moc -o mImageDecoder.cpp ImageDecoder.h

mImageRenderer.cpp: ImageRenderer.h
	moc -o mImageRenderer.cpp ImageRenderer.h

mListBoxRenderer.cpp: ListBoxRenderer.h
	moc -o mListBoxRenderer.cpp ListBoxRenderer.h

mOptionRenderer.cpp: OptionRenderer.h
	moc -o mOptionRenderer.cpp OptionRenderer.h

mOptions.cpp: Options.h
	moc -o mOptions.cpp Options.h

mPlainRenderer.cpp: PlainRenderer.h
	moc -o mPlainRenderer.cpp PlainRenderer.h

mPreformatRenderer.cpp: PreformatRenderer.h
	moc -o mPreformatRenderer.cpp PreformatRenderer.h

mPrefsWindow.cpp: PrefsWindow.h
	moc -o mPrefsWindow.cpp PrefsWindow.h

mRadioRenderer.cpp: RadioRenderer.h
	moc -o mRadioRenderer.cpp RadioRenderer.h

mRenderer.cpp: Renderer.h
	moc -o mRenderer.cpp Renderer.h

mRequest.cpp: Request.h
	moc -o mRequest.cpp Request.h

mScrolledWindow.cpp: ScrolledWindow.h
	moc -o mScrolledWindow.cpp ScrolledWindow.h

mSgmlCatalog.cpp: SgmlCatalog.h
	moc -o mSgmlCatalog.cpp SgmlCatalog.h

mSgmlLexer.cpp: SgmlLexer.h
	moc -o mSgmlLexer.cpp SgmlLexer.h

mSgmlParser.cpp: SgmlParser.h
	moc -o mSgmlParser.cpp SgmlParser.h

mSgmlRenderer.cpp: SgmlRenderer.h
	moc -o mSgmlRenderer.cpp SgmlRenderer.h

mStyleEditor.cpp: StyleEditor.h
	moc -o mStyleEditor.cpp StyleEditor.h

mStyleLexer.cpp: StyleLexer.h
	moc -o mStyleLexer.cpp StyleLexer.h

mStyleParser.cpp: StyleParser.h
	moc -o mStyleParser.cpp StyleParser.h

mStyleSelect.cpp: StyleSelect.h
	moc -o mStyleSelect.cpp StyleSelect.h

mStyleSheetManager.cpp: StyleSheetManager.h
	moc -o mStyleSheetManager.cpp StyleSheetManager.h

mTableRenderer.cpp: TableRenderer.h
	moc -o mTableRenderer.cpp TableRenderer.h

mTextAreaRenderer.cpp: TextAreaRenderer.h
	moc -o mTextAreaRenderer.cpp TextAreaRenderer.h

mTextRenderer.cpp: TextRenderer.h
	moc -o mTextRenderer.cpp TextRenderer.h

mVerticalRenderer.cpp: VerticalRenderer.h
	moc -o mVerticalRenderer.cpp VerticalRenderer.h

mYesNoCancelDlg.cpp: YesNoCancelDlg.h
	moc -o mYesNoCancelDlg.cpp YesNoCancelDlg.h
