Small Makefile cleanup mainly related to tags file generation
[bpt/emacs.git] / lwlib / Makefile.in
index b309228..550983c 100644 (file)
+### @configure_input@
+
 # Copyright (C) 1992, 1993 Lucid, Inc.
-# Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005, 2006,
-#   2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# 
+# Copyright (C) 1994, 2001-2013 Free Software Foundation, Inc.
+#
 # This file is part of the Lucid Widget Library.
-# 
+#
 # The Lucid Widget Library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 1, or (at your option)
 # any later version.
-# 
+#
 # The Lucid Widget Library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
-# along with GNU Emacs; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301, USA.
+# along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 
 # This was taken from the output of Imake using Lucid's Imakefile.
 # and set up to be configured by ../configure.
 
 srcdir=@srcdir@
+abs_srcdir=@abs_srcdir@
+# MinGW CPPFLAGS may use this.
+abs_top_srcdir=@abs_top_srcdir@
 VPATH=@srcdir@
+@SET_MAKE@
 C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
+C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
+C_SWITCH_MACHINE=@C_SWITCH_MACHINE@
+PROFILING_CFLAGS = @PROFILING_CFLAGS@
+WARN_CFLAGS = `echo @WARN_CFLAGS@ | sed 's/ -Wwrite-strings//'`
+WERROR_CFLAGS = @WERROR_CFLAGS@
 
 CC=@CC@
 CFLAGS=@CFLAGS@
-CPP=@CPP@
 CPPFLAGS=@CPPFLAGS@
-LN_S=@LN_S@
 RANLIB=@RANLIB@
-# See below--@X_TOOLKIT_TYPE@ is used below.
-USE_X_TOOLKIT=@X_TOOLKIT_TYPE@
-
-              TOP = .
-
-               AR = ar cq
 
-               LN = ln -s
-               RM = rm -f
+AR = @AR@
+ARFLAGS = @ARFLAGS@
 
-     LUCID_OBJS = lwlib-Xlw.o xlwmenu.o lwlib-Xaw.o
-     MOTIF_OBJS = lwlib-Xm.o
+LUCID_OBJS = lwlib-Xlw.o xlwmenu.o lwlib-Xaw.o
+MOTIF_OBJS = lwlib-Xm.o
 
-TOOLKIT_DEFINES = 
-   TOOLKIT_OBJS = $(@X_TOOLKIT_TYPE@_OBJS)
+## LUCID_OBJS or MOTIF_OBJS.
+TOOLKIT_OBJS = $(@X_TOOLKIT_TYPE@_OBJS)
 
-           OBJS = lwlib.o $(TOOLKIT_OBJS) lwlib-utils.o
+OBJS = lwlib.o $(TOOLKIT_OBJS) lwlib-utils.o
 
-# ../src is needed to find config.h.
+## ../src is where the generated file (config.h, globals.h) are.
+## $(srcdir)/../src is where the non-generated files (lisp.h) are.
+## (In an out-of-tree build, these two are not the same.)
+## $(srcdir) is where the lwlib sources are.
+## There are no generated lwlib files, hence no need for -I.
 ALL_CFLAGS= $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \
-  $(C_SWITCH_X_SYSTEM) $(C_SWITCH_MACHINE) $(CFLAGS) \
-  -DHAVE_CONFIG_H -Demacs -I. -I../src -I${srcdir} -I${srcdir}/../src
+  $(C_SWITCH_MACHINE) \
+  $(WARN_CFLAGS) $(WERROR_CFLAGS) $(PROFILING_CFLAGS) $(CFLAGS) \
+  -Demacs -I../src \
+  -I$(srcdir) -I$(srcdir)/../src -I../lib -I$(srcdir)/../lib
 
-.c.o:
-       $(CC) -c $(CPPFLAGS) ${ALL_CFLAGS} $<
+all: liblw.a
+.PHONY: all
 
-all:: liblw.a
+.c.o:
+       $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
 
 liblw.a: $(OBJS)
-       $(RM) $@
-       $(AR) $@ $(OBJS)
+       rm -f $@
+       $(AR) $(ARFLAGS) $@ $(OBJS)
        $(RANLIB) $@
 
-# Depend on Makefile so that we recompile if TOOLKIT_DEFINES changes.
-lwlib.o:  $(srcdir)/lwlib.c  Makefile
-       $(CC) -c $(CPPFLAGS) $(TOOLKIT_DEFINES) $(ALL_CFLAGS) $(srcdir)/lwlib.c
-
-lwlib-utils.o: lwlib-utils.c lwlib-utils.h
-lwlib.o:       lwlib.c lwlib.h lwlib-int.h lwlib-Xaw.h lwlib-Xlw.h
-lwlib-Xlw.o:   lwlib-Xlw.c lwlib.h lwlib-int.h lwlib-Xlw.h
-lwlib-Xaw.o:   lwlib-Xaw.c lwlib-Xaw.h lwlib.h lwlib-int.h
-lwlib-Xm.o:    lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h
-xlwmenu.o: xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h
+## Generated files in ../src, non-generated in $(srcdir)/../src.
+config_h = ../src/config.h $(srcdir)/../src/conf_post.h
+lisp_h = $(srcdir)/../src/lisp.h
+## lisp.h includes this.
+globals_h = ../src/globals.h
+src_h = $(config_h) $(lisp_h) $(globals_h)
+
+$(globals_h):
+       cd ../src && $(MAKE) $(MFLAGS) globals.h
+
+lwlib-utils.o: $(src_h) lwlib-utils.c lwlib-utils.h lwlib.h
+lwlib.o:       $(src_h) lwlib.c lwlib.h lwlib-int.h lwlib-utils.h \
+  lwlib-Xlw.h lwlib-Xm.h lwlib-Xaw.h
+lwlib-Xlw.o:   $(src_h) lwlib-Xlw.c lwlib.h lwlib-int.h lwlib-Xlw.h xlwmenu.h
+lwlib-Xaw.o:   $(src_h) lwlib-Xaw.c lwlib-Xaw.h lwlib.h lwlib-int.h
+lwlib-Xm.o:    $(src_h) lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h
+xlwmenu.o:     $(src_h) xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h \
+  $(srcdir)/../src/xterm.h
 
 mostlyclean:
-       $(RM) *.o core errs ,* *.a .emacs_* make.log MakeOut \#*
+       rm -f *.o liblw.a \#*
 
 clean: mostlyclean
 distclean: clean
-       $(RM) Makefile
+       rm -f Makefile
 maintainer-clean: distclean
-       $(RM) TAGS
+       rm -f TAGS
 
-TAGS:
-       ../lib-src/etags $(srcdir)/*.[ch]
+
+ETAGS = ../lib-src/etags
+
+## FIXME?  Does etags need to use absolute filenames?
+## See comments in lisp/Makefile.in, src/Makefile.in.
+ctagsfiles= *.[ch]
+
+TAGS: $(srcdir)/$(ctagsfiles)
+       "$(ETAGS)" "$(abs_srcdir)"/$(ctagsfiles)
 tags: TAGS
 .PHONY: tags
+
+
+### Makefile.in ends here