Bring in the Perl5 BMake files. This ends the easy stuff.

I'll be doiung the rest in stages.
This commit is contained in:
Mark Murray 1998-09-09 07:20:33 +00:00
parent 7744993bbc
commit 17168bf62e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=38983
30 changed files with 1440 additions and 0 deletions

View File

@ -0,0 +1,5 @@
# $Id$
SUBDIR= libperl miniperl perl suidperl pod utils x2p
.include <bsd.subdir.mk>

View File

@ -0,0 +1,5 @@
# $Id$
PERL5SRC?= ${.CURDIR}/../../../../contrib/perl5
BINDIR?= /usr/bin

View File

@ -0,0 +1,38 @@
#
# $Id$
#
LIB= perl
CFLAGS+=-I${.OBJDIR} -I${PERL5SRC}
SRCS= perl.c gv.c toke.c perly.c op.c regcomp.c dump.c util.c mg.c byterun.c \
hv.c av.c run.c pp_hot.c sv.c pp.c scope.c pp_ctl.c pp_sys.c \
doop.c doio.c regexec.c taint.c deb.c universal.c globals.c perlio.c \
config.h
NOPIC= true
beforeinstall beforedepend all: config.h config.sh
CLEANFILES+= config.h config.sh config_h.sh
.include <bsd.lib.mk>
.SUFFIXES:
.SUFFIXES: .a .c .h .o .po .sh
.PATH: ${PERL5SRC}
config.h: config_h.sh config.sh
sh config_h.sh
config.sh: ${.CURDIR}/config.SH
ln -sf ${.OODATE} ${.TARGET}
config_h.sh: config_h.SH
ln -sf ${.OODATE} ${.TARGET}
test:
@echo ${PERL5SRC}

View File

@ -0,0 +1,587 @@
#!/bin/sh
#
# This file was produced by running the Configure script. It holds all the
# definitions figured out by Configure. Should you modify one of these values,
# do not forget to propagate your changes by running "Configure -der". You may
# instead choose to run each of the .SH files by yourself, or "Configure -S".
#
# Package name : perl5
# Source directory : .
# Configuration time: Wed Sep 2 12:54:30 SAST 1998
# Configured by : root
# Target system : freebsd greenpeace.grondar.za 3.0-current freebsd 3.0-current #0: sat aug 22 14:55:55 sast 1998 root@greenpeace.grondar.za:usrsrcsyscompilega586dx i386
Author=''
Date='$Date'
Header=''
Id='$Id'
Locker=''
Log='$Log'
Mcc='Mcc'
RCSfile='$RCSfile'
Revision='$Revision'
Source=''
State=''
_a='.a'
_exe=''
_o='.o'
afs='false'
alignbytes='4'
ansi2knr=''
aphostname=''
apiversion='5.005'
ar='ar'
archlib='/usr/libdata/perl/5.00502/mach'
archlibexp='/usr/libdata/perl/5.00502/mach'
archname='i386-freebsd'
archobjs=''
awk='awk'
baserev='5.0'
bash=''
bin='/usr/bin'
binexp='/usr/bin'
bison=''
byacc='byacc'
byteorder='1234'
c=''
castflags='0'
cat='cat'
cc='cc'
cccdlflags='-DPIC -fpic'
ccdlflags=' '
ccflags=''
cf_by='root'
cf_email='root@greenpeace.grondar.za'
cf_time='Wed Sep 2 12:54:30 SAST 1998'
chgrp=''
chmod=''
chown=''
clocktype='clock_t'
comm='comm'
compress=''
contains='grep'
cp='cp'
cpio=''
cpp='cpp'
cpp_stuff='42'
cppflags=''
cpplast='-'
cppminus='-'
cpprun='cc -E'
cppstdin='cc -E'
cryptlib=''
csh='csh'
d_Gconvert='sprintf((b),"%.*g",(n),(x))'
d_access='define'
d_alarm='define'
d_archlib='define'
d_attribut='define'
d_bcmp='define'
d_bcopy='define'
d_bsd='define'
d_bsdgetpgrp='undef'
d_bsdsetpgrp='define'
d_bzero='define'
d_casti32='undef'
d_castneg='define'
d_charvspr='undef'
d_chown='define'
d_chroot='define'
d_chsize='undef'
d_closedir='define'
d_const='define'
d_crypt='define'
d_csh='define'
d_cuserid='undef'
d_dbl_dig='define'
d_difftime='define'
d_dirnamlen='define'
d_dlerror='define'
d_dlopen='define'
d_dlsymun='undef'
d_dosuid='undef'
d_dup2='define'
d_endgrent='define'
d_endhent='define'
d_endnent='define'
d_endpent='define'
d_endpwent='define'
d_endsent='define'
d_eofnblk='define'
d_eunice='undef'
d_fchmod='define'
d_fchown='define'
d_fcntl='define'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
d_fgetpos='define'
d_flexfnam='define'
d_flock='define'
d_fork='define'
d_fpathconf='define'
d_fsetpos='define'
d_ftime='undef'
d_getgrent='define'
d_getgrps='define'
d_gethbyaddr='define'
d_gethbyname='define'
d_gethent='define'
d_gethname='undef'
d_gethostprotos='define'
d_getlogin='define'
d_getnbyaddr='define'
d_getnbyname='define'
d_getnent='define'
d_getnetprotos='define'
d_getpbyname='define'
d_getpbynumber='define'
d_getpent='define'
d_getpgid='define'
d_getpgrp2='undef'
d_getpgrp='define'
d_getppid='define'
d_getprior='define'
d_getprotoprotos='define'
d_getpwent='define'
d_getsbyname='define'
d_getsbyport='define'
d_getsent='define'
d_getservprotos='define'
d_gettimeod='define'
d_gnulibc='undef'
d_grpasswd='define'
d_htonl='define'
d_index='undef'
d_inetaton='define'
d_isascii='define'
d_killpg='define'
d_lchown='define'
d_link='define'
d_locconv='define'
d_lockf='define'
d_longdbl='define'
d_longlong='define'
d_lstat='define'
d_mblen='define'
d_mbstowcs='define'
d_mbtowc='define'
d_memcmp='define'
d_memcpy='define'
d_memmove='define'
d_memset='define'
d_mkdir='define'
d_mkfifo='define'
d_mktime='define'
d_msg='define'
d_msgctl='define'
d_msgget='define'
d_msgrcv='define'
d_msgsnd='define'
d_mymalloc='undef'
d_nice='define'
d_oldpthreads='undef'
d_oldsock='undef'
d_open3='define'
d_pathconf='define'
d_pause='define'
d_phostname='undef'
d_pipe='define'
d_poll='define'
d_portable='define'
d_pthread_yield='undef'
d_pthreads_created_joinable='undef'
d_pwage='undef'
d_pwchange='define'
d_pwclass='define'
d_pwcomment='undef'
d_pwexpire='define'
d_pwgecos='define'
d_pwquota='undef'
d_pwpasswd='define'
d_readdir='define'
d_readlink='define'
d_rename='define'
d_rewinddir='define'
d_rmdir='define'
d_safebcpy='define'
d_safemcpy='define'
d_sanemcmp='define'
d_sched_yield='define'
d_seekdir='define'
d_select='define'
d_sem='define'
d_semctl='define'
d_semctl_semid_ds='define'
d_semctl_semun='define'
d_semget='define'
d_semop='define'
d_setegid='define'
d_seteuid='define'
d_setgrent='define'
d_setgrps='define'
d_sethent='define'
d_setlinebuf='define'
d_setlocale='define'
d_setnent='define'
d_setpent='define'
d_setpgid='define'
d_setpgrp2='undef'
d_setpgrp='define'
d_setprior='define'
d_setpwent='define'
d_setregid='define'
d_setresgid='undef'
d_setresuid='undef'
d_setreuid='define'
d_setrgid='define'
d_setruid='define'
d_setsent='define'
d_setsid='define'
d_setvbuf='define'
d_sfio='undef'
d_shm='define'
d_shmat='define'
d_shmatprototype='define'
d_shmctl='define'
d_shmdt='define'
d_shmget='define'
d_sigaction='define'
d_sigsetjmp='define'
d_socket='define'
d_sockpair='define'
d_statblks='define'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='undef'
d_stdiobase='undef'
d_stdstdio='undef'
d_strchr='define'
d_strcoll='define'
d_strctcpy='define'
d_strerrm='strerror(e)'
d_strerror='define'
d_strtod='define'
d_strtol='define'
d_strtoul='define'
d_strxfrm='define'
d_suidsafe='undef'
d_symlink='define'
d_syscall='define'
d_sysconf='define'
d_sysernlst=''
d_syserrlst='define'
d_system='define'
d_tcgetpgrp='define'
d_tcsetpgrp='define'
d_telldir='define'
d_time='define'
d_times='define'
d_truncate='define'
d_tzname='define'
d_umask='define'
d_uname='define'
d_union_semun='define'
d_vfork='define'
d_void_closedir='undef'
d_voidsig='define'
d_voidtty=''
d_volatile='define'
d_vprintf='define'
d_wait4='define'
d_waitpid='define'
d_wcstombs='define'
d_wctomb='define'
d_xenix='undef'
date='date'
db_hashtype='u_int32_t'
db_prefixtype='size_t'
defvoidused='15'
direntrytype='struct dirent'
dlext='so'
dlsrc='dl_dlopen.xs'
doublesize='8'
dynamic_ext='B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File Opcode POSIX SDBM_File Socket attrs re'
eagain='EAGAIN'
ebcdic='undef'
echo='echo'
egrep='egrep'
emacs=''
eunicefix=':'
exe_ext=''
expr='expr'
extensions='B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File Opcode POSIX SDBM_File Socket attrs re Errno'
find='find'
firstmakefile='makefile'
flex=''
fpostype='fpos_t'
freetype='void'
full_csh='/bin/csh'
full_sed='/usr/bin/sed'
gccversion='2.7.2.1'
gidtype='gid_t'
glibpth='/usr/lib /usr/lib/elf /usr/lib/aout'
grep='grep'
groupcat='cat /etc/group'
groupstype='gid_t'
gzip='gzip'
h_fcntl='false'
h_sysfile='true'
hint='recommended'
hostcat='cat /etc/hosts'
huge=''
i_arpainet='define'
i_bsdioctl=''
i_db='define'
i_dbm='undef'
i_dirent='define'
i_dld='undef'
i_dlfcn='define'
i_fcntl='undef'
i_float='define'
i_gdbm='undef'
i_grp='define'
i_limits='define'
i_locale='define'
i_malloc='define'
i_math='define'
i_memory='undef'
i_ndbm='define'
i_netdb='define'
i_neterrno='undef'
i_niin='define'
i_pwd='define'
i_rpcsvcdbm='undef'
i_sfio='undef'
i_sgtty='undef'
i_stdarg='define'
i_stddef='define'
i_stdlib='define'
i_string='define'
i_sysdir='define'
i_sysfile='define'
i_sysfilio='define'
i_sysin='undef'
i_sysioctl='define'
i_sysndir='undef'
i_sysparam='define'
i_sysresrc='define'
i_sysselct='define'
i_syssockio=''
i_sysstat='define'
i_systime='define'
i_systimek='undef'
i_systimes='define'
i_systypes='define'
i_sysun='define'
i_syswait='define'
i_termio='undef'
i_termios='define'
i_time='undef'
i_unistd='define'
i_utime='define'
i_values='define'
i_varargs='undef'
i_varhdr='stdarg.h'
i_vfork='undef'
incpath=''
inews=''
installarchlib='/usr/libdata/perl/5.00502/mach'
installbin='/usr/bin'
installman1dir='/usr/share/man/man1'
installman3dir='/usr/share/perl/man/man3'
installprivlib='/usr/libdata/perl/5.00502'
installscript='/usr/bin'
installsitearch='/usr/local/lib/perl/5.00502/i386-freebsd'
installsitelib='/usr/local/lib/perl/5.00502'
intsize='4'
known_extensions='B DB_File Data/Dumper Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
ksh=''
large=''
ld='ld'
lddlflags='-Bshareable'
ldflags=''
less='less'
lib_ext='.a'
libc='undef'
libperl='libperl.a'
libpth='/usr/lib /usr/lib/elf /usr/lib/aout'
libs='-lm -lc -lcrypt'
libswanted='sfio socket inet nsl nm ndbm gdbm dbm db dl dld ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x'
line='line'
lint=''
lkflags=''
ln='ln'
lns='/bin/ln -s'
locincpth=''
loclibpth=''
longdblsize='12'
longlongsize='8'
longsize='4'
lp=''
lpr=''
ls='ls'
lseektype='off_t'
mail=''
mailx=''
make='make'
make_set_make='#'
mallocobj=''
mallocsrc=''
malloctype='void *'
man1dir='/usr/share/man/man1'
man1direxp='/usr/share/man/man1'
man1ext='1'
man3dir='/usr/share/perl/man/man3'
man3direxp='/usr/share/perl/man/man3'
man3ext='3'
medium=''
mips=''
mips_type=''
mkdir='mkdir'
models='none'
modetype='mode_t'
more='more'
mv=''
myarchname='i386-freebsd'
mydomain='.grondar.za'
myhostname='greenpeace'
myuname='freebsd greenpeace.grondar.za 3.0-current freebsd 3.0-current #0: sat aug 22 14:55:55 sast 1998 root@greenpeace.grondar.za:usrsrcsyscompilega586dx i386 '
n='-n'
netdb_hlen_type='int'
netdb_host_type='const char *'
netdb_name_type='const char *'
netdb_net_type='unsigned long'
nm='nm'
nm_opt=''
nm_so_opt=''
nonxs_ext='Errno'
nroff='nroff'
o_nonblock='O_NONBLOCK'
obj_ext='.o'
optimize='-O'
orderlib='false'
osname='freebsd'
osvers='3.0-current'
package='perl5'
pager='/usr/bin/more'
passcat='cat /etc/passwd'
patchlevel='5'
path_sep=':'
perl='perl'
perladmin='root@greenpeace.grondar.za'
perlpath='/usr/bin/perl'
pg='pg'
phostname='hostname'
pidtype='pid_t'
plibpth=''
pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
privlib='/usr/libdata/perl/5.00502'
privlibexp='/usr/libdata/perl/5.00502'
prototype='define'
ptrsize='4'
randbits='31'
ranlib='/usr/bin/ranlib'
rd_nodata='-1'
rm='rm'
rmail=''
runnm='true'
scriptdir='/usr/bin'
scriptdirexp='/usr/bin'
sed='sed'
selecttype='fd_set *'
sendmail='sendmail'
sh='/bin/sh'
shar=''
sharpbang='#!'
shmattype='char *'
shortsize='2'
shrpenv=''
shsharp='true'
sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 IOT '
sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "URG", "STOP", "TSTP", "CONT", "CHLD", "TTIN", "TTOU", "IO", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "INFO", "USR1", "USR2", "IOT", 0'
sig_num='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 6, 0'
signal_t='void'
sitearch='/usr/local/lib/perl/5.00502/i386-freebsd'
sitearchexp='/usr/local/lib/perl/5.00502/i386-freebsd'
sitelib='/usr/local/lib/perl/5.00502'
sitelibexp='/usr/local/lib/perl/5.00502'
sizetype='size_t'
sleep=''
smail=''
small=''
so='so'
sockethdr=''
socketlib=''
sort='sort'
spackage='Perl5'
spitshell='cat'
split=''
src='.'
ssizetype='ssize_t'
startperl='#!/usr/bin/perl'
startsh='#!/bin/sh'
static_ext=' '
stdchar='char'
stdio_base='((fp)->_base)'
stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
stdio_cnt='((fp)->_cnt)'
stdio_filbuf=''
stdio_ptr='((fp)->_ptr)'
strings='/usr/include/string.h'
submit=''
subversion='2'
sysman='/usr/share/man/man1'
tail=''
tar=''
tbl=''
tee='tee'
test='test'
timeincl='/usr/include/sys/time.h '
timetype='time_t'
touch='touch'
tr='tr'
trnl='\n'
troff=''
uidtype='uid_t'
uname='uname'
uniq='uniq'
usedl='define'
usemymalloc='n'
usenm='true'
useopcode='true'
useperlio='undef'
useposix='true'
usesfio='false'
useshrplib='false'
usethreads='undef'
usevfork='true'
usrinc='/usr/include'
uuname=''
version='5.00502'
vi=''
voidflags='15'
xlibpth='/usr/lib/386 /lib/386'
zcat=''
zip='zip'
# Configure command line arguments.
config_arg0='Configure'
config_args='-Dprefix=/usr -Darchlib=/usr/libdata/perl/5.00502/mach -Dprivlib=/usr/libdata/perl/5.00502 -Dsitearch=/usr/local/lib/perl/5.00502/i386-freebsd -Dsitelib=/usr/local/lib/perl/5.00502 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/perl/man/man3 -des -Ulocincpth= -Uloclibpth= -Dpager=/usr/bin/more'
config_argc=11
config_arg1='-Dprefix=/usr'
config_arg2='-Darchlib=/usr/libdata/perl/5.00502/mach'
config_arg3='-Dprivlib=/usr/libdata/perl/5.00502'
config_arg4='-Dsitearch=/usr/local/lib/perl/5.00502/i386-freebsd'
config_arg5='-Dsitelib=/usr/local/lib/perl/5.00502'
config_arg6='-Dman1dir=/usr/share/man/man1'
config_arg7='-Dman3dir=/usr/share/perl/man/man3'
config_arg8='-des'
config_arg9='-Ulocincpth='
config_arg10='-Uloclibpth='
config_arg11='-Dpager=/usr/bin/more'
PATCHLEVEL=5
SUBVERSION=2
CONFIG=true

View File

@ -0,0 +1,30 @@
#
# $Id$
#
PROG= miniperl
NOMAN= true
CFLAGS+=-I${PERL5SRC} -I${.OBJDIR}
SRCS= miniperlmain.c config.h
LDADD= -lperl -lm -lcrypt
# Trick the bootstrap tools into thinking that miniperl is perl.
# This gets overwritten.
LINKS= ${BINDIR}/${PROG} ${BINDIR}/perl
CLEANFILES= config.h config.sh config_h.sh
.include <bsd.prog.mk>
miniperlmain.o: config.h
config.h: config_h.sh config.sh
sh config_h.sh
config.sh: ${.CURDIR}/../libperl/config.SH
@ln -sf ${.OODATE} ${.TARGET}
config_h.sh: config_h.SH
@ln -sf ${.OODATE} ${.TARGET}
.PATH: ${PERL5SRC}

View File

@ -0,0 +1,131 @@
#
# $Id$
#
PROG= perl
NOMAN= true
CFLAGS+=-I${PERL5SRC} -I${.OBJDIR}
SRCS= perlmain.c config.h
LDADD= lib/auto/DynaLoader/DynaLoader.a -lperl -lm -lcrypt
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>
HEADERS=EXTERN.h INTERN.h XSUB.h XSlock.h av.h bytecode.h byterun.h \
cc_runtime.h cop.h cv.h dosish.h embed.h embedvar.h fakethr.h form.h \
gv.h handy.h hv.h intrpvar.h iperlsys.h keywords.h mg.h nostdio.h \
objXSUB.h objpp.h op.h opcode.h patchlevel.h perl.h perlio.h \
perlsdio.h perlsfio.h perlvars.h perly.h pp.h pp_proto.h proto.h \
regcomp.h regexp.h regnodes.h scope.h sv.h thrdvar.h thread.h \
unixish.h util.h
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
${PROG}: lib/auto/DynaLoader/DynaLoader.a
config.h: config_h.sh config.sh
sh config_h.sh
config.sh: ${.CURDIR}/../libperl/config.SH
@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:
@rm -rf lib
cp -rp ${PERL5SRC}/lib .
ext:
@rm -rf ext
cp -rp ${PERL5SRC}/ext .
Porting:
@rm -rf Porting
cp -rp ${PERL5SRC}/Porting .
hints:
@rm -rf hints
cp -rp ${PERL5SRC}/hints .
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
@cd lib; ln -s ../${.OODATE}
myconfig: ${PERL5SRC}/myconfig
@ln -sf ${.OODATE} ${.TARGET}
Config.pm: myconfig lib ext hints Porting lib/re.pm
miniperl ${PERL5SRC}/configpm \
Config.pm Porting/Glossary myconfig config.sh
DEPEND_H=
.for I in ${HEADERS}
${.OBJDIR}/${I}: ${I}
@ln -sf ${.OODATE} ${.TARGET}
CLEANFILES+= ${.OBJDIR}/${I}
DEPEND_H+= ${.OBJDIR}/${I}
.endfor
lib/auto/DynaLoader/DynaLoader.a: cflags lib/Config.pm ${DEPEND_H}
miniperl -I${.OBJDIR}/lib \
-e 'use AutoSplit; autosplit_lib_modules(@ARGV)' \
lib/*.pm lib/*/*.pm
cd ext/DynaLoader; \
miniperl -I${.OBJDIR}/lib Makefile.PL \
INSTALLDIRS=perl PERL_SRC=${.OBJDIR}; \
make config PERL_SRC=${.OBJDIR}; \
make all LINKTYPE=static PERL_SRC=${.OBJDIR}
${.OBJDIR}/miniperlmain.c: miniperlmain.c
@ln -sf ${.OODATE} ${.TARGET}
perlmain.c: ${.OBJDIR}/miniperlmain.c config.sh writemain
sh writemain lib/auto/DynaLoader/DynaLoader.a > ${.TARGET}
writemain.sh: writemain.SH
@ln -sf ${.OODATE} ${.TARGET}
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}
.for I in ${DYNAMIC_EXT}
lib/auto/${I}.so: ${PROG} ${.OBJDIR}/regcomp.c ${.OBJDIR}/regexec.c
cd ext/${I:H}; \
miniperl -I${.OBJDIR}/lib Makefile.PL \
INSTALLDIRS=perl PERL_SRC=${.OBJDIR}; \
make config PERL_SRC=${.OBJDIR}; \
make all LINKTYPE=dynamic PERL_SRC=${.OBJDIR}
DYNAMICS+= lib/auto/${I}.so
.endfor
all: ${DYNAMICS}
install:
miniperl ${.CURDIR}/install_perl_libs -d ${DESTDIR}
.PATH: ${PERL5SRC}

View File

@ -0,0 +1,234 @@
#!./perl
#
# This was perl 5.00502's installperl, very thoroughly hacked to only
# install the perl libraries.
#
# $Id$
#
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 = $Config{man1dir};
my $man1ext = $Config{man1ext};
my $man3dir = $Config{man3dir};
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

@ -0,0 +1,7 @@
#
# $Id$
#
SUBDIR= pod2man pod2html pod2latex pod2text pod
.include <bsd.subdir.mk>

View File

@ -0,0 +1,14 @@
#
# $Id$
#
PERL5SRC?= ${.CURDIR}/../../../../../contrib/perl5
MINIPERLOPT?= -I${.OBJDIR}/../../perl/lib -I${.OBJDIR}/../../perl
CLEANFILES+= ${PROG}.1 ${PROG}.PL
.ORDER: ${PROG}.PL ${PROG} ${PROG}.1 ${PROG}.1.gz
STRIP=
.include "../Makefile.inc"

View File

@ -0,0 +1,34 @@
#
# $Id$
#
PODS= perl.pod perl5004delta.pod perlapio.pod perlbook.pod perlbot.pod \
perlcall.pod perldata.pod perldebug.pod perldelta.pod perldiag.pod \
perldsc.pod perlembed.pod perlfaq.pod perlfaq1.pod perlfaq2.pod \
perlfaq3.pod perlfaq4.pod perlfaq5.pod perlfaq6.pod perlfaq7.pod \
perlfaq8.pod perlfaq9.pod perlform.pod perlfunc.pod perlguts.pod \
perlhist.pod perlipc.pod perllocale.pod perllol.pod perlmod.pod \
perlmodinstall.pod perlmodlib.pod perlobj.pod perlop.pod perlpod.pod \
perlport.pod perlre.pod perlref.pod perlrun.pod perlsec.pod \
perlstyle.pod perlsub.pod perlsyn.pod perltie.pod perltoc.pod \
perltoot.pod perltrap.pod perlvar.pod perlxs.pod perlxstut.pod
.for I in ${PODS:R}
${.OBJDIR}/${I}.pod: ${I}.pod
@ln -sf ${.OODATE} ${.TARGET}
${I}.1: ${I}.pod
miniperl ${MINIPERLOPT} ${.OBJDIR}/../pod2man/pod2man ${.OODATE} \
> ${.TARGET}
MAN1+= ${I}.1
CLEANFILES+= ${.OBJDIR}/${I}.pod ${I}.1
.endfor
test:
echo ${MAN1}
.include <bsd.prog.mk>
.PATH: ${PERL5SRC}/pod

View File

@ -0,0 +1,16 @@
#
# $Id$
#
PROG= pod2html
${PROG}: ${PROG}.PL
miniperl ${MINIPERLOPT} ${PROG}.PL
${PROG}.1: ${PROG}.PL
miniperl ${MINIPERLOPT} ${.OBJDIR}/../pod2man/pod2man ${PROG}.PL > ${PROG}.1
.include <bsd.prog.mk>
${PROG}.PL: ${PERL5SRC}/pod/${PROG}.PL
cp -p ${.OODATE} ${.TARGET}

View File

@ -0,0 +1,15 @@
#
# $Id$
#
PROG= pod2latex
NOMAN= true
${PROG}: ${PROG}.PL
miniperl ${MINIPERLOPT} ${PROG}.PL
.include <bsd.prog.mk>
${PROG}.PL: ${PERL5SRC}/pod/${PROG}.PL
cp -p ${.OODATE} ${.TARGET}

View File

@ -0,0 +1,17 @@
#
# $Id$
#
PROG= pod2man
${PROG}: ${PROG}.PL
miniperl ${MINIPERLOPT} ${PROG}.PL
${PROG}.1: ${PROG}.PL
miniperl ${MINIPERLOPT} ${.OBJDIR}/../pod2man/pod2man ${PROG}.PL \
> ${PROG}.1
.include <bsd.prog.mk>
${PROG}.PL: ${PERL5SRC}/pod/${PROG}.PL
cp -p ${.OODATE} ${.TARGET}

View File

@ -0,0 +1,15 @@
#
# $Id$
#
PROG= pod2text
NOMAN= true
${PROG}: ${PROG}.PL
miniperl ${MINIPERLOPT} ${PROG}.PL
.include <bsd.prog.mk>
${PROG}.PL: ${PERL5SRC}/pod/${PROG}.PL
cp -p ${.OODATE} ${.TARGET}

View File

@ -0,0 +1,105 @@
#
# $Id$
#
PROG= suidperl
NOMAN= true
CFLAGS+=-I${PERL5SRC} -I${.OBJDIR} -DIAMSUID
SRCS= perlmain.c sperl.c config.h
LDADD= lib/auto/DynaLoader/DynaLoader.a -lperl -lm -lcrypt
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>
HEADERS=EXTERN.h INTERN.h XSUB.h XSlock.h av.h bytecode.h byterun.h \
cc_runtime.h cop.h cv.h dosish.h embed.h embedvar.h fakethr.h form.h \
gv.h handy.h hv.h intrpvar.h iperlsys.h keywords.h mg.h nostdio.h \
objXSUB.h objpp.h op.h opcode.h patchlevel.h perl.h perlio.h \
perlsdio.h perlsfio.h perlvars.h perly.h pp.h pp_proto.h proto.h \
regcomp.h regexp.h regnodes.h scope.h sv.h thrdvar.h thread.h \
unixish.h util.h
${PROG}: lib/auto/DynaLoader/DynaLoader.a
config.h: config_h.sh config.sh
sh config_h.sh
config.sh: ${.CURDIR}/../libperl/config.SH
@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:
@rm -rf lib
cp -rp ${PERL5SRC}/lib .
ext:
@rm -rf ext
cp -rp ${PERL5SRC}/ext .
Porting:
@rm -rf Porting
cp -rp ${PERL5SRC}/Porting .
hints:
@rm -rf hints
cp -rp ${PERL5SRC}/hints .
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
@cd lib; ln -s ../${.OODATE}
myconfig: ${PERL5SRC}/myconfig
@ln -sf ${.OODATE} ${.TARGET}
Config.pm: myconfig lib ext hints Porting lib/re.pm
miniperl ${PERL5SRC}/configpm \
Config.pm Porting/Glossary myconfig config.sh
DEPEND_H=
.for I in ${HEADERS}
${.OBJDIR}/${I}: ${I}
@ln -sf ${.OODATE} ${.TARGET}
CLEANFILES+= ${.OBJDIR}/${I}
DEPEND_H+= ${.OBJDIR}/${I}
.endfor
lib/auto/DynaLoader/DynaLoader.a: cflags lib/Config.pm ${DEPEND_H}
cd ext/DynaLoader; \
miniperl -I../../lib Makefile.PL \
INSTALLDIRS=perl PERL_SRC=${.OBJDIR}; \
make config PERL_SRC=${.OBJDIR}; \
make all LINKTYPE=static PERL_SRC=${.OBJDIR}
${.OBJDIR}/miniperlmain.c: miniperlmain.c
@ln -sf ${.OODATE} ${.TARGET}
sperl.c: perl.c
@ln -sf ${.OODATE} ${.TARGET}
perlmain.c: ${.OBJDIR}/miniperlmain.c config.sh writemain
sh writemain lib/auto/DynaLoader/DynaLoader.a > ${.TARGET}
writemain.sh: writemain.SH
@ln -sf ${.OODATE} ${.TARGET}
writemain: writemain.sh
sh ${.OODATE}
.PATH: ${PERL5SRC}

View File

@ -0,0 +1,7 @@
#
# $Id$
#
SUBDIR= c2ph h2ph h2xs perlbug perlcc perldoc pl2pm splain
.include <bsd.subdir.mk>

View File

@ -0,0 +1,21 @@
#
# $Id$
#
PERL5SRC= ${.CURDIR}/../../../../../contrib/perl5
MINIPERLOPT?= -I${.OBJDIR}/../../miniperl/lib -I${.OBJDIR}/../../miniperl
${PROG}: ${PROG}.PL
miniperl ${.OODATE}
${PROG}.1: ${PROG}.PL
miniperl ${.OBJDIR}/../../pod/pod2man/pod2man ${.OODATE} > ${.TARGET}
${PROG}.PL: ${PERL5SRC}/utils/${PROG}.PL
@ln -sf ${.OODATE} ${.TARGET}
CLEANFILES+= ${PROG}.1 ${PROG}.PL pstruct
STRIP=
.include "../Makefile.inc"

View File

@ -0,0 +1,7 @@
#
# $Id$
#
PROG= c2ph
.include <bsd.prog.mk>

View File

@ -0,0 +1,7 @@
#
# $Id$
#
PROG= h2ph
.include <bsd.prog.mk>

View File

@ -0,0 +1,7 @@
#
# $Id$
#
PROG= h2xs
.include <bsd.prog.mk>

View File

@ -0,0 +1,14 @@
#
# $Id$
#
PROG= perlbug
.include <bsd.prog.mk>
${PROG}: ${.OBJDIR}/patchlevel.h
CLEANFILES+= ${.OBJDIR}/patchlevel.h
${.OBJDIR}/patchlevel.h: ${PERL5SRC}/patchlevel.h
@ln -sf ${.OODATE} ${.TARGET}

View File

@ -0,0 +1,7 @@
#
# $Id$
#
PROG= perlcc
.include <bsd.prog.mk>

View File

@ -0,0 +1,7 @@
#
# $Id$
#
PROG= perldoc
.include <bsd.prog.mk>

View File

@ -0,0 +1,7 @@
#
# $Id$
#
PROG= pl2pm
.include <bsd.prog.mk>

View File

@ -0,0 +1,15 @@
#
# $Id$
#
PROG= splain
NOMAN= true
.include <bsd.prog.mk>
${PROG}: ${.OBJDIR}/diagnostics.pm
CLEANFILES+= ${.OBJDIR}/diagnostics.pm
${.OBJDIR}/diagnostics.pm: ${.OBJDIR}/../../perl/lib/diagnostics.pm
@ln -sf ${.OODATE} ${.TARGET}

View File

@ -0,0 +1,7 @@
#
# $Id$
#
SUBDIR= a2pl s2pl find2pl
.include <bsd.subdir.mk>

View File

@ -0,0 +1,10 @@
#
# $Id$
#
PERL5SRC= ${.CURDIR}/../../../../../contrib/perl5
MINIPERLOPT?= -I${.OBJDIR}/../../miniperl/lib -I${.OBJDIR}/../../miniperl
STRIP=
.include "../Makefile.inc"

View File

@ -0,0 +1,34 @@
#
# $Id$
#
PROG= a2p
CFLAGS+=-I${PERL5SRC}/x2p -I${.OBJDIR} -I${.OBJDIR}/temp
SRCS= a2p.c hash.c str.c util.c walk.c
beforedepend all: ${.OBJDIR}/config.h temp
.include <bsd.prog.mk>
.PATH: ${PERL5SRC}/x2p
.SUFFIXES:
.SUFFIXES: .c .h .o
temp:
@mkdir temp
CLEANFILES+= ${.OBJDIR}/config.h ${.OBJDIR}/config_h.sh ${.OBJDIR}/config.sh \
${PROG}.1
${.OBJDIR}/config.h: ${.OBJDIR}/config_h.sh ${.OBJDIR}/config.sh
sh config_h.sh
${.OBJDIR}/config.sh: ${.CURDIR}/../../libperl/config.SH
@ln -sf ${.OODATE} ${.TARGET}
${.OBJDIR}/config_h.sh: ${PERL5SRC}/config_h.SH
@ln -sf ${.OODATE} ${.TARGET}
${PROG}.1: ${PROG}.pod
miniperl ${.OBJDIR}/../../pod/pod2man/pod2man ${.OODATE} > ${.TARGET}

View File

@ -0,0 +1,19 @@
#
# $Id$
#
PROG= find2perl
NOMAN= true
${PROG}: ${PROG}.PL
miniperl ${.OODATE}
${PROG}.1: ${PROG}.PL
miniperl ${.OBJDIR}/../../pod/pod2man/pod2man ${.OODATE} > ${.TARGET}
CLEANFILES+= ${PROG}.1 ${PROG}.PL
.include <bsd.prog.mk>
${PROG}.PL: ${PERL5SRC}/x2p/${PROG}.PL
@ln -sf ${.OODATE} ${.TARGET}

View File

@ -0,0 +1,18 @@
#
# $Id$
#
PROG= s2p
${PROG}: ${PROG}.PL
miniperl ${.OODATE}
${PROG}.1: ${PROG}.PL
miniperl ${.OBJDIR}/../../pod/pod2man/pod2man ${.OODATE} > ${.TARGET}
CLEANFILES+= ${PROG}.1 ${PROG}.PL
.include <bsd.prog.mk>
${PROG}.PL: ${PERL5SRC}/x2p/${PROG}.PL
@ln -sf ${.OODATE} ${.TARGET}