# -*- mode: makefile; -*- # ----------------------------------------------------------------------------- # $RCSfile: Shopping.mak.in,v $ # # See Copyright for the status of this software. # # The OpenSOAP Project # http://opensoap.jp/ # ----------------------------------------------------------------------------- SERVICE_NAME = Shopping SAMPLE_MESSAGE_DIR = SampleMessages # console_client_PROGRAMFILES = ShoppingClient ShoppingClientAsync # cgi_service_PROGRAMFILES = ShoppingService.cgi service_DATAFILES = ProductSpec.data ProductStock.data # stdio_service_PROGRAMFILES = ShoppingService # SSML_IN_FILES = ${SERVICE_NAME}.ssml.in SSML_FILES = ${SSML_IN_FILES:.in=} # RPATH_COPTION = @RPATH_COPTION@ # prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ sysconfdir = @sysconfdir@ localstatedir = @localstatedir@ includedir = @includedir@ libdir = @libdir@ # OpenSOAP conf and data directory OPENSOAP_SYSCONFDIR = @sysconfdir@ OPENSOAP_LOCALSTATEDIR = @localstatedir@ OPENSOAP_SERVICE_LOCALSTATEDIR = ${OPENSOAP_LOCALSTATEDIR}/services SSML_DIR=${OPENSOAP_SYSCONFDIR}/ssml # SERVICE_DIR = @servicesdir@/${SERVICE_NAME}Sec SERVICE_LOCALSTATEDIR = ${OPENSOAP_SERVICE_LOCALSTATEDIR}/${SERVICE_NAME}Sec # CGI_BIN_DIR = @CGI_BIN_DIR@ # INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ # libiconv ICONV_LIBS = @ICONV_LIBS@ # libxml2 libs XML2_LIBS = @XML2_LIBS@ # ssl libs SSL_LIB_DIR = @SSL_LIB_DIR@ SSL_LIBS = @SSL_LIBS@ SSL_LDFLAGS = -L${SSL_LIB_DIR} ${RPATH_COPTION}${SSL_LIB_DIR} SSL_LIBS = SSL_LDFLAGS = # LIBS = @LIBS@ CC = @CC@ # PROGRAMS = \ ${console_client_PROGRAMFILES} \ ${stdio_service_PROGRAMFILES} \ ${cgi_service_PROGRAMFILES} # COMMON_LIBS=${XML2_LIBS} ${ICONV_LIBS} ${SSL_LIBS} ${LIBS} # # DEBUG_CFLAGS = -g CFLAGS = ${DEBUG_CFLAGS} -Wall -I${includedir} \ -DSERVICE_DIR=\"${SERVICE_DIR}\" \ -DSERVICE_LOCALSTATEDIR=\"${SERVICE_LOCALSTATEDIR}\" # -DSERVICE_NAME=\"${SERVICE_NAME}\" CGI_CFLAGS = ${CFLAGS} -DCONNECT_TYPE_CGI CGI_CLIENT_CFLAGS = ${CFLAGS} -DCLIENT_CGI CGI_SERVICE_CFLAGS = ${CFLAGS} -DCONNECT_TYPE_CGI # COMMON_LDFLAGS = -L${libdir} ${RPATH_COPTION}${libdir} ${SSL_LDFLAGS} # #SECURITY_LIBS = -lOpenSOAPSecurity CLIENT_LIBS = ${SECURITY_LIBS} -lOpenSOAPClient SERVICE_LIBS = -lOpenSOAPService ${CLIENT_LIBS} CLIENT_LDFLAGS = ${COMMON_LDFLAGS} ${CLIENT_LIBS} ${COMMON_LIBS} SERVICE_LDFLAGS = ${COMMON_LDFLAGS} ${SERVICE_LIBS} ${COMMON_LIBS} # SOURCES = \ ClCmn.c \ ShClCmn.c \ ShClProductList.c \ ShClGetProductCount.c \ ShClGetProductSpec.c \ ShClGetStockQty.c \ ShClPlaceOrderCmn.c \ ShClPlaceOrderSync.c \ ShClMainSync.c \ SvCmn.c \ ShSvCmn.c \ ShSvGetProductCount.c \ ShSvGetProductSpec.c \ ShSvGetStockQty.c \ ShSvPlaceOrder.c \ ShSvMain.c OBJS=${SOURCES:.c=.o} ShSvMain.cgi.o # SOURCES_ASYNC = \ ClAsyncCmn.c \ ClCmn.c \ ShClCmn.c \ ShClProductList.c \ ShClGetProductCount.c \ ShClGetProductSpec.c \ ShClGetStockQty.c \ ShClPlaceOrderCmn.c \ ShClPlaceOrderSync.c \ ShClPlaceOrderAsync.c \ ShClMainAsync.c \ SvCmn.c \ ShSvCmn.c \ ShSvGetProductCount.c \ ShSvGetProductSpec.c \ ShSvGetStockQty.c \ ShSvPlaceOrder.c \ ShSvMain.c OBJS_ASYNC=${SOURCES_ASYNC:.c=.o} ShSvMain.cgi.o all: ${PROGRAMS} ${SSML_FILES} ## Make Client Programs ShoppingClient: \ ClCmn.o \ ShClCmn.o \ ShClProductList.o \ ShClGetProductCount.o \ ShClGetProductSpec.o \ ShClGetStockQty.o \ ShClPlaceOrderCmn.o \ ShClPlaceOrderSync.o \ ShClMainSync.o ${CC} -o $@ $^ ${CLIENT_LDFLAGS} ShoppingClientAsync: \ ClCmn.o \ ClAsyncCmn.o \ ShClCmn.o \ ShClProductList.o \ ShClGetProductCount.o \ ShClGetProductSpec.o \ ShClGetStockQty.o \ ShClPlaceOrderCmn.o \ ShClPlaceOrderSync.o \ ShClPlaceOrderAsync.o \ ShClMainAsync.o ${CC} -o $@ $^ ${CLIENT_LDFLAGS} ShoppingClientSec.cgi: \ ClCmn.o \ ClSecCmn.o \ ShClCmn.o \ ShClProductList.o \ ShClGetProductCount.o \ ShClGetProductSpec.o \ ShClGetStockQty.o \ ShClPlaceOrderCmn.o \ ShClPlaceOrderSec.o \ ShClMainSecWeb.o ${CC} -o $@ $^ ${CLIENT_LDFLAGS} ## Make Service Programs ShoppingService: \ SvCmn.o \ ShSvCmn.o \ ShSvGetProductCount.o \ ShSvGetProductSpec.o \ ShSvGetStockQty.o \ ShSvPlaceOrder.o \ ShSvMain.o ${CC} -o $@ $^ ${SERVICE_LDFLAGS} ShoppingService.cgi: \ SvCmn.o \ ShSvCmn.o \ ShSvGetProductCount.o \ ShSvGetProductSpec.o \ ShSvGetStockQty.o \ ShSvPlaceOrder.o \ ShSvMain.cgi.o ${CC} -o $@ $^ ${SERVICE_LDFLAGS} ShSvMain.cgi.o: ShSvMain.c ${CC} ${CGI_CFLAGS} -c -o $@ $< ## Make SSML files ${SSML_FILES}: ${SSML_IN_FILES} Shopping.mak @for i in ${SSML_IN_FILES}; do \ s=`echo $$i | sed 's/\.in$$//'`; \ sed "s%\@servicesdir\@%@servicesdir@%g" > $$s < $$i; \ done ## Install Programs # console-client-install: ${console_client_PROGRAMFILES} if test -d ${DESTDIR}${bindir}; then \ echo "${DESTDIR}${bindir} exist."; \ else \ echo "${DESTDIR}${bindir} does not exist."; \ echo "mkdir -p ${DESTDIR}${bindir}."; \ mkdir -p ${DESTDIR}${bindir}; \ fi for f in $^ ; do \ echo "$$f install to ${bindir}."; \ ${INSTALL_PROGRAM} \ $$f ${DESTDIR}${bindir}/$$f; \ done # client-install: console-client-install service-datas-install: ${service_DATAFILES} if test -d ${DESTDIR}${SERVICE_LOCALSTATEDIR}; then \ echo "${DESTDIR}${SERVICE_LOCALSTATEDIR} exist."; \ else \ echo "mkdir -m 777 -p ${DESTDIR}${SERVICE_LOCALSTATEDIR}."; \ mkdir -m 777 -p ${DESTDIR}${SERVICE_LOCALSTATEDIR}; \ fi for f in $^ ; do \ echo "$$f install to ${SERVICE_LOCALSTATEDIR}."; \ ${INSTALL_PROGRAM} \ -m 0666 \ $$f ${DESTDIR}${SERVICE_LOCALSTATEDIR}/$$f; \ done service-common-install: service-datas-install # ssml-install: ${SSML_FILES} if test -d ${DESTDIR}${SSML_DIR}; then \ echo "${DESTDIR}${SSML_DIR} exist."; \ else \ echo "mkdir -p ${DESTDIR}${SSML_DIR}."; \ mkdir -p ${DESTDIR}${SSML_DIR}; \ fi for f in $^ ; do \ echo "$$f install to ${SSML_DIR}."; \ ${INSTALL_PROGRAM} \ -m 0644 \ $$f ${DESTDIR}${SSML_DIR}/$$f; \ done stdio-service-programs-install: ${stdio_service_PROGRAMFILES} @if test -d ${DESTDIR}${SERVICE_DIR}; then \ echo "${DESTDIR}${SERVICE_DIR} exits."; \ else \ echo "${DESTDIR}${SERVICE_DIR} does not exit."; \ echo "mkdir -p ${DESTDIR}${SERVICE_DIR}."; \ mkdir -p ${DESTDIR}${SERVICE_DIR}; \ fi for f in $^ ; do \ echo "$$f install to ${SERVICE_DIR}."; \ ${INSTALL_PROGRAM} \ $$f ${DESTDIR}${SERVICE_DIR}/$$f; \ done stdio-service-install: \ service-common-install \ stdio-service-programs-install \ ssml-install cgi-service-programs-install: ${cgi_service_PROGRAMFILES} @if test -d ${DESTDIR}${CGI_BIN_DIR}; then \ echo "${DESTDIR}${CGI_BIN_DIR} exist."; \ else \ echo "${DESTDIR}${CGI_BIN_DIR} does not exist."; \ echo "mkdir -p ${DESTDIR}${CGI_BIN_DIR}."; \ mkdir -p ${DESTDIR}${CGI_BIN_DIR}; \ fi @for f in $^ ; do \ echo "$$f install to ${CGI_BIN_DIR}."; \ ${INSTALL_PROGRAM} \ $$f ${DESTDIR}${CGI_BIN_DIR}/$$f; \ done cgi-service-install: service-common-install cgi-service-programs-install service-install: cgi-service-install stdio-service-install # install-samples: client-install service-install # install: service-install ## clean objects and programs clean: rm -f ${OBJS} ${PROGRAMS} ENDPOINT_CGI = http://localhost/cgi-bin/ShoppingService.cgi ENDPOINT_SRV = http://localhost/cgi-bin/soapInterface.cgi ## Test Service Programs for Success Cases stest1: ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetProductCountReq.xml stest2: ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetProductSpecReq.xml stest3: ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetStockQtyReq.xml stest4: ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/PlaceOrderReq.xml ## Test Service Programs for Fault Cases stest5: ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetProductCountReqF1.xml stest6: ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetProductSpecReqF1.xml ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetProductSpecReqF2.xml ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetProductSpecReqF3.xml stest7: ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetStockQtyReqF1.xml ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetStockQtyReqF2.xml ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/GetStockQtyReqF3.xml stest8: ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/PlaceOrderReqF1.xml ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/PlaceOrderReqF2.xml ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/PlaceOrderReqF3.xml ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/PlaceOrderReqF4.xml ./ShoppingService.cgi < ${SAMPLE_MESSAGE_DIR}/PlaceOrderReqF5.xml ## Test Client-Service Hookups for Success Cases ctest1: ./ShoppingClient -s ${ENDPOINT_CGI} -c EUC-JP GetProductList ctest2: ./ShoppingClient -s ${ENDPOINT_CGI} -c EUC-JP GetStockQty NS01 ctest3: ./ShoppingClient -s ${ENDPOINT_CGI} -c EUC-JP PlaceOrder NS01 1 ## Test Async Client-Service Hookups for Success Cases ctest1a: ./ShoppingClientAsync -s ${ENDPOINT_CGI} -c EUC-JP GetProductList ctest2a: ./ShoppingClientAsync -s ${ENDPOINT_CGI} -c EUC-JP GetStockQty NS01 ctest3a: ./ShoppingClientAsync -s ${ENDPOINT_CGI} -c EUC-JP PlaceOrder NS01 1 ## Test Client-Server-Service Hookups for Success Cases cstest1: ./ShoppingClient -s ${ENDPOINT_SRV} -c EUC-JP GetProductList cstest2: ./ShoppingClient -s ${ENDPOINT_SRV} -c EUC-JP GetStockQty NS01 cstest3: ./ShoppingClient -s ${ENDPOINT_SRV} -c EUC-JP PlaceOrder NS01 1 ## Test Async Client-Server-Service Hookups for Success Cases cstest1a: ./ShoppingClientAsync -s ${ENDPOINT_SRV} -c EUC-JP GetProductList cstest2a: ./ShoppingClientAsync -s ${ENDPOINT_SRV} -c EUC-JP GetStockQty NS01 cstest3a: ./ShoppingClientAsync -s ${ENDPOINT_SRV} -c EUC-JP PlaceOrder NS01 1 cstest4a: ./ShoppingClientAsync -s ${ENDPOINT_SRV} -c EUC-JP PlaceOrderAsync NS01 1 > tmp_msg ### get result cstest5a: ./ShoppingClientAsync -s ${ENDPOINT_SRV} -c EUC-JP ConfirmOrder < tmp_msg