# 
# 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 pspmain.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                                    		\
            socketProtocol.c socketProtocol_md.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,%.o,$(SRCFILES))

FP_OBJFILES = $(patsubst %.c,%.o,$(FP_FILES))

vpath %.c  $(TOP)/kvm/VmCommon/src/ $(TOP)/kvm/VmExtra/src/fp \
		   $(TOP)/kvm/VmPSP/src/ $(TOP)/kvm/VmExtra/src/      \
		   $(TOP)/tools/jcc/ $(TOP)/jam/src/

DEBUG_FLAG += -DINCLUDEDEBUGCODE=1 

#$(TOP)/tools/jcc/ROMjavaWin.c $(TOP)/tools/jcc/nativeFunctionTableWin.c: jccWin

#.PHONY:  jccWin
#jccWin: 
#	@(cd $(TOP)/tools/jcc; $(MAKE) windows)

$(OBJFILES): $(TOP)/kvm/VmPSP/h/machine_md.h

TARGET = cldc
OBJS = $(OBJFILES) $(FP_OBJFILES)
#OBJS = $(OBJFILES)

INCDIR = $(TOP)/kvm/VmPSP/h $(TOP)/kvm/VmExtra/h $(TOP)/jam/h $(TOP)/kvm/VmCommon/h $(TOP)/kvm/VmCommon/src
LIBS = -lm
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = CLDC1.1

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

compile: $(OBJS)