1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

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.
This commit is contained in:
Philipp Stephani 2017-06-12 16:09:37 +02:00
parent 909dfaf325
commit c90a97adc4
4 changed files with 18 additions and 14 deletions

1
.gitignore vendored
View 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

View 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

View 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

View File

@ -1,3 +1,5 @@
### @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]