Compile problems on Mac OS X
Ron Goldman
rgoldman@cs.stanford.edu
Sun Jun 1 23:01:01 2003
When you compile rfbproto.c it includes the hextile.c file 3 times,
each time with the macro BPP defined differently (BPP = 8, 16 or 32).
hextile.c then defines a macro GET_PIXEL so that it expands as
GET_PIXEL8, GET_PIXEL16 or GET_PIXEL32, which is normally finally
expanded with the values defined in rfbproto.c.
On the Mac for some reason that last expansion is not happening, so I
am suggesting manually expanding the GET_PIXEL macro in hextile.c the
one place that it is used. Since you need to do this for all three BPP
values you need to create 3 versions of hextile.c.
If you look at rfbproto.c you'll see the 3 places it includes
hextile.c: change those.
In hextile.c, search for the sole "call" to GET_PIXEL in the code and
change that.
So in hextile8.c you'll have " ... for (i = 0; i < nSubrects; i++) {
GETPIXEL8(fg,ptr); ..."
Hope that makes it clear enough.
-- Ron --
On Sunday, June 1, 2003, at 02:38 PM, Jessica Blank wrote:
> Hi there! Finally, a real response. OK, pardon my ignorance, but I am
> not
> familiar with the issues surrounding preprocessor macros. I do not see
> exactly what you are asking me to do? Replace the macros with ... what?
>
> I was thinking earlier that if there was a way I could simply
> reimplement
> GET_PIXEL8, etc. as FUNCTONS rather than macros...
>
> Could you clarify a bit? What exactly would forking off three versions
> of
> hextile.c do?
>
> On Sun, 1 Jun 2003, Ron Goldman wrote:
>
>> Try compiling rfbproto.c with the -E switch to view just the output
>> from the preprocessor. Since GET_PIXEL8, etc. are macros if you see
>> them in the output file then the problem is that the preprocessor is
>> not expanding them correctly for some reason.
>>
>> A very crude hack in that case is to just make 3 copies of the file
>> hextile.c (hextile8.c, hextile16.c & hextile32.c) and edit them so
>> that
>> the call to GET_PIXEL is GET_PIXEL8, 16 or 32. Then edit rfbproto.c so
>> the 3 includes of hextile.c use the modified files.
>>
>> Good luck.
>>
>> -- Ron --
>>
>> p.s. personally I use tightvnc and find that the Java applet turned
>> into a Mac OS X app is plenty fast enough, though it does take a while
>> to start up.
>>
>
> J e s s i c a L e a h B l a n k