diff options
Diffstat (limited to 'contrib')
m--------- | contrib/scinterm | 0 | ||||
-rw-r--r-- | contrib/scintilla.am | 65 |
2 files changed, 39 insertions, 26 deletions
diff --git a/contrib/scinterm b/contrib/scinterm -Subproject 2701ad38c5bc46d3b0e59ea8cf11dee1488d76a +Subproject 2d5a738e6bc55ff45433492841735b2407ede01 diff --git a/contrib/scintilla.am b/contrib/scintilla.am index 55511b0..9ba728b 100644 --- a/contrib/scintilla.am +++ b/contrib/scintilla.am @@ -1,33 +1,32 @@ # We use the existing Scintilla/Lexilla Makefile build system to # avoid redundancies and maintainance overhead. # These build systems produce static libraries (*.a). -# This however has two diadvantages: -# 1.) Out-of-tree builds are not straight forward and require -# manually cloning the submodules into the build system. -# `make distcheck` is consequently also broken. -# Lexilla already has DIR_O, that could be used for proper -# out of tree builds, but Scintilla is still lacking it. -# 2.) We cannot add plain static libraries to libtool convenience -# libraries using LIBADD. -# Therefore, we cannot wrap Scintilla and Lexilla into a convenience -# library. -# That's why this file must instead be included everywhere where -# scintilla.a and liblexilla.a are referenced and they must be added -# to programs using LDADD. +# This however has the following disadvantages: +# +# * We cannot add plain static libraries to libtool convenience +# libraries using LIBADD. +# Therefore, we cannot wrap Scintilla and Lexilla into a convenience +# library. +# That's why this file must instead be included everywhere where +# scintilla.a and liblexilla.a are referenced and they must be added +# to programs using LDADD. + +LIBSCINTILLA = @abs_top_builddir@/contrib/scintilla/bin/scintilla.a if INTERFACE_GTK -MAKE_SCINTILLA = $(MAKE) -C @SCINTILLA_PATH@/gtk \ +MAKE_SCINTILLA = $(MAKE) -C @top_builddir@/contrib/scintilla/bin \ + -f @SCINTILLA_PATH@/gtk/makefile \ + srcdir=@SCINTILLA_PATH@/gtk \ + COMPLIB=$(LIBSCINTILLA) \ GTK3=yes CONFIGFLAGS='@LIBGTK_CFLAGS@' \ CXXFLAGS='@SCINTILLA_CXXFLAGS@' else -# NOTE: The VPATH hack allows us to keep Scinterm separate from -# the Scintilla repo and avoid using recursive submodules. -# -# FIXME: There is currently no way to override the standard optimization -# flags of Scinterm, so we pass them in CURSES_FLAGS. -MAKE_SCINTILLA = $(MAKE) -C @SCINTILLA_PATH@/bin -f @SCINTERM_PATH@/Makefile \ - VPATH=@SCINTERM_PATH@ \ - CURSES_FLAGS='@PDCURSES_CFLAGS@ @XCURSES_CFLAGS@ @NCURSES_CFLAGS@ @SCINTILLA_CXXFLAGS@' +MAKE_SCINTILLA = $(MAKE) -C @top_builddir@/contrib/scintilla/bin \ + -f @SCINTERM_PATH@/Makefile \ + srcdir=@SCINTERM_PATH@ basedir=@SCINTILLA_PATH@ \ + scintilla=$(LIBSCINTILLA) \ + CXXFLAGS='@SCINTILLA_CXXFLAGS@' \ + CURSES_FLAGS='@PDCURSES_CFLAGS@ @XCURSES_CFLAGS@ @NCURSES_CFLAGS@' endif # Pass toolchain configuration to Scintilla. @@ -40,21 +39,33 @@ MAKE_SCINTILLA += CC='@CC@' CXX='@CXX@' \ # If it's up to date, the additional recursive # make call does not hurt. .PHONY: make-scintilla +# FIXME: deps.mak cannot be generated when building out-of-tree. +# Also this would draw in a Python dependency. +# It needs to be removed in clean-local-scintilla to appease `make distcheck`. make-scintilla: - $(MAKE_SCINTILLA) ../bin/scintilla.a + mkdir -p @top_builddir@/contrib/scintilla/bin + touch @top_builddir@/contrib/scintilla/bin/deps.mak + $(MAKE_SCINTILLA) $(LIBSCINTILLA) # scintilla.a itself is not phony. # This avoids unnecessary relinking if it is # up to date. # Also note the ; which defines this recipe as # empty. -@SCINTILLA_PATH@/bin/scintilla.a : make-scintilla; +$(LIBSCINTILLA) : make-scintilla; .PHONY: clean-local-scintilla clean-local-scintilla: + mkdir -p @top_builddir@/contrib/scintilla/bin $(MAKE_SCINTILLA) clean + test "@abs_top_srcdir" = "@abs_top_builddir@" || \ + $(RM) -f @top_builddir@/contrib/scintilla/bin/deps.mak + +LIBLEXILLA = @abs_top_builddir@/contrib/lexilla/bin/liblexilla.a MAKE_LEXILLA = $(MAKE) -C @LEXILLA_PATH@/src \ + DIR_O=@abs_top_builddir@/contrib/lexilla/bin \ + DIR_BIN=@abs_top_builddir@/contrib/lexilla/bin \ SCINTILLA_INCLUDE=@SCINTILLA_PATH@/include \ CXXFLAGS='@SCINTILLA_CXXFLAGS@' \ CC='@CC@' CXX='@CXX@' \ @@ -68,12 +79,14 @@ MAKE_LEXILLA += BASE_FLAGS='' .PHONY: make-lexilla make-lexilla: - $(MAKE_LEXILLA) ../bin/liblexilla.a + mkdir -p @top_builddir@/contrib/lexilla/bin + $(MAKE_LEXILLA) $(LIBLEXILLA) -@LEXILLA_PATH@/bin/liblexilla.a : make-lexilla; +$(LIBLEXILLA) : make-lexilla; .PHONY: clean-local-lexilla clean-local-lexilla: + mkdir -p @top_builddir@/contrib/lexilla/bin $(MAKE_LEXILLA) clean # NOTE: using a separate `clean-local-scintilla` |