Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / obp / tools / libdef / 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.1 03/08/20
43# purpose:
44# copyright: Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
45# copyright: Use is subject to license terms.
46
47ROOT = ../..
48BP = ${ROOT}/obp
49
50include ${ROOT}/default.mk
51
52CC64 = ${CC}
53CC32 = ${CC}
54DFLAGS = -g
55CFLAGS = ${DFLAGS} ${LIBFLAGS} ${OFLAGS}
56CFLAGS64 = -xarch=v9
57CFLAGS32 =
58INCLUDES = -I .
59MKDIR = mkdir -p
60
61CFILES = defines.c
62
63HDRS = defines.h
64
65TARGET = libdef.a
66
67OBJS = $(CFILES:%.c=%.o)
68OBJS_sparcv9 = $(OBJS:%=sparcv9/%)
69OBJS_sparc = $(OBJS:%=sparc/%)
70
71TARGETS:sh = echo "sparc sparc/\${TARGET} "; if [ -x /usr/bin/isalist ]; \
72 then if [ ! -z "`/usr/bin/isalist | grep v9`" ]; \
73 then echo "sparcv9 sparcv9/\${TARGET}"; fi; fi;
74
75INSTALL:sh = echo "\${ROOT}/lib//\${TARGET} "; if [ -x /usr/bin/isalist ]; \
76 then if [ ! -z "`/usr/bin/isalist | grep v9`" ]; \
77 then echo "\${ROOT}/lib/sparcv9/\${TARGET}"; fi; fi;
78
79all: ${TARGETS} ${INSTALL} ${ROOT}/lib/defines.h
80
81${ROOT}/lib/sparcv9/${TARGET}: ${ROOT}/lib/sparcv9
82 cp sparcv9/${TARGET} ${ROOT}/lib/sparcv9
83
84${ROOT}/lib/${TARGET}: ${ROOT}/lib
85 cp sparc/${TARGET} ${ROOT}/lib
86
87${ROOT}/lib/defines.h:
88 cp -f defines.h ${ROOT}/lib
89
90${ROOT}/lib/sparcv9:
91 if [ ! -x $@ ]; then ${MKDIR} $@; fi
92
93sparc:
94 if [ ! -x $@ ]; then ${MKDIR} $@; fi
95
96sparcv9:
97 if [ ! -x $@ ]; then ${MKDIR} $@; fi
98
99${CFILES}: ${HDRS}
100
101sparcv9/%.o: %.c
102 $(CC64) $(CFLAGS64) $(CFLAGS) -c $< -o $@
103
104sparc/%.o: %.c
105 $(CC32) $(CFLAGS32) $(CFLAGS) -c $< -o $@
106
107
108sparcv9/${TARGET}: $(OBJS_sparcv9)
109 $(AR) -r $@ $(OBJS_sparcv9) ${LDFLAGS}
110
111sparc/${TARGET}: $(OBJS_sparc)
112 $(AR) -r $@ $(OBJS_sparc) ${LDFLAGS}
113
114clean:
115 -@rm -f *% *.ln *.BAK $(OBJS_sparc) $(OBJS_sparcv9)
116 -@rm -f sparc/${TARGET} sparcv9/${TARGET}
117 -@rm -f ${ROOT}/lib/sparcv9/${TARGET} ${ROOT}/lib/${TARGET}