view hg-octave-dist.mk @ 5541:d862fd40cc42

Use ccache for packages built with cmake. * Makefile.in: New variable CMAKE_CCACHE_FLAGS. * src/armadillo.mk, src/cgal.mk, src/cmake.mk, src/cminpack, src/double-conversion.mk, src/eigen.mk, src/gdcm.mk, src/gl2ps.mk, src/hdf5.mk, src/lapack.mk, src/libical.mk, src/libproxy, src/llvm.mk, src/of-dicom.mk, src/openal.mk, src/opencv.mk, src/openexr.mk, src/openscenegraph.mk, src/physfs.mk, src/qhull.mk, src/qjson.mk, src/rapidjson.mk, src/suitesparse.mk, src/sundials-ida.mk, src/taglib.mk, src/vigra.mk, src/vmime.mk, src/vtk.mk, src/wt.mk: Add new variable to cmake flags. Harmonize indentation in files.
author Markus Mützel <markus.muetzel@gmx.de>
date Sun, 20 Sep 2020 11:57:01 +0200
parents 7eebfda7daa1
children 00a24f9b9cae
line wrap: on
line source

## 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.
##
## We also install the resulting binary to run natively when
## building packages during a cross build.

## 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 --prefix=$(ROOT_PREFIX) && \
	$(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' all && \
	$(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' install && \
	$(HG_OCTAVE_DIST_ENV_FLAGS) make -j '$(JOBS)' dist && \
	mv '$($(OCTAVE_TARGET)_FILE)' '$(PKG_DIR)'

.PHONY: update-hg-octave-repo
update-hg-octave-repo:
	if [ -d octave-hg-repo ]; then \
	  cd octave-hg-repo \
	    && hg pull && hg update $(hg-octave-branch); \
	else \
	  hg clone https://hg.savannah.gnu.org/hgweb/octave octave-hg-repo \
	    && cd octave-hg-repo \
	    && hg pull && hg update $(hg-octave-branch); \
	fi