# HG changeset patch # User John Donoghue # Date 1450876264 18000 # Node ID 0962acdde3beb36db9068165fecd1e606e44fd16 # Parent aacf84e7af569e79ede54c8297cc68bc28c1b7f1 builld: allow out of source build * Makefile.in: add TOP_BUILD_DIR var and use TOP_DIR=srcdir, TOP_BUILD_DIR=builddir, modify paths to use TOP_DIR where needed * binary-dist-rules.mk: use TOP_DIR and TOP_BUILD_DIR where needed * makeinst-script.sh: use script path to determine TOPDIR, use TOPDIR where needed * src/default-octave.mk: install octave-version to builddir * src/stable-octave.mk: install octave-version to builddir * src/octave.mk: install octave-version to builddir * tools/set-mxe-env.sh.in: update fir builddir and srcdir use diff -r aacf84e7af56 -r 0962acdde3be Makefile.in --- a/Makefile.in Fri Dec 11 15:56:18 2015 -0500 +++ b/Makefile.in Wed Dec 23 08:11:04 2015 -0500 @@ -4,7 +4,8 @@ OCTAVE_TARGET := @ENABLE_OCTAVE@octave PWD := $(shell pwd) -TOP_DIR := $(PWD) +TOP_BUILD_DIR := @abs_builddir@ +TOP_DIR := @abs_srcdir@ STRIP_DIST_FILES := @STRIP_DIST_FILES@ @@ -61,7 +62,7 @@ # Should match what config.guess prints for your system. # If cross compiling, you must set it manually. ifeq ($(MXE_NATIVE_BUILD),yes) - TARGET := $(shell tools/config.guess) + TARGET := $(shell $(TOP_DIR)/tools/config.guess) else ifeq ($(ENABLE_WINDOWS_64),yes) TARGET := x86_64-w64-mingw32 @@ -69,7 +70,7 @@ TARGET := i686-w64-mingw32 endif endif -BUILD_SYSTEM := $(shell tools/config.guess) +BUILD_SYSTEM := $(shell $(TOP_DIR)/tools/config.guess) # Enable shared or static libs, or perhaps both. Probably it doesn't # make sense to disable both... @@ -125,7 +126,7 @@ # and it's not clear to me how to change that. # # For native builds, dump everything all together in one directory tree. -ROOT_PREFIX := $(TOP_DIR)/usr +ROOT_PREFIX := $(TOP_BUILD_DIR)/usr BUILD_TOOLS_PREFIX := $(ROOT_PREFIX) ifeq ($(MXE_NATIVE_BUILD),yes) HOST_PREFIX := $(ROOT_PREFIX) @@ -239,13 +240,13 @@ BUILD_TOOLS := $(filter-out build-msvctools, $(BUILD_TOOLS)) endif -STAMP_DIR := $(TOP_DIR)/installed-packages -MSYS_INFO_DIR := $(TOP_DIR)/msys-info -LOG_DIR := $(TOP_DIR)/log +STAMP_DIR := $(TOP_BUILD_DIR)/installed-packages +MSYS_INFO_DIR := $(TOP_BUILD_DIR)/msys-info +LOG_DIR := $(TOP_BUILD_DIR)/log TIMESTAMP := $(shell date +%Y%m%d_%H%M%S) PKG_DIR := $(TOP_DIR)/pkg -TMP_DIR = $(TOP_DIR)/tmp-$(1) -MAKEFILE := $(TOP_DIR)/Makefile +TMP_DIR = $(TOP_BUILD_DIR)/tmp-$(1) +MAKEFILE := $(TOP_BUILD_DIR)/Makefile PKGS := $(filter-out $(ALL_BUILD_TOOLS), $(shell $(SED) -n 's/^.* class="package">\([^<]*\)<.*$$/\1/p' '$(TOP_DIR)/index.html')) PATH := $(BUILD_TOOLS_PREFIX)/bin:$(PATH) @@ -371,8 +372,8 @@ MSYS_EXTENSION_URL := $(MSYS_URL)/Extension MSYS_BASE_VER := 1.0.13 MSYS_EXTENSION_VER := 1.0.13 - MSYS_BASE_DIR := $(TOP_DIR)/msys-base - MSYS_EXTENSION_DIR := $(TOP_DIR)/msys-extension + MSYS_BASE_DIR := $(TOP_BUILD_DIR)/msys-base + MSYS_EXTENSION_DIR := $(TOP_BUILD_DIR)/msys-extension MSYS_BASE_PACKAGES := $(addprefix msys-,bash coreutils diffutils dos2unix file findutils gawk grep gzip less libiconv libintl libmagic libopenssl make msys-core patch regex sed tar termcap unzip zip wget zlib) ifeq ($(ENABLE_DEVEL_TOOLS),yes) @@ -382,7 +383,7 @@ MSYS_BASE_SOURCES := $(addprefix src-,$(MSYS_BASE_PACKAGES)) PKGS += $(MSYS_BASE_SOURCES) - NOTEPAD_BASE_DIR := $(TOP_DIR)/notepad++ + NOTEPAD_BASE_DIR := $(TOP_BUILD_DIR)/notepad++ endif else ifeq ($(MXE_SYSTEM),msvc) MXE_WINDOWS_BUILD := yes @@ -493,18 +494,18 @@ ifeq ($(IGNORE_SETTINGS),yes) $(info [ignore settings.mk]) -else ifeq ($(wildcard $(TOP_DIR)/settings.mk),$(TOP_DIR)/settings.mk) - include $(TOP_DIR)/settings.mk +else ifeq ($(wildcard $(TOP_BUILD_DIR)/settings.mk),$(TOP_BUILD_DIR)/settings.mk) + include $(TOP_BUILD_DIR)/settings.mk else $(info [create settings.mk]) $(shell { \ echo '#JOBS = $(JOBS)'; \ echo '#PKGS ='; \ - } >'$(TOP_DIR)/settings.mk') + } >'$(TOP_BUILD_DIR)/settings.mk') endif .PHONY: all -all: configure Makefile $(OCTAVE_TARGET) +all: $(TOP_DIR)/configure Makefile $(OCTAVE_TARGET) .PHONY: all-packages all-packages: $(PKGS) @@ -526,13 +527,13 @@ .PHONY: devel-packages devel-packages: $(DEVEL_PACKAGES) -configure: configure.ac - autoconf +$(TOP_DIR)/configure: $(TOP_DIR)/configure.ac + cd $(TOP_DIR) && autoconf -config.status: configure +config.status: $(TOP_DIR)/configure $(SHELL) ./config.status --recheck -Makefile: Makefile.in config.status +Makefile: $(TOP_DIR)/Makefile.in config.status $(SHELL) ./config.status Makefile .PHONY: check-requirements @@ -567,8 +568,8 @@ @[ -d '$(STAMP_DIR)' ] || mkdir -p '$(STAMP_DIR)' @if test "$(USE_SYSTEM_GCC)" = yes; then \ $(INSTALL) -d '$(BUILD_TOOLS_PREFIX)/bin' ; \ - $(INSTALL) -m 755 tools/config.guess '$(BUILD_TOOLS_PREFIX)/bin/config.guess' ; \ - $(INSTALL) -m 755 tools/config.sub '$(BUILD_TOOLS_PREFIX)/bin/config.sub' ; \ + $(INSTALL) -m 755 $(TOP_DIR)/tools/config.guess '$(BUILD_TOOLS_PREFIX)/bin/config.guess' ; \ + $(INSTALL) -m 755 $(TOP_DIR)/tools/config.sub '$(BUILD_TOOLS_PREFIX)/bin/config.sub' ; \ fi @touch '$@' @@ -853,7 +854,7 @@ @echo [done] # Files to distribute -include dist-files.mk +include $(TOP_DIR)/dist-files.mk PACKAGE_VERSION := @PACKAGE_VERSION@ PACKAGE_TARNAME := @PACKAGE_TARNAME@ @@ -867,4 +868,4 @@ $(TAR) cf - $(DIST_FILES) | ( cd $(distdir) ; $(TAR) xpf - ) $(TAR) czf $(distdir).tar.gz $(distdir) -include binary-dist-rules.mk +include $(TOP_DIR)/binary-dist-rules.mk diff -r aacf84e7af56 -r 0962acdde3be binary-dist-rules.mk --- a/binary-dist-rules.mk Fri Dec 11 15:56:18 2015 -0500 +++ b/binary-dist-rules.mk Wed Dec 23 08:11:04 2015 -0500 @@ -5,9 +5,9 @@ OCTAVE_DIST_NAME := octave-$(DATE) endif -OCTAVE_DIST_DIR := $(TOP_DIR)/dist/$(OCTAVE_DIST_NAME) +OCTAVE_DIST_DIR := $(TOP_BUILD_DIR)/dist/$(OCTAVE_DIST_NAME) -OCTAVE_NSI_FILE := $(TOP_DIR)/dist/octave.nsi +OCTAVE_NSI_FILE := $(TOP_BUILD_DIR)/dist/octave.nsi ifeq ($(MXE_WINDOWS_BUILD),yes) TAR_H_OPTION := -h @@ -35,7 +35,7 @@ define delete-dist-directory echo "deleting previous dist directory..." - rm -rf $(TOP_DIR)/dist + rm -rf $(TOP_BUILD_DIR)/dist endef define make-dist-directory @@ -62,13 +62,13 @@ cp $(BUILD_TOOLS_PREFIX)/lib/gcc/$(TARGET)/*.dll $(OCTAVE_DIST_DIR)/bin cp $(BUILD_TOOLS_PREFIX)/lib/gcc/$(TARGET)/$(build-gcc_VERSION)/*.dll $(OCTAVE_DIST_DIR)/bin echo " msys base files..." - cd $(TOP_DIR)/msys-base \ + cd $(TOP_BUILD_DIR)/msys-base \ && tar -c $(TAR_H_OPTION) -f - . | ( cd $(OCTAVE_DIST_DIR) ; tar xpf - ) echo " msys extension files..." - cd $(TOP_DIR)/msys-extension \ + cd $(TOP_BUILD_DIR)/msys-extension \ && tar -c $(TAR_H_OPTION) -f - . | ( cd $(OCTAVE_DIST_DIR) ; tar xpf - ) echo " notepad++..." - cd $(TOP_DIR) \ + cd $(TOP_BUILD_DIR) \ && tar -c $(TAR_H_OPTION) -f - notepad++ | ( cd $(OCTAVE_DIST_DIR) ; tar xpf - ) echo " README.html..." cp $(TOP_DIR)/installer-files/README.html $(OCTAVE_DIST_DIR)/ @@ -174,9 +174,9 @@ rm -f $(OCTAVE_NSI_FILE); \ fi echo "generating installer script..." - ./makeinst-script.sh $(OCTAVE_DIST_DIR) $(OCTAVE_NSI_FILE) + $(TOP_DIR)/makeinst-script.sh $(OCTAVE_DIST_DIR) $(OCTAVE_NSI_FILE) echo "generating installer..." - $(TARGET)-makensis $(OCTAVE_NSI_FILE) > $(TOP_DIR)/dist/nsis.log + $(TARGET)-makensis $(OCTAVE_NSI_FILE) > $(TOP_BUILD_DIR)/dist/nsis.log endef $(OCTAVE_DIST_NAME)-installer.exe: nsis binary-dist-files @@ -187,7 +187,7 @@ define make-zip-dist echo "generating zip file..." - cd $(TOP_DIR)/dist \ + cd $(TOP_BUILD_DIR)/dist \ && zip -q -9 -r $(OCTAVE_DIST_NAME).zip $(OCTAVE_DIST_NAME) endef @@ -197,7 +197,7 @@ define make-tar-dist echo "generating tar file..." - cd $(TOP_DIR)/dist \ + cd $(TOP_BUILD_DIR)/dist \ && tar -c -z -f $(OCTAVE_DIST_NAME).tgz $(OCTAVE_DIST_NAME) endef diff -r aacf84e7af56 -r 0962acdde3be configure.ac --- a/configure.ac Fri Dec 11 15:56:18 2015 -0500 +++ b/configure.ac Wed Dec 23 08:11:04 2015 -0500 @@ -215,7 +215,7 @@ AC_SUBST(MXE_SYSTEM) # set MXE_ROOTDIR for knowing the mxe root -MXE_ROOTDIR=`cd $srcdir; pwd` +MXE_ROOTDIR=`cd "$builddir"; pwd` AC_SUBST(MXE_ROOTDIR) AC_CONFIG_FILES([Makefile tools/set-mxe-env.sh]) diff -r aacf84e7af56 -r 0962acdde3be makeinst-script.sh --- a/makeinst-script.sh Fri Dec 11 15:56:18 2015 -0500 +++ b/makeinst-script.sh Wed Dec 23 08:11:04 2015 -0500 @@ -7,10 +7,10 @@ fi OUTFILE="$2" -TOPDIR=`dirname $1` +TOPDIR=`dirname $0` OCTAVE_SOURCE=`basename $1` -cd $TOPDIR +cd `dirname $1` MXEDIR=`cd ..; pwd` if [ -e $OCTAVE_SOURCE/bin/libopenblas.dll ]; then @@ -42,7 +42,7 @@ !define OCTAVE_VERSION "$OCTAVE_VERSION" !define COPYRIGHT "Copyright © 2013 John W. Eaton and others." !define DESCRIPTION "GNU Octave is a high-level programming language, primarily intended for numerical computations." -!define INSTALLER_FILES "../installer-files" +!define INSTALLER_FILES "$TOPDIR/installer-files" !define INSTALLER_NAME "octave-$OCTAVE_VERSION-installer.exe" !define MAIN_APP_EXE "octave-firsttime.vbs" !define INSTALL_TYPE "SetShellVarContext current" diff -r aacf84e7af56 -r 0962acdde3be src/default-octave.mk --- a/src/default-octave.mk Fri Dec 11 15:56:18 2015 -0500 +++ b/src/default-octave.mk Wed Dec 23 08:11:04 2015 -0500 @@ -163,9 +163,9 @@ fi if [ $(MXE_SYSTEM) != msvc ]; then \ - $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_DIR)/octave install; \ + $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_BUILD_DIR)/octave install; \ fi # create a file with latest installed octave rev in it - echo "$($(PKG)_VERSION)" > $(TOP_DIR)/octave/octave-version + echo "$($(PKG)_VERSION)" > $(TOP_BUILD_DIR)/octave/octave-version endef diff -r aacf84e7af56 -r 0962acdde3be src/octave.mk --- a/src/octave.mk Fri Dec 11 15:56:18 2015 -0500 +++ b/src/octave.mk Wed Dec 23 08:11:04 2015 -0500 @@ -158,9 +158,9 @@ fi if [ $(MXE_SYSTEM) != msvc ]; then \ - $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_DIR)/octave install; \ + $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_BUILD_DIR)/octave install; \ fi # create a file with latest installed octave rev in it - echo "$($(PKG)_VERSION)" > $(TOP_DIR)/octave/octave-version + echo "$($(PKG)_VERSION)" > $(TOP_BUILD_DIR)/octave/octave-version endef diff -r aacf84e7af56 -r 0962acdde3be src/stable-octave.mk --- a/src/stable-octave.mk Fri Dec 11 15:56:18 2015 -0500 +++ b/src/stable-octave.mk Wed Dec 23 08:11:04 2015 -0500 @@ -154,9 +154,9 @@ fi if [ $(MXE_SYSTEM) != msvc ]; then \ - $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_DIR)/octave install; \ + $(MAKE) -C '$(1)/.build' -j '$(JOBS)' DESTDIR=$(TOP_BUILD_DIR)/octave install; \ fi # create a file with latest installed octave rev in it - echo "$($(PKG)_VERSION)" > $(TOP_DIR)/octave/octave-version + echo "$($(PKG)_VERSION)" > $(TOP_BUILD_DIR)/octave/octave-version endef diff -r aacf84e7af56 -r 0962acdde3be tools/set-mxe-env.sh.in --- a/tools/set-mxe-env.sh.in Fri Dec 11 15:56:18 2015 -0500 +++ b/tools/set-mxe-env.sh.in Wed Dec 23 08:11:04 2015 -0500 @@ -8,7 +8,7 @@ MXE_INC_PATH="$MXEDIR/usr/include" MXE_LIB_PATH="$MXEDIR/usr/lib" else - HOST=$($MXEDIR/tools/config.guess) + HOST=$(@abs_top_srcdir@/tools/config.guess) MXE_PATH="$MXEDIR/usr/$HOST/bin:$MXEDIR/usr/bin" MXE_INC_PATH="$MXEDIR/usr/$HOST/include"