xref: /titanic_52/usr/src/lib/libdisasm/Makefile.com (revision dc0093f44ee4fac928e006850f8ed53f68277af5)
1*dc0093f4Seschrock#
2*dc0093f4Seschrock# CDDL HEADER START
3*dc0093f4Seschrock#
4*dc0093f4Seschrock# The contents of this file are subject to the terms of the
5*dc0093f4Seschrock# Common Development and Distribution License (the "License").
6*dc0093f4Seschrock# You may not use this file except in compliance with the License.
7*dc0093f4Seschrock#
8*dc0093f4Seschrock# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*dc0093f4Seschrock# or http://www.opensolaris.org/os/licensing.
10*dc0093f4Seschrock# See the License for the specific language governing permissions
11*dc0093f4Seschrock# and limitations under the License.
12*dc0093f4Seschrock#
13*dc0093f4Seschrock# When distributing Covered Code, include this CDDL HEADER in each
14*dc0093f4Seschrock# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*dc0093f4Seschrock# If applicable, add the following below this CDDL HEADER, with the
16*dc0093f4Seschrock# fields enclosed by brackets "[]" replaced with your own identifying
17*dc0093f4Seschrock# information: Portions Copyright [yyyy] [name of copyright owner]
18*dc0093f4Seschrock#
19*dc0093f4Seschrock# CDDL HEADER END
20*dc0093f4Seschrock#
21*dc0093f4Seschrock#
22*dc0093f4Seschrock# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
23*dc0093f4Seschrock# Use is subject to license terms.
24*dc0093f4Seschrock#
25*dc0093f4Seschrock# ident	"%Z%%M%	%I%	%E% SMI"
26*dc0093f4Seschrock
27*dc0093f4Seschrock#
28*dc0093f4Seschrock# The build process for libdisasm is sightly different from that used by other
29*dc0093f4Seschrock# libraries, because libdisasm must be built in two flavors - as a standalone
30*dc0093f4Seschrock# for use by kmdb and as a normal library.  We use $(CURTYPE) to indicate the
31*dc0093f4Seschrock# current flavor being built.
32*dc0093f4Seschrock#
33*dc0093f4Seschrock# The SPARC library is built from the closed gate.  This Makefile is shared
34*dc0093f4Seschrock# between both environments, so all paths must be absolute.
35*dc0093f4Seschrock#
36*dc0093f4Seschrock
37*dc0093f4SeschrockLIBRARY=	libdisasm.a
38*dc0093f4SeschrockSTANDLIBRARY=	libstanddisasm.so
39*dc0093f4SeschrockVERS=		.1
40*dc0093f4Seschrock
41*dc0093f4Seschrock# By default, we build the shared library.  Construction of the standalone
42*dc0093f4Seschrock# is specifically requested by architecture-specific Makefiles.
43*dc0093f4SeschrockTYPES=		library
44*dc0093f4SeschrockCURTYPE=	library
45*dc0093f4Seschrock
46*dc0093f4SeschrockCOMDIR=		$(SRC)/lib/libdisasm/common
47*dc0093f4SeschrockSPECDIR=	$(SRC)/lib/libdisasm/spec
48*dc0093f4Seschrock
49*dc0093f4Seschrock# Files specific to the library version of libdisasm
50*dc0093f4SeschrockOBJECTS_library =
51*dc0093f4SeschrockSRC_libary = $(OBJECTS_library:%.o=$(COMDIR)/%.c)
52*dc0093f4Seschrock
53*dc0093f4Seschrock#
54*dc0093f4Seschrock# Architecture-dependent files common to both versions of libdisasm
55*dc0093f4Seschrock#
56*dc0093f4SeschrockOBJECTS_common_i386 = dis_i386.o dis_tables.o
57*dc0093f4SeschrockOBJECTS_common_sparc = dis_sparc.o
58*dc0093f4Seschrock
59*dc0093f4SeschrockSRCS_common_i386 = $(ISASRCDIR)/dis_i386.c $(SRC)/common/dis/i386/dis_tables.c
60*dc0093f4SeschrockSRCS_common_sparc = $(ISASRCDIR)/dis_sparc.c
61*dc0093f4Seschrock
62*dc0093f4Seschrock#
63*dc0093f4Seschrock# Architecture-independent files common to both version of libdisasm
64*dc0093f4Seschrock#
65*dc0093f4SeschrockOBJECTS_common_common = libdisasm.o
66*dc0093f4SeschrockSRC_common_common = $(OBJECTS_common_common:%.o=$(COMDIR)/%.c)
67*dc0093f4Seschrock
68*dc0093f4Seschrock
69*dc0093f4SeschrockOBJECTS=				\
70*dc0093f4Seschrock	$(OBJECTS_$(CURTYPE))		\
71*dc0093f4Seschrock	$(OBJECTS_common_$(MACH))	\
72*dc0093f4Seschrock	$(OBJECTS_common_common)
73*dc0093f4Seschrock
74*dc0093f4Seschrockinclude $(SRC)/lib/Makefile.lib
75*dc0093f4Seschrock
76*dc0093f4SeschrockSRCS=					\
77*dc0093f4Seschrock	$(SRCS_$(CURTYPE))		\
78*dc0093f4Seschrock	$(SRCS_common_$(MACH))		\
79*dc0093f4Seschrock	$(SRCS_common_common)
80*dc0093f4Seschrock
81*dc0093f4Seschrock#
82*dc0093f4Seschrock# Used to verify that the standalone doesn't have any unexpected external
83*dc0093f4Seschrock# dependencies.
84*dc0093f4Seschrock#
85*dc0093f4SeschrockLINKTEST_OBJ = objs/linktest_stand.o
86*dc0093f4Seschrock
87*dc0093f4SeschrockCLOBBERFILES_standalone = $(LINKTEST_OBJ)
88*dc0093f4SeschrockCLOBBERFILES += $(CLOBBERFILES_$(CURTYPE))
89*dc0093f4Seschrock
90*dc0093f4SeschrockLIBS_standalone	= $(STANDLIBRARY)
91*dc0093f4SeschrockLIBS_library = $(DYNLIB) $(LINTLIB)
92*dc0093f4SeschrockLIBS = $(LIBS_$(CURTYPE))
93*dc0093f4Seschrock
94*dc0093f4SeschrockMAPDIR=		$(SPECDIR)/$(TRANSMACH)
95*dc0093f4SeschrockSPECMAPFILE=	$(MAPDIR)/mapfile
96*dc0093f4Seschrock
97*dc0093f4SeschrockLDLIBS +=	-lc
98*dc0093f4Seschrock
99*dc0093f4SeschrockLDFLAGS_standalone = -znoversion -Breduce -dy -r
100*dc0093f4SeschrockLDFLAGS = $(LDFLAGS_$(CURTYPE))
101*dc0093f4Seschrock
102*dc0093f4SeschrockASFLAGS_standalone = -DDIS_STANDALONE
103*dc0093f4SeschrockASFLAGS_library =
104*dc0093f4SeschrockASFLAGS += -P $(ASFLAGS_$(CURTYPE)) -D_ASM
105*dc0093f4Seschrock
106*dc0093f4Seschrock$(LINTLIB) := SRCS = $(COMDIR)/$(LINTSRC)
107*dc0093f4Seschrock
108*dc0093f4Seschrock# We want the thread-specific errno in the library, but we don't want it in
109*dc0093f4Seschrock# the standalone.  $(DTS_ERRNO) is designed to add -D_TS_ERRNO to $(CPPFLAGS),
110*dc0093f4Seschrock# in order to enable this feature.  Conveniently, -D_REENTRANT does the same
111*dc0093f4Seschrock# thing.  As such, we null out $(DTS_ERRNO) to ensure that the standalone
112*dc0093f4Seschrock# doesn't get it.
113*dc0093f4SeschrockDTS_ERRNO=
114*dc0093f4Seschrock
115*dc0093f4Seschrock# We need to rename some standard functions so we can easily implement them
116*dc0093f4Seschrock# in consumers.
117*dc0093f4SeschrockSTAND_RENAMED_FUNCS= \
118*dc0093f4Seschrock	snprintf
119*dc0093f4Seschrock
120*dc0093f4SeschrockCPPFLAGS_standalone = -DDIS_STANDALONE $(STAND_RENAMED_FUNCS:%=-D%=mdb_%) \
121*dc0093f4Seschrock	-I$(SRC)/cmd/mdb/common
122*dc0093f4SeschrockCPPFLAGS_library = -D_REENTRANT
123*dc0093f4SeschrockCPPFLAGS +=	-I$(COMDIR) $(CPPFLAGS_$(CURTYPE))
124*dc0093f4Seschrock
125*dc0093f4Seschrock#
126*dc0093f4Seschrock# For x86, we have to link to sources in usr/src/common
127*dc0093f4Seschrock#
128*dc0093f4SeschrockCPPFLAGS_dis_i386 = -I$(SRC)/common/dis/i386 -DDIS_TEXT
129*dc0093f4SeschrockCPPFLAGS_dis_sparc =
130*dc0093f4SeschrockCPPFLAGS +=	$(CPPFLAGS_dis_$(MACH))
131*dc0093f4Seschrock
132*dc0093f4SeschrockCFLAGS_standalone = $(STAND_FLAGS_32)
133*dc0093f4SeschrockCFLAGS_common =
134*dc0093f4SeschrockCFLAGS += $(CFLAGS_$(CURTYPE)) $(CFLAGS_common)
135*dc0093f4Seschrock
136*dc0093f4SeschrockCFLAGS64_standalone = $(STAND_FLAGS_64)
137*dc0093f4SeschrockCFLAGS64 += $(CCVERBOSE) $(CFLAGS64_$(CURTYPE)) $(CFLAGS64_common)
138*dc0093f4Seschrock
139*dc0093f4SeschrockDYNFLAGS +=     $(ZINTERPOSE)
140*dc0093f4Seschrock
141*dc0093f4Seschrock.KEEP_STATE:
142