1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21#
22# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25# ident	"%Z%%M%	%I%	%E% SMI"
26#
27
28# When building libperl.so, hidden command and dependency checking is OK.
29.KEEP_STATE:
30
31# Library and version.
32LIBRARY = 	libperl.a
33VERS =		.1
34
35# Objects comprising libperl.
36OBJECTS = \
37    av.o \
38    deb.o \
39    doio.o \
40    doop.o \
41    dump.o \
42    globals.o \
43    gv.o \
44    hv.o \
45    locale.o \
46    mg.o \
47    numeric.o \
48    op.o \
49    pad.o \
50    perl.o \
51    perlapi.o \
52    perlio.o \
53    perly.o \
54    pp.o \
55    pp_ctl.o \
56    pp_hot.o \
57    pp_pack.o \
58    pp_sort.o \
59    pp_sys.o \
60    reentr.o \
61    regcomp.o \
62    regexec.o \
63    run.o \
64    scope.o \
65    sv.o \
66    taint.o \
67    toke.o \
68    universal.o \
69    utf8.o \
70    util.o \
71    xsutils.o
72
73#
74# Some	of the Makefile.master and Makefile.lib flags are overridden by
75# ../Makefile.perlcfg which is in turn generated from config.sh by
76# ../extract_config.sh - check there first before overriding anything in this
77# Makefile.
78#
79include ../../../../lib/Makefile.lib
80include ../Makefile.perlcfg
81
82# There should be a mapfile here
83MAPFILES =
84
85# Disable perl from directly binding to itself, but allow perl to directly bind
86# to its dependencies (ie. map -Bdirect -> -zdirect).  Ensure lazy loading is
87# established (which is enabled automatically with -Bdirect).
88BDIRECT =	$(ZDIRECT)
89LDFLAGS +=	$(ZLAZYLOAD)
90
91# Add in the perl-specific flags (including largefile flags).
92CPPFLAGS += $(PERL_COREFLAGS) $(PERL_LFFLAGS)
93
94# A static version of libperl isn't needed.
95LIBS = $(DYNLIB)
96
97# libperl.so lives under the perl install tree, not /usr/lib.
98ROOTLIBDIR = $(PERL_CORE_DIR)
99
100# Add in the libraries perl needs to be linked against.
101LDLIBS += $(PERL_LDLIBS)
102
103all: $(LIBS) $(LIBLINKS)
104
105#
106# libperl is installed by the installperl script, which is in turn called by
107# distrib/Makefile, so this target does nothing.  However, installperl doesn't
108# get the links to libperl.so quite right, so this is fixed up by the
109# install_lib target, which is run by distrib/Makefile (see below).
110#
111install: all
112
113#
114# By default perl only installs libperl.so, wheras ON would install
115# libperl.so.1 and then create libperl.so as a symlink to libperl.so.1.
116# The following two rules fix up things so they follow the ON conventions.
117#
118install_lib:
119	$(RM) -f $(PERL_CORE_DIR)/$(DYNLIB)
120	$(MV) $(PERL_CORE_DIR)/$(LIBLINKS) $(PERL_CORE_DIR)/$(DYNLIB)
121	$(LN) -s ./$(DYNLIB) $(PERL_CORE_DIR)/$(LIBLINKS)
122
123$(LIBLINKS):
124	$(RM) -f $@
125	$(LN) -s ./$(DYNLIB) $@
126
127include ../../../../lib/Makefile.targ
128