Commit | Line | Data |
---|---|---|
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 ------------------------------- | |
29 | include $(TOP_DIR)/Makefile.defines | |
30 | ||
31 | CCBLAZE = 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 | ||
38 | OBJBLAZE = $(CCBLAZE:blaze/%.cc=$(OBJ_DIR)/%.o) | |
39 | ||
40 | CCTRMOD = tracemod/tm_mmi.cc tracemod/tm_impl.cc tracemod/tm_api.cc \ | |
41 | tracemod/tm_cpu_ext.cc tracemod/tm_blaze_ext.cc | |
42 | OBJTRMOD = $(CCTRMOD:tracemod/%.cc=$(OBJ_DIR)/%.o) | |
43 | ||
44 | CCUTIL = util/fileutil.cc | |
45 | OBJUTIL = $(CCUTIL:util/%.cc=$(OBJ_DIR)/%.o) | |
46 | ||
47 | CCMEM = mem/Memory.cc | |
48 | OBJMEM = $(CCMEM:mem/%.cc=$(OBJ_DIR)/%.o) | |
49 | ||
50 | CCOBJS = $(OBJBLAZE) $(OBJTRMOD) $(OBJUTIL) $(OBJMEM) | |
51 | ||
52 | ASFILES = util/atomic.s | |
53 | ||
54 | ASOBJS=$(ASFILES:util/%.s=$(OBJ_DIR)/%.o) | |
55 | ||
56 | ||
57 | ||
58 | INCLUDES += -I./include -Iblaze/include -Iutil/include -Itracemod/include -Idr/include -Imem/include -I$(TOP_DIR)/include | |
59 | ||
60 | INCLUDES += -I$(SPIX_HOME)/inc | |
61 | LIBS += -L$(SPIX_HOME)/lib -lspix_sparc | |
62 | LIBS += -R$(DEVTOOLS_HOME)/lib -L$(DEVTOOLS_HOME)/lib -lreadline -lhistory | |
63 | ||
64 | MODULE_HOME = ../devices | |
65 | INCLUDES += -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 | ||
67 | INCLUDES += -I$(DEVTOOLS_HOME)/include | |
68 | ||
69 | EXTRAFLAGS += -D__CWD__=\"$(PWD)\" | |
70 | ||
71 | CCFLAGS += $(EXTRAFLAGS) $(INCLUDES) $(DEFINES) | |
72 | CCFLAGS += -DBLAZEVERSION_STRING=\"$(VERSION)\" | |
73 | ||
74 | EXTRAASFLAGS.v8plus = -P -xregsym=no -D_ASM -D__STDC__=0 | |
75 | EXTRAASFLAGS.v9 = -P -xregsym=no -D_ASM -D__STDC__=0 -DARCH_V9 | |
76 | EXTRAASFLAGS.amd64 = -P -D_ASM -D__STDC__=0 -DARCH_X64 | |
77 | ASFLAGS += $(EXTRAASFLAGS.$(ARCH)) | |
78 | ||
79 | LDFLAGS += -znolazyload | |
80 | ||
81 | ||
82 | LIBS += -ladm -lsocket -lnsl -ldl -lrt -lelf -lcurses | |
83 | ||
84 | ||
85 | ||
86 | INSTALL_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 | # | |
93 | INSTALL_DEMOS = sam.rc scsidisk.init fcdisk.init | |
94 | ||
95 | ||
96 | # -------------------------- targets and rules ------------------------- | |
97 | ||
98 | ||
99 | build: $(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 | ||
151 | install: | |
152 | @echo "Can't make install from a subdir" | |
153 | ||
154 | clean: | |
155 | $(RM) -f $(OBJ_DIR) | |
156 | ||
157 | ||
158 | ||
159 | include $(TOP_DIR)/Makefile.rules | |
160 | ||
161 | # ---------------------------------------------------------------------- |