# ========== 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="<list of target-specific compiler 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
)
OBJMEM
= $(CCMEM
:mem
/%.
cc=$(OBJ_DIR
)/%.o
)
CCOBJS
= $(OBJBLAZE
) $(OBJTRMOD
) $(OBJUTIL
) $(OBJMEM
)
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
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
))
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 -------------------------
$(BIN_DIR
)/sam
: $(CCOBJS
) $(ASOBJS
) $(OBJ_DIR
)/SS_Memory.o
$(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)
$(COMPILE.
cc) -o
$@
$(@
:$(OBJ_DIR
)/%.o
=blaze
/%.
cc)
$(COMPILE.
cc) -o
$@
$(@
:$(OBJ_DIR
)/%.o
=tracemod
/%.
cc)
$(COMPILE.
cc) -o
$@
$(@
:$(OBJ_DIR
)/%.o
=util
/%.
cc)
$(OBJ_DIR
)/Memory.o
: mem
/Memory.
cc
$(COMPILE.
cc) -o
$@ mem
/Memory.
cc
$(COMPILE.s
) -o
$@
$(@
:$(OBJ_DIR
)/%.o
=util
/%.s
)
$(OBJ_DIR
)/SS_Memory.o
: mem
/SS_Memory.s
$(COMPILE.s
) $< -o
$@ mem
/SS_Memory.s
@echo
"Can't make install from a subdir"
include $(TOP_DIR
)/Makefile.rules
# ----------------------------------------------------------------------