#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
#
#
# The perl5 installation for Solaris differs from that generated by the
# Perl Configure procedure. The configuration appropriate for the current
# build is automatically generated from pre-existing configuration files
# for the build platform.
#
#
# Some of the Makefile.master and Makefile.cmd flags are overridden by
# ../Makefile.perlcfg which is in turn generated from config.sh by
# ../extract_config.sh - check there first before overriding anything in this
# Makefile.
#
include ../../../Makefile.cmd
# DynaLoader is a special extension as it has to be built statically.
# Uuencoded files that need to have SCCS keyword expansion prevented, see below.
UUENCODED_FILES = \
# Because autosplit generates a lot of files, we create a dummy timestamp file
# so that dependency checking can be performed.
# Add in the perl-specific flags (including largefile flags).
# Add in the libraries perl needs to be linked against.
LDLIBS += $(PERL_LDLIBS)
# Compiler replacement rules
test := TARGET = test
#
# Some of the files in the perl distribution are uuencoded, or contain uuencoded
# data. Some of the sequences of uuencoded data look like SCCS keywords, i.e.
# "%<letter>%", so it is necessary to prevent the keywords from being expanded.
# The SCCS 'y' flag can be added to the SCCS files to prevent keyword expansion
# when the file is retrieved. However due to bugs in SCCS and wx we can't
# always be sure that these flags are propagated correctly.
#
@ ../get_no_keywords $(UUENCODED_FILES)
#
# Expand template files that depend on config.sh.
#
#
# Build the libperl.so and libperl.so.1 shared objects using Makefile.lib,
# which uses the correct library build environment.
#
#
# Build miniperl, the bootstrap perl executable, and check it executes OK.
#
#
# an internal implementation of glob, but it isn't available at this point.
#
#
# Prepare for building perl modules by:
# * Building miniperl.
# * Autosplitting any ./lib modules that require it.
# * Creating a fake cflags file. ExtUtils::MM_Unix (used to build extensions)
# checks to see if there is a non-zero sized file called 'cflags' in this
# directory, so we fool it by creating one.
#
$(RUN_MINIPERL) configpm $@
$(MV) minimod.tmp $@
# Note: cflags needs to be non-zero sized, so $(TOUCH) won't do.
# Because autosplit generates a lot of files, we create a dummy timestamp file
$(AUTOSPLIT): $(PERL_CONFIGDEP)
#
# Make DynaLoader. DynaLoader is statically linked into the perl executable
# because it is used to load in all the other dynamically loaded modules.
# Note: VERSION is used by ON as a environment variable and by perl module
# makefiles as a make macro, so we need to unset it before building any modules.
#
#
# Create the perl executable.
#
$(POST_PROCESS)
$(COMPILE.c) -o $@ $<
#
# Build all the extensions. The rules for this are in the generated
#
#
# Build utilities and pod pages.
#
#
# Install targets. The bin, lib and pod symlinks are created here. The man
# link is created by the SUNWpl5m package. In order to prevent a symlink cycle
# we need to remove libperl.so before we start, so it will always be reinstalled
# on each 'make install'. We also overwrite the Config.pm we used to build our
# Config.pm will also be overwritten on each 'make install'. Note also that
# perl, pstruct and psed are all hard links, so they too are reinstalled on each
# 'make install'.
#
@ $(PERL_LD_ENV); $(PERL_LIB_ENV); \
#
# Perl test suite target.
# Note: the perl test suite breaks under parallel make. Bah.
#
# @ (PERL_MM_ENV); $(PERL_LD_ENV);
test: all
$(PERL_LD_ENV); \
cd t; pwd; \
if tty -s; then \
else \
fi
#
# Cleaning targets.
#
-@ unset VERSION; \
cd ext; pwd; \
( \
cd DynaLoader; \
[ -f Makefile.old ] && mf=Makefile.old; \
); \
$(RM) $(CLEANFILES)
#
# Clobber targets
#
-@ unset VERSION; \
cd ext; pwd; \
( \
cd DynaLoader; \
[ -f Makefile.old ] && mf=Makefile.old; \
); \
@ $(RM) -r contrib_bin
include ../../../Makefile.targ
FRC: