Merge commit '1f1540205fa6366266184180654434272c425ac2'
[unleashed.git] / usr / src / lib / libdisasm / Makefile.com
blobb92fbd1acbd5248553127c710108815d711b51c6
2 # CDDL HEADER START
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.
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.
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]
19 # CDDL HEADER END
22 # Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23 # Use is subject to license terms.
24 # Copyright 2012 Joshua M. Clulow <josh@sysmgr.org>
25 # Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
26 # Copyright (c) 2018, Joyent, Inc.
30 # The build process for libdisasm is sightly different from that used by other
31 # libraries, because libdisasm must be built in two flavors - as a standalone
32 # for use by kmdb and as a normal library.  We use $(CURTYPE) to indicate the
33 # current flavor being built.
36 LIBRARY=        libdisasm.a
37 STANDLIBRARY=   libstanddisasm.so
38 VERS=           .1
40 # By default, we build the shared library.  Construction of the standalone
41 # is specifically requested by architecture-specific Makefiles.
42 TYPES=          library
43 CURTYPE=        library
45 COMDIR=         $(SRC)/lib/libdisasm/common
48 # Architecture-independent files
50 SRCS_common=            $(COMDIR)/libdisasm.c
51 OBJECTS_common=         libdisasm.o
54 # Architecture-dependent disassembly files
56 SRCS_i386=              $(COMDIR)/dis_i386.c \
57                         $(SRC)/common/dis/i386/dis_tables.c
58 SRCS_sparc=             $(COMDIR)/dis_sparc.c \
59                         $(COMDIR)/dis_sparc_fmt.c \
60                         $(COMDIR)/dis_sparc_instr.c
61 SRCS_s390x=             $(COMDIR)/dis_s390x.c
62 SRCS_riscv=             $(COMDIR)/dis_riscv.c
64 OBJECTS_i386=           dis_i386.o \
65                         dis_tables.o
66 OBJECTS_sparc=          dis_sparc.o \
67                         dis_sparc_fmt.o \
68                         dis_sparc_instr.o
69 OBJECTS_s390x=          dis_s390x.o
70 OBJECTS_riscv=          dis_riscv.o
73 # We build the regular shared library with support for all architectures.
74 # The standalone version should only contain code for the native
75 # architecture to reduce the memory footprint of kmdb.
77 OBJECTS_library=        $(OBJECTS_common) \
78                         $(OBJECTS_i386) \
79                         $(OBJECTS_sparc) \
80                         $(OBJECTS_s390x) \
81                         $(OBJECTS_riscv)
82 OBJECTS_standalone=     $(OBJECTS_common) \
83                         $(OBJECTS_$(MACH))
84 OBJECTS=                $(OBJECTS_$(CURTYPE))
86 include $(SRC)/lib/Makefile.lib
88 SRCS_library=           $(SRCS_common) \
89                         $(SRCS_i386) \
90                         $(SRCS_sparc) \
91                         $(SRCS_s390x) \
92                         $(SRCS_riscv)
93 SRCS_standalone=        $(SRCS_common) \
94                         $(SRCS_$(MACH))
95 SRCS=                   $(SRCS_$(CURTYPE))
98 # Used to verify that the standalone doesn't have any unexpected external
99 # dependencies.
101 LINKTEST_OBJ = objs/linktest_stand.o
103 CLOBBERFILES_standalone = $(LINKTEST_OBJ)
104 CLOBBERFILES += $(CLOBBERFILES_$(CURTYPE))
106 LIBS_standalone = $(STANDLIBRARY)
107 LIBS_library = $(DYNLIB)
108 LIBS = $(LIBS_$(CURTYPE))
110 MAPFILES =      $(COMDIR)/mapfile-vers
112 LDLIBS +=       -lc
114 LDFLAGS_standalone = $(ZNOVERSION) $(BREDUCE) -dy -r
115 LDFLAGS = $(LDFLAGS_$(CURTYPE))
117 ASFLAGS_standalone = -DDIS_STANDALONE
118 ASFLAGS_library =
119 ASFLAGS += $(ASFLAGS_$(CURTYPE)) -D_ASM
121 CERRWARN +=     -Wno-parentheses
122 CERRWARN +=     -Wno-uninitialized
124 CPPFLAGS_standalone = -DDIS_STANDALONE -I$(SRC)/cmd/mdb/common
125 CPPFLAGS +=     -I$(COMDIR) $(CPPFLAGS_$(CURTYPE))
127 # For the x86 disassembler we have to include sources from usr/src/common
128 CPPFLAGS += -I$(SRC)/common/dis/i386 -DDIS_TEXT
130 CFLAGS_standalone = $(STAND_FLAGS_32)
131 CFLAGS_common =
132 CFLAGS += $(CFLAGS_$(CURTYPE)) $(CFLAGS_common)
134 CFLAGS64_standalone = $(STAND_FLAGS_64)
135 CFLAGS64 += $(CFLAGS64_$(CURTYPE)) $(CFLAGS64_common)
137 C99MODE = $(C99_ENABLE)
139 DYNFLAGS +=     $(ZINTERPOSE)
141 .KEEP_STATE: