Mercurial > mxe-octave
view src/release-octave.mk @ 6516:5ef7d51c2195
readline: Update to version 8.2-001.
* src/readline.mk: Update version and checksum.
* src/readline-0-001-upstream.patch: Upstream patch re-formatted to apply in
MXE Octave.
See: https://ftp.gnu.org/pub/gnu/readline/readline-8.2-patches/readline82-001
* src/readline-0-002-upstream.patch: Remove upstream patch for previous version.
* src/readline-1-input.patch, src/readline-1-sigwinch.patch: Update patches.
* src/readline-3-fd_set.patch: Add patch to guard functions that use types that
aren't available on Windows.
* src/gdb-1-readline-8.2.patch: Cherry-pick upstream patch.
* dist-files.mk: Update files in list.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sat, 12 Nov 2022 17:00:41 +0100 |
parents | d61d7dc83f98 |
children | 9a732fbe84e0 |
line wrap: on
line source
# This file is part of MXE. # See index.html for further information. ## This set of rules is intended for building the latest released ## version of Octave found on ftp.gnu.org using the current ## packages found in the mxe-octave archive. To reproduce the binary ## builds for Windows that are distributed on ftp.gnu.org, you must ## choose the revision of mxe-octave that matches the release you ## wish to reproduce. Those should be tagged in the mxe-octave archive ## with tags like "octave-release-5.1.0". The options used to build are ## ## --enable-octave=release ## --enable-binary-packages ## --enable-devel-tools ## --enable-qt5 ## --disable-system-opengl ## ## and one of the following ## ## * 64-bit Windows build; 32-bit integers for Fortran ## (including BLAS and LAPACK libraries) which is the typical ## configuration for all Linux distributions: ## ## --enable-windows-64 --enable-64 --disable-fortran-int64 ## ## * 64-bit Windows build; 64-bit integers for Fortran ## (including BLAS and LAPACK libraries): ## ## --enable-windows-64 --enable-64 --enable-fortran-int64 ## ## * 32-bit Windows build: ## ## --disable-windows-64 --disable-64 --disable-fortran-int64 PKG := release-octave $(PKG)_IGNORE := $(PKG)_VERSION := 7.3.0 $(PKG)_CHECKSUM := 9f691d0c7e2dc62339d0939bcc0f9dbbd9fdc0b0 $(PKG)_SUBDIR := octave-$($(PKG)_VERSION) $(PKG)_FILE := octave-$($(PKG)_VERSION).tar.lz $(PKG)_URL := ftp://ftp.gnu.org/gnu/octave/$($(PKG)_FILE) ifeq ($(USE_SYSTEM_FONTCONFIG),no) $(PKG)_FONTCONFIG := fontconfig endif $(PKG)_DEPS := blas arpack curl epstool fftw fltk $($(PKG)_FONTCONFIG) ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 lapack libsndfile pcre portaudio pstoedit qhull qrupdate qscintilla rapidjson readline sundials-ida suitesparse texinfo zlib ifeq ($(ENABLE_QT5),yes) $(PKG)_DEPS += qt5 else $(PKG)_DEPS += qt endif ifeq ($(USE_SYSTEM_OPENGL),no) $(PKG)_DEPS += mesa endif ifeq ($(MXE_WINDOWS_BUILD),yes) $(PKG)_WITH_BLAS_CONFIGURE_OPTIONS := --with-blas="-lblas -lxerbla" else $(PKG)_WITH_BLAS_CONFIGURE_OPTIONS := --with-blas="-lblas" ifeq ($(USE_SYSTEM_X11_LIBS),no) $(PKG)_DEPS += x11 xext endif endif ifeq ($(MXE_SYSTEM),mingw) ifeq ($(USE_SYSTEM_GCC),no) $(PKG)_DEPS += libgomp endif 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 ## If we allow the system Qt libraries to be used, then these ## won't make sense. $(PKG)_QT_CONFIGURE_OPTIONS := \ MOC_QTVER=$(MXE_MOC) \ UIC_QTVER=$(MXE_UIC) \ RCC_QTVER=$(MXE_RCC) \ LRELEASE_QTVER=$(MXE_LRELEASE) ifeq ($(ENABLE_QT5),yes) #$(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" $(PKG)_PKG_CONFIG_PATH := "$(HOST_PREFIX)/qt5/lib/pkgconfig:$(HOST_LIBDIR)/pkgconfig" $(PKG)_QTDIR := $(HOST_PREFIX)/qt5 $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt5" else $(PKG)_PKG_CONFIG_PATH := "$(HOST_LIBDIR)/pkgconfig" $(PKG)_QTDIR := $(HOST_PREFIX) $(PKG)_QT_CONFIGURE_OPTIONS += octave_cv_lib_qscintilla="-lqscintilla2_qt4" 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 else $(PKG)_ENABLE_64_CONFIGURE_OPTIONS := --disable-64 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 \ gl_cv_func_tzset_clobber=no ifeq ($(ENABLE_64),yes) $(PKG)_ENABLE_64_CONFIGURE_OPTIONS := --enable-64 else $(PKG)_ENABLE_64_CONFIGURE_OPTIONS := --disable-64 endif endif endif ifeq ($(ENABLE_FORTRAN_INT64),yes) $(PKG)_ENABLE_FORTRAN_INT64_CONFIGURE_OPTIONS := F77_INTEGER_8_FLAG=-fdefault-integer-8 ax_blas_f77_func_ok=yes ax_blas_integer_size=8 octave_cv_sizeof_fortran_integer=8 else $(PKG)_ENABLE_FORTRAN_INT64_CONFIGURE_OPTIONS := ax_blas_f77_func_ok=yes ax_blas_integer_size=4 octave_cv_sizeof_fortran_integer=4 endif ifeq ($(MXE_SYSTEM),mingw) # This is very similar to CONFIGURE_CPPFLAGS and CONFIGURE_LDFLAGS but with # double quoted paths. $(PKG)_CONFIGURE_CPPFLAGS := CPPFLAGS='-I"$(HOST_PREFIX)/include"' ifeq ($(MXE_USE_LIB64_DIRECTORY),yes) $(PKG)_CONFIGURE_LDFLAGS := LDFLAGS='-L"$(HOST_PREFIX)/lib" -L"$(HOST_PREFIX)/lib64"' else $(PKG)_CONFIGURE_LDFLAGS := LDFLAGS='-L"$(HOST_PREFIX)/lib"' endif else $(PKG)_CONFIGURE_CPPFLAGS := $(CONFIGURE_CPPFLAGS) $(PKG)_CONFIGURE_LDFLAGS := $(CONFIGURE_LDFLAGS) 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)' ifeq ($(MXE_SYSTEM),mingw) $(PKG)_EXTRA_CONFIGURE_OPTIONS := \ LDFLAGS='-Wl,-rpath-link,"$(HOST_LIBDIR)" -L"$(HOST_LIBDIR)" -L"$($(PKG)_QTDIR)/lib"' else $(PKG)_EXTRA_CONFIGURE_OPTIONS := \ LDFLAGS='-Wl,-rpath-link,$(HOST_LIBDIR) -L$(HOST_LIBDIR) -L$($(PKG)_QTDIR)/lib' endif endif ifeq ($(MXE_SYSTEM),mingw) $(PKG)_EXTRA_CONFIGURE_OPTIONS += --with-x=no endif ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) $(PKG)_EXTRA_CONFIGURE_OPTIONS += ac_cv_search_tputs=-ltermcap endif # if want binary packages and are cross compiling, then we need cross tools enabled ifeq ($(ENABLE_BINARY_PACKAGES),yes) ifeq ($(MXE_NATIVE_BUILD),no) $(PKG)_EXTRA_CONFIGURE_OPTIONS += --enable-cross-tools endif 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 https://raw.github.com/openjdk/jdk/7b2e99178f7cf41ecd86b2ccfba38ea653e815e7/jdk/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 https://raw.github.com/openjdk/jdk/7b2e99178f7cf41ecd86b2ccfba38ea653e815e7/jdk/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' \ $($(PKG)_CONFIGURE_CPPFLAGS) \ $($(PKG)_CONFIGURE_LDFLAGS) \ $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \ --prefix='$($(PKG)_PREFIX)' \ --disable-silent-rules \ --enable-install-build-logs \ --enable-relocate-all \ $($(PKG)_CROSS_CONFIG_OPTIONS) \ $($(PKG)_WITH_BLAS_CONFIGURE_OPTIONS) \ $($(PKG)_ENABLE_64_CONFIGURE_OPTIONS) \ $($(PKG)_ENABLE_FORTRAN_INT64_CONFIGURE_OPTIONS) \ $($(PKG)_ENABLE_JAVA_CONFIGURE_OPTIONS) \ $($(PKG)_ENABLE_JIT_CONFIGURE_OPTIONS) \ $($(PKG)_ENABLE_DOCS_CONFIGURE_OPTIONS) \ $($(PKG)_QT_CONFIGURE_OPTIONS) \ $($(PKG)_EXTRA_CONFIGURE_OPTIONS) \ PKG_CONFIG='$(MXE_PKG_CONFIG)' \ PKG_CONFIG_PATH=$($(PKG)_PKG_CONFIG_PATH) \ && $(CONFIGURE_POST_HOOK) $(MAKE) -C '$(1)/.build/libgnu' $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)' if [ "x$(MXE_SYSTEM)" == "xmingw" ]; then \ $(INSTALL) '$(3)/$(HOST_BINDIR)/libxerbla.dll' '$(3)$(HOST_BINDIR)/libxerbla-octave.dll'; \ cp '$(1)/.build/src/.libs/octave-gui.exe' '$(3)$(HOST_BINDIR)'; \ cp '$(1)/.build/src/.libs/octave-svgconvert.exe' '$(3)$(HOST_BINDIR)'; \ if [ "x$(ENABLE_BINARY_PACKAGES)" == "xyes" ]; then \ mkdir -p '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \ $(INSTALL) '$(1)/.build/src/$(MXE_TOOL_PREFIX)mkoctfile' '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \ $(INSTALL) '$(1)/.build/src/$(MXE_TOOL_PREFIX)octave-config' '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \ fi; \ fi if [ "x$(ENABLE_DOCS)" == "xyes" ]; then \ $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(3) install-pdf install-html; \ fi # create a file with latest installed octave rev in it mkdir -p '$(TOP_BUILD_DIR)/octave' echo "$($(PKG)_VERSION)" > $(TOP_BUILD_DIR)/octave/octave-version $(SED) -n 's,.*"api-v\([^"]*\)".*,\1,p' $(3)$(HOST_INCDIR)/octave-$($(PKG)_VERSION)/octave/version.h > $(TOP_BUILD_DIR)/octave/octave-api endef