diff options
Diffstat (limited to 'check.mak')
| -rw-r--r-- | check.mak | 147 |
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/ |
