ExtUtils_MM_Unix

# NAME

ExtUtils::MM_Unix - methods used by ExtUtils::MakeMaker

# SYNOPSIS

require ExtUtils::MM_Unix;

# DESCRIPTION

The methods provided by this package are designed to be used in conjunction with ExtUtils::MakeMaker. When MakeMaker writes a Makefile, it creates one or more objects that inherit their methods from a package `MM`. MM itself doesn't provide any methods, but it ISA ExtUtils::MM_Unix class. The inheritance tree of MM lets operating specific packages take the responsibility for all the methods provided by MM_Unix. We are trying to reduce the number of the necessary overrides by defining rather primitive operations within ExtUtils::MM_Unix.

If you are going to write a platform specific MM package, please try to limit the necessary overrides to primitiv methods, and if it is not possible to do so, let's work it out how to achieve that gain.

# METHODS

The following description of methods is still under development. Please refer to the code for not suitably documented sections and complain loudly to the makemaker mailing list.

## Preloaded methods

catdir
  Concatenate two or more directory names to form a complete path ending with a directory

catfile
  Concatenate two or more directory names and a filename to form a complete path ending with a filename

nicetext
  misnamed method (will have to be changed). The MM_Unix method just returns the argument without further processing.

  On VMS used to insure that colons marking targets are preceded by space - most Unix Makes don't need this, but it's necessary under VMS to distinguish the target delimiter from a colon appearing as part of a filespec.

libscan
  Takes a path to a file that is found by init_dirscan and returns false if we don't want to include this file in the library. Mainly used to exclude RCS, CVS, and SCCS directories from installation.

exescan
  Deprecated method. Use libscan instead.

lsdir
  Takes as arguments a directory name and a regular expression. Returns all entries in the directory that match the regular expression.

path
  Takes no argument, returns the environment variable PATH as an array.

replace_manpage_separator
  Takes the name of a package, which may be a nested package, in the form Foo/Bar and replaces the slash with `::`. Returns the replacement.

file_name_is_absolute
  Takes as argument a path and returns true, it it is an absolute path.

prefixify
  Check a path variable in $self from %Config, if it contains a prefix, and replace it with another one.

  Takes as arguments an attribute name, a search prefix and a replacement prefix. Changes the attribute in the object.

maybe_command_in_dirs
  method under development. Not yet used. Ask Ilya :-)

maybe_command
  Returns true, if the argument is likely to be a command.

perl_script
  Returns true, if we the argument is likely to be a perl script. On MM_Unix this is true for any ordinary, readable file.

  ## SelfLoaded methods

guess_name
  Guess the name of this package by examining the working directory's name. MakeMaker calls this only if the developer has not supplied a NAME attribute.

init_main
init_dirscan
init_others
find_perl

  ## Methods to actually produce chunks of text for the Makefile

  The methods here are called in the order specified by @ExtUtils::MakeMaker::MM_Sections. This manpage reflects the order as well as possible. Some methods call each other, so in doubt refer to the code.

post_initialize
  Returns an ampty string per default. Used in Makefile.PLs to add some chunk of text to the Makefile after the object is initialized.

const_config
constants
const_loadlibs
const_cccmd
tool_autosplit
tool_xsubpp
tools_other
dist
macro
depend
post_constants
pasthru
c_o
xs_c
xs_o
top_targets
linkext
dlsyms
dynamic
dynamic_bs
dynamic_lib
static
static_lib
installpm
installpm_x
manifypods
processPL
installbin
subdirs
subdir_x
clean
realclean
dist_basics
dist_core
dist_dir
dist_test
dist_ci
install
force
perldepend
makefile
staticmake
test
test_via_harness
test_via_script
postamble
  Returns an empty string. Can be used in Makefile.PLs to write some text to the Makefile at the end.

makeaperl
  Called by staticmake.

extliblist
  Called by init_others.

dir_target
  Takes an array of directories that need to exist and returns a Makefile entry for a .exists file in these directories. Returns nothing, if the entry has already been processed. We're helpless though, if the same directory comes as $( FOO) _and_ as ``bar''. Both of them get an entry, that's why we use ``::''.

needs_linking
  Does this module need linking? Looks into subdirectory objects (see also has_link_code() )

has_link_code
  Returns true if C, XS, MYEXTLIB or similar objects exist within this object that need a compiler. Does not descend into subdirectories as needs_linking() does.

writedoc
  Obsolete, depecated method.

  # SEE ALSO

  ExtUtils::MakeMaker