Commit c90a97ad authored by Philipp Stephani's avatar Philipp Stephani

Use Autoconf to generate the test module Makefile

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.
parent 909dfaf3
......@@ -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
......
......@@ -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
......
......@@ -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
......
### @configure_input@
# Test GNU Emacs modules.
# Copyright 2015-2017 Free Software Foundation, Inc.
......@@ -17,25 +19,28 @@
# 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 = ../../..
SHELL = @SHELL@
CC = gcc
LD = gcc
LDFLAGS =
top_srcdir = @top_srcdir@
VPATH = $(srcdir)
CC = @CC@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
SO = @MODULES_SUFFIX@
# 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
FPIC_CFLAGS =
else
CFLAGS = -std=c11 -ggdb3 -Wall -fPIC
FPIC_CFLAGS = -fPIC
endif
all: mod-test$(SO)
%$(SO): %.o
$(LD) -shared $(LDFLAGS) -o $@ $<
$(CC) -shared $(LDFLAGS) -o $@ $<
%.o: %.c
$(CC) $(CFLAGS) -I$(ROOT)/src -c $<
$(CC) $(CPPFLAGS) $(CFLAGS) $(FPIC_CFLAGS) -I$(top_srcdir)/src -c -o $@ $<
%.o: $(srcdir)/emacs-module.[ch]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment