st_cflags =					\
	-I$(top_srcdir)/src			\
	-DPREFIX=\""$(prefix)"\"		\
	-DLIBDIR=\""$(libdir)"\"		\
	-DG_LOG_DOMAIN=\"St\"			\
	-DST_COMPILATION			\
	-DCLUTTER_ENABLE_EXPERIMENTAL_API	\
	-DCOGL_ENABLE_EXPERIMENTAL_API		\
	-DPACKAGE_DATA_DIR=\"$(pkgdatadir)\"	\
	$(ST_CFLAGS)				\
	$(NULL)

st_built_sources =				\
	st-enum-types.h				\
	st-enum-types.c

BUILT_SOURCES += $(st_built_sources)

EXTRA_DIST +=					\
	st/test-theme.css			\
	st/st-enum-types.h.in			\
	st/st-enum-types.c.in

CLEANFILES += stamp-st-enum-types.h

st-enum-types.h: stamp-st-enum-types.h Makefile
	@true
stamp-st-enum-types.h: $(source_h) $(srcdir)/st/st-enum-types.h.in $(st_source_h)
	$(AM_V_GEN) (							\
	  $(GLIB_MKENUMS)						\
	    --template $(srcdir)/st/st-enum-types.h.in				\
	  $(addprefix $(srcdir)/, $(st_source_h)) ) >> $@.tmp &&		\
	(cmp -s $@.tmp st-enum-types.h || cp $@.tmp st-enum-types.h) &&	\
	rm -f $@.tmp &&							\
	echo timestamp > $(@F)

st-enum-types.c: stamp-st-enum-types.h $(srcdir)/st/st-enum-types.c.in
	$(AM_V_GEN) (				\
	  $(GLIB_MKENUMS)			\
	    --template $(srcdir)/st/st-enum-types.c.in	\
	  $(addprefix $(srcdir)/,$(st_source_h)) ) >> $@.tmp &&		\
	cp $@.tmp $@ &&				\
	rm -f $@.tmp

# please, keep this sorted alphabetically
st_source_h =					\
	st/st-adjustment.h			\
	st/st-bin.h				\
	st/st-border-image.h			\
	st/st-box-layout.h			\
	st/st-box-layout-child.h		\
	st/st-button.h				\
	st/st-clipboard.h			\
	st/st-drawing-area.h			\
	st/st-entry.h				\
	st/st-focus-manager.h			\
	st/st-generic-accessible.h		\
	st/st-icon.h				\
	st/st-icon-colors.h			\
	st/st-im-text.h				\
	st/st-label.h				\
	st/st-private.h				\
	st/st-scrollable.h			\
	st/st-scroll-bar.h			\
	st/st-scroll-view.h			\
	st/st-shadow.h				\
	st/st-table.h				\
	st/st-table-child.h			\
	st/st-texture-cache.h			\
	st/st-theme.h				\
	st/st-theme-context.h			\
	st/st-theme-node.h			\
	st/st-types.h				\
	st/st-widget.h				\
	st/st-widget-accessible.h		\
	$(NULL)

st.h: stamp-st.h
	@true
stamp-st.h: Makefile
	$(AM_V_GEN) (echo "#define ST_H_INSIDE 1";	\
	for name in $(st_source_h); do			\
	  echo "#include <"$$name">";			\
	done; echo "#undef ST_H_INSIDE") > $@.tmp &&  \
	(cmp -s $@.tmp st.h || cp $@.tmp st.h) &&	\
	rm -f $@.tmp &&				\
	echo timestamp > $(@F)

BUILT_SOURCES += st.h
CLEANFILES += stamp-st.h

st-scroll-view-fade-generated.c: stamp-st-scroll-view-fade-generated.c
	@true
stamp-st-scroll-view-fade-generated.c: $(srcdir)/st/st-scroll-view-fade.glsl $(srcdir)/data-to-c.pl
	$(AM_V_GEN) $(srcdir)/data-to-c.pl $(srcdir)/st/st-scroll-view-fade.glsl st_scroll_view_fade_glsl > $@.tmp && \
	(cmp -s $@.tmp st-scroll-view-fade-generated.c || cp $@.tmp st-scroll-view-fade-generated.c) && \
	rm -f $@.tmp &&				\
	echo timestamp > $(@F)

BUILT_SOURCES += st-scroll-view-fade-generated.c
CLEANFILES += stamp-st-scroll-view-fade-generated.c
EXTRA_DIST += 					\
	st/st-scroll-view-fade.glsl		\
	data-to-c.pl				\
	$(NULL)

st_source_private_h =				\
	st/st-private.h				\
	st/st-table-private.h			\
	st/st-theme-private.h			\
	st/st-theme-node-private.h		\
	st/st-theme-node-transition.h

# please, keep this sorted alphabetically
st_source_c =					\
	st/st-adjustment.c			\
	st/st-bin.c				\
	st/st-border-image.c			\
	st/st-box-layout.c			\
	st/st-box-layout-child.c		\
	st/st-button.c				\
	st/st-clipboard.c			\
	st/st-drawing-area.c			\
	st/st-entry.c				\
	st/st-focus-manager.c			\
	st/st-generic-accessible.c		\
	st/st-icon.c				\
	st/st-icon-colors.c			\
	st/st-im-text.c				\
	st/st-label.c				\
	st/st-private.c				\
	st/st-scrollable.c			\
	st/st-scroll-bar.c			\
	st/st-scroll-view.c			\
	st/st-shadow.c				\
	st/st-table.c				\
	st/st-table-child.c			\
	st/st-texture-cache.c			\
	st/st-theme.c				\
	st/st-theme-context.c			\
	st/st-theme-node.c			\
	st/st-theme-node-drawing.c		\
	st/st-theme-node-transition.c		\
	st/st-widget.c				\
	$(NULL)

st_non_gir_sources =           \
	st/st-scroll-view-fade.c	\
	st/st-scroll-view-fade.h	\
	$(NULL)

noinst_LTLIBRARIES += libst-1.0.la

libst_1_0_la_LIBADD = -lm $(ST_LIBS)
libst_1_0_la_SOURCES =				\
	$(st_source_c)					\
	$(st_non_gir_sources)			\
	$(st_source_private_h)			\
	$(st_source_private_c)			\
	$(st_source_h)				\
	$(NULL)
nodist_libst_1_0_la_SOURCES =			\
	$(st_built_sources)			\
	st.h					\
	$(NULL)
libst_1_0_la_CPPFLAGS = $(st_cflags)
libst_1_0_la_LDFLAGS = $(LDADD)

noinst_PROGRAMS += test-theme

test_theme_CPPFLAGS = $(st_cflags)
test_theme_LDADD = libst-1.0.la

test_theme_SOURCES = st/test-theme.c