mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-09 10:00:39 +00:00
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:
parent
137d6f5705
commit
ed4a07ffcc
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=40232
|
@ -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 \
|
||||
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 ${.TARGET} -type f` ; do \
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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/*
|
||||
|
|
Loading…
Reference in a new issue