x11 graphics

svn path=/trunk/boinc/; revision=602
This commit is contained in:
Eric Heien 2002-11-12 20:59:00 +00:00
parent 4e21bcc807
commit 85ecd070e2
9 changed files with 354 additions and 62 deletions

View File

@ -56,6 +56,10 @@ HANDLE hGlobalDrawEvent;
#include <gl\glu.h> // Header File For The GLu32 Library
#include <gl\glaux.h> // Header File For The Glaux Library
#endif
#ifdef HAVE_GL_LIB
#include <GL/gl.h>
#endif
#endif
#include "parse.h"

View File

@ -32,6 +32,11 @@ DWORD WINAPI win_graphics_event_loop( LPVOID duff );
#include <gl\glu.h> // Header File For The GLu32 Library
#include <gl\glaux.h> // Header File For The Glaux Library
#endif
#ifdef HAVE_GL_LIB
#include <GL/gl.h>
#include "x_opengl.h"
#endif
#endif
#include "graphics_api.h"
@ -39,10 +44,17 @@ DWORD WINAPI win_graphics_event_loop( LPVOID duff );
#include "parse.h"
#include <string.h>
#include <stdarg.h>
#ifdef __APPLE_CC__
#include "mac_app_opengl.h"
#endif
#ifdef HAVE_PTHREAD
#include <pthread.h>
#endif
extern GRAPHICS_INFO gi;
int boinc_init_opengl() {
@ -52,6 +64,7 @@ int boinc_init_opengl() {
HANDLE hThread;
// Create the graphics thread, passing it the graphics info
// TODO: is it better to use _beginthreadex here?
hThread = CreateThread(
NULL, 0, win_graphics_event_loop, &gi, CREATE_SUSPENDED, &threadId
);
@ -82,6 +95,18 @@ int boinc_init_opengl() {
YieldToAnyThread();
#endif
#ifdef _PTHREAD_H
pthread_t graphics_thread;
pthread_attr_t graphics_thread_attr;
int retval;
pthread_attr_init( &graphics_thread_attr );
retval = pthread_create( &graphics_thread, &graphics_thread_attr, p_graphics_loop, &gi );
if (retval) return ERR_THREAD;
pthread_attr_destroy( &graphics_thread_attr );
#endif
#endif
return 0;

134
api/x_opengl.C Normal file
View File

@ -0,0 +1,134 @@
#include "x_opengl.h"
#include <stdio.h>
#include <GL/glx.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include "graphics_api.h"
void process_input(Display *dpy);
void refresh( void );
int DrawGLScene(GLvoid);
GLvoid buildFont(GLvoid);
extern int ok_to_draw;
int win_open;
GLuint main_font;
Display *dpy;
Window win;
static Bool WaitForNotify(Display *d,XEvent *e,char *arg) {
return(e->type == MapNotify) && (e->xmap.window == (Window)arg);
}
void *p_graphics_loop( void *duff ) {
XVisualInfo *vi;
Colormap cmap;
XSetWindowAttributes swa;
GLXContext cx;
XEvent event;
GRAPHICS_INFO *gfx;
int attributeList[] = {GLX_RGBA, GLX_DOUBLEBUFFER,
GLX_GREEN_SIZE, 4, GLX_BLUE_SIZE, 4, GLX_DEPTH_SIZE, 16, None};
gfx = (GRAPHICS_INFO *)duff;
/* get a connection */
dpy = XOpenDisplay(0);
if (dpy == NULL) {
printf("couldn't open display\n");
return 0;
}
/* get an appropriate visual */
vi = glXChooseVisual(dpy,DefaultScreen(dpy),attributeList);
if (vi == NULL) {
printf("couldn't find the visual \n");
return 0;
}
/* create a GLX context */
if (!(cx = glXCreateContext(dpy,vi,0,GL_FALSE))) {
fprintf(stderr, "glXGetContext failed!\n");
return 0;
}
/* create color map */
if (!(cmap = XCreateColormap(dpy,RootWindow(dpy,vi->screen),
vi->visual,AllocNone)))
{
fprintf(stderr, "XCreateColormap failed!\n");
return 0;
}
/* create window */
swa.colormap = cmap;
swa.border_pixel = 0;
swa.event_mask = StructureNotifyMask;
win = XCreateWindow(dpy,RootWindow(dpy,vi->screen),0,0,gfx->xsize,gfx->ysize,0,vi->depth, InputOutput,vi->visual,CWBorderPixel|CWColormap|CWEventMask, &swa);
XMapWindow(dpy,win);
XIfEvent(dpy,&event,WaitForNotify,(char*)win);
if (!(glXMakeCurrent(dpy,win,cx)))
{
fprintf(stderr, "glXMakeCurrent failed (window)!\n");
return 0;
}
win_open = true;
buildFont();
while(1) {
process_input(dpy);
}
return NULL;
}
// How do we prevent broken pipes and broken connection error messages?
//
void process_input(Display *dpy) {
XEvent event;
if( XPending(dpy) ) {
do {
XNextEvent(dpy, &event);
switch(event.type) {
case DestroyNotify:
win_open = false;
break;
default:
break;
}
} while (XPending(dpy));
}
if (ok_to_draw && win_open) {
DrawGLScene();
glXSwapBuffers(dpy,win);
ok_to_draw = 0;
}
}
GLvoid buildFont(GLvoid)
{
XFontStruct *font;
main_font = glGenLists(256); /* storage for 256 characters */
/* load a font with a specific name in "Host Portable Character Encoding" */
/*font = XLoadQueryFont(dpy,
"-*-helvetica-bold-r-normal--24-*-*-*-p-*-iso8859-1");*/
/* this really *should* be available on every X Window System...*/
font = XLoadQueryFont(dpy, "fixed");
if (font == NULL)
{
printf("Problems loading fonts :-(\n");
return; // exit(1);
}
/* build 256 display lists out of our font */
glXUseXFont(font->fid, 0, 256, main_font);
/* free our XFontStruct since we have our display lists */
XFreeFont(dpy, font);
}

2
api/x_opengl.h Normal file
View File

@ -0,0 +1,2 @@
void *p_graphics_loop( void * );

View File

@ -13,27 +13,44 @@ CFLAGS = -g -Wall @DEFS@ \
CC = @CC@ $(CFLAGS) -I @top_srcdir@/api -I@top_srcdir@/lib
LIBS = ../api/boinc_api.o ../api/graphics_api.o ../api/mfile.o ../lib/parse.o ../lib/filesys.o ../lib/util.o
APIOBJS = ../api/boinc_api.o ../api/graphics_api.o
X11APIOBJS = ../api/boinc_api.x11.o ../api/graphics_api.x11.o ../api/x_opengl.x11.o
LIBS = ../api/mfile.o ../lib/parse.o ../lib/filesys.o ../lib/util.o
CLIBS = @LIBS@
XLIBS = -lGL -lGLU -lpthread
APPS = upper_case concat 1sec
.C.o:
$(CC) -c -o $*.o $<
.c.o:
$(CC) -c -o $*.o $<
upper_case.x11.o:
$(CC) -DBOINC_APP_GRAPHICS -c -o $*.o upper_case.C
../api/x_opengl.x11.o:
$(CC) -DBOINC_APP_GRAPHICS -c -o $*.o ../api/x_opengl.C
../api/boinc_api.x11.o:
$(CC) -DBOINC_APP_GRAPHICS -c -o $*.o ../api/boinc_api.C
../api/graphics_api.x11.o:
$(CC) -DBOINC_APP_GRAPHICS -c -o $*.o ../api/graphics_api.C
all: $(APPS)
upper_case_x11: upper_case.x11.o $(X11APIOBJS)
$(CC) upper_case.x11.o $(X11APIOBJS) $(LIBS) $(CLIBS) $(XLIBS) -lm -o upper_case_x11
upper_case: upper_case.o
$(CC) upper_case.o $(LIBS) $(CLIBS) -lm -o upper_case
$(CC) upper_case.o $(APIOBJS) $(LIBS) $(CLIBS) -lm -o upper_case
concat: concat.o
$(CC) concat.o $(LIBS) $(CLIBS) -lm -o concat
$(CC) concat.o $(APIOBJS) $(LIBS) $(CLIBS) -lm -o concat
1sec: 1sec.o
$(CC) 1sec.o $(LIBS) $(CLIBS) -lm -o 1sec
$(CC) 1sec.o $(APIOBJS) $(LIBS) $(CLIBS) -lm -o 1sec
install: all
-mkdir -p $(INSTALL_DIR)/apps
@ -45,7 +62,7 @@ uninstall:
$(RM) -r $(INSTALL_DIR)/apps
clean:
rm -f *.o $(APPS) dependencies
rm -f *.o $(APPS) $(X11APIOBJS) dependencies
dependencies: @srcdir@/*.C
$(CC) -M @srcdir@/*.C > dependencies

View File

@ -44,13 +44,15 @@
#include <OpenGL/glu.h>
#include "mac_carbon_gl.h"
#endif
#ifdef _WIN32
#elif _WIN32
#include <windows.h>
#include <gl\gl.h> // Header File For The OpenGL32 Library
#include <gl\glu.h> // Header File For The GLu32 Library
#include <gl\glaux.h> // Header File For The Glaux Library
#elif HAVE_GL_LIB
#include <GL/glx.h>
#include <GL/gl.h>
#include <GL/glu.h>
#endif
bool app_render(int xs, int ys, double time_of_day);
@ -258,7 +260,7 @@ int DrawGLScene(GLvoid) // Here's Where We Do All The Drawing
glRasterPos2f(-0.9, 0.7);
glPrint(main_font, "CPU Time: %f", uc_aid.wu_cpu_time);
return TRUE; // Everything Went OK
return true; // Everything Went OK
}
#endif

View File

@ -2385,3 +2385,19 @@ David Nov 9 2002
util.inc
test/
test_uc.php
Eric Nov 12, 2002
- X11 graphics support added
- upper_case_x11 target added
- configure now checks for pthread, gl libraries
configure
configure.in
api/
boinc_api.C
graphics_api.C
x_opengl.C,h (added)
apps/
upper_case.C
Makefile.in

194
configure vendored
View File

@ -1077,18 +1077,104 @@ else
echo "$ac_t""no" 1>&6
fi
echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6
echo "configure:1082: checking for pthread_mutex_init in -lpthread" >&5
ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
LIBS="-lpthread $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1090 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char pthread_mutex_init();
int main() {
pthread_mutex_init()
; return 0; }
EOF
if { (eval echo configure:1101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define HAVE_PTHREAD 1
EOF
else
echo "$ac_t""no" 1>&6
fi
echo $ac_n "checking for glCallList in -lGL""... $ac_c" 1>&6
echo "configure:1125: checking for glCallList in -lGL" >&5
ac_lib_var=`echo GL'_'glCallList | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
LIBS="-lGL $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1133 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char glCallList();
int main() {
glCallList()
; return 0; }
EOF
if { (eval echo configure:1144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define HAVE_GL_LIB 1
EOF
else
echo "$ac_t""no" 1>&6
fi
ac_header_dirent=no
for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
echo "configure:1087: checking for $ac_hdr that defines DIR" >&5
echo "configure:1173: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1092 "configure"
#line 1178 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@ -1096,7 +1182,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
if { (eval echo configure:1100: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1186: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@ -1121,7 +1207,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
echo "configure:1125: checking for opendir in -ldir" >&5
echo "configure:1211: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -1129,7 +1215,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1133 "configure"
#line 1219 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -1140,7 +1226,7 @@ int main() {
opendir()
; return 0; }
EOF
if { (eval echo configure:1144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -1162,7 +1248,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
echo "configure:1166: checking for opendir in -lx" >&5
echo "configure:1252: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -1170,7 +1256,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1174 "configure"
#line 1260 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -1181,7 +1267,7 @@ int main() {
opendir()
; return 0; }
EOF
if { (eval echo configure:1185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -1204,7 +1290,7 @@ fi
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
echo "configure:1208: checking how to run the C preprocessor" >&5
echo "configure:1294: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@ -1219,13 +1305,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
#line 1223 "configure"
#line 1309 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1315: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@ -1236,13 +1322,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
#line 1240 "configure"
#line 1326 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1332: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@ -1253,13 +1339,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
#line 1257 "configure"
#line 1343 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1263: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1349: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@ -1284,12 +1370,12 @@ fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
echo "configure:1288: checking for ANSI C header files" >&5
echo "configure:1374: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1293 "configure"
#line 1379 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@ -1297,7 +1383,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1301: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1387: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -1314,7 +1400,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
#line 1318 "configure"
#line 1404 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@ -1332,7 +1418,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
#line 1336 "configure"
#line 1422 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@ -1353,7 +1439,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
#line 1357 "configure"
#line 1443 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@ -1364,7 +1450,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
if { (eval echo configure:1368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:1454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@ -1388,12 +1474,12 @@ EOF
fi
echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
echo "configure:1392: checking for sys/wait.h that is POSIX.1 compatible" >&5
echo "configure:1478: checking for sys/wait.h that is POSIX.1 compatible" >&5
if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1397 "configure"
#line 1483 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
@ -1409,7 +1495,7 @@ wait (&s);
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
; return 0; }
EOF
if { (eval echo configure:1413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1499: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_sys_wait_h=yes
else
@ -1433,17 +1519,17 @@ for ac_hdr in fcntl.h malloc.h strings.h sys/time.h unistd.h sys/systeminfo.h sy
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:1437: checking for $ac_hdr" >&5
echo "configure:1523: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1442 "configure"
#line 1528 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1533: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -1473,17 +1559,17 @@ for ac_hdr in mysql/include/mysql_com.h mysql/mysql_com.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:1477: checking for $ac_hdr" >&5
echo "configure:1563: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1482 "configure"
#line 1568 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1487: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -1511,12 +1597,12 @@ done
echo $ac_n "checking for working const""... $ac_c" 1>&6
echo "configure:1515: checking for working const" >&5
echo "configure:1601: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1520 "configure"
#line 1606 "configure"
#include "confdefs.h"
int main() {
@ -1565,7 +1651,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
if { (eval echo configure:1569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1655: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@ -1586,12 +1672,12 @@ EOF
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
echo "configure:1590: checking whether time.h and sys/time.h may both be included" >&5
echo "configure:1676: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1595 "configure"
#line 1681 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@ -1600,7 +1686,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
if { (eval echo configure:1604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@ -1623,13 +1709,13 @@ fi
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
echo "configure:1627: checking whether ${CC-cc} needs -traditional" >&5
echo "configure:1713: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
#line 1633 "configure"
#line 1719 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@ -1647,7 +1733,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
#line 1651 "configure"
#line 1737 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@ -1669,12 +1755,12 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
fi
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
echo "configure:1673: checking for vprintf" >&5
echo "configure:1759: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1678 "configure"
#line 1764 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
@ -1697,7 +1783,7 @@ vprintf();
; return 0; }
EOF
if { (eval echo configure:1701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
@ -1721,12 +1807,12 @@ fi
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
echo "configure:1725: checking for _doprnt" >&5
echo "configure:1811: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1730 "configure"
#line 1816 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
@ -1749,7 +1835,7 @@ _doprnt();
; return 0; }
EOF
if { (eval echo configure:1753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
@ -1774,7 +1860,7 @@ fi
fi
echo $ac_n "checking for wait3 that fills in rusage""... $ac_c" 1>&6
echo "configure:1778: checking for wait3 that fills in rusage" >&5
echo "configure:1864: checking for wait3 that fills in rusage" >&5
if eval "test \"`echo '$''{'ac_cv_func_wait3_rusage'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -1782,7 +1868,7 @@ else
ac_cv_func_wait3_rusage=no
else
cat > conftest.$ac_ext <<EOF
#line 1786 "configure"
#line 1872 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@ -1802,6 +1888,8 @@ main() {
r.ru_majflt = r.ru_minflt = 0;
switch (fork()) {
case 0: /* Child. */
/* Unless we actually _do_ something, the kernel sometimes doesn't chalk up any system time to this process. */
if(fork()) { i = 123; wait(NULL); } else { i = 234; exit(0); }
sleep(1); /* Give up the CPU. */
_exit(0);
case -1: _exit(0); /* What can we do? */
@ -1813,7 +1901,7 @@ main() {
}
}
EOF
if { (eval echo configure:1817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:1905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_wait3_rusage=yes
else
@ -1838,12 +1926,12 @@ fi
for ac_func in gethostname gettimeofday mkdir select socket strstr uname
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:1842: checking for $ac_func" >&5
echo "configure:1930: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1847 "configure"
#line 1935 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -1866,7 +1954,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:1870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:1958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else

View File

@ -20,6 +20,10 @@ dnl Replace `main' with a function in -lstdc:
AC_CHECK_LIB(stdc, main)
dnl Replace `main' with a function in -lz:
AC_CHECK_LIB(z, gzopen)
dnl check for pthread
AC_CHECK_LIB(pthread, pthread_mutex_init, AC_DEFINE(HAVE_PTHREAD))
dnl check for GL library
AC_CHECK_LIB(GL, glCallList, AC_DEFINE(HAVE_GL_LIB))
dnl Checks for header files.
AC_HEADER_DIRENT