aboutsummaryrefslogtreecommitdiffstats
path: root/lib/egg/Makefile.am
blob: e4c63e8dfe21dbe6c9e282555b1fe073e3227fd0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
EGGSOURCES = \
    eggtreemultidnd.c \
    egg-editable-toolbar.c \
    egg-toolbars-model.c \
    egg-toolbar-editor.c

EGGHEADERS = \
    eggtreemultidnd.h \
    egg-editable-toolbar.h \
    egg-toolbars-model.h \
    egg-toolbar-editor.h

noinst_HEADERS = \
    $(EGGHEADERS) \
    eggmarshalers.h \
    eggintl.h

noinst_LTLIBRARIES = libegg.la

libegg_la_SOURCES = \
    $(EGGSOURCES) \
    $(EGGHEADERS)

nodist_libegg_la_SOURCES = \
    $(BUILT_SOURCES)

libegg_la_CPPFLAGS = \
    -I$(top_builddir)/lib/egg       \
    -DCURSOR_DIR=\"$(pkgdatadir)/art\"  \
    $(AM_CPPFLAGS)

libegg_la_CFLAGS = \
    $(DEPENDENCIES_CFLAGS)      \
    $(AM_CFLAGS)

BUILT_SOURCES = \
    eggmarshalers.c \
    eggmarshalers.h \
    eggtypebuiltins.c \
    eggtypebuiltins.h

stamp_files = \
    stamp-eggmarshalers.c \
    stamp-eggmarshalers.h \
    stamp-eggtypebuiltins.c \
    stamp-eggtypebuiltins.h

eggmarshalers.h: stamp-eggmarshalers.h
    @true
stamp-eggmarshalers.h: eggmarshalers.list
    $(GLIB_GENMARSHAL) --prefix=_egg_marshal $(srcdir)/eggmarshalers.list --header > eggmarshalers.h \
    && echo timestamp > $(@F)

eggmarshalers.c: stamp-eggmarshalers.c
    @true
stamp-eggmarshalers.c: eggmarshalers.list
    $(GLIB_GENMARSHAL) --prefix=_egg_marshal $(srcdir)/eggmarshalers.list --header --body > eggmarshalers.c \
    && echo timestamp > $(@F)

eggtypebuiltins.c: stamp-eggtypebuiltins.c
    @true
stamp-eggtypebuiltins.c: $(EGGHEADERS)
    ( cd $(srcdir) && $(GLIB_MKENUMS) \
        --fhead "#include \"eggtypebuiltins.h\"\n\n" \
        --fprod "\n/* enumerations from \"@filename@\" */" \
        --fprod "\n#include \"@filename@\"" \
        --vhead "const G@Type@Value _@enum_name@_values[] = {" \
        --vprod "  { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
        --vtail "  { 0, NULL, NULL }\n};\n\n" \
        --vtail "GType\n@enum_name@_get_type (void)\n{\n" \
        --vtail "  static GType type = 0;\n\n" \
        --vtail "  if (G_UNLIKELY (type == 0))\n" \
        --vtail "    type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n\n" \
        --vtail "  return type;\n}\n\n" \
        $(^F) ) > xgen-$(@F) \
    && ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \
    && rm -f xgen-$(@F) \
    && echo timestamp > $(@F)

eggtypebuiltins.h: stamp-eggtypebuiltins.h
    @true
stamp-eggtypebuiltins.h: $(EGGHEADERS)
    ( cd $(srcdir) && $(GLIB_MKENUMS) \
        --fhead "#ifndef __EGGTYPEBUILTINS_H__\n" \
        --fhead "#define __EGGTYPEBUILTINS_H__ 1\n\n" \
        --fhead "#include <glib-object.h>\n\n" \
        --fhead "G_BEGIN_DECLS\n\n" \
        --ftail "G_END_DECLS\n\n" \
        --ftail "#endif /* __EGGTYPEBUILTINS_H__ */\n" \
        --fprod "\n/* --- @filename@ --- */" \
        --eprod "#define EGG_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \
        --eprod "GType @enum_name@_get_type (void);\n" \
        $(^F) ) > xgen-$(@F) \
    && ( cmp -s xgen-$(@F) $(@F:stamp-%=%) || cp xgen-$(@F) $(@F:stamp-%=%) ) \
    && rm -f xgen-$(@F) \
    && echo timestamp > $(@F)

EXTRA_DIST = \
    eggmarshalers.list

EGGFILES=$(EGGSOURCES) $(EGGHEADERS)
EGGDIR=$(srcdir)/../../../libegg/libegg

regenerate-built-sources:
    EGGFILES="$(EGGFILES) eggmarshalers.list" EGGDIR="$(EGGDIR)" $(srcdir)/update-from-egg.sh

CLEANFILES = $(stamp_files) $(BUILT_SOURCES)
DISTCLEANFILES = $(stamp_files) $(BUILT_SOURCES)
MAINTAINERCLEANFILES = $(stamp_files) $(BUILT_SOURCES)