Opened 20 years ago
Closed 18 years ago
#23 closed defect (worksforme)
MAKESHELL needs setting
| Reported by: | anonymous | Owned by: | dmik |
|---|---|---|---|
| Priority: | normal | Milestone: | qt-os2-3.3.1-rc07 |
| Component: | [general] | Version: | 3.3.1-rc06 |
| Severity: | normal | Keywords: | MAKESHELL sh.exe |
| Cc: |
Description
With SET MAKESHELL=sh.exe the build fails very early with an unterminated if error. Fix is to do a SET MAKESHELL=cmd.exe. This should be set in configure.cmd amd also perhaps qt.cmd
Change History (3)
comment:1 by , 20 years ago
| Keywords: | build breakage added |
|---|
comment:2 by , 20 years ago
| Component: | 3rdparty → [general] |
|---|---|
| Keywords: | MAKESHELL sh.exe added; build breakage removed |
| Milestone: | → qt-os2-3.3.1-rc07 |
| Status: | new → assigned |
Yes, that's true. sh.exe isn't supported when set as the command line shell for Qt scripts. I will modify configure.cmd so that MAKESHELL is set to cmd.exe in the generated qt.cmd script. Thanks for reporting.
comment:3 by , 18 years ago
| Resolution: | → worksforme |
|---|---|
| Status: | assigned → closed |
I've just rechecked it once again: configure.cmd sets MAKESHELL to cmd.exe in the generated qt.cmd command line wrapper since changeset:25 (that was committed half a year before you've opened this ticket :) I don't know what could cause this error in your case: probably you tried to run make on one of Qt makefiles directly, omitting qt.cmd.
Another person, Cornelis Bockemühl, had problems building Qt from under the 32-bit Command Line Interpreter by Jonathan de Boyne Pollard (http://homepages.tesco.net/~J.deBoynePollard/Softwares/). I've tried this interpreter and indeed couldn't even properly finalize configure.cmd from under it. This simple REXX script demonstrates one of the problems:
/**/
parse source a b c
say
say 'OS =' a
say 'Env =' b
say 'Script =' c
say
path_before = value('PATH',,'OS2ENVIRONMENT')
say 'PATH (before) =' path_before
say
to_add = 'I_WAS_HERE!!!'
say 'Adding "'to_add'" in front of PATH...'
say
address 'cmd' '@set PATH='to_add';%PATH%'
path_after = value('PATH',,'OS2ENVIRONMENT')
say 'PATH (after) =' path_after
say
if (to_add';'path_before \== path_after) then
say 'TEST FAILED :-('
else
say 'TEST SUCCEEDED :-)'
exit
It seems that this CMD replacement pretends to be identified as CMD (for example, it handles address 'cmd' REXX statements) but it isn't fully compatible with the standard OS/2 command interpreter. This looks odd to me. I'm not going to spend time working around these problems in configure.cmd or in qt.cmd.

I'm the origanal reporter. Definately need SET MAKESHELL=cmd.exe in qt.cmd otherwise (a different project) make: [clean] Error 1 (ignored) sh.exe: syntax error: `if' unmatched make: [clean] Error 1 (ignored) ... Dave