#############################################################################
# Makefile for building: dumpdoc
# Generated by qmake (2.01a) (Qt 4.7.4) on: Wed Jul 18 13:35:41 2012
# Project:  dumpdoc.pro
# Template: app
#############################################################################

####### Compiler, tools and options

CC            = cl
CXX           = cl
DEFINES       = -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_THREAD_SUPPORT -DQT_NO_DYNAMIC_CAST
CFLAGS        = -nologo -Zm200 -Zc:wchar_t -arch:SSE -O2 -MD -MP -W3 $(DEFINES)
CXXFLAGS      = -nologo -Zm200 -Zc:wchar_t -arch:SSE -O2 -MD -MP -EHsc -W3 -w34100 -w34189 $(DEFINES)
INCPATH       = -I"..\..\..\include\QtCore" -I"..\..\..\include\QtGui" -I"..\..\..\include" -I"c:\Qt\4.6.2\src\3rdparty\openssl-0.9.8h\include" -I"..\..\..\include\ActiveQt" -I"tmp\moc\release_shared" -I"..\..\..\mkspecs\win32-msvc2008"
LINK          = link
LFLAGS        = /LIBPATH:"c:\Qt\4.7.4\lib" /LIBPATH:"c:\Qt\4.7.4\lib" /NOLOGO /INCREMENTAL:NO /SUBSYSTEM:CONSOLE /MANIFEST /MANIFESTFILE:"tmp\obj\release_shared\dumpdoc.intermediate.manifest"
LIBS          = /LIBPATH:C:\Qt\4.6.2\src\3rdparty\openssl-0.9.8h\static wsock32.lib advapi32.lib gdi32.lib user32.lib c:\Qt\4.7.4\lib\QAxContainer.lib c:\Qt\4.7.4\lib\QtGui4.lib c:\Qt\4.7.4\lib\QtCore4.lib ole32.lib oleaut32.lib 
QMAKE         = c:\Qt\4.7.4\bin\qmake
IDC           = c:\Qt\4.7.4\bin\idc.exe
IDL           = midl
ZIP           = zip -r -9
DEF_FILE      = 
RES_FILE      = 
COPY          = copy /y
COPY_FILE     = $(COPY)
COPY_DIR      = xcopy /s /q /y /i
DEL_FILE      = del
DEL_DIR       = rmdir
MOVE          = move
CHK_DIR_EXISTS= if not exist
MKDIR         = mkdir
INSTALL_FILE    = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR     = $(COPY_DIR)

####### Output directory

OBJECTS_DIR   = tmp\obj\release_shared

####### Files

SOURCES       = main.cpp 
OBJECTS       = tmp\obj\release_shared\main.obj
DIST          = 
QMAKE_TARGET  = dumpdoc
DESTDIR        = release\ #avoid trailing-slash linebreak
TARGET         = dumpdoc.exe
DESTDIR_TARGET = release\dumpdoc.exe

####### Implicit rules

.SUFFIXES: .c .cpp .cc .cxx

{.}.cpp{tmp\obj\release_shared\}.obj::
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -Fotmp\obj\release_shared\ @<<
	$<
<<

{.}.cc{tmp\obj\release_shared\}.obj::
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -Fotmp\obj\release_shared\ @<<
	$<
<<

{.}.cxx{tmp\obj\release_shared\}.obj::
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -Fotmp\obj\release_shared\ @<<
	$<
<<

{.}.c{tmp\obj\release_shared\}.obj::
	$(CC) -c $(CFLAGS) $(INCPATH) -Fotmp\obj\release_shared\ @<<
	$<
<<

####### Build rules

first: all
all: Makefile.Release $(DESTDIR_TARGET)

$(DESTDIR_TARGET):  $(OBJECTS) 
	$(LINK) $(LFLAGS) /OUT:$(DESTDIR_TARGET) @<< 
	  $(OBJECTS) $(LIBS)
<<
	mt.exe -nologo -manifest "tmp\obj\release_shared\dumpdoc.intermediate.manifest" -outputresource:$(DESTDIR_TARGET);1
	

qmake:  FORCE
	@$(QMAKE) -o Makefile.Release dumpdoc.pro

dist:
	$(ZIP) dumpdoc.zip $(SOURCES) $(DIST) ..\..\..\projects.pro ..\..\..\mkspecs\features\exclusive_builds.prf ..\..\..\mkspecs\features\default_pre.prf ..\..\..\mkspecs\features\win32\default_pre.prf ..\..\..\.qmake.cache ..\..\..\mkspecs\qconfig.pri ..\..\..\mkspecs\modules\qt_webkit_version.pri ..\..\..\mkspecs\features\qt_functions.prf ..\..\..\mkspecs\features\qt_config.prf ..\..\..\mkspecs\features\release.prf ..\..\..\mkspecs\features\debug_and_release.prf ..\..\..\mkspecs\features\default_post.prf ..\..\..\mkspecs\features\win32\default_post.prf ..\..\..\mkspecs\features\build_pass.prf ..\..\..\mkspecs\features\win32\qaxcontainer.prf ..\..\..\mkspecs\features\win32\console.prf ..\..\..\mkspecs\features\win32\msvc_mp.prf ..\..\..\mkspecs\features\win32\exceptions.prf ..\..\..\mkspecs\features\win32\stl.prf ..\..\..\mkspecs\features\shared.prf ..\..\..\mkspecs\features\win32\embed_manifest_exe.prf ..\..\..\mkspecs\features\win32\embed_manifest_dll.prf ..\..\..\mkspecs\features\warn_on.prf ..\..\..\mkspecs\features\qt.prf ..\..\..\mkspecs\features\win32\thread.prf ..\..\..\mkspecs\features\moc.prf ..\..\..\mkspecs\features\win32\rtti_off.prf ..\..\..\mkspecs\features\resources.prf ..\..\..\mkspecs\features\uic.prf ..\..\..\mkspecs\features\yacc.prf ..\..\..\mkspecs\features\lex.prf ..\..\..\mkspecs\features\include_source_dir.prf c:\Qt\4.7.4\lib\QAxContainer.prl  TYPELIBS TYPELIBS HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES 

clean: compiler_clean 
	-$(DEL_FILE) tmp\obj\release_shared\main.obj
	-$(DEL_FILE) tmp\obj\release_shared\dumpdoc.intermediate.manifest release\dumpdoc.exp

distclean: clean
	-$(DEL_FILE) $(DESTDIR_TARGET)
	-$(DEL_FILE) Makefile.Release

check: first

mocclean: compiler_moc_header_clean compiler_moc_source_clean

mocables: compiler_moc_header_make_all compiler_moc_source_make_all

compiler_dumpcpp_decl_make_all:
compiler_dumpcpp_decl_clean:
compiler_dumpcpp_impl_make_all:
compiler_dumpcpp_impl_clean:
compiler_moc_header_make_all:
compiler_moc_header_clean:
compiler_rcc_make_all:
compiler_rcc_clean:
compiler_image_collection_make_all: qmake_image_collection.cpp
compiler_image_collection_clean:
	-$(DEL_FILE) qmake_image_collection.cpp
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all:
compiler_uic_clean:
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
compiler_yacc_impl_clean:
compiler_lex_make_all:
compiler_lex_clean:
compiler_clean: 



####### Compile

tmp\obj\release_shared\main.obj: main.cpp ..\..\..\include\ActiveQt\QAxObject \
		..\..\..\include\ActiveQt\qaxobject.h \
		..\..\..\src\activeqt\container\qaxobject.h \
		..\..\..\include\ActiveQt\qaxbase.h \
		..\..\..\src\activeqt\container\qaxbase.h \
		..\..\..\include\QtCore\qdatastream.h \
		..\..\..\src\corelib\io\qdatastream.h \
		..\..\..\include\QtCore\qscopedpointer.h \
		..\..\..\src\corelib\tools\qscopedpointer.h \
		..\..\..\include\QtCore\qglobal.h \
		..\..\..\src\corelib\global\qglobal.h \
		..\..\..\include\QtCore\qconfig.h \
		..\..\..\src\corelib\global\qconfig.h \
		..\..\..\include\QtCore\qfeatures.h \
		..\..\..\src\corelib\global\qfeatures.h \
		..\..\..\include\QtCore\qiodevice.h \
		..\..\..\src\corelib\io\qiodevice.h \
		..\..\..\include\QtCore\qobject.h \
		..\..\..\src\corelib\kernel\qobject.h \
		..\..\..\include\QtCore\qobjectdefs.h \
		..\..\..\src\corelib\kernel\qobjectdefs.h \
		..\..\..\include\QtCore\qnamespace.h \
		..\..\..\src\corelib\global\qnamespace.h \
		..\..\..\include\QtCore\qstring.h \
		..\..\..\src\corelib\tools\qstring.h \
		..\..\..\include\QtCore\qchar.h \
		..\..\..\src\corelib\tools\qchar.h \
		..\..\..\include\QtCore\qbytearray.h \
		..\..\..\src\corelib\tools\qbytearray.h \
		..\..\..\include\QtCore\qatomic.h \
		..\..\..\src\corelib\thread\qatomic.h \
		..\..\..\include\QtCore\qbasicatomic.h \
		..\..\..\src\corelib\thread\qbasicatomic.h \
		..\..\..\include\QtCore\qatomic_bootstrap.h \
		..\..\..\src\corelib\arch\qatomic_bootstrap.h \
		..\..\..\include\QtCore\qatomic_arch.h \
		..\..\..\src\corelib\arch\qatomic_arch.h \
		..\..\..\include\QtCore\qatomic_vxworks.h \
		..\..\..\src\corelib\arch\qatomic_vxworks.h \
		..\..\..\include\QtCore\qatomic_powerpc.h \
		..\..\..\src\corelib\arch\qatomic_powerpc.h \
		..\..\..\include\QtCore\qatomic_alpha.h \
		..\..\..\src\corelib\arch\qatomic_alpha.h \
		..\..\..\include\QtCore\qatomic_arm.h \
		..\..\..\src\corelib\arch\qatomic_arm.h \
		..\..\..\include\QtCore\qatomic_armv6.h \
		..\..\..\src\corelib\arch\qatomic_armv6.h \
		..\..\..\include\QtCore\qatomic_avr32.h \
		..\..\..\src\corelib\arch\qatomic_avr32.h \
		..\..\..\include\QtCore\qatomic_bfin.h \
		..\..\..\src\corelib\arch\qatomic_bfin.h \
		..\..\..\include\QtCore\qatomic_generic.h \
		..\..\..\src\corelib\arch\qatomic_generic.h \
		..\..\..\include\QtCore\qatomic_i386.h \
		..\..\..\src\corelib\arch\qatomic_i386.h \
		..\..\..\include\QtCore\qatomic_ia64.h \
		..\..\..\src\corelib\arch\qatomic_ia64.h \
		..\..\..\include\QtCore\qatomic_macosx.h \
		..\..\..\src\corelib\arch\qatomic_macosx.h \
		..\..\..\include\QtCore\qatomic_x86_64.h \
		..\..\..\src\corelib\arch\qatomic_x86_64.h \
		..\..\..\include\QtCore\qatomic_mips.h \
		..\..\..\src\corelib\arch\qatomic_mips.h \
		..\..\..\include\QtCore\qatomic_parisc.h \
		..\..\..\src\corelib\arch\qatomic_parisc.h \
		..\..\..\include\QtCore\qatomic_s390.h \
		..\..\..\src\corelib\arch\qatomic_s390.h \
		..\..\..\include\QtCore\qatomic_sparc.h \
		..\..\..\src\corelib\arch\qatomic_sparc.h \
		..\..\..\include\QtCore\qatomic_windows.h \
		..\..\..\src\corelib\arch\qatomic_windows.h \
		..\..\..\include\QtCore\qatomic_windowsce.h \
		..\..\..\src\corelib\arch\qatomic_windowsce.h \
		..\..\..\include\QtCore\qatomic_symbian.h \
		..\..\..\src\corelib\arch\qatomic_symbian.h \
		..\..\..\include\QtCore\qatomic_sh.h \
		..\..\..\src\corelib\arch\qatomic_sh.h \
		..\..\..\include\QtCore\qatomic_sh4a.h \
		..\..\..\src\corelib\arch\qatomic_sh4a.h \
		..\..\..\include\Qt3Support\q3cstring.h \
		..\..\..\src\qt3support\tools\q3cstring.h \
		..\..\..\include\QtCore\qstringbuilder.h \
		..\..\..\src\corelib\tools\qstringbuilder.h \
		..\..\..\include\QtCore\qmap.h \
		..\..\..\src\corelib\tools\qmap.h \
		..\..\..\include\QtCore\qiterator.h \
		..\..\..\src\corelib\tools\qiterator.h \
		..\..\..\include\QtCore\qlist.h \
		..\..\..\src\corelib\tools\qlist.h \
		..\..\..\include\QtCore\qalgorithms.h \
		..\..\..\src\corelib\tools\qalgorithms.h \
		..\..\..\include\QtCore\qcoreevent.h \
		..\..\..\src\corelib\kernel\qcoreevent.h \
		..\..\..\include\QtCore\qvariant.h \
		..\..\..\src\corelib\kernel\qvariant.h \
		..\..\..\include\QtCore\qmetatype.h \
		..\..\..\src\corelib\kernel\qmetatype.h \
		..\..\..\include\QtCore\qhash.h \
		..\..\..\src\corelib\tools\qhash.h \
		..\..\..\include\QtCore\qpair.h \
		..\..\..\src\corelib\tools\qpair.h \
		..\..\..\include\QtCore\QFile \
		..\..\..\include\QtCore\qfile.h \
		..\..\..\src\corelib\io\qfile.h \
		..\..\..\include\QtCore\QTextStream \
		..\..\..\include\QtCore\qtextstream.h \
		..\..\..\src\corelib\io\qtextstream.h \
		..\..\..\include\QtCore\qlocale.h \
		..\..\..\src\corelib\tools\qlocale.h \
		..\..\..\include\QtCore\qtextcodec.h \
		..\..\..\src\corelib\codecs\qtextcodec.h \
		..\..\..\include\QtCore\qt_windows.h \
		..\..\..\src\corelib\global\qt_windows.h

####### Install

install:   FORCE

uninstall:   FORCE

FORCE:

