Commit f3306e9e authored by dscho's avatar dscho

Makefile cleanup, some special options for OSX

parent 8d8429b4
...@@ -9,8 +9,8 @@ VNCSERVERLIB=-L. -lvncserver -L/usr/local/lib -lz -ljpeg ...@@ -9,8 +9,8 @@ VNCSERVERLIB=-L. -lvncserver -L/usr/local/lib -lz -ljpeg
# The code for 3 Bytes/Pixel is not very efficient! # The code for 3 Bytes/Pixel is not very efficient!
FLAG24 = -DALLOW24BPP FLAG24 = -DALLOW24BPP
OPTFLAGS=-g # -Wall #OPTFLAGS=-g # -Wall
#OPTFLAGS=-O2 -Wall OPTFLAGS=-O2 -Wall
CFLAGS=$(OPTFLAGS) $(PTHREADDEF) $(FLAG24) $(INCLUDES) CFLAGS=$(OPTFLAGS) $(PTHREADDEF) $(FLAG24) $(INCLUDES)
RANLIB=ranlib RANLIB=ranlib
...@@ -59,7 +59,9 @@ OSXvnc-server: mac.o libvncserver.a ...@@ -59,7 +59,9 @@ OSXvnc-server: mac.o libvncserver.a
x11vnc: x11vnc.o libvncserver.a x11vnc: x11vnc.o libvncserver.a
$(CC) -o x11vnc x11vnc.o libvncserver.a -lz -ljpeg $(XLIBS) $(CC) -o x11vnc x11vnc.o libvncserver.a -lz -ljpeg $(XLIBS)
# $(CC) -o x11vnc x11vnc.o libvncserver.a /usr/lib/libz.a /usr/lib/libjpeg.a $(XLIBS)
x11vnc_static: x11vnc.o libvncserver.a
$(CC) -o x11vnc_static x11vnc.o libvncserver.a /usr/lib/libz.a /usr/lib/libjpeg.a $(XLIBS)
#$(LIBS) $(XLIBS) #$(LIBS) $(XLIBS)
storepasswd: storepasswd.o d3des.o vncauth.o storepasswd: storepasswd.o d3des.o vncauth.o
......
...@@ -37,6 +37,10 @@ ...@@ -37,6 +37,10 @@
rfbScreenInfoPtr rfbScreen; rfbScreenInfoPtr rfbScreen;
/* some variables to enable special behaviour */
int startTime = -1, maxSecsToConnect = 0;
Bool disconnectAfterFirstClient = True;
/* Where do I get the "official" list of Mac key codes? /* Where do I get the "official" list of Mac key codes?
Ripped these out of a Mac II emulator called Basilisk II Ripped these out of a Mac II emulator called Basilisk II
that I found on the net. */ that I found on the net. */
...@@ -283,18 +287,45 @@ ScreenInit(int argc, char**argv) ...@@ -283,18 +287,45 @@ ScreenInit(int argc, char**argv)
static void static void
refreshCallback(CGRectCount count, const CGRect *rectArray, void *ignore) refreshCallback(CGRectCount count, const CGRect *rectArray, void *ignore)
{ {
int i; int i;
for (i = 0; i < count; i++) if(startTime>0 && time()>startTime+maxSecsToConnect)
rfbMarkRectAsModified(rfbScreen, exit(0);
rectArray[i].origin.x,rectArray[i].origin.y,
rectArray[i].origin.x + rectArray[i].size.width, for (i = 0; i < count; i++)
rectArray[i].origin.y + rectArray[i].size.height); rfbMarkRectAsModified(rfbScreen,
rectArray[i].origin.x,rectArray[i].origin.y,
rectArray[i].origin.x + rectArray[i].size.width,
rectArray[i].origin.y + rectArray[i].size.height);
}
void clientGone(rfbClientPtr cl)
{
exit(0);
}
void newClient(rfbClientPtr cl)
{
if(startTime>0 && time()>startTime+maxSecsToConnect)
exit(0);
if(disconnectAfterFirstClient)
cl->clientGoneHook = clientGone;
} }
int main(int argc,char *argv[]) int main(int argc,char *argv[])
{ {
for(i=argc-1;i>0;i--)
if(i<argc-1 && strcmp(argv[i],"-wait4client")==0) {
maxSecsToConnect = atoi(argv[i+1])/1000;
startTime = time();
} else if(strcmp(argv[i],"-runforever")==0) {
disconnectAfterFirstClient = FALSE;
}
ScreenInit(argc,argv); ScreenInit(argc,argv);
rfbScreen->newClientHook = newClient;
/* enter background event loop */ /* enter background event loop */
rfbRunEventLoop(rfbScreen,40,TRUE); rfbRunEventLoop(rfbScreen,40,TRUE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment