mirror of
				https://github.com/notepad-plus-plus/notepad-plus-plus.git
				synced 2025-10-31 19:44:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			125 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # Make file for Scintilla on Linux or compatible OS
 | |
| # 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 GCC 4.3 is used and changes will be needed to use other compilers.
 | |
| # GNU make does not like \r\n line endings so should be saved to CVS in binary form.
 | |
| # Builds for GTK+ 2 and no longer supports GTK+ 1.
 | |
| # Also works with ming32-make on Windows.
 | |
| 
 | |
| .SUFFIXES: .cxx .c .o .h .a .list
 | |
| 
 | |
| srcdir ?= .
 | |
| 
 | |
| ifdef CLANG
 | |
| CXX = clang++
 | |
| CXXWARNFLAGS = -Wall -pedantic -Wno-deprecated-register -Wno-missing-braces
 | |
| CC = clang
 | |
| # Can choose aspect to sanitize: address and undefined can simply change SANITIZE but for
 | |
| # thread also need to create Position Independent Executable -> search online documentation
 | |
| SANITIZE = address
 | |
| #SANITIZE = undefined
 | |
| else
 | |
| CXXWARNFLAGS = -Wall -pedantic
 | |
| endif
 | |
| ARFLAGS = rc
 | |
| RANLIB = touch
 | |
| 
 | |
| ifdef GTK3
 | |
| GTKVERSION=gtk+-3.0
 | |
| else
 | |
| GTKVERSION=gtk+-2.0
 | |
| endif
 | |
| 
 | |
| # Environment variable windir always defined on Win32
 | |
| 
 | |
| ifndef windir
 | |
| ifeq ($(shell uname),Darwin)
 | |
| RANLIB = ranlib
 | |
| endif
 | |
| endif
 | |
| 
 | |
| # Enable Position Independent Code except on Windows where it is the default so the flag produces a warning
 | |
| ifndef windir
 | |
| PICFLAGS = -fPIC
 | |
| endif
 | |
| 
 | |
| ifdef windir
 | |
| CC = gcc
 | |
| DEL = del /q
 | |
| COMPLIB=$(srcdir)\..\bin\scintilla.a
 | |
| else
 | |
| DEL = rm -f
 | |
| COMPLIB=$(srcdir)/../bin/scintilla.a
 | |
| endif
 | |
| 
 | |
| vpath %.h $(srcdir) $(srcdir)/../src $(srcdir)/../include $(srcdir)/../lexlib
 | |
| vpath %.c $(srcdir)
 | |
| vpath %.cxx $(srcdir) $(srcdir)/../src $(srcdir)/../lexlib $(srcdir)/../lexers
 | |
| 
 | |
| INCLUDEDIRS=-I $(srcdir)/../include -I $(srcdir)/../src -I $(srcdir)/../lexlib
 | |
| CXXBASEFLAGS=$(CXXWARNFLAGS) $(PICFLAGS) -DGTK -DSCI_LEXER $(INCLUDEDIRS)
 | |
| 
 | |
| ifdef NOTHREADS
 | |
| THREADFLAGS=-DG_THREADS_IMPL_NONE
 | |
| else
 | |
| THREADFLAGS=
 | |
| endif
 | |
| 
 | |
| ifdef NO_CXX11_REGEX
 | |
| REFLAGS=-DNO_CXX11_REGEX
 | |
| endif
 | |
| 
 | |
| ifdef DEBUG
 | |
| ifdef CLANG
 | |
| CTFLAGS=-DDEBUG -g -fsanitize=$(SANITIZE) $(CXXBASEFLAGS) $(THREADFLAGS)
 | |
| else
 | |
| CTFLAGS=-DDEBUG -g $(CXXBASEFLAGS) $(THREADFLAGS)
 | |
| endif
 | |
| else
 | |
| CTFLAGS=-DNDEBUG -Os $(CXXBASEFLAGS) $(THREADFLAGS)
 | |
| endif
 | |
| 
 | |
| CXXTFLAGS:=--std=gnu++17 $(CTFLAGS) $(REFLAGS)
 | |
| 
 | |
| CONFIGFLAGS:=$(shell pkg-config --cflags $(GTKVERSION))
 | |
| MARSHALLER=scintilla-marshal.o
 | |
| 
 | |
| all: $(COMPLIB)
 | |
| 
 | |
| clean:
 | |
| 	$(DEL) *.o $(COMPLIB) *.plist
 | |
| 
 | |
| .cxx.o:
 | |
| 	$(CXX) $(CONFIGFLAGS) $(CXXTFLAGS) $(CXXFLAGS) -c $<
 | |
| .c.o:
 | |
| 	$(CC) $(CONFIGFLAGS) $(CTFLAGS) $(CFLAGS) -w -c $<
 | |
| 
 | |
| GLIB_GENMARSHAL = glib-genmarshal
 | |
| GLIB_GENMARSHAL_FLAGS = --prefix=scintilla_marshal
 | |
| 
 | |
| .list.h:
 | |
| 	$(GLIB_GENMARSHAL) --header $(GLIB_GENMARSHAL_FLAGS) $< > $@
 | |
| .list.c:
 | |
| 	$(GLIB_GENMARSHAL) --body $(GLIB_GENMARSHAL_FLAGS) $< > $@
 | |
| 
 | |
| LEXOBJS:=$(addsuffix .o,$(basename $(sort $(notdir $(wildcard $(srcdir)/../lexers/Lex*.cxx)))))
 | |
| 
 | |
| analyze:
 | |
| 	clang --analyze $(CONFIGFLAGS) $(CXXTFLAGS) $(CXXFLAGS) $(srcdir)/*.cxx $(srcdir)/../src/*.cxx $(srcdir)/../lexlib/*.cxx $(srcdir)/../lexers/*.cxx
 | |
| 
 | |
| depend deps.mak:
 | |
| 	python DepGen.py
 | |
| 
 | |
| $(COMPLIB): Accessor.o CharacterSet.o DefaultLexer.o LexerBase.o LexerModule.o LexerSimple.o StyleContext.o WordList.o \
 | |
| 	CharClassify.o Decoration.o Document.o PerLine.o Catalogue.o CallTip.o CaseConvert.o CaseFolder.o \
 | |
| 	ScintillaBase.o ContractionState.o EditModel.o Editor.o EditView.o ExternalLexer.o MarginView.o \
 | |
| 	PropSetSimple.o PlatGTK.o \
 | |
| 	KeyMap.o LineMarker.o PositionCache.o ScintillaGTK.o ScintillaGTKAccessible.o CellBuffer.o CharacterCategory.o ViewStyle.o \
 | |
| 	RESearch.o RunStyles.o Selection.o Style.o Indicator.o AutoComplete.o UniConversion.o UniqueString.o XPM.o \
 | |
| 	$(MARSHALLER) $(LEXOBJS)
 | |
| 	$(AR) $(ARFLAGS) $@ $^
 | |
| 	$(RANLIB) $@
 | |
| 
 | |
| # Automatically generate header dependencies with "make deps"
 | |
| include deps.mak
 |