Allright, I got an empty window to work with Phoenix using the SDLDevice example.
Step-by-step:
1. Download and install Fink from http://www.finkproject.org/
2. Install the sdl package through Fink (Open a terminal and type "fink install sdl" (without ") and enter your password.)
3. Download and extract the Phoenix file Andreaz posted in this thread.
4. Apply the dglOpenGL.pas fixes from http://delphigl.com/forum/viewtopic....&highlight=mac or download the latest GLFW.pas from either this thread or my blog and replace the dglOpenGL.pas unit.
5. Rename phxOpenGL.SDL.pas to phxOpenGL_SDL.pas (in /inc). Open the unit and change "unit phxOpenGL.SDL" to "unit phxOpenGL_SDL".
6. Open the DeviceSDL.dpr with Lazaras (it is located in /demos/13_DeviceSDL). I used the latest daily Lazarus and FreePascal snapshots.
7. Add the following lines to the DeviceSDL.dpr (best between progam and uses):
[pascal]
{$IFDEF FPC}
{$IFDEF DARWIN}
{$linklib gcc}
{$linklib SDLmain}
{$ENDIF}
{$ENDIF}
[/pascal]
8. Remove any references to phxGraphicEx or phxFreeImage (both in the dpr-File and in Main.pas)
9. Remove (or just add // in front of the line) any reference to Image and Font.
10. Open "Project | Compiler settings" and click on "Linker" on the left. Click on the checkbox in settings and add the following line:
Code:
-L/usr/lib -L/usr/X11R6/lib -L/sw/lib -lSDL
11. Click on Run and the project compiles and you can see an empty window. Yeah.

Additional notes:
- You can link against the SDL framework which is better way to go, because deploying the application is much easier that way, but for some reason when linked against the framework the application produces AV when it's being closed.
- The generated executable is about 20 MB big. Using strip and upx shrinks the executable to about 1,2 MB.

Using FreeImage doesn't work because there are too many dependencies to Windows. So I removed the reference to the windows unit and implemented PRGBQuad, PBITMAPINFOHEADER and PBITMAPINFO as suggested by FreeImage.h
When try to compile with this changes, following errors occur:
[pascal]
phxFreeImage.pas:405:junk `@4$stub' after expression
phxFreeImage.pas:741:junk `@4$stub' after expression
phxFreeImage.pas:746:junk `@4$stub' after expression
phxFreeImage.pas:751:junk `@4$stub' after expression
phxFreeImage.pas:756:junk `@4$stub' after expression
phxFreeImage.pas:762:junk `@4$stub' after expression
phxFreeImage.pas:766:junk `@4$stub' after expression
phxFreeImage.pas:803:junk `@4$stub' after expression
phxFreeImage.pas:900:junk `@4$stub' after expression
phxFreeImage.pas:989:junk `@4$stub' after expression
phxFreeImage.pas:1111:junk `@24$stub' after expression
phxFreeImage.pas:1118:junk `@4$stub' after expression
phxFreeImage.pas:1124:junk `@4$stub' after expression
phxFreeImage.pas:1194:junk `@4$stub' after expression
phxFreeImage.pas:1212:junk `@24$stub' after expression
phxFreeImage.pas:1219:junk `@4$stub' after expression
phxFreeImage.pas:1225:junk `@4$stub' after expression
phxFreeImage.pas:1290:junk `@4$stub' after expression
phxFreeImage.pas:1308:junk `@24$stub' after expression
phxFreeImage.pas:1315:junk `@4$stub' after expression
phxFreeImage.pas:1321:junk `@4$stub' after expression
phxFreeImage.pas:1376:junk `@4$stub' after expression
phxFreeImage.pas:1449:junk `@12$stub' after expression
phxFreeImage.pas:1461:junk `@4$stub' after expression
phxFreeImage.pas:1471:junk `@4$stub' after expression
phxFreeImage.pas:1510:junk `@16$stub' after expression
phxFreeImage.pas:1524:junk `@4$stub' after expression
phxFreeImage.pas:1609:junk `@4$stub' after expression
phxFreeImage.pas:1635:junk `@4$stub' after expression
phxFreeImage.pas:1677:junk `@20$stub' after expression
phxFreeImage.pas:1681:junk `@4$stub' after expression
phxFreeImage.pas:1752:junk `@4$stub' after expression
phxFreeImage.pas:1756:junk `@4$stub' after expression
phxFreeImage.pas:2022:junk `@16$stub' after expression
phxFreeImage.pas:2035:junk `@4$stub' after expression
phxFreeImage.pas:2103:junk `@20$stub' after expression
phxFreeImage.pas:2107:junk `@4$stub' after expression
phxFreeImage.pas:2384:junk `@16$stub' after expression
phxFreeImage.pas:2397:junk `@4$stub' after expression
phxFreeImage.pas:2465:junk `@20$stub' after expression
phxFreeImage.pas:2469:junk `@4$stub' after expression
phxFreeImage.pas:2746:junk `@16$stub' after expression
phxFreeImage.pas:2759:junk `@4$stub' after expression
phxFreeImage.pas:2827:junk `@20$stub' after expression
phxFreeImage.pas:2831:junk `@4$stub' after expression
phxFreeImage.pas:3108:junk `@16$stub' after expression
phxFreeImage.pas:3121:junk `@4$stub' after expression
phxFreeImage.pas:3189:junk `@20$stub' after expression
phxFreeImage.pas:3193:junk `@4$stub' after expression
phxFreeImage.pas:4211:invalid character '_' in mnemonic
phxFreeImage.pas:4212:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4251:invalid character '_' in mnemonic
phxFreeImage.pas:4252:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4261:invalid character '_' in mnemonic
phxFreeImage.pas:4262:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4271:invalid character '_' in mnemonic
phxFreeImage.pas:4272:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4281:invalid character '_' in mnemonic
phxFreeImage.pas:4282:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4291:invalid character '_' in mnemonic
phxFreeImage.pas:4292:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4301:invalid character '_' in mnemonic
phxFreeImage.pas:4302:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4321:invalid character '_' in mnemonic
phxFreeImage.pas:4322:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4341:invalid character '_' in mnemonic
phxFreeImage.pas:4342:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4351:invalid character '_' in mnemonic
phxFreeImage.pas:4352:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4361:invalid character '_' in mnemonic
phxFreeImage.pas:4362:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4371:invalid character '_' in mnemonic
phxFreeImage.pas:4372:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4421:invalid character '_' in mnemonic
phxFreeImage.pas:4422:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4441:invalid character '_' in mnemonic
phxFreeImage.pas:4442:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4451:invalid character '_' in mnemonic
phxFreeImage.pas:4452:Rest of line ignored. 1st junk character valued 64 (@).
phxFreeImage.pas:4471:invalid character '_' in mnemonic
phxFreeImage.pas:4472:Rest of line ignored. 1st junk character valued 64 (@).
../../inc/phxFreeImage.pas(14,4 Error: Error while assembling exitcode 1
../../inc/phxFreeImage.pas(14,4 Fatal: There were 2 errors compiling module, stopping
[/pascal]

I found a reference to phxSDL_image, but I couldn't find that unit in any Phoenix release. Is there a way to include SDL_image instead of FreeImage or GraphicEx?