From: Shawn H. <sh...@ta...> - 2000-11-19 01:17:46
|
Kendall Bennett <Ken...@sc...> writes: > Actually getting Watcom to work with the external ASM code (once you > have it built with gas ;-) is not really that complicated. All you need > to do is decorate the function prototypes for all the external ASM > functions with the '__cdecl' type modifier to tell the compiler that > the C calling conventions are being used. I think I tried that at one point, but had some trouble with bits of Allegro that call libc code: if you compile Allegro using switches that select C calling convention by default, but programs link with the Watcom convention version of libc, Allegro calls to libc routines will fail, but if you compile Allegro using default calling convention and rely on __cdecl to override specific functions, it falls over horribly if you ever miss a routine out. The AL_FUNC() macro from alconfig.h can easily be overridden in alwatcom.h to add this modifier, but not all the internal routines are prototyped in headers, so someone would have to do a very boring job of going through and fixing anywhere that this is missing. > I want to keep them separate for the above reasons, but contribute code > that can compile in the support for Nucleus (ifdef'ed out for normal > Allegro builds) if the user desires to do this. Hence normally it won't > be a problem and we can distribute versions of Allegro to our customers > that can support this. I really don't like the idea of the core Allegro distribution including code that is #ifdefed out by default, and that most people will not be able to compile. If this code is only going to be useful for a small number of people, I think it should be kept as a separate package that can then only be downloaded by those who need it. > > This is different from the situation with other proprietary systems > > such as DirectX, because there at least the API manuals are publicly > > available, and all the relevant headers can be downloaded by anyone > > who wants them. > > Ahh, but you do realise that you cannot use any of the DirectX header > files to create a competing DirectX library, right? But anyone who wants to improve the DirectX code in Allegro, or use bits of it in other DirectX programs of their own, is totally free to do so, and can get full information about how DirectX works in order to understand what they are doing. It's actually quite debatable whether the clauses that prevent using these headers to make competing implementations would stand up in court, anyway. Microsoft would certainly like everyone to think so, but as long as you only used information from the headers rather than copying whole files, that is totally legal in many countries. Witness the fact that the Wine project has reimplemented almost all the Windows API's, without any legal challenges. > The Nucleus header files and source code to load and use Nucleus > drivers have been freely available as part of our SciTech MGL library > for a long time now. The code is under the free SciTech Nucleus > license, which only restricts the use of the headers to create > competing products to SciTech Display Doctor. I find this confusing, though. The MGL license is already quite complicated to follow, let alone the fact that not all files in the distribution are covered by it: these headers are under the Nucleus license, the Mesa code is under GPL, etc. Mixing licenses like this is no problem for people who just want to make programs using the library, as long as the way they use it is ok under the terms of all the various licenses, but it gets terribly confusing as soon as someone wants to do other things with the source code. I think the ability to modify, reuse, and learn from code is at least as important as just being able to link with it, which means keeping all of Allegro under a single, easy to understand license. -- Shawn Hargreaves - sh...@ta... - http://www.talula.demon.co.uk/ "A binary is barely software: it's more like hardware on a floppy disk." >From <all...@ca...> Sun Nov 19 06:23:27 2000 Received: from mta02.onolab.com [62.42.230.132] by canvaslink.com with ESMTP (SMTPD32-6.00) id A82E100D0160; Sun, 19 Nov 2000 06:23:26 -0500 Received: from compiler.linux.es ([62.42.48.19]) by mta02.onolab.com (Netscape Messaging Server 4.15) with SMTP id G49RKW04.H5M for <al...@ca...>; Sun, 19 Nov 2000 12:22:08 +0100 Received: by compiler.linux.es (Postfix, from userid 1000) id B6CD46D136; Sun, 19 Nov 2000 11:39:01 +0100 (CET) Date: Sun, 19 Nov 2000 11:39:01 +0100 From: Santiago Romero <com...@es...> To: al...@ca... Message-ID: <200...@es...> References: <Pin...@pe...> <001f01c0517e$f460fd20$0101bfbf@f9c6f0> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i In-Reply-To: <001f01c0517e$f460fd20$0101bfbf@f9c6f0>; from ma...@th... on Sat, Nov 18, 2000 at 04:45:25PM -0000 X-Sender: sr...@es... Subject: Re: [AL] Linux Allegro = Nifty! Precedence: bulk Sender: all...@ca... Reply-To: al...@ca... X-UIDL: 275946635 Status: O Content-Length: 775 Lines: 17 El sáb, 18 de nov de 2000, a las 04:45:25 -0000, Matthew Smith dijo: > I'm still impressed at having my DOS program running in a Windows box :) which compiler did you use? I downloaded mingw32 and I'm not able to compile code.... ¿any URL? :? Can I use Borland C++ 3.x compiler to build windows+directx programs with allegro? CU and thx a lot! -- El único interfaz intuitivo es el pezón, todos los demás son aprendidos. _-----------------------------------------------------_ | NoP / Compiler -- com...@es... | |-------------------------------------------------------| | POWERED BY - Linux Debian 2.2 - Reg. User #74.821 | | http://www.escomposlinux.org/sromero | ~-----------------------------------------------------~ >From <all...@ca...> Sun Nov 19 10:10:17 2000 Received: from tsmtp1.mail.isp [195.235.113.141] by canvaslink.com with ESMTP (SMTPD32-6.00) id AD58A010164; Sun, 19 Nov 2000 10:10:16 -0500 Received: from ros.teleline.es ([62.37.156.132]) by tsmtp1.mail.isp (Netscape Messaging Server 4.15) with ESMTP id G4A21R05.35C for <al...@ca...>; Sun, 19 Nov 2000 16:08:16 +0100 Message-Id: <5.0...@po...> X-Sender: icr...@po... X-Mailer: QUALCOMM Windows Eudora Version 5.0 Date: Sun, 19 Nov 2000 16:08:13 +0100 To: al...@ca... From: Isaac Cruz <icr...@te...> In-Reply-To: <200...@es...> References: <001f01c0517e$f460fd20$0101bfbf@f9c6f0> <Pin...@pe...> <001f01c0517e$f460fd20$0101bfbf@f9c6f0> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1"; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [AL] Linux Allegro = Nifty! Precedence: bulk Sender: all...@ca... Reply-To: al...@ca... X-UIDL: 275946636 Status: O Content-Length: 487 Lines: 14 > which compiler did you use? I downloaded mingw32 and I'm not able > to compile code.... =BFany URL? :? Can I use Borland C++ 3.x compiler > to build windows+directx programs with allegro? To build in windows you can choose mingw32 (maybe you miss something?) or=20 MS Visual C 4.2 or above. Another alternative is RSXNT (or something like=20 that), but it's very difficult to configure >-- >El =FAnico interfaz intuitivo es el pez=F3n, >todos los dem=E1s son aprendidos. xDDDDD |