head	1.22;
access;
symbols
	RELENG_4_11_0_RELEASE:1.11.2.2
	RELENG_4_11:1.11.2.2.0.12
	RELENG_4_11_BP:1.11.2.2
	RELENG_4_10_0_RELEASE:1.11.2.2
	RELENG_4_10:1.11.2.2.0.10
	RELENG_4_10_BP:1.11.2.2
	RELENG_4_9_0_RELEASE:1.11.2.2
	RELENG_4_9:1.11.2.2.0.8
	RELENG_4_9_BP:1.11.2.2
	RELENG_4_8_0_RELEASE:1.11.2.2
	RELENG_4_8:1.11.2.2.0.6
	RELENG_4_8_BP:1.11.2.2
	RELENG_4_7_0_RELEASE:1.11.2.2
	RELENG_4_7:1.11.2.2.0.4
	RELENG_4_7_BP:1.11.2.2
	RELENG_4_6_2_RELEASE:1.11.2.2
	RELENG_4_6_1_RELEASE:1.11.2.2
	RELENG_4_6_0_RELEASE:1.11.2.2
	RELENG_4_6:1.11.2.2.0.2
	RELENG_4_6_BP:1.11.2.2
	RELENG_4_5_0_RELEASE:1.11.2.1
	RELENG_4_5:1.11.2.1.0.6
	RELENG_4_5_BP:1.11.2.1
	RELENG_4_4_0_RELEASE:1.11.2.1
	RELENG_4_4:1.11.2.1.0.4
	RELENG_4_4_BP:1.11.2.1
	RELENG_4_3_0_RELEASE:1.11.2.1
	RELENG_4_3:1.11.2.1.0.2
	RELENG_4_3_BP:1.11.2.1
	RELENG_4_2_0_RELEASE:1.11.2.1
	RELENG_4_1_1_RELEASE:1.11
	PRE_SMPNG:1.16
	RELENG_4_1_0_RELEASE:1.11
	RELENG_3_5_0_RELEASE:1.7.2.1
	RELENG_4_0_0_RELEASE:1.11
	RELENG_4:1.11.0.2
	RELENG_4_BP:1.11
	RELENG_3_4_0_RELEASE:1.7.2.1
	RELENG_3_3_0_RELEASE:1.7.2.1
	RELENG_3_2_PAO:1.7.0.4
	RELENG_3_2_PAO_BP:1.7
	RELENG_3_2_0_RELEASE:1.7
	RELENG_3_1_0_RELEASE:1.7
	RELENG_3:1.7.0.2
	RELENG_3_BP:1.7
	RELENG_3_0_0_RELEASE:1.7;
locks; strict;
comment	@# @;


1.22
date	2002.05.16.09.57.08;	author markm;	state dead;
branches;
next	1.21;

1.21
date	2002.02.08.13.09.08;	author ru;	state Exp;
branches;
next	1.20;

1.20
date	2001.10.04.11.45.38;	author ru;	state Exp;
branches;
next	1.19;

1.19
date	2001.09.29.13.17.54;	author ru;	state Exp;
branches;
next	1.18;

1.18
date	2001.02.13.05.19.56;	author peter;	state Exp;
branches;
next	1.17;

1.17
date	2000.11.20.02.17.32;	author marcel;	state Exp;
branches;
next	1.16;

1.16
date	2000.08.20.10.03.26;	author markm;	state Exp;
branches;
next	1.15;

1.15
date	2000.06.29.18.21.51;	author markm;	state Exp;
branches;
next	1.14;

1.14
date	2000.06.26.15.02.10;	author markm;	state Exp;
branches;
next	1.13;

1.13
date	2000.06.25.14.48.15;	author markm;	state Exp;
branches;
next	1.12;

1.12
date	2000.03.27.18.29.46;	author bde;	state Exp;
branches;
next	1.11;

1.11
date	2000.01.29.14.18.02;	author markm;	state Exp;
branches
	1.11.2.1;
next	1.10;

1.10
date	99.09.24.15.31.57;	author markm;	state Exp;
branches;
next	1.9;

1.9
date	99.09.04.10.01.58;	author markm;	state Exp;
branches;
next	1.8;

1.8
date	99.08.27.23.36.16;	author peter;	state Exp;
branches;
next	1.7;

1.7
date	98.10.11.18.13.41;	author markm;	state Exp;
branches
	1.7.2.1;
next	1.6;

1.6
date	98.09.26.16.17.05;	author markm;	state Exp;
branches;
next	1.5;

1.5
date	98.09.23.06.05.28;	author markm;	state Exp;
branches;
next	1.4;

1.4
date	98.09.16.17.25.52;	author markm;	state Exp;
branches;
next	1.3;

1.3
date	98.09.12.19.16.33;	author markm;	state Exp;
branches;
next	1.2;

1.2
date	98.09.12.15.45.29;	author markm;	state Exp;
branches;
next	1.1;

1.1
date	98.09.09.07.20.26;	author markm;	state Exp;
branches;
next	;

1.11.2.1
date	2000.10.05.09.54.47;	author markm;	state Exp;
branches;
next	1.11.2.2;

1.11.2.2
date	2002.02.19.16.21.34;	author ru;	state Exp;
branches;
next	1.11.2.3;

1.11.2.3
date	2012.11.17.07.23.08;	author svnexp;	state Exp;
branches;
next	;

1.7.2.1
date	99.08.29.14.34.13;	author peter;	state Exp;
branches;
next	;


desc
@@


1.22
log
@Remove the perl build. Farewell, old friend.
@
text
@# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.21 2002/02/08 13:09:08 ru Exp $

PROG=	miniperl
NOMAN=	true
SRCS=	miniperlmain.c
SRCS+=	perl.c 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 universal.c \
	xsutils.c globals.c perlio.c config.h
CFLAGS+=-I${.OBJDIR} -I${PERL5SRC} -DPERL_EXTERNAL_GLOB -DPERL_CORE
DPADD=	${LIBM} ${LIBCRYPT}
LDADD=	-lm -lcrypt

# In FreeBSD 4.0, setproctitle(3) is in -lutil.
.if defined(BOOTSTRAPPING)
DPADD+=	${LIBUTIL}
LDADD+=	-lutil
.endif

# Miniperl _must_ be static!!
NOSHARED= yes

# We need miniperl early in `depend'.
afterdepend: all

build-tools: depend all

install:

NO_PERL_SCRIPT_MAKE=	true

.include <bsd.prog.mk>

.PATH:	${PERL5SRC}

config.h: links
	@@sh config_h.sh

.SUFFIXES:

.SUFFIXES: .o .po .So .s .S .c
@


1.21
log
@FreeBSD 4.1 bootstrapping aid (setproctitle(3) is in -lutil).

This backs out (sort of) delta 1.18 to perl/miniperl/Makefile.
Update to the ld(1) comment by peter in this revision:

ld(1) built as part of the cross-tools stage of buildworld has
been fixed to look for dynamic dependencies in the right place,
${WORLDTMP}/usr/lib, effective binutils/ld/Makefile,v 1.20.

Approved by:	markm
@
text
@d1 1
a1 1
# $FreeBSD$
@


1.20
log
@Unbreak standalone `make depend' in gnu/usr.bin/perl.

Noticed by:	bde
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.19 2001/09/29 13:17:54 ru Exp $
d13 7
@


1.19
log
@Fix cross-building, etc:

1.  To cross-build, one now needs to set TARGET_ARCH, and not the
    MACHINE_ARCH.  MACHINE_ARCH should never be changed manually!

2.  Initialize DESTDIR= explicitly for bootstrap-tools, build-tools,
    and cross-tools stages.  This fixes broken header and library
    dependencies problem.  We build them in the host environment,
    and obviously want them to depend on host headers and libraries.
    The problem with broken header dependencies for bootstrap-tools
    and cross-tools was already partially solved (see BOOTSTRAPPING
    tests in bsd.prog.mk and bsd.lib.mk), but it was still there for
    build-tools if the user ran "make world DESTDIR=/foo".  Also,
    for all of these stages, the library dependencies were broken
    because of how bsd.libnames.mk define DPADD members.

    We still provide a glue to install bootstrap- and cross-tools
    under the ${WORLDTMP}.

    Removed PATH overrides for bootstrap-, build-, and cross-tools
    stages.  There is just no reason why we would need to override
    it, and the hacks to clean up the ${WORLDTMP} in the -DNOCLEAN
    case are no longer needed with fixes from this step.

    That is, we now never use ${WORLDTMP} headers and libraries,
    and we don't use any ${WORLDTMP} installed binaries during
    these stages.  Again, these stages depend solely on the host
    environment, including compiler, headers, and libraries.

3.  Moved "miniperl" back from cross-tools (it has nothing to do
    with a cross-compiler) to build-tools where it belongs.  The
    change from step 1 let to do this.  Also, to make this work,
    build-tools targets of "cc_tools" and "miniperl" were modified
    to call "depend".  Here follow the detailed explanations.

    There are two categories of build tools, for now.  In the first
    category there are "cc_tools" and "miniperl".  They occupy the
    whole (sub)directory, and nothing needs to be done in this
    subdirectory later during the "all" stage.  They are also
    constructed using system makefiles.  We must build the .depend
    early in the build-tools stage because:

    1)  They use (and depend on) the host environment.

    2)  If we don't do this in build-tools, the "depend" stage of
        buildworld will do this for us; wrong library and header
        dependencies will be recorded (DESTDIR=${WORLDTMP}) and,
        what's worse, the "all" stage may then clobber the
        build-architecture format tools (that we built in the
        build-tools stage) with the target-architecture format
        ones, breaking cross build.

    In the second category there are all other build-tools.  They
    share their directory with the "main" module that needs them
    in the "all" stage, and they don't show up themselves in the
    .depend file.  The portion of this fix was already committed
    in gnu/usr.bin/cc/cc_tools/Makefile,v 1.52.

4.  "libperl" is no longer a build tool, and "miniperl" is the
    stand-alone application.  I had to make this change because
    build-tools and "all" stages share the same object directory.
    Without this change, if we cross compile, libperl.a is first
    built for the build architecture during the build-tools stage
    (for the purposes of immediate linkage with "miniperl").
    Later on, the "all" stage sees this library as up-to-date,
    and doesn't rebuild it.  The effect is that the wrong format
    static libperl library is installed with installworld.

5.  Fixed "includes" to install secure/lib/libtelnet headers if
    required.

Reviewed by:	bde
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.18 2001/02/13 05:19:56 peter Exp $
d16 4
a19 1
build-tools: depend ${PROG}
@


1.18
log
@When setproctitle() moved from libutil to libc, we forgot to back the
change out that made libperl.so dynamically depend on libutil.so to pick
up setproctitle() in its old location.  This breaks changes involving
incomptabable libc's because ld looks for the dynamic dependency
(which it has no business doing anyway) in the wrong place - /usr/lib!
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.17 2000/11/20 02:17:32 marcel Exp $
d5 8
a12 2
CFLAGS+=-I${PERL5SRC} -I${.OBJDIR} -DPERL_EXTERNAL_GLOB
SRCS=	miniperlmain.c opmini.c config.h
a14 7
.if exists(${.OBJDIR}/../libperl/)
MYLIBPERL= ${.OBJDIR}/../libperl/libperl.a
.else
MYLIBPERL= ${.CURDIR}/../libperl/libperl.a
.endif
DPADD=	${MYLIBPERL} ${LIBM} ${LIBCRYPT}
LDADD=	${MYLIBPERL} -lm -lcrypt
d16 3
a18 2
build-tools:	cleandepend
	cd ${.CURDIR} && ${MAKE} ${PROG}
d26 2
a27 2
opmini.c:	op.c
	ln -sf ${.OODATE} ${.TARGET}
d29 1
a29 2
config.h:	links
	@@sh config_h.sh
d31 1
a31 1
CLEANFILES+=	opmini.c config.h
@


1.17
log
@Fix cross-building.

o  Move building libperl and miniperl from build-tools to
   cross-tools. libperl uses MACHINE_ARCH to determine the
   right configuration, which doesn't match the build
   machine when cross-building if they are built as build-
   tools.
o  Since miniperl needs to be built as a cross-tool, it
   needs to be installed under /usr/obj so that it can be
   used (cross-tools have a special object directory to
   avoid build conflicts. As a downside, you can't easily
   run cross-tools from their object directory). Remove
   the install and distribute override targets. To avoid
   having miniperl installed by installworld, remove it
   from SUBDIR.
o  We can't pickup miniperl from the object directory but
   since it's installed, depend on PATH. This is save,
   because the makefiles are run with a known path.
o  Build libperl again as part of the library target. A
   _libperl variable existed, but it was never defined.
o  Add chmod to the list of saved tools, because perl
   conditionally uses it during install.

The bootstrap-tools and cross-tools targets are modified to
avoid building profiled and shared libraries. While here,
have these targets build static binaries instead of shared
binaries.

Approved by: markm
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.16 2000/08/20 10:03:26 markm Exp $
d14 2
a15 2
DPADD=	${MYLIBPERL} ${LIBM} ${LIBCRYPT} ${LIBUTIL}
LDADD=	${MYLIBPERL} -lm -lcrypt -lutil
@


1.16
log
@Fixes and cleanups to the perl build; don't error out when NOCLEAN is
set and directories are being (re)made; build the procname ($0) stuff,
don't install miniperl.
(Miniperl needs a revisit).
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.15 2000/06/29 18:21:51 markm Exp $
a18 2

install distribute:
@


1.15
log
@Tweaks to the build to allow "make -DNOCLEAN" and "make release" to
work.
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.14 2000/06/26 15:02:10 markm Exp $
d14 2
a15 2
DPADD=	${MYLIBPERL} ${LIBM} ${LIBCRYPT}
LDADD=	${MYLIBPERL} -lm -lcrypt
d19 2
@


1.14
log
@Fix for bootstrapping. Grr. Pointy Hat Please?
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.13 2000/06/25 14:48:15 markm Exp $
d17 2
a18 1
build-tools:	${PROG}
@


1.13
log
@Userland build stuff for Perl5.006.

This is cleaned up quite a lot since 5.00502, and the library modules
are broken out into individual dirs. This should please a lot folk.
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.12 2000/03/27 18:29:46 bde Exp $
d19 2
d28 4
a31 1
CLEANFILES+=	opmini.c
@


1.12
log
@Fixed wrong path to libperl in DPADD.

Fixed wrong path to libperl in LDADD in some funky objdir setups.

Use ${dir}/libfoo.a instead of -L${dir} -lfoo for local static libraries
in LDADD so that `make checkdpadd' doesn't report non-errors.

Fixed misformatting of $FreeBSD$.
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.11 2000/01/29 14:18:02 markm Exp $
d5 2
a6 2
CFLAGS+=-I${PERL5SRC} -I${.OBJDIR}
SRCS=	miniperlmain.c config.h
d17 1
a17 3
# Trick the bootstrap tools into thinking that miniperl is perl.
# This gets overwritten.
LINKS=	${BINDIR}/${PROG} ${BINDIR}/perl
d22 5
@


1.11
log
@Fix for (amongst other things) the cross-compile case where a too-old
version of libperl was being found.

Tested on:	beast
@
text
@d1 1
a1 3
#
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.10 1999/09/24 15:31:57 markm Exp $
#
d9 7
a15 2
DPADD=	${LIBPERL} ${LIBM} ${LIBCRYPT}
LDADD=	-L${.OBJDIR}/../libperl -lperl -lm -lcrypt
@


1.11.2.1
log
@MFC: Merge the CURRENT perl-building method to STABLE. This will
dramatically reduce the dependance on miniperl.

NOTE!! This does not bring Perl-5.6.0 to STABLE !!

NOTE!! You should delete /usr/bin/miniperl !!
@
text
@d2 1
a2 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.11 2000/01/29 14:18:02 markm Exp $
d8 1
a8 1
SRCS=	miniperlmain.c opmini.c config.h
d11 2
a12 7
.if exists(${.OBJDIR}/../libperl/)
MYLIBPERL= ${.OBJDIR}/../libperl/libperl.a
.else
MYLIBPERL= ${.CURDIR}/../libperl/libperl.a
.endif
DPADD=	${MYLIBPERL} ${LIBM} ${LIBCRYPT} ${LIBUTIL}
LDADD=	${MYLIBPERL} -lm -lcrypt -lutil
d14 3
a16 6
build-tools:	cleandepend
	cd ${.CURDIR} && ${MAKE} ${PROG}

install distribute:

NO_PERL_SCRIPT_MAKE=	true
a20 8

opmini.c:	op.c
	ln -sf ${.OODATE} ${.TARGET}

config.h:	links
	@@sh config_h.sh

CLEANFILES+=	opmini.c config.h
@


1.11.2.2
log
@MFC: cross-building fixes.
@
text
@d1 3
a3 1
# $FreeBSD$
d7 2
a8 15
SRCS=	miniperlmain.c
SRCS+=	perl.c 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 taint.c universal.c \
	globals.c perlio.c config.h
CFLAGS+=-I${.OBJDIR} -I${PERL5SRC}
DPADD=	${LIBM} ${LIBCRYPT}
LDADD=	-lm -lcrypt

# In FreeBSD 4.0, setproctitle(3) is in -lutil.
.if defined(BOOTSTRAPPING)
DPADD+=	${LIBUTIL}
LDADD+=	-lutil
.endif

d11 7
d19 2
a20 2
# We need miniperl early in `depend'.
afterdepend: all
d22 1
a22 3
build-tools: depend all

install:
d30 4
a33 1
config.h: links
d36 1
a36 3
.SUFFIXES:

.SUFFIXES: .o .po .So .s .S .c
@


1.11.2.3
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/4/gnu/usr.bin/perl/miniperl/Makefile 90934 2002-02-19 16:21:35Z ru $
@


1.10
log
@Low-level, but significant cleanup of Perl's build process.

This should significantly ease "make; make install" loops.
@
text
@d2 1
a2 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.9 1999/09/04 10:01:58 markm Exp $
d12 1
a12 1
LDADD=	-lperl -lm -lcrypt
@


1.9
log
@Allow perl to be built with thread support.

Submitted by:	Doug Ambrisko <ambrisko@@whistle.com>
@
text
@d2 1
a2 1
# $FreeBSD: src/gnu/usr.bin/perl/miniperl/Makefile,v 1.8 1999/08/27 23:36:16 peter Exp $
a17 2
CLEANFILES=	config.h config.sh config_h.sh

a18 25

PERL_THREADED?= no
.if ${PERL_THREADED} == "true"
CFLAGS+=        -pthread
LDADD+=         -pthread
.endif
     
PERL_DEBUGGING?=        no
.if ${PERL_DEBUGGING} == "true"
CFLAGS+=        -DDEBUGGING
.endif

miniperlmain.o: config.h

config.h: config_h.sh config.sh
	sh config_h.sh

${.CURDIR}/../libperl/config.sh:
	cd ${.CURDIR}/../libperl ; make config.sh

config.sh: ${.CURDIR}/../libperl/config.sh
	ln -sf ${CANONICALOBJDIR}/../libperl/config.sh ${.TARGET}

config_h.sh: config_h.SH
	ln -sf ${.OODATE} ${.TARGET}
@


1.8
log
@$Id$ -> $FreeBSD$
@
text
@d2 1
a2 1
# $FreeBSD$
d22 11
d38 5
a42 2
config.sh: ${.CURDIR}/../libperl/config.SH-${OBJFORMAT}.${MACHINE_ARCH}
	@@ln -sf ${.OODATE} ${.TARGET}
d45 1
a45 1
	@@ln -sf ${.OODATE} ${.TARGET}
@


1.7
log
@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.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.6 1998/09/26 16:17:05 markm Exp $
@


1.7.2.1
log
@$Id$ -> $FreeBSD$
@
text
@d2 1
a2 1
# $FreeBSD$
@


1.6
log
@Repairs to make the ports system work again. Currently, the ports
are installed in the same place as on 2.2.*; this will almost
certainly change in the future.

While I'm here, finish off the shared library brouhaha with miniperl.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.5 1998/09/23 06:05:28 markm Exp $
d9 2
@


1.5
log
@More make cleanups.

1) Part of the NOSHARED fix; I messed this up and managed to get
   perl installed without being linked to the shared library libperl.so.
   This broke Perl in ELF when linking in shared objects.

2) Start of a cleanup of the man3 page location. This will (eventually)
   allow for a the ports to put their pages in the "normal" ${PREFIX}-
   based location.

3) Nuke cruft.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.4 1998/09/16 17:25:52 markm Exp $
a8 1
NOSHARED= yes
@


1.4
log
@Generalise the build a bit more.

1) Fix up the NOSHARED stuff (bde)
2) Accomodate CFLAGS (vanilla)
3) Provide separate files for i386 and alpha (Doug Rabson)

In case 3, the supplied files were corrupted, but the concepts
sound enough, so I just copied what exists into
config.SH-{elf|aout}.{i386|alpha}. Alpha team, go ahead and do what
is necessary on config.SH-elf.alpha. :-)
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.3 1998/09/12 19:16:33 markm Exp $
d9 1
@


1.3
log
@Allow libperl to be a shared library.

This has the delightful side effect of fixing ELF .so objects.

Asked-for-by: peter
@
text
@d2 1
a2 1
# $Id$
a8 1
NOSHARED=true
d25 1
a25 1
config.sh: ${.CURDIR}/../libperl/config.SH-${OBJFORMAT}
@


1.2
log
@Fix parallel building.

(Tested by make -j12 buildworld on a 4-cpu SMP box).

Address (but not solve) ELF shareable objects causing perl to
dump core. (I have a heck of a lot to learn about ELF).

Lots of help by: bde, jkh, jb and others
@
text
@d9 1
@


1.1
log
@Bring in the Perl5 BMake files. This ends the easy stuff.

I'll be doiung the rest in stages.
@
text
@d9 1
d25 1
a25 1
config.sh: ${.CURDIR}/../libperl/config.SH
@
