mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 12:05:57 +02:00
+ APPTYPE support under OS/2, app_fs, GetEnvPChar for OS/2
This commit is contained in:
parent
c0784260df
commit
ee51dcc980
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
@ -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+
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user