aboutsummaryrefslogtreecommitdiffhomepage
path: root/check.mak
diff options
context:
space:
mode:
Diffstat (limited to 'check.mak')
-rw-r--r--check.mak147
1 files changed, 147 insertions, 0 deletions
diff --git a/check.mak b/check.mak
new file mode 100644
index 000000000..5bcc2f1c2
--- /dev/null
+++ b/check.mak
@@ -0,0 +1,147 @@
+# Copyright 2018 Mitchell mitchell.att.foicica.com. See License.txt.
+# This makefile is used only for catching compile and test errors when
+# backporting fixes and features from the main branch of Scintilla. It likely
+# will not produce compiled targets that can be used by a Scintilla-based
+# application.
+# Usage: make -f check.mak
+
+.SUFFIXES: .cxx .c .o .h .a
+
+INCLUDEDIRS = -Iinclude -Isrc -Ilexlib
+CFLAGS = -pedantic -Wall
+CXXFLAGS = -std=c++11 -pedantic -pedantic-errors -DSCI_LEXER $(INCLUDEDIRS) \
+ -DNDEBUG -Os -Wall
+ifndef GTK3
+ GTK_CFLAGS = $(shell pkg-config --cflags gtk+-2.0)
+else
+ GTK_CFLAGS = $(shell pkg-config --cflags gtk+-3.0)
+endif
+
+base_src_objs = AutoComplete.o CallTip.o CaseConvert.o CaseFolder.o \
+ Catalogue.o CellBuffer.o CharClassify.o ContractionState.o \
+ DBCS.o Decoration.o Document.o EditModel.o Editor.o EditView.o \
+ ExternalLexer.o Indicator.o KeyMap.o LineMarker.o MarginView.o \
+ PerLine.o PositionCache.o RESearch.o RunStyles.o \
+ ScintillaBase.o Selection.o Style.o UniConversion.o \
+ ViewStyle.o XPM.o
+base_lexlib_objs = Accessor.o CharacterCategory.o CharacterSet.o LexerBase.o \
+ LexerModule.o LexerNoExceptions.o LexerSimple.o \
+ PropSetSimple.o StyleContext.o WordList.o
+base_lexer_objs = $(addsuffix .o,$(basename $(sort $(notdir $(wildcard lexers/Lex*.cxx)))))
+
+win32_src_objs = $(addprefix win32/, $(base_src_objs))
+win32_lexlib_objs = $(addprefix win32/, $(base_lexlib_objs))
+win32_lexer_objs = $(addprefix win32/, $(base_lexer_objs))
+cocoa_src_objs = $(addprefix cocoa/, $(base_src_objs))
+cocoa_lexlib_objs = $(addprefix cocoa/, $(base_lexlib_objs))
+cocoa_lexer_objs = $(addprefix cocoa/, $(base_lexer_objs))
+gtk_src_objs = $(addprefix gtk/, $(base_src_objs))
+gtk_lexlib_objs = $(addprefix gtk/, $(base_lexlib_objs))
+gtk_lexer_objs = $(addprefix gtk/, $(base_lexer_objs))
+curses_src_objs = $(addprefix curses/, $(base_src_objs))
+curses_lexlib_objs = $(addprefix curses/, $(base_lexlib_objs))
+curses_lexer_objs = $(addprefix curses/, $(base_lexer_objs))
+
+all: | /tmp/scintilla
+ make -C $| -f check.mak -j4 bin/scintilla_win32.a \
+ bin/scintilla_cocoa.a bin/scintilla_gtk.a bin/scintilla_curses.a qt
+/tmp/scintilla: ; cp -rs `pwd` $@
+
+# Windows platform objects.
+$(win32_src_objs): win32/%.o: src/%.cxx
+ i686-w64-mingw32-g++ -c $(CXXFLAGS) $< -o $@
+$(win32_lexlib_objs): win32/%.o: lexlib/%.cxx
+ i686-w64-mingw32-g++ -c $(CXXFLAGS) $< -o $@
+$(win32_lexer_objs): win32/%.o: lexers/%.cxx
+ i686-w64-mingw32-g++ -c $(CXXFLAGS) $< -o $@
+win32/PlatWin.o win32/ScintillaWin.o win32/ScintillaDLL.o win32/HanjaDic.o: win32/%.o: win32/%.cxx
+ i686-w64-mingw32-g++ -c $(CXXFLAGS) $< -o $@
+bin/scintilla_win32.a: $(win32_src_objs) $(win32_lexlib_objs) \
+ $(win32_lexer_objs) win32/PlatWin.o \
+ win32/ScintillaWin.o win32/ScintillaDLL.o \
+ win32/HanjaDic.o
+ i686-w64-mingw32-ar rc $@ $^
+ touch $@
+
+# MacOS platform objects.
+$(cocoa_src_objs): cocoa/%.o: src/%.cxx
+ i386-apple-darwin9-g++ -c $(CXXFLAGS) $< -o $@
+$(cocoa_lexlib_objs): cocoa/%.o: lexlib/%.cxx
+ i386-apple-darwin9-g++ -c $(CXXFLAGS) $< -o $@
+$(cocoa_lexer_objs): cocoa/%.o: lexers/%.cxx
+ i386-apple-darwin9-g++ -c $(CXXFLAGS) $< -o $@
+cocoa/PlatCocoa.o cocoa/ScintillaCocoa.o cocoa/ScintillaView.o: cocoa/%.o: cocoa/%.mm
+ i386-apple-darwin9-clang++-gstdc++ -c $(CXXFLAGS) $< -o $@
+bin/scintilla_cocoa.a: $(cocoa_src_objs) $(cocoa_lexlib_objs) \
+ $(cocoa_lexer_objs) #cocoa/PlatCocoa.o \
+ #cocoa/ScintillaCocoa.o cocoa/ScintillaView.o
+ i386-apple-darwin9-ar rc $@ $^
+ touch $@
+
+# GTK platform objects.
+bin/scintilla_gtk.a: $(gtk_src_objs) $(gtk_lexlib_objs) $(gtk_lexer_objs) \
+ gtk/PlatGTK.o gtk/ScintillaGTK.o \
+ gtk/ScintillaGTKAccessible.o gtk/scintilla-marshal.o
+ ar rc $@ $^
+ touch $@
+$(gtk_src_objs): gtk/%.o: src/%.cxx
+ g++ -c $(CXXFLAGS) -DGTK $< -o $@
+$(gtk_lexlib_objs): gtk/%.o: lexlib/%.cxx
+ g++ -c $(CXXFLAGS) -DGTK $< -o $@
+$(gtk_lexer_objs): gtk/%.o: lexers/%.cxx
+ g++ -c $(CXXFLAGS) -DGTK $< -o $@
+gtk/PlatGTK.o gtk/ScintillaGTK.o gtk/ScintillaGTKAccessible.o: gtk/%.o: gtk/%.cxx
+ g++ -c $(CXXFLAGS) -DGTK $(GTK_CFLAGS) $< -o $@
+gtk/scintilla-marshal.o: gtk/scintilla-marshal.c
+ gcc -c $(CFLAGS) $(GTK_CFLAGS) $< -o $@
+
+# Curses platform objects.
+bin/scintilla_curses.a: $(curses_src_objs) $(curses_lexlib_objs) \
+ $(curses_lexer_objs) curses/ScintillaCurses.o
+ ar rc $@ $^
+ touch $@
+$(curses_src_objs): curses/%.o: src/%.cxx
+ g++ -c $(CXXFLAGS) -DCURSES -DLPEG_LEXER $< -o $@
+$(curses_lexlib_objs): curses/%.o: lexlib/%.cxx
+ g++ -c $(CXXFLAGS) -DCURSES -DLPEG_LEXER $< -o $@
+$(curses_lexer_objs): curses/%.o: lexers/%.cxx
+ g++ -c $(CXXFLAGS) -DCURSES -DLPEG_LEXER $< -o $@
+curses/ScintillaCurses.o: curses/ScintillaCurses.cxx
+ g++ -c $(CXXFLAGS) -DCURSES -Wno-unused-parameter $< -o $@
+
+# Qt platform objects. (Note: requires libqt4-dev qt4-qmake.)
+.PHONY: qt
+qt: qt/ScintillaEditBase/Makefile
+ make -C $(dir $<)
+qt/ScintillaEditBase/Makefile:
+ cd qt/ScintillaEditBase && qmake
+
+deps: win32_deps cocoa_deps gtk_deps curses_deps
+win32_deps: src/*.cxx lexlib/*.cxx lexers/*.cxx win32/*.cxx
+ i686-w64-mingw32-g++ -MM $(CXXFLAGS) $^ | sed -e 's|^\([[:alnum:]-]\+\.o:\)|win32/\1|;' > checkdeps.mak
+cocoa_deps: src/*.cxx lexlib/*.cxx lexers/*.cxx #cocoa/*.cxx
+ i386-apple-darwin9-g++ -MM $(CXXFLAGS) $^ | sed -e 's|^\([[:alnum:]-]\+\.o:\)|cocoa/\1|;' >> checkdeps.mak
+gtk_deps: src/*.cxx lexlib/*.cxx lexers/*.cxx gtk/*.cxx
+ g++ -MM $(CXXFLAGS) $^ | sed -e 's|^\([[:alnum:]-]\+\.o:\)|gtk/\1|;' >> checkdeps.mak
+curses_deps: src/*.cxx lexlib/*.cxx lexers/*.cxx curses/*.cxx
+ g++ -MM $(CXXFLAGS) $^ | sed -e 's|^\([[:alnum:]-]\+\.o:\)|curses/\1|;' >> checkdeps.mak
+
+include checkdeps.mak
+
+clean:
+ rm -f bin/*.a bin/*.dll win32/*.o cocoa/*.o gtk/*.o curses/*.o
+ rm -rf /tmp/scintilla
+
+.PHONY: test
+test: | /tmp/scintilla ; make -C $|/test/unit CXX=g++ clean test
+
+releasedir = /tmp/scintilla$(shell grep -o '[0-9]\+' version.txt)
+$(releasedir): ; hg archive $@
+zip: $(releasedir)
+ cd /tmp && tar czf $<.tgz $(notdir $<)
+ cd /tmp && zip -r $<.zip $(notdir $<)
+ rm -r $<
+
+upload: LongTermDownload.html doc/ScintillaHistory.html doc/ScintillaDoc.html \
+ doc/StyleMetadata.html doc/LPegLexer.html
+ scp $^ foicica@web.sourceforge.net:/home/project-web/scintilla/htdocs/