packageBinaries.cmd
上传用户:huihehuasu
上传日期:2007-01-10
资源大小:6948k
文件大小:8k
源码类别:

xml/soap/webservice

开发平台:

C/C++

  1. /****************************************************************************
  2.  * Create directories and package binaries for Xerces-C OS/2 port
  3.  */
  4. IF LoadRexxUtil() THEN EXIT
  5. sourcedir  = ''
  6. targetdir  = ''
  7. msgloader  = 'InMemory'
  8. transcoder = 'Iconv'
  9. argv = cli(arg(1))
  10. DO i = 1 TO argv~items
  11.   SELECT
  12.     WHEN argv[i] = "-s" THEN
  13.      DO
  14.       i = i + 1
  15.       sourcedir = argv[i]
  16.      END
  17.     WHEN argv[i] = "-o" THEN
  18.      DO
  19.       i = i + 1
  20.       targetdir = argv[i]
  21.      END
  22.     WHEN argv[i] = "-t" THEN
  23.      DO
  24.       i = i + 1
  25.       transcoder = argv[i]
  26.      END
  27.     WHEN argv[i] = "-m" THEN
  28.      DO
  29.       i = i + 1
  30.       msgloader = argv[i]
  31.      END
  32.     WHEN argv[i] = "-h" THEN
  33.      DO
  34.       CALL Usage
  35.       EXIT -1
  36.      END
  37.     OTHERWISE
  38.       NOP
  39.   END
  40. END
  41. IF targetdir = '' | sourcedir = '' THEN
  42.  DO
  43.   CALL Usage
  44.   EXIT -1
  45.  END
  46. CALL MakeTargetDirectories targetdir
  47. CALL CopyHeaderFiles targetdir, sourcedir
  48. CALL CopyBinaries targetdir, sourcedir
  49. CALL CopySamples targetdir, sourcedir
  50. EXIT
  51. /*---------------------------------- Usage ----------------------------------
  52.  * Display a usage message
  53.  */
  54. ::routine Usage
  55.   SAY "Usage is:"
  56.   SAY "  packageBinaries <options>"
  57.   SAY "     options are:"
  58.   SAY "         -s <source_directory>"
  59.   SAY "         -o <target_directory>"
  60. /*
  61.   SAY "         -c <C compiler name> (e.g. gcc, cc or xlc_r)"
  62.   SAY "         -x <C++ compiler name> (e.g. g++, CC, aCC, c++ or xlC_r)"
  63. */
  64.   SAY "         -m <message loader> can be 'inmem' (default), 'icu' or 'iconv'"
  65.   SAY "         -n <net accessor> can be 'fileonly' or 'socket' (default)"
  66.   SAY "         -t <transcoder> can be 'icu' or 'native' (default)"
  67.   SAY "         -h to get help on these commands"
  68.   SAY "Example:"
  69.   SAY "  packageBinaries -s D:xml-xercesc -o E:xerces-c_1_1_0 -m inmem -n fileonly"
  70.   RETURN
  71. /*-------------------------- MakeTargetDirectories --------------------------
  72.  * Make the target directory and its main subdirectories
  73.  */
  74. ::routine MakeTargetDirectories
  75.   USE ARG targetdir
  76.   CALL SysMkDir targetdir
  77.   CALL SysMkDir targetdir || "bin"
  78.   CALL SysMkDir targetdir || "lib"
  79.   CALL SysMkDir targetdir || "include"
  80.   CALL SysMkDir targetdir || "samples"
  81.   CALL SysMkDir targetdir || "samplesProjects"
  82.   CALL SysMkDir targetdir || "samplesProjectsOS2"
  83.   CALL SysMkDir targetdir || "samplesProjectsOS2VACPP40"
  84.   CALL SysMkDir targetdir || "samplesdata"
  85.   CALL SysMkDir targetdir || "samplesSAXCount"
  86.   CALL SysMkDir targetdir || "samplesSAX2Count"
  87.   CALL SysMkDir targetdir || "samplesSAXPrint"
  88.   CALL SysMkDir targetdir || "samplesSAX2Print"
  89.   CALL SysMkDir targetdir || "samplesDOMCount"
  90.   CALL SysMkDir targetdir || "samplesDOMPrint"
  91.   CALL SysMkDir targetdir || "samplesIDOMCount"
  92.   CALL SysMkDir targetdir || "samplesIDOMPrint"
  93.   CALL SysMkDir targetdir || "samplesRedirect"
  94.   CALL SysMkDir targetdir || "samplesMemParse"
  95.   CALL SysMkDir targetdir || "samplesPParse"
  96.   CALL SysMkDir targetdir || "samplesStdInParse"
  97.   CALL SysMkDir targetdir || "samplesEnumVal"
  98.   CALL SysMkDir targetdir || "samplesCreateDOMDocument"
  99.   CALL SysMkDir targetdir || "doc"
  100.   CALL SysMkDir targetdir || "dochtml"
  101.   CALL SysMkDir targetdir || "dochtmlapiDocs"
  102.   RETURN
  103.   /*------------------------------- CopySamples -------------------------------
  104.  */
  105. ::routine CopySamples
  106.   USE ARG targetdir, sourcedir
  107.   project = "samplesProjectsOS2VACPP40"
  108.   /* Copy the project files */
  109.   srcSpec = sourcedir || project || "*"
  110.   CALL SysFileTree srcSpec, 'F.', 'FO'
  111.   DO i = 1 TO f.0
  112.     srcfn = f.i
  113.     trgfn = targetdir || project || "" || Filespec('N', f.i)
  114.     'copy' srcfn trgfn '> nul'
  115.   END
  116.   samples = .array~of( ,
  117.                 "SAXCount", ,
  118.                 "SAX2Count", ,
  119.                 "SAXPrint", ,
  120.                 "SAX2Print", ,
  121.                 "DOMCount", ,
  122.                 "DOMPrint", ,
  123.                 "IDOMCount", ,
  124.                 "IDOMPrint", ,
  125.                 "Redirect", ,
  126.                 "MemParse", ,
  127.                 "PParse", ,
  128.                 "StdInParse", ,
  129.                 "EnumVal", ,
  130.                 "CreateDOMDocument" ,
  131.                 )
  132.   /* Copy the sample code */
  133.   DO sample OVER samples
  134.    srcSpec = sourcedir || "samples" || sample || "*.?pp"
  135.    CALL SysFileTree srcSpec, 'F.', 'FO'
  136.    DO i = 1 TO f.0
  137.      srcfn = f.i
  138.      trgfn = targetdir || "samples" || sample ||  "" || Filespec('N', f.i)
  139.      'copy' srcfn trgfn '> nul'
  140.    END
  141.   END
  142.   RETURN
  143. /*------------------------------ CopyBinaries -------------------------------
  144.  * Copy the DLL and LIB files to their destination directories
  145.  */
  146. ::routine CopyBinaries
  147.   USE ARG targetdir, sourcedir
  148.   srcdll = sourcedir || "ProjectsOS2VACPP40xerces-c.dll"
  149.   trgdll = targetdir || "binxerces-c.dll"
  150.   srclib = sourcedir || "ProjectsOS2VACPP40xerces-c.lib"
  151.   trglib = targetdir || "libxerces-c.lib"
  152.   'copy' srcdll trgdll '> nul'
  153.   'copy' srclib trglib '> nul'
  154.   RETURN
  155. /*----------------------------- CopyHeaderFiles -----------------------------
  156.  * Copy the header files to the target include directory
  157.  */
  158. ::routine CopyHeaderFiles
  159.   USE ARG targetdir, sourcedir
  160.   hdirs = .array~of( ,
  161.               "sax", ,
  162.   "sax2", ,
  163.               "framework", ,
  164.               "dom", ,
  165.               "idom", ,
  166.               "internal", ,
  167.               "parsers", ,
  168.               "util", ,
  169.               "utilCompilers", ,
  170.               "utilMsgLoaders", ,
  171.               "utilMsgLoadersICU", ,
  172.               "utilMsgLoadersInMemory", ,
  173.               "utilMsgLoadersMsgCatalog", ,
  174.               "utilPlatforms", ,
  175.               "utilPlatformsAIX", ,
  176.               "utilPlatformsHPUX", ,
  177.               "utilPlatformsLinux", ,
  178.               "utilPlatformsMacOS", ,
  179.               "utilPlatformsOS2", ,
  180.               "utilPlatformsOS390", ,
  181.               "utilPlatformsPTX", ,
  182.               "utilPlatformsSolaris", ,
  183.               "utilPlatformsTandem", ,
  184.               "utilPlatformsWin32", ,
  185.               "utilTranscoders", ,
  186.               "utilTranscodersICU", ,
  187.               "utilTranscodersIconv", ,
  188.               "utilregx", ,
  189.               "validators", ,
  190.               "validatorscommon", ,
  191.               "validatorsdatatype", ,
  192.               "validatorsDTD" )
  193.   DO dir OVER hdirs
  194.     CALL SysMkDir targetdir || "include" || dir
  195.     /* Copy the *.hpp files */
  196.     hppSpec = sourcedir || "src" || dir || "*.hpp"
  197.     CALL SysFileTree hppSpec, 'F.', 'FO'
  198.     DO i = 1 TO f.0
  199.       srcfn = f.i
  200.       trgfn = targetdir || "include" || dir || "" || Filespec('N', f.i)
  201.       IF srcfn~pos("dom") > 0 THEN
  202.         IF srcfn~pos("Impl.hpp") > 0 | srcfn~pos("domDS") > 0 THEN
  203.           ITERATE
  204.       IF srcfn~pos("idom") > 0 THEN
  205.         IF srcfn~pos("Impl.hpp") > 0 | srcfn~pos("idomIDS") > 0 THEN
  206.           ITERATE
  207.       'copy' srcfn trgfn '> nul'
  208.     END
  209.     /* Copy the *.c files */
  210.     cSpec = sourcedir || "src" || dir || "*.c"
  211.     CALL SysFileTree cSpec, 'F.', 'FO'
  212.     DO i = 1 TO f.0
  213.       srcfn = f.i
  214.       trgfn = targetdir || "include" || dir || "" || Filespec('N', f.i)
  215.       'copy' srcfn trgfn '> nul'
  216.     END
  217.   END
  218.   RETURN
  219. /*------------------------------ LoadRexxUtil -------------------------------
  220.  * Load the RexxUtil library
  221.  */
  222. ::routine LoadRexxUtil
  223.   IF RxFuncQuery('SysLoadFuncs') THEN
  224.    DO
  225.     IF RxFuncAdd('SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs') THEN
  226.      DO
  227.       .output~lineout("Error: Couldn't load RexxUtil library.")
  228.       RETURN 1
  229.      END
  230.     CALL SysLoadFuncs
  231.    END
  232.   RETURN 0
  233. /*----------------------------------- cli -----------------------------------
  234.  * Command Line Interpreter
  235.  */
  236. ::routine cli
  237.   USE ARG cmdline
  238.   argv = .array~new
  239.   DO i = 1 WHILE cmdline <> ''
  240.     cmdline = cmdline~strip
  241.     IF cmdline~left(1) = '"' THEN
  242.       PARSE VAR cmdline '"' thisArg '"' cmdline
  243.     ELSE
  244.       PARSE VAR cmdline thisArg cmdline
  245.     argv[i] = thisArg
  246.   END
  247.   RETURN argv