changeset 3853:58935b4de51f

Enable build cross mkoctfile and compile of-XXXX package files * Makefile.in Add ENABLE_BINARY_PACKAGES, MXE_MKOCTFILE variable. Add OCTAVE_FORGE_PKG_COMPILE, OCTAVE_FORGE_PKG_BUILD_NOCOMPILE macros * configure.ac: add --enable-binary-packages option * src/default-octave.mk: if mingw, enable cross compile of mkoctfile, install the cross built mkoctfile to usr/bin * src/of-communications.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-control.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-dicom.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-fits.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-fl-core.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-image.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-linear-algebra.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-ltfat.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-linear-algebra.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-miscellaneous.mk: use OCTAVE_FORGE_PKG_BUILD with UNITS_AVAILABLE=yes arg * src/of-netcdf.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-odepkg.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-sockets.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule * src/of-windows.mk: use OCTAVE_FORGE_PKG_BUILD_NOCOMPILE rule
author John Donoghue
date Thu, 19 Mar 2015 14:03:28 -0400
parents a781fda0a9c6
children 85568f3159a4
files Makefile.in configure.ac src/default-octave.mk src/of-communications.mk src/of-control.mk src/of-dicom.mk src/of-fits.mk src/of-fl-core.mk src/of-image.mk src/of-linear-algebra.mk src/of-ltfat.mk src/of-miscellaneous.mk src/of-netcdf.mk src/of-odepkg.mk src/of-sockets.mk src/of-windows.mk
diffstat 16 files changed, 60 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Thu Mar 19 07:46:36 2015 -0400
+++ b/Makefile.in	Thu Mar 19 14:03:28 2015 -0400
@@ -51,6 +51,10 @@
 # you know what you are doing.
 ENABLE_64 := @ENABLE_64@
 
+# create binary octave forge tools.
+# if cross, compiling, this also means we will attempt to create cross mkoctfile
+ENABLE_BINARY_PACKAGES := @ENABLE_BINARY_PACKAGES@
+
 # Should match what config.guess prints for your system.
 # If cross compiling, you must set it manually.
 ifeq ($(MXE_NATIVE_BUILD),yes)
@@ -309,6 +313,8 @@
   MXE_UIC := $(HOST_BINDIR)/uic
   MXE_LRELEASE := $(HOST_BINDIR)/lrelease
   MXE_RCC := $(HOST_BINDIR)/rcc
+
+  MXE_MKOCTFILE := $(HOST_BINDIR)/mkoctfile
 else
   MXE_TOOL_PREFIX := $(TARGET)-
   MXE_AR := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)ar'
@@ -331,6 +337,8 @@
   MXE_UIC := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)uic'
   MXE_LRELEASE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)lrelease'
   MXE_RCC := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)rcc'
+
+  MXE_MKOCTFILE := '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)mkoctfile'
 endif
 
 ifeq ($(MXE_SYSTEM),mingw)
@@ -578,6 +586,26 @@
     fi
 endef
 
+define OCTAVE_FORGE_PKG_COMPILE
+  if [ -d '$(1)/src' ]; then \
+    if [ -f '$(1)/src/configure' ]; then \
+      cd '$(1)/src' && ./configure $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
+        $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) MKOCTFILE='$(MXE_MKOCTFILE)'\
+        $(4); \
+    fi; \
+    if [ -f '$(1)/src/Makefile' ]; then \
+      $(MAKE) -C '$(1)/src' MKOCTFILE='$(MXE_MKOCTFILE) --verbose'; \
+    fi; \
+  fi
+endef
+
+define OCTAVE_FORGE_PKG_BUILD_NOCOMPILE
+    mkdir -p '$(3)$(HOST_PREFIX)/src'
+    cd '$(1)/..' \
+      && tar cvfz $($(PKG)_FILE) $($(PKG)_SUBDIR) \
+      && $(INSTALL) -m644 '$($(PKG)_FILE)' '$(3)$(HOST_PREFIX)/src'
+endef
+
 ifeq ($(MXE_SYSTEM),msvc)
 define OCTAVE_FORGE_PKG_BUILD
     $(INSTALL) -d '$(3)$(HOST_PREFIX)/local/octave-$(octave_VERSION)/share/octave'
@@ -590,6 +618,9 @@
 endef
 else
 define OCTAVE_FORGE_PKG_BUILD
+    if [ $(ENABLE_BINARY_PACKAGES) = yes ]; then \
+      $(OCTAVE_FORGE_PKG_COMPILE); \
+    fi
     mkdir -p '$(3)$(HOST_PREFIX)/src'
     cd '$(1)/..' \
       && tar cvfz $($(PKG)_FILE) $($(PKG)_SUBDIR) \
--- a/configure.ac	Thu Mar 19 07:46:36 2015 -0400
+++ b/configure.ac	Thu Mar 19 14:03:28 2015 -0400
@@ -181,6 +181,13 @@
    
 AC_SUBST(ENABLE_OCTAVE)
 
+ENABLE_BINARY_PACKAGES=no
+AC_ARG_ENABLE([binary-packages],
+  [AS_HELP_STRING([--enable-binary-packages],
+    [Enable creating binary octave forge packages])],
+  [if test "$enableval" = yes; then ENABLE_BINARY_PACKAGES=yes; fi], [])
+AC_SUBST(ENABLE_BINARY_PACKAGES)
+
 ### Default is to cross compile for mingw.
 
 echo $host_alias
--- a/src/default-octave.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/default-octave.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -91,6 +91,13 @@
   $(PKG)_EXTRA_CONFIGURE_OPTIONS += --with-x=no
 endif
 
+# if want binary packages and are cross compiling, then we need cross mkoctfile
+ifeq ($(ENABLE_BINARY_PACKAGES),yes)
+  ifeq ($(MXE_NATIVE_BUILD),no)
+    $(PKG)_EXTRA_CONFIGURE_OPTIONS += --enable-cross-mkoctfile
+  endif
+endif
+
 define $(PKG)_UPDATE
     echo 'Warning: Updates are temporarily disabled for package octave.' >&2;
     echo $($(PKG)_VERSION)
@@ -138,6 +145,8 @@
 
     if [ "x$(MXE_SYSTEM)" == "xmingw" ]; then \
       cp '$(1)/.build/src/.libs/octave-gui.exe' '$(3)$(HOST_BINDIR)'; \
+      mkdir -p '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \
+      $(INSTALL) '$(1)/.build/src/$(MXE_TOOL_PREFIX)mkoctfile' '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \
     fi
 
     if [ "x$(ENABLE_DOCS)" == "xyes" ]; then \
--- a/src/of-communications.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-communications.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-control.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-control.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-dicom.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-dicom.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-fits.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-fits.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-fl-core.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-fl-core.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-image.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-image.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-linear-algebra.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-linear-algebra.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-ltfat.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-ltfat.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-miscellaneous.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-miscellaneous.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(call OCTAVE_FORGE_PKG_BUILD,$(1),$(2),$(3),UNITS_AVAILABLE=yes)
 endef
--- a/src/of-netcdf.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-netcdf.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-odepkg.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-odepkg.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-sockets.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-sockets.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef
--- a/src/of-windows.mk	Thu Mar 19 07:46:36 2015 -0400
+++ b/src/of-windows.mk	Thu Mar 19 14:03:28 2015 -0400
@@ -18,5 +18,5 @@
 endef
 
 define $(PKG)_BUILD
-    $(OCTAVE_FORGE_PKG_BUILD)
+    $(OCTAVE_FORGE_PKG_BUILD_NOCOMPILE)
 endef