1if XKB
2XKB_SUBDIRS = xkb
3endif
4SUBDIRS = util xcms xlibi18n $(XKB_SUBDIRS)
5
6lib_LTLIBRARIES = libX11.la libX11-xcb.la
7
8BUILT_SOURCES=ks_tables.h
9CLEANFILES=ks_tables.h ks_tables_h
10
11AM_CPPFLAGS= \
12	-I$(top_srcdir)/include \
13	-I$(top_srcdir)/include/X11 \
14	-I$(top_builddir)/include \
15	-I$(top_builddir)/include/X11 \
16	-I$(top_srcdir)/src/xcms \
17	-I$(top_srcdir)/src/xkb \
18	-I$(top_srcdir)/src/xlibi18n \
19	-D_BSD_SOURCE -DX11_t -DTRANS_CLIENT
20
21AM_CFLAGS= \
22	$(X11_CFLAGS) \
23	$(BIGFONT_CFLAGS) \
24	$(XMALLOC_ZERO_CFLAGS) \
25	$(CWARNFLAGS)
26
27#
28# =============================== I18N =============================
29#
30
31I18N_LIBS = \
32	xlibi18n/libi18n.la
33
34#
35# =============================== XCMS =============================
36#
37
38XCMS_LIBS = \
39	xcms/libxcms.la
40
41#
42# =============================== XKB ==============================
43#
44
45XKB_LIBS = \
46	xkb/libxkb.la
47
48#
49# =============================== XLIB =============================
50#
51
52libX11_la_SOURCES = \
53                  AllCells.c \
54                  AllowEv.c \
55                  AllPlanes.c \
56                  AutoRep.c \
57                  Backgnd.c \
58                  BdrWidth.c \
59                  Bell.c \
60                  Border.c \
61                  ChAccCon.c \
62                  ChActPGb.c \
63                  ChClMode.c \
64                  ChCmap.c \
65                  ChGC.c \
66                  ChKeyCon.c \
67                  ChkIfEv.c \
68                  ChkMaskEv.c \
69                  ChkTypEv.c \
70                  ChkTypWEv.c \
71                  ChkWinEv.c \
72                  ChPntCon.c \
73                  ChProp.c \
74                  ChSaveSet.c \
75                  ChWAttrs.c \
76                  ChWindow.c \
77                  CirWin.c \
78                  CirWinDn.c \
79                  CirWinUp.c \
80                  ClDisplay.c \
81                  ClearArea.c \
82                  Clear.c \
83		  Cmap.h \
84                  ConfWind.c \
85                  Context.c \
86                  ConvSel.c \
87                  CopyArea.c \
88                  CopyCmap.c \
89                  CopyGC.c \
90                  CopyPlane.c \
91                  CrBFData.c \
92                  CrCmap.c \
93                  CrCursor.c \
94                  CrGC.c \
95                  CrGlCur.c \
96                  Cr.h \
97                  CrPFBData.c \
98                  CrPixmap.c \
99                  CrWindow.c \
100                  Cursor.c \
101                  DefCursor.c \
102                  DelProp.c \
103                  Depths.c \
104                  DestSubs.c \
105                  DestWind.c \
106                  DisName.c \
107                  DrArc.c \
108                  DrArcs.c \
109                  DrLine.c \
110                  DrLines.c \
111                  DrPoint.c \
112                  DrPoints.c \
113                  DrRect.c \
114                  DrRects.c \
115                  DrSegs.c \
116                  ErrDes.c \
117                  ErrHndlr.c \
118                  evtomask.c \
119                  EvToWire.c \
120                  FetchName.c \
121                  FillArc.c \
122                  FillArcs.c \
123                  FillPoly.c \
124                  FillRct.c \
125                  FillRcts.c \
126                  FilterEv.c \
127                  Flush.c \
128                  Font.c \
129                  FontInfo.c \
130                  FontNames.c \
131                  FreeCmap.c \
132                  FreeCols.c \
133                  FreeCurs.c \
134                  FreeEData.c \
135                  FreeEventData.c \
136                  FreeGC.c \
137                  FreePix.c \
138                  FSSaver.c \
139                  FSWrap.c \
140                  GCMisc.c \
141                  Geom.c \
142                  GetAtomNm.c \
143                  GetColor.c \
144                  GetDflt.c \
145                  GetEventData.c \
146                  GetFPath.c \
147                  GetFProp.c \
148                  GetGCVals.c \
149                  GetGeom.c \
150                  GetHColor.c \
151                  GetHints.c \
152                  GetIFocus.c \
153                  GetImage.c \
154                  GetKCnt.c \
155                  GetMoEv.c \
156                  GetNrmHint.c \
157                  GetPCnt.c \
158                  GetPntMap.c \
159                  GetProp.c \
160                  GetRGBCMap.c \
161                  GetSOwner.c \
162                  GetSSaver.c \
163                  GetStCmap.c \
164                  GetTxtProp.c \
165                  GetWAttrs.c \
166                  GetWMCMapW.c \
167                  GetWMProto.c \
168                  globals.c \
169                  GrButton.c \
170                  GrKeybd.c \
171                  GrKey.c \
172                  GrPointer.c \
173                  GrServer.c \
174                  Host.c \
175                  Iconify.c \
176                  IfEvent.c \
177		  imConv.c \
178                  ImText16.c \
179                  ImText.c \
180                  ImUtil.c \
181                  InitExt.c \
182                  InsCmap.c \
183                  IntAtom.c \
184                  KeyBind.c \
185                  Key.h \
186                  KeysymStr.c \
187                  KillCl.c \
188                  LiHosts.c \
189                  LiICmaps.c \
190                  LiProps.c \
191                  ListExt.c \
192                  LoadFont.c \
193                  LockDis.c \
194                  locking.c \
195                  locking.h \
196                  LookupCol.c \
197                  LowerWin.c \
198                  Macros.c \
199                  MapRaised.c \
200                  MapSubs.c \
201                  MapWindow.c \
202                  MaskEvent.c \
203                  Misc.c \
204                  ModMap.c \
205                  MoveWin.c \
206                  NextEvent.c \
207                  OCWrap.c \
208                  OMWrap.c \
209                  OpenDis.c \
210                  ParseCmd.c \
211                  ParseCol.c \
212                  ParseGeom.c \
213                  pathmax.h \
214                  PeekEvent.c \
215                  PeekIfEv.c \
216                  Pending.c \
217                  PixFormats.c \
218                  PmapBgnd.c \
219                  PmapBord.c \
220                  poly.h \
221                  PolyReg.c \
222                  PolyTxt16.c \
223                  PolyTxt.c \
224                  PropAlloc.c \
225                  PutBEvent.c \
226                  PutImage.c \
227                  Quarks.c \
228                  QuBest.c \
229                  QuColor.c \
230                  QuColors.c \
231                  QuCurShp.c \
232                  QuExt.c \
233                  QuKeybd.c \
234                  QuPntr.c \
235                  QuStipShp.c \
236                  QuTextE16.c \
237                  QuTextExt.c \
238                  QuTileShp.c \
239                  QuTree.c \
240                  RaiseWin.c \
241                  RdBitF.c \
242                  reallocarray.h \
243                  RecolorC.c \
244                  ReconfWin.c \
245                  ReconfWM.c \
246                  Region.c \
247                  RegstFlt.c \
248                  RepWindow.c \
249                  RestackWs.c \
250                  RotProp.c \
251                  ScrResStr.c \
252                  SelInput.c \
253                  SendEvent.c \
254                  SetBack.c \
255                  SetClMask.c \
256                  SetClOrig.c \
257                  SetCRects.c \
258                  SetDashes.c \
259                  SetFont.c \
260                  SetFore.c \
261                  SetFPath.c \
262                  SetFunc.c \
263                  SetHints.c \
264                  SetIFocus.c \
265                  SetLocale.c \
266                  SetLStyle.c \
267                  SetNrmHint.c \
268                  SetPMask.c \
269                  SetPntMap.c \
270                  SetRGBCMap.c \
271                  SetSOwner.c \
272                  SetSSaver.c \
273                  SetState.c \
274                  SetStCmap.c \
275                  SetStip.c \
276                  SetTile.c \
277                  SetTSOrig.c \
278                  SetTxtProp.c \
279                  SetWMCMapW.c \
280                  SetWMProto.c \
281                  StBytes.c \
282                  StColor.c \
283                  StColors.c \
284                  StName.c \
285                  StNColor.c \
286                  StrKeysym.c \
287                  StrToText.c \
288                  Sync.c \
289                  Synchro.c \
290                  Text16.c \
291                  Text.c \
292                  TextExt16.c \
293                  TextExt.c \
294                  TextToStr.c \
295                  TrCoords.c \
296                  UndefCurs.c \
297                  UngrabBut.c \
298                  UngrabKbd.c \
299                  UngrabKey.c \
300                  UngrabPtr.c \
301                  UngrabSvr.c \
302                  UninsCmap.c \
303                  UnldFont.c \
304                  UnmapSubs.c \
305                  UnmapWin.c \
306                  utlist.h \
307                  VisUtil.c \
308                  WarpPtr.c \
309                  Window.c \
310                  WinEvent.c \
311                  Withdraw.c \
312                  WMGeom.c \
313                  WMProps.c \
314                  WrBitF.c \
315                  Xatomtype.h \
316                  xcb_disp.c \
317                  xcb_io.c \
318                  Xintatom.h \
319                  Xintconn.h \
320                  XlibAsync.c \
321                  XlibInt.c \
322                  Xprivate.h \
323                  XomGeneric.h \
324                  Xresinternal.h \
325                  Xrm.c \
326                  Xxcbint.h
327
328#
329# ========================= Extra stuff ============================
330#
331
332if OS2
333libX11_la_SOURCES+=os2Stubs.c
334endif OS2
335
336x11datadir = @X11_DATADIR@
337x11data_DATA = XErrorDB
338
339EXTRA_DIST = \
340	$(x11data_DATA) \
341	os2Stubs.c
342
343libX11_xcb_la_SOURCES = x11_xcb.c Xxcbint.h
344libX11_xcb_la_LDFLAGS = -version-number 1:0:0 -no-undefined
345
346#
347# Figure out which sub-libraries to link into Xlib
348#
349
350if XLOCALE
351USE_I18N_LIBS = $(I18N_LIBS)
352endif
353
354if XCMS
355USE_XCMS_LIBS = $(XCMS_LIBS)
356endif
357
358if XKB
359USE_XKB_LIBS = $(XKB_LIBS)
360endif
361
362libX11_la_LDFLAGS = -version-number 6:4:0 -no-undefined
363
364libX11_la_LIBADD = \
365	$(LTLIBOBJS) \
366	$(USE_I18N_LIBS) \
367	$(USE_XCMS_LIBS) \
368	$(USE_XKB_LIBS) \
369	$(USE_THREAD_LIBS) \
370	$(X11_LIBS)
371
372preprocess: $(patsubst %.c,%.ii,$(libX11_la_SOURCES))
373.c.ii:
374	$(COMPILE) -E -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
375
376if LINT
377# Check source code with tools like lint & sparse
378
379ALL_LINT_FLAGS=$(LINT_FLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
380		$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS)
381ALL_LINT_FLAGS += -DXCMSDIR=\"$(X11dir)\"
382
383lint:	$(BUILT_SOURCES)
384	for f in $(libX11_la_SOURCES) ; do \
385		$(LINT) $(ALL_LINT_FLAGS) $$f ; \
386	done
387	@for subdir in $(SUBDIRS) ; do \
388		echo "Making $@ in src/$$subdir"; \
389		(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) lint) ; \
390	done
391endif LINT
392
393if MAKE_LINT_LIB
394lintlibdir = $(libdir)
395
396lintlib_DATA = $(LINTLIB)
397
398lintlib_src = $(libX11_la_SOURCES) $(srcdir)/xcms/*.c $(srcdir)/xkb/*.c
399
400CLEANFILES += $(lintlib_DATA)
401
402$(LINTLIB): $(libX11_la_SOURCES)
403	$(AM_V_GEN)$(LINT) -y -oX11 -x $(ALL_LINT_FLAGS) $(lintlib_src)
404endif MAKE_LINT_LIB
405
406#
407# Building ks_tables.h requires the makekeys utility
408#
409
410KEYSYMDEFS=@KEYSYMDEFS@
411
412ks_tables.h: $(KEYSYMDEFS) $(top_builddir)/src/util/makekeys$(EXEEXT_FOR_BUILD)
413	$(top_builddir)/src/util/makekeys $(KEYSYMDEFS) > ks_tables_h
414	mv ks_tables_h $@
415
416$(top_builddir)/src/util/makekeys$(EXEEXT_FOR_BUILD): $(top_builddir)/src/util/makekeys.c
417	cd util && $(MAKE)
418