# Copyright (C) 1992, 1993 Lucid, Inc.
-# Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-# 2009, 2010, 2011 Free Software Foundation, Inc.
-#
+# Copyright (C) 1994, 2001-2012 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,
srcdir=@srcdir@
VPATH=@srcdir@
+@SET_MAKE@
C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
-C_SWITCH_X_SYSTEM=@C_SWITCH_X_SYSTEM@
C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
C_SWITCH_MACHINE=@C_SWITCH_MACHINE@
-C_WARNINGS_SWITCH = @C_WARNINGS_SWITCH@
PROFILING_CFLAGS = @PROFILING_CFLAGS@
+WARN_CFLAGS = `echo @WARN_CFLAGS@ | sed 's/ -Wwrite-strings//'`
+WERROR_CFLAGS = @WERROR_CFLAGS@
CC=@CC@
CFLAGS=@CFLAGS@
CPPFLAGS=@CPPFLAGS@
RANLIB=@RANLIB@
-# See below--@X_TOOLKIT_TYPE@ is used below.
-USE_X_TOOLKIT=@X_TOOLKIT_TYPE@
AR = ar cq
-RM = rm -f
LUCID_OBJS = lwlib-Xlw.o xlwmenu.o lwlib-Xaw.o
MOTIF_OBJS = lwlib-Xm.o
-TOOLKIT_DEFINES =
+## LUCID_OBJS or MOTIF_OBJS.
TOOLKIT_OBJS = $(@X_TOOLKIT_TYPE@_OBJS)
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) \
- ${C_WARNINGS_SWITCH} ${PROFILING_CFLAGS} $(CFLAGS) \
- -DHAVE_CONFIG_H -Demacs -I. -I../src -I${srcdir} -I${srcdir}/../src
+ $(C_SWITCH_MACHINE) \
+ $(WARN_CFLAGS) $(WERROR_CFLAGS) $(PROFILING_CFLAGS) $(CFLAGS) \
+ -DHAVE_CONFIG_H -Demacs -I../src \
+ -I$(srcdir) -I$(srcdir)/../src -I../lib -I$(srcdir)/../lib
.c.o:
- $(CC) -c $(CPPFLAGS) ${ALL_CFLAGS} $<
+ $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
all:: liblw.a
liblw.a: $(OBJS)
- $(RM) $@
+ rm -f $@
$(AR) $@ $(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
+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 liblw.a \#*
+ 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]