# $OpenBSD: Makefile.bsd-wrapper,v 1.48 2002/04/30 18:38:58 espie Exp $ # # Build wrapper for Perl 5.6.1 # # To build a threaded perl, uncomment this. Currently, there are bugs... #THREADED=-Dusethreads # For ``NOMAN'' .include # Our lndir is hacked; specify a full path to avoid potential conflicts # with the one installed with X11. LNDIR= /usr/bin/lndir # We use the pod2man we just built since we don't know what's in the tree. # This will be wrong for cross builds. In that case, just use in-tree one. TARGET_MACHINE_ARCH?= $(MACHINE_ARCH) .if ($(TARGET_MACHINE_ARCH) != $(MACHINE_ARCH)) POD2MAN= /usr/bin/pod2man .else POD2MAN= ./perl -I ./lib ./pod/pod2man .endif H2PH= /usr/bin/h2ph # Need -fPIC, not -fpic on sparc .if ($(TARGET_MACHINE_ARCH) == sparc) PICFLAG=-fPIC .endif MANLOCALBUILD= yes MANALL= .for page sect file in \ a2p 1 x2p/a2p.pod \ c2ph 1 utils/c2ph \ dprofpp 1 utils/dprofpp \ find2perl 1 x2p/find2perl \ h2ph 1 utils/h2ph \ h2xs 1 utils/h2xs \ perl 1 pod/perl.pod \ perl5004delta 1 pod/perl5004delta.pod \ perl5005delta 1 pod/perl5005delta.pod \ perlapi 1 pod/perlapi.pod \ perlapio 1 pod/perlapio.pod \ perlbook 1 pod/perlbook.pod \ perlboot 1 pod/perlboot.pod \ perlbot 1 pod/perlbot.pod \ perlbug 1 utils/perlbug \ perlcall 1 pod/perlcall.pod \ perlcc 1 utils/perlcc \ perlcompile 1 pod/perlcompile.pod \ perldata 1 pod/perldata.pod \ perldbmfilter 1 pod/perldbmfilter.pod \ perldebguts 1 pod/perldebguts.pod \ perldebtut 1 pod/perldebtut.pod \ perldebug 1 pod/perldebug.pod \ perldelta 1 pod/perldelta.pod \ perldiag 1 pod/perldiag.pod \ perldoc 1 utils/perldoc \ perldsc 1 pod/perldsc.pod \ perlembed 1 pod/perlembed.pod \ perlfaq 1 pod/perlfaq.pod \ perlfaq1 1 pod/perlfaq1.pod \ perlfaq2 1 pod/perlfaq2.pod \ perlfaq3 1 pod/perlfaq3.pod \ perlfaq4 1 pod/perlfaq4.pod \ perlfaq5 1 pod/perlfaq5.pod \ perlfaq6 1 pod/perlfaq6.pod \ perlfaq7 1 pod/perlfaq7.pod \ perlfaq8 1 pod/perlfaq8.pod \ perlfaq9 1 pod/perlfaq9.pod \ perlfilter 1 pod/perlfilter.pod \ perlfork 1 pod/perlfork.pod \ perlform 1 pod/perlform.pod \ perlfunc 1 pod/perlfunc.pod \ perlguts 1 pod/perlguts.pod \ perlhack 1 pod/perlhack.pod \ perlhist 1 pod/perlhist.pod \ perlintern 1 pod/perlintern.pod \ perlipc 1 pod/perlipc.pod \ perllexwarn 1 pod/perllexwarn.pod \ perllocale 1 pod/perllocale.pod \ perllol 1 pod/perllol.pod \ perlmod 1 pod/perlmod.pod \ perlmodinstall 1 pod/perlmodinstall.pod \ perlmodlib 1 pod/perlmodlib.pod \ perlnewmod 1 pod/perlnewmod.pod \ perlnumber 1 pod/perlnumber.pod \ perlobj 1 pod/perlobj.pod \ perlop 1 pod/perlop.pod \ perlopentut 1 pod/perlopentut.pod \ perlpod 1 pod/perlpod.pod \ perlport 1 pod/perlport.pod \ perlre 1 pod/perlre.pod \ perlref 1 pod/perlref.pod \ perlreftut 1 pod/perlreftut.pod \ perlrequick 1 pod/perlrequick.pod \ perlretut 1 pod/perlretut.pod \ perlrun 1 pod/perlrun.pod \ perlsec 1 pod/perlsec.pod \ perlstyle 1 pod/perlstyle.pod \ perlsub 1 pod/perlsub.pod \ perlsyn 1 pod/perlsyn.pod \ perlthrtut 1 pod/perlthrtut.pod \ perltie 1 pod/perltie.pod \ perltoc 1 pod/perltoc.pod \ perltodo 1 pod/perltodo.pod \ perltoot 1 pod/perltoot.pod \ perltootc 1 pod/perltootc.pod \ perltrap 1 pod/perltrap.pod \ perlunicode 1 pod/perlunicode.pod \ perlvar 1 pod/perlvar.pod \ perlxs 1 pod/perlxs.pod \ perlxstut 1 pod/perlxstut.pod \ pl2pm 1 utils/pl2pm \ pod2html 1 pod/pod2html \ pod2man 1 pod/pod2man \ pod2text 1 pod/pod2text \ pod2usage 1 pod/pod2usage \ podchecker 1 pod/podchecker \ podselect 1 pod/podselect \ pstruct 1 utils/pstruct \ s2p 1 x2p/s2p \ splain 1 utils/splain \ xsubpp 1 lib/ExtUtils/xsubpp \ AnyDBM_File 3p lib/AnyDBM_File.pm \ AutoLoader 3p lib/AutoLoader.pm \ AutoSplit 3p lib/AutoSplit.pm \ B 3p ext/B/B.pm \ B::Asmdata 3p ext/B/B/Asmdata.pm \ B::Assembler 3p ext/B/B/Assembler.pm \ B::Bblock 3p ext/B/B/Bblock.pm \ B::Bytecode 3p ext/B/B/Bytecode.pm \ B::C 3p ext/B/B/C.pm \ B::CC 3p ext/B/B/CC.pm \ B::Concise 3p ext/B/B/Concise.pm \ B::Debug 3p ext/B/B/Debug.pm \ B::Deparse 3p ext/B/B/Deparse.pm \ B::Disassembler 3p ext/B/B/Disassembler.pm \ B::Lint 3p ext/B/B/Lint.pm \ B::Showlex 3p ext/B/B/Showlex.pm \ B::Stackobj 3p ext/B/B/Stackobj.pm \ B::Terse 3p ext/B/B/Terse.pm \ B::Xref 3p ext/B/B/Xref.pm \ Benchmark 3p lib/Benchmark.pm \ ByteLoader 3p ext/ByteLoader/ByteLoader.pm \ CGI 3p lib/CGI.pm \ CGI::Apache 3p lib/CGI/Apache.pm \ CGI::Carp 3p lib/CGI/Carp.pm \ CGI::Cookie 3p lib/CGI/Cookie.pm \ CGI::Fast 3p lib/CGI/Fast.pm \ CGI::Pretty 3p lib/CGI/Pretty.pm \ CGI::Push 3p lib/CGI/Push.pm \ CGI::Switch 3p lib/CGI/Switch.pm \ CGI::Util 3p lib/CGI/Util.pm \ CPAN 3p lib/CPAN.pm \ CPAN::FirstTime 3p lib/CPAN/FirstTime.pm \ CPAN::Nox 3p lib/CPAN/Nox.pm \ Carp 3p lib/Carp.pm \ Carp::Heavy 3p lib/Carp/Heavy.pm \ Class::Struct 3p lib/Class/Struct.pm \ Config 3p lib/Config.pm \ Cwd 3p lib/Cwd.pm \ DB 3p lib/DB.pm \ DB_File 3p ext/DB_File/DB_File.pm \ Data::Dumper 3p ext/Data/Dumper/Dumper.pm \ Devel::DProf 3p ext/Devel/DProf/DProf.pm \ Devel::Peek 3p ext/Devel/Peek/Peek.pm \ Devel::SelfStubber 3p lib/Devel/SelfStubber.pm \ DirHandle 3p lib/DirHandle.pm \ Dumpvalue 3p lib/Dumpvalue.pm \ DynaLoader 3p ext/DynaLoader/XSLoader_pm.PL \ English 3p lib/English.pm \ Env 3p lib/Env.pm \ Errno 3p ext/Errno/Errno_pm.PL \ Exporter 3p lib/Exporter.pm \ Exporter::Heavy 3p lib/Exporter/Heavy.pm \ ExtUtils::Command 3p lib/ExtUtils/Command.pm \ ExtUtils::Embed 3p lib/ExtUtils/Embed.pm \ ExtUtils::Install 3p lib/ExtUtils/Install.pm \ ExtUtils::Installed 3p lib/ExtUtils/Installed.pm \ ExtUtils::Liblist 3p lib/ExtUtils/Liblist.pm \ ExtUtils::MM_Unix 3p lib/ExtUtils/MM_Unix.pm \ ExtUtils::MakeMaker 3p lib/ExtUtils/MakeMaker.pm \ ExtUtils::Manifest 3p lib/ExtUtils/Manifest.pm \ ExtUtils::Miniperl 3p lib/ExtUtils/Miniperl.pm \ ExtUtils::Mkbootstrap 3p lib/ExtUtils/Mkbootstrap.pm \ ExtUtils::Mksymlists 3p lib/ExtUtils/Mksymlists.pm \ ExtUtils::Packlist 3p lib/ExtUtils/Packlist.pm \ ExtUtils::testlib 3p lib/ExtUtils/testlib.pm \ Fatal 3p lib/Fatal.pm \ Fcntl 3p lib/Fcntl.pm \ File::Basename 3p lib/File/Basename.pm \ File::CheckTree 3p lib/File/CheckTree.pm \ File::Compare 3p lib/File/Compare.pm \ File::Copy 3p lib/File/Copy.pm \ File::DosGlob 3p lib/File/DosGlob.pm \ File::Find 3p lib/File/Find.pm \ File::Glob 3p lib/File/Glob.pm \ File::Path 3p lib/File/Path.pm \ File::Spec 3p lib/File/Spec.pm \ File::Spec::Functions 3p lib/File/Spec/Functions.pm \ File::Spec::Unix 3p lib/File/Spec/Unix.pm \ File::Temp 3p lib/File/Temp.pm \ File::stat 3p lib/File/stat.pm \ FileCache 3p lib/FileCache.pm \ FileHandle 3p lib/FileHandle.pm \ FindBin 3p lib/FindBin.pm \ Getopt::Long 3p lib/Getopt/Long.pm \ Getopt::Std 3p lib/Getopt/Std.pm \ I18N::Collate 3p lib/I18N/Collate.pm \ IO 3p lib/IO.pm \ IO::Dir 3p lib/IO/Dir.pm \ IO::File 3p lib/IO/File.pm \ IO::Handle 3p lib/IO/Handle.pm \ IO::Pipe 3p lib/IO/Pipe.pm \ IO::Poll 3p lib/IO/Poll.pm \ IO::Seekable 3p lib/IO/Seekable.pm \ IO::Select 3p lib/IO/Select.pm \ IO::Socket 3p lib/IO/Socket.pm \ IO::Socket::INET 3p lib/IO/Socket/INET.pm \ IO::Socket::UNIX 3p lib/IO/Socket/UNIX.pm \ IPC::Msg 3p lib/IPC/Msg.pm \ IPC::Open2 3p lib/IPC/Open2.pm \ IPC::Open3 3p lib/IPC/Open3.pm \ IPC::Semaphore 3p lib/IPC/Semaphore.pm \ IPC::SysV 3p lib/IPC/SysV.pm \ Math::BigFloat 3p lib/Math/BigFloat.pm \ Math::BigInt 3p lib/Math/BigInt.pm \ Math::Complex 3p lib/Math/Complex.pm \ Math::Trig 3p lib/Math/Trig.pm \ NDBM_File 3p lib/NDBM_File.pm \ Net::Ping 3p lib/Net/Ping.pm \ Net::hostent 3p lib/Net/hostent.pm \ Net::netent 3p lib/Net/netent.pm \ Net::protoent 3p lib/Net/protoent.pm \ Net::servent 3p lib/Net/servent.pm \ O 3p lib/O.pm \ ODBM_File 3p lib/ODBM_File.pm \ Opcode 3p lib/Opcode.pm \ POSIX 3p lib/POSIX.pod \ Pod::Checker 3p lib/Pod/Checker.pm \ Pod::Find 3p lib/Pod/Find.pm \ Pod::Html 3p lib/Pod/Html.pm \ Pod::InputObjects 3p lib/Pod/InputObjects.pm \ Pod::LaTeX 3p lib/Pod/LaTeX.pm \ Pod::Man 3p lib/Pod/Man.pm \ Pod::ParseUtils 3p lib/Pod/ParseUtils.pm \ Pod::Parser 3p lib/Pod/Parser.pm \ Pod::Plainer 3p lib/Pod/Plainer.pm \ Pod::Select 3p lib/Pod/Select.pm \ Pod::Text 3p lib/Pod/Text.pm \ Pod::Text::Color 3p lib/Pod/Text/Color.pm \ Pod::Text::Overstrike 3p lib/Pod/Text/Overstrike.pm \ Pod::Text::Termcap 3p lib/Pod/Text/Termcap.pm \ Pod::Usage 3p lib/Pod/Usage.pm \ SDBM_File 3p lib/SDBM_File.pm \ Safe 3p lib/Safe.pm \ Search::Dict 3p lib/Search/Dict.pm \ SelectSaver 3p lib/SelectSaver.pm \ SelfLoader 3p lib/SelfLoader.pm \ Shell 3p lib/Shell.pm \ Socket 3p lib/Socket.pm \ Symbol 3p lib/Symbol.pm \ Sys::Hostname 3p lib/Sys/Hostname.pm \ Sys::Syslog 3p lib/Sys/Syslog.pm \ Term::ANSIColor 3p lib/Term/ANSIColor.pm \ Term::Cap 3p lib/Term/Cap.pm \ Term::Complete 3p lib/Term/Complete.pm \ Term::ReadLine 3p lib/Term/ReadLine.pm \ Test 3p lib/Test.pm \ Test::Harness 3p lib/Test/Harness.pm \ Text::Abbrev 3p lib/Text/Abbrev.pm \ Text::ParseWords 3p lib/Text/ParseWords.pm \ Text::Soundex 3p lib/Text/Soundex.pm \ Text::Tabs 3p lib/Text/Tabs.pm \ Text::Wrap 3p lib/Text/Wrap.pm \ Tie::Array 3p lib/Tie/Array.pm \ Tie::Handle 3p lib/Tie/Handle.pm \ Tie::Hash 3p lib/Tie/Hash.pm \ Tie::RefHash 3p lib/Tie/RefHash.pm \ Tie::Scalar 3p lib/Tie/Scalar.pm \ Tie::SubstrHash 3p lib/Tie/SubstrHash.pm \ Time::Local 3p lib/Time/Local.pm \ Time::gmtime 3p lib/Time/gmtime.pm \ Time::localtime 3p lib/Time/localtime.pm \ Time::tm 3p lib/Time/tm.pm \ UNIVERSAL 3p lib/UNIVERSAL.pm \ User::grent 3p lib/User/grent.pm \ User::pwent 3p lib/User/pwent.pm \ XSLoader 3p lib/XSLoader.pm \ attributes 3p lib/attributes.pm \ attrs 3p lib/attrs.pm \ autouse 3p lib/autouse.pm \ base 3p lib/base.pm \ blib 3p lib/blib.pm \ bytes 3p lib/bytes.pm \ charnames 3p lib/charnames.pm \ constant 3p lib/constant.pm \ diagnostics 3p lib/diagnostics.pm \ fields 3p lib/fields.pm \ filetest 3p lib/filetest.pm \ integer 3p lib/integer.pm \ less 3p lib/less.pm \ lib 3p lib/lib.pm \ locale 3p lib/locale.pm \ open 3p lib/open.pm \ ops 3p lib/ops.pm \ overload 3p lib/overload.pm \ re 3p lib/re.pm \ sigtrap 3p lib/sigtrap.pm \ strict 3p lib/strict.pm \ subs 3p lib/subs.pm \ utf8 3p lib/utf8.pm \ vars 3p lib/vars.pm \ warnings 3p lib/warnings.pm \ warnings::register 3p lib/warnings/register.pm . ifndef NOMAN MANALL+= ${page}.cat${sect} . endif . if MANPS PSALL+= ${page}.ps${sect} . endif ${page}.cat${sect}: ${file} ${POD2MAN} --section=${sect} --official ${.ALLSRC}|\ ${NROFF} -man >${.TARGET} ${page}.ps${sect}: ${file} ${POD2MAN} --section=${sect} --official ${.ALLSRC}|\ ${NROFF} -man -Tps >${.TARGET} .endfor LIB= perl SRCS= gv.c toke.c perly.c op.c regcomp.c dump.c util.c mg.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 \ utf8.c taint.c deb.c universal.c xsutils.c globals.c perl.c perlio.c \ perlapi.c CFLAGS+= -DPERL_CORE -DPERL_RANDOM_DEVICE=\"/dev/arandom\" -I. .if defined (INSTALL_STRIP) && ${INSTALL_STRIP} == "-s" INST_PROG='/usr/bin/install -cs' .else INST_PROG='/usr/bin/install -c' .endif MLINKS= c2ph.1 pstruct.1 # NOTE: config.sh *must* be first GENERATED= config.sh config.h cflags makeaperl makedepend makedir \ myconfig writemain Makefile Policy.sh x2p/Makefile x2p/cflags CLEANFILES= config.sh Policy.sh ${MANALL} ${PSALL} ${MANSRCALL} .BEGIN: @/usr/bin/arch -s >/dev/null || \ { echo Error: you need to update /usr/bin/arch; exit 1; } @if [ ${.CURDIR} != ${.OBJDIR} ]; then ${LNDIR} -s -e obj -e obj.${MACHINE_ARCH} -e Makefile.bsd-wrapper ${.CURDIR}; fi all: perl.build man.build man.build: ${MANALL} ${PSALL} beforedepend: config.sh config.h perl.build: perl.lib cd ${.OBJDIR} && exec ${MAKE} config.sh: config.over cd ${.OBJDIR} && PATH="/bin:/usr/bin:/sbin:/usr/sbin" \ exec /bin/sh Configure -Dopenbsd_distribution=defined ${THREADED} -dsE Policy.sh: cd ${.OBJDIR} && exec /bin/sh Policy_sh.SH Makefile: cd ${.OBJDIR} && exec /bin/sh Makefile.SH cflags: cd ${.OBJDIR} && exec /bin/sh cflags.SH config.h: cd ${.OBJDIR} && exec /bin/sh config_h.SH makeaperl: cd ${.OBJDIR} && exec /bin/sh makeaperl.SH makedepend: cd ${.OBJDIR} && exec /bin/sh makedepend.SH makedir: cd ${.OBJDIR} && exec /bin/sh makedir.SH myconfig: cd ${.OBJDIR} && exec /bin/sh myconfig.SH writemain: cd ${.OBJDIR} && exec /bin/sh writemain.SH x2p/Makefile: cd ${.OBJDIR}/x2p && exec /bin/sh Makefile.SH x2p/cflags: cd ${.OBJDIR}/x2p && exec /bin/sh cflags.SH # Never try to regenerate perly.c or perly.h perly.c perly.h: perly.y -@true .ifdef NOMAN maninstall: @echo NOMAN is set .endif install: install.lib install.perl maninstall -mkdir -p ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd (cd ${DESTDIR}/usr/include; ${H2PH} \ -d ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd \ `find . -name '*.h'`; \ pax -rw `find . -type l \! -name '*.h' | sed 's/^..//'` \ ${DESTDIR}/usr/libdata/perl5/site_perl/${MACHINE_ARCH}-openbsd) -chmod -R a+rX ${DESTDIR}/usr/libdata/perl5 install.perl: (cd ${.OBJDIR}; INSTALL=${INSTALL} INSTALL_COPY=${INSTALL_COPY} \ INSTALL_STRIP=${INSTALL_STRIP} NOLIBINSTALL=1 ${MAKE} install.perl) test: -@if [ -e Makefile ]; then ${MAKE} test; fi clean: -@if [ -e Makefile ]; then ${MAKE} realclean; fi cleandir: -@if [ ${.CURDIR} != ${.OBJDIR} ]; then \ rm -rf *; \ else \ test -e Makefile && ${MAKE} distclean; \ rm -f ${CLEANFILES}; \ fi .include # These have to come after the inclusion of perl.lib: ${GENERATED} ${_LIBS} install.lib: ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 lib${LIB}.a \ ${DESTDIR}${LIBDIR} .if (${INSTALL_COPY} != "-p") ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}.a .endif chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}.a .if !defined(NOPROFILE) ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 \ lib${LIB}_p.a ${DESTDIR}${LIBDIR} .if (${INSTALL_COPY} != "-p") ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_p.a .endif chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}_p.a .endif .if !defined(NOPIC) && (${MACHINE_ARCH} != "mips") ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m 600 \ lib${LIB}_pic.a ${DESTDIR}${LIBDIR} .if (${INSTALL_COPY} != "-p") ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a .endif chmod ${LIBMODE} ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a .endif .if !defined(NOPIC) && defined(major) && defined(minor) ${INSTALL} ${INSTALL_COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ lib${LIB}.so.${major}.${minor} ${DESTDIR}${LIBDIR} .endif .PHONY: perl.lib install.lib perl.build install.perl man.build