--- scite/gtk/makefile 2020-09-11 18:44:44.000000000 +0800 +++ scite/gtk/makefile 2024-06-14 21:44:14.000000000 +0800 @@ -16,14 +16,15 @@ ifdef 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 = address #SANITIZE = undefined -CXX = clang++ -CC = clang -BASE_FLAGS += -fsanitize=$(SANITIZE) +#CXX = clang++ +#CC = clang +#BASE_FLAGS += -fsanitize=$(SANITIZE) WARNINGS += -Wno-deprecated-register WARNINGS += -Wno-empty-body else +CXXFLAGS += @CXX_ABI_FLAG@ WARNINGS += -Wno-misleading-indentation endif PKG_CONFIG ?= pkg-config @@ -40,7 +41,7 @@ ifdef gnomeprefix prefix=$(gnomeprefix) else - prefix=/usr + prefix=$(prefix) endif endif datadir=$(prefix)/share @@ -54,18 +55,26 @@ PROG = $(srcdir)/../bin/SciTE # make should be run in ../../scintilla/gtk to compile all the lexers. -SHAREDEXTENSION = $(if $(windir),dll,so) +ifdef windir + SHAREDEXTENSION = dll +else + ifeq ($(shell uname),Darwin) + SHAREDEXTENSION = dylib + else + SHAREDEXTENSION = so + endif +endif COMPLIB=$(SCINTILLA_DIR)/bin/scintilla.a COMPONENT=$(srcdir)/../bin/libscintilla.$(SHAREDEXTENSION) LEXILLA=$(srcdir)/../bin/liblexilla.$(SHAREDEXTENSION) -all: $(PROG) $(COMPONENT) $(LEXILLA) +all: $(PROG) vpath %.h $(srcdir) $(srcdir)/../src $(SCINTILLA_DIR)/include vpath %.cxx $(srcdir) $(srcdir)/../src INCLUDES=-I $(SCINTILLA_DIR)/include -I $(srcdir)/../src -DEFINES += -DGTK +DEFINES += -D__unix__ -DGTK DEFINES += -DPIXMAP_PATH=\"$(pixmapdir)\" -DSYSCONF_PATH=\"$(SYSCONF_PATH)\" DEFINES += -D$(if $(DEBUG),DEBUG,NDEBUG) @@ -93,7 +102,7 @@ DEFINES += -DNO_LUA endif -LIBS += -lm -lstdc++ +LIBS += -lm UNAME:=$(shell uname -s) ifeq ($(UNAME), Linux) @@ -104,13 +113,13 @@ endif %.o: %.cxx - $(CXX) $(CPPFLAGS) --std=c++17 $(DEFINES) $(INCLUDES) $(WARNINGS) $(CONFIGFLAGS) $(BASE_FLAGS) $(CXXFLAGS) -c $< -o $@ + $(CXX) $(CPPFLAGS) -std=c++17 $(DEFINES) $(INCLUDES) $(WARNINGS) $(CONFIGFLAGS) $(BASE_FLAGS) $(CXXFLAGS) -c $< -o $@ clean: rm -f *.o *.plist $(PROG) analyze: - clang --analyze --std=c++17 $(DEFINES) $(INCLUDES) $(WARNINGS) $(CONFIGFLAGS) $(BASE_FLAGS) $(CXXFLAGS) $(srcdir)/*.cxx $(srcdir)/../src/*.cxx + clang --analyze -std=c++17 $(DEFINES) $(INCLUDES) $(WARNINGS) $(CONFIGFLAGS) $(BASE_FLAGS) $(CXXFLAGS) $(srcdir)/*.cxx $(srcdir)/../src/*.cxx depend deps.mak: $(PYTHON) AppDepGen.py @@ -151,7 +160,7 @@ Utf8_16.o $(PROG): SciTEGTK.o GUIGTK.o Widget.o DirectorExtension.o $(SRC_OBJS) $(LUA_OBJS) - $(CXX) $(BASE_FLAGS) $(LDFLAGS) -rdynamic -Wl,--as-needed -Wl,-rpath,'$${ORIGIN}' -Wl,--version-script $(srcdir)/lua.vers -Wl,-rpath,$(libdir) $^ -o $@ $(CONFIGLIB) $(LIBS) -L ../../scintilla/bin -lscintilla $(LDLIBS) + $(CXX) $(BASE_FLAGS) $(LDFLAGS) -Wl,-rpath,$(libdir) $^ -o $@ $(CONFIGLIB) $(LIBS) -L ../../scintilla/bin -lscintilla $(LDLIBS) # Automatically generate header dependencies with "make deps" include deps.mak --- scintilla/gtk/makefile 2020-09-11 18:44:28.000000000 +0800 +++ scintilla/gtk/makefile 2024-06-14 21:45:38.000000000 +0800 @@ -16,8 +16,8 @@ WARNINGS = -Wpedantic -Wall ifdef CLANG -CXX = clang++ -CC = clang +#CXX = clang++ +#CC = clang WARNINGS += -Wno-deprecated-register ifdef windir # Turn off some warnings that occur when Clang is being used on Windows where it @@ -33,9 +33,11 @@ endif # 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 = address #SANITIZE = undefined -BASE_FLAGS += -fsanitize=$(SANITIZE) +# BASE_FLAGS += -fsanitize=$(SANITIZE) +else +CXXFLAGS += @CXX_ABI_FLAG@ endif ARFLAGS = rc RANLIB ?= ranlib @@ -58,7 +60,17 @@ PYTHON = $(if $(windir),pyw,python3) -SHAREDEXTENSION = $(if $(windir),dll,so) +ifdef windir + SHAREDEXTENSION = dll +else + ifeq ($(shell uname),Darwin) + LDFLAGS += -dynamiclib + SHAREDEXTENSION = dylib + else + SHAREDEXTENSION = so + endif +endif + ifdef windir CC = gcc @@ -66,7 +78,7 @@ LEXILLA = lexilla.dll else DEL = rm -f -LEXILLA = liblexilla.so +LEXILLA = liblexilla.$(SHAREDEXTENSION) endif COMPLIB=$(basedir)/bin/scintilla.a COMPONENT=$(basedir)/bin/libscintilla.$(SHAREDEXTENSION) @@ -75,8 +87,8 @@ vpath %.c $(srcdir) vpath %.cxx $(srcdir) $(basedir)/src $(basedir)/lexlib $(basedir)/lexers -INCLUDES=-I $(basedir)/include -I $(basedir)/src -I $(basedir)/lexlib -DEFINES += -DGTK -DSCI_LEXER +INCLUDES = -I $(basedir)/include -I $(basedir)/src -I $(basedir)/lexlib +DEFINES += -D__unix__ -DGTK -DSCI_LEXER BASE_FLAGS += $(WARNINGS) ifdef NO_CXX11_REGEX @@ -86,8 +98,8 @@ DEFINES += -D$(if $(DEBUG),DEBUG,NDEBUG) BASE_FLAGS += $(if $(DEBUG),-g,-Os) -CXX_BASE_FLAGS =--std=c++17 $(BASE_FLAGS) -CXX_ALL_FLAGS =$(DEFINES) $(INCLUDES) $(CXX_BASE_FLAGS) $(CONFIG_FLAGS) +CXX_BASE_FLAGS = -std=c++17 $(BASE_FLAGS) +CXX_ALL_FLAGS = $(DEFINES) $(INCLUDES) $(CXX_BASE_FLAGS) $(CONFIG_FLAGS) CONFIG_FLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION)) CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gmodule-no-export-2.0) --- scintilla/lexilla/src/makefile 2020-06-01 07:08:11.000000000 +0800 +++ scintilla/lexilla/src/makefile 2024-06-14 22:13:55.000000000 +0800 @@ -26,7 +26,6 @@ else SHARED_NAME = liblexilla ifeq ($(shell uname),Darwin) - CLANG := 1 LDFLAGS += -dynamiclib SHAREDEXTENSION = dylib else @@ -38,14 +37,16 @@ LEXILLA=$(DIR_BIN)/$(SHARED_NAME).$(SHAREDEXTENSION) LIBLEXILLA=$(DIR_BIN)/liblexilla.a -BASE_FLAGS += --std=c++17 +BASE_FLAGS += -std=c++17 ifdef CLANG -CXX = clang++ +#CXX = clang++ ifdef windir # Clang on Win32 uses MSVC headers so will complain about strcpy without this DEFINES += -D_CRT_SECURE_NO_DEPRECATE=1 endif +else +CXXFLAGS += @CXX_ABI_FLAG@ endif ifdef windir