build: Make cogl.h not conditional on driver defines
authorEmmanuele Bassi <ebassi@linux.intel.com>
Wed, 18 Nov 2009 17:35:07 +0000 (17:35 +0000)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Wed, 18 Nov 2009 17:49:21 +0000 (17:49 +0000)
The main COGL header cogl.h is currently created at configure time
because it conditionally includes the driver-dependent defines. This
sometimes leads to a stale cogl.h with old definitions which can
break the build until you clean out the whole tree and start from
scratch.

We can generate a stable cogl-defines.h at build time from the
equivalent driver-dependent header and let cogl.h include that
file instead.

.gitignore
clutter/cogl/cogl/Makefile.am
clutter/cogl/cogl/cogl.h [moved from clutter/cogl/cogl/cogl.h.in with 99% similarity]
configure.ac

index c8b1df7..27000f5 100644 (file)
@@ -17,18 +17,17 @@ clutter/clutter-marshal.[ch]
 clutter/clutter-version.h
 clutter/stamp-*
 /clutter/clutter-json.h
-/clutter/cogl/cogl/cogl-defines-gl.h
-/clutter/cogl/cogl/cogl-defines-gles.h
-/clutter/cogl/cogl/cogl.h
+/clutter/cogl/cogl/cogl-defines.h
 /clutter/cogl/cogl/*.pc
 /clutter/cogl/cogl/cogl-enum-types.[ch]
 /clutter/cogl/cogl/stamp-enum-types
+/clutter/cogl/cogl/driver/gl/cogl-defines.h
+/clutter/cogl/cogl/driver/gles/cogl-defines.h
 /clutter/cogl/cogl/driver/gles/cogl-fixed-vertex-shader.[ch]
 /clutter/cogl/cogl/driver/gles/cogl-fixed-fragment-shader.[ch]
 *.gir
 *.typelib
 /clutter/json/*.gir
-cogl-defines.h
 config.*
 configure
 depcomp
index 69ce951..9e757b0 100644 (file)
@@ -4,8 +4,8 @@ NULL =
 
 SUBDIRS = driver
 
-BUILT_SOURCES = cogl.h
-EXTRA_DIST = cogl.h.in cogl.pc.in
+BUILT_SOURCES =
+EXTRA_DIST =
 CLEANFILES =
 DISTCLEANFILES =
 
@@ -23,6 +23,7 @@ cogl-$(COGL_DRIVER)-$(CLUTTER_API_VERSION).pc: cogl.pc
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = $(pc_files)
 
+EXTRA_DIST += cogl.pc.in
 CLEANFILES += $(pc_files)
 
 INCLUDES = \
@@ -33,6 +34,12 @@ INCLUDES = \
        -I$(top_builddir)/clutter/cogl          \
        $(NULL)
 
+cogl-defines.h: $(srcdir)/driver/gl/cogl-defines.h $(srcdir)/driver/gles/cogl-defines.h
+       $(QUIET_GEN)cp -f $(srcdir)/driver/$(COGL_DRIVER)/cogl-defines.h $(@F)
+
+BUILT_SOURCES += cogl-defines.h
+DISTCLEANFILES += cogl-defines.h
+
 # public headers
 cogl_public_h = \
        $(srcdir)/cogl-bitmap.h                 \
@@ -47,7 +54,7 @@ cogl_public_h = \
        $(srcdir)/cogl-texture.h                \
        $(srcdir)/cogl-types.h                  \
        $(srcdir)/cogl-vertex-buffer.h          \
-       $(top_builddir)/clutter/cogl/cogl/cogl.h \
+       $(srcdir)/cogl.h                        \
        $(NULL)
 
 # windowing system; all sources have to be distributed, but we'll
@@ -82,6 +89,7 @@ libclutter_cogl_la_LIBADD = -lm $(CLUTTER_LIBS) \
        $(top_builddir)/clutter/cogl/cogl/driver/$(COGL_DRIVER)/libclutter-cogl-driver.la
 
 libclutter_cogl_la_SOURCES =                           \
+       $(BUILT_SOURCES)                                \
        $(srcdir)/winsys/cogl-winsys.h                  \
        $(srcdir)/winsys/cogl-@COGL_WINSYS@.c           \
        $(srcdir)/cogl-handle.h                         \
@@ -127,18 +135,16 @@ libclutter_cogl_la_SOURCES =                              \
        $(srcdir)/cogl-draw-buffer.c                    \
        $(srcdir)/cogl-matrix-mesa.h                    \
        $(srcdir)/cogl-matrix-mesa.c                    \
-       $(BUILT_SOURCES)                                \
        $(NULL)
 
 EXTRA_DIST += $(cogl_winsys_sources)
-
 EXTRA_DIST += stb_image.c
 
 # COGL installed headers
 cogl_headers = \
        $(cogl_public_h) \
        $(srcdir)/cogl-deprecated.h \
-       cogl-defines-$(COGL_DRIVER).h \
+       cogl-defines.h \
        cogl-enum-types.h \
        $(NULL)
 
similarity index 99%
rename from clutter/cogl/cogl/cogl.h.in
rename to clutter/cogl/cogl/cogl.h
index 5fb5df0..c7e6ba5 100644 (file)
@@ -29,7 +29,7 @@
 
 #define __COGL_H_INSIDE__
 
-#include <cogl/cogl-defines-@COGL_DRIVER@.h>
+#include <cogl/cogl-defines.h>
 
 #include <cogl/cogl-bitmap.h>
 #include <cogl/cogl-color.h>
index a9fde5a..134d846 100644 (file)
@@ -822,9 +822,8 @@ AC_CONFIG_FILES([
         clutter/sdl/Makefile
         clutter/cogl/Makefile
         clutter/cogl/cogl/Makefile
-        clutter/cogl/cogl/cogl.h
-        clutter/cogl/cogl/cogl-defines-gl.h:clutter/cogl/cogl/driver/gl/cogl-defines.h.in
-        clutter/cogl/cogl/cogl-defines-gles.h:clutter/cogl/cogl/driver/gles/cogl-defines.h.in
+        clutter/cogl/cogl/driver/gl/cogl-defines.h
+        clutter/cogl/cogl/driver/gles/cogl-defines.h
         clutter/cogl/cogl/cogl.pc
         clutter/cogl/cogl/driver/Makefile
         clutter/cogl/cogl/driver/gl/Makefile