# # Copyright © 2003 Sun Microsystems, Inc. All rights reserved. # SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. # # # # Makefile for GNU make, adapted from the solaris version # @(#)GNUmakefile 1.5 99/11/22 # TOP=../../.. include $(TOP)/build/Makefile.inc ifeq ($(DEBUG), true) g = _g else g = endif j = ifeq ($(DEBUG_COLLECTOR), true) COLLECTOR = collectorDebug.c else COLLECTOR = collector.c endif FP_FILES = fp_math.c fp_bytecodes.c k_cos.c k_rem_pio2.c \ k_sin.c k_tan.c s_ceil.c s_copysign.c \ s_cos.c s_floor.c s_scalbn.c \ s_sin.c s_tan.c e_rem_pio2.c \ w_sqrt.c e_sqrt.c s_fabs.c ifeq ($(ASM_LOOP), true) OTHER_FLAGS += -DALTERNATIVE_FAST_INTERPRETER=1 endif SRCFILES = cache.c class.c fields.c frame.c garbage.c $(COLLECTOR) \ global.c interpret.c execute.c loader.c main.c native.c \ property.c thread.c nativeCore.c loaderFile.c hashtable.c \ verifier.c log.c jar.c inflate.c stackmap.c profiling.c \ pool.c events.c resource.c StartJVM.c \ nativeFunctionTableWin.c runtime_md.c runtime2_md.c \ async.c verifierUtil.c ifeq ($(DEBUG), true) SRCFILES += debugger.c debuggerSocketIO.c debuggerOutputStream.c debuggerInputStream.c OTHER_FLAGS += -DENABLE_JAVA_DEBUGGER=1 else OTHER_FLAGS += -DENABLE_JAVA_DEBUGGER=0 endif OTHER_FLAGS +=-DPADTABLE=1 ifeq ($(USE_JAM), true) OTHER_FLAGS += -DUSE_JAM=1 SRCFILES += jam.c jamParse.c jamHttp.c jamStorage.c \ socketProtocol.c socketProtocol_md.c j = _j else endif ifeq ($(USE_KNI), true) OTHER_FLAGS += -DUSE_KNI=1 SRCFILES += kni.c endif ifeq ($(ROMIZING), false) ROMFLAGS = -DROMIZING=0 else SRCFILES += ROMjavaWin.c endif all: kvm$(j)$(g).exe OBJFILES = $(patsubst %.c,obj$(j)$(g)/%.o,$(SRCFILES)) FP_OBJFILES = $(patsubst %.c,fp_obj$(j)$(g)/%.o,$(FP_FILES)) ifeq ($(ASM_LOOP), true) OBJFILES += obj$(j)$(g)/winFastInterpret.o SRCFILES += winFastInterpretSupport.c endif obj$(j)$(g)/winFastInterpret.o: $(TOP)/kvm/vmWin/src/winFastInterpret.asm $(TOP)/kvm/vmWin/src/defines.asm @ml /nologo /Zi /c /coff /Cx /Fo$@ \ $(TOP)/kvm/vmWin/src/winFastInterpret.asm vpath %.c $(TOP)/kvm/VmCommon/src/ $(TOP)/kvm/VmExtra/src/fp \ $(TOP)/kvm/VmWin/src/ $(TOP)/kvm/VmExtra/src/ \ $(TOP)/tools/jcc/ $(TOP)/jam/src/ ifeq ($(GCC), true) CC = gcc LD = gcc LIBS= -luser32 -lgdi32 -lkernel32 -lmsvcrt -lwsock32 CPPFLAGS = -DWIN32 -DGCC -I$(TOP)/kvm/VmCommon/h -I$(TOP)/kvm/VmWin/h \ -I$(TOP)/kvm/VmExtra/h -I$(TOP)/jam/h -I$(TOP)/kvm/VmCommon/src CFLAGS = -mno-cygwin -mcpu=i386 -Wall $(CPPFLAGS) $(ROMFLAGS) $(OTHER_FLAGS) DEBUG_FLAG = -g OPTIMIZE_FLAG = -O2 FP_OPTIMIZE_FLAG = OUTPUT = -o LINKER_OUTPUT = -o LDFLAGS = -mno-cygwin else CC= cl LD= link LIBS= user32.lib gdi32.lib kernel32.lib wsock32.lib CPPFLAGS = -DWIN32 -I$(TOP)/kvm/VmCommon/h -I$(TOP)/kvm/VmWin/h \ -I$(TOP)/kvm/VmExtra/h -I$(TOP)/jam/h /MT CFLAGS= -nologo $(CPPFLAGS) $(ROMFLAGS) $(OTHER_FLAGS) DEBUG_FLAG= -Zi -Od OPTIMIZE_FLAG= -Ox FP_OPTIMIZE_FLAG= OUTPUT = -Fo LINKER_OUTPUT = -out: LDFLAGS = ifeq ($(DEBUG), true) LDFLAGS += -debug endif endif $(TOP)/kvm/vmWin/src/defines.asm: makeAsmOffsets @echo "generating assembly defines..." @rm -f $@ @./makeAsmOffsets > $@ makeAsmOffsets: $(TOP)/kvm/VmWin/src/makeAsmOffsets.c @$(CC) $(CFLAGS) $(OUTPUT)$@ $< DEBUG_FLAG += -DINCLUDEDEBUGCODE=1 $(TOP)/tools/jcc/ROMjavaWin.c $(TOP)/tools/jcc/nativeFunctionTableWin.c: jccWin .PHONY: jccWin jccWin: @(cd $(TOP)/tools/jcc; $(MAKE) windows) kvm$(j)$(g).exe: obj$j$g/ fp_obj$j$g/ $(OBJFILES) $(FP_OBJFILES) @echo "Linking ... $@" @$(LD) $(LDFLAGS) $(OBJFILES) $(FP_OBJFILES) $(LINKER_OUTPUT)$@ $(LIBS) clean: rm -rf kvm* obj* fp_obj* makeAsmOffsets.* $(TOP)/kvm/vmWin/src/defines.asm $(OBJFILES): $(TOP)/kvm/VmWin/h/machine_md.h obj$(j)$g/execute.o : execute.c bytecodes.c obj$(j)/%.o: %.c @echo "... $@" @$(CC) $(CFLAGS) $(OPTIMIZE_FLAG) -c $(OUTPUT)$@ $< obj$(j)_g/%.o: %.c @echo "... $@" @$(CC) $(CFLAGS) $(DEBUG_FLAG) -c $(OUTPUT)$@ $< obj$j$g/: mkdir -p $@ fp_obj$(j)/%.o: %.c @echo "... $@" @$(CC) $(CFLAGS) $(FP_OPTIMIZE_FLAG) -c $(OUTPUT)$@ $< fp_obj$(j)_g/%.o: %.c @echo "... $@" @$(CC) $(CFLAGS) $(DEBUG_FLAG) -c $(OUTPUT)$@ $< fp_obj$j$g/: mkdir -p $@ ifeq ($(GCC), true) %.i: %.c .FORCE echo $(CC) @$(CC) $(CFLAGS) $(OPTIMIZE_FLAG) -E $(OUTPUT)$@ $< else %.i: %.c .FORCE echo $(CC) @$(CC) $(CFLAGS) $(OPTIMIZE_FLAG) -E $< > $@ endif %.s: %.c .FORCE @echo "... $@" @$(CC) $(CFLAGS) $(OPTIMIZE_FLAG) -S $(OUTPUT)$@ $< .FORCE: