# HG changeset patch # User John Donoghue # Date 1413773900 14400 # Node ID 933b99febcf10dc68f91669e0a1343d3cbebf110 # Parent 5d0ed3ca59105f1bc8d4ca7d1986efb9d4084826 Expand options to support 3 possible sources of octave * configure.ac: modify --enable-stable rule to --enable-octave=source (stable,alpha,default) * Makefile.am: modify OCTAVE_TARGET based on octave build value set in configure. * index.html: added master-octave information. * src/default-octave.mk: new file. * src/default-octave-1-docinstall.patch * dist-files.mk: add default-octave-1-docinstall.patch default-octave.mk * binary-dist-rules.mk: use OCTAVE_TARGET to decide on tarball/installer name diff -r 5d0ed3ca5910 -r 933b99febcf1 Makefile.in --- a/Makefile.in Sun Oct 05 11:12:39 2014 -0400 +++ b/Makefile.in Sun Oct 19 22:58:20 2014 -0400 @@ -1,13 +1,7 @@ # This file is part of MXE. # See index.html for further information. -STABLE_BUILD := @ENABLE_STABLE@ - -ifeq ($(STABLE_BUILD),yes) - OCTAVE_TARGET := stable-octave -else - OCTAVE_TARGET := octave -endif +OCTAVE_TARGET := @ENABLE_OCTAVE@octave PWD := $(shell pwd) TOP_DIR := $(PWD) diff -r 5d0ed3ca5910 -r 933b99febcf1 binary-dist-rules.mk --- a/binary-dist-rules.mk Sun Oct 05 11:12:39 2014 -0400 +++ b/binary-dist-rules.mk Sun Oct 19 22:58:20 2014 -0400 @@ -1,5 +1,5 @@ -ifeq ($(STABLE_BUILD),yes) +ifeq ($(OCTAVE_TARGET),stable-octave) OCTAVE_DIST_NAME := octave-$($(OCTAVE_TARGET)_VERSION) else OCTAVE_DIST_NAME := octave-$(DATE) diff -r 5d0ed3ca5910 -r 933b99febcf1 configure.ac --- a/configure.ac Sun Oct 05 11:12:39 2014 -0400 +++ b/configure.ac Sun Oct 19 22:58:20 2014 -0400 @@ -150,12 +150,29 @@ [if test "$enableval" = no; then ENABLE_OPENBLAS=no; fi], []) AC_SUBST(ENABLE_OPENBLAS) -ENABLE_STABLE=yes -AC_ARG_ENABLE([stable], - [AS_HELP_STRING([--disable-stable], - [Disable stable build of octave and use devel octave instead])], - [if test "$enableval" = no; then ENABLE_STABLE=no; fi], []) -AC_SUBST(ENABLE_STABLE) +ENABLE_OCTAVE=stable +AC_ARG_ENABLE([octave], + [AS_HELP_STRING([--enable-octave=stable], + [Enable a specific build of octave (stable, alpha, default)])], + [], []) + +case $enableval in + stable) + ENABLE_OCTAVE="stable-" + ;; + alpha) + ENABLE_OCTAVE="" + ;; + default) + ENABLE_OCTAVE="default-" + ;; + *) + ENABLE_OCTAVE="stable-" + AC_MSG_WARN([Unknown octave type $enableval - using enable-octave=stable]) + ;; +esac + +AC_SUBST(ENABLE_OCTAVE) ### Default is to cross compile for mingw. diff -r 5d0ed3ca5910 -r 933b99febcf1 dist-files.mk --- a/dist-files.mk Sun Oct 05 11:12:39 2014 -0400 +++ b/dist-files.mk Sun Oct 19 22:58:20 2014 -0400 @@ -60,6 +60,8 @@ dcmtk-1-fixes.patch \ dcmtk-2-ming64.patch \ dcmtk.mk \ + default-octave-1-docinstall.patch \ + default-octave.mk \ devil-1-png.patch \ devil.mk \ eigen.mk \ diff -r 5d0ed3ca5910 -r 933b99febcf1 index.html --- a/index.html Sun Oct 05 11:12:39 2014 -0400 +++ b/index.html Sun Oct 19 22:58:20 2014 -0400 @@ -1098,6 +1098,10 @@ DCMTK + default-octave + Octave + + devil DevIL diff -r 5d0ed3ca5910 -r 933b99febcf1 src/default-octave-1-docinstall.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/default-octave-1-docinstall.patch Sun Oct 19 22:58:20 2014 -0400 @@ -0,0 +1,16 @@ +diff -ur a/doc/interpreter/Makefile.in b/doc/interpreter/Makefile.in +--- a/doc/interpreter/Makefile.in 2013-12-27 17:01:52.000000000 -0500 ++++ b/doc/interpreter/Makefile.in 2014-01-21 12:47:59.618865568 -0500 +@@ -2435,8 +2435,10 @@ + if test -d "$$d2"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ + $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ +- echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ +- $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ ++ for htm in "$$d2"/*; do \ ++ echo " $(INSTALL_DATA) '$$htm' '$(DESTDIR)$(htmldir)/$$f'"; \ ++ $(INSTALL_DATA) "$$htm" "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ ++ done; \ + else \ + list2="$$list2 $$d2"; \ + fi; \ diff -r 5d0ed3ca5910 -r 933b99febcf1 src/default-octave.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/default-octave.mk Sun Oct 19 22:58:20 2014 -0400 @@ -0,0 +1,134 @@ +# This file is part of MXE. +# See index.html for further information. + +PKG := master-octave +$(PKG)_IGNORE := +$(PKG)_VERSION := 4.1.0+ +$(PKG)_CHECKSUM := 0a72ae6da93c7e8bf6b8230dab416fe77f77d1b6 +$(PKG)_SUBDIR := octave-$($(PKG)_VERSION) +$(PKG)_FILE := octave-$($(PKG)_VERSION).tar.gz +$(PKG)_URL := http://hydra.nixos.org/job/gnu/octave-default/tarball/latest/download +ifeq ($(USE_SYSTEM_FONTCONFIG),no) + $(PKG)_FONTCONFIG := fontconfig +endif +$(PKG)_DEPS := blas arpack curl fftw fltk $($(PKG)_FONTCONFIG) ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 lapack pcre pstoedit qrupdate qscintilla qt readline suitesparse texinfo zlib +ifeq ($(ENABLE_64),no) + $(PKG)_DEPS += qhull +endif +ifeq ($(ENABLE_JIT),yes) + $(PKG)_DEPS += llvm + $(PKG)_ENABLE_JIT_CONFIGURE_OPTIONS := --enable-jit +else + $(PKG)_ENABLE_JIT_CONFIGURE_OPTIONS := --disable-jit +endif + +ifeq ($(ENABLE_JAVA),no) + $(PKG)_ENABLE_JAVA_CONFIGURE_OPTIONS := --disable-java +else + ifeq ($(MXE_SYSTEM),mingw) + ifeq ($(MXE_NATIVE_BUILD),no) + $(PKG)_ENABLE_JAVA_CONFIGURE_OPTIONS := \ + --with-java-includedir="$(HOST_INCDIR)/java" + endif + endif +endif + +ifneq ($(ENABLE_DOCS),yes) + $(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS := --disable-docs +endif + +ifeq ($(MXE_NATIVE_BUILD),yes) + $(PKG)_CONFIGURE_ENV := LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) + ifeq ($(ENABLE_64),yes) + $(PKG)_ENABLE_64_CONFIGURE_OPTIONS := --enable-64 --without-qhull F77_INTEGER_8_FLAG=-fdefault-integer-8 + endif +else + ifeq ($(MXE_SYSTEM),mingw) + $(PKG)_CROSS_CONFIG_OPTIONS := \ + FLTK_CONFIG='$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)fltk-config' \ + gl_cv_func_gettimeofday_clobber=no + ifeq ($(ENABLE_64),yes) + $(PKG)_ENABLE_64_CONFIGURE_OPTIONS := --enable-64 --without-qhull F77_INTEGER_8_FLAG=-fdefault-integer-8 ax_blas_f77_func_ok=yes + endif + endif +endif + +ifeq ($(MXE_SYSTEM),msvc) + $(PKG)_PREFIX := '$(HOST_PREFIX)/local/$($(PKG)_SUBDIR)' + # - Enable atomic refcount (required for QtHandles) + # - Skip configure test for pow and sqrt, MSVC fails to compile them + # because it uses intrinsics (with -O2 flag) and bump on the fake + # "char FUNC()" forward declaration. + # - Override CFLAGS and CXXFLAGS to disable some warnings. + $(PKG)_EXTRA_CONFIGURE_OPTIONS := \ + --enable-atomic-refcount \ + ac_cv_func_pow=yes ac_cv_func_sqrt=yes \ + CFLAGS='-O2 -wd4244 -wd4003 -wd4005 -wd4068' \ + CXXFLAGS='-O2 -wd4244 -wd4003 -wd4005 -wd4068' +else + $(PKG)_PREFIX := '$(HOST_PREFIX)' + $(PKG)_EXTRA_CONFIGURE_OPTIONS := \ + LDFLAGS='-Wl,-rpath-link,$(HOST_LIBDIR) -L$(HOST_LIBDIR)' +endif + +ifeq ($(MXE_SYSTEM),mingw) + $(PKG)_EXTRA_CONFIGURE_OPTIONS += --with-x=no +endif + +define $(PKG)_UPDATE + echo 'Warning: Updates are temporarily disabled for package octave.' >&2; + echo $($(PKG)_VERSION) +endef + +define $(PKG)_BUILD + # jni install + if [ "$(MXE_SYSTEM)" == "mingw" ] \ + && [ "$(MXE_NATIVE_BUILD)" == "no" ] \ + && [ "$(ENABLE_JAVA)" == "yes" ]; then \ + if [ ! -f $(HOST_INCDIR)/java/jni.h ]; then \ + mkdir -p '$(HOST_INCDIR)/java'; \ + $(WGET) -N http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/raw-file/tip/src/share/javavm/export/jni.h \ + -O $(HOST_INCDIR)/java/jni.h; \ + fi; \ + if [ ! -f $(HOST_INCDIR)/java/win32/jni_md.h ]; then \ + mkdir -p '$(HOST_INCDIR)/java/win32'; \ + $(WGET) -N http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/raw-file/tip/src/windows/javavm/export/jni_md.h \ + -O $(HOST_INCDIR)/java/win32/jni_md.h; \ + fi; \ + fi + + mkdir '$(1)/.build' + cd '$(1)/.build' && $($(PKG)_CONFIGURE_ENV) '$(1)/configure' \ + $(CONFIGURE_CPPFLAGS) $(CONFIGURE_LDFLAGS) \ + $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \ + --prefix='$($(PKG)_PREFIX)' \ + $($(PKG)_CROSS_CONFIG_OPTIONS) \ + $($(PKG)_ENABLE_64_CONFIGURE_OPTIONS) \ + $($(PKG)_ENABLE_JAVA_CONFIGURE_OPTIONS) \ + $($(PKG)_ENABLE_JIT_CONFIGURE_OPTIONS) \ + $($(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS) \ + $($(PKG)_EXTRA_CONFIGURE_OPTIONS) \ + PKG_CONFIG='$(MXE_PKG_CONFIG)' \ + PKG_CONFIG_PATH='$(HOST_LIBDIR)/pkgconfig' \ + && $(CONFIGURE_POST_HOOK) + + ## We want both of these install steps so that we install in the + ## location set by the configure --prefix option, and the other + ## in a directory tree that will have just Octave files. + $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)' + + if [ "x$(MXE_SYSTEM)" == "xmingw" ]; then \ + cp '$(1)/.build/src/.libs/octave-gui.exe' '$(3)$(HOST_BINDIR)'; \ + fi + + if [ "x$(ENABLE_DOCS)" == "xyes" ]; then \ + $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(3) install-pdf install-html; \ + fi + + if [ $(MXE_SYSTEM) != msvc ]; then \ + $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_DIR)/octave install; \ + fi + + # create a file with latest installed octave rev in it + echo "$($(PKG)_VERSION)" > $(TOP_DIR)/octave/octave-version +endef