Opened 19 years ago

Closed 17 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 dave_yeo@…, 19 years ago

Keywords: build breakage added

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

comment:2 by dmik, 19 years ago

Component: 3rdparty[general]
Keywords: MAKESHELL sh.exe added; build breakage removed
Milestone: qt-os2-3.3.1-rc07
Status: newassigned

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 dmik, 17 years ago

Resolution: worksforme
Status: assignedclosed

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.

Note: See TracTickets for help on using tickets.