blob: ec70953066ed7be0da27db3c85fa35d272f8a87c [file] [log] [blame]
# Makefile.win for Win32 ActiveMQ-CPP
#
# Targets are:
#
# build - compile everything
# check - run APR regression tests
# install - compile everything
# clean - mop up everything
#
# You can override the build mechansim, choose only one;
#
# USEMAK=1 - compile from exported make files
# USESLN=1 - compile from converted .sln / .vcproj VC7+ files
#
# Define ARCH to your desired preference (your PATH must point
# to the correct compiler tools!) Choose only one;
#
# ARCH="Win32"
# ARCH="x64"
#
# Set CONFIG to your desired build type.
#
# CONFIG="ReleaseDLL"
# CONFIG="DebugDLL"
# CONFIG="Release"
# CONFIG="Debug"
#
# Set VERBOCITY to indicate how much information is logged about the build.
#
# VERBOCITY=quiet
# VERBOCITY=minimal
# VERBOCITY=normal
# VERBOCITY=detailed
# VERBOCITY=diagnostic
#
# For example;
#
# nmake -f Makefile.win PREFIX=C:\ActiveMQ-CPP build check install clean
#
!IF EXIST(".\vs2005-build\vs2005-activemq-cpp.sln") && ([msbuild /help > NUL 2>&1] == 0) \
&& !defined(USEMAK)
USESLN=1
USEMAK=0
!ELSEIF EXIST("activemq-cpp.mak")
USESLN=0
USEMAK=1
!ENDIF
CONFIGS="Release ReleaseDLL Debug DebugDLL"
PREFIX=..\ActiveMQ-CPP
CONFIG=Release
VERBOCITY=Normal
!IF [$(COMSPEC) /c cl /nologo /? \
| $(SystemRoot)\System32\find.exe "x64" >NUL ] == 0
ARCH=x64
!ELSE
ARCH=Win32
!ENDIF
!IF "$(CONFIG)" == "Debug" || "$(CONFIG)" == "DebugDLL"
POSTFIX="d"
!ENDIF
!MESSAGE ARCH = $(ARCH)
!MESSAGE CONFIG = $(CONFIG)
!MESSAGE VERBOCITY = $(VERBOCITY)
!MESSAGE PREFIX = $(PREFIX) (install path)
rebuild: clean build
all: build check
clean:
cd vs2005-build
-msbuild vs2005-activemq-cpp.sln /t:vs2005-activemq:Clean /p:Configuration=$(CONFIG);Platform=$(ARCH) /verbosity:$(VERBOCITY)
-msbuild vs2005-activemq-cpp.sln /t:vs2005-activemq-example:Clean /p:Configuration=$(CONFIG);Platform=$(ARCH)
-msbuild vs2005-activemq-cpp.sln /t:vs2005-activemq-integration-tests:Clean /p:Configuration=$(CONFIG);Platform=$(ARCH)
-msbuild vs2005-activemq-cpp.sln /t:vs2005-activemq-unittests:Clean /p:Configuration=$(CONFIG);Platform=$(ARCH)
cd ..
build:
cd vs2005-build
-msbuild vs2005-activemq-cpp.sln /t:vs2005-activemq /p:Configuration=$(CONFIG);Platform=$(ARCH) /verbosity:$(VERBOCITY)
-msbuild vs2005-activemq-cpp.sln /t:vs2005-activemq-example /p:Configuration=$(CONFIG);Platform=$(ARCH)
-msbuild vs2005-activemq-cpp.sln /t:vs2005-activemq-integration-tests /p:Configuration=$(CONFIG);Platform=$(ARCH)
-msbuild vs2005-activemq-cpp.sln /t:vs2005-activemq-unittests /p:Configuration=$(CONFIG);Platform=$(ARCH)
cd ..
checkamq:
cd vs2005-build\$(CONFIG)
.\vs2005-activemq-unittests.exe
cd ..\..\
check: checkamq
install:
echo Y >.y
echo A >.A
@if NOT EXIST "$(PREFIX)\." mkdir "$(PREFIX)"
@if NOT EXIST "$(PREFIX)\bin\." mkdir "$(PREFIX)\bin"
@if NOT EXIST "$(PREFIX)\include\." mkdir "$(PREFIX)\include"
@if NOT EXIST "$(PREFIX)\lib\." mkdir "$(PREFIX)\lib"
copy RELEASE_NOTES.txt "$(PREFIX)\RELEASE_NOTES.txt" <.y
copy LICENSE.txt "$(PREFIX)\LICENSE.txt" <.y
copy NOTICE.txt "$(PREFIX)\NOTICE.txt" <.y
xcopy src\main\*.h "$(PREFIX)\include\" /s /d < .a
!IF "$(CONFIG)" == "Debug" || "$(CONFIG)" == "Release"
copy .\vs2005-build\$(ARCH)\$(CONFIG)\libactivemq-cpp$(POSTFIX).lib "$(PREFIX)\lib\" <.y
!ELSE
copy .\vs2005-build\$(ARCH)\$(CONFIG)\activemq-cpp$(POSTFIX).lib "$(PREFIX)\lib\" <.y
copy .\vs2005-build\$(ARCH)\$(CONFIG)\activemq-cpp$(POSTFIX).exp "$(PREFIX)\lib\" <.y
copy .\vs2005-build\$(ARCH)\$(CONFIG)\activemq-cpp$(POSTFIX).dll "$(PREFIX)\bin\" <.y
copy .\vs2005-build\$(ARCH)\$(CONFIG)\activemq-cpp$(POSTFIX).pdb "$(PREFIX)\bin\" <.y
!ENDIF
del .y
del .a