Modified compiler defines for windows (For better compatibility with non-WIN32 systems.)

git-svn-id: https://svn.code.sf.net/p/synalist/code/trunk@112 7c85be65-684b-0410-a082-b2ed4fbef004
This commit is contained in:
geby 2010-01-22 14:33:10 +00:00
parent ebe0a97881
commit de44816b86
9 changed files with 125 additions and 61 deletions

View File

@ -1,5 +1,5 @@
{==============================================================================| {==============================================================================|
| Project : Ararat Synapse | 009.008.000 | | Project : Ararat Synapse | 009.008.001 |
|==============================================================================| |==============================================================================|
| Content: Library base | | Content: Library base |
|==============================================================================| |==============================================================================|
@ -82,6 +82,13 @@ Core with implementation basic socket classes.
{$H+} {$H+}
{$M+} {$M+}
//old Delphi does not have MSWINDOWS define.
{$IFDEF WIN32}
{$IFNDEF MSWINDOWS}
{$DEFINE MSWINDOWS}
{$ENDIF}
{$ENDIF}
unit blcksock; unit blcksock;
interface interface
@ -936,10 +943,6 @@ type
constructor CreateWithSSL(SSLPlugin: TSSLClass); constructor CreateWithSSL(SSLPlugin: TSSLClass);
destructor Destroy; override; destructor Destroy; override;
{:Return descriptive string for @link(LastError). On case of error
in SSL/TLS subsystem, it returns right error description.}
function GetErrorDescEx: string; override;
{:See @link(TBlockSocket.CloseSocket)} {:See @link(TBlockSocket.CloseSocket)}
procedure CloseSocket; override; procedure CloseSocket; override;
@ -1030,6 +1033,10 @@ type
{:@True if is used HTTP tunnel mode.} {:@True if is used HTTP tunnel mode.}
property HTTPTunnel: Boolean read FHTTPTunnel; property HTTPTunnel: Boolean read FHTTPTunnel;
published published
{:Return descriptive string for @link(LastError). On case of error
in SSL/TLS subsystem, it returns right error description.}
function GetErrorDescEx: string; override;
{:Specify IP address of HTTP proxy. Assingning non-empty value to this {:Specify IP address of HTTP proxy. Assingning non-empty value to this
property enable HTTP-tunnel mode. This mode is for tunnelling any outgoing property enable HTTP-tunnel mode. This mode is for tunnelling any outgoing
TCP connection through HTTP proxy server. (If policy on HTTP proxy server TCP connection through HTTP proxy server. (If policy on HTTP proxy server
@ -1546,7 +1553,7 @@ var
li: TLinger; li: TLinger;
x: integer; x: integer;
buf: TMemory; buf: TMemory;
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
timeval: TTimeval; timeval: TTimeval;
{$ENDIF} {$ENDIF}
begin begin
@ -1596,7 +1603,7 @@ begin
synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_RCVTIMEO), synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_RCVTIMEO),
buf, SizeOf(Value.Value)); buf, SizeOf(Value.Value));
{$ELSE} {$ELSE}
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
buf := @Value.Value; buf := @Value.Value;
synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_RCVTIMEO), synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_RCVTIMEO),
buf, SizeOf(Value.Value)); buf, SizeOf(Value.Value));
@ -1613,7 +1620,7 @@ begin
{$IFDEF CIL} {$IFDEF CIL}
buf := System.BitConverter.GetBytes(value.Value); buf := System.BitConverter.GetBytes(value.Value);
{$ELSE} {$ELSE}
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
buf := @Value.Value; buf := @Value.Value;
synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_SNDTIMEO), synsock.SetSockOpt(FSocket, integer(SOL_SOCKET), integer(SO_SNDTIMEO),
buf, SizeOf(Value.Value)); buf, SizeOf(Value.Value));
@ -2243,7 +2250,7 @@ begin
end end
else else
begin begin
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
//not drain CPU on large downloads... //not drain CPU on large downloads...
Sleep(0); Sleep(0);
{$ENDIF} {$ENDIF}

View File

@ -1,5 +1,5 @@
{==============================================================================| {==============================================================================|
| Project : Ararat Synapse | 003.012.003 | | Project : Ararat Synapse | 003.012.004 |
|==============================================================================| |==============================================================================|
| Content: HTTP client | | Content: HTTP client |
|==============================================================================| |==============================================================================|
@ -51,6 +51,12 @@ Used RFC: RFC-1867, RFC-1947, RFC-2388, RFC-2616
{$MODE DELPHI} {$MODE DELPHI}
{$ENDIF} {$ENDIF}
{$H+} {$H+}
//old Delphi does not have MSWINDOWS define.
{$IFDEF WIN32}
{$IFNDEF MSWINDOWS}
{$DEFINE MSWINDOWS}
{$ENDIF}
{$ENDIF}
unit httpsend; unit httpsend;
@ -322,7 +328,7 @@ begin
if FProtocol = '0.9' then if FProtocol = '0.9' then
Result := FHeaders[0] + CRLF Result := FHeaders[0] + CRLF
else else
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
Result := AdjustLineBreaks(FHeaders.Text, tlbsCRLF); Result := AdjustLineBreaks(FHeaders.Text, tlbsCRLF);
{$ELSE} {$ELSE}
Result := FHeaders.Text; Result := FHeaders.Text;

View File

@ -1,5 +1,5 @@
{==============================================================================| {==============================================================================|
| Project : Ararat Synapse | 004.000.001 | | Project : Ararat Synapse | 004.000.002 |
|==============================================================================| |==============================================================================|
| Content: PING sender | | Content: PING sender |
|==============================================================================| |==============================================================================|
@ -66,6 +66,12 @@ Note: This unit is NOT portable to .NET!
{$IFDEF CIL} {$IFDEF CIL}
Sorry, this unit is not for .NET! Sorry, this unit is not for .NET!
{$ENDIF} {$ENDIF}
//old Delphi does not have MSWINDOWS define.
{$IFDEF WIN32}
{$IFNDEF MSWINDOWS}
{$DEFINE MSWINDOWS}
{$ENDIF}
{$ENDIF}
unit pingsend; unit pingsend;
@ -74,7 +80,7 @@ interface
uses uses
SysUtils, SysUtils,
synsock, blcksock, synautil, synafpc, synaip synsock, blcksock, synautil, synafpc, synaip
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
, windows , windows
{$ENDIF} {$ENDIF}
; ;
@ -205,7 +211,7 @@ type
proto: Byte; proto: Byte;
end; end;
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
const const
DLLIcmpName = 'iphlpapi.dll'; DLLIcmpName = 'iphlpapi.dll';
type type
@ -332,7 +338,7 @@ begin
FReplyError := IE_Other; FReplyError := IE_Other;
GenErrorDesc; GenErrorDesc;
FBuffer := StringOfChar(#55, SizeOf(TICMPEchoHeader) + FPacketSize); FBuffer := StringOfChar(#55, SizeOf(TICMPEchoHeader) + FPacketSize);
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
b := IsHostIP6(host); b := IsHostIP6(host);
if not(b) and IcmpHelper4 then if not(b) and IcmpHelper4 then
result := InternalPingIpHlp(host) result := InternalPingIpHlp(host)
@ -400,7 +406,7 @@ begin
break; break;
if fSock.IP6used then if fSock.IP6used then
begin begin
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
IcmpEchoHeaderPtr := Pointer(FBuffer); IcmpEchoHeaderPtr := Pointer(FBuffer);
{$ELSE} {$ELSE}
//WinXP SP1 with networking update doing this think by another way ;-O //WinXP SP1 with networking update doing this think by another way ;-O
@ -474,7 +480,7 @@ var
x: integer; x: integer;
begin begin
Result := 0; Result := 0;
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
s := StringOfChar(#0, SizeOf(TICMP6Packet)) + Value; s := StringOfChar(#0, SizeOf(TICMP6Packet)) + Value;
ICMP6Ptr := Pointer(s); ICMP6Ptr := Pointer(s);
x := synsock.WSAIoctl(FSock.Socket, SIO_ROUTING_INTERFACE_QUERY, x := synsock.WSAIoctl(FSock.Socket, SIO_ROUTING_INTERFACE_QUERY,
@ -566,7 +572,7 @@ begin
end; end;
function TPINGSend.InternalPingIpHlp(const Host: string): Boolean; function TPINGSend.InternalPingIpHlp(const Host: string): Boolean;
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
var var
PingIp6: boolean; PingIp6: boolean;
PingHandle: integer; PingHandle: integer;
@ -679,7 +685,7 @@ begin
end; end;
end; end;
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
initialization initialization
begin begin
IcmpHelper4 := false; IcmpHelper4 := false;

View File

@ -1,5 +1,5 @@
{==============================================================================| {==============================================================================|
| Project : Ararat Synapse | 003.006.000 | | Project : Ararat Synapse | 003.006.001 |
|==============================================================================| |==============================================================================|
| Content: SSL support by OpenSSL | | Content: SSL support by OpenSSL |
|==============================================================================| |==============================================================================|
@ -60,6 +60,13 @@ Special thanks to Gregor Ibic <gregor.ibic@intelicom.si>
(*$HPPEMIT 'namespace ssl_openssl_lib { using System::Shortint; }' *) (*$HPPEMIT 'namespace ssl_openssl_lib { using System::Shortint; }' *)
{$ENDIF} {$ENDIF}
//old Delphi does not have MSWINDOWS define.
{$IFDEF WIN32}
{$IFNDEF MSWINDOWS}
{$DEFINE MSWINDOWS}
{$ENDIF}
{$ENDIF}
{:@abstract(OpenSSL support) {:@abstract(OpenSSL support)
This unit is Pascal interface to OpenSSL library (used by @link(ssl_openssl) unit). This unit is Pascal interface to OpenSSL library (used by @link(ssl_openssl) unit).
@ -77,7 +84,7 @@ uses
{$ENDIF} {$ENDIF}
Classes, Classes,
synafpc, synafpc,
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
Libc, SysUtils; Libc, SysUtils;
{$ELSE} {$ELSE}
Windows; Windows;
@ -95,7 +102,7 @@ const
{$ENDIF} {$ENDIF}
{$ELSE} {$ELSE}
var var
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
DLLSSLName: string = 'libssl.so'; DLLSSLName: string = 'libssl.so';
DLLUtilName: string = 'libcrypto.so'; DLLUtilName: string = 'libcrypto.so';
{$ELSE} {$ELSE}

View File

@ -44,8 +44,6 @@
{:@exclude} {:@exclude}
{$IFDEF WIN32}
//{$DEFINE WINSOCK1} //{$DEFINE WINSOCK1}
{Note about define WINSOCK1: {Note about define WINSOCK1:
If you activate this compiler directive, then socket interface level 1.1 is If you activate this compiler directive, then socket interface level 1.1 is
@ -389,8 +387,13 @@ type
TServEnt = packed record TServEnt = packed record
s_name: PAnsiChar; s_name: PAnsiChar;
s_aliases: ^PAnsiChar; s_aliases: ^PAnsiChar;
{$ifdef WIN64}
s_proto: PAnsiChar;
s_port: Smallint;
{$else}
s_port: Smallint; s_port: Smallint;
s_proto: PAnsiChar; s_proto: PAnsiChar;
{$endif}
end; end;
PProtoEnt = ^TProtoEnt; PProtoEnt = ^TProtoEnt;
@ -719,11 +722,19 @@ type
TWSAData = packed record TWSAData = packed record
wVersion: Word; wVersion: Word;
wHighVersion: Word; wHighVersion: Word;
{$ifdef win64}
iMaxSockets : Word;
iMaxUdpDg : Word;
lpVendorInfo : PAnsiChar;
szDescription : array[0..WSADESCRIPTION_LEN] of AnsiChar;
szSystemStatus : array[0..WSASYS_STATUS_LEN] of AnsiChar;
{$else}
szDescription: array[0..WSADESCRIPTION_LEN] of AnsiChar; szDescription: array[0..WSADESCRIPTION_LEN] of AnsiChar;
szSystemStatus: array[0..WSASYS_STATUS_LEN] of AnsiChar; szSystemStatus: array[0..WSASYS_STATUS_LEN] of AnsiChar;
iMaxSockets: Word; iMaxSockets: Word;
iMaxUdpDg: Word; iMaxUdpDg: Word;
lpVendorInfo: PAnsiChar; lpVendorInfo: PAnsiChar;
{$endif}
end; end;
function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean; function IN6_IS_ADDR_UNSPECIFIED(const a: PInAddr6): boolean;
@ -1582,5 +1593,3 @@ finalization
begin begin
SynSockCS.Free; SynSockCS.Free;
end; end;
{$ENDIF}

View File

@ -1,9 +1,9 @@
{==============================================================================| {==============================================================================|
| Project : Ararat Synapse | 001.001.001 | | Project : Ararat Synapse | 001.001.002 |
|==============================================================================| |==============================================================================|
| Content: Utils for FreePascal compatibility | | Content: Utils for FreePascal compatibility |
|==============================================================================| |==============================================================================|
| Copyright (c)1999-2007, Lukas Gebauer | | Copyright (c)1999-2010, Lukas Gebauer |
| All rights reserved. | | All rights reserved. |
| | | |
| Redistribution and use in source and binary forms, with or without | | Redistribution and use in source and binary forms, with or without |
@ -33,7 +33,7 @@
| DAMAGE. | | DAMAGE. |
|==============================================================================| |==============================================================================|
| The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).|
| Portions created by Lukas Gebauer are Copyright (c)2003-2007. | | Portions created by Lukas Gebauer are Copyright (c)2003-2010. |
| All Rights Reserved. | | All Rights Reserved. |
|==============================================================================| |==============================================================================|
| Contributor(s): | | Contributor(s): |
@ -48,6 +48,12 @@
{$MODE DELPHI} {$MODE DELPHI}
{$ENDIF} {$ENDIF}
{$H+} {$H+}
//old Delphi does not have MSWINDOWS define.
{$IFDEF WIN32}
{$IFNDEF MSWINDOWS}
{$DEFINE MSWINDOWS}
{$ENDIF}
{$ENDIF}
unit synafpc; unit synafpc;
@ -57,7 +63,7 @@ uses
{$IFDEF FPC} {$IFDEF FPC}
dynlibs, sysutils; dynlibs, sysutils;
{$ELSE} {$ELSE}
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
Windows; Windows;
{$ELSE} {$ELSE}
SysUtils; SysUtils;
@ -116,7 +122,7 @@ end;
procedure Sleep(milliseconds: Cardinal); procedure Sleep(milliseconds: Cardinal);
begin begin
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
{$IFDEF FPC} {$IFDEF FPC}
sysutils.sleep(milliseconds); sysutils.sleep(milliseconds);
{$ELSE} {$ELSE}

View File

@ -1,9 +1,9 @@
{==============================================================================| {==============================================================================|
| Project : Ararat Synapse | 001.001.000 | | Project : Ararat Synapse | 001.001.001 |
|==============================================================================| |==============================================================================|
| Content: ICONV support for Win32, Linux and .NET | | Content: ICONV support for Win32, Linux and .NET |
|==============================================================================| |==============================================================================|
| Copyright (c)2004-2008, Lukas Gebauer | | Copyright (c)2004-2010, Lukas Gebauer |
| All rights reserved. | | All rights reserved. |
| | | |
| Redistribution and use in source and binary forms, with or without | | Redistribution and use in source and binary forms, with or without |
@ -33,7 +33,7 @@
| DAMAGE. | | DAMAGE. |
|==============================================================================| |==============================================================================|
| The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).|
| Portions created by Lukas Gebauer are Copyright (c)2004-2008. | | Portions created by Lukas Gebauer are Copyright (c)2004-2010. |
| All Rights Reserved. | | All Rights Reserved. |
|==============================================================================| |==============================================================================|
| Contributor(s): | | Contributor(s): |
@ -46,6 +46,12 @@
{$MODE DELPHI} {$MODE DELPHI}
{$ENDIF} {$ENDIF}
{$H+} {$H+}
//old Delphi does not have MSWINDOWS define.
{$IFDEF WIN32}
{$IFNDEF MSWINDOWS}
{$DEFINE MSWINDOWS}
{$ENDIF}
{$ENDIF}
{:@abstract(LibIconv support) {:@abstract(LibIconv support)
@ -63,7 +69,7 @@ uses
System.Text, System.Text,
{$ENDIF} {$ENDIF}
synafpc, synafpc,
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
{$IFNDEF FPC} {$IFNDEF FPC}
Libc, Libc,
{$ENDIF} {$ENDIF}
@ -74,7 +80,7 @@ uses
const const
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
DLLIconvName = 'libiconv.so'; DLLIconvName = 'libiconv.so';
{$ELSE} {$ELSE}
DLLIconvName = 'iconv.dll'; DLLIconvName = 'iconv.dll';

View File

@ -1,9 +1,9 @@
{==============================================================================| {==============================================================================|
| Project : Ararat Synapse | 004.013.000 | | Project : Ararat Synapse | 004.014.000 |
|==============================================================================| |==============================================================================|
| Content: support procedures and functions | | Content: support procedures and functions |
|==============================================================================| |==============================================================================|
| Copyright (c)1999-2008, Lukas Gebauer | | Copyright (c)1999-2010, Lukas Gebauer |
| All rights reserved. | | All rights reserved. |
| | | |
| Redistribution and use in source and binary forms, with or without | | Redistribution and use in source and binary forms, with or without |
@ -33,7 +33,7 @@
| DAMAGE. | | DAMAGE. |
|==============================================================================| |==============================================================================|
| The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).|
| Portions created by Lukas Gebauer are Copyright (c) 1999-2008. | | Portions created by Lukas Gebauer are Copyright (c) 1999-2010. |
| Portions created by Hernan Sanchez are Copyright (c) 2000. | | Portions created by Hernan Sanchez are Copyright (c) 2000. |
| All Rights Reserved. | | All Rights Reserved. |
|==============================================================================| |==============================================================================|
@ -53,18 +53,25 @@
{$R-} {$R-}
{$H+} {$H+}
//old Delphi does not have MSWINDOWS define.
{$IFDEF WIN32}
{$IFNDEF MSWINDOWS}
{$DEFINE MSWINDOWS}
{$ENDIF}
{$ENDIF}
unit synautil; unit synautil;
interface interface
uses uses
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
Windows, Windows,
{$ELSE} {$ELSE}
{$IFDEF FPC} {$IFDEF FPC}
UnixUtil, Unix, BaseUnix, UnixUtil, Unix, BaseUnix,
{$ELSE} {$ELSE}
Libc, Libc,
{$ENDIF} {$ENDIF}
{$ENDIF} {$ENDIF}
{$IFDEF CIL} {$IFDEF CIL}
@ -349,7 +356,7 @@ var
{==============================================================================} {==============================================================================}
function TimeZoneBias: integer; function TimeZoneBias: integer;
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
{$IFNDEF FPC} {$IFNDEF FPC}
var var
t: TTime_T; t: TTime_T;
@ -700,7 +707,7 @@ end;
{==============================================================================} {==============================================================================}
function GetUTTime: TDateTime; function GetUTTime: TDateTime;
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
{$IFNDEF FPC} {$IFNDEF FPC}
var var
st: TSystemTime; st: TSystemTime;
@ -742,7 +749,7 @@ end;
{==============================================================================} {==============================================================================}
function SetUTTime(Newdt: TDateTime): Boolean; function SetUTTime(Newdt: TDateTime): Boolean;
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
{$IFNDEF FPC} {$IFNDEF FPC}
var var
st: TSystemTime; st: TSystemTime;
@ -795,7 +802,7 @@ end;
{==============================================================================} {==============================================================================}
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
function GetTick: LongWord; function GetTick: LongWord;
var var
Stamp: TTimeStamp; Stamp: TTimeStamp;
@ -1720,7 +1727,7 @@ end;
{==============================================================================} {==============================================================================}
function GetTempFile(const Dir, prefix: AnsiString): AnsiString; function GetTempFile(const Dir, prefix: AnsiString): AnsiString;
{$IFNDEF FPC} {$IFNDEF FPC}
{$IFDEF WIN32} {$IFDEF MSWINDOWS}
var var
Path: AnsiString; Path: AnsiString;
x: integer; x: integer;
@ -1730,7 +1737,7 @@ begin
{$IFDEF FPC} {$IFDEF FPC}
Result := GetTempFileName(Dir, Prefix); Result := GetTempFileName(Dir, Prefix);
{$ELSE} {$ELSE}
{$IFNDEF WIN32} {$IFNDEF MSWINDOWS}
Result := tempnam(Pointer(Dir), Pointer(prefix)); Result := tempnam(Pointer(Dir), Pointer(prefix));
{$ELSE} {$ELSE}
{$IFDEF CIL} {$IFDEF CIL}

View File

@ -1,9 +1,9 @@
{==============================================================================| {==============================================================================|
| Project : Ararat Synapse | 005.001.000 | | Project : Ararat Synapse | 005.002.000 |
|==============================================================================| |==============================================================================|
| Content: Socket Independent Platform Layer | | Content: Socket Independent Platform Layer |
|==============================================================================| |==============================================================================|
| Copyright (c)1999-2003, Lukas Gebauer | | Copyright (c)1999-2010, Lukas Gebauer |
| All rights reserved. | | All rights reserved. |
| | | |
| Redistribution and use in source and binary forms, with or without | | Redistribution and use in source and binary forms, with or without |
@ -33,7 +33,7 @@
| DAMAGE. | | DAMAGE. |
|==============================================================================| |==============================================================================|
| The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).| | The Initial Developer of the Original Code is Lukas Gebauer (Czech Republic).|
| Portions created by Lukas Gebauer are Copyright (c)2001-2003. | | Portions created by Lukas Gebauer are Copyright (c)2001-20010. |
| All Rights Reserved. | | All Rights Reserved. |
|==============================================================================| |==============================================================================|
| Contributor(s): | | Contributor(s): |
@ -48,20 +48,30 @@ unit synsock;
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
{$IFDEF CIL} //old Delphi does not have MSWINDOWS define.
{$I ssdotnet.pas}
{$ENDIF}
{$IFDEF WIN32} {$IFDEF WIN32}
{$I sswin32.pas} {$IFNDEF MSWINDOWS}
{$ELSE} {$DEFINE MSWINDOWS}
{$IFDEF FPC}
{$I ssfpc.pas}
{$ELSE}
{$I sslinux.pas}
{$ENDIF} {$ENDIF}
{$ENDIF} {$ENDIF}
{$IFDEF CIL}
{$I ssdotnet.pas}
{$ELSE}
{$IFDEF MSWINDOWS}
{$I sswin32.pas}
{$ELSE}
{$IFDEF WINCE}
{$I sswin32.pas} //not complete yet!
{$ELSE}
{$IFDEF FPC}
{$I ssfpc.pas}
{$ELSE}
{$I sslinux.pas}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
end. end.