| 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 | # ---------------------------------------------------------------------- |