]> git.eshelyaron.com Git - emacs.git/commitdiff
Use Autoconf to generate the test module Makefile
authorPhilipp Stephani <phst@google.com>
Mon, 12 Jun 2017 14:09:37 +0000 (16:09 +0200)
committerPhilipp Stephani <phst@google.com>
Mon, 12 Jun 2017 14:09:37 +0000 (16:09 +0200)
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.

.gitignore
configure.ac
test/Makefile.in
test/data/emacs-module/Makefile [deleted file]
test/data/emacs-module/Makefile.in [new file with mode: 0644]

index 6dd21124e8cf869cf0ac6e513db45bdfc84a5e32..1abefeb4326bf9dec6d6950bedd37fa0fd203ab5 100644 (file)
@@ -34,7 +34,6 @@ InfoPlist.strings
 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
index 164454dff3063ee876b1cd2b72b20fcd1d679eeb..b4faf8ea178ff69801805d280f07ed449c8ee3cf 100644 (file)
@@ -5448,10 +5448,10 @@ dnl test/ is not present in release tarfiles.
 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
 
 
index 0c24c48e60e46935f0e1b8146da63a9cdf210bb6..13c0ac13f2127a7e750631883caca7f6e21bcbf4 100644 (file)
@@ -183,7 +183,7 @@ test_module_name := mod-test@MODULES_SUFFIX@
 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
diff --git a/test/data/emacs-module/Makefile b/test/data/emacs-module/Makefile
deleted file mode 100644 (file)
index bfeddb0..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# 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 $<
diff --git a/test/data/emacs-module/Makefile.in b/test/data/emacs-module/Makefile.in
new file mode 100644 (file)
index 0000000..427d1aa
--- /dev/null
@@ -0,0 +1,46 @@
+### @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]