annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4192
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
1 ## Build and Octave tarball distribution from hg sources. The
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
2 ## resulting tarball may then be used by the default-octave target to
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
3 ## build. So the typical steps for building Octave from the mercurial
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
4 ## sources are
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
5 ##
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
6 ## ./bootstrap
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
7 ## ./configure --enable-octave=default
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
8 ## make hg-octave-dist
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
9 ## make
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
10 ##
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
11 ## The version number set in the mercurial sources for Octave must
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
12 ## match the one used in src/default-octave.mk.
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
13
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
14 ## Set PATH, PKG_CONFIG_PATH, and LD_LIBRARY_PATH to the original
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
15 ## values from the environment so that we avoid the tools that we've
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
16 ## built for cross compiling. For these rules to work, you must have
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
17 ## appropriate versions of the required tool installed outside of the
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
18 ## mxe-octave build tree. Things like pkg-config and other tools that
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
19 ## are built for mxe-octave may produce the wrong values for these
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
20 ## steps, especially if we eventually intend to cross compile Octave.
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
21 ## Rather than try to work around those issues, it seems simpler to
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
22 ## just use the system tools for this job.
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
23
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
24 HG_OCTAVE_DIST_ENV_FLAGS := \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25 PKG_CONFIG_PATH='$(ENV_PKG_CONFIG_PATH)' \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26 LD_LIBRARY_PATH='$(LD_LIBRARY_PATH)' \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 PATH='$(ENV_PATH)'
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
29 .PHONY: hg-octave-dist
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
30 hg-octave-dist: $(BUILD_TOOLS) update-hg-octave-repo
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31 cd octave-hg-repo && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32 rm -rf .build && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
33 mkdir .build && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
34 $(HG_OCTAVE_DIST_ENV_FLAGS) ./bootstrap && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
35 cd .build && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 $(HG_OCTAVE_DIST_ENV_FLAGS) ../configure && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37 $(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' all && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38 $(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' dist && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
39 mv '$(hg-octave_FILE)' '../../pkg/$(hg-octave_FILE)'
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
41 .PHONY: update-hg-octave-repo
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
42 update-hg-octave-repo:
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 if [ -d octave-hg-repo ]; then \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
44 cd octave-hg-repo && hg pull -u; \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
45 else \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
46 hg clone http://octave.org/hg/octave octave-hg-repo; \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
47 fi