OpenVMS Source Code Demos
BUILD_CALC_CPP
$!===================================================================================
$! title : build_calc_cpp.com
$! author : Neil Rieck
$! created: 2013-05-27
$! notes : derived from build.com (for calcclient.c and calcserver by Brett Cameron)
$! target : HP C++ V7.3-009 for OpenVMS Alpha V8.4
$!===================================================================================
$ say :== write sys$output !
$ soapcpp2 :== $gsoap$root:[bin]soapcpp2.exe !
$! set verify !
$!
$ if P1 .eqs. "" then P1 = "BLANK"
$ if P1 .eqs. "LINK" then goto skip_compile
$!--------------------------------------------------------------
$! prep with gSOAP tools
$!--------------------------------------------------------------
$ say "-i- PHASE #1 (gsoap tools) ====="
$ say "-i- running tool: soapcpp2 to generate files"
$! soapcpp2 "-x" "-c" calc.h ! do this for c
$ soapcpp2 "-x" "-i" calc.h ! do this for c++
$! these files should have been just created:
$! CALC.NSMAP
$! CALC.WSDL
$! NS.XSD
$! SOAPC.CPP
$! SOAPCALCPROXY.CPP
$! SOAPCALCPROXY.H
$! SOAPCALCSERVICE.CPP
$! SOAPCALCSERVICE.H
$! SOAPH.H
$! SOAPSTUB.H
$!--------------------------------------------------------------
$! complile
$!--------------------------------------------------------------
$ say "-i- PHASE #2 (c++ compiles) ====="
$ fs = "calcclient.cpp"
$ gosub compile
$ fs = "calcserver.cpp"
$ gosub compile
$ fs = "soapc.cpp"
$ gosub compile
$ fs = "soapcalcproxy.cpp"
$ gosub compile
$ fs = "soapcalcservice.cpp"
$ gosub compile
$skip_compile:
$!--------------------------------------------------------------
$! link
$!--------------------------------------------------------------
$ say "-i- PHASE #3 (linking client modules) ====="
$ say "-i- linking client files"
$!~~~ cxxlink/log/map calcclient,soapc,soapcalcproxy,sys$input/opt
$ cxxlink calcclient,soapc,soapcalcproxy,sys$input/opt
gsoap$root:[lib]gsoapxx.olb/lib
case_sensitive=YES
$!--------------------------------------------------------------
$ say "-i- PHASE #4 (linking server modules) ====="
$ say "-i- linking server files"
$!~~~ cxxlink/log/map calcserver,soapc,soapcalcservice,sys$input/opt
$ cxxlink calcserver,soapc,soapcalcservice,sys$input/opt
gsoap$root:[lib]gsoapxx.olb/lib
case_sensitive=YES
$!--------------------------------------------------------------
$! DCL symbols
$!--------------------------------------------------------------
$ say "-i- PHASE #5 (DCL symbols) ====="
$ path == f$environment("DEFAULT")
$ say "-i- creating DCL symbol 'CALCC' for easy client testing"
$ calcc*lient == "$" + path +"calcclient.exe"
$ say "-i- creating DCL symbol 'CALCS' for easy server testing"
$ calcs*erve == "$" + path +"calcserver.exe"
$ exit
$!=============================================================
$! a common routine for compiling modules
$!=============================================================
$compile:
$ say "-i- compiling: ",fs
$ cxx/names=(as_is,shortened)/prefix=all/float=ieee/ieee=denorm -
/using_std/define=(__USE_STD_IOSTREAM) -
/include=gsoap$root:[include] 'fs'
$ return