Hi all,
After spending a few hours trying to figure out why I couldn't get
the Xlib target to build, I noticed that the autoconf system was picking
up the directories for X properly, but wasn't finding X11/Xlib.h
The following patch changes configure.in to use AC_PATH_XTRA as
opposed to AC_PATH_X. AC_PATH_XTRA sets X_CFLAGS and X_LIBS the same way
AC_PATH_X set x_includes and x_libraries, but it also sets
X_DISPLAY_MISSING if it cannot find X, or if you turn off X support via
--without-x.
I tested this with X turned on and turned off and it compiles
cleanly both ways.
The remainder of the patch removes some @ac_ggi_@ and @ac_png_@
cruft from directories that don't use them. I don't have ggi installed,
so that portion of the patch is untested, but it seems pretty obvious to
me.
/Chris
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/configure.in freesci/configure.in
--- freesci-orig/configure.in Sun Mar 11 11:47:06 2001
+++ freesci/configure.in Sun Mar 11 11:49:15 2001
@@ -14,7 +14,6 @@
AC_CHECK_HEADERS(dirent.h)
AC_CHECK_HEADERS(unistd.h)
AC_CHECK_HEADERS(fnmatch.h)
-AC_CHECK_HEADERS(X11/Xlib.h)
AC_CHECK_HEADERS(readline/readline.h, [ ac_readline="-lreadline" ], [
ac_readline="" ])
AC_SUBST(ac_readline)
AC_CHECK_HEADERS(readline/history.h)
@@ -26,7 +25,7 @@
AM_PATH_ALSA(0.5.0, [AC_DEFINE(HAVE_ALSA)], [echo >/dev/null])
AC_PATH_GGI
AC_PATH_CURSES
-AC_PATH_X
+AC_PATH_XTRA
AC_MSG_CHECKING(for Alpha hardware and gcc style __asm__)
AC_TRY_COMPILE([], [
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/Makefile.am freesci/src/Makefile.am
--- freesci-orig/src/Makefile.am Sun Mar 11 11:47:03 2001
+++ freesci/src/Makefile.am Sun Mar 11 12:13:50 2001
@@ -1,6 +1,6 @@
SUBDIRS = scicore engine include gfx sound tools win32
EXTRA_DIST = README yywrap.c config.l python.tar.gz
-INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@ @ac_png_includes@
-LDADD = engine/libsciengine.a scicore/libscicore.a gfx/libscigraphics.a
gfx/resource/libsciresources.a gfx/drivers/libscidrivers.a sound/libscisound.a
@x_libraries@ @ac_ggi_libraries@ @ac_readline@ @ac_curses_libraries@
@ac_png_libraries@ -lm
+INCLUDES = -I$(top_srcdir)/src/include
+LDADD = engine/libsciengine.a scicore/libscicore.a gfx/libscigraphics.a
+gfx/resource/libsciresources.a gfx/drivers/libscidrivers.a sound/libscisound.a
+@X_LIBS@ -lX11 @ac_ggi_libraries@ @ac_readline@ @ac_curses_libraries@
+@ac_png_libraries@ -lm
bin_PROGRAMS = sciv
sciv_SOURCES = config.l main.c
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/demo/Makefile.am freesci/src/demo/Makefile.am
--- freesci-orig/src/demo/Makefile.am Sun Mar 11 11:47:03 2001
+++ freesci/src/demo/Makefile.am Sun Mar 11 12:16:34 2001
@@ -1,4 +1,4 @@
INCLUDES = -I$(top_srcdir)/src/include @ac_glib_includes@ @ac_ggi_includes@
-LDADD = -lglib -lc -lggi -lgii ../core/libscicore.a ../graphics/libscigraphics.a
../sound/libscisound.a ../console/libsciconsole.a @ac_ggi_libraries@
+LDADD = --lc @ac_ggi_libraries@ ../core/libscicore.a ../graphics/libscigraphics.a
+../sound/libscisound.a ../console/libsciconsole.a @ac_ggi_libraries@
bin_PROGRAMS = demo
demo_SOURCES = demo.c
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/engine/Makefile.am freesci/src/engine/Makefile.am
--- freesci-orig/src/engine/Makefile.am Sun Mar 11 11:47:03 2001
+++ freesci/src/engine/Makefile.am Sun Mar 11 11:53:48 2001
@@ -1,4 +1,4 @@
-INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@ @ac_png_includes@
+INCLUDES = -I$(top_srcdir)/src/include
EXTRA_DIST = cfsml.pl savegame.cfsml
lib_LIBRARIES = libsciengine.a
libsciengine_a_SOURCES = savegame.c kernel.c kscripts.c klists.c kfile.c kgraphics.c
kmath.c kevent.c kstring.c kmenu.c ksound.c vm.c game.c scriptdebug.c heap.c
simplesaid.c said.y grammar.c
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/gfx/Makefile.am freesci/src/gfx/Makefile.am
--- freesci-orig/src/gfx/Makefile.am Sun Mar 11 11:47:04 2001
+++ freesci/src/gfx/Makefile.am Sun Mar 11 12:07:08 2001
@@ -1,5 +1,5 @@
SUBDIRS = resource drivers
-INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@ @ac_png_includes@
+INCLUDES = -I$(top_srcdir)/src/include
EXTRA_DIST = gfx_line.c gfx_crossblit.c gfx_pixmap_scale.c
noinst_LIBRARIES = libscigraphics.a
@@ -8,7 +8,7 @@
libscigraphics_a_SOURCES = font.c gfx_resource.c gfx_support.c gfx_tools.c
operations.c resmgr.c sbtree.c widgets.c menubar.c sci_widgets.c
check_PROGRAMS = gfx_test
-gfx_test_LDADD = libscigraphics.a drivers/libscidrivers.a @x_libraries@
@ac_glx_libraries@ @ac_ggi_libraries@ @ac_readline@ @ac_curses_libraries@
@ac_png_libraries@ -lm
+gfx_test_LDADD = libscigraphics.a drivers/libscidrivers.a @X_LIBS@ @ac_glx_libraries@
+@ac_ggi_libraries@ @ac_readline@ @ac_curses_libraries@ @ac_png_libraries@ -lm
gfx_test_SOURCES = gfx_test.c
alpha_mvi_crossblit_32.o:
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/gfx/drivers/Makefile.am
freesci/src/gfx/drivers/Makefile.am
--- freesci-orig/src/gfx/drivers/Makefile.am Sun Mar 11 11:47:04 2001
+++ freesci/src/gfx/drivers/Makefile.am Sun Mar 11 12:04:01 2001
@@ -1,4 +1,4 @@
-INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@ @ac_png_includes@
+INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@ @ac_png_includes@ @X_CFLAGS@
LDADD = $(LDADD_ALL)
noinst_LIBRARIES = libscidrivers.a
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/gfx/drivers/gfx_drivers.c
freesci/src/gfx/drivers/gfx_drivers.c
--- freesci-orig/src/gfx/drivers/gfx_drivers.c Sun Mar 11 11:47:04 2001
+++ freesci/src/gfx/drivers/gfx_drivers.c Sun Mar 11 12:05:57 2001
@@ -35,7 +35,7 @@
#endif
-#ifdef HAVE_X11_XLIB_H
+#ifndef X_DISPLAY_MISSING
extern gfx_driver_t gfx_driver_xlib;
#endif
@@ -49,7 +49,7 @@
#ifdef HAVE_LIBGGI
&gfx_driver_ggi,
#endif
-#ifdef HAVE_X11_XLIB_H
+#ifndef X_DISPLAY_MISSING
&gfx_driver_xlib,
#endif
#ifdef HAVE_DDRAW
@@ -64,7 +64,7 @@
int retval = 0;
if (!name) { /* Find default driver */
-#ifdef HAVE_X11_XLIB_H
+#ifndef X_DISPLAY_MISSING
if (getenv("DISPLAY"))
return &gfx_driver_xlib;
#endif
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/gfx/drivers/xlib_driver.c
freesci/src/gfx/drivers/xlib_driver.c
--- freesci-orig/src/gfx/drivers/xlib_driver.c Sun Mar 11 11:47:04 2001
+++ freesci/src/gfx/drivers/xlib_driver.c Sun Mar 11 12:04:44 2001
@@ -26,7 +26,7 @@
***************************************************************************/
#include <gfx_driver.h>
-#ifdef HAVE_X11_XLIB_H
+#ifndef X_DISPLAY_MISSING
#include <gfx_tools.h>
#include <X11/Xlib.h>
@@ -956,4 +956,4 @@
NULL
};
-#endif /* HAVE_XLIB */
+#endif /* X_DISPLAY_MISSING */
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/gfx/resource/Makefile.am
freesci/src/gfx/resource/Makefile.am
--- freesci-orig/src/gfx/resource/Makefile.am Sun Mar 11 11:47:04 2001
+++ freesci/src/gfx/resource/Makefile.am Sun Mar 11 12:15:36 2001
@@ -1,5 +1,5 @@
-INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@ @ac_png_includes@
-LDADD = -lglib $(LDADD_ALL)
+INCLUDES = -I$(top_srcdir)/src/include
+LDADD = $(LDADD_ALL)
noinst_LIBRARIES = libsciresources.a
libsciresources_a_SOURCES = sci_font.c sci_resmgr.c sci_pic_0.c sci_view_0.c
sci_cursor_0.c sci_pal_1.c sci_view_1.c
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/graphics/Makefile.am
freesci/src/graphics/Makefile.am
--- freesci-orig/src/graphics/Makefile.am Sun Mar 11 11:47:04 2001
+++ freesci/src/graphics/Makefile.am Sun Mar 11 11:50:06 2001
@@ -1,4 +1,4 @@
-INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@ @ac_png_includes@
+INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@ @ac_png_includes@ @X_CFLAGS@
EXTRA_DIST = graphics_ddraw.c graphics_dgfx.c
LDADD = $(LDADD_ALL)
lib_LIBRARIES = libscigraphics.a
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/sound/Makefile.am freesci/src/sound/Makefile.am
--- freesci-orig/src/sound/Makefile.am Sun Mar 11 11:47:05 2001
+++ freesci/src/sound/Makefile.am Sun Mar 11 12:08:56 2001
@@ -1,8 +1,8 @@
-INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@
+INCLUDES = -I$(top_srcdir)/src/include
LDADD = -lc
EXTRA_DIST = sfx_save.cfsml soundserver_dos.c
noinst_LIBRARIES = libscisound.a
libscisound_a_SOURCES = oldmidi.c sound.c sfx_save.c soundserver_null.c midi_mt32.c
midiout.c midiout_unixraw.c midiout_alsaraw.c midi_device.c midi_mt32gm.c
sfx_save.c: sfx_save.cfsml
- cat sfx_save.cfsml | ../engine/cfsml.pl > sfx_save.c
\ No newline at end of file
+ cat sfx_save.cfsml | ../engine/cfsml.pl > sfx_save.c
diff -Naur --exclude=cfsml.pl --exclude=configure --exclude=config.h.in
--exclude=sfx_save.c freesci-orig/src/tools/Makefile.am freesci/src/tools/Makefile.am
--- freesci-orig/src/tools/Makefile.am Sun Mar 11 11:47:05 2001
+++ freesci/src/tools/Makefile.am Sun Mar 11 12:10:14 2001
@@ -1,9 +1,9 @@
-INCLUDES = -I$(top_srcdir)/src/include @ac_ggi_includes@ @ac_png_includes@
+INCLUDES = -I$(top_srcdir)/src/include @ac_png_includes@
LDADD = ../scicore/libscicore.a -lc
EXTRA_DIST = sciunpack.h
bin_PROGRAMS = sciunpack sciconsole scidisasm
sciunpack_SOURCES = sciunpack.c listwords.c scriptdump.c vocabdump.c
-sciunpack_LDADD = ../sound/libscisound.a ../scicore/libscicore.a @ac_glx_libraries@
@ac_glx_libraries@ @ac_png_libraries@ @ac_ggi_libraries@
+sciunpack_LDADD = ../sound/libscisound.a ../scicore/libscicore.a @ac_glx_libraries@
+@ac_glx_libraries@ @ac_png_libraries@
scidisasm_SOURCES = scidisasm.c
sciconsole_LDADD = ../sound/libscisound.a ../scicore/libscicore.a
@ac_curses_libraries@ -lc @ac_readline@ @ac_curses_libraries@ -lc -lm
sciconsole_SOURCES = sciconsole.c