⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 This is a java virtual machine implement in c
💻
字号:
/*0001*/#
/*0002*/# Makefile for GNU make, adapted from the solaris version
/*0003*/# @(#)GNUmakefile	1.5 99/11/22
/*0004*/#
/*0005*/
/*0006*/TOP=../../..
/*0007*/include $(TOP)/build/Makefile.inc
/*0008*/
/*0009*/ifeq ($(DEBUG), true)
/*0010*/   g = _g
/*0011*/else
/*0012*/   g =
/*0013*/endif
/*0014*/
/*0015*/j =
/*0016*/OTHER_FLAGS += -DNOGUI
/*0017*/
/*0018*/ifeq ($(DEBUG_COLLECTOR), true)
/*0019*/COLLECTOR = collectorDebug.c
/*0020*/OTHER_FLAGS += -DUSE_DEBUG_COLLECTOR=1
/*0021*/else
/*0022*/COLLECTOR = collector.c
/*0023*/OTHER_FLAGS += -DUSE_DEBUG_COLLECTOR=0
/*0024*/endif
/*0025*/
/*0026*/SRCFILES  = cache.c class.c fields.c frame.c garbage.c $(COLLECTOR)   \
/*0027*/            global.c interpret.c execute.c loader.c main.c native.c   \
/*0028*/            property.c thread.c nativeCore.c loaderFile.c hashtable.c \
/*0029*/            verifier.c log.c jar.c inflate.c  stackmap.c profiling.c  \
/*0030*/	    pool.c events.c resource.c StartJVM.c fakeStaticMemory.c  \
/*0031*/	    nativeFunctionTableWin.c runtime_md.c runtime2_md.c       \
/*0032*/	    datagramProtocol.c datagramProtocol_md.c                  \
/*0033*/	    socketProtocol.c socketProtocol_md.c                      \
/*0034*/	    commProtocol.c commProtocol_md.c async.c
/*0035*/
/*0036*/
/*0037*/ifeq ($(DEBUG), true)
/*0038*/   SRCFILES += debugger.c debuggerSocketIO.c debuggerOutputStream.c debuggerInputStream.c
/*0039*/   OTHER_FLAGS += -DENABLE_JAVA_DEBUGGER=1
/*0040*/else
/*0041*/   OTHER_FLAGS += -DENABLE_JAVA_DEBUGGER=0
/*0042*/endif
/*0043*/
/*0044*/OTHER_FLAGS +=-DPADTABLE=1
/*0045*/
/*0046*/ifeq ($(USE_JAM), true)
/*0047*/   OTHER_FLAGS += -DUSE_JAM=1
/*0048*/   SRCFILES += jam.c jamParse.c jamHttp.c jamStorage.c
/*0049*/   j = _j
/*0050*/else
/*0051*/
/*0052*/endif
/*0053*/
/*0054*/ifeq ($(ROMIZING), false) 
/*0055*/   ROMFLAGS = -DROMIZING=0
/*0056*/else
/*0057*/   SRCFILES += ROMjavaWin.c
/*0058*/endif
/*0059*/
/*0060*/all: kvm$(j)$(g).exe
/*0061*/
/*0062*/
/*0063*/OBJFILES = $(patsubst %.c,obj$(j)$(g)/%.o,$(SRCFILES))
/*0064*/
/*0065*/vpath %.c  $(TOP)/kvm/VmCommon/src/ $(TOP)/kvm/VmWin/src/ \
/*0066*/	   $(TOP)/kvm/VmExtra/src/  $(TOP)/tools/jcc/ \
/*0067*/	   $(TOP)/jam/src/
/*0068*/
/*0069*/ifeq ($(GCC), true)
/*0070*/   CC = gcc
/*0071*/   LD = gcc
/*0072*/   LIBS= -luser32 -lgdi32 -lkernel32 -lmsvcrt -lwsock32
/*0073*/   CPPFLAGS = -DWIN32 -DGCC -I$(TOP)/kvm/VmCommon/h -I$(TOP)/kvm/VmWin/h \
/*0074*/	   -I$(TOP)/kvm/VmExtra/h -I$(TOP)/jam/h -I$(TOP)/kvm/VmCommon/src
/*0075*/   CFLAGS = -mno-cygwin -mcpu=i386 -Wall $(CPPFLAGS) $(ROMFLAGS) $(OTHER_FLAGS)
/*0076*/   DEBUG_FLAG = -g
/*0077*/   OPTIMIZE_FLAG = -O2
/*0078*/   OUTPUT = -o 
/*0079*/   LINKER_OUTPUT = -o 
/*0080*/   LDFLAGS = -mno-cygwin
/*0081*/else
/*0082*/   CC= cl
/*0083*/   LD= link
/*0084*/   LIBS= user32.lib gdi32.lib kernel32.lib wsock32.lib
/*0085*/   CPPFLAGS = -DWIN32 -I$(TOP)/kvm/VmCommon/h -I$(TOP)/kvm/VmWin/h \
/*0086*/	   -I$(TOP)/kvm/VmExtra/h -I$(TOP)/jam/h /MT
/*0087*/   CFLAGS= -nologo $(CPPFLAGS) $(ROMFLAGS) $(OTHER_FLAGS)
/*0088*/   DEBUG_FLAG= -Zi -Od
/*0089*/   OPTIMIZE_FLAG= -Ox
/*0090*/   OUTPUT = -Fo
/*0091*/   LINKER_OUTPUT = -out:
/*0092*/   LDFLAGS = 
/*0093*/ifeq ($(DEBUG), true)
/*0094*/   LDFLAGS += -debug
/*0095*/endif
/*0096*/
/*0097*/endif
/*0098*/
/*0099*/DEBUG_FLAG += -DINCLUDEDEBUGCODE=1 
/*0100*/
/*0101*/$(TOP)/tools/jcc/ROMjavaWin.c $(TOP)/tools/jcc/nativeFunctionTableWin.c: jccWin
/*0102*/
/*0103*/.PHONY:  jccWin
/*0104*/jccWin: 
/*0105*/	@(cd $(TOP)/tools/jcc; $(MAKE) windows)
/*0106*/
/*0107*/
/*0108*/kvm$(j)$(g).exe: obj$j$g/  $(OBJFILES)
/*0109*/	@echo "Linking ... $@"
/*0110*/	@$(LD) $(LDFLAGS) $(OBJFILES) $(LINKER_OUTPUT)$@ $(LIBS)
/*0111*/
/*0112*/clean: 
/*0113*/	rm -rf kvm* obj*
/*0114*/	
/*0115*/$(OBJFILES): $(TOP)/kvm/VmWin/h/machine_md.h
/*0116*/
/*0117*/obj$(j)$g/execute.o : execute.c bytecodes.c 
/*0118*/
/*0119*/obj$(j)/%.o: %.c
/*0120*/		@echo "... $@"
/*0121*/		@$(CC) $(CFLAGS) $(OPTIMIZE_FLAG) -c $(OUTPUT)$@ $<
/*0122*/
/*0123*/obj$(j)_g/%.o: %.c
/*0124*/		@echo "... $@"
/*0125*/		@$(CC) $(CFLAGS) $(DEBUG_FLAG) -c $(OUTPUT)$@ $<
/*0126*/
/*0127*/obj$j$g/:
/*0128*/		mkdir -p $@
/*0129*/
/*0130*/ifeq ($(GCC), true)
/*0131*/
/*0132*/%.i: %.c .FORCE
/*0133*/	echo $(CC)
/*0134*/	$(CC) $(CFLAGS) $(OPTIMIZE_FLAG) -E $(OUTPUT)$@ $<
/*0135*/
/*0136*/else 
/*0137*/
/*0138*/%.i: %.c .FORCE
/*0139*/	echo $(CC)
/*0140*/	$(CC) $(CFLAGS) $(OPTIMIZE_FLAG) -E $< > $@
/*0141*/
/*0142*/endif
/*0143*/
/*0144*/%.s: %.c .FORCE
/*0145*/	@echo "... $@"
/*0146*/	@$(CC) $(CFLAGS) $(OPTIMIZE_FLAG) -S $(OUTPUT)$@ $<
/*0147*/
/*0148*/.FORCE:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -