summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2020-06-10 16:24:39 +0200
committerAlbrecht Schlosser <albrechts.fltk@online.de>2020-06-10 16:24:39 +0200
commit95165884b67f30d794e963be81d0a6a2adba2d4a (patch)
tree45b0b61e39626c37a508ff67d42df7649215c943
parent3d00b8db4c5537c485e9a3b71a58caeff5a7d906 (diff)
Support cross-compilation with autotools
We use the host system's `fluid` when cross-compiling. This must be executable as `fluid`, i.e. it must be in the PATH or otherwise defined, for instance as an alias.
-rw-r--r--.gitignore1
-rw-r--r--configure.ac36
-rw-r--r--makeinclude.in10
-rw-r--r--test/Makefile10
4 files changed, 41 insertions, 16 deletions
diff --git a/.gitignore b/.gitignore
index 3d1cfe982..57abd8705 100644
--- a/.gitignore
+++ b/.gitignore
@@ -115,6 +115,7 @@ etc/FLTKConfig.cmake
/src/*.sl*
/src/*.a
/src/*.bck
+/src/*.dll
/src/*.sav
/src/*.dylib
diff --git a/configure.ac b/configure.ac
index 12a2a0bf9..fda55a21d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,21 +1,19 @@
dnl -*- sh -*-
dnl the "configure" script is made from this by running GNU "autoconf"
dnl
-dnl "$Id$"
-dnl
dnl Configuration script for the Fast Light Tool Kit (FLTK).
dnl
-dnl Copyright 1998-2018 by Bill Spitzak and others.
+dnl Copyright 1998-2020 by Bill Spitzak and others.
dnl
dnl This library is free software. Distribution and use rights are outlined in
dnl the file "COPYING" which should have been included with this file. If this
dnl file is missing or damaged, see the license at:
dnl
-dnl http://www.fltk.org/COPYING.php
+dnl https://www.fltk.org/COPYING.php
dnl
dnl Please report all bugs and problems on the following page:
dnl
-dnl http://www.fltk.org/str.php
+dnl https://www.fltk.org/str.php
dnl
dnl We need at least autoconf 2.50...
@@ -27,6 +25,13 @@ AC_CONFIG_SRCDIR([src/Fl.cxx])
AC_CANONICAL_HOST
+dnl determine whether we're cross-compiling
+if test "$host" != "$build"; then
+ fltk_cross_compiling="yes"
+else
+ fltk_cross_compiling="no"
+fi
+
dnl Do not automatically add "-g" to compiler options...
dnl This must be _before_ "Find compiler commands..."
ARCHFLAGS="${ARCHFLAGS:=}"
@@ -390,6 +395,16 @@ else
LINKSHARED="$LINKFLTKCAIRO ../lib/libfltk_images.a ../lib/libfltk_forms.a ../lib/libfltk.a"
fi
+dnl Define the fluid executable used when building the test programs.
+dnl In a native build we use the fluid executable created during the build,
+dnl in a cross-compilation we use `fluid' which must exist on the build system
+dnl and must be in the PATH, i.e. executable as 'fluid' (w/o $EXEEXT).
+if test "$fltk_cross_compiling" = "yes"; then
+ FLUID_BUILD="fluid"
+else
+ FLUID_BUILD="../fluid/fluid$EXEEXT"
+fi
+
AC_SUBST(DSOCOMMAND)
AC_SUBST(DSOFLAGS)
AC_SUBST(DSOLINK)
@@ -401,6 +416,7 @@ AC_SUBST(CAIRODSONAME)
AC_SUBST(SHAREDSUFFIX)
AC_SUBST(LINKSHARED)
AC_SUBST(FLUID)
+AC_SUBST(FLUID_BUILD)
AC_ARG_ENABLE(threads, [ --enable-threads enable multi-threading support [[default=yes]]])
@@ -1602,8 +1618,14 @@ case $host_os in
echo " MSys docpath=$msyspath/local/share/doc/fltk"
;;
esac
+dnl
+echo "Cross-compiling: $fltk_cross_compiling"
+if test "$fltk_cross_compiling" = "yes"; then
+ echo " Build: $build -> Host: $host"
+fi
+dnl
echo " Graphics: $graphics"
-
+dnl
if test x$JPEG = x; then
echo "Image Libraries: JPEG=System"
else
@@ -1658,5 +1680,5 @@ dnl Make sure the fltk-config script is executable...
chmod +x fltk-config
dnl
-dnl End of "$Id$".
+dnl End of file.
dnl
diff --git a/makeinclude.in b/makeinclude.in
index bad8b454f..9069abb70 100644
--- a/makeinclude.in
+++ b/makeinclude.in
@@ -3,17 +3,17 @@
#
# Make include file for the Fast Light Tool Kit (FLTK).
#
-# Copyright 1998-2018 by Bill Spitzak and others.
+# Copyright 1998-2020 by Bill Spitzak and others.
#
# This library is free software. Distribution and use rights are outlined in
# the file "COPYING" which should have been included with this file. If this
# file is missing or damaged, see the license at:
#
-# http://www.fltk.org/COPYING.php
+# https://www.fltk.org/COPYING.php
#
# Please report all bugs and problems on the following page:
#
-# http://www.fltk.org/str.php
+# https://www.fltk.org/str.php
#
# FLTK version numbers
@@ -122,6 +122,10 @@ THREADS = @THREADS@
# Name of FLUID executable we install
FLUID = @FLUID@$(EXEEXT)
+# Name and/or path of FLUID executable we use for building:
+# depends on the build type (native or cross-compiler)
+FLUID_BUILD = @FLUID_BUILD@
+
# Possible steps for OS X build only
OSX_ONLY = @OSX_ONLY@
diff --git a/test/Makefile b/test/Makefile
index 40b5344af..959d28709 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,19 +1,17 @@
#
-# "$Id$"
-#
# Test/example program makefile for the Fast Light Tool Kit (FLTK).
#
-# Copyright 1998-2019 by Bill Spitzak and others.
+# Copyright 1998-2020 by Bill Spitzak and others.
#
# This library is free software. Distribution and use rights are outlined in
# the file "COPYING" which should have been included with this file. If this
# file is missing or damaged, see the license at:
#
-# http://www.fltk.org/COPYING.php
+# https://www.fltk.org/COPYING.php
#
# Please report all bugs and problems on the following page:
#
-# http://www.fltk.org/str.php
+# https://www.fltk.org/str.php
#
include ../makeinclude
@@ -302,7 +300,7 @@ uninstall-osx:
# FLUID file rules
.fl.cxx .fl.h: ../fluid/fluid$(EXEEXT)
echo Generating $@ and header from $<...
- ../fluid/fluid$(EXEEXT) -c $<
+ $(FLUID_BUILD) -c $<
# All demos depend on the FLTK library...
$(ALL): $(LIBNAME)