1# Process this file with autoconf to produce a configure script.
2AC_INIT(src/driver.c)
3AM_INIT_AUTOMAKE(rss-glx,0.9.0)
4AM_CONFIG_HEADER(config.h)
5
6# Checks for programs.
7AC_PROG_AWK
8
9AC_USE_SYSTEM_EXTENSIONS
10AM_PROG_CC_C_O
11AC_PROG_CC_C99
12AC_C_BIGENDIAN
13
14if test "x$GCC" = xyes; then
15	CFLAGS="-O2"
16fi
17AC_ARG_ENABLE([debug], [AC_HELP_STRING([--enable-debug],
18    [build with debugging information default=no])],
19    [test "$enableval" = "yes" && CFLAGS="-g"])
20if test "x$GCC" = xyes; then
21	CFLAGS="$CFLAGS -Wall"
22fi
23
24AC_PROG_CXX
25
26if test "x$GXX" = xyes; then
27	CXXFLAGS="-O2"
28fi
29AC_ARG_ENABLE([debug], [AC_HELP_STRING([--enable-debug],
30    [build with debugging information default=no])],
31    [test "$enableval" = "yes" && CXXFLAGS="-g"])
32if test "x$GXX" = xyes; then
33	CXXFLAGS="$CXXFLAGS -Wall"
34fi
35
36AC_PROG_INSTALL
37AM_DISABLE_SHARED
38AC_PROG_LIBTOOL
39AC_PROG_LN_S
40
41# Checks for libraries.
42AC_CHECK_LIB([m], [pow],,AC_MSG_ERROR(-lm was not found but required.))
43
44AC_ARG_ENABLE(bzip2, [  --disable-bzip2         Don't compress textures/audio with bzip2.])
45if test "x$enable_bzip2" != "xno" ; then
46	AC_CHECK_LIB([bz2], [BZ2_bzBuffToBuffCompress], AC_SUBST(BZIP2, -lbz2) AC_DEFINE([HAVE_LIBBZ2], [], [libbz2 exists.]))
47fi
48
49# Checks for header files.
50AC_HEADER_STDC
51AC_PATH_XTRA
52
53if test "x${ac_cv_have_x:0:10}" != "xhave_x=yes"; then
54	AC_MSG_ERROR([X11 is missing but required.])
55fi
56
57CFLAGS="$CFLAGS $X_CFLAGS"
58CPPFLAGS="$CPPFLAGS $X_CFLAGS"
59LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS"
60
61# Checks for typedefs, structures, and compiler characteristics.
62AC_C_CONST
63AC_C_INLINE
64AC_HEADER_TIME
65
66# Checks for library functions.
67AC_CHECK_FUNCS(getopt,,AC_MSG_ERROR([getopt is missing but required.]))
68AC_CHECK_HEADERS([getopt.h bzlib.h])
69
70AC_CHECK_FUNCS(gettimeofday,,AC_MSG_ERROR([gettimeofday is missing but required.]))
71
72AC_CHECK_FUNCS(nanosleep)
73if test "x$ac_cv_func_nanosleep" = "xno" ; then
74	echo "Hrm, maybe nanosleep is in -lrt";
75	AC_CHECK_LIB([rt], [nanosleep])
76
77	unset ac_cv_func_nanosleep
78	AC_CHECK_FUNCS(nanosleep)
79fi
80
81AC_CHECK_FUNCS(random_r nrand48)
82
83# Check for ImageMagick.
84PKG_CHECK_MODULES(Wand, Wand >= 6.4)
85
86if test -d src/skyrocket_sounds ; then
87	AC_ARG_ENABLE(sound, [  --disable-sound         Don't compile with sound.])
88else
89	echo "Audio samples not found, disabling sound.";
90	enable_sound=no
91fi
92
93if test "x$enable_sound" != "xno" ; then
94	PKG_CHECK_MODULES(freealut, freealut >= 1.0.0, AM_CONDITIONAL(WITHSOUND, true) AC_DEFINE([HAVE_OPENAL], , [OpenAL is available for use.]), AM_CONDITIONAL(WITHSOUND, false))
95else
96	AM_CONDITIONAL(WITHSOUND, false)
97fi
98
99AC_CHECK_HEADERS([pthread.h])
100if test "x$ac_cv_header_pthread_h" = "xyes" ; then
101	# Maybe we don't need to link squat
102	AC_CHECK_FUNCS(pthread_create)
103
104	if test "x$ac_cv_func_pthread_create" = "xno" ; then
105		AC_CHECK_LIB([pthread], [pthread_create], AC_SUBST(PTHREAD_LIBS, "-lpthread"))
106
107		if test "x$ac_cv_lib_pthread_pthread_create" = "xno" ; then
108			AC_CHECK_LIB([c_r], [pthread_create], AC_SUBST(PTHREAD_LIBS, "-lc_r"))
109
110			if test "x$ac_cv_lib_c_r_pthread_create" = "xno"; then
111				missing_pthread=yes
112			fi
113		fi
114	fi
115else
116	missing_pthread=yes
117fi
118
119if test "x$missing_pthread" = "xyes" ; then
120	AC_MSG_ERROR([pthreads is missing but required.])
121fi
122
123# Check for OpenGL headers first.
124AC_CHECK_HEADER([GL/gl.h])
125
126if test "x$ac_cv_header_GL_gl_h" = "xno" ; then
127	CFLAGS="$CFLAGS -I/usr/openwin/share/include"
128	CPPFLAGS="$CPPFLAGS -I/usr/openwin/share/include"
129
130	echo "Hrm, maybe GL/gl.h is in /usr/openwin/share/include";
131	unset ac_cv_header_GL_gl_h
132	AC_CHECK_HEADER(GL/gl.h,,AC_MSG_ERROR([[No gl.h found.]]))
133fi
134
135AC_CHECK_HEADER([GL/glx.h],,AC_MSG_ERROR([[No glx.h found.]]))
136
137AC_CHECK_LIB([GL],[glNewList])
138if test "x$ac_cv_lib_GL_glNewList" = "xno" ; then
139        dnl Check for MesaGL.
140        AC_CHECK_LIB([MesaGL],[glNewList],,AC_MSG_ERROR(GL library was not found.))
141fi
142
143# Check for GLU headers.
144AC_CHECK_HEADER(GL/glu.h,,AC_MSG_ERROR([[No glu.h found.]]))
145
146AC_CHECK_LIB([GLU],[gluLookAt])
147if test "x$ac_cv_lib_GLU_gluLookAt" = "xno"; then
148        dnl Check for MesaGLU.
149        AC_CHECK_LIB([MesaGLU],[gluLookAt],,AC_MSG_ERROR(GLU library was not found.))
150fi
151
152AC_CHECK_HEADERS([GL/glew.h])
153
154if test "x$ac_cv_header_GL_glew_h" = "xyes" ; then
155	AC_CHECK_LIB([GLEW], [glewInit], AC_SUBST(GLEW, -lGLEW) AC_DEFINE([HAVE_GLEW], , [GLEW is available for use.]), AC_MSG_ERROR([Install GLEW 1.3.1 or better]))
156	AM_CONDITIONAL(WITHGLEW, test "x$ac_cv_lib_GLEW_glewInit" = "xyes")
157else
158	AM_CONDITIONAL(WITHGLEW, false)
159fi
160
161AC_CHECK_HEADER([X11/extensions/dpms.h], AC_SEARCH_LIBS([DPMSInfo], [Xext], AC_DEFINE([HAVE_DPMS_EXT], [], [DPMS exists.])), [], [#include <X11/Xlib.h>])
162
163AC_ARG_WITH(configdir, [  --with-configdir        Where is xscreensaver stashing its screensaver configs?])
164
165if test "$with_configdir" != "" ; then
166	AC_SUBST(configdir, $with_configdir)
167	INSTALL_XSCREENSAVER_CONFIG_FILES=yes
168else
169	which_xscreensaverdemo=`which xscreensaver-demo 2> /dev/null`
170	if test -x "$which_xscreensaverdemo" ; then
171		with_configdir=`strings $which_xscreensaverdemo | grep "\/config"`
172
173		if test -d "$with_configdir" ; then
174			AC_SUBST(configdir, $with_configdir)
175			INSTALL_XSCREENSAVER_CONFIG_FILES=yes
176		fi
177	fi
178fi
179
180AM_CONDITIONAL(INSTALL_XSCREENSAVER_CONFIG_FILES, test "$INSTALL_XSCREENSAVER_CONFIG_FILES" = "yes")
181
182AC_ARG_WITH(kdessconfigdir, [  --with-kdessconfigdir   Where is KDE stashing its screensaver configs?])
183
184if test "$with_kdessconfigdir" != "" ; then
185	AC_SUBST(kdessconfigdir, $with_kdessconfigdir)
186	INSTALL_KDE_CONFIG_FILES=yes
187else
188	if `which kde4-config 2> /dev/null`; then
189		for ii in `kde4-config --path services | sed -e 's/:/\n/g' | grep \`kde4-config --prefix\``; do
190			with_kdessconfigdir=$ii/ScreenSavers
191
192			if test -d "$with_kdessconfigdir" ; then
193				AC_SUBST(kdessconfigdir, $with_kdessconfigdir)
194				INSTALL_KDE_CONFIG_FILES=yes
195				break
196			fi
197		done
198	fi
199fi
200
201AM_CONDITIONAL(INSTALL_KDE_CONFIG_FILES, test "$INSTALL_KDE_CONFIG_FILES" = "yes")
202
203PKG_CHECK_MODULES(quesoglc, quesoglc >= 0.7, AC_DEFINE([HAVE_GLC], , [QuesoGLC is available for use.]), AC_DEFINE([MISSING_GLC], , [QuesoGLC not available.]))
204
205AC_OUTPUT([
206	Makefile
207	src/Makefile
208	src/Implicit/Makefile
209	src/rsMath/Makefile
210	src/PixelCity/Makefile
211	utils/Makefile
212])
213