aboutsummaryrefslogtreecommitdiffhomepage
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
m---------contrib/scinterm0
-rw-r--r--contrib/scintilla.am65
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`