# HG changeset patch # User John Donoghue # Date 1426788208 14400 # Node ID 58935b4de51f380b38b1793a327aa83ecfef6de2 # Parent a781fda0a9c6c8d4afcd9ad018f43ce43900a510 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 diff -r a781fda0a9c6 -r 58935b4de51f Makefile.in --- 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) \ diff -r a781fda0a9c6 -r 58935b4de51f configure.ac --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/default-octave.mk --- 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 \ diff -r a781fda0a9c6 -r 58935b4de51f src/of-communications.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-control.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-dicom.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-fits.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-fl-core.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-image.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-linear-algebra.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-ltfat.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-miscellaneous.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-netcdf.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-odepkg.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-sockets.mk --- 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 diff -r a781fda0a9c6 -r 58935b4de51f src/of-windows.mk --- 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