annotate hg-octave-dist.mk @ 4321:8ec05e08aa22

hg-octave-dist: Also install native Octave
author John W. Eaton <jwe@octave.org>
date Fri, 06 Jan 2017 13:15:40 -0500
parents 4a414e5b16a4
children 2a8b5cf2085c
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.
4321
8ec05e08aa22 hg-octave-dist: Also install native Octave
John W. Eaton <jwe@octave.org>
parents: 4196
diff changeset
13 ##
8ec05e08aa22 hg-octave-dist: Also install native Octave
John W. Eaton <jwe@octave.org>
parents: 4196
diff changeset
14 ## We also install the resulting binary to run natively when
8ec05e08aa22 hg-octave-dist: Also install native Octave
John W. Eaton <jwe@octave.org>
parents: 4196
diff changeset
15 ## building packages during a cross build.
4192
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
16
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
17 ## 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
18 ## 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
19 ## 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
20 ## 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
21 ## 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
22 ## 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
23 ## 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
24 ## 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
25 ## 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
26
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 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
28 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
29 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
30 PATH='$(ENV_PATH)'
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32 .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
33 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
34 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
35 rm -rf .build && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 mkdir .build && \
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) ./bootstrap && \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38 cd .build && \
4321
8ec05e08aa22 hg-octave-dist: Also install native Octave
John W. Eaton <jwe@octave.org>
parents: 4196
diff changeset
39 $(HG_OCTAVE_DIST_ENV_FLAGS) ../configure --prefix=$(ROOT_PREFIX) && \
4192
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40 $(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' all && \
4321
8ec05e08aa22 hg-octave-dist: Also install native Octave
John W. Eaton <jwe@octave.org>
parents: 4196
diff changeset
41 $(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' install && \
4192
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
42 $(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' dist && \
4196
4a414e5b16a4 * hg-octave-dist.mk (hg-octave-dist): Fix file and directory names in rule.
John W. Eaton <jwe@octave.org>
parents: 4192
diff changeset
43 mv '$(default-octave_FILE)' '$(PKG_DIR)'
4192
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
44
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
45 .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
46 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
47 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
48 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
49 else \
438a4bfdc887 new rules for creating a tarball from Octave's hg sources
John W. Eaton <jwe@octave.org>
parents:
diff changeset
50 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
51 fi