Parallelize clean rules using GNU make features
[bpt/emacs.git] / lwlib / Makefile.in
1 ### @configure_input@
2
3 # Copyright (C) 1992, 1993 Lucid, Inc.
4 # Copyright (C) 1994, 2001-2014 Free Software Foundation, Inc.
5 #
6 # This file is part of the Lucid Widget Library.
7 #
8 # The Lucid Widget Library is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 1, or (at your option)
11 # any later version.
12 #
13 # The Lucid Widget Library is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
20
21
22 # This was taken from the output of Imake using Lucid's Imakefile.
23 # and set up to be configured by ../configure.
24
25 srcdir=@srcdir@
26 # MinGW CPPFLAGS may use this.
27 abs_top_srcdir=@abs_top_srcdir@
28 VPATH=@srcdir@
29 @SET_MAKE@
30 C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
31 C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
32 C_SWITCH_MACHINE=@C_SWITCH_MACHINE@
33 PROFILING_CFLAGS = @PROFILING_CFLAGS@
34 WARN_CFLAGS = `echo @WARN_CFLAGS@ | sed 's/ -Wwrite-strings//'`
35 WERROR_CFLAGS = @WERROR_CFLAGS@
36
37 CC=@CC@
38 CFLAGS=@CFLAGS@
39 CPPFLAGS=@CPPFLAGS@
40 RANLIB=@RANLIB@
41
42 AR = @AR@
43 ARFLAGS = @ARFLAGS@
44
45 LUCID_OBJS = lwlib-Xlw.o xlwmenu.o lwlib-Xaw.o
46 MOTIF_OBJS = lwlib-Xm.o
47
48 ## LUCID_OBJS or MOTIF_OBJS.
49 TOOLKIT_OBJS = $(@X_TOOLKIT_TYPE@_OBJS)
50
51 OBJS = lwlib.o $(TOOLKIT_OBJS) lwlib-utils.o
52
53 ## ../src is where the generated file (config.h, globals.h) are.
54 ## $(srcdir)/../src is where the non-generated files (lisp.h) are.
55 ## (In an out-of-tree build, these two are not the same.)
56 ## $(srcdir) is where the lwlib sources are.
57 ## There are no generated lwlib files, hence no need for -I.
58 ALL_CFLAGS= $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \
59 $(C_SWITCH_MACHINE) \
60 $(WARN_CFLAGS) $(WERROR_CFLAGS) $(PROFILING_CFLAGS) $(CFLAGS) \
61 -Demacs -I../src \
62 -I$(srcdir) -I$(srcdir)/../src -I../lib -I$(srcdir)/../lib
63
64 all: liblw.a
65 .PHONY: all
66
67 .c.o:
68 $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
69
70 liblw.a: $(OBJS)
71 rm -f $@
72 $(AR) $(ARFLAGS) $@ $(OBJS)
73 $(RANLIB) $@
74
75 ## Generated files in ../src, non-generated in $(srcdir)/../src.
76 config_h = ../src/config.h $(srcdir)/../src/conf_post.h
77 lisp_h = $(srcdir)/../src/lisp.h
78 ## lisp.h includes this.
79 globals_h = ../src/globals.h
80 src_h = $(config_h) $(lisp_h) $(globals_h)
81
82 $(globals_h):
83 cd ../src && $(MAKE) globals.h
84
85 lwlib-utils.o: $(src_h) lwlib-utils.c lwlib-utils.h lwlib.h
86 lwlib.o: $(src_h) lwlib.c lwlib.h lwlib-int.h lwlib-utils.h \
87 lwlib-Xlw.h lwlib-Xm.h lwlib-Xaw.h
88 lwlib-Xlw.o: $(src_h) lwlib-Xlw.c lwlib.h lwlib-int.h lwlib-Xlw.h xlwmenu.h
89 lwlib-Xaw.o: $(src_h) lwlib-Xaw.c lwlib-Xaw.h lwlib.h lwlib-int.h
90 lwlib-Xm.o: $(src_h) lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h
91 xlwmenu.o: $(src_h) xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h \
92 $(srcdir)/../src/xterm.h
93
94
95 .PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean
96
97 clean mostlyclean:
98 rm -f *.o liblw.a \#*
99
100 distclean: clean
101 rm -f Makefile
102
103 bootstrap-clean maintainer-clean: distclean
104 rm -f TAGS
105
106
107 ETAGS = ../lib-src/etags
108
109 ctagsfiles= $(srcdir)/*.[ch]
110
111 TAGS: $(ctagsfiles)
112 "$(ETAGS)" $(ctagsfiles)
113 tags: TAGS
114 .PHONY: tags
115
116
117 ### Makefile.in ends here