1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/*
2402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   Licensed to the Apache Software Foundation (ASF) under one or more
3402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   contributor license agreements.  See the NOTICE file distributed with
4402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   this work for additional information regarding copyright ownership.
5402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   The ASF licenses this file to You under the Apache License, Version 2.0
6402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   (the "License"); you may not use this file except in compliance with
7402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   the License.  You may obtain a copy of the License at
8402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
9402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll       http://www.apache.org/licenses/LICENSE-2.0
10402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
11402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   Unless required by applicable law or agreed to in writing, software
12402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   distributed under the License is distributed on an "AS IS" BASIS,
13402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   See the License for the specific language governing permissions and
15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll   limitations under the License.
16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    Run ant
18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll*/
19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll'@echo off'
21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollparse arg mode envarg '::' antarg
22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif mode\='.' & mode\='..' & mode\='/' then do
24402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  envarg = mode envarg
25402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  mode = ''
26402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollend
27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif antarg = '' then do
29402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  antarg = envarg
30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  envarg = ''
31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollend
32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollx = setlocal()
34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollenv="OS2ENVIRONMENT"
36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollantenv = _getenv_('antenv')
37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif _testenv_() = 0 then interpret 'call "' || antenv || '"' '"' || envarg || '"'
38402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif mode = '' then mode = _getenv_('ANT_MODE' '..')
40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif mode \= '/' then do
41402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  runrc = _getenv_('runrc')
42402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  antrc = _getenv_('antrc' 'antrc.cmd')
43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  if mode = '..' then mode = '-r'
44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  else mode = ''
45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  interpret 'call "' || runrc || '"' antrc '"' || mode || '"'
46402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollend
47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif _testenv_() = 0 then do
49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  say 'Ant environment is not set properly'
50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  x = endlocal()
51402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  exit 16
52402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollend
53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollsettings = '-Dant.home=' || ANT_HOME '-Djava.home=' || JAVA_HOME
55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
56402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molljava = _getenv_('javacmd' 'java')
57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollopts = value('ANT_OPTS',,env)
58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollargs = value('ANT_ARGS',,env)
59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molllcp = value('LOCALCLASSPATH',,env)
60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollcp = value('CLASSPATH',,env)
61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif value('ANT_USE_CP',,env) \= '' then do
62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  if lcp \= '' & right(lcp, 1) \= ';' then lcp = lcp || ';'
63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  lcp = lcp || cp
64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  'SET CLASSPATH='
65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollend
66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif lcp\='' then lcp = '-classpath' lcp
67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
68402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollcmd = java opts lcp '-jar' ANT_HOME ||'\lib\ant-launcher.jar' settings args antarg
69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molllauncher = stream(ANT_HOME ||'\lib\ant-launcher.jar', 'C', 'query exists')
70402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif launcher = '' then entry = 'org.apache.tools.ant.Main'
71402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollelse entry = 'org.apache.tools.ant.launch.Launcher'
72402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Molljava opts lcp entry settings args antarg
73402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
74402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollx = endlocal()
75402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
76402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollreturn rc
77402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
78402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll_testenv_: procedure expose env ANT_HOME JAVA_HOME
79402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollANT_HOME = value('ANT_HOME',,env)
80402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif ANT_HOME = '' then return 0
81402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael MollJAVA_HOME = value('JAVA_HOME',,env)
82402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif JAVA_HOME = '' then return 0
83402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollcp = translate(value('CLASSPATH',,env))
84402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif pos(translate(ANT_HOME), cp) = 0 then return 0
85402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif pos(translate(JAVA_HOME), cp) = 0 then return 0
86402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollreturn 1
87402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
88402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll_getenv_: procedure expose env
89402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollparse arg envar default
90402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif default = '' then default = envar
91402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollvar = value(translate(envar),,env)
92402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollif var = '' then var = default
93402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollreturn var
94