You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Steve Huston (JIRA)" <qp...@incubator.apache.org> on 2009/03/03 01:33:58 UTC

[jira] Commented: (QPID-1675) add Windows build and test notes to wiki

    [ https://issues.apache.org/jira/browse/QPID-1675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12678175#action_12678175 ] 

Steve Huston commented on QPID-1675:
------------------------------------

Step 2.5.1 (nmake /f protocol_gen.mak) is not needed for the M4-release build. It's only needed when checking sources out of svn.

> add Windows build and test notes to wiki
> ----------------------------------------
>
>                 Key: QPID-1675
>                 URL: https://issues.apache.org/jira/browse/QPID-1675
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Build Tools, C++ Broker, C++ Client, Interop Testing, Python Test Suite, Starter, website
>    Affects Versions: M4
>         Environment: Hardware:
>         Any
> Windows:
>         
>         Windows Vista (64 bit)
>         Windows Server 2008 (64 bit).
>         Windows XP (32 bit)
> Visual Studio:
>         Visual Studio 2008 Express (32 bit C++ package)
>         Visual Studio Team Suite 2008 (32 bit and 64 bit C++ packages)
>         Visual Studio 2008 Professional (32 bit and 64 bit C++ packages)
>            Reporter: Vince Seavello
>            Priority: Trivial
>
> 1) Introduction
> The following are notes for building and testing QPID M4 on Windows.
> This document is split into 4 sections:
> 	- setup for building QPID M4 on Windows. This includes
> 	obtaining sources, supporting technologies, installation
> 	and configuration of the build environment.
> 	- building QPID M4 on Windows.
> 	- running the Linux test suites against the Windows QPID
> 	broker.
> 	- building the tests on a Windows system.
> These notes are intended to highlight issues discovered during the build and
> testing of QPID on Windows. It's a work in progress.
> Comments welcome.
> 2) Setup of QPID M4 on Windows
> 2.1) Obtaining the sources
> M4 C++ broker and client source archive is available on the QPID web site.
>   http://www.apache.org/dist/qpid/M4/qpid-cpp-M4.tar.gz
> The sources contained here will build a Static_Debug version of the broker
> and client libraries. To be able to build a Static_Release version, replace
> the file cpp/src/qpid/InlineAllocator.h with the M5 version of the file:
>   https://svn.apache.org/repos/asf/qpid/trunk/qpid/cpp/src/qpid/InlineAllocator.h
> 2.2) Setting up for the build
> Builds have been taking place using a variety of platforms and versions
> of Visual Studio. Platforms include:
> Windows:
> 	Windows Vista (64 bit)
> 	Windows Server 2008 (64 bit).
> 	Windows XP (32 bit)
> Visual Studio:
> 	Visual Studio 2008 Express (32 bit C++ package)
> 	Visual Studio Team Suite 2008 (32 bit and 64 bit C++ packages)
> 	Visual Studio 2008 Professional (32 bit and 64 bit C++ packages)
> 2.3) Technologies Dependencies
> 2.3.1) boost
> 	The stated requirement is boost 1.35.0. 1.36.0 is also being tested in
> 	our labs. There are only a few version compatibility issues detected. 
> 	You can find install images for boost at:
> 	  http://www.boostpro.com/boost_1_35_0_setup.exe
> 	  http://www.boostpro.com/boost_1_36_0_setup.exe
> 	Once you've installed one of these, set your environment variables:
> 	for 1.35.0:
> 	  BOOST_ROOT = C:\Program Files (x86)\boost\boost_1_35_0
> 	  BOOST_VERSION = 103500
>         for 1.36.0:
>           BOOST_ROOT = C:\Program Files (x86)\boost\boost_1_36_0
>           BOOST_VERSION = 103600
> 	
> 	Note: "Program Files (x86)" is "Program Files" on the 32 bit system.
> 	The boost libs are 32 bit. When building on a 64 bit system the 32
> 	bit boost libs are installed in "Program Files (x86)". 64 bit boost
> 	build is being looked into.
> 2.3.2) python
> 	Use Python 2.6, which is the stated requirement for the QPID build.
> 	Pick up a copy at:
> 	  http://www.python.org/ftp/python/2.6/python-2.6.msi
> 	You must include the python directory in the environment variable PATH.
> 	Typically, python is installed in:
> 	  C:\python26
> 	test to see that python is installed correctly and that you have the 
> 	correct version:
> 	  C:\>python --version
> 	  Python 2.6.1
> 2.3.3) ruby
> 	Use Ruby 1.8.6, which is the required version. Pick up a copy at:
> 	  http://rubyforge.org/frs/?group_id=167
> 	You must include the ruby directory in the environment variable PATH.
> 	Typically, ruby is installed in:
> 	  C:\ruby\bin
> 	test to see that ruby is installed correctly and that you have the
> 	correct version:
> 	  C:\>ruby -v
> 	  ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
> 2.4) Build tools
> The QPID build environment on Windows are centered around Visual Studio C++ 
> Development tools. There is an effort to reduce the overhead of the QPID 
> build so developers who are unfamiliar with the Visual Studio IDE can build 
> and test on Windows with as minimal an effort as possible.
> 2.4.1) Visual Studio
> Microsoft makes Visual Studio Express available at no charge. You can find
> it online at the following location:
>   http://www.microsoft.com/downloads/details.aspx?FamilyID=3254c868-bcb9-412c-95c6-d100c872ec60&DisplayLang=en
> 2.5) M4 preparation
> 2.5.1) Initial environment configuration
> Most of the prep is in the installation of the helper apps, Visual Studio, 
> source extraction and patching. When that's all done, there is one more step 
> you still need to do before you can build anything.
> Using the Visual Studio's Command Prompt, change directory to qpid/cpp/src and run:
>   nmake protocol_gen.mak
> 2.5.2) source changes
> The described source fix needed to be able to get a clean Static_Release build
> from M4 is listed above. This fix wasn't available before M4 was finalized, so
> it was added in M5.
> Other fixes may be available in M5 to address other issues, but haven't been
> tried in this environment.
> Any changes made to source files during this investigation haven't been submitted.
> They are presented here for what they're worth. Diffs of source changes are appended
> at the end of this document.
> 2.5.3) Debug vs Release
> When building QPID, you may want to change from building static debug to 
> static release. There are several ways to do this. Look in the tool bar
> at the top of the Visual Studio window. Locate the pulldown selection box
> that contains the value "Debug" or "Release". Change the value to whichever
> active solution configuration you would like to produce. All built
> objects/executables will be found in the subdirectories Static_Debug or
> Static_Release, depending on your active solution configuration.
> 3) Building QPID M4 on Windows
> 3.1) QPID Project Files
> Visual Studio uses special configuration files to identify the "solution" and 
> "project" parameters. These are made available in .sln and .vcproj files. 
> There are a smattering of these files in the M4 source tree, and more are being 
> added to the M5 tree as time goes on. 
> For QPID, look for the following:
> 	qpid/cpp/src/qpid.sln
> 		qpid/cpp/src/broker.vcproj
> 		qpid/cpp/src/client.vcproj
> 		qpid/cpp/src/common.vcproj
> 		qpid/cpp/src/MaxMethodBodySize.vcproj
> When you open the solution, you can choose to build the entire solution, or 
> just a project within. The executables and objects will be in Static_Release 
> or Static_Debug, depending on your build settings.
> Select the solution in the solution explorer pane. Right mouse click and
> choose "Build Solution". When complete, you should have built the libraries
> and qpidbroker.exe.
> 3.2) Libraries
> The Windows QPID M4 build will produce 2 libraries:
> 	qpidclients.lib
> 	qpidcommons.lib
> The Linux build will also produce a broker library. The Windows build
> links the broker source objects directly into the broker, but doesn't
> add them to a library. A broker library will be needed for the building
> of some tests.
> The build of the broker will have compiled all the source objects which
> are to live in the broker library. By creating a library by hand we will
> be able to link the tests that require the broker library. See libs.mk
> later in this document (section 5.4.1).
> Libraries are placed in cpp/src.
> Our efforts don't include building the qmfconsole library yet, so no
> status on that.
> 4) Testing AMQP from a Linux system
> There isn't a "push button" build and test for Windows. In fact, in M4
> there are relatively few tests that build for Windows. However, the
> tests do run on Linux. The Windows broker can be tested by running the
> test suites from a Linux platform.
> 4.1) localhost vs distributed
> The test suites as they are built and run on Linux assume brokers and
> tests are running on the localhost. There are a few that try to use ssh
> to start and stop processes on a remote host. But, the majority of the
> tests start brokers locally, look for PID files and run the tests against
> the local brokers. 
> In order to use these tests against a remote Windows broker, some
> modifications will be necessary. These changes are outlined later
> in this document.
> 4.2) test harnesses
> QPID makes use of the boost test framework for some of it's tests,
> but there are a number of different tools and programming methods
> used. These are:
> 	make - Building and running the tests from the makefile.
> 	Provides a convenient way to produce a push button QPID.
> 	The makefiles allow selection of subsets of tests and
> 	provide some command parameters to the test framework.
> 	boost - Boost provides libraries and header files for
> 	putting together test cases, test suites and overall
> 	test execution control.
> 	/bin/sh shell - the "bridge" between make and the test
> 	cases is handled through shell scripts and other tools,
> 	like valgrind and libtool. There are makefile variables
> 	that can control how some of these tools are utilized.
> 	python - There is a separate python directory with test
> 	cases and test suites. These tests are initiated from
> 	the makefile by calling a wrapper boost test case called
> 	python_tests.
> 	C++ - The .cpp source files in the tests directory are
> 	the main consumers of the boost framework. They typically
> 	provide a common command line interface that every test
> 	shares, as well as additional options specific to the
> 	test itself. Many of these tests have multiple test cases
> 	within and are controlled, to some fashion, by the command
> 	line options.
> At the top level is the make file. To initiate the tests, type the
> following:
> 	make check
> This will build all the QPID sources and tests. After all has been
> built, the test suites are run. There are several options you can
> use when using make to narrow down the running of the tests.
> You can select a specific list of test suites by setting the variable
> TESTS:
> 	make check TESTS=perftest
> These command line options have been helpful in isolating the various
> test suites.
> The makefile uses the script run_test to initiate the indicated
> test. In most cases, the test being requested is front-ended by a
> shell script generated during the make process.
> The run_test script can pass command line options through to the
> called program, but the makefile isn't set up to send much in the
> way of options. Many of the lower level test programs have an option
> that accepts a broker address on the command line. In some cases,
> the intermediate scripts have a broker option, too.
> In order to use the Linux tests against the Windows broker, the
> tests have to be redirected to the remote broker address. Rather
> than modify the structure of the Makefile.am file used to generate
> the final makefile, the broker address can be passed to the tests
> in the execution environment. The modified command line invocation
> then looks like this:
> 	BROKER="IP_Address" make check TESTS="fanout_perftest"
> The run_test script can be modified to look for a broker address
> environment variable. Because run_test is used to start many of
> the test programs, sometimes the broker address should not to be
> passed through. In particular, the broker address is not necessary
> when starting and stopping localhost brokers. The run_test script
> determines when to pass the broker address by looking at the program
> name.
> Alternatively, tests can be run directly. The fanout perftest
> example can be run like this:
>   ./perftest --summary --count 30000 --broker IP_Address \
> 	--mode fanout --npubs 16 --nsubs 16 --size 64
> The python tests can be run by changing directory to the python
> test dir and using one of the following command lines:
>   ./run-tests --skip-self-test -v -s 0-10-errata \
>       -I cpp_failing_0-10.txt \
>       -b 10.197.62.244:5672
>   ./run-tests -v -s 0-10-errata -I cpp_failing_0-10.txt \
>       -b 10.197.62.244:5672
>   ./run-tests -v -s 0-10-errata -b 10.197.62.244:5672
> 4.3) Changes to Linux tests
> Some of the tests, or scripts that initiate the tests, have the
> localhost address hardcoded, or look for a broker PID in a local
> file. A majority of the changes made to allow the tests to be run
> from a Linux system to a Wondows broker deal with this limitation.
> The tests that were run successfully against the Windows broker 
> from a Linux system are:
> 	client_test
> 	quick_perftest
> 	quick_topictest
> 	python_tests
> 	run_federation_tests
> 	fanout_perftest
> 	shared_perftest
> 	multiq_perftest
> 	topic_perftest
> 	txtest
> 	latencytest
> 	echotest
> 	benchmark
> 5) Building tests on Windows
> The Linux test environment makes use of tools, scripts and methods
> that don't work on a Windows platform. These issues will have to be
> addressed before a "push button" test can be accomplished similar
> to that on the Linux system.
> In the mean time, the test programs can be built on a Windows platform
> and run by hand. The following sections talk about this.
> 5.1) quick and dirty modifications
> The modifications described here do not represent "best practice"
> coding methodologies. They are presented for information sake.
> The following files required some sort of modification to build on
> Windows. A diff listing will be added to the end of this document.
>   cpp/src/tests/ClientSessionTest.cpp
>   cpp/src/tests/FieldTable.cpp
>   cpp/src/tests/MessageBuilderTest.cpp
>   cpp/src/tests/MessageTest.cpp
>   cpp/src/tests/QueueOptionsTest.cpp
>   cpp/src/tests/TimerTest.cpp
>   cpp/src/tests/Uuid.cpp
>   cpp/src/tests/logging.cpp
>   cpp/src/tests/perftest.cpp
>   cpp/src/tests/topic_listener.cpp
>   cpp/src/tests/topic_publisher.cpp
>   cpp/src/tests/unit_test.h
> While the following needed modification, the have been excluded
> from the build due to larger porting issues.
>   cpp/src/tests/ForkedBroker.h
>   cpp/src/tests/failover_soak.cpp
>   cpp/src/tests/ConsoleTest.cpp
> 5.2) nmake environment
> A small handful of make files have been created to use on a Windows
> platform to build the various test programs. The nmake utility is used
> with these files to perform the compilation. 
> 	tests/libs.mk
> 	tests/tests.mk
> 5.3) diff listings
> 	==========================================
> 	cpp/src/tests/ClientSessionTest.cpp
> 	38a39,44
> 	> #if defined(_WIN32)
> 	> #    include <windows.h>
> 	> #    include <winbase.h>
> 	> #endif
> 	> 
> 	> 
> 	225a232,234
> 	> #if defined(_WIN32)
> 	>         Sleep(1000);
> 	> #else
> 	226a236
> 	> #endif
> 	277a288,290
> 	> #if defined(_WIN32)
> 	>     Sleep(2000);
> 	> #else
> 	278a292
> 	> #endif
> 	291a306,308
> 	> #if defined(_WIN32)
> 	>     ::Sleep(300* 1);
> 	> #else
> 	292a310
> 	> #endif
> 	==========================================
> 	cpp/src/tests/FieldTable.cpp
> 	25c25,27
> 	< #include <alloca.h>
> 	---
> 	> #if !defined (_WIN32)
> 	> #    include <alloca.h>
> 	> #endif
> 	==========================================
> 	cpp/src/tests/MessageBuilderTest.cpp
> 	39c39
> 	<     uint64_t id;
> 	---
> 	>     boost::uint64_t id;
> 	215c215
> 	<     BOOST_CHECK_EQUAL((uint64_t) 1, builder.getMessage()->getPersistenceId());
> 	---
> 	>     BOOST_CHECK_EQUAL((boost::uint64_t) 1, builder.getMessage()->getPersistenceId());
> 	==========================================
> 	cpp/src/tests/MessageTest.cpp
> 	31c31,33
> 	< #include <alloca.h>
> 	---
> 	> #if !defined (_WIN32)
> 	> #    include <alloca.h>
> 	> #endif
> 	81,82c83,84
> 	<     BOOST_CHECK_EQUAL((uint64_t) data1.size() + data2.size(), msg->contentSize());
> 	<     BOOST_CHECK_EQUAL((uint64_t) data1.size() + data2.size(), msg->getProperties<MessageProperties>()->getContentLength());
> 	---
> 	>     BOOST_CHECK_EQUAL((boost::uint64_t) data1.size() + data2.size(), msg->contentSize());
> 	>     BOOST_CHECK_EQUAL((boost::uint64_t) data1.size() + data2.size(), msg->getProperties<MessageProperties>()->getContentLength());
> 	85c87
> 	<     BOOST_CHECK_EQUAL((uint8_t) PERSISTENT, msg->getProperties<DeliveryProperties>()->getDeliveryMode());
> 	---
> 	>     BOOST_CHECK_EQUAL((boost::uint8_t) PERSISTENT, msg->getProperties<DeliveryProperties>()->getDeliveryMode());
> 	==========================================
> 	cpp/src/tests/QueueOptionsTest.cpp
> 	24c24,26
> 	< #include <alloca.h>
> 	---
> 	> #if !defined(_WIN32)
> 	> #  include <alloca.h>
> 	> #endif
> 	==========================================
> 	cpp/src/tests/TimerTest.cpp
> 	78c78
> 	<         uint64_t difference = abs(expected - actual);
> 	---
> 	>         uint64_t difference = abs((long)(expected - actual));
> 	==========================================
> 	cpp/src/tests/Uuid.cpp
> 	25c25,27
> 	< #include <alloca.h>
> 	---
> 	> #if !defined(_WIN32)
> 	> #  include <alloca.h>
> 	> #endif
> 	==========================================
> 	cpp/src/tests/logging.cpp
> 	25a26
> 	> #  include "qpid/log/windows/SinkOptions.h"
> 	272a274,276
> 	> #if defined(_WIN32)
> 	>     qpid::log::windows::SinkOptions sinks("test");
> 	> #else
> 	273a278
> 	> #endif
> 	288a294,296
> 	> #if defined(_WIN32)
> 	>     qpid::log::windows::SinkOptions sinks("test");
> 	> #else
> 	289a298
> 	> #endif
> 	347a357,360
> 	> #if defined(_WIN32)
> 	>     qpid::log::windows::SinkOptions *sinks =
> 	>       dynamic_cast<qpid::log::windows::SinkOptions *>(opts.sinkOptions.get());
> 	> #else
> 	349a363
> 	> #endif
> 	==========================================
> 	cpp/src/tests/perftest.cpp
> 	41c41,43
> 	< #include <unistd.h>
> 	---
> 	> #if !defined(_WIN32)
> 	> #  include <unistd.h>
> 	> #endif
> 	==========================================
> 	cpp/src/tests/topic_listener.cpp
> 	43a44,46
> 	> #if defined(_WIN32)
> 	> #  include <process.h>
> 	> #endif
> 	==========================================
> 	cpp/src/tests/topic_publisher.cpp
> 	43c43,45
> 	< #include <unistd.h>
> 	---
> 	> #if !defined(_WIN32)
> 	> #  include <unistd.h>
> 	> #endif
> 	==========================================
> 	cpp/src/tests/unit_test.h
> 	56c56
> 	< #if (BOOST_VERSION < 103600)
> 	---
> 	> #if (BOOST_VERSION <= 103600)
> 5.4) make files
> Once the Visual Studio build has been run, the objects for the
> broker are available and can be combined into a broker library.
> This nmake file can be used in the tests directory to create the
> library. This will be necessary to build the unit_test test suite.
> From the tests directory you can run nmake with the tests.mk file
> listed below to build the tests. This build file does not build
> the files:
> 	ConsoleTest.cpp
> 	failover_soak.cpp
> 5.4.1) lib.mk
> C89_COMPILER=C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/cl.exe
> C89_LINKER=C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/link.exe
> LINK="link.exe"
> OBJEXT=.obj
> INCLUDES=/I "C:/Program Files (x86)/boost/boost_1_36_0/include/103600" /I "C:/Program Files (x86)/boost/boost_1_36_0/." /I "." /I ".." /I "../gen"
> FLAGS=/D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_CRT_NONSTDC_NO_WARNINGS" /D "NOMINMAX" /D "WIN32_LEAN_AND_MEAN" /D "_SCL_SECURE_NO_WARNINGS" /D "_CRT_SECURE_NO_WARNINGS" /FD /EHsc /MT /W3 /c /TP /wd4244 /wd4800 /wd4290 /wd4355
> LIBS=ws2_32.lib secur32.lib rpcrt4.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
> LDFLAGS=/INCREMENTAL:NO /LIBPATH:"." /LIBPATH:"C:\Program Files (x86)\boost\boost_1_36_0\lib" /DEBUG /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /nologo /errorReport:prompt
> RELDIR=Static_Release
> ROOTDIR=C:\Users\v-vinsea\Dev\AMQP\qpid-M4\cpp\src\tests
> check_PROGRAMS=
> check_LTLIBRARIES=
> TESTS=
> EXTRA_DIST=
> CLEANFILES=
> .cpp$(OBJEXT):
> 	echo $(CC) /O2 $(INCLUDES) $(FLAGS) /Fo"..\Static_Release\qmfconsole/I386//" /Fd"..\Static_Release\qmfconsole/I386/vc90.pdb" $<
> broker_OBJECTS=../Static_Release/broker/I386/Acl.obj \
> 	../Static_Release/broker/I386/Agent.obj \
> 	../Static_Release/broker/I386/Binding.obj \
> 	../Static_Release/broker/I386/Bridge.obj \
> 	../Static_Release/broker/I386/Bridge2.obj \
> 	../Static_Release/broker/I386/Broker.obj \
> 	../Static_Release/broker/I386/Broker2.obj \
> 	../Static_Release/broker/I386/BrokerDefaults.obj \
> 	../Static_Release/broker/I386/BrokerSingleton.obj \
> 	../Static_Release/broker/I386/Connection.obj \
> 	../Static_Release/broker/I386/Connection2.obj \
> 	../Static_Release/broker/I386/Connection3.obj \
> 	../Static_Release/broker/I386/ConnectionFactory.obj \
> 	../Static_Release/broker/I386/ConnectionHandler.obj \
> 	../Static_Release/broker/I386/DeliverableMessage.obj \
> 	../Static_Release/broker/I386/DeliveryRecord.obj \
> 	../Static_Release/broker/I386/DirectExchange.obj \
> 	../Static_Release/broker/I386/DtxAck.obj \
> 	../Static_Release/broker/I386/DtxBuffer.obj \
> 	../Static_Release/broker/I386/DtxManager.obj \
> 	../Static_Release/broker/I386/DtxTimeout.obj \
> 	../Static_Release/broker/I386/DtxWorkRecord.obj \
> 	../Static_Release/broker/I386/EventAllow.obj \
> 	../Static_Release/broker/I386/EventBind.obj \
> 	../Static_Release/broker/I386/EventBrokerLinkDown.obj \
> 	../Static_Release/broker/I386/EventBrokerLinkUp.obj \
> 	../Static_Release/broker/I386/EventClientConnect.obj \
> 	../Static_Release/broker/I386/EventClientConnectFail.obj \
> 	../Static_Release/broker/I386/EventClientDisconnect.obj \
> 	../Static_Release/broker/I386/EventDeny.obj \
> 	../Static_Release/broker/I386/EventExchangeDeclare.obj \
> 	../Static_Release/broker/I386/EventExchangeDelete.obj \
> 	../Static_Release/broker/I386/EventFileLoadFailed.obj \
> 	../Static_Release/broker/I386/EventFileLoaded.obj \
> 	../Static_Release/broker/I386/EventQueueDeclare.obj \
> 	../Static_Release/broker/I386/EventQueueDelete.obj \
> 	../Static_Release/broker/I386/EventSubscribe.obj \
> 	../Static_Release/broker/I386/EventUnbind.obj \
> 	../Static_Release/broker/I386/EventUnsubscribe.obj \
> 	../Static_Release/broker/I386/Exchange.obj \
> 	../Static_Release/broker/I386/Exchange2.obj \
> 	../Static_Release/broker/I386/ExchangeRegistry.obj \
> 	../Static_Release/broker/I386/FanOutExchange.obj \
> 	../Static_Release/broker/I386/HeadersExchange.obj \
> 	../Static_Release/broker/I386/IncompleteMessageList.obj \
> 	../Static_Release/broker/I386/Link.obj \
> 	../Static_Release/broker/I386/Link2.obj \
> 	../Static_Release/broker/I386/LinkRegistry.obj \
> 	../Static_Release/broker/I386/ManagementBroker.obj \
> 	../Static_Release/broker/I386/ManagementExchange.obj \
> 	../Static_Release/broker/I386/Message.obj \
> 	../Static_Release/broker/I386/MessageAdapter.obj \
> 	../Static_Release/broker/I386/MessageBuilder.obj \
> 	../Static_Release/broker/I386/MessageStoreModule.obj \
> 	../Static_Release/broker/I386/NameGenerator.obj \
> 	../Static_Release/broker/I386/NullMessageStore.obj \
> 	../Static_Release/broker/I386/Package.obj \
> 	../Static_Release/broker/I386/Package2.obj \
> 	../Static_Release/broker/I386/PersistableMessage.obj \
> 	../Static_Release/broker/I386/QpiddBroker.obj \
> 	../Static_Release/broker/I386/Queue.obj \
> 	../Static_Release/broker/I386/Queue2.obj \
> 	../Static_Release/broker/I386/QueueBindings.obj \
> 	../Static_Release/broker/I386/QueueCleaner.obj \
> 	../Static_Release/broker/I386/QueueListeners.obj \
> 	../Static_Release/broker/I386/QueuePolicy.obj \
> 	../Static_Release/broker/I386/QueueRegistry.obj \
> 	../Static_Release/broker/I386/RateTracker.obj \
> 	../Static_Release/broker/I386/RecoveredDequeue.obj \
> 	../Static_Release/broker/I386/RecoveredEnqueue.obj \
> 	../Static_Release/broker/I386/RecoveryManagerImpl.obj \
> 	../Static_Release/broker/I386/SaslAuthenticator.obj \
> 	../Static_Release/broker/I386/SemanticState.obj \
> 	../Static_Release/broker/I386/Session.obj \
> 	../Static_Release/broker/I386/SessionAdapter.obj \
> 	../Static_Release/broker/I386/SessionHandler.obj \
> 	../Static_Release/broker/I386/SessionManager.obj \
> 	../Static_Release/broker/I386/SessionState.obj \
> 	../Static_Release/broker/I386/System.obj \
> 	../Static_Release/broker/I386/System2.obj \
> 	../Static_Release/broker/I386/TCPIOPlugin.obj \
> 	../Static_Release/broker/I386/Timer.obj \
> 	../Static_Release/broker/I386/TopicExchange.obj \
> 	../Static_Release/broker/I386/TxAccept.obj \
> 	../Static_Release/broker/I386/TxBuffer.obj \
> 	../Static_Release/broker/I386/TxPublish.obj \
> 	../Static_Release/broker/I386/Vhost.obj \
> 	../Static_Release/broker/I386/Vhost2.obj \
> 	../Static_Release/broker/I386/qpidd.obj
> qmfconsole_OBJECTS=../Static_Release/qmfconsole/I386/ClassKey.obj
> lib: 
> 	lib.exe /OUT:"../qpidbrokers.lib" $(broker_OBJECTS)
> 5.4.2) tests.mk
> C89_COMPILER=C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/cl.exe
> C89_LINKER=C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/link.exe
> LINK="link.exe"
> OBJEXT=.obj
> EXEEXT=.exe
> INCLUDES=/I "C:/Program Files (x86)/boost/boost_1_36_0/include/103600" /I "C:/Program Files (x86)/boost/boost_1_36_0/." /I "." /I ".." /I "../gen"
> FLAGS=/D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_CRT_NONSTDC_NO_WARNINGS" /D "NOMINMAX" /D "WIN32_LEAN_AND_MEAN" /D "_SCL_SECURE_NO_WARNINGS" /D "_CRT_SECURE_NO_WARNINGS" /FD /EHsc /MT /W3 /c /TP /wd4244 /wd4800 /wd4290 /wd4355
> lib_client=..\qpidclients.lib
> lib_common=..\qpidcommons.lib
> lib_broker=..\qpidbrokers.lib
> #lib_console=..\qmfconsoles.lib
> LDLIBS=..\qpidclients.lib ..\qpidcommons.lib ..\qpidbrokers.lib
> LIBS=ws2_32.lib secur32.lib rpcrt4.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
> LDFLAGS=/INCREMENTAL:NO /LIBPATH:"." /LIBPATH:"C:\Program Files (x86)\boost\boost_1_36_0\lib" /DEBUG /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /nologo /errorReport:prompt
> RELDIR=Static_Release
> OBJDIR=$(RELDIR)/tests/I386
> #UNIT_TEST_OBJDIR=$(RELDIR)/unit_test/I386
> ROOTDIR=C:\Users\v-vinsea\Dev\AMQP\qpid-M4\cpp\src\tests
> check_PROGRAMS=
> check_LTLIBRARIES=
> TESTS=
> EXTRA_DIST=
> CLEANFILES=
> SOURCES=
> UNIT_TEST_OBJECTS=
> unit_test_SOURCES= \
> 	ConsoleTest.cpp \
> 	unit_test.cpp \
> 	exception_test.cpp \
> 	RefCounted.cpp \
> 	SessionState.cpp Blob.cpp logging.cpp \
> 	AsyncCompletion.cpp \
> 	Url.cpp Uuid.cpp \
> 	Shlib.cpp FieldValue.cpp FieldTable.cpp Array.cpp \
> 	QueueOptionsTest.cpp \
> 	InlineAllocator.cpp \
> 	InlineVector.cpp \
> 	ClientSessionTest.cpp \
> 	SequenceSet.cpp \
> 	StringUtils.cpp \
> 	IncompleteMessageList.cpp \
> 	RangeSet.cpp \
> 	AtomicValue.cpp \
> 	QueueTest.cpp \
> 	AccumulatedAckTest.cpp \
> 	DtxWorkRecordTest.cpp \
> 	DeliveryRecordTest.cpp \
> 	ExchangeTest.cpp \
> 	HeadersExchangeTest.cpp \
> 	MessageTest.cpp \
> 	QueueRegistryTest.cpp \
> 	QueuePolicyTest.cpp \
> 	FramingTest.cpp \
> 	HeaderTest.cpp \
> 	SequenceNumberTest.cpp \
> 	TimerTest.cpp \
> 	TopicExchangeTest.cpp \
> 	TxBufferTest.cpp \
> 	TxPublishTest.cpp \
> 	MessageBuilderTest.cpp \
> 	ManagementTest.cpp \
> 	MessageReplayTracker.cpp
> perftest_SOURCES=perftest.cpp
> txtest_SOURCES=txtest.cpp
> latencytest_SOURCES=latencytest.cpp
> echotest_SOURCES=echotest.cpp
> client_test_SOURCES=client_test.cpp
> topic_listener_SOURCES=topic_listener.cpp
> topic_publisher_SOURCES=topic_publisher.cpp
> publish_SOURCES=publish.cpp
> consume_SOURCES=consume.cpp
> header_test_SOURCES=header_test.cpp
> failover_soak_SOURCES=failover_soak.cpp
> declare_queues_SOURCES=declare_queues.cpp
> replaying_sender_SOURCES=replaying_sender.cpp
> resuming_receiver_SOURCES=resuming_receiver.cpp
> txshift_SOURCES=txshift.cpp
> txjob_SOURCES=txjob.cpp
> receiver_SOURCES=receiver.cpp
> sender_SOURCES=sender.cpp
> SOURCES=$(SOURCES) $(unit_test_SOURCES)
> SOURCES=$(SOURCES) $(perftest_SOURCES)
> SOURCES=$(SOURCES) $(txtest_SOURCES)
> SOURCES=$(SOURCES) $(latencytest_SOURCES)
> SOURCES=$(SOURCES) $(echotest_SOURCES)
> SOURCES=$(SOURCES) $(client_test_SOURCES)
> SOURCES=$(SOURCES) $(topic_listener_SOURCES)
> SOURCES=$(SOURCES) $(topic_publisher_SOURCES)
> SOURCES=$(SOURCES) $(publish_SOURCES)
> SOURCES=$(SOURCES) $(consume_SOURCES)
> SOURCES=$(SOURCES) $(header_test_SOURCES)
> #SOURCES=$(SOURCES) $(failover_soak_SOURCES)
> SOURCES=$(SOURCES) $(declare_queues_SOURCES)
> SOURCES=$(SOURCES) $(replaying_sender_SOURCES)
> SOURCES=$(SOURCES) $(resuming_receiver_SOURCES)
> SOURCES=$(SOURCES) $(txshift_SOURCES)
> SOURCES=$(SOURCES) $(txjob_SOURCES)
> SOURCES=$(SOURCES) $(receiver_SOURCES)
> SOURCES=$(SOURCES) $(sender_SOURCES)
> UNIT_TEST_OBJECTS= \
> 	$(OBJDIR)/unit_test$(OBJEXT) \
> 	$(OBJDIR)/exception_test$(OBJEXT) \
> 	$(OBJDIR)/RefCounted$(OBJEXT) \
> 	$(OBJDIR)/SessionState$(OBJEXT) \
> 	$(OBJDIR)/Blob$(OBJEXT) \
> 	$(OBJDIR)/logging$(OBJEXT) \
> 	$(OBJDIR)/AsyncCompletion$(OBJEXT) \
> 	$(OBJDIR)/Url$(OBJEXT) \
> 	$(OBJDIR)/Uuid$(OBJEXT) \
> 	$(OBJDIR)/Shlib$(OBJEXT) \
> 	$(OBJDIR)/FieldValue$(OBJEXT) \
> 	$(OBJDIR)/FieldTable$(OBJEXT) \
> 	$(OBJDIR)/Array$(OBJEXT) \
> 	$(OBJDIR)/QueueOptionsTest$(OBJEXT) \
> 	$(OBJDIR)/InlineAllocator$(OBJEXT) \
> 	$(OBJDIR)/InlineVector$(OBJEXT) \
> 	$(OBJDIR)/ClientSessionTest$(OBJEXT) \
> 	$(OBJDIR)/SequenceSet$(OBJEXT) \
> 	$(OBJDIR)/StringUtils$(OBJEXT) \
> 	$(OBJDIR)/IncompleteMessageList$(OBJEXT) \
> 	$(OBJDIR)/RangeSet$(OBJEXT) \
> 	$(OBJDIR)/AtomicValue$(OBJEXT) \
> 	$(OBJDIR)/QueueTest$(OBJEXT) \
> 	$(OBJDIR)/AccumulatedAckTest$(OBJEXT) \
> 	$(OBJDIR)/DtxWorkRecordTest$(OBJEXT) \
> 	$(OBJDIR)/DeliveryRecordTest$(OBJEXT) \
> 	$(OBJDIR)/ExchangeTest$(OBJEXT) \
> 	$(OBJDIR)/HeadersExchangeTest$(OBJEXT) \
> 	$(OBJDIR)/MessageTest$(OBJEXT) \
> 	$(OBJDIR)/QueueRegistryTest$(OBJEXT) \
> 	$(OBJDIR)/QueuePolicyTest$(OBJEXT) \
> 	$(OBJDIR)/FramingTest$(OBJEXT) \
> 	$(OBJDIR)/HeaderTest$(OBJEXT) \
> 	$(OBJDIR)/SequenceNumberTest$(OBJEXT) \
> 	$(OBJDIR)/TimerTest$(OBJEXT) \
> 	$(OBJDIR)/TopicExchangeTest$(OBJEXT) \
> 	$(OBJDIR)/TxBufferTest$(OBJEXT) \
> 	$(OBJDIR)/TxPublishTest$(OBJEXT) \
> 	$(OBJDIR)/MessageBuilderTest$(OBJEXT) \
> 	$(OBJDIR)/ManagementTest$(OBJEXT) \
> 	$(OBJDIR)/MessageReplayTracker$(OBJEXT)
> #	$(OBJDIR)/ConsoleTest$(OBJEXT) \
> TESTS=$(TESTS) $(RELDIR)/unit_test$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/perftest$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/txtest$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/latencytest$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/echotest$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/client_test$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/topic_listener$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/topic_publisher$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/publish$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/consume$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/header_test$(EXEEXT)
> #TESTS=$(TESTS) $(RELDIR)/failover_soak$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/declare_queues$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/replaying_sender$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/resuming_receiver$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/txshift$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/txjob$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/receiver$(EXEEXT)
> TESTS=$(TESTS) $(RELDIR)/sender$(EXEEXT)
> .cpp.obj:
> 	@mkdir -p $(RELDIR)
> 	@mkdir -p $(OBJDIR)
> 	$(CC) /O2 $(INCLUDES) $(FLAGS) /Fo"$(OBJDIR)//" /Fd"$(OBJDIR)/vc90.pdb" $**
> all: $(SOURCES:.cpp=.obj) $(TESTS)
> $(RELDIR)/perftest$(EXEEXT): {$(OBJDIR)}$(perftest_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/txtest$(EXEEXT): {$(OBJDIR)}$(txtest_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/latencytest$(EXEEXT): {$(OBJDIR)}$(latencytest_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/echotest$(EXEEXT): {$(OBJDIR)}$(echotest_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/client_test$(EXEEXT): {$(OBJDIR)}$(client_test_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/topic_listener$(EXEEXT): {$(OBJDIR)}$(topic_listener_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/topic_publisher$(EXEEXT): {$(OBJDIR)}$(topic_publisher_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/publish$(EXEEXT): {$(OBJDIR)}$(publish_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/consume$(EXEEXT): {$(OBJDIR)}$(consume_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/header_test$(EXEEXT): {$(OBJDIR)}$(header_test_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/failover_soak$(EXEEXT): {$(OBJDIR)}$(failover_soak_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/declare_queues$(EXEEXT): {$(OBJDIR)}$(declare_queues_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/replaying_sender$(EXEEXT): {$(OBJDIR)}$(replaying_sender_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/resuming_receiver$(EXEEXT): {$(OBJDIR)}$(resuming_receiver_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/txshift$(EXEEXT): {$(OBJDIR)}$(txshift_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/txjob$(EXEEXT): {$(OBJDIR)}$(txjob_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/receiver$(EXEEXT): {$(OBJDIR)}$(receiver_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/sender$(EXEEXT): {$(OBJDIR)}$(sender_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) %|pfF$(OBJEXT) 
> $(RELDIR)/unit_test$(EXEEXT): {$(OBJDIR)}$(unit_test_SOURCES:.cpp=.obj)
> 	$(LINK) /OUT:$(RELDIR)/%|fF$(EXEEXT) /PDB:$(ROOTDIR)/$(RELDIR)/%|fF.pdb /MANIFEST /MANIFESTFILE:"$(OBJDIR)\%|fF$(EXEEXT).intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" $(LDFLAGS) $(LDLIBS) $(LIBS) $(UNIT_TEST_OBJECTS)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org