Mercurial > mxe-octave
diff hg-octave-dist.mk @ 4192:438a4bfdc887
new rules for creating a tarball from Octave's hg sources
* hg-octave-dist.mk: New file.
* Makefile.in: Include hg-octave-dist.mk.
(ENV_PATH, ENV_PKG_CONFIG_PATH, ENV_LD_LIBRARY_PATH):
Capture values from environment.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 29 Aug 2016 11:21:19 -0400 |
parents | |
children | 4a414e5b16a4 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hg-octave-dist.mk Mon Aug 29 11:21:19 2016 -0400 @@ -0,0 +1,47 @@ +## Build and Octave tarball distribution from hg sources. The +## resulting tarball may then be used by the default-octave target to +## build. So the typical steps for building Octave from the mercurial +## sources are +## +## ./bootstrap +## ./configure --enable-octave=default +## make hg-octave-dist +## make +## +## The version number set in the mercurial sources for Octave must +## match the one used in src/default-octave.mk. + +## Set PATH, PKG_CONFIG_PATH, and LD_LIBRARY_PATH to the original +## values from the environment so that we avoid the tools that we've +## built for cross compiling. For these rules to work, you must have +## appropriate versions of the required tool installed outside of the +## mxe-octave build tree. Things like pkg-config and other tools that +## are built for mxe-octave may produce the wrong values for these +## steps, especially if we eventually intend to cross compile Octave. +## Rather than try to work around those issues, it seems simpler to +## just use the system tools for this job. + +HG_OCTAVE_DIST_ENV_FLAGS := \ + PKG_CONFIG_PATH='$(ENV_PKG_CONFIG_PATH)' \ + LD_LIBRARY_PATH='$(LD_LIBRARY_PATH)' \ + PATH='$(ENV_PATH)' + +.PHONY: hg-octave-dist +hg-octave-dist: $(BUILD_TOOLS) update-hg-octave-repo + cd octave-hg-repo && \ + rm -rf .build && \ + mkdir .build && \ + $(HG_OCTAVE_DIST_ENV_FLAGS) ./bootstrap && \ + cd .build && \ + $(HG_OCTAVE_DIST_ENV_FLAGS) ../configure && \ + $(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' all && \ + $(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' dist && \ + mv '$(hg-octave_FILE)' '../../pkg/$(hg-octave_FILE)' + +.PHONY: update-hg-octave-repo +update-hg-octave-repo: + if [ -d octave-hg-repo ]; then \ + cd octave-hg-repo && hg pull -u; \ + else \ + hg clone http://octave.org/hg/octave octave-hg-repo; \ + fi