Mercurial > hg > octave-lyh
view scripts/pkg/private/configure_make.m @ 14479:05b59be209ed
doc: grammarcheck new pkg/private functions
* absolute_pathname.m, build.m, configure_make.m, copy_files.m,
create_pkgadddel.m, describe.m, dirempty.m, extract_pkg.m,
finish_installation.m, fix_depends.m, fix_version.m, generate_lookfor_cache.m,
get_description.m, get_forge_download.m, get_unsatisfied_deps.m, getarch.m,
getarchdir.m, getarchprefix.m, install.m, installed_packages.m,
is_architecture_dependent.m, list_forge_packages.m, load_package_dirs.m,
load_packages.m, load_packages_and_dependencies.m, packinfo_copy_file.m,
parse_pkg_idx.m, prepare_installation.m, print_package_description.m,
rebuild.m, repackage.m, save_order.m, shell.m, uninstall.m, unload_packages.m,
verify_directory.m, write_index.m: grammarcheck new pkg/private functions
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Fri, 16 Mar 2012 17:50:42 -0700 |
parents | ae835555ab58 |
children | 3313635c622d |
line wrap: on
line source
## Copyright (C) 2005-2012 Søren Hauberg ## Copyright (C) 2010 VZLU Prague, a.s. ## ## This file is part of Octave. ## ## Octave is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3 of the License, or (at ## your option) any later version. ## ## Octave is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, see ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- ## @deftypefn {Function File} {} configure_make (@var{desc}, @var{packdir}, @var{verbose}) ## Undocumented internal function. ## @end deftypefn function configure_make (desc, packdir, verbose) ## Perform ./configure, make, make install in "src". if (exist (fullfile (packdir, "src"), "dir")) src = fullfile (packdir, "src"); octave_bindir = octave_config_info ("bindir"); ver = version (); mkoctfile = fullfile (octave_bindir, sprintf ("mkoctfile-%s", ver)); octave_config = fullfile (octave_bindir, sprintf ("octave-config-%s", ver)); octave_binary = fullfile (octave_bindir, sprintf ("octave-%s", ver)); cenv = {"MKOCTFILE"; mkoctfile; "OCTAVE_CONFIG"; octave_config; "OCTAVE"; octave_binary; "INSTALLDIR"; desc.dir}; scenv = sprintf ("%s=\"%s\" ", cenv{:}); ## Configure. if (exist (fullfile (src, "configure"), "file")) flags = ""; if (isempty (getenv ("CC"))) flags = cstrcat (flags, " CC=\"", octave_config_info ("CC"), "\""); endif if (isempty (getenv ("CXX"))) flags = cstrcat (flags, " CXX=\"", octave_config_info ("CXX"), "\""); endif if (isempty (getenv ("AR"))) flags = cstrcat (flags, " AR=\"", octave_config_info ("AR"), "\""); endif if (isempty (getenv ("RANLIB"))) flags = cstrcat (flags, " RANLIB=\"", octave_config_info ("RANLIB"), "\""); endif [status, output] = shell (cstrcat ("cd '", src, "'; ", scenv, "./configure --prefix=\"", desc.dir, "\"", flags)); if (status != 0) rmdir (desc.dir, "s"); error ("the configure script returned the following error: %s", output); elseif (verbose) printf("%s", output); endif endif ## Make. if (exist (fullfile (src, "Makefile"), "file")) [status, output] = shell (cstrcat (scenv, "make -C '", src, "'")); if (status != 0) rmdir (desc.dir, "s"); error ("'make' returned the following error: %s", output); elseif (verbose) printf("%s", output); endif endif ## Copy files to "inst" and "inst/arch" (this is instead of 'make ## install'). files = fullfile (src, "FILES"); instdir = fullfile (packdir, "inst"); archdir = fullfile (packdir, "inst", getarch ()); ## Get file names. if (exist (files, "file")) [fid, msg] = fopen (files, "r"); if (fid < 0) error ("couldn't open %s: %s", files, msg); endif filenames = char (fread (fid))'; fclose (fid); if (filenames(end) == "\n") filenames(end) = []; endif filenames = split_by (filenames, "\n"); delete_idx = []; for i = 1:length (filenames) if (! all (isspace (filenames{i}))) filenames{i} = fullfile (src, filenames{i}); else delete_idx(end+1) = i; endif endfor filenames(delete_idx) = []; else m = dir (fullfile (src, "*.m")); oct = dir (fullfile (src, "*.oct")); mex = dir (fullfile (src, "*.mex")); filenames = cellfun (@(x) fullfile (src, x), {m.name, oct.name, mex.name}, "uniformoutput", false); endif ## Split into architecture dependent and independent files. if (isempty (filenames)) idx = []; else idx = cellfun ("is_architecture_dependent", filenames); endif archdependent = filenames (idx); archindependent = filenames (!idx); ## Copy the files. if (! all (isspace ([filenames{:}]))) if (! exist (instdir, "dir")) mkdir (instdir); endif if (! all (isspace ([archindependent{:}]))) if (verbose) printf ("copyfile"); printf (" %s", archindependent{:}); printf ("%s\n", instdir); endif [status, output] = copyfile (archindependent, instdir); if (status != 1) rmdir (desc.dir, "s"); error ("Couldn't copy files from 'src' to 'inst': %s", output); endif endif if (! all (isspace ([archdependent{:}]))) if (verbose) printf ("copyfile"); printf (" %s", archdependent{:}); printf (" %s\n", archdir); endif if (! exist (archdir, "dir")) mkdir (archdir); endif [status, output] = copyfile (archdependent, archdir); if (status != 1) rmdir (desc.dir, "s"); error ("Couldn't copy files from 'src' to 'inst': %s", output); endif endif endif endif endfunction