+ APPTYPE support under OS/2, app_fs, GetEnvPChar for OS/2

This commit is contained in:
Tomas Hajny 2001-01-20 18:32:52 +00:00
parent c0784260df
commit ee51dcc980
8 changed files with 66 additions and 23 deletions

View File

@ -1933,6 +1933,7 @@ option_help_pages=11025_[
3*2WB<x>_Set Image base to Hexadecimal <x> value 3*2WB<x>_Set Image base to Hexadecimal <x> value
3*2WC_Specify console type application 3*2WC_Specify console type application
3*2WD_Use DEFFILE to export functions of DLL or EXE 3*2WD_Use DEFFILE to export functions of DLL or EXE
3*2WF_Specify full-screen type application (OS/2 only)
3*2WG_Specify graphic type application 3*2WG_Specify graphic type application
3*2WN_Do not generate relocation code (necessary for debugging) 3*2WN_Do not generate relocation code (necessary for debugging)
3*2WR_Generate relocation code 3*2WR_Generate relocation code

View File

@ -33,6 +33,9 @@ interface
{$ifdef unix} {$ifdef unix}
linux, linux,
{$endif} {$endif}
{$ifdef os2}
doscalls,
{$endif}
{$ifdef Delphi} {$ifdef Delphi}
sysutils, sysutils,
dmisc, dmisc,
@ -191,7 +194,7 @@ interface
debugstop, debugstop,
only_one_pass : boolean; only_one_pass : boolean;
{$EndIf EXTDEBUG} {$EndIf EXTDEBUG}
{ windows application type } { windows / OS/2 application type }
apptype : tapptype; apptype : tapptype;
const const
@ -948,6 +951,10 @@ implementation
i,len : longint; i,len : longint;
hp,p,p2 : pchar; hp,p,p2 : pchar;
{$endif} {$endif}
{$ifdef os2}
var
P1, P2: PChar;
{$endif}
begin begin
{$ifdef unix} {$ifdef unix}
GetEnvPchar:=Linux.Getenv(envname); GetEnvPchar:=Linux.Getenv(envname);
@ -975,6 +982,18 @@ implementation
FreeEnvironmentStrings(p); FreeEnvironmentStrings(p);
{$define GETENVOK} {$define GETENVOK}
{$endif} {$endif}
{$ifdef os2}
P1 := StrPNew (EnvName);
if Assigned (P1) then
begin
if DosCalls.DosScanEnv (P1, P2) = 0 then
GetEnvPChar := P2
else
GetEnvPChar := nil;
StrDispose (P1);
end else GetEnvPChar := nil;
{$define GETENVOK}
{$endif}
{$ifdef GETENVOK} {$ifdef GETENVOK}
{$undef GETENVOK} {$undef GETENVOK}
{$else} {$else}
@ -986,7 +1005,9 @@ implementation
procedure FreeEnvPChar(p:pchar); procedure FreeEnvPChar(p:pchar);
begin begin
{$ifndef unix} {$ifndef unix}
{$ifndef os2}
StrDispose(p); StrDispose(p);
{$endif}
{$endif} {$endif}
end; end;
@ -1278,7 +1299,10 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.23 2001-01-13 00:03:41 peter Revision 1.24 2001-01-20 18:32:52 hajny
+ APPTYPE support under OS/2, app_fs, GetEnvPChar for OS/2
Revision 1.23 2001/01/13 00:03:41 peter
* fixed findexe to also support already extension in name * fixed findexe to also support already extension in name
Revision 1.22 2000/12/26 15:57:25 peter Revision 1.22 2000/12/26 15:57:25 peter

View File

@ -147,9 +147,9 @@ interface
); );
tmodeswitches = set of tmodeswitch; tmodeswitches = set of tmodeswitch;
{ win32 sub system } { win32 & OS/2 application types }
tapptype = (app_none, tapptype = (app_none,
app_gui,app_cui app_gui,app_cui,app_fs
); );
{ interface types } { interface types }
@ -219,7 +219,10 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.10 2000-11-29 00:30:30 florian Revision 1.11 2001-01-20 18:32:52 hajny
+ APPTYPE support under OS/2, app_fs, GetEnvPChar for OS/2
Revision 1.10 2000/11/29 00:30:30 florian
* unused units removed from uses clause * unused units removed from uses clause
* some changes for widestrings * some changes for widestrings

View File

@ -572,7 +572,7 @@ const
option_info=11024; option_info=11024;
option_help_pages=11025; option_help_pages=11025;
MsgTxtSize = 32076; MsgTxtSize = 32131;
MsgIdxMax : array[1..20] of longint=( MsgIdxMax : array[1..20] of longint=(
17,59,174,37,41,41,86,14,35,40, 17,59,174,37,41,41,86,14,35,40,

View File

@ -762,24 +762,25 @@ const msgtxt : array[0..000133,1..240] of char=(
'3*2WB<x','>_Set Image base to Hexadecimal <x> value'#010+ '3*2WB<x','>_Set Image base to Hexadecimal <x> value'#010+
'3*2WC_Specify console type application'#010+ '3*2WC_Specify console type application'#010+
'3*2WD_Use DEFFILE to export functions of DLL or EXE'#010+ '3*2WD_Use DEFFILE to export functions of DLL or EXE'#010+
'3*2WF_Specify full-screen type application (OS/2 only)'#010+
'3*2WG_Specify graphic type application'#010+ '3*2WG_Specify graphic type application'#010+
'3*2WN_Do not generate relocation code (necessary for debugging)'#010+ '3*2WN_Do not ','generate relocation code (necessary for debugging)'#010+
'3*2W','R_Generate relocation code'#010+ '3*2WR_Generate relocation code'#010+
'6*1A<x>_output format'#010+ '6*1A<x>_output format'#010+
'6*2Aas_Unix o-file using GNU AS'#010+ '6*2Aas_Unix o-file using GNU AS'#010+
'6*2Agas_GNU Motorola assembler'#010+ '6*2Agas_GNU Motorola assembler'#010+
'6*2Amit_MIT Syntax (old GAS)'#010+ '6*2Amit_MIT Syntax (old GAS)'#010+
'6*2Amot_Standard Motorola assembler'#010+ '6*2Amot_Standard Motorola assembler'#010+
'6*1O_optimizations:'#010+ '6*1O_opt','imizations:'#010+
'6*2Oa_turn on the optimizer'#010+ '6*2Oa_turn on the optimizer'#010+
'6*2Og_generate ','smaller code'#010+ '6*2Og_generate smaller code'#010+
'6*2OG_generate faster code (default)'#010+ '6*2OG_generate faster code (default)'#010+
'6*2Ox_optimize maximum (still BUGGY!!!)'#010+ '6*2Ox_optimize maximum (still BUGGY!!!)'#010+
'6*2O2_set target processor to a MC68020+'#010+ '6*2O2_set target processor to a MC68020+'#010+
'6*1R<x>_assembler reading style:'#010+ '6*1R<x>_assembler reading style:'#010+
'6*2RMOT_read motorola style assembler'#010+ '6*2RMOT_read motorola',' style assembler'#010+
'6*1T<x>_Target operating system:'#010+ '6*1T<x>_Target operating system:'#010+
'6*2TA','MIGA_Commodore Amiga'#010+ '6*2TAMIGA_Commodore Amiga'#010+
'6*2TATARI_Atari ST/STe/TT'#010+ '6*2TATARI_Atari ST/STe/TT'#010+
'6*2TMACOS_Macintosh m68k'#010+ '6*2TMACOS_Macintosh m68k'#010+
'6*2TLINUX_Linux-68k'#010+ '6*2TLINUX_Linux-68k'#010+

View File

@ -748,6 +748,7 @@ begin
end; end;
'C': apptype:=app_cui; 'C': apptype:=app_cui;
'D': ForceDeffileForExport:=true; 'D': ForceDeffileForExport:=true;
'F': apptype:=app_fs;
'G': apptype:=app_gui; 'G': apptype:=app_gui;
'N': begin 'N': begin
RelocSection:=false; RelocSection:=false;
@ -1517,7 +1518,10 @@ finalization
end. end.
{ {
$Log$ $Log$
Revision 1.26 2001-01-12 19:21:09 peter Revision 1.27 2001-01-20 18:36:51 hajny
+ APPTYPE support under OS/2, app_fs, GetEnvPChar for OS/2
Revision 1.26 2001/01/12 19:21:09 peter
* fixed writing of quickinfo when no ppc386.cfg is available * fixed writing of quickinfo when no ppc386.cfg is available
Revision 1.25 2001/01/05 17:36:57 florian Revision 1.25 2001/01/05 17:36:57 florian

View File

@ -1082,7 +1082,8 @@ const
hs : string; hs : string;
begin begin
if target_info.target<>target_i386_win32 then if (target_info.target<>target_i386_win32)
and (target_info.target<>target_i386_os2) then
Message(scan_w_app_type_not_support); Message(scan_w_app_type_not_support);
if not current_module.in_global then if not current_module.in_global then
Message(scan_w_switch_is_global) Message(scan_w_switch_is_global)
@ -1094,6 +1095,8 @@ const
apptype:=app_gui apptype:=app_gui
else if hs='CONSOLE' then else if hs='CONSOLE' then
apptype:=app_cui apptype:=app_cui
else if (hs='FS') and (target_info.target=target_i386_os2) then
apptype:=app_fs
else else
Message1(scan_w_unsupported_app_type,hs); Message1(scan_w_unsupported_app_type,hs);
end; end;
@ -1390,7 +1393,10 @@ const
{ {
$Log$ $Log$
Revision 1.16 2001-01-13 00:09:21 peter Revision 1.17 2001-01-20 18:32:52 hajny
+ APPTYPE support under OS/2, app_fs, GetEnvPChar for OS/2
Revision 1.16 2001/01/13 00:09:21 peter
* made Pavel O. happy ;) * made Pavel O. happy ;)
Revision 1.15 2000/12/25 00:07:28 peter Revision 1.15 2000/12/25 00:07:28 peter

View File

@ -365,7 +365,7 @@ begin
with Info do with Info do
begin begin
ExeCmd[1]:='ld $OPT -o $EXE @$RES'; ExeCmd[1]:='ld $OPT -o $EXE @$RES';
ExeCmd[2]:='emxbind -b $STRIP $PM $RSRC -k$STACKKB -h$HEAPMB -o $EXE.exe $EXE -aim -s$DOSHEAPKB'; ExeCmd[2]:='emxbind -b $STRIP $APPTYPE $RSRC -k$STACKKB -h$HEAPMB -o $EXE.exe $EXE -aim -s$DOSHEAPKB';
end; end;
end; end;
@ -438,7 +438,7 @@ var
cmdstr : string; cmdstr : string;
success : boolean; success : boolean;
i : longint; i : longint;
PMStr, AppTypeStr,
StripStr: string[40]; StripStr: string[40];
RsrcStr : string; RsrcStr : string;
begin begin
@ -450,10 +450,11 @@ begin
StripStr := '-s' StripStr := '-s'
else else
StripStr := ''; StripStr := '';
if usewindowapi then if (usewindowapi) or (AppType = app_gui) then
PMStr := '-p' AppTypeStr := '-p'
else else if AppType = app_fs then
PMStr := ''; AppTypeStr := '-f'
else AppTypeStr := '-w';
if not (Current_module.ResourceFiles.Empty) then if not (Current_module.ResourceFiles.Empty) then
RsrcStr := '-r ' + Current_module.ResourceFiles.GetFirst RsrcStr := '-r ' + Current_module.ResourceFiles.GetFirst
else else
@ -478,7 +479,7 @@ begin
same memory pool. The heap grows upwards, the stack grows downwards.} same memory pool. The heap grows upwards, the stack grows downwards.}
Replace(cmdstr,'$DOSHEAPKB',tostr((stacksize+maxheapsize+1023) shr 10)); Replace(cmdstr,'$DOSHEAPKB',tostr((stacksize+maxheapsize+1023) shr 10));
Replace(cmdstr,'$STRIP',StripStr); Replace(cmdstr,'$STRIP',StripStr);
Replace(cmdstr,'$PM',PMStr); Replace(cmdstr,'$APPTYPE',AppTypeStr);
Replace(cmdstr,'$RES',outputexedir+Info.ResName); Replace(cmdstr,'$RES',outputexedir+Info.ResName);
Replace(cmdstr,'$OPT',Info.ExtraOptions); Replace(cmdstr,'$OPT',Info.ExtraOptions);
Replace(cmdstr,'$RSRC',RsrcStr); Replace(cmdstr,'$RSRC',RsrcStr);
@ -502,7 +503,10 @@ end;
end. end.
{ {
$Log$ $Log$
Revision 1.6 2000-12-25 00:07:30 peter Revision 1.7 2001-01-20 18:32:52 hajny
+ APPTYPE support under OS/2, app_fs, GetEnvPChar for OS/2
Revision 1.6 2000/12/25 00:07:30 peter
+ new tlinkedlist class (merge of old tstringqueue,tcontainer and + new tlinkedlist class (merge of old tstringqueue,tcontainer and
tlinkedlist objects) tlinkedlist objects)