Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / sam / system / Makefile
CommitLineData
920dae64
AT
1# ========== Copyright Header Begin ==========================================
2#
3# OpenSPARC T2 Processor File: Makefile
4# Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
5# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
6#
7# The above named program is free software; you can redistribute it and/or
8# modify it under the terms of the GNU General Public
9# License version 2 as published by the Free Software Foundation.
10#
11# The above named program is distributed in the hope that it will be
12# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14# General Public License for more details.
15#
16# You should have received a copy of the GNU General Public
17# License along with this work; if not, write to the Free Software
18# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19#
20# ========== Copyright Header End ============================================
21#
22# "@(#)1.2 06/01/15 system/Makefile"
23#
24# invoked with: build DEFINES="<list of target-specific compiler defines>"
25#
26
27
28# ------------------------------ defines -------------------------------
29include $(TOP_DIR)/Makefile.defines
30
31CCBLAZE = blaze/cpu_interface.cc blaze/dev_registry.cc \
32 blaze/main.cc blaze/netsim.cc blaze/system.cc blaze/term.cc \
33 blaze/term_redirect.cc blaze/workerthreads.cc blaze/ui_cmds.cc \
34 blaze/ui_mem_cmds.cc blaze/ui_utils.cc blaze/prioque.cc blaze/dr.cc \
35 blaze/elfsym.cc blaze/symbols.cc blaze/ui_elfsym.cc \
36 blaze/stracer.cc blaze/command_opts.cc blaze/ui.cc
37
38OBJBLAZE = $(CCBLAZE:blaze/%.cc=$(OBJ_DIR)/%.o)
39
40CCTRMOD = tracemod/tm_mmi.cc tracemod/tm_impl.cc tracemod/tm_api.cc \
41 tracemod/tm_cpu_ext.cc tracemod/tm_blaze_ext.cc
42OBJTRMOD = $(CCTRMOD:tracemod/%.cc=$(OBJ_DIR)/%.o)
43
44CCUTIL = util/fileutil.cc
45OBJUTIL = $(CCUTIL:util/%.cc=$(OBJ_DIR)/%.o)
46
47CCMEM = mem/Memory.cc
48OBJMEM = $(CCMEM:mem/%.cc=$(OBJ_DIR)/%.o)
49
50CCOBJS = $(OBJBLAZE) $(OBJTRMOD) $(OBJUTIL) $(OBJMEM)
51
52ASFILES = util/atomic.s
53
54ASOBJS=$(ASFILES:util/%.s=$(OBJ_DIR)/%.o)
55
56
57
58INCLUDES += -I./include -Iblaze/include -Iutil/include -Itracemod/include -Idr/include -Imem/include -I$(TOP_DIR)/include
59
60INCLUDES += -I$(SPIX_HOME)/inc
61LIBS += -L$(SPIX_HOME)/lib -lspix_sparc
62LIBS += -R$(DEVTOOLS_HOME)/lib -L$(DEVTOOLS_HOME)/lib -lreadline -lhistory
63
64MODULE_HOME = ../devices
65INCLUDES += -I$(MODULE_HOME)/serial/include -I$(MODULE_HOME)/common/include -I$(MODULE_HOME)/bi/include -I$(MODULE_HOME)/rtc/include -I$(MODULE_HOME)/scsi/include -I$(MODULE_HOME)/fc/include -I$(MODULE_HOME)/gem/include -I$(MODULE_HOME)/schizo/include
66
67INCLUDES += -I$(DEVTOOLS_HOME)/include
68
69EXTRAFLAGS += -D__CWD__=\"$(PWD)\"
70
71CCFLAGS += $(EXTRAFLAGS) $(INCLUDES) $(DEFINES)
72CCFLAGS += -DBLAZEVERSION_STRING=\"$(VERSION)\"
73
74EXTRAASFLAGS.v8plus = -P -xregsym=no -D_ASM -D__STDC__=0
75EXTRAASFLAGS.v9 = -P -xregsym=no -D_ASM -D__STDC__=0 -DARCH_V9
76EXTRAASFLAGS.amd64 = -P -D_ASM -D__STDC__=0 -DARCH_X64
77ASFLAGS += $(EXTRAASFLAGS.$(ARCH))
78
79LDFLAGS += -znolazyload
80
81
82LIBS += -ladm -lsocket -lnsl -ldl -lrt -lelf -lcurses
83
84
85
86INSTALL_INCS = Memory.h address.h bi.h bootbus_ctrl.h cpu_interface.h \
87 vcpu.h dev_props.h dr.h dump.h fc_ctrl.h ll.h mem.h \
88 mmi-blaze.h mmi.h netsim.h pcidisk.h prioque.h property.h remote.h \
89 rtc.h schizo.h scsi_ctrl.h serial.h simce.h simge.h sym_scsi_ctrl.h \
90 system.h tracemod.h types.h ui.h vtracer.h vtracer_async_queue.h
91
92#
93INSTALL_DEMOS = sam.rc scsidisk.init fcdisk.init
94
95
96# -------------------------- targets and rules -------------------------
97
98
99build: $(BIN_DIR)/sam
100
101$(BIN_DIR)/sam: $(CCOBJS) $(ASOBJS) $(OBJ_DIR)/SS_Memory.o
102 @echo
103 @echo building $@
104 @echo
105 $(LINK.cc) -o $@ $(CCOBJS) $(ASOBJS) $(LIBS) $(OBJ_DIR)/SS_Memory.o
106# still not sure what's the best way to do this (until we just plain flatten
107# and merge all the subdirs, which are pretty darn unnecessary anyway)
108#
109$(OBJBLAZE) : $(CCBLAZE)
110 @ $(TESTDIR) $(OBJ_DIR)
111 @echo
112 @echo building $@
113 @echo
114 $(COMPILE.cc) -o $@ $(@:$(OBJ_DIR)/%.o=blaze/%.cc)
115#
116$(OBJTRMOD) : $(CCTRMOD)
117 @ $(TESTDIR) $(OBJ_DIR)
118 @echo
119 @echo building $@
120 @echo
121 $(COMPILE.cc) -o $@ $(@:$(OBJ_DIR)/%.o=tracemod/%.cc)
122#
123$(OBJUTIL) : $(CCUTIL)
124 @ $(TESTDIR) $(OBJ_DIR)
125 @echo
126 @echo building $@
127 @echo
128 $(COMPILE.cc) -o $@ $(@:$(OBJ_DIR)/%.o=util/%.cc)
129#
130$(OBJ_DIR)/Memory.o : mem/Memory.cc
131 @ $(TESTDIR) $(OBJ_DIR)
132 @echo
133 @echo building $@
134 @echo
135 $(COMPILE.cc) -o $@ mem/Memory.cc
136
137#
138$(ASOBJS) : $(ASFILES)
139 @ $(TESTDIR) $(OBJ_DIR)
140 @echo
141 @echo building $@
142 @echo
143 $(COMPILE.s) -o $@ $(@:$(OBJ_DIR)/%.o=util/%.s)
144
145$(OBJ_DIR)/SS_Memory.o: mem/SS_Memory.s
146 @echo
147 @echo assembling $@
148 @echo
149 $(COMPILE.s) $< -o $@ mem/SS_Memory.s
150
151install:
152 @echo "Can't make install from a subdir"
153
154clean:
155 $(RM) -f $(OBJ_DIR)
156
157
158
159include $(TOP_DIR)/Makefile.rules
160
161# ----------------------------------------------------------------------