Very substantial debug/improvement of the FreeBSD/Perl5 build.

o make install ; make install now works
o make all ; make all is quiet the second time
o Dependancies are properliy debugged; this means that make -jN has a
  far hihjer likelyhood of working.
o a proper 'link farm' has been constructed for the build. This
  dramatically simplifies the dependancy tangle.
o for perldoc's use, all the .pod files are installed.
o the man3 docs are properly compressed.
o the man pages and libary code are installed by the makefiles, not
  by a perl script.
o at the end, h2ph is run.
This commit is contained in:
Mark Murray 1998-10-11 18:13:42 +00:00
parent 137d6f5705
commit ed4a07ffcc
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=40232
7 changed files with 169 additions and 364 deletions

View File

@ -1,4 +1,4 @@
# $Id: Makefile.inc,v 1.4 1998/09/12 19:16:32 markm Exp $
# $Id: Makefile.inc,v 1.5 1998/09/22 12:00:58 markm Exp $
PERL5SRC?= ${.CURDIR}/../../../../contrib/perl5
@ -25,11 +25,33 @@ CLEANFILES+= ${.OBJDIR}/${I}
DEPEND_H+= ${.OBJDIR}/${I}
.endfor
lib ext Porting hints:
@rm -rf ${.TARGET}
for i in `cd ${PERL5SRC}; find ${.TARGET} -type d` ; do \
mkdir -p $${i} ;\
done
for i in `cd ${PERL5SRC}; find ${.TARGET} -type f` ; do \
ln -s ${PERL5SRC}/$${i} $${i} ;\
linkfarm: ${DEPEND_H}
@for d in ${CLEANDIRS} ; do \
rm -rf $${d} ;\
for i in `cd ${PERL5SRC}; find $${d} -type d -a \! -name CVS` ;\
do \
mkdir -p $${i} ;\
done ;\
for i in `cd ${PERL5SRC}; find $${d} -type f` ;\
do \
if [ -d `dirname $${i}` ] ; then \
ln -s ${PERL5SRC}/$${i} $${i} ;\
fi ;\
done ;\
done
@mkdir lib/auto
@mkdir build
@ln -sf ${PERL5SRC}/config_h.SH config_h.sh
@ln -sf ${PERL5SRC}/cflags.SH cflags.sh
@ln -sf ${PERL5SRC}/ext/re/re.pm lib/re.pm
@ln -sf ${PERL5SRC}/myconfig myconfig
@ln -sf ${PERL5SRC}/miniperlmain.c miniperlmain.c
@ln -sf ${PERL5SRC}/writemain.SH writemain.sh
@ln -sf ${PERL5SRC}/regcomp.c regcomp.c
@ln -sf ${PERL5SRC}/regexec.c regexec.c
@ln -sf ${.CURDIR}/../libperl/config.SH-${OBJFORMAT}.${MACHINE_ARCH} \
config.sh
@touch ${.TARGET}
CLEANFILES+= linkfarm
CLEANDIRS+= lib ext Porting hints build

View File

@ -1,11 +1,13 @@
#
# $Id: Makefile,v 1.5 1998/09/23 06:05:28 markm Exp $
# $Id: Makefile,v 1.6 1998/09/26 16:17:05 markm Exp $
#
PROG= miniperl
NOMAN= true
CFLAGS+=-I${PERL5SRC} -I${.OBJDIR}
SRCS= miniperlmain.c config.h
# Miniperl _must_ be static!!
NOSHARED= yes
DPADD= ${LIBPERL} ${LIBM} ${LIBCRYPT}
LDADD= -lperl -lm -lcrypt

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile,v 1.13 1998/09/22 12:00:58 markm Exp $
# $Id: Makefile,v 1.14 1998/09/23 06:05:28 markm Exp $
#
PROG= perl
@ -14,10 +14,8 @@ LINKS= ${BINDIR}/${PROG} ${BINDIR}/perl5 \
CLEANFILES= config.h config.sh config_h.sh writemain writemain.sh \
Config.pm cflags cflags.sh myconfig perlmain.c miniperlmain.c \
${.OBJDIR}/regcomp.c ${.OBJDIR}/regexec.c
CLEANDIRS= lib ext Porting hints
.include <bsd.prog.mk>
autosplit regcomp.c regexec.c pod2man.PL pod2man ext.libs \
man3pages
STATIC_EXT= DynaLoader/DynaLoader
@ -25,70 +23,46 @@ DYNAMIC_EXT= B/B DB_File/DB_File Data/Dumper/Dumper Fcntl/Fcntl IO/IO \
IPC/SysV/SysV NDBM_File/NDBM_File Opcode/Opcode POSIX/POSIX \
SDBM_File/SDBM_File Socket/Socket attrs/attrs re/re
#NONXS_EXT= Errno/pm_to_blib
NONXS_EXT= Errno/pm_to_blib
${PROG}: Config.pm lib/auto/DynaLoader/DynaLoader.a
.include <bsd.prog.mk>
lib/auto/DynaLoader/DynaLoader.a: Config.pm autosplit
${PROG}: linkfarm Config.pm autosplit lib/auto/DynaLoader/DynaLoader.a
config.h: config_h.sh config.sh
config.h: linkfarm
sh config_h.sh
config.sh: ${.CURDIR}/../libperl/config.SH-${OBJFORMAT}.${MACHINE_ARCH}
ln -sf ${.OODATE} ${.TARGET}
cflags: linkfarm
sh cflags.sh
config_h.sh: config_h.SH
ln -sf ${.OODATE} ${.TARGET}
cflags.sh: cflags.SH
ln -sf ${.OODATE} ${.TARGET}
cflags: cflags.sh
sh ${.OODATE}
lib/re.pm: lib ext hints ext/re/re.pm
cat ${PERL5SRC}/ext/re/re.pm > ${.OBJDIR}/lib/re.pm
lib/Config.pm: Config.pm
cp -p ${.OODATE} ${.TARGET}
myconfig: ${PERL5SRC}/myconfig
ln -sf ${.OODATE} ${.TARGET}
Config.pm: myconfig config.sh lib ext hints Porting lib/re.pm
Config.pm: linkfarm
miniperl ${PERL5SRC}/configpm \
Config.pm Porting/Glossary myconfig config.sh
cd lib ; ln -sf ../${.TARGET}
${.OBJDIR}/miniperlmain.c: miniperlmain.c
@ln -sf ${.OODATE} ${.TARGET}
perlmain.c: ${.OBJDIR}/miniperlmain.c config.sh writemain config.h
perlmain.c: linkfarm writemain config.h
sh writemain lib/auto/DynaLoader/DynaLoader.a > ${.TARGET}
writemain.sh: writemain.SH
@ln -sf ${.OODATE} ${.TARGET}
writemain: linkfarm
sh writemain.sh
writemain: writemain.sh
sh ${.OODATE}
${.OBJDIR}/regcomp.c: ${PERL5SRC}/regcomp.c
@ln -sf ${.OODATE} ${.TARGET}
${.OBJDIR}/regexec.c: ${PERL5SRC}/regexec.c
@ln -sf ${.OODATE} ${.TARGET}
autosplit: lib ext Porting hints
autosplit: linkfarm Config.pm lib/*.pm lib/*/*.pm
miniperl -I${.OBJDIR}/lib \
-e 'use AutoSplit; autosplit_lib_modules(@ARGV)' \
lib/*.pm lib/*/*.pm
touch ${.TARGET}
.for I in ${STATIC_EXT}
lib/auto/${I}.a: ext/${I:H}/Makefile.PL cflags lib/Config.pm ${DEPEND_H}
ext/${I:H}/Makefile: linkfarm ext/${I:H}/Makefile.PL cflags Config.pm
cd ext/${I:H}; \
miniperl -I${.OBJDIR}/lib Makefile.PL \
INSTALLDIRS=perl PERL_SRC=${.OBJDIR}; \
make -B config PERL_SRC=${.OBJDIR}; \
make -B all LINKTYPE=static PERL_SRC=${.OBJDIR}
LINKTYPE=static INSTALLDIRS=perl PERL_SRC=${.OBJDIR} \
LIBS="-lperl" INSTALLMAN3DIR=${DESTDIR}/usr/share/perl/man3; \
make -B config PERL_SRC=${.OBJDIR}
lib/auto/${I}.a: linkfarm ext/${I:H}/Makefile
cd ext/${I:H}; \
make -B all PERL_SRC=${.OBJDIR}
all: lib/auto/${I}.a
@ -96,33 +70,85 @@ STATICS+= lib/auto/${I}.a
.endfor
.for I in ${DYNAMIC_EXT}
lib/auto/${I}.so: ${PROG} ext/${I:H}/Makefile.PL cflags lib/Config.pm \
${DEPEND_H} ${.OBJDIR}/regcomp.c ${.OBJDIR}/regexec.c
ext/${I:H}/Makefile: linkfarm ext/${I:H}/Makefile.PL cflags Config.pm pod2man
cd ext/${I:H}; \
miniperl -I${.OBJDIR}/lib Makefile.PL \
INSTALLDIRS=perl PERL_SRC=${.OBJDIR} LIBS="-lperl"; \
make -B config PERL_SRC=${.OBJDIR}; \
make -B all LINKTYPE=dynamic PERL_SRC=${.OBJDIR}
LINKTYPE=dynamic INSTALLDIRS=perl PERL_SRC=${.OBJDIR} \
LIBS="-lperl" INSTALLMAN3DIR=${DESTDIR}/usr/share/perl/man3 \
INST_LIB=${.OBJDIR}/build/${I:H} \
INST_ARCHLIB=${.OBJDIR}/build/${I:H} ;\
make -B config PERL_SRC=${.OBJDIR}
lib/auto/${I}.so: linkfarm ${PROG} ext/${I:H}/Makefile
cd ext/${I:H}; \
make -B all PERL_SRC=${.OBJDIR}
all: lib/auto/${I}.so
DYNAMICS+= lib/auto/${I}.so
.endfor
#.for I in ${NONXS_EXT}
#lib/auto/${I}: ${PROG} ext/${I:H}/Makefile.PL cflags lib/Config.pm
# cd ext/${I:H}; \
# miniperl -I${.OBJDIR}/lib Makefile.PL \
# INSTALLDIRS=perl PERL_SRC=${.OBJDIR}; \
# make -B config PERL_SRC=${.OBJDIR}; \
# make -B all LINKTYPE=nonxs PERL_SRC=${.OBJDIR}
#
#NONXSS+= lib/auto/${I}
#.endfor
.for I in ${NONXS_EXT}
ext/${I:H}/Makefile: linkfarm ext/${I:H}/Makefile.PL cflags lib/Config.pm
mkdir -p ${.OBJDIR}/lib/auto/${I:H} ;\
cd ext/${I:H} ;\
miniperl -I${.OBJDIR}/lib Makefile.PL \
INSTALLDIRS=perl PERL_SRC=${.OBJDIR} \
INSTALLMAN3DIR=/usr/share/perl/man3 \
INST_LIB=${.OBJDIR}/lib/auto/${I:H} \
INST_ARCHLIB=${.OBJDIR}/lib/auto/${I:H} ;\
make -B config PERL_SRC=${.OBJDIR}
#all: ${DYNAMICS} ${NONXSS}
lib/auto/${I}: linkfarm ${PROG} ext/${I:H}/Makefile
cd ext/${I:H}; \
make -B all LINKTYPE=nonxs PERL_SRC=${.OBJDIR}
NONXSS+= lib/auto/${I}
.endfor
pod2man: Config.pm autosplit ${PERL5SRC}/pod/pod2man.PL
ln -sf ${PERL5SRC}/pod/pod2man.PL
miniperl -I${.OBJDIR}/lib pod2man.PL
man3pages: pod2man
cd ${.OBJDIR}/lib ;\
for i in `find . -name \*.pm | grep -v Functions.pm` ; do \
j=`echo $$i | sed -e 's|./||' -e 's|/|::|g' -e 's|.pm|.3|'` ;\
echo Manifying $$j ;\
miniperl -I${.OBJDIR}/lib ${.OBJDIR}/pod2man $$i > $$j ;\
gzip -fn $$j ;\
done
cd ${.OBJDIR}/ext ;\
for i in `find . -name \*.pm -o -name \*.pod | grep -v POSIX.pm` ; do \
j=`echo $$i | sed -e 's|./||' -e 's|/SysV/|/IPC/|' \
-e 's|/Dumper/|/Data/|' -e 's|/lib/|/|' \
-e 's|^[^/]*/||' \
-e 's|/|::|g' -e 's|.pm|.3|' -e 's|.pod|.3|'`;\
i=`echo $$i | sed -e 's|./||'` ;\
echo Manifying $$j ;\
miniperl -I${.OBJDIR}/lib ${.OBJDIR}/pod2man $$i > ../lib/$$j ;\
gzip -fn ../lib/$$j ;\
done
touch ${.TARGET}
all: man3pages
install:
miniperl ${.CURDIR}/install_perl_libs -d ${DESTDIR}
.for I in ${DYNAMIC_EXT}
cd ${.OBJDIR}/ext/${I:H} ;\
make -B install \
INSTALLPRIVLIB=${DESTDIR}/usr/libdata/perl/5.00502 \
INSTALLARCHLIB=${DESTDIR}/usr/libdata/perl/5.00502/mach
.endfor
cd ${.OBJDIR}/lib ;\
for i in `find . \! -type d \! -name \*.3.gz` ; do \
j=`echo $$i|sed -e 's|auto/DynaLoader|mach/auto/DynaLoader|'` ;\
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
$$i ${DESTDIR}/usr/libdata/perl/5.00502/$$j ;\
done
cd ${.OBJDIR}/lib ;\
${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
*.3.gz ${DESTDIR}/usr/share/perl/man/man3
.PATH: ${PERL5SRC}

View File

@ -1,234 +0,0 @@
#!./perl
#
# This was perl 5.00502's installperl, very thoroughly hacked to only
# install the perl libraries.
#
# $Id: install_perl_libs,v 1.2 1998/09/23 06:05:28 markm Exp $
#
BEGIN {
require 5.004;
@INC = 'lib';
$ENV{PERL5LIB} = 'lib';
}
use strict;
use vars qw($nonono $versiononly $depth $destdir $pod2man @modpods $manpage $mod);
use File::Find;
use File::Compare;
use File::Copy ();
use File::Path ();
use Config;
use subs qw(chmod);
while (@ARGV) {
$nonono = 1 if $ARGV[0] eq '-n';
$versiononly = 1 if $ARGV[0] eq '-v';
$destdir = $ARGV[1] if $ARGV[0] eq '-d';
shift;
}
umask 022;
# Specify here any .pm files that are actually architecture-dependent.
# (Those included with XS extensions under ext/ are automatically
# added later.)
my %archpms = (
Config => 1,
);
find(sub {
if ("$File::Find::dir/$_" =~ m{^ext/[^/]+/(.*)\.pm$}) {
(my $pm = $1) =~ s{^lib/}{};
$archpms{$pm} = 1;
}
}, 'ext');
my $ver = $];
my $patchlevel = substr($ver,3,2);
die "Patchlevel of perl ($patchlevel)",
"and patchlevel of config.sh ($Config{'PATCHLEVEL'}) don't match\n"
if $patchlevel != $Config{'PATCHLEVEL'};
# Fetch some frequently-used items from %Config
my $installprivlib = $destdir . $Config{installprivlib};
my $installarchlib = $destdir . $Config{installarchlib};
my $man1dir = $destdir . $Config{man1dir};
my $man1ext = $Config{man1ext};
my $man3dir = $destdir . '/usr/share/perl/man/man3';
my $man3ext = $Config{man3ext};
my $libperl = $Config{libperl};
# Shared library and dynamic loading suffixes.
my $dlext = $Config{dlext};
# Install library files.
my ($do_installarchlib, $do_installprivlib) = (0, 0);
if (chdir "lib") {
$do_installarchlib = ! samepath($installarchlib, '.');
$do_installprivlib = ! samepath($installprivlib, '.');
$do_installprivlib = 0 if $versiononly && !($installprivlib =~ m/\Q$]/);
if ($do_installarchlib || $do_installprivlib) {
find(\&installlib, '.');
}
chdir ".." || die "Can't cd back to source directory: $!\n";
}
else {
warn "Can't cd to lib to install lib files: $!\n";
}
# Install header files and libraries.
my @corefiles;
@corefiles = <*.h libperl*.*>;
foreach my $file (@corefiles) {
copy($file,"$installarchlib/CORE/$file")
and chmod($file =~ /\.(so|\Q$dlext\E)$/ ? 0555 : 0444,
"$installarchlib/CORE/$file");
}
runpod2man('lib', $man3dir, $man3ext);
print STDERR " Installation complete\n";
exit 0;
###############################################################################
sub chmod {
my($mode,$name) = @_;
return if ($^O eq 'dos');
printf STDERR " chmod %o %s\n", $mode, $name;
CORE::chmod($mode,$name)
|| warn sprintf("Couldn't chmod %o %s: $!\n", $mode, $name)
unless $nonono;
}
sub copy {
my($from,$to) = @_;
print STDERR " cp $from $to\n";
File::Copy::copy($from, $to)
|| warn "Couldn't copy $from to $to: $!\n"
unless $nonono;
}
sub samepath {
my($p1, $p2) = @_;
if ($p1 ne $p2) {
my($dev1, $ino1, $dev2, $ino2);
($dev1, $ino1) = stat($p1);
($dev2, $ino2) = stat($p2);
($dev1 == $dev2 && $ino1 == $ino2);
}
else {
1;
}
}
sub installlib {
my $dir = $File::Find::dir;
$dir =~ s#^\.(?![^/])/?##;
local($depth) = $dir ? "lib/$dir" : "lib";
my $name = $_;
if ($name eq 'CVS' && -d $name) {
$File::Find::prune = 1;
return;
}
# ignore patch backups and the .exists files.
return if $name =~ m{\.orig$|~$|^\.exists};
$name = "$dir/$name" if $dir ne '';
my $installlib = $installprivlib;
if ($dir =~ /^auto/ ||
($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) ||
($name =~ /^(.*)\.(?:h|lib)$/i)
) {
$installlib = $installarchlib;
return unless $do_installarchlib;
} else {
return unless $do_installprivlib;
}
if (-f $_) {
if (/\.(?:al|ix)$/ && !($dir =~ m[^auto/(.*)$] && $archpms{$1})) {
$installlib = $installprivlib;
}
copy($_, "$installlib/$name")
and chmod($name =~ /\.(so|$dlext)$/o ? 0555 : 0444,
"$installlib/$name");
}
}
sub runpod2man {
my($poddir, $mandir, $manext) = @_;
my($builddir) = Cwd::getcwd();
my($zipman) = "gzip -f";
if ($mandir eq ' ' or $mandir eq '') {
print STDERR "Skipping installation of $poddir man pages.\n";
return;
}
print STDERR "chdir $poddir\n";
chdir $poddir || die "Unable to cd to $poddir directory!\n$!\n";
-r "../../pod/pod2man" || die "Executable pod/pod2man not found.\n";
$pod2man = "miniperl -I lib ../../pod/pod2man/pod2man --section=$manext --official";
@modpods = ();
find(\&lsmodpods, '.');
foreach $mod (@modpods) {
$manpage = $mod;
my $tmp;
# Skip .pm files that have corresponding .pod files, and Functions.pm.
next if (($tmp = $mod) =~ s/\.pm$/.pod/ && -f $tmp);
next if ($mod eq 'Pod/Functions.pm'); #### Used only by pod itself
# Convert name from File/Basename.pm to File::Basename.3 format,
# if necessary.
$manpage =~ s#\.p(m|od)$##;
$manpage =~ s#/#::#g;
$tmp = $destdir ."${mandir}/${manpage}.tmp";
$manpage = $destdir . "${mandir}/${manpage}.${manext}";
if (&cmd("$pod2man $mod > $tmp") == 0 && -s $tmp) {
if (!$nonono) {
print STDERR "Compressing $manpage\n";
rename($tmp, $manpage) && system($zipman, $manpage) && next;
}
else {
unlink($tmp);
}
}
}
chdir "$builddir" || die "Unable to cd back to $builddir directory!\n$!\n";
print STDERR "chdir $builddir\n";
}
sub lsmodpods {
my $dir = $File::Find::dir;
my $name = $File::Find::name;
if (-f $_) {
$name =~ s#^\./##;
push(@modpods, $name) if ($name =~ /\.p(m|od)$/);
}
}
sub cmd {
my($cmd) = @_;
print STDERR " $cmd\n";
unless ($nonono) {
system $cmd;
warn "Command failed!!\n" if $?;
}
return $? != 0;
}

View File

@ -1,5 +1,5 @@
#
# $Id$
# $Id: Makefile,v 1.1 1998/09/09 07:20:27 markm Exp $
#
PODS= perl.pod perl5004delta.pod perlapio.pod perlbook.pod perlbot.pod \
@ -26,9 +26,11 @@ MAN1+= ${I}.1
CLEANFILES+= ${.OBJDIR}/${I}.pod ${I}.1
.endfor
test:
echo ${MAN1}
.include <bsd.prog.mk>
install:
cd ${PERL5SRC}/pod ;\
${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
${PODS} ${DESTDIR}/usr/libdata/perl/5.00502/pod
.PATH: ${PERL5SRC}/pod

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile,v 1.3 1998/09/16 17:25:52 markm Exp $
# $Id: Makefile,v 1.4 1998/09/22 12:00:58 markm Exp $
#
PROG= suidperl
@ -13,72 +13,54 @@ BINOWN= root
BINMODE=4511
CLEANFILES= config.h config.sh config_h.sh writemain writemain.sh \
Config.pm cflags cflags.sh myconfig perlmain.c miniperlmain.c
CLEANDIRS= lib ext Porting hints
.include <bsd.prog.mk>
Config.pm cflags cflags.sh myconfig perlmain.c miniperlmain.c \
autosplit regcomp.c regexec.c ext.libs sperl.c
STATIC_EXT= DynaLoader/DynaLoader
${PROG}: Config.pm lib/auto/DynaLoader/DynaLoader.a
.include <bsd.prog.mk>
lib/auto/DynaLoader/DynaLoader.a: Config.pm autosplit
config.h: config_h.sh config.sh
sh config_h.sh
config.sh: ${.CURDIR}/../libperl/config.SH-${OBJFORMAT}.${MACHINE_ARCH}
ln -sf ${.OODATE} ${.TARGET}
config_h.sh: config_h.SH
ln -sf ${.OODATE} ${.TARGET}
cflags.sh: cflags.SH
ln -sf ${.OODATE} ${.TARGET}
cflags: cflags.sh
sh ${.OODATE}
lib/re.pm: lib ext hints ext/re/re.pm
cat ${PERL5SRC}/ext/re/re.pm > ${.OBJDIR}/lib/re.pm
lib/Config.pm: Config.pm
cp -p ${.OODATE} ${.TARGET}
myconfig: ${PERL5SRC}/myconfig
ln -sf ${.OODATE} ${.TARGET}
Config.pm: myconfig config.sh lib ext hints Porting lib/re.pm
miniperl ${PERL5SRC}/configpm \
Config.pm Porting/Glossary myconfig config.sh
${.OBJDIR}/miniperlmain.c: miniperlmain.c
@ln -sf ${.OODATE} ${.TARGET}
${PROG}: linkfarm Config.pm autosplit lib/auto/DynaLoader/DynaLoader.a
sperl.c: perl.c
@ln -sf ${.OODATE} ${.TARGET}
perlmain.c: ${.OBJDIR}/miniperlmain.c config.sh writemain config.h
config.h: linkfarm
sh config_h.sh
cflags: linkfarm
sh cflags.sh
Config.pm: linkfarm
miniperl ${PERL5SRC}/configpm \
Config.pm Porting/Glossary myconfig config.sh
cd lib ; ln -sf ../${.TARGET}
perlmain.c: linkfarm writemain config.h
sh writemain lib/auto/DynaLoader/DynaLoader.a > ${.TARGET}
writemain.sh: writemain.SH
@ln -sf ${.OODATE} ${.TARGET}
writemain: linkfarm
sh writemain.sh
writemain: writemain.sh
sh ${.OODATE}
autosplit: lib ext Porting hints
autosplit: linkfarm Config.pm lib/*.pm lib/*/*.pm
miniperl -I${.OBJDIR}/lib \
-e 'use AutoSplit; autosplit_lib_modules(@ARGV)' \
lib/*.pm lib/*/*.pm
touch ${.TARGET}
.for I in ${STATIC_EXT}
lib/auto/${I}.a: cflags lib/Config.pm ${DEPEND_H}
ext/${I:H}/Makefile: linkfarm ext/${I:H}/Makefile.PL cflags Config.pm
cd ext/${I:H}; \
miniperl -I${.OBJDIR}/lib Makefile.PL \
INSTALLDIRS=perl PERL_SRC=${.OBJDIR}; \
make -B config PERL_SRC=${.OBJDIR}; \
make -B all LINKTYPE=static PERL_SRC=${.OBJDIR}
LINKTYPE=static INSTALLDIRS=perl PERL_SRC=${.OBJDIR} \
LIBS="-lperl" INSTALLMAN3DIR=${DESTDIR}/usr/share/perl/man3; \
make -B config PERL_SRC=${.OBJDIR}
lib/auto/${I}.a: linkfarm ext/${I:H}/Makefile
cd ext/${I:H}; \
make -B all PERL_SRC=${.OBJDIR}
all: lib/auto/${I}.a
STATICS+= lib/auto/${I}.a
.endfor

View File

@ -1,7 +1,12 @@
#
# $Id$
# $Id: Makefile,v 1.1 1998/09/09 07:20:29 markm Exp $
#
PROG= h2ph
.include <bsd.prog.mk>
afterinstall:
cd ${DESTDIR}/usr/include; \
miniperl ${.OBJDIR}/${PROG} -d \
${DESTDIR}/usr/libdata/perl/5.00502/mach * sys/*