diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2015-06-20 18:15:07 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2015-06-22 04:10:39 +0200 |
commit | ac87230767db4779a10acf0eaba6493327a3c257 (patch) | |
tree | 6ba271a6dee5b3a7298effdb2eb849c2243beb40 | |
parent | 12d0de235e1b24c2afc34ab13e317ea3ae69792e (diff) | |
download | sciteco-ac87230767db4779a10acf0eaba6493327a3c257.tar.gz |
pass curses CFLAGS into Scinterm build system
* requires a recent patch to Scinterm
* can be overwritten in SciTECO's build system via NCURSES_CFLAGS or
PDCURSES_CFLAGS.
* NCURSES_LIBS has also been introduced. The check for ncurses
will now use pkg-config if available.
* eases multiple builds with different Curses variants
(e.g. when cross-compiling for Windows)
* pass more toolchain variables into Scintilla build process (CC and RANLIB).
This should fix Cross-compiling Scintilla/Gtk
* Pass GTK cflags into Scintilla/Gtk build system.
-rw-r--r-- | configure.ac | 30 | ||||
-rw-r--r-- | scintilla.am | 18 |
2 files changed, 35 insertions, 13 deletions
diff --git a/configure.ac b/configure.ac index 5f3ab62..9e0cc29 100644 --- a/configure.ac +++ b/configure.ac @@ -39,8 +39,9 @@ AC_PROG_CC_C99 AC_PROG_GREP AC_PROG_INSTALL -# Required by the Scintilla build process: +# Additionally required by the Scintilla build process: AC_CHECK_TOOL(AR, ar) +AC_PROG_RANLIB # Check for Windows resource compiler and define # WIN32 conditional @@ -110,7 +111,7 @@ AC_CHECK_FUNCS([memset setlocale strchr strrchr fstat], , [ # Library functions that should exist on UNIX/Linux case $host in *-*-darwin* | *-*-linux* | *-*-cygwin*) - AC_CHECK_FUNCS([realpath fchown], , [ + AC_CHECK_FUNCS([realpath fchown dup dup2], , [ AC_MSG_ERROR([Missing libc function]) ]) ;; @@ -149,14 +150,30 @@ case $INTERFACE in *curses) case $INTERFACE in ncurses) - AC_CHECK_LIB(ncurses, initscr, , [ - AC_MSG_ERROR([libncurses missing!]) + PKG_CHECK_MODULES(NCURSES, [ncurses], [ + CFLAGS="$CFLAGS $NCURSES_CFLAGS" + CXXFLAGS="$CXXFLAGS $NCURSES_CFLAGS" + LIBS="$LIBS $NCURSES_LIBS" + ], [ + AC_CHECK_LIB(ncurses, initscr, , [ + AC_MSG_ERROR([libncurses missing!]) + ]) ]) AC_CHECK_FUNCS([tigetstr]) ;; + pdcurses) - AC_ARG_VAR(PDCURSES_LIBS, [linker flags for PDCurses, - overriding the autoconf check]) + AC_ARG_VAR(PDCURSES_CFLAGS, [ + C compiler flags for PDCurses, + overriding the autoconf check + ]) + CFLAGS="$CFLAGS $PDCURSES_CFLAGS" + CXXFLAGS="$CXXFLAGS $PDCURSES_CFLAGS" + + AC_ARG_VAR(PDCURSES_LIBS, [ + linker flags for PDCurses, + overriding the autoconf check + ]) if [[ "x$PDCURSES_LIBS" = "x" ]]; then AC_CHECK_LIB(pdcurses, initscr, , [ AC_MSG_ERROR([libpdcurses missing! @@ -167,6 +184,7 @@ case $INTERFACE in AC_MSG_RESULT([$PDCURSES_LIBS]) LIBS="$LIBS $PDCURSES_LIBS" fi + AC_CHECK_FUNC([PDC_set_resize_limits], [ AC_DEFINE(PDCURSES_WIN32A, , [PDCurses supports Win32a extensions]) ]) diff --git a/scintilla.am b/scintilla.am index 94877b2..53f22d6 100644 --- a/scintilla.am +++ b/scintilla.am @@ -3,21 +3,25 @@ # for building scintilla.a here. if INTERFACE_GTK -SCINTILLA_MAKE_DIR = @SCINTILLA_PATH@/gtk +MAKE_SCINTILLA = $(MAKE) -C @SCINTILLA_PATH@/gtk \ + CONFIGFLAGS='@LIBGTK_CFLAGS@' else -SCINTILLA_MAKE_DIR = @SCINTERM_PATH@ +MAKE_SCINTILLA = $(MAKE) -C @SCINTERM_PATH@ \ + CURSES_CFLAGS='@PDCURSES_CFLAGS@ @NCURSES_CFLAGS@' endif +# Pass toolchain configuration to Scintilla. +# This is what allows cross compilation +MAKE_SCINTILLA += CC='@CC@' CXX='@CXX@' \ + AR='@AR@' RANLIB='@RANLIB@' + # Build as phony target - we do not know # scintilla.a's dependencies. # If it's up to date, the additional recursive # make call does not hurt. -# NOTE: We can pass the (cross-)compiler to -# Scintilla's build process, but no CFLAGS :-( .PHONY: make-scintilla make-scintilla: - $(MAKE) -C $(SCINTILLA_MAKE_DIR) \ - CXX=@CXX@ AR=@AR@ + $(MAKE_SCINTILLA) # scintilla.a itself is not phony. # This avoids unnecessary relinking if it is @@ -28,7 +32,7 @@ make-scintilla: .PHONY: clean-local-scintilla clean-local-scintilla: - $(MAKE) -C $(SCINTILLA_MAKE_DIR) clean + $(MAKE_SCINTILLA) clean # NOTE: using a separate `clean-local-scintilla` # target allows us to add more custom rules to the |