$OpenBSD: patch-gtk_makefile,v 1.14 2018/02/24 10:54:50 bket Exp $

Index: gtk/makefile
--- gtk/makefile.orig
+++ gtk/makefile
@@ -8,19 +8,9 @@
 
 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
+.SUFFIXES: .cxx .c .o .h .a .list .so
 ARFLAGS = rc
+AR = ar
 RANLIB = touch
 
 ifdef GTK3
@@ -48,18 +38,21 @@ DEL = del /q
 COMPLIB=$(srcdir)\..\bin\scintilla.a
 else
 DEL = rm -f
-COMPLIB=$(srcdir)/../bin/scintilla.a
+COMPLIB=$(srcdir)/../bin/libscintilla.a
+LEXERLIB=$(srcdir)/../bin/libscintilla_lexers.a
+SHAREDLIB=$(srcdir)/../bin/libscintilla.so.${LIBscintilla_VERSION}
+SHAREDLEXER=$(srcdir)/../bin/libscintilla_lexers.so.${LIBscintilla_lexers_VERSION}
 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
+INCLUDEDIRS=-I $(srcdir)/../include -I $(srcdir)/../src -I $(srcdir)/../lexlib -I${LOCALBASE}/include
 ifdef CHECK_DEPRECATED
 DEPRECATED=-DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DDISABLE_GDK_FONT
 endif
-CXXBASEFLAGS=$(CXXWARNFLAGS) $(PICFLAGS) -DGTK -DSCI_LEXER $(INCLUDEDIRS) $(DEPRECATED)
+CXXBASEFLAGS=$(CXXWARNFLAGS) $(PICFLAGS) -DGTK -DSCI_LEXER -Dunix $(INCLUDEDIRS) $(DEPRECATED)
 
 ifdef NOTHREADS
 THREADFLAGS=-DG_THREADS_IMPL_NONE
@@ -78,7 +71,7 @@ else
 CTFLAGS=-DDEBUG -g $(CXXBASEFLAGS) $(THREADFLAGS)
 endif
 else
-CTFLAGS=-DNDEBUG -Os $(CXXBASEFLAGS) $(THREADFLAGS)
+CTFLAGS+=-DNDEBUG $(CXXBASEFLAGS) $(THREADFLAGS)
 endif
 
 CXXTFLAGS:=--std=gnu++17 $(CTFLAGS) $(REFLAGS)
@@ -88,8 +81,12 @@ MARSHALLER=scintilla-marshal.o
 
 .cxx.o:
 	$(CXX) $(CONFIGFLAGS) $(CXXTFLAGS) $(CXXFLAGS) -c $<
+.cxx.so:
+	$(CXX) -fPIC $(CONFIGFLAGS) $(CXXTFLAGS) $(CXXFLAGS) -o $@ -c $<
 .c.o:
 	$(CC) $(CONFIGFLAGS) $(CTFLAGS) $(CFLAGS) -w -c $<
+.c.so:
+	$(CC) -fPIC $(CONFIGFLAGS) $(CFLAGS) -w -o $@ -c $<
 
 GLIB_GENMARSHAL = glib-genmarshal
 GLIB_GENMARSHAL_FLAGS = --prefix=scintilla_marshal
@@ -101,8 +98,14 @@ GLIB_GENMARSHAL_FLAGS = --prefix=scintilla_marshal
 
 LEXOBJS:=$(addsuffix .o,$(basename $(sort $(notdir $(wildcard $(srcdir)/../lexers/Lex*.cxx)))))
 
-all: $(COMPLIB)
+all: $(COMPLIB) $(SHAREDLIB) $(LEXERLIB) $(SHAREDLEXER)
 
+install:
+	mkdir -p ${PREFIX}/include/scintilla
+	install -m 444 ../include/*.h ${PREFIX}/include/scintilla
+	install -m 444 ${COMPLIB} ${LEXERLIB} ${PREFIX}/lib
+	install -m 444 ${SHAREDLIB} ${SHAREDLEXER} ${PREFIX}/lib
+
 clean:
 	$(DEL) *.o $(COMPLIB) *.plist
 
@@ -116,15 +119,26 @@ deps: deps.mak
 deps.mak:
 	$(CXX) -MM $(CONFIGFLAGS) $(CXXTFLAGS) $(DEPSRCS) | sed -e 's/\/usr.* //' | grep [a-zA-Z] > $@
 
-$(COMPLIB): Accessor.o CharacterSet.o DefaultLexer.o LexerBase.o LexerModule.o LexerSimple.o StyleContext.o WordList.o \
+LIBOBJS= 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 XPM.o \
-	$(MARSHALLER) $(LEXOBJS)
+	$(MARSHALLER)
+
+$(COMPLIB): $(LIBOBJS)
 	$(AR) $(ARFLAGS) $@ $^
 	$(RANLIB) $@
+
+$(LEXERLIB): $(LEXOBJS)
+	$(AR) rc $@ $^
+	$(RANLIB) $@
+
+$(SHAREDLIB): $(addsuffix .so,$(basename $(LIBOBJS)))
+	$(CXX) -shared -fPIC -o $@ -Wl,-soname,$(notdir $(SHAREDLIB)) $^
+$(SHAREDLEXER): $(addsuffix .so,$(basename $(LEXOBJS)))
+	$(CXX) -shared -fPIC -o $@ -Wl,-soname,$(notdir $(SHAREDLEXER)) $^
 
 # Automatically generate header dependencies with "make deps"
 include deps.mak
