This makes it easier to pass compilation flags around.
* configure.ac: Also build test module Makefile.
* test/data/emacs-module/Makefile.in: New makefile template.
* test/Makefile.in ($(test_module)): No longer necessary to pass
@MODULES_SUFFIX@ around.
* .gitignore: Test module Makefile can now be ignored.
Makefile
makefile
!etc/refcards/Makefile
-!test/data/emacs-module/Makefile
!test/lisp/progmodes/flymake-resources/Makefile
!test/manual/etags/Makefile
!test/manual/etags/make-src/Makefile
opt_makefile=test/Makefile
if test -f "$srcdir/$opt_makefile.in"; then
- SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
+ SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile test/data/emacs-module/Makefile"
dnl Again, it's best not to use a variable. Though you can add
dnl ", [], [opt_makefile='$opt_makefile']" and it should work.
- AC_CONFIG_FILES([test/Makefile])
+ AC_CONFIG_FILES([test/Makefile test/data/emacs-module/Makefile])
fi
test_module := $(test_module_dir)/$(test_module_name)
$(srcdir)/src/emacs-module-tests.log: $(test_module)
$(test_module): $(srcdir)/../src/emacs-module.[ch] $(test_module_dir)/mod-test.c
- $(MAKE) -C $(test_module_dir) $(test_module_name) SO=@MODULES_SUFFIX@
+ $(MAKE) -C $(test_module_dir) $(test_module_name)
endif
## Check that there is no 'automated' subdirectory, which would
+++ /dev/null
-# Test GNU Emacs modules.
-
-# Copyright 2015-2017 Free Software Foundation, Inc.
-
-# This file is part of GNU Emacs.
-
-# GNU Emacs 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 3 of the License, or
-# (at your option) any later version.
-
-# GNU Emacs 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. If not, see <http://www.gnu.org/licenses/>.
-
-ROOT = ../../..
-
-CC = gcc
-LD = gcc
-LDFLAGS =
-
-# On MS-Windows, say "make SO=.dll" to build the module
-SO = .so
-# -fPIC is a no-op on Windows, but causes a compiler warning
-ifeq ($(SO),.dll)
-CFLAGS = -std=c11 -ggdb3 -Wall
-else
-CFLAGS = -std=c11 -ggdb3 -Wall -fPIC
-endif
-
-all: mod-test$(SO)
-
-%$(SO): %.o
- $(LD) -shared $(LDFLAGS) -o $@ $<
-
-%.o: %.c
- $(CC) $(CFLAGS) -I$(ROOT)/src -c $<
--- /dev/null
+### @configure_input@
+
+# Test GNU Emacs modules.
+
+# Copyright 2015-2017 Free Software Foundation, Inc.
+
+# This file is part of GNU Emacs.
+
+# GNU Emacs 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 3 of the License, or
+# (at your option) any later version.
+
+# GNU Emacs 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. If not, see <http://www.gnu.org/licenses/>.
+
+SHELL = @SHELL@
+
+top_srcdir = @top_srcdir@
+VPATH = $(srcdir)
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+SO = @MODULES_SUFFIX@
+
+# -fPIC is a no-op on Windows, but causes a compiler warning
+ifeq ($(SO),.dll)
+FPIC_CFLAGS =
+else
+FPIC_CFLAGS = -fPIC
+endif
+
+all: mod-test$(SO)
+
+%$(SO): %.o
+ $(CC) -shared $(LDFLAGS) -o $@ $<
+
+%.o: %.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(FPIC_CFLAGS) -I$(top_srcdir)/src -c -o $@ $<
+
+%.o: $(srcdir)/emacs-module.[ch]