Makefile revision fb9f9b975cb9214fec5dab37d461199adab9b964
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews# CDDL HEADER START
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence# The contents of this file are subject to the terms of the
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updater# Common Development and Distribution License, Version 1.0 only
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# (the "License"). You may not use this file except in compliance
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# with the License.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence#
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# or http://www.opensolaris.org/os/licensing.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# See the License for the specific language governing permissions
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# and limitations under the License.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# When distributing Covered Code, include this CDDL HEADER in each
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# If applicable, add the following below this CDDL HEADER, with the
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# fields enclosed by brackets "[]" replaced with your own identifying
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein# information: Portions Copyright [yyyy] [name of copyright owner]
dfea6f0eaadb9287cfcdc1566ac2f997af1b075aBob Halley#
bc8711b1489e1b25f311f4f6161355708f643f3dMark Andrews# CDDL HEADER END
bc8711b1489e1b25f311f4f6161355708f643f3dMark Andrews#
bc8711b1489e1b25f311f4f6161355708f643f3dMark Andrews#
bc8711b1489e1b25f311f4f6161355708f643f3dMark Andrews# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
bc8711b1489e1b25f311f4f6161355708f643f3dMark Andrews# Use is subject to license terms.
bc8711b1489e1b25f311f4f6161355708f643f3dMark Andrews#
bc8711b1489e1b25f311f4f6161355708f643f3dMark Andrews#ident "%Z%%M% %I% %E% SMI"
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrewsinclude ../../../Makefile.cmd
b57bb9136af9f1bf84378f1f11f0efc55c52c628Mark Andrewsinclude ../Makefile.perlcfg
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# Extra arguments needed to fool MakeMaker into building in the distrib tree.
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# Note we fake up an extra directory for contrib scripts under distrib - the
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# modified installperl knows how to handle the contents.
53bd3f325f898b6892742ce928da3daa02ba0eddDavid Lawrence#
53bd3f325f898b6892742ce928da3daa02ba0eddDavid LawrencePERL_MM_ARGS += INST_ARCHLIB=$(PERL_DISTRIB)/lib INST_LIB=$(PERL_DISTRIB)/lib \
53bd3f325f898b6892742ce928da3daa02ba0eddDavid Lawrence INST_SCRIPT=$(PERL_DISTRIB)/contrib_bin \
53bd3f325f898b6892742ce928da3daa02ba0eddDavid Lawrence INST_BIN=$(PERL_DISTRIB)/contrib_bin PERL_SRC=$(PERL_DISTRIB)
53bd3f325f898b6892742ce928da3daa02ba0eddDavid Lawrence
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# All SMI perl libraries should be prefixed with this.
e285c6ea84312a7be807b3af30151444b0002ba6Mark AndrewsSUN_SOLARIS = Sun/Solaris
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews# Add any XS extensions here.
e285c6ea84312a7be807b3af30151444b0002ba6Mark AndrewsPERL_DYNAMIC_EXT = \
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews $(SUN_SOLARIS)/Utils \
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews $(SUN_SOLARIS)/Intrs \
6098d364b690cb9dabf96e9664c4689c8559bd2eMark Andrews $(SUN_SOLARIS)/Project \
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews $(SUN_SOLARIS)/Task \
d981ca645597116d227a48bf37cc5edc061c854dBob Halley $(SUN_SOLARIS)/Exacct \
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews $(SUN_SOLARIS)/Privilege \
ebfcb6cf66283096ebda1503b6cc042ce86b6bedBrian Wellington $(SUN_SOLARIS)/Ucred
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas GustafssonCLOSED_PERL_EXT += $(SUN_SOLARIS)/Kstat
d981ca645597116d227a48bf37cc5edc061c854dBob Halley
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# Add any pure-perl extensions here.
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark AndrewsPERL_NONXS_EXT = \
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews $(SUN_SOLARIS)/BSM \
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews $(SUN_SOLARIS)/PerlGcc
d981ca645597116d227a48bf37cc5edc061c854dBob Halley
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark AndrewsPERL_EXT = $(PERL_DYNAMIC_EXT) $(PERL_NONXS_EXT)
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark AndrewsPERL_EXT_MAKEFILES = $(PERL_EXT:%=%/Makefile)
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark AndrewsALL_EXT = $(PERL_EXT)
d981ca645597116d227a48bf37cc5edc061c854dBob HalleyALL_EXT_MAKEFILES = $(PERL_EXT_MAKEFILES)
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews$(CLOSED_BUILD)ALL_EXT += $(CLOSED_PERL_EXT)
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews$(CLOSED_BUILD)ALL_EXT_MAKEFILES += $(CLOSED_PERL_EXT:%=%/Makefile)
d981ca645597116d227a48bf37cc5edc061c854dBob Halley
d981ca645597116d227a48bf37cc5edc061c854dBob Halleyall: copy_contrib $(ALL_EXT_MAKEFILES) $(ALL_EXT)
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews.PARALLEL: $(ALL_EXT_MAKEFILES) $(ALL_EXT)
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews#
d981ca645597116d227a48bf37cc5edc061c854dBob Halley# Note: this is a dummy install target; during 'make all' this Makefile
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# populates ../distrib/lib with the modules that it is responsible for building,
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews# and the install target of ../distrib/Makefile subsequently copies the modules
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# into the proto area.
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews#
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrewsinstall: all
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews#
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews# copy_contrib copies the clearfiles from ../../contrib to here.
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#
d981ca645597116d227a48bf37cc5edc061c854dBob Halleycopy_contrib: ../../contrib/copy_contrib
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews @ ../../contrib/copy_contrib ../../contrib . $(PERL_EXT)
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews @ if [ -d $(CLOSED)/cmd/perl/contrib -a \
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews -n "$(CLOSED_PERL_EXT)" ]; then \
d981ca645597116d227a48bf37cc5edc061c854dBob Halley ../../contrib/copy_contrib $(CLOSED)/cmd/perl/contrib \
d981ca645597116d227a48bf37cc5edc061c854dBob Halley . $(CLOSED_PERL_EXT); \
d981ca645597116d227a48bf37cc5edc061c854dBob Halley fi
d981ca645597116d227a48bf37cc5edc061c854dBob Halley
d981ca645597116d227a48bf37cc5edc061c854dBob Halleyclean:
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley -@ $(PERL_MM_ENV); \
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley for ext in $(ALL_EXT); do \
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley if [ -d $$ext ]; then \
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley ( \
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley cd $$ext; pwd; \
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews [ -f Makefile.old ] && mf=Makefile.old; \
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews [ -f Makefile ] && mf=Makefile; \
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews [ ! -z "$$mf" ] && $(MAKE) -f $$mf clean; \
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews ) \
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews fi \
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews done
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrewsclobber:
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews -@ $(PERL_MM_ENV); \
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews for ext in $(ALL_EXT); do \
f7d6bc93d17277a969f5559733bf1362c322b0efMark Andrews if [ -d $$ext ]; then \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff ( \
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews cd $$ext; pwd; \
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews [ -f Makefile.old ] && mf=Makefile.old; \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff [ -f Makefile ] && mf=Makefile; \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff [ ! -z "$$mf" ] && $(MAKE) -f $$mf realclean; \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff ); \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff $(RM) -r $$ext; \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff fi \
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews done
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrewstest: all
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews @ $(PERL_MM_ENV); $(PERL_LD_ENV); \
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews for ext in $(ALL_EXT); do \
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews ( \
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews cd $$ext; pwd; \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff [ -f Makefile.old ] && mf=Makefile.old; \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff [ -f Makefile ] && mf=Makefile; \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff [ ! -z "$$mf" ] && $(MAKE) -f $$mf test; \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff ) \
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff done
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff# Pattern-matching rule for Makefiles.
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff%/Makefile: %/Makefile.PL $(PERL_CONFIGDEP)
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein @ cd $(@D); pwd; $(RUN_MINIPERL) $(<F) $(PERL_MM_ARGS) > /dev/null
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff# Pattern-matching rule for extensions.
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews$(SUN_SOLARIS)/%: $(SUN_SOLARIS)/%/Makefile FRC
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews @ cd $@; pwd; $(PERL_MM_ENV); $(MAKE) all
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews#
471e0563c7965c556c759775882cd3448dae78eaMark Andrews# Additional rule to make sure changes to the ::Exacct sub-module Makefile.PL
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews# files results in the parent Makefile.PL being rerun.
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews#
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews$(SUN_SOLARIS)/Exacct/Makefile: $(SUN_SOLARIS)/Exacct/Makefile.PL \
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews $(SUN_SOLARIS)/Exacct/Catalog/Makefile.PL \
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews $(SUN_SOLARIS)/Exacct/File/Makefile.PL \
471e0563c7965c556c759775882cd3448dae78eaMark Andrews $(SUN_SOLARIS)/Exacct/Object/Makefile.PL \
f7d6bc93d17277a969f5559733bf1362c322b0efMark Andrews $(PERL_CONFIGDEP)
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews @ cd $(SUN_SOLARIS)/Exacct; pwd; \
d981ca645597116d227a48bf37cc5edc061c854dBob Halley $(RUN_MINIPERL) Makefile.PL $(PERL_MM_ARGS) > /dev/null
e285c6ea84312a7be807b3af30151444b0002ba6Mark Andrews
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark AndrewsFRC:
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews