openbsd-ports/editors/scintilla/patches/patch-gtk_makefile

110 lines
3.7 KiB
Plaintext

$OpenBSD: patch-gtk_makefile,v 1.8 2010/10/03 18:09:01 jeremy Exp $
--- gtk/makefile.orig Tue Aug 17 20:03:30 2010
+++ gtk/makefile Sat Oct 2 20:04:57 2010
@@ -6,7 +6,7 @@
# Builds for GTK+ 2 and no longer supports GTK+ 1.
# Also works with ming32-make on Windows.
-.SUFFIXES: .cxx .c .o .h .a
+.SUFFIXES: .cxx .c .o .h .a .so
ifdef CLANG
CC = clang
CCOMP = clang
@@ -23,14 +23,17 @@ RANLIB = ranlib
endif
endif
-COMPLIB=../bin/scintilla.a
+COMPLIB=../bin/libscintilla.a
+LEXERLIB=../bin/libscintilla_lexers.a
+SHAREDLIB=../bin/libscintilla.so.${LIBscintilla_VERSION}
+SHAREDLEXER=../bin/libscintilla_lexers.so.${LIBscintilla_lexers_VERSION}
vpath %.h ../src ../include ../lexlib
vpath %.cxx ../src ../lexlib ../lexers
-INCLUDEDIRS=-I ../include -I ../src -I ../lexlib
+INCLUDEDIRS=-I ../include -I ../src -I ../lexlib -I /usr/local/include
#~ DEPRECATED=-DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DDISABLE_GDK_FONT
-CXXBASEFLAGS=-Wall -Wno-missing-braces -Wno-char-subscripts -Wno-long-long -pedantic -DGTK -DSCI_LEXER $(INCLUDEDIRS) $(DEPRECATED)
+CXXBASEFLAGS=-Wall -Wno-missing-braces -Wno-char-subscripts -Wno-long-long -pedantic -DGTK -DSCI_LEXER -Dunix $(INCLUDEDIRS) $(DEPRECATED)
ifdef NOTHREADS
THREADFLAGS=-DG_THREADS_IMPL_NONE
@@ -41,35 +44,70 @@ endif
ifdef DEBUG
CXXFLAGS=-DDEBUG -g $(CXXBASEFLAGS) $(THREADFLAGS)
else
-CXXFLAGS=-DNDEBUG -Os $(CXXBASEFLAGS) $(THREADFLAGS)
+CXXFLAGS+=-DNDEBUG $(CXXBASEFLAGS) $(THREADFLAGS)
endif
CONFIGFLAGS:=$(shell pkg-config --cflags gtk+-2.0)
MARSHALLER=scintilla-marshal.o
.cxx.o:
- $(CC) $(CONFIGFLAGS) $(CXXFLAGS) -c $<
+ $(CXX) $(CONFIGFLAGS) $(CXXFLAGS) -c $<
+.cxx.so:
+ $(CXX) -fPIC $(CONFIGFLAGS) $(CXXFLAGS) -o $@ -c $<
.c.o:
$(CCOMP) $(CONFIGFLAGS) $(CXXFLAGS) -w -c $<
+.c.so:
+ $(CCOMP) -fPIC $(CONFIGFLAGS) $(CXXFLAGS) -w -o $@ -c $<
LEXOBJS:=$(addsuffix .o,$(basename $(notdir $(wildcard ../lexers/Lex*.cxx))))
-all: $(COMPLIB)
+ifeq (${NO_SHARED_LIBS},"yes")
+all: static
+else
+all: static shared
+endif
+static: $(COMPLIB) $(LEXERLIB)
+shared: $(SHAREDLIB) $(SHAREDLEXER)
+
+install: install-shared
+ mkdir -p ${PREFIX}/include/scintilla
+ install -m 444 ../include/*.h ${PREFIX}/include/scintilla
+ install -m 444 ${COMPLIB} ${LEXERLIB} ${PREFIX}/lib
+
+ifeq (${NO_SHARED_LIBS},"yes")
+install-shared:
+else
+install-shared:
+ install -m 444 ${SHAREDLIB} ${SHAREDLEXER} ${PREFIX}/lib
+endif
+
clean:
rm -f *.o $(COMPLIB)
deps:
- $(CC) -MM $(CONFIGFLAGS) $(CXXFLAGS) *.cxx ../src/*.cxx | sed -e 's/\/usr.* //' | grep [a-zA-Z] >deps.mak
+ $(CXX) -MM $(CONFIGFLAGS) $(CXXFLAGS) *.cxx ../src/*.cxx | sed -e 's/\/usr.* //' | grep [a-zA-Z] >deps.mak
-$(COMPLIB): Accessor.o CharacterSet.o LexerBase.o LexerModule.o LexerSimple.o StyleContext.o WordList.o \
+LIBOBJS = Accessor.o CharacterSet.o LexerBase.o LexerModule.o LexerSimple.o StyleContext.o WordList.o \
CharClassify.o Decoration.o Document.o PerLine.o Catalogue.o CallTip.o \
ScintillaBase.o ContractionState.o Editor.o ExternalLexer.o PropSetSimple.o PlatGTK.o \
KeyMap.o LineMarker.o PositionCache.o ScintillaGTK.o CellBuffer.o ViewStyle.o \
RESearch.o RunStyles.o Selection.o Style.o Indicator.o AutoComplete.o UniConversion.o XPM.o \
$(MARSHALLER) $(LEXOBJS)
+
+$(COMPLIB): $(LIBOBJS)
$(AR) rc $@ $^
$(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