List xproto.xml path explicitly instead of relying on GNU Make $< expansion
[free-sw/xcb/libxcb] / src / Makefile.am
1 lib_LTLIBRARIES = libXCB.la \
2                   libXCBcomposite.la \
3                   libXCBdamage.la \
4                   libXCBdpms.la \
5                   libXCBglx.la \
6                   libXCBrandr.la \
7                   libXCBrecord.la \
8                   libXCBrender.la \
9                   libXCBres.la \
10                   libXCBscreensaver.la \
11                   libXCBshape.la \
12                   libXCBshm.la \
13                   libXCBsync.la \
14                   libXCBxevie.la \
15                   libXCBxf86dri.la \
16                   libXCBxfixes.la \
17                   libXCBxprint.la \
18                   libXCBxtest.la \
19                   libXCBxv.la \
20                   libXCBxvmc.la
21
22 EXTHEADERS = \
23                 extensions/bigreq.h \
24                 extensions/composite.h \
25                 extensions/damage.h \
26                 extensions/dpms.h \
27                 extensions/glx.h \
28                 extensions/randr.h \
29                 extensions/record.h \
30                 extensions/render.h \
31                 extensions/res.h \
32                 extensions/screensaver.h \
33                 extensions/shape.h \
34                 extensions/shm.h \
35                 extensions/sync.h \
36                 extensions/xc_misc.h \
37                 extensions/xevie.h \
38                 extensions/xf86dri.h \
39                 extensions/xfixes.h \
40                 extensions/xprint.h \
41                 extensions/xtest.h \
42                 extensions/xv.h \
43                 extensions/xvmc.h
44 EXTSOURCES = \
45                 extensions/bigreq.c \
46                 extensions/composite.c \
47                 extensions/damage.c \
48                 extensions/dpms.c \
49                 extensions/glx.c \
50                 extensions/randr.c \
51                 extensions/record.c \
52                 extensions/render.c \
53                 extensions/res.c \
54                 extensions/screensaver.c \
55                 extensions/shape.c \
56                 extensions/shm.c \
57                 extensions/sync.c \
58                 extensions/xc_misc.c \
59                 extensions/xevie.c \
60                 extensions/xf86dri.c \
61                 extensions/xfixes.c \
62                 extensions/xprint.c \
63                 extensions/xtest.c \
64                 extensions/xv.c \
65                 extensions/xvmc.c
66 EXTENSIONS = $(EXTSOURCES) $(EXTHEADERS)
67
68 ESSENTIAL_EXTENSIONS = \
69                 extensions/bigreq.h \
70                 extensions/bigreq.c \
71                 extensions/xc_misc.h \
72                 extensions/xc_misc.c
73
74 EXTENSION_XML = \
75                 extensions/bigreq.xml \
76                 extensions/composite.xml \
77                 extensions/damage.xml \
78                 extensions/dpms.xml \
79                 extensions/glx.xml \
80                 extensions/randr.xml \
81                 extensions/record.xml \
82                 extensions/render.xml \
83                 extensions/res.xml \
84                 extensions/screensaver.xml \
85                 extensions/shape.xml \
86                 extensions/shm.xml \
87                 extensions/sync.xml \
88                 extensions/xc_misc.xml \
89                 extensions/xevie.xml \
90                 extensions/xf86dri.xml \
91                 extensions/xfixes.xml \
92                 extensions/xprint.xml \
93                 extensions/xtest.xml \
94                 extensions/xvmc.xml \
95                 extensions/xv.xml
96
97 COREHEADERS = xproto.h
98 CORESOURCES = xproto.c
99 COREPROTO   = $(CORESOURCES) $(COREHEADERS)
100
101 xcbinclude_HEADERS = xcb.h xcbext.h xcbxlib.h $(COREHEADERS) $(EXTHEADERS)
102 noinst_HEADERS = xcbint.h
103
104 AM_CFLAGS = $(COPTFLAGS) $(CWARNFLAGS) $(CDEBUGFLAGS) $(XCBPROTO_CFLAGS) $(XPROTO_CFLAGS) $(XAU_CFLAGS) $(XDMCP_CFLAGS)
105 libXCB_la_LIBADD = $(XCBPROTO_LIBS) $(XPROTO_LIBS) $(XAU_LIBS) $(XDMCP_LIBS)
106 libXCB_la_SOURCES = \
107                 xcb_conn.c xcb_out.c xcb_in.c xcb_ext.c xcb_xid.c \
108                 xcb_list.c xcb_util.c xcb_xlib.c xcb_auth.c \
109                 $(COREPROTO) $(ESSENTIAL_EXTENSIONS) c-client.xsl
110
111 # Explanation for -version-info:
112 # -version-info current:revision:age
113 # The library supports interface (current-age) to interface current.
114 # * If you changed the source code at all, increment revision.
115 # * If you add an interface, increment current and age and set revision to 0.
116 # * If you change or remove an interface, increment current and set revision
117 #   and age to 0.
118 libXCB_la_LDFLAGS = -version-info 0:0:0
119
120 BUILT_SOURCES = $(COREPROTO) $(EXTENSIONS)
121 CLEANFILES = $(COREPROTO) $(EXTENSIONS)
122
123 XCB_LIBS = libXCB.la
124
125 # FIXME: find a way to autogenerate this from the XML files.
126
127 libXCBcomposite_la_LDFLAGS = -version-info 0:0:0
128 libXCBcomposite_la_LIBADD = $(XCB_LIBS)
129 libXCBcomposite_la_SOURCES = extensions/composite.c extensions/composite.h
130
131 libXCBdamage_la_LDFLAGS = -version-info 0:0:0
132 libXCBdamage_la_LIBADD = $(XCB_LIBS)
133 libXCBdamage_la_SOURCES = extensions/damage.c extensions/damage.h
134
135 libXCBdpms_la_LDFLAGS = -version-info 0:0:0
136 libXCBdpms_la_LIBADD = $(XCB_LIBS)
137 libXCBdpms_la_SOURCES = extensions/dpms.c extensions/dpms.h
138
139 libXCBglx_la_LDFLAGS = -version-info 0:0:0
140 libXCBglx_la_LIBADD = $(XCB_LIBS)
141 libXCBglx_la_SOURCES = extensions/glx.c extensions/glx.h
142
143 libXCBrandr_la_LDFLAGS = -version-info 0:0:0
144 libXCBrandr_la_LIBADD = $(XCB_LIBS)
145 libXCBrandr_la_SOURCES = extensions/randr.c extensions/randr.h
146
147 libXCBrecord_la_LDFLAGS = -version-info 0:0:0
148 libXCBrecord_la_LIBADD = $(XCB_LIBS)
149 libXCBrecord_la_SOURCES = extensions/record.c extensions/record.h
150
151 libXCBrender_la_LDFLAGS = -version-info 0:0:0
152 libXCBrender_la_LIBADD = $(XCB_LIBS)
153 libXCBrender_la_SOURCES = extensions/render.c extensions/render.h
154
155 libXCBres_la_LDFLAGS = -version-info 0:0:0
156 libXCBres_la_LIBADD = $(XCB_LIBS)
157 libXCBres_la_SOURCES = extensions/res.c extensions/res.h
158
159 libXCBscreensaver_la_LDFLAGS = -version-info 0:0:0
160 libXCBscreensaver_la_LIBADD = $(XCB_LIBS)
161 libXCBscreensaver_la_SOURCES = extensions/screensaver.c extensions/screensaver.h
162
163 libXCBshape_la_LDFLAGS = -version-info 0:0:0
164 libXCBshape_la_LIBADD = $(XCB_LIBS)
165 libXCBshape_la_SOURCES = extensions/shape.c extensions/shape.h
166
167 libXCBshm_la_LDFLAGS = -version-info 0:0:0
168 libXCBshm_la_LIBADD = $(XCB_LIBS)
169 libXCBshm_la_SOURCES = extensions/shm.c extensions/shm.h
170
171 libXCBsync_la_LDFLAGS = -version-info 0:0:0
172 libXCBsync_la_LIBADD = $(XCB_LIBS)
173 libXCBsync_la_SOURCES = extensions/sync.c extensions/sync.h
174
175 libXCBxevie_la_LDFLAGS = -version-info 0:0:0
176 libXCBxevie_la_LIBADD = $(XCB_LIBS)
177 libXCBxevie_la_SOURCES = extensions/xevie.c extensions/xevie.h
178
179 libXCBxf86dri_la_LDFLAGS = -version-info 0:0:0
180 libXCBxf86dri_la_LIBADD = $(XCB_LIBS)
181 libXCBxf86dri_la_SOURCES = extensions/xf86dri.c extensions/xf86dri.h
182
183 libXCBxfixes_la_LDFLAGS = -version-info 0:0:0
184 libXCBxfixes_la_LIBADD = $(XCB_LIBS)
185 libXCBxfixes_la_SOURCES = extensions/xfixes.c extensions/xfixes.h
186
187 libXCBxprint_la_LDFLAGS = -version-info 0:0:0
188 libXCBxprint_la_LIBADD = $(XCB_LIBS)
189 libXCBxprint_la_SOURCES = extensions/xprint.c extensions/xprint.h
190
191 libXCBxtest_la_LDFLAGS = -version-info 0:0:0
192 libXCBxtest_la_LIBADD = $(XCB_LIBS)
193 libXCBxtest_la_SOURCES = extensions/xtest.c extensions/xtest.h
194
195 libXCBxv_la_LDFLAGS = -version-info 0:0:0
196 libXCBxv_la_LIBADD = $(XCB_LIBS)
197 libXCBxv_la_SOURCES = extensions/xv.c extensions/xv.h
198
199 libXCBxvmc_la_LDFLAGS = -version-info 0:0:0
200 libXCBxvmc_la_LIBADD = $(XCB_LIBS)
201 libXCBxvmc_la_SOURCES = extensions/xvmc.c extensions/xvmc.h
202
203 $(EXTHEADERS) $(EXTSOURCES): c-client.xsl
204
205 SUFFIXES = .xml
206
207 .xml.h:
208         @n=`dirname $*`; test -d $$n || (echo mkdir $$n; mkdir $$n)
209         $(XSLTPROC) --stringparam mode header \
210                     --stringparam base-path $(XCBPROTO_XCBINCLUDEDIR)/ \
211                     --stringparam extension-path \
212                                   $(XCBPROTO_XCBINCLUDEDIR)/extensions/ \
213                     -o $@ $(srcdir)/c-client.xsl $< 
214
215 .xml.c:
216         @n=`dirname $*`; test -d $$n || (echo mkdir $$n; mkdir $$n)
217         $(XSLTPROC) --stringparam mode source \
218                     --stringparam base-path $(XCBPROTO_XCBINCLUDEDIR)/ \
219                     --stringparam extension-path \
220                                   $(XCBPROTO_XCBINCLUDEDIR)/extensions/ \
221                     -o $@ $(srcdir)/c-client.xsl $< 
222
223 xproto.xml: $(XCBPROTO_XCBINCLUDEDIR)/xproto.xml
224         $(LN_S) $(XCBPROTO_XCBINCLUDEDIR)/xproto.xml $@
225
226 $(EXTENSION_XML):
227         [ -d extensions ] || mkdir extensions
228         for i in $(EXTENSION_XML) ; do \
229            rm -f $$i ; \
230            $(LN_S) $(XCBPROTO_XCBINCLUDEDIR)/$$i $$i ; \
231         done