Hi Samisa!
Happy to know there's no multithreading issue for you all. After days of
tests, now there's not a multithreading issue anymore for me too !! The
problem is solved !! Here's the solution:
1) A bug of mine, in a function of a much bigger software that uses
Axis2/C, a "delete i" instead of "delete *i" (i is a
vector<X*>::iterator) near Axis calls in a multithreading environment,
corrupting the heap and causing Axis to crash randomly, with failing
malloc and free.
2) What I think is a bug in the Win32 makefile. I had to compile Axis
since I needed HTTPS support. Official binaries worked well, but mine
not. I compiled with DEBUG=1 and I noticed the makefile didn't specify
which C Runtime to use. This caused the single-threading C runtime to be
implicitly linked, generating random crashes during calls of C runtime
functions from more than one thread. I solved the problem replacing part
of the code of the makefile with the following:
#################### debug symbols
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 /MDd
LDFLAGS = $(LDFLAGS) /DEBUG
!else
CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 /MD
LDFLAGS = $(LDFLAGS)
!endif
The DEBUG=1 case must specify the /MDd parameter, to link to MSVCRTD.dll
in multithreading mode. The ignore library parameter of the linker is
removed too. I modified also the DEBUG=0 case, replacing /MT with /MD to
link to MSVCRT.dll.
/MTd and /MT could be used instead of /MDd and /MD to link the runtime
library statically, but I suggest dynamic linking, since it's used as
default by VS6 and by libxml2, zlib, iconv and openssl.
May you include these modifications in 1.1? Pathed makefile is attached.
Thanks to all of you who tested the piece of code I attached, and helped
me tracking and solving this issue.
I keep the mailing list subscribed, hoping to be able to help someone else.
PS.
When are you going to release 1.1?
Cheers,
Stefano
Samisa Abeysinghe wrote:
Stefano Pettini wrote:
Hi all again,
multithreading issue is still open,
The program that Manjula sent does not work for you? It works fine for
me. So there is no mltithreading issue anymore.
Samisa...
# THIS IS THE MAKE FILE FOR AXIS2/C
# this file should reside in the win32 directory of the source directory
# when executed
# nmake [all] build dlls , server , samples [ client, server ]
# nmake clean clean everything
# nmake samples build samples
# nmake install to install axis2 with server all modules and services
# nmake dist to create the distribution, builds all distributable components
#It is possible to run individual targets to build those targets only,
# eg nmake axis2_apache_module , will build apache module
# install directory will be (default)deploy or a user specified directory
# then the directory structure is following
# AXIS2_BINDIR
# |
# |- bin - server and other executables
# | |- samples - samples
# |- logs
# |- lib - library modules
# |- services - deployed services will be hear
# |- modules - deployed modules will be hear
# |- include - all include files of axis2 will go here
# |- tests
# |- system_tests
# |- unit tests
AUTOCONF = configure.in
!include $(AUTOCONF)
# directory structure of install directory
AXIS2_RELEASE_DIR=axis2c-bin-$(RELEASE_VER)-win32
AXIS2_BINDIR = ..\deploy
AXIS2_SERVICES = $(AXIS2_BINDIR)\services
AXIS2_MODULES = $(AXIS2_BINDIR)\modules
AXIS2_LIBS = $(AXIS2_BINDIR)\lib
AXIS2_BINS = $(AXIS2_BINDIR)\bin
AXIS2_INCLUDE = $(AXIS2_BINDIR)\include
AXIS2_SAMPLES = $(AXIS2_BINS)\samples
AXIS2_TOOLS = $(AXIS2_BINS)\tools
AXIS2_LOG = $(AXIS2_BINDIR)\logs
AXIS2_TESTS = $(AXIS2_BINDIR)\tests
AXIS2_TESTS_SYS = $(AXIS2_TESTS)\system_tests
AXIS2_TESTS_UNIT = $(AXIS2_TESTS)\unit_tests
AXIS2_SOURCE_DIR = ..\..
#directories for intermediate files
AXIS2_INTDIR= .\int.msvc
AXIS2_INTDIR_AXIOM = $(AXIS2_INTDIR)\axiom
AXIS2_INTDIR_UTIL = $(AXIS2_INTDIR)\util
AXIS2_INTDIR_CORE = $(AXIS2_INTDIR)\core
AXIS2_INTDIR_TNS = $(AXIS2_INTDIR)\http_sender
AXIS2_INTDIR_TNR = $(AXIS2_INTDIR)\http_receiver
AXIS2_INTDIR_PARSER = $(AXIS2_INTDIR)\axis2_parser
AXIS2_INTDIR_ADDRESSING = $(AXIS2_INTDIR)\src\addressing
AXIS2_INTDIR_SAMPLES = $(AXIS2_INTDIR)\samples
AXIS2_INTDIR_GUTHTHILA = $(AXIS2_INTDIR)\guththila
# versioning information
AXIS2_MAJOR_VERSION = M
AXIS2_MINOR_VERSION = 0
AXIS2_MICRO_VERSION = 9
#binary distribution dll names
#core modules
AXUTIL = axutil
AXIS2_PARSER = axis2_parser
AXIOM = axiom
AXIS2_TRANSPORT_SENDER = axis2_http_sender
AXIS2_TRANSPORT_RECEIVER = axis2_http_receiver
AXIS2_ENGINE = axis2_engine
AXIS2_APACHE_MODULE = mod_axis2
AXIS2_IIS_MODULE = axis2_mod_IIS
AXIS2_MOD_ADDR = axis2_mod_addr
AXIS2_SERVER = axis2_http_server
GUTHTHILA = guththila
PARSER = build
!if "$(ENABLE_GUTHTHILA)" == "1"
PARSER = $(PARSER)_with_guththila
!endif
#other modules
AXIS2_RAMPART = mod_rampart
AXIS2_MOD_LOG = axis2_mod_log
# include path
APACHE_INCLUE_PATH = /I$(APACHE_BIN_DIR)\include
AXIS2_INCLUDE_PATH = /I$(AXIS2_SOURCE_DIR)\util\include \
/I$(AXIS2_SOURCE_DIR)\util\src\ \
/I$(AXIS2_SOURCE_DIR)\util\src\minizip\ \
/I$(AXIS2_SOURCE_DIR)\axiom\include \
/I$(AXIS2_SOURCE_DIR)\axiom\src\om \
/I$(AXIS2_SOURCE_DIR)\axiom\src\soap \
/I$(AXIS2_SOURCE_DIR)\util\include\platforms \
/I$(AXIS2_SOURCE_DIR)\src\core\clientapi \
/I$(AXIS2_SOURCE_DIR)\src\core\deployment \
/I$(AXIS2_SOURCE_DIR)\src\core\description \
/I$(AXIS2_SOURCE_DIR)\src\core\transport \
/I$(AXIS2_SOURCE_DIR)\include \
/I$(AXIS2_SOURCE_DIR)\src\core\engine \
/I$(AXIS2_SOURCE_DIR)\src\core\context \
/I$(AXIS2_SOURCE_DIR)\src\core\util \
/I$(AXIS2_SOURCE_DIR)\src\core\transport\http\server\apache2 \
/I$(AXIS2_SOURCE_DIR)\axiom\src\attachments \
/I$(LIBXML2_BIN_DIR)\include \
/I$(ICONV_BIN_DIR)\include \
/I$(ZLIB_BIN_DIR)\include
GUTHTHILA_INCLUDE_PATH = /I$(AXIS2_SOURCE_DIR)\guththila\include
!if "$(ENABLE_SSL)" == "1"
AXIS2_INCLUDE_PATH = $(AXIS2_INCLUDE_PATH) /I$(OPENSSL_BIN_DIR)\include
!endif
!if "$(ENABLE_LIBCURL)" == "1"
AXIS2_INCLUDE_PATH = $(AXIS2_INCLUDE_PATH) /I$(LIBCURL_BIN_DIR)\include
!endif
#source paths for core modules
AXIS2_UTIL_SRC = $(AXIS2_SOURCE_DIR)\util\src\platforms\windows\*.c \
$(AXIS2_SOURCE_DIR)\util\src\minizip\*.c \
$(AXIS2_SOURCE_DIR)\util\src\*.c
AXIS2_PARSER_SRC = $(AXIS2_SOURCE_DIR)\axiom\src\parser\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\parser\libxml2\*.c
AXIS2_GUTHTHILA_PARSER_SRC = $(AXIS2_SOURCE_DIR)\axiom\src\parser\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\parser\guththila\*.c
AXIOM_SRC = $(AXIS2_SOURCE_DIR)\axiom\src\om\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\soap\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\attachments\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\util\*.c
AXIS2_ENGINE_SRC = $(AXIS2_SOURCE_DIR)\src\core\addr\*.c \
$(AXIS2_SOURCE_DIR)\src\core\clientapi\*.c \
$(AXIS2_SOURCE_DIR)\src\core\context\*.c \
$(AXIS2_SOURCE_DIR)\src\core\deployment\*.c \
$(AXIS2_SOURCE_DIR)\src\core\description\*.c \
$(AXIS2_SOURCE_DIR)\src\core\engine\*.c \
$(AXIS2_SOURCE_DIR)\src\core\phaseresolver\*.c \
$(AXIS2_SOURCE_DIR)\src\core\receivers\*.c \
$(AXIS2_SOURCE_DIR)\src\core\util\*.c \
$(AXIS2_SOURCE_DIR)\src\core\transport\*.c \
$(AXIS2_SOURCE_DIR)\src\core\transport\http\common\*.c \
$(AXIS2_SOURCE_DIR)\src\core\transport\http\util\*.c
AXIS2_HTTP_SENDER_SRC = $(AXIS2_SOURCE_DIR)\src\core\transport\http\sender\*.c
!if "$(ENABLE_SSL)" == "1"
AXIS2_HTTP_SENDER_SRC = $(AXIS2_HTTP_SENDER_SRC) \
$(AXIS2_SOURCE_DIR)\src\core\transport\http\sender\ssl\*.c
!endif
!if "$(ENABLE_LIBCURL)" == "1"
AXIS2_HTTP_SENDER_SRC = $(AXIS2_HTTP_SENDER_SRC) \
$(AXIS2_SOURCE_DIR)\src\core\transport\http\sender\libcurl\*.c
!endif
AXIS2_HTTP_RECEIVER_SRC =
$(AXIS2_SOURCE_DIR)\src\core\transport\http\receiver\*.c
AXIS2_MOD_ADDR_SRC = $(AXIS2_SOURCE_DIR)\src\modules\mod_addr\*.c
GUTHTHILA_SRC = $(AXIS2_SOURCE_DIR)\guththila\src\*.c
##################### compiler options
CC = @cl.exe
CFLAGS = /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "AXIS2_DECLARE_EXPORT" \
/D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_SECURE_NO_WARNINGS" \
/D "AXIS2_SVR_MULTI_THREADED" /w /nologo $(AXIS2_INCLUDE_PATH) \
$(APACHE_INCLUDE_PATH)
!if "$(ENABLE_SSL)" == "1"
CFLAGS = $(CFLAGS) /D "AXIS2_SSL_ENABLED"
!endif
!if "$(ENABLE_LIBCURL)" == "1"
CFLAGS = $(CFLAGS) /D "AXIS2_LIBCURL_ENABLED"
!endif
################### linker options
LD = @link.exe
LDFLAGS = /nologo /LIBPATH:$(AXIS2_LIBS) /LIBPATH:$(LIBXSLT_BIN_DIR)\lib \
/LIBPATH:$(LIBXML2_BIN_DIR)\lib /LIBPATH:$(APACHE_BIN_DIR)\lib \
/LIBPATH:$(ZLIB_BIN_DIR)\lib
LIBS = Rpcrt4.lib Ws2_32.lib
!if "$(ENABLE_SSL)" == "1"
LDFLAGS = $(LDFLAGS) /LIBPATH:$(OPENSSL_BIN_DIR)\lib\VC
LIBS = $(LIBS) libeay32MT.lib ssleay32MT.lib
!endif
!if "$(ENABLE_LIBCURL)" == "1"
LDFLAGS = $(LDFLAGS) /LIBPATH:$(LIBCURL_BIN_DIR)
LIBS = $(LIBS) libcurl_imp.lib
!endif
!if "$(APACHE_VERSION_IS_2_0_59)" == "1"
APACHE_LIBS = apr.lib xml.lib libhttpd.lib aprutil.lib libapr.lib
!else
APACHE_LIBS = apr-1.lib xml.lib libhttpd.lib aprutil-1.lib libapr-1.lib
!endif
#################### debug symbols
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 /MDd
LDFLAGS = $(LDFLAGS) /DEBUG
!else
CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 /MD
LDFLAGS = $(LDFLAGS)
!endif
################################################################
# create the directory structure
deploy:
if not exist $(AXIS2_BINDIR) mkdir $(AXIS2_BINDIR)
if not exist $(AXIS2_BINS) mkdir $(AXIS2_BINS)
if not exist $(AXIS2_SERVICES) mkdir $(AXIS2_SERVICES)
if not exist $(AXIS2_MODULES) mkdir $(AXIS2_MODULES)
if not exist $(AXIS2_LIBS) mkdir $(AXIS2_LIBS)
if not exist $(AXIS2_INCLUDE) mkdir $(AXIS2_INCLUDE)
if not exist $(AXIS2_LOG) mkdir $(AXIS2_LOG)
if not exist $(AXIS2_MODULES)\addressing mkdir
$(AXIS2_MODULES)\addressing
#intermediate directories
if not exist $(AXIS2_INTDIR) mkdir $(AXIS2_INTDIR)
if not exist $(AXIS2_INTDIR_AXIOM) mkdir $(AXIS2_INTDIR_AXIOM)
if not exist $(AXIS2_INTDIR_UTIL) mkdir $(AXIS2_INTDIR_UTIL)
if not exist $(AXIS2_INTDIR_CORE) mkdir $(AXIS2_INTDIR_CORE)
if not exist $(AXIS2_INTDIR_TNS) mkdir $(AXIS2_INTDIR_TNS)
if not exist $(AXIS2_INTDIR_TNR) mkdir $(AXIS2_INTDIR_TNR)
if not exist $(AXIS2_INTDIR_PARSER) mkdir $(AXIS2_INTDIR_PARSER)
if not exist $(AXIS2_INTDIR_ADDRESSING) mkdir $(AXIS2_INTDIR_ADDRESSING)
if not exist $(AXIS2_INTDIR_SAMPLES) mkdir $(AXIS2_INTDIR_SAMPLES)
if not exist $(AXIS2_INTDIR_GUTHTHILA) mkdir $(AXIS2_INTDIR_GUTHTHILA)
#clean
clean:
if exist $(AXIS2_BINDIR) rmdir /S /Q $(AXIS2_BINDIR)
if exist $(AXIS2_INTDIR) rmdir /S /Q $(AXIS2_INTDIR)
clean_make_dir:
del *.obj del *.exe del *.exp
axis2_util:
$(CC) $(CFLAGS) $(AXIS2_UTIL_SRC) /Fo$(AXIS2_INTDIR_UTIL)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_UTIL)\*.obj $(LIBS)
$(ZLIB_BIN_DIR)\lib\zdll.lib \
/DLL /OUT:$(AXIS2_LIBS)\$(AXUTIL).dll
/IMPLIB:$(AXIS2_LIBS)\$(AXUTIL).lib
guththila:
$(CC) $(CFLAGS) $(GUTHTHILA_INCLUDE_PATH) $(GUTHTHILA_SRC)
/Fo$(AXIS2_INTDIR_GUTHTHILA)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_GUTHTHILA)\*.obj $(AXUTIL).lib \
$(LIBS) \
/DLL /OUT:$(AXIS2_LIBS)\$(GUTHTHILA).dll
/IMPLIB:$(AXIS2_LIBS)\$(GUTHTHILA).lib
axis2_parser:
$(CC) $(CFLAGS) $(AXIS2_PARSER_SRC) /Fo$(AXIS2_INTDIR_PARSER)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_PARSER)\*.obj $(AXUTIL).lib $(LIBS) \
$(LIBXML2_BIN_DIR)\lib\libxml2.lib /DLL \
/OUT:$(AXIS2_LIBS)\$(AXIS2_PARSER).dll
/IMPLIB:$(AXIS2_LIBS)\$(AXIS2_PARSER).lib
axis2_parser_with_guththila:
$(CC) $(CFLAGS) $(GUTHTHILA_INCLUDE_PATH) $(AXIS2_GUTHTHILA_PARSER_SRC)
/Fo$(AXIS2_INTDIR_PARSER)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_PARSER)\*.obj $(AXUTIL).lib $(LIBS) \
$(AXIS2_LIBS)\$(GUTHTHILA).lib /DLL \
/OUT:$(AXIS2_LIBS)\$(AXIS2_PARSER).dll
/IMPLIB:$(AXIS2_LIBS)\$(AXIS2_PARSER).lib
axiom:
$(CC) $(CFLAGS) $(AXIOM_SRC) /Fo$(AXIS2_INTDIR_AXIOM)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_AXIOM)\*.obj $(AXUTIL).lib \
$(AXIS2_PARSER).lib $(LIBS) /DLL /OUT:$(AXIS2_LIBS)\$(AXIOM).dll \
/IMPLIB:$(AXIS2_LIBS)\$(AXIOM).lib
axis2_engine:
$(CC) $(CFLAGS) $(AXIS2_ENGINE_SRC) /Fo$(AXIS2_INTDIR_CORE)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_CORE)\*.obj $(AXUTIL).lib $(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) \
/DLL /OUT:$(AXIS2_LIBS)\$(AXIS2_ENGINE).dll
/IMPLIB:$(AXIS2_LIBS)\$(AXIS2_ENGINE).lib
axis2_http_sender:
$(CC) $(CFLAGS) $(AXIS2_HTTP_SENDER_SRC) /Fo$(AXIS2_INTDIR_TNS)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_TNS)\*.obj $(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/DLL /OUT:$(AXIS2_LIBS)\$(AXIS2_TRANSPORT_SENDER).dll
/IMPLIB:$(AXIS2_LIBS)\$(AXIS2_TRANSPORT_SENDER).lib
axis2_http_receiver:
$(CC) $(CFLAGS) $(AXIS2_HTTP_RECEIVER_SRC) /Fo$(AXIS2_INTDIR_TNR)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_TNR)\*.obj $(AXUTIL).lib $(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/DLL /OUT:$(AXIS2_LIBS)\$(AXIS2_TRANSPORT_RECEIVER).dll
/IMPLIB:$(AXIS2_LIBS)\$(AXIS2_TRANSPORT_RECEIVER).lib
axis2_mod_addr:
$(CC) $(CFLAGS) $(AXIS2_MOD_ADDR_SRC) /Fo$(AXIS2_INTDIR_ADDRESSING)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_ADDRESSING)\*.obj $(AXUTIL).lib
$(AXIOM).lib $(AXIS2_PARSER).lib \
$(LIBS) $(AXIS2_ENGINE).lib /DLL
/OUT:$(AXIS2_MODULES)\addressing\$(AXIS2_MOD_ADDR).dll
copy $(AXIS2_SOURCE_DIR)\src\modules\mod_addr\module.xml
$(AXIS2_MODULES)\addressing
##### simple_axis_server
SIMPLE_AXIS2_SVR_SRC=$(AXIS2_SOURCE_DIR)\src\core\transport\http\server\simple_axis2_server\http_server_main.c
axis2_server:
if not exist $(AXIS2_INTDIR)\simple_http_server mkdir
$(AXIS2_INTDIR)\simple_http_server
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(SIMPLE_AXIS2_SVR_SRC) /Fo$(AXIS2_INTDIR)\simple_http_server\ /c
$(LD) $(LDFLAGS)
$(AXIS2_INTDIR)\simple_http_server\http_server_main.obj $(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
$(AXIS2_TRANSPORT_RECEIVER).lib /OUT:$(AXIS2_BINS)\$(AXIS2_SERVER).exe
copy $(AXIS2_SOURCE_DIR)\samples\server\axis2.xml $(AXIS2_BINDIR)\
axis2_core: axis2_util axis2_parser axiom axis2_engine axis2_http_sender
axis2_http_receiver axis2_mod_addr axis2_server
axis2_core_guththila: axis2_util guththila axis2_parser_with_guththila axiom
axis2_engine axis2_http_sender axis2_http_receiver axis2_mod_addr axis2_server
#################################
#server modules
#apache module
AXIS2_APACHE_MODULE_SRC=$(AXIS2_SOURCE_DIR)\src\core\transport\http\server\apache2\*.c
axis2_apache_module:
if not exist $(AXIS2_INTDIR)\apache_module mkdir
$(AXIS2_INTDIR)\apache_module
$(CC) $(CFLAGS) $(APACHE_INCLUE_PATH) $(AXIS2_APACHE_MODULE_SRC)
/Fo$(AXIS2_INTDIR)\apache_module\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\apache_module\*.obj $(AXUTIL).lib
$(AXIOM).lib $(AXIS2_PARSER).lib \
$(LIBS) $(AXIS2_ENGINE).lib $(APACHE_LIBS) /DLL
/OUT:$(AXIS2_LIBS)\mod_axis2.dll
#mod IIS
MOD_IIS_SRC = $(AXIS2_SOURCE_DIR)\src\core\transport\http\server\iis\*.c \
$(AXIS2_SOURCE_DIR)\src\core\transport\http\server\IIS\iis_iaspi_plugin_51\*.c
DEF_FILE = $(AXIS2_SOURCE_DIR)\src\core\transport\http\server\IIS\mod_axis2.def
axis2_IIS_module:
if not exist $(AXIS2_INTDIR)\mod_IIS mkdir $(AXIS2_INTDIR)\mod_IIS
$(CC) $(CFLAGS) $(MOD_IIS_SRC) /Fo$(AXIS2_INTDIR)\mod_IIS\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\mod_IIS\*.obj $(AXUTIL).lib
$(AXIOM).lib $(AXIS2_PARSER).lib \
$(LIBS) Advapi32.lib $(AXIS2_ENGINE).lib /DEF:$(DEF_FILE) /DLL
/OUT:$(AXIS2_LIBS)\mod_axis2_IIS.dll
############# end modules ###################
################ samples ####################
axis2_mod_log:
if not exist $(AXIS2_INTDIR_SAMPLES)\mod_log mkdir
$(AXIS2_INTDIR_SAMPLES)\mod_log
if not exist $(AXIS2_SAMPLES)\logging mkdir $(AXIS2_SAMPLES)\logging
$(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\src\modules\mod_log\*.c
/Fo$(AXIS2_INTDIR_SAMPLES)\mod_log\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SAMPLES)\mod_log\*.obj $(AXUTIL).lib
$(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /DLL
/OUT:$(AXIS2_SAMPLES)\logging\axis2_mod_log.dll
copy $(AXIS2_SOURCE_DIR)\src\modules\mod_log\module.xml
$(AXIS2_SAMPLES)\logging
#sample services
axis2_services_echo:
if not exist $(AXIS2_SERVICES)\echo mkdir $(AXIS2_SERVICES)\echo
if not exist $(AXIS2_INTDIR_SAMPLES)\services\echo mkdir
$(AXIS2_INTDIR_SAMPLES)\services\echo
$(CC) $(CFLAGS) /I$(AXIS2_SOURCE_DIR)\samples\server\echo \
$(AXIS2_SOURCE_DIR)\samples\server\echo\*.c
/Fo$(AXIS2_INTDIR_SAMPLES)\services\echo\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SAMPLES)\services\echo\*.obj
$(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/DLL /OUT:$(AXIS2_SERVICES)\echo\echo.dll
copy $(AXIS2_SOURCE_DIR)\samples\server\echo\services.xml
$(AXIS2_SERVICES)\echo
axis2_services_notify:
if not exist $(AXIS2_SERVICES)\notify mkdir $(AXIS2_SERVICES)\notify
if not exist $(AXIS2_INTDIR_SAMPLES)\services\notify mkdir
$(AXIS2_INTDIR_SAMPLES)\services\notify
$(CC) $(CFLAGS) /I$(AXIS2_SOURCE_DIR)\samples\server\echo \
$(AXIS2_SOURCE_DIR)\samples\server\notify\*.c
/Fo$(AXIS2_INTDIR_SAMPLES)\services\notify\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SAMPLES)\services\notify\*.obj
$(AXUTIL).lib $(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/DLL /OUT:$(AXIS2_SERVICES)\notify\notify.dll
copy $(AXIS2_SOURCE_DIR)\samples\server\notify\services.xml
$(AXIS2_SERVICES)\notify
axis2_services_math:
if not exist $(AXIS2_SERVICES)\math mkdir $(AXIS2_SERVICES)\math
if not exist $(AXIS2_INTDIR_SAMPLES)\services\math mkdir
$(AXIS2_INTDIR_SAMPLES)\services\math
$(CC) $(CFLAGS) /I$(AXIS2_SOURCE_DIR)\samples\server\math \
$(AXIS2_SOURCE_DIR)\samples\server\math\*.c
/Fo$(AXIS2_INTDIR_SAMPLES)\services\math\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SAMPLES)\services\math\*.obj
$(AXUTIL).lib $(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /DLL
/OUT:$(AXIS2_SERVICES)\math\math.dll
copy $(AXIS2_SOURCE_DIR)\samples\server\math\services.xml
$(AXIS2_SERVICES)\math
axis2_services_mtom:
if not exist $(AXIS2_SERVICES)\mtom mkdir $(AXIS2_SERVICES)\mtom
if not exist $(AXIS2_INTDIR_SAMPLES)\services\mtom mkdir
$(AXIS2_INTDIR_SAMPLES)\services\mtom
$(CC) $(CFLAGS) /I$(AXIS2_SOURCE_DIR)\samples\server\mtom \
$(AXIS2_SOURCE_DIR)\samples\server\mtom\*.c
/Fo$(AXIS2_INTDIR_SAMPLES)\services\mtom\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SAMPLES)\services\mtom\*.obj
$(AXUTIL).lib $(AXIOM).lib $(AXIS2_PARSER).lib \
$(LIBS) $(AXIS2_ENGINE).lib /DLL /OUT:$(AXIS2_SERVICES)\mtom\mtom.dll
copy $(AXIS2_SOURCE_DIR)\samples\server\mtom\services.xml
$(AXIS2_SERVICES)\mtom
axis2_services_calculator:
if not exist $(AXIS2_SERVICES)\Calculator mkdir
$(AXIS2_SERVICES)\Calculator
if not exist $(AXIS2_INTDIR_SAMPLES)\services\Calculator mkdir
$(AXIS2_INTDIR_SAMPLES)\services\Calculator
$(CC) $(CFLAGS) /I$(AXIS2_SOURCE_DIR)\samples\server\Calculator \
$(AXIS2_SOURCE_DIR)\samples\server\Calculator\*.c
/Fo$(AXIS2_INTDIR_SAMPLES)\services\Calculator\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SAMPLES)\services\Calculator\*.obj
$(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/DLL /OUT:$(AXIS2_SERVICES)\Calculator\Calculator.dll
copy $(AXIS2_SOURCE_DIR)\samples\server\Calculator\services.xml
$(AXIS2_SERVICES)\Calculator
AXIS2_INTDIR_SGM=$(AXIS2_INTDIR_SAMPLES)\services\sgmath
axis2_services_sg_math:
if not exist $(AXIS2_SERVICES)\sg_math mkdir $(AXIS2_SERVICES)\sg_math
if not exist $(AXIS2_INTDIR_SGM)\add mkdir $(AXIS2_INTDIR_SGM)\add
if not exist $(AXIS2_INTDIR_SGM)\sub mkdir $(AXIS2_INTDIR_SGM)\sub
if not exist $(AXIS2_INTDIR_SGM)\mul mkdir $(AXIS2_INTDIR_SGM)\mul
if not exist $(AXIS2_INTDIR_SGM)\div mkdir $(AXIS2_INTDIR_SGM)\div
$(CC) $(CFLAGS) /I$(AXIS2_SOURCE_DIR)\samples\server\sg_math \
$(AXIS2_SOURCE_DIR)\samples\server\sg_math\add.c \
$(AXIS2_SOURCE_DIR)\samples\server\sg_math\add_skeleton.c
/Fo$(AXIS2_INTDIR_SGM)\add\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SGM)\add\*.obj $(AXUTIL).lib
$(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/DLL /OUT:$(AXIS2_SERVICES)\sg_math\add.dll
$(CC) $(CFLAGS) /I$(AXIS2_SOURCE_DIR)\samples\server\sg_math \
$(AXIS2_SOURCE_DIR)\samples\server\sg_math\div.c \
$(AXIS2_SOURCE_DIR)\samples\server\sg_math\div_skeleton.c
/Fo$(AXIS2_INTDIR_SGM)\div\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SGM)\div\*.obj $(AXUTIL).lib
$(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /DLL
/OUT:$(AXIS2_SERVICES)\sg_math\div.dll
$(CC) $(CFLAGS) /I$(AXIS2_SOURCE_DIR)\samples\server\sg_math \
$(AXIS2_SOURCE_DIR)\samples\server\sg_math\sub.c \
$(AXIS2_SOURCE_DIR)\samples\server\sg_math\sub_skeleton.c
/Fo$(AXIS2_INTDIR_SGM)\sub\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SGM)\sub\*.obj $(AXUTIL).lib
$(AXIOM).lib $(AXIS2_PARSER).lib \
$(LIBS) $(AXIS2_ENGINE).lib /DLL
/OUT:$(AXIS2_SERVICES)\sg_math\sub.dll
$(CC) $(CFLAGS) /I$(AXIS2_SOURCE_DIR)\samples\server\sg_math \
$(AXIS2_SOURCE_DIR)\samples\server\sg_math\mul.c \
$(AXIS2_SOURCE_DIR)\samples\server\sg_math\mul_skeleton.c
/Fo$(AXIS2_INTDIR_SGM)\mul\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_SGM)\mul\*.obj $(AXUTIL).lib
$(AXIOM).lib $(AXIS2_PARSER).lib \
$(LIBS) $(AXIS2_ENGINE).lib $(AXIS2_TRANSPORT_RECEIVER).lib \
$(AXIS2_TRANSPORT_SENDER).lib /DLL
/OUT:$(AXIS2_SERVICES)\sg_math\mul.dll
copy $(AXIS2_SOURCE_DIR)\samples\server\sg_math\services.xml
$(AXIS2_SERVICES)\sg_math
###################### clients #################################
AXIS2_INTDIR_CLI = $(AXIS2_INTDIR)\samples\clients
axis2_clients_intdir:
if not exist $(AXIS2_BINS)\samples mkdir $(AXIS2_BINS)\samples
if not exist $(AXIS2_INTDIR_CLI)\math mkdir $(AXIS2_INTDIR_CLI)\math
if not exist $(AXIS2_INTDIR_CLI)\echo mkdir $(AXIS2_INTDIR_CLI)\echo
if not exist $(AXIS2_INTDIR_CLI)\dyn_cli mkdir
$(AXIS2_INTDIR_CLI)\dyn_cli
if not exist $(AXIS2_INTDIR_CLI)\gslc mkdir $(AXIS2_INTDIR_CLI)\gslc
if not exist $(AXIS2_INTDIR_CLI)\yahoo mkdir $(AXIS2_INTDIR_CLI)\yahoo
if not exist $(AXIS2_INTDIR_CLI)\notify mkdir $(AXIS2_INTDIR_CLI)\notify
if not exist $(AXIS2_INTDIR_CLI)\mtom mkdir $(AXIS2_INTDIR_CLI)\mtom
axis2_client_math:
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\client\math\*.c
/Fo$(AXIS2_INTDIR_CLI)\math\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\math\*.obj $(AXUTIL).lib
$(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib
/OUT:$(AXIS2_BINS)\samples\math.exe
axis2_client_echo:
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\client\echo\echo.c
/Fo$(AXIS2_INTDIR_CLI)\echo\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\echo\*.obj $(AXUTIL).lib
$(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib
/OUT:$(AXIS2_BINS)\samples\echo.exe
axis2_client_google_spell:
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\client\google\*.c
/Fo$(AXIS2_INTDIR_CLI)\gslc\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\gslc\*.obj $(AXUTIL).lib
$(AXIOM).lib \
$(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib
/OUT:$(AXIS2_BINS)\samples\google.exe
axis2_client_yahoo:
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\client\yahoo\*.c
/Fo$(AXIS2_INTDIR_CLI)\yahoo\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\yahoo\*.obj $(AXUTIL).lib
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \
$(AXIS2_ENGINE).lib /OUT:$(AXIS2_BINS)\samples\yahoo.exe
axis2_client_notify:
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\client\notify\*.c
/Fo$(AXIS2_INTDIR_CLI)\notify\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\notify\*.obj $(AXUTIL).lib
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \
$(AXIS2_ENGINE).lib /OUT:$(AXIS2_BINS)\samples\notify.exe
axis2_client_mtom:
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\client\mtom\*.c
/Fo$(AXIS2_INTDIR_CLI)\mtom\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\mtom\*.obj $(AXUTIL).lib
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \
$(AXIS2_ENGINE).lib /OUT:$(AXIS2_BINS)\samples\mtom.exe
mkdir $(AXIS2_BINS)\samples\resources
xcopy $(AXIS2_SOURCE_DIR)\samples\client\mtom\resources
$(AXIS2_BINS)\samples\resources
axis2_client_userguide:
if not exist $(AXIS2_INTDIR)\userguide\echo_blocking mkdir
$(AXIS2_INTDIR)\userguide\echo_blocking
if not exist $(AXIS2_INTDIR)\userguide\echo_non_blocking mkdir
$(AXIS2_INTDIR)\userguide\echo_non_blocking
if not exist $(AXIS2_INTDIR)\userguide\echo_blocking_addr mkdir
$(AXIS2_INTDIR)\userguide\echo_blocking_addr
if not exist $(AXIS2_INTDIR)\userguide\echo_rest mkdir
$(AXIS2_INTDIR)\userguide\echo_rest
if not exist $(AXIS2_INTDIR)\userguide\echo_blocking_dual mkdir
$(AXIS2_INTDIR)\userguide\echo_blocking_dual
if not exist $(AXIS2_INTDIR)\userguide\echo_non_blocking_dual mkdir
$(AXIS2_INTDIR)\userguide\echo_non_blocking_dual
if not exist $(AXIS2_INTDIR)\userguide\echo_blocking_soap11 mkdir
$(AXIS2_INTDIR)\userguide\echo_blocking_soap11
$(CC) $(CFLAGS) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS"
$(AXIS2_INCLUDE_PATH) \
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_blocking.c \
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c
/Fo$(AXIS2_INTDIR)\userguide\echo_blocking\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_blocking\*.obj
$(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib
/OUT:$(AXIS2_BINS)\samples\echo_blocking.exe
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_non_blocking.c \
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c
/Fo$(AXIS2_INTDIR)\userguide\echo_non_blocking\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_non_blocking\*.obj
$(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/OUT:$(AXIS2_BINS)\samples\echo_non_blocking.exe
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_blocking_addr.c \
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c
/Fo$(AXIS2_INTDIR)\userguide\echo_blocking_addr\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_blocking_addr\*.obj
$(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/OUT:$(AXIS2_BINS)\samples\echo_blocking_addr.exe
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_rest.c \
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c
/Fo$(AXIS2_INTDIR)\userguide\echo_rest\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_rest\*.obj
$(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/OUT:$(AXIS2_BINS)\samples\echo_rest.exe
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_blocking_dual.c \
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c
/Fo$(AXIS2_INTDIR)\userguide\echo_blocking_dual\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_blocking_dual\*.obj
$(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib
/OUT:$(AXIS2_BINS)\samples\echo_blocking_dual.exe
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_non_blocking_dual.c
\
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c
/Fo$(AXIS2_INTDIR)\userguide\echo_non_blocking_dual\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_non_blocking_dual\*.obj
$(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \
/OUT:$(AXIS2_BINS)\samples\echo_non_blocking_dual.exe
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" $(AXIS2_INCLUDE_PATH)
\
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_blocking_soap11.c \
$(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c
/Fo$(AXIS2_INTDIR)\userguide\echo_blocking_soap11\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_blocking_soap11\*.obj
$(AXUTIL).lib \
$(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \
$(AXIS2_ENGINE).lib
/OUT:$(AXIS2_BINS)\samples\echo_blocking_soap11.exe
copy_extra:
copy $(AXIS2_SOURCE_DIR)\INSTALL $(AXIS2_BINDIR)
copy $(AXIS2_SOURCE_DIR)\LICENSE $(AXIS2_BINDIR)
copy $(AXIS2_SOURCE_DIR)\CREDITS $(AXIS2_BINDIR)
copy $(AXIS2_SOURCE_DIR)\README $(AXIS2_BINDIR)
copy $(AXIS2_SOURCE_DIR)\AUTHORS $(AXIS2_BINDIR)
copy $(AXIS2_SOURCE_DIR)\NEWS $(AXIS2_BINDIR)
copy $(AXIS2_SOURCE_DIR)\NOTICE $(AXIS2_BINDIR)
if exist $(AXIS2_SOURCE_DIR)\docs xcopy /E /I /Y
$(AXIS2_SOURCE_DIR)\docs $(AXIS2_BINDIR)\docs
copy_samples:
if not exist $(AXIS2_BINDIR)\samples mkdir $(AXIS2_BINDIR)\samples
if not exist $(AXIS2_BINDIR)\samples\client mkdir
$(AXIS2_BINDIR)\samples\client
if not exist $(AXIS2_BINDIR)\samples\user_guide mkdir
$(AXIS2_BINDIR)\samples\user_guide
if not exist $(AXIS2_BINDIR)\samples\client\echo mkdir
$(AXIS2_BINDIR)\samples\client\echo
copy $(AXIS2_SOURCE_DIR)\samples\client\echo\echo.c
$(AXIS2_BINDIR)\samples\client\echo
copy $(AXIS2_SOURCE_DIR)\samples\client\echo\README.txt
$(AXIS2_BINDIR)\samples\client\echo
copy $(AXIS2_SOURCE_DIR)\samples\client\echo\echo.mk
$(AXIS2_BINDIR)\samples\client\echo
if not exist $(AXIS2_BINDIR)\samples\client\math mkdir
$(AXIS2_BINDIR)\samples\client\math
copy $(AXIS2_SOURCE_DIR)\samples\client\math\*.c
$(AXIS2_BINDIR)\samples\client\math
copy $(AXIS2_SOURCE_DIR)\samples\client\math\*.h
$(AXIS2_BINDIR)\samples\client\math
copy $(AXIS2_SOURCE_DIR)\samples\client\math\math.mk
$(AXIS2_BINDIR)\samples\client\math
if not exist $(AXIS2_BINDIR)\samples\client\google mkdir
$(AXIS2_BINDIR)\samples\client\google
copy $(AXIS2_SOURCE_DIR)\samples\client\google\*.c
$(AXIS2_BINDIR)\samples\client\google
copy $(AXIS2_SOURCE_DIR)\samples\client\google\README.txt
$(AXIS2_BINDIR)\samples\client\google
copy $(AXIS2_SOURCE_DIR)\samples\client\google\google.mk
$(AXIS2_BINDIR)\samples\client\google
if not exist $(AXIS2_BINDIR)\samples\client\notify mkdir
$(AXIS2_BINDIR)\samples\client\notify
copy $(AXIS2_SOURCE_DIR)\samples\client\notify\*.c
$(AXIS2_BINDIR)\samples\client\notify
copy $(AXIS2_SOURCE_DIR)\samples\client\notify\notify.mk
$(AXIS2_BINDIR)\samples\client\notify
if not exist $(AXIS2_BINDIR)\samples\client\mtom\resources mkdir
$(AXIS2_BINDIR)\samples\client\mtom\resources
copy $(AXIS2_SOURCE_DIR)\samples\client\mtom\*.c
$(AXIS2_BINDIR)\samples\client\mtom
copy $(AXIS2_SOURCE_DIR)\samples\client\mtom\resources\*.jpg
$(AXIS2_BINDIR)\samples\client\mtom\resources
copy $(AXIS2_SOURCE_DIR)\samples\client\mtom\mtom.mk
$(AXIS2_BINDIR)\samples\client\mtom
if not exist $(AXIS2_BINDIR)\samples\client\yahoo mkdir
$(AXIS2_BINDIR)\samples\client\yahoo
copy $(AXIS2_SOURCE_DIR)\samples\client\yahoo\*.c
$(AXIS2_BINDIR)\samples\client\yahoo
copy $(AXIS2_SOURCE_DIR)\samples\client\yahoo\yahoo.mk
$(AXIS2_BINDIR)\samples\client\yahoo
xcopy /E /I $(AXIS2_SOURCE_DIR)\samples\user_guide
$(AXIS2_BINDIR)\samples\user_guide
if not exist $(AXIS2_BINDIR)\samples\server mkdir
$(AXIS2_BINDIR)\samples\server
if not exist $(AXIS2_BINDIR)\samples\server\Calculator mkdir
$(AXIS2_BINDIR)\samples\server\Calculator
copy $(AXIS2_SOURCE_DIR)\samples\server\Calculator\*.c
$(AXIS2_BINDIR)\samples\server\Calculator
copy $(AXIS2_SOURCE_DIR)\samples\server\Calculator\*.h
$(AXIS2_BINDIR)\samples\server\Calculator
copy $(AXIS2_SOURCE_DIR)\samples\server\Calculator\*.xml
$(AXIS2_BINDIR)\samples\server\Calculator
copy $(AXIS2_SOURCE_DIR)\samples\server\Calculator\Calculator.mk
$(AXIS2_BINDIR)\samples\server\Calculator
if not exist $(AXIS2_BINDIR)\samples\server\echo mkdir
$(AXIS2_BINDIR)\samples\server\echo
copy $(AXIS2_SOURCE_DIR)\samples\server\echo\*.c
$(AXIS2_BINDIR)\samples\server\echo
copy $(AXIS2_SOURCE_DIR)\samples\server\echo\*.h
$(AXIS2_BINDIR)\samples\server\echo
copy $(AXIS2_SOURCE_DIR)\samples\server\echo\*.xml
$(AXIS2_BINDIR)\samples\server\echo
copy $(AXIS2_SOURCE_DIR)\samples\server\echo\echo.mk
$(AXIS2_BINDIR)\samples\server\echo
if not exist $(AXIS2_BINDIR)\samples\server\math mkdir
$(AXIS2_BINDIR)\samples\server\math
copy $(AXIS2_SOURCE_DIR)\samples\server\math\*.c
$(AXIS2_BINDIR)\samples\server\math
copy $(AXIS2_SOURCE_DIR)\samples\server\math\*.h
$(AXIS2_BINDIR)\samples\server\math
copy $(AXIS2_SOURCE_DIR)\samples\server\math\*.xml
$(AXIS2_BINDIR)\samples\server\math
copy $(AXIS2_SOURCE_DIR)\samples\server\math\math.mk
$(AXIS2_BINDIR)\samples\server\math
if not exist $(AXIS2_BINDIR)\samples\server\notify mkdir
$(AXIS2_BINDIR)\samples\server\notify
copy $(AXIS2_SOURCE_DIR)\samples\server\notify\*.c
$(AXIS2_BINDIR)\samples\server\notify
copy $(AXIS2_SOURCE_DIR)\samples\server\notify\*.h
$(AXIS2_BINDIR)\samples\server\notify
copy $(AXIS2_SOURCE_DIR)\samples\server\notify\*.xml
$(AXIS2_BINDIR)\samples\server\notify
copy $(AXIS2_SOURCE_DIR)\samples\server\notify\notify.mk
$(AXIS2_BINDIR)\samples\server\notify
if not exist $(AXIS2_BINDIR)\samples\server\sg_math mkdir
$(AXIS2_BINDIR)\samples\server\sg_math
copy $(AXIS2_SOURCE_DIR)\samples\server\sg_math\*.c
$(AXIS2_BINDIR)\samples\server\sg_math
copy $(AXIS2_SOURCE_DIR)\samples\server\sg_math\*.h
$(AXIS2_BINDIR)\samples\server\sg_math
copy $(AXIS2_SOURCE_DIR)\samples\server\sg_math\*.xml
$(AXIS2_BINDIR)\samples\server\sg_math
copy $(AXIS2_SOURCE_DIR)\samples\server\sg_math\sg_math.mk
$(AXIS2_BINDIR)\samples\server\sg_math
if not exist $(AXIS2_BINDIR)\samples\server\mtom mkdir
$(AXIS2_BINDIR)\samples\server\mtom
copy $(AXIS2_SOURCE_DIR)\samples\server\mtom\*.c
$(AXIS2_BINDIR)\samples\server\mtom
copy $(AXIS2_SOURCE_DIR)\samples\server\mtom\*.h
$(AXIS2_BINDIR)\samples\server\mtom
copy $(AXIS2_SOURCE_DIR)\samples\server\mtom\*.xml
$(AXIS2_BINDIR)\samples\server\mtom
copy $(AXIS2_SOURCE_DIR)\samples\server\mtom\mtom.mk
$(AXIS2_BINDIR)\samples\server\mtom
copy_include:
xcopy /E /I /Y $(AXIS2_SOURCE_DIR)\include $(AXIS2_BINDIR)\include\
if exist $(AXIS2_BINDIR)\include\Makefile.am del
$(AXIS2_BINDIR)\include\Makefile.am
xcopy /E /I /Y $(AXIS2_SOURCE_DIR)\axiom\include
$(AXIS2_BINDIR)\include\
if exist $(AXIS2_BINDIR)\include\Makefile.am del
$(AXIS2_BINDIR)\include\Makefile.am
xcopy /E /I /Y $(AXIS2_SOURCE_DIR)\util\include $(AXIS2_BINDIR)\include\
copy_vc_projects:
if not exist $(AXIS2_BINDIR)\ides mkdir $(AXIS2_BINDIR)\ides
if not exist $(AXIS2_BINDIR)\ides\vc mkdir $(AXIS2_BINDIR)\ides\vc
if not exist $(AXIS2_BINDIR)\ides\vc\samples mkdir
$(AXIS2_BINDIR)\ides\vc\samples
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients mkdir
$(AXIS2_BINDIR)\ides\vc\samples\clients
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\echo mkdir
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\echo\echo.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\math mkdir
$(AXIS2_BINDIR)\ides\vc\samples\clients\math
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\math\math.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\math
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\google mkdir
$(AXIS2_BINDIR)\ides\vc\samples\clients\google
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\google\google.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\google
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\mtom mkdir
$(AXIS2_BINDIR)\ides\vc\samples\clients\mtom
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\mtom\mtom.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\mtom
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\notify mkdir
$(AXIS2_BINDIR)\ides\vc\samples\clients\notify
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\notify\notify.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\notify
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\yahoo mkdir
$(AXIS2_BINDIR)\ides\vc\samples\clients\yahoo
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\yahoo\yahoo.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\yahoo
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\echo_blocking
mkdir $(AXIS2_BINDIR)\ides\vc\samples\clients\echo_blocking
copy
$(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\echo_blocking\echo_blocking.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo_blocking
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\echo_blocking_addr
mkdir $(AXIS2_BINDIR)\ides\vc\samples\clients\echo_blocking_addr
copy
$(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\echo_blocking_addr\echo_blocking_addr.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo_blocking_addr
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\echo_blocking_dual
mkdir $(AXIS2_BINDIR)\ides\vc\samples\clients\echo_blocking_dual
copy
$(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\echo_blocking_dual\echo_blocking_dual.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo_blocking_dual
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\echo_non_blocking
mkdir $(AXIS2_BINDIR)\ides\vc\samples\clients\echo_non_blocking
copy
$(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\echo_non_blocking\echo_non_blocking.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo_non_blocking
if not exist
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo_non_blocking_dual mkdir
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo_non_blocking_dual
copy
$(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\echo_non_blocking_dual\echo_non_blocking_dual.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo_non_blocking_dual
if not exist $(AXIS2_BINDIR)\ides\vc\samples\clients\echo_rest mkdir
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo_rest
copy
$(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\echo_rest\echo_rest.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\clients\echo_rest
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\clients\clients.sln
$(AXIS2_BINDIR)\ides\vc\samples\clients
if not exist $(AXIS2_BINDIR)\ides\vc\samples\services mkdir
$(AXIS2_BINDIR)\ides\vc\samples\services
if not exist $(AXIS2_BINDIR)\ides\vc\samples\services\echo mkdir
$(AXIS2_BINDIR)\ides\vc\samples\services\echo
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\services\echo\echo.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\services\echo
if not exist $(AXIS2_BINDIR)\ides\vc\samples\services\math mkdir
$(AXIS2_BINDIR)\ides\vc\samples\services\math
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\services\math\math.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\services\math
if not exist $(AXIS2_BINDIR)\ides\vc\samples\services\mtom mkdir
$(AXIS2_BINDIR)\ides\vc\samples\services\mtom
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\services\mtom\mtom.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\services\mtom
if not exist $(AXIS2_BINDIR)\ides\vc\samples\services\notify mkdir
$(AXIS2_BINDIR)\ides\vc\samples\services\notify
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\services\notify\notify.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\services\notify
if not exist $(AXIS2_BINDIR)\ides\vc\samples\services\Calculator mkdir
$(AXIS2_BINDIR)\ides\vc\samples\services\Calculator
copy
$(AXIS2_SOURCE_DIR)\ides\vc\samples\services\Calculator\Calculator.vcproj
$(AXIS2_BINDIR)\ides\vc\samples\services\Calculator
copy $(AXIS2_SOURCE_DIR)\ides\vc\samples\services\services.sln
$(AXIS2_BINDIR)\ides\vc\samples\services
mv_dist:
cd $(AXIS2_BINDIR)
cd ..
if exist $(AXIS2_RELEASE_DIR) rmdir /S /Q $(AXIS2_RELEASE_DIR)
rename deploy $(AXIS2_RELEASE_DIR)
all_services: axis2_services_echo axis2_services_math axis2_services_notify
axis2_services_sg_math axis2_services_mtom axis2_services_calculator
all_clients: axis2_clients_intdir axis2_client_echo axis2_client_math
axis2_client_google_spell axis2_client_yahoo axis2_client_notify
axis2_client_mtom axis2_client_userguide
axis2_samples: axis2_mod_log all_services all_clients
axis2_server_modules: axis2_apache_module axis2_IIS_module
################################# tools
##################################################
# tcpmon
tcpmon:
if not exist $(AXIS2_INTDIR)\tools\tcpmon mkdir
$(AXIS2_INTDIR)\tools\tcpmon
if not exist $(AXIS2_TOOLS) mkdir $(AXIS2_TOOLS)
$(CC) /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D
"_CRT_SECURE_NO_DEPRECATE" $(AXIS2_INCLUDE_PATH) \
/I $(AXIS2_SOURCE_DIR)\tools\tcpmon\include \
$(AXIS2_SOURCE_DIR)\tools\tcpmon\src\*.c
/Fo$(AXIS2_INTDIR)\tools\tcpmon\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR)\tools\tcpmon\*.obj $(AXUTIL).lib
$(AXIOM).lib \
$(AXIS2_PARSER).lib /OUT:$(AXIS2_TOOLS)\tcpmon.exe
##############################################################################################
#axis2.dll
SRC_DIR = $(AXIS2_SOURCE_DIR)\util\src\platforms\windows\*.c \
$(AXIS2_SOURCE_DIR)\util\src\minizip\*.c \
$(AXIS2_SOURCE_DIR)\util\src\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\parser\libxml2\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\om\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\soap\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\attachments\*.c \
$(AXIS2_SOURCE_DIR)\axiom\src\util\*.c \
$(AXIS2_SOURCE_DIR)\src\core\addr\*.c \
$(AXIS2_SOURCE_DIR)\src\core\clientapi\*.c \
$(AXIS2_SOURCE_DIR)\src\core\context\*.c \
$(AXIS2_SOURCE_DIR)\src\core\deployment\*.c \
$(AXIS2_SOURCE_DIR)\src\core\description\*.c \
$(AXIS2_SOURCE_DIR)\src\core\engine\*.c \
$(AXIS2_SOURCE_DIR)\src\core\phaseresolver\*.c \
$(AXIS2_SOURCE_DIR)\src\core\receivers\*.c \
$(AXIS2_SOURCE_DIR)\src\core\util\*.c \
$(AXIS2_SOURCE_DIR)\src\core\transport\http\*.c \
$(AXIS2_SOURCE_DIR)\src\wsdl\*.c \
axis2:
$(CC) $(CFLAGS) /Fo $(AXIS2_INCLUDE_PATH) $(SRC_DIR) /D "_WINDLL" /Gm
/Zi /c
$(LD) $(LDFLAGS) *.obj Rpcrt4.lib Ws2_32.lib zdll.lib libxml2.lib \
/DLL /OUT:axis2.dll /IMPLIB:axis2.lib
##############################################################################################
build: clean_make_dir clean deploy axis2_core axis2_samples copy_include
clean_make_dir
build_with_guththila : clean_make_dir clean deploy axis2_core_guththila
axis2_samples copy_include clean_make_dir
##############################################################################################
all: $(PARSER)
install: all
dist: all axis2_apache_module tcpmon copy_extra copy_samples copy_vc_projects
mv_dist
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]