Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / obp / tools / dropin / Makefile
CommitLineData
920dae64
AT
1# ========== Copyright Header Begin ==========================================
2#
3# Hypervisor Software File: Makefile
4#
5# Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
6#
7# - Do no alter or remove copyright notices
8#
9# - Redistribution and use of this software in source and binary forms, with
10# or without modification, are permitted provided that the following
11# conditions are met:
12#
13# - Redistribution of source code must retain the above copyright notice,
14# this list of conditions and the following disclaimer.
15#
16# - Redistribution in binary form must reproduce the above copyright notice,
17# this list of conditions and the following disclaimer in the
18# documentation and/or other materials provided with the distribution.
19#
20# Neither the name of Sun Microsystems, Inc. or the names of contributors
21# may be used to endorse or promote products derived from this software
22# without specific prior written permission.
23#
24# This software is provided "AS IS," without a warranty of any kind.
25# ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
26# INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
27# PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
28# MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
29# ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
30# DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
31# OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
32# FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
33# DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
34# ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
35# SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
36#
37# You acknowledge that this software is not designed, licensed or
38# intended for use in the design, construction, operation or maintenance of
39# any nuclear facility.
40#
41# ========== Copyright Header End ============================================
42# id: @(#)Makefile 1.2 04/08/17
43# copyright: Copyright 2004 Sun Microsystems, Inc. All Rights Reserved
44# copyright: Use is subject to license terms.
45#
46
47ROOT = ../..
48INSTALLDIR = ${ROOT}/lib
49TARGET = libdropin.a
50TARGETDIR = ${INSTALLDIR}/
51DROPIN = ${ROOT}/tools/dropin
52
53LIBRARY_sparc = $(ROOT)/lib/libdropin.a
54LIBRARY_sparcv9 = $(ROOT)/lib/sparcv9/libdropin.a
55
56CFILES = finddropin.c
57
58include ${ROOT}/default.mk
59
60MKDIR = mkdir -p
61
62CC32 = ${SPRO_PATH}/cc
63LD32 = /usr/ccs/bin/ld
64CFLAGS32 = -v
65
66CC64 = ${SPRO_PATH}/cc
67LD64 = /usr/ccs/bin/ld
68CFLAGS64 = -xarch=v9
69
70INC = -I ${ROOT}/include
71CFLAGS = -g ${INC}
72
73
74COBJS = $(CFILES:%.c=%.o)
75OBJS_sparcv9 = $(COBJS:%=sparcv9/%)
76OBJS_sparc = $(COBJS:%=sparc/%)
77OBJS = $(OBJS_sparc) $(OBJS_sparcv9)
78TARGET32:sh = echo "sparc \${TARGETDIR}\${TARGET} "
79TARGET64:sh = if [ -x /usr/bin/isalist ]; \
80 then if [ ! -z "`/usr/bin/isalist | grep v9`" ]; \
81 then echo "sparcv9 \${TARGETDIR}sparcv9/\${TARGET}"; fi; fi;
82TARGETS = ${TARGET32} ${TARGET64}
83
84
85
86all:: ${TARGETS}
87
88${ROOT}/include/sys:
89 ${MKDIR} ${ROOT}/include/sys
90
91${ROOT}/include/sys/dropins.h: ${ROOT}/include/sys
92${ROOT}/include/sys/dropins.h: ${DROPIN}/include/sys/dropins.h
93 cp -f ${DROPIN}/include/sys/dropins.h ${ROOT}/include/sys/dropins.h
94
95${ROOT}/include/sys/dilib.h: ${ROOT}/include/sys ${DROPIN}/include/sys/dilib.h
96 cp -f ${DROPIN}/include/sys/dilib.h ${ROOT}/include/sys/dilib.h
97
98sparc:
99 if [ ! -x $@ ]; then ${MKDIR} $@; fi
100
101sparcv9:
102 if [ ! -x $@ ]; then ${MKDIR} $@; fi
103
104sparcv9/%.o: %.c
105 $(CC64) $(CFLAGS64) $(CFLAGS) -c $< -o $@
106
107sparc/%.o: %.c
108 $(CC32) $(CFLAGS32) $(CFLAGS) -c $< -o $@
109
110LDFLAGS += -r -z nodlopen
111
112COMPOBJS = comp.o decomp.o
113COMPOBJS_sparcv9 = $(COMPOBJS:%=sparcv9/%)
114COMPOBJS_sparc = $(COMPOBJS:%=sparc/%)
115OBJS += $(COMPOBJS_sparc) $(COMPOBJS_sparcv9)
116
117COMPFLAGS = ${CFLAGS} -DNOMAIN -DSTANDALONE -Dcomp=di_comp
118DECOMPFLAGS = ${CFLAGS} -DNOMAIN -DSTANDALONE -DDROPIN_LIB \
119 -Ddecomp=di_decomp
120
121HDRS = ${ROOT}/include/sys/dilib.h ${ROOT}/include/sys/dropins.h
122
123${OBJS}: ${HDRS}
124all:: ${OBJS}
125# ${TARGETDIR}${TARGET}: $(COMPOBJS_sparc)
126# ${TARGETDIR}sparcv9/${TARGET}: $(COMPOBJS_sparv9)
127
128sparcv9/comp.o: ${ROOT}/tools/comp.c
129 ${CC64} -c $(CFLAGS64) ${COMPFLAGS} -o $@ ${ROOT}/tools/comp.c
130
131sparc/comp.o: ${ROOT}/tools/comp.c
132 ${CC32} -c $(CFLAGS32) ${COMPFLAGS} -o $@ ${ROOT}/tools/comp.c
133
134sparcv9/decomp.o: ${ROOT}/tools/decomp.c
135 ${CC64} -c $(CFLAGS64) ${DECOMPFLAGS} -o $@ ${ROOT}/tools/decomp.c
136
137sparc/decomp.o: ${ROOT}/tools/decomp.c
138 ${CC32} -c $(CFLAGS32) ${DECOMPFLAGS} -o $@ ${ROOT}/tools/decomp.c
139
140${TARGETDIR}sparcv9:
141 ${MKDIR} ${TARGETDIR}sparcv9
142
143${TARGETDIR}sparcv9/${TARGET}: $(OBJS_sparcv9) ${COMPOBJS_sparcv9} \
144 ${TARGETDIR}sparcv9
145 $(LD64) -o $@ $(OBJS_sparcv9) ${COMPOBJS_sparcv9} ${LDFLAGS}
146
147${TARGETDIR}${TARGET}: $(OBJS_sparc) ${COMPOBJS_sparc}
148 $(LD32) -o $@ $(OBJS_sparc) $(COMPOBJS_sparc) ${LDFLAGS}
149
150clean:
151 ${RM} ${OBJS} ${LIBRARY_sparc} ${LIBRARY_sparcv9} ${HDRS}
152
153clobber:
154 ${SCCS} clean
155
156FORCE: