mirror of
				https://github.com/notepad-plus-plus/notepad-plus-plus.git
				synced 2025-10-31 19:44:06 +01:00 
			
		
		
		
	1. Build Notepad++ with Scintilla static lib (libscintilla.lib) and Boost (v1.76) RegExpr. 2. ARM64 build is available. Fix #5158, close #9594
		
			
				
	
	
		
			193 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # Make file for Scintilla on Windows
 | |
| # @file makefile
 | |
| # Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>
 | |
| # The License.txt file describes the conditions under which this software may be distributed.
 | |
| # This makefile assumes Mingw-w64 GCC 9.0+ is used and changes will be needed to use other compilers.
 | |
| # Clang 9.0+ can be used with CLANG=1 on command line.
 | |
| 
 | |
| .PHONY: all clean analyze depend
 | |
| 
 | |
| .SUFFIXES: .cxx .c .o .h .a
 | |
| 
 | |
| DIR_BIN=../bin
 | |
| 
 | |
| COMPONENT = $(DIR_BIN)/Scintilla.dll
 | |
| LEXCOMPONENT = $(DIR_BIN)/SciLexer.dll
 | |
| LIBSCI = $(DIR_BIN)/libscintilla.a
 | |
| LIBLEX=$(DIR_BIN)/libscilexer.a
 | |
| 
 | |
| WARNINGS = -Wpedantic -Wall
 | |
| 
 | |
| ifdef CLANG
 | |
| CXX = clang++
 | |
| DEFINES += -D_CRT_SECURE_NO_DEPRECATE
 | |
| else
 | |
| # MinGW GCC
 | |
| LIBSMINGW = -lstdc++
 | |
| STRIPOPTION = -s
 | |
| endif
 | |
| ARFLAGS = rc
 | |
| RANLIB ?= ranlib
 | |
| WINDRES ?= windres
 | |
| 
 | |
| # Environment variable windir always defined on Win32
 | |
| 
 | |
| # Take care of changing Unix style '/' directory separator to '\' on Windows
 | |
| normalize = $(if $(windir),$(subst /,\,$1),$1)
 | |
| 
 | |
| PYTHON = $(if $(windir),pyw,python3)
 | |
| 
 | |
| ifdef windir
 | |
| DEL = $(if $(wildcard $(dir $(SHELL))rm.exe), $(dir $(SHELL))rm.exe -f, del /q)
 | |
| else
 | |
| DEL = rm -f
 | |
| endif
 | |
| 
 | |
| vpath %.h ../src ../include ../lexlib
 | |
| vpath %.cxx ../src ../lexlib ../lexers
 | |
| 
 | |
| LDFLAGS=-shared -static -mwindows
 | |
| LIBS=-lgdi32 -luser32 -limm32 -lole32 -luuid -loleaut32 -lmsimg32 $(LIBSMINGW)
 | |
| 
 | |
| INCLUDES=-I ../include -I ../src -I../lexlib
 | |
| 
 | |
| BASE_FLAGS += $(WARNINGS)
 | |
| 
 | |
| ifdef NO_CXX11_REGEX
 | |
| DEFINES += -DNO_CXX11_REGEX
 | |
| endif
 | |
| 
 | |
| DEFINES += -D$(if $(DEBUG),DEBUG,NDEBUG)
 | |
| BASE_FLAGS += $(if $(DEBUG),-g,-Os)
 | |
| 
 | |
| ifndef DEBUG
 | |
| STRIPFLAG=$(STRIPOPTION)
 | |
| endif
 | |
| 
 | |
| CXX_BASE_FLAGS =--std=c++17 $(BASE_FLAGS)
 | |
| CXX_ALL_FLAGS =$(DEFINES) $(INCLUDES) $(CXX_BASE_FLAGS)
 | |
| 
 | |
| all:	$(COMPONENT) $(LEXCOMPONENT) $(LIBSCI) $(LIBLEX) 
 | |
| 
 | |
| clean:
 | |
| 	$(DEL) *.exe *.o *.a *.obj *.dll *.res *.map *.plist $(call normalize,$(LIBSCI))
 | |
| 
 | |
| %.o: %.cxx
 | |
| 	$(CXX) $(CXX_ALL_FLAGS) $(CXXFLAGS) -c $<
 | |
| 
 | |
| analyze:
 | |
| 	$(CXX) --analyze $(CXX_ALL_FLAGS) $(CXXFLAGS) *.cxx ../src/*.cxx ../lexlib/*.cxx ../lexers/*.cxx
 | |
| 
 | |
| depend deps.mak:
 | |
| 	$(PYTHON) DepGen.py
 | |
| 
 | |
| LEX_OBJS:=$(addsuffix .o,$(basename $(sort $(notdir $(wildcard ../lexers/Lex*.cxx)))))
 | |
| 
 | |
| # Required for base Scintilla
 | |
| SRC_OBJS = \
 | |
| 	AutoComplete.o \
 | |
| 	CallTip.o \
 | |
| 	CaseConvert.o \
 | |
| 	CaseFolder.o \
 | |
| 	CellBuffer.o \
 | |
| 	CharacterCategory.o \
 | |
| 	CharacterSet.o \
 | |
| 	CharClassify.o \
 | |
| 	ContractionState.o \
 | |
| 	DBCS.o \
 | |
| 	Decoration.o \
 | |
| 	Document.o \
 | |
| 	EditModel.o \
 | |
| 	Editor.o \
 | |
| 	EditView.o \
 | |
| 	Indicator.o \
 | |
| 	KeyMap.o \
 | |
| 	LineMarker.o \
 | |
| 	MarginView.o \
 | |
| 	PerLine.o \
 | |
| 	PositionCache.o \
 | |
| 	PropSetSimple.o \
 | |
| 	RESearch.o \
 | |
| 	RunStyles.o \
 | |
| 	Selection.o \
 | |
| 	Style.o \
 | |
| 	UniConversion.o \
 | |
| 	UniqueString.o \
 | |
| 	ViewStyle.o \
 | |
| 	XPM.o
 | |
| 
 | |
| # To have PCRE boost regex with header only is integrated and not just the one from std
 | |
| include ../../boostregex/nppSpecifics_mingw.mak
 | |
| 
 | |
| # Required by lexers
 | |
| LEXLIB_OBJS = \
 | |
| 	Accessor.o \
 | |
| 	CatalogueL.o \
 | |
| 	DefaultLexer.o \
 | |
| 	ExternalLexer.o \
 | |
| 	LexerBase.o \
 | |
| 	LexerModule.o \
 | |
| 	LexerSimple.o \
 | |
| 	StyleContext.o \
 | |
| 	WordList.o
 | |
| 
 | |
| # Required by libraries and DLLs that include lexing
 | |
| SCILEX_OBJS=\
 | |
| 	$(SRC_OBJS) \
 | |
| 	$(LEXLIB_OBJS) \
 | |
| 	$(LEX_OBJS) \
 | |
| 	HanjaDic.o \
 | |
| 	PlatWin.o \
 | |
| 	ScintillaBaseL.o \
 | |
| 	ScintillaWin.o
 | |
| 
 | |
| COMPONENT_OBJS = \
 | |
| 	$(SRC_OBJS) \
 | |
| 	Accessor.o \
 | |
| 	Catalogue.o \
 | |
| 	HanjaDic.o \
 | |
| 	LexerBase.o \
 | |
| 	LexerModule.o \
 | |
| 	LexerSimple.o \
 | |
| 	PlatWin.o \
 | |
| 	ScintillaBase.o \
 | |
| 	ScintillaDLL.o \
 | |
| 	ScintillaWin.o \
 | |
| 	ScintRes.o \
 | |
| 	WordList.o
 | |
| 
 | |
| LEXCOMPONENT_OBJS = \
 | |
| 	$(SCILEX_OBJS) \
 | |
| 	ScintillaDLL.o \
 | |
| 	ScintRes.o
 | |
| 
 | |
| $(COMPONENT): $(COMPONENT_OBJS)
 | |
| 	$(CXX) $(LDFLAGS) -o $@ $(STRIPFLAG) $^ $(CXXFLAGS) $(LIBS)
 | |
| 
 | |
| $(LEXCOMPONENT): $(LEXCOMPONENT_OBJS)
 | |
| 	$(CXX) $(LDFLAGS) -o $@ $(STRIPFLAG) $^ $(CXXFLAGS) $(LIBS)
 | |
| 
 | |
| $(LIBSCI): $(COMPONENT_OBJS)
 | |
| 	$(AR) $(ARFLAGS) $@ $^
 | |
| 	$(RANLIB) $@
 | |
| 
 | |
| $(LIBLEX): $(LEXCOMPONENT_OBJS)
 | |
| 	$(AR) $(ARFLAGS) $@ $^
 | |
| 	$(RANLIB) $@
 | |
| 
 | |
| # Automatically generate dependencies for most files with "make deps"
 | |
| include deps.mak
 | |
| 
 | |
| ScintillaBaseL.o:
 | |
| 	$(CXX) $(CXX_ALL_FLAGS) $(CXXFLAGS) -D SCI_LEXER -c $< -o $@
 | |
| 
 | |
| Catalogue.o: Catalogue.cxx
 | |
| 	$(CXX) $(CXX_ALL_FLAGS) $(CXXFLAGS) -D SCI_LEXER -D SCI_EMPTYCATALOGUE -c $< -o $@
 | |
| 
 | |
| CatalogueL.o: Catalogue.cxx
 | |
| 	$(CXX) $(CXX_ALL_FLAGS) $(CXXFLAGS) -D SCI_LEXER -c $< -o $@
 | |
| 
 | |
| ScintRes.o:	ScintRes.rc
 | |
| 	$(WINDRES) ScintRes.rc $@
 | |
| 
 |