--- makefile.orig	2017-08-16 07:34:01 UTC
+++ makefile
@@ -9,17 +9,7 @@
 srcdir ?= .
 
 .SUFFIXES: .cxx .c .o .h .a .list
-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
 
@@ -48,7 +38,12 @@ DEL = del /q
 COMPLIB=$(srcdir)\..\bin\scintilla.a
 else
 DEL = rm -f
-COMPLIB=$(srcdir)/../bin/scintilla.a
+COMPLIB_NAME=libscintilla.so
+COMPLIB_SONAME=$(COMPLIB_NAME).$(MAJOR)
+COMPLIB=$(COMPLIB_SONAME).$(AGE).$(REVISION)
+LEXRLIB_NAME=libscintilla_lexers.so
+LEXRLIB_SONAME=$(LEXRLIB_NAME).$(MAJOR)
+LEXRLIB=$(LEXRLIB_SONAME).$(AGE).$(REVISION)
 endif
 
 vpath %.h $(srcdir) $(srcdir)/../src $(srcdir)/../include $(srcdir)/../lexlib
@@ -101,7 +96,7 @@ GLIB_GENMARSHAL_FLAGS = --prefix=scintil
 
 LEXOBJS:=$(addsuffix .o,$(basename $(sort $(notdir $(wildcard $(srcdir)/../lexers/Lex*.cxx)))))
 
-all: $(COMPLIB)
+all: $(COMPLIB) $(LEXRLIB)
 
 clean:
 	$(DEL) *.o $(COMPLIB) *.plist
@@ -122,9 +117,11 @@ $(COMPLIB): Accessor.o CharacterSet.o De
 	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 XPM.o \
-	$(MARSHALLER) $(LEXOBJS)
-	$(AR) $(ARFLAGS) $@ $^
-	$(RANLIB) $@
+	$(MARSHALLER)
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,-soname,$(COMPLIB_SONAME) -o $@ $^ -Wl,--as-needed $(CONFIGLIBS)
+
+$(LEXRLIB): $(LEXOBJS)
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,-soname,$(LEXRLIB_SONAME) -o $@ $^ -Wl,--as-needed $(CONFIGLIBS)
 
 # Automatically generate header dependencies with "make deps"
 include deps.mak
