📄 makefile
字号:
#!gmake ## DO NOT "make solo", or it will not update the dependency info!#ifndef SIMTOOLSSIMTOOLS = ../..endifSOLO = yesNON_SHARED = -non_sharedinclude $(SIMTOOLS)/makedefs################################################################# Include Files################################################################ifdef FLASHPOINTINCS = -I$(SIMTOOLS)/cpus/simos -I$(SIMTOOLS)/cpus/mipsy \ -I$(SIMTOOLS)/cpus/shared -I$(SIMTOOLS)/caches/2Level -I$(SIMDIR) \ -I$(SIMTOOLS)/memsystems/flashlite -I$(MEMSPY_DIR) $(GLOBAL_INCS) elseINCS = -I$(SIMTOOLS)/cpus/simos -I$(SIMTOOLS)/cpus/mipsy \ -I$(SIMTOOLS)/cpus/shared -I$(SIMTOOLS)/caches/2Level -I$(SIMDIR) \ -I$(SIMTOOLS)/memsystems/flashlite $(GLOBAL_INCS) endif################################################################# Defines################################################################# These start points work fine, but don't allow enough space for big runs#TEXT_START = 50004000#DATA_START = 51000000# These start points leave an additional 256MB of space for address-hungry# flashlite runs of 64 procs and up..TEXT_START = 40004000DATA_START = 41000000DEFS = -DSOLO -DSOLO_TEXT_START=0x$(TEXT_START) ifdef FLASHPOINTDEFS += -DFLASHPOINTINCS += -I$(MEMSPY_DIR)endifGLOBAL_DEFS += -DSIM_MIPS32ASFLAGS = $(GLOBAL_ASFLAGS) $(GLOBAL_DEFS) CFLAGS = $(GLOBAL_CFLAGS) $(GLOBAL_DEFS) $(SOLOCFLAGS) -Xcpluscomm ifdef USE_FLASHLITECFLAGS += -DUSE_FLASHLITE endifCC_OPTS = $(CFLAGS) $(INCS) $(DEFS)AS_OPTS = $(ASFLAGS) $(INCS) $(DEFS)################################################################# Source files needed during compilation################################################################C_TARGETS = solo_main.o solo_anl.o solo_cp0.o solo_extras.o \ syscall.o page.o solo_stubs.oASM_TARGETS = sqrt.o solo_asms.oTARGETS = $(C_TARGETS) $(ASM_TARGETS)################################################################# Things that must be linked with solo mipsy################################################################MIPSYLIB = $(SIMTOOLS)/cpus/mipsy/SOLO/mipsylib.aCACHELIBS = $(SIMTOOLS)/caches/2Level/SOLO/2levellib.aMEMSYSLIBS = $(SIMTOOLS)/memsystems/flashlite/SOLO/flashlitelib.aMEMSYSLIBS += $(SIMTOOLS)/memsystems/misc/SOLO/memsysmisc.aSHAREDLIBS = $(SIMTOOLS)/common/misc/SOLO/misc.aSHAREDLIBS += $(SIMTOOLS)/common/tcl/SOLO/tcl.aSHAREDLIBS += $(SIMTOOLS)/common/symbols/SOLO/symbols.aSHAREDLIBS += $(SIMTOOLS)/common/stats/SOLO/stats.aifdef FLASHPOINTFPLIBS = $(MEMSPY_DIR)/memspy_simulator.aendififdef NON_SHAREDLIB_DIR = /sim/s4/SimOS/build-files/lib/sgi-non-sharedelseLIB_DIR = /sim/s4/SimOS/build-files/lib/sgi-sharedendifLIBTCL = $(LIB_DIR)/libtcl7.6.a #ifdef USE_FLASHLITEMEMSYSLIBS += $(SIMDIR)/SGI/flashlite.aMEMSYSLIBS += $(SIMDIR)/protocols/dyn_ptr/SGI/protocolLib.aLIBGCC = /morse/m1/simos/lib/libgcc2.7.2.a#endifLDFLAGS = $(GLOBAL_LDFLAGS) -T $(TEXT_START) -D $(DATA_START)LIBS = $(MIPSYLIB) $(CACHELIBS) $(MEMSYSLIBS) $(SHAREDLIBS) $(LIBTCL) $(LIBGCC) $(FPLIBS)ifdef PROFILINGLIBS += -lprofendif.PHONY: warn depsdefault: warn @$(MAKE) deps @$(MAKE) INCLUDE_DEPS=1 allall: solo solo.a supportlib.a # DO NOT "make solo", or it will not spew the neat debug outputsolo: $(TARGETS) $(LIBS) solo.a supportlib.a @echo "Linking solo..." $(LD) $(LDFLAGS) -o $@ $(TARGETS) $(LIBS) -lmld -lm @echo "done."solo.a: $(TARGETS) @echo "Building solo library (solo.a) for golden copies..." @$(AR) cru solo.a $(TARGETS)warn: @echo "" @echo "Making SOLO" @echo "***********" @echo "NONSHARED : $(NON_SHARED)" @echo " DEFS : `$(FORMAT) $(DEFS)`" @echo " CFLAGS : `$(FORMAT) $(CFLAGS)`" @echo " LDFLAGS : `$(FORMAT) $(LDFLAGS)`" @echo " LIBS : `$(FORMAT) $(LIBS)`" @echo ""$(C_TARGETS): %.o: %.c %.d @echo "Compiling $(<F)" $(CC) $(CC_OPTS) -c $*.c $(ASM_TARGETS): %.o: %.s echo "Assembling $(<F)" $(AS) $(AS_OPTS) -c $< -o $@# NOTE: Supportlib MUST be created with asm_support.o last, so that# the libcStart symbol is the last thing in the library!supportlib.a: asm_support.s c_support.c c.m4.mipsy solo_interface.h @echo "Making application supportlib.a..." $(AS) -O2 -non_shared -mips2 -32 -o asm_support.o asm_support.s $(CC) -O2 -non_shared $(DEFS) -c c_support.c @\rm -f supportlib.a ld -r -o supportlib.a c_support.o asm_support.o clean: @echo "Making solo clean..." rm -rf core $(TARGETS) solo solo.a *.d asm_support.o c_support.o supportlib.a clobber: @echo "Making solo clobbered..." rm -rf core $(TARGETS) solo solo.a *.d asm_support.o c_support.o supportlib.a deps: ${TARGETS:.o=.d}%.d: %.c @echo "Finding dependencies of $(<F)" @$(CC) -M $(CC_OPTS) $< > $@%.d: %.s @echo "Finding dependencies of $(<F)" @$(CC) -M $(CC_OPTS) $< > $@ifdef INCLUDE_DEPSinclude ${TARGETS:.o=.d}endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -