title: ExtUtils::MakeMaker Howto execute external makefile
body: <p>I'm pretty new with ExtUtils::MakeMaker and I don't figure out how to handle my use case.</p>
  
  <p>I want make use of ExtUtils::MakeMaker to deploy my software library. Right now, my Makefile.PL is as follows:</p>
  
  <pre><code>use ExtUtils::MakeMaker;
  
  WriteMakefile(
      ABSTRACT         =&gt; 'i-MSCP Backend',
      AUTHOR           =&gt; 'Laurent Declercq &lt;l.declercq@nuxwin.com&gt;',
      NAME             =&gt; 'iMSCP',
      DISTNAME         =&gt; "iMSCP",
      LICENSE          =&gt; 'lgpl_2_1',
      MIN_PERL_VERSION =&gt; "5.0018_002",
      NAME             =&gt; 'iMSCP',
      VERSION_FROM     =&gt; 'lib/iMSCP/Version.pm',
      EXE_FILES        =&gt; [ qw$
          bin/imscp-courier-dovecot-migrate.pl
          bin/imscp-accounts-suspension
          bin/imscp-arpl-msgr
          bin/imscp-backup-clients
          bin/imscp-backup-imscp
          bin/imscp-dpkg-post-invoke
          bin/imscp-dsk-quota
          bin/imscp-fix-duplicate-mounts
          bin/imscp-installer
          bin/imscp-master-sql-user-info
          bin/imscp-mountall
          bin/imscp-net-traffic-logger
          bin/imscp-pkt-mngr
          bin/imscp-rkhunter
          bin/imscp-rqst-mngr
          bin/imscp-set-engine-permissions
          bin/imscp-set-gui-permissions
          bin/imscp-srv-traff
          bin/imscp-sw-mngr
          bin/imscp-uninstaller
          bin/imscp-update.php
          bin/imscp-vrl-traff
          bin/imscp-maillogconvert.pl
          bin/imscp-vlogger
      $ ],
      # Discard man pages
      MAN1PODS         =&gt; {},
      MAN3PODS         =&gt; {}
  );
  </code></pre>
  
  <p>In my lib directory, I've an external Makefile which is responsible to build Perl header files:</p>
  
  <pre><code>#!/usr/bin/make -f
  
  CC := gcc
  CFLAGS := -DDEBUG=0 -s -ansi -Wall -Wextra -std=c11 -Wstrict-prototypes -pedantic-errors -O2
  
  headers = sys/syscall.h linux/fs.h
  
  # Debian/Ubuntu specific (Multiarch)
  -include /usr/share/dpkg/architecture.mk
  ifdef DEB_HOST_MULTIARCH
      headers += $(DEB_HOST_MULTIARCH)/sys/mount.h
      CFLAGS += -DMULTIARCH='"$(DEB_HOST_MULTIARCH)"'
  else
      headers += sys/mount.h
  endif
  
  default: H2ph.pm
  all: default
  
  bin/%: %.c
      mkdir -p $(@D)
      $(CC) $(CFLAGS) $(CPPFLAGS) $&lt; -o $@
  
  %.pm: bin/% h2ph
      $&lt; &gt; iMSCP/$@
      $(RM) -r bin/
  
  h2ph:
      mkdir -p $@
      -cd /usr/include; h2ph -Q -a -d $(shell pwd)/$@ $(headers)
  
  clean:
      $(RM) -r h2ph/ iMSCP/H2ph.pm
  </code></pre>
  
  <p>I wonder how I can execute the external makefile.</p>