diff options
Diffstat (limited to 'lexilla/test/makefile')
| -rw-r--r-- | lexilla/test/makefile | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/lexilla/test/makefile b/lexilla/test/makefile new file mode 100644 index 000000000..f89f75640 --- /dev/null +++ b/lexilla/test/makefile @@ -0,0 +1,68 @@ +# Build all the lexer tests using GNU make and either g++ or Clang +# @file makefile +# Copyright 2019 by Neil Hodgson <neilh@scintilla.org> +# The License.txt file describes the conditions under which this software may be distributed. +# Should be run using mingw32-make on Windows, not nmake +# On Windows g++ is used, on OS X clang, and on Linux g++ is used by default +# but clang can be used by defining CLANG when invoking make +# clang works only with libc++, not libstdc++ + +.PHONY: all test clean + +.SUFFIXES: .cxx + +WARNINGS = -Wpedantic -Wall -Wextra + +ifndef windir +LIBS += -ldl +ifeq ($(shell uname),Darwin) +# On macOS always use Clang +CLANG = 1 +endif +endif + +EXE = $(if $(windir),TestLexers.exe,TestLexers) + +BASE_FLAGS += --std=c++2a + +ifdef CLANG + CXX = clang++ + BASE_FLAGS += -fsanitize=address +endif + +ifdef LEXILLA_STATIC + DEFINES += -D LEXILLA_STATIC + LIBS += ../../bin/liblexilla.a +endif + +ifdef windir + DEL = $(if $(wildcard $(dir $(SHELL))rm.exe), $(dir $(SHELL))rm.exe -f, del /q) +else + DEL = rm -f +endif + +DEFINES += -D$(if $(DEBUG),DEBUG,NDEBUG) +BASE_FLAGS += $(if $(DEBUG),-g,-Os) + +INCLUDES = -I ../../include -I ../src +BASE_FLAGS += $(WARNINGS) + +all: $(EXE) + +test: $(EXE) + ./$(EXE) + +clean: + $(DEL) *.o *.obj $(EXE) + +%.o: %.cxx + $(CXX) $(DEFINES) $(INCLUDES) $(BASE_FLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + +OBJS = TestLexers.o TestDocument.o LexillaAccess.o + +$(EXE): $(OBJS) + $(CXX) $(BASE_FLAGS) $(CPPFLAGS) $(CXXFLAGS) $^ $(LIBS) $(LDLIBS) -o $@ + +TestLexers.o: TestLexers.cxx TestDocument.h LexillaAccess.h +TestDocument.o: TestDocument.cxx TestDocument.h +LexillaAccess.o: LexillaAccess.cxx LexillaAccess.h |
