# ========== Copyright Header Begin ========================================== # # OpenSPARC T2 Processor File: Makefile # Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES. # # The above named program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public # License version 2 as published by the Free Software Foundation. # # The above named program is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public # License along with this work; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. # # ========== Copyright Header End ============================================ # # "@(#)1.2 06/01/15 system/Makefile" # # invoked with: build DEFINES="" # # ------------------------------ defines ------------------------------- include $(TOP_DIR)/Makefile.defines CCBLAZE = blaze/cpu_interface.cc blaze/dev_registry.cc \ blaze/main.cc blaze/netsim.cc blaze/system.cc blaze/term.cc \ blaze/term_redirect.cc blaze/workerthreads.cc blaze/ui_cmds.cc \ blaze/ui_mem_cmds.cc blaze/ui_utils.cc blaze/prioque.cc blaze/dr.cc \ blaze/elfsym.cc blaze/symbols.cc blaze/ui_elfsym.cc \ blaze/stracer.cc blaze/command_opts.cc blaze/ui.cc OBJBLAZE = $(CCBLAZE:blaze/%.cc=$(OBJ_DIR)/%.o) CCTRMOD = tracemod/tm_mmi.cc tracemod/tm_impl.cc tracemod/tm_api.cc \ tracemod/tm_cpu_ext.cc tracemod/tm_blaze_ext.cc OBJTRMOD = $(CCTRMOD:tracemod/%.cc=$(OBJ_DIR)/%.o) CCUTIL = util/fileutil.cc OBJUTIL = $(CCUTIL:util/%.cc=$(OBJ_DIR)/%.o) CCMEM = mem/Memory.cc OBJMEM = $(CCMEM:mem/%.cc=$(OBJ_DIR)/%.o) CCOBJS = $(OBJBLAZE) $(OBJTRMOD) $(OBJUTIL) $(OBJMEM) ASFILES = util/atomic.s ASOBJS=$(ASFILES:util/%.s=$(OBJ_DIR)/%.o) INCLUDES += -I./include -Iblaze/include -Iutil/include -Itracemod/include -Idr/include -Imem/include -I$(TOP_DIR)/include INCLUDES += -I$(SPIX_HOME)/inc LIBS += -L$(SPIX_HOME)/lib -lspix_sparc LIBS += -R$(DEVTOOLS_HOME)/lib -L$(DEVTOOLS_HOME)/lib -lreadline -lhistory MODULE_HOME = ../devices 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 INCLUDES += -I$(DEVTOOLS_HOME)/include EXTRAFLAGS += -D__CWD__=\"$(PWD)\" CCFLAGS += $(EXTRAFLAGS) $(INCLUDES) $(DEFINES) CCFLAGS += -DBLAZEVERSION_STRING=\"$(VERSION)\" EXTRAASFLAGS.v8plus = -P -xregsym=no -D_ASM -D__STDC__=0 EXTRAASFLAGS.v9 = -P -xregsym=no -D_ASM -D__STDC__=0 -DARCH_V9 EXTRAASFLAGS.amd64 = -P -D_ASM -D__STDC__=0 -DARCH_X64 ASFLAGS += $(EXTRAASFLAGS.$(ARCH)) LDFLAGS += -znolazyload LIBS += -ladm -lsocket -lnsl -ldl -lrt -lelf -lcurses INSTALL_INCS = Memory.h address.h bi.h bootbus_ctrl.h cpu_interface.h \ vcpu.h dev_props.h dr.h dump.h fc_ctrl.h ll.h mem.h \ mmi-blaze.h mmi.h netsim.h pcidisk.h prioque.h property.h remote.h \ rtc.h schizo.h scsi_ctrl.h serial.h simce.h simge.h sym_scsi_ctrl.h \ system.h tracemod.h types.h ui.h vtracer.h vtracer_async_queue.h # INSTALL_DEMOS = sam.rc scsidisk.init fcdisk.init # -------------------------- targets and rules ------------------------- build: $(BIN_DIR)/sam $(BIN_DIR)/sam: $(CCOBJS) $(ASOBJS) $(OBJ_DIR)/SS_Memory.o @echo @echo building $@ @echo $(LINK.cc) -o $@ $(CCOBJS) $(ASOBJS) $(LIBS) $(OBJ_DIR)/SS_Memory.o # still not sure what's the best way to do this (until we just plain flatten # and merge all the subdirs, which are pretty darn unnecessary anyway) # $(OBJBLAZE) : $(CCBLAZE) @ $(TESTDIR) $(OBJ_DIR) @echo @echo building $@ @echo $(COMPILE.cc) -o $@ $(@:$(OBJ_DIR)/%.o=blaze/%.cc) # $(OBJTRMOD) : $(CCTRMOD) @ $(TESTDIR) $(OBJ_DIR) @echo @echo building $@ @echo $(COMPILE.cc) -o $@ $(@:$(OBJ_DIR)/%.o=tracemod/%.cc) # $(OBJUTIL) : $(CCUTIL) @ $(TESTDIR) $(OBJ_DIR) @echo @echo building $@ @echo $(COMPILE.cc) -o $@ $(@:$(OBJ_DIR)/%.o=util/%.cc) # $(OBJ_DIR)/Memory.o : mem/Memory.cc @ $(TESTDIR) $(OBJ_DIR) @echo @echo building $@ @echo $(COMPILE.cc) -o $@ mem/Memory.cc # $(ASOBJS) : $(ASFILES) @ $(TESTDIR) $(OBJ_DIR) @echo @echo building $@ @echo $(COMPILE.s) -o $@ $(@:$(OBJ_DIR)/%.o=util/%.s) $(OBJ_DIR)/SS_Memory.o: mem/SS_Memory.s @echo @echo assembling $@ @echo $(COMPILE.s) $< -o $@ mem/SS_Memory.s install: @echo "Can't make install from a subdir" clean: $(RM) -f $(OBJ_DIR) include $(TOP_DIR)/Makefile.rules # ----------------------------------------------------------------------