all_target: all

warning:
	@echo "This makefile should only be used for release builds. For CVS builds use the makeme build utility."

clean:
	rm -f `find . -name '*.o'`
	rm -f kissme

cleanclasses:
	rm -f `find classes -name '*.class'`
	rm -f `find guiclasses -name '*.class'`
	rm -f `find kissme_test -name '*.class'`

CC = gcc
PROG = kissme

VM_OBJS=\
util/katomic.o \
util/kspinlock.o \
extra/classpath_missing.o\
vm/native/natives_init.o\
vm/native/table.o\
vm/jni_native_call.o\
vm/sys_linux_host/kissme_classload.o \
vm/sys_linux_host/wrappers.o \
vm/sys_linux_host/locks.o \
vm/sys_linux_host/locks_alt.o \
vm/sys_linux_host/loading_errors.o \
vm/wrappers.o\
vm/stackmap/mapencoder.o \
vm/stackmap/stackmap.o \
vm/verifier/verifier.o \
vm/verifier/graph.o \
vm/garbage/mark/mark.o \
vm/garbage/allocator.o \
vm/garbage/handles.o \
vm/garbage/oldheap.o \
vm/garbage/youngheap.o \
vm/arith64.o \
vm/classfil.o \
vm/classfile_internal.o \
vm/cplist.o \
vm/cptuplelist.o \
vm/classloader_tuple.o \
vm/disass.o \
vm/garbage.o \
vm/garbage/garbage.o \
vm/hash.o \
vm/interp/interp.o \
vm/interp/loop.o \
vm/jni.o \
vm/jutils.o \
vm/llist.o \
vm/network_classloader.o \
vm/persist.o \
vm/rpot.o \
vm/store.o \
vm/storemanager.o \
vm/thread.o \
vm/tpot.o \
vm/uid.o \
vm/virtual_disk_cache.o \
vm/virtual_disk_proxy.o \
vm/zip_classloader.o \
vm/kissme_main.o \
vm/locks.o \
vm/interp/methodstacks.o \
vm/newobject.o \
vm/startup.o \
vm/oom_exception_object.o \
vm/threadinfo.o

INDIGENOUS_OBJS_NOT_USED=\
lib/indigenous/java.io/File.o \
lib/indigenous/java.io/FileDescriptor.o \
lib/indigenous/java.io/FileInputStream.o \
lib/indigenous/java.io/FileOutputStream.o \
lib/indigenous/java.lang/String.o \
lib/indigenous/java.lang/Object.o \
lib/indigenous/java.lang/System.o \
lib/indigenous/java.lang/Math.o 

INDIGENOUS_OBJS=\
lib/indigenous/java.lang/Class.o \
lib/indigenous/java.lang/Class_Reflection.o \
lib/indigenous/java.lang/Runtime.o \
lib/indigenous/java.lang/VMSecurityManager.o \
lib/indigenous/java.lang/Throwable.o \
lib/indigenous/java.lang/UnixProcess.o \
lib/indigenous/java.lang/VMClassLoader.o \
lib/indigenous/java.lang/VMObject.o \
lib/indigenous/java.lang/VMSystem.o \
lib/indigenous/java.lang.reflect/Array.o \
lib/indigenous/java.lang.reflect/Field.o \
lib/indigenous/java.lang.reflect/Constructor.o \
lib/indigenous/java.lang.reflect/Method.o \
lib/indigenous/java.util/ResourceBundle.o \
lib/indigenous/java.util/TimeZone.o \
lib/indigenous/plava/PStore.o \
lib/indigenous/gnu.vm.stack.kludge/StackTrace.o \
lib/indigenous/jos.system/machine.o\
lib/curses/CursesConsole.o

COLTRANE_OBJS=\
lib/indigenous/coltrane/Coltrane.o 

JOS_OBJS=\
lib/indigenous/jos.system/machine.o 

CLASSPATH_OBJS_NOT_USED=\

CLASSPATH_OBJS=\
lib/classpath/java_lang_Double.o \
lib/classpath/java_lang_Float.o \
lib/classpath/jcl.o \
lib/classpath/dtoa.o \
lib/classpath/mprec.o \
lib/classpath/java.lang/System.o \
lib/classpath/java.lang/Object.o \
lib/classpath/java.io/File.o \
lib/classpath/java.io/FileDescriptor.o \
lib/classpath/java.io/FileInputStream.o \
lib/classpath/java.io/FileOutputStream.o \
lib/classpath/java.io/RandomAccessFile.o \
lib/classpath/java.io/java_io_ObjectInputStream.o \
lib/classpath/java.io/java_io_ObjectOutputStream.o \
lib/classpath/java.io/javaio.o \
lib/classpath/java.lang/acos.o \
lib/classpath/java.lang/asin.o \
lib/classpath/java.lang/atan.o \
lib/classpath/java.lang/atan2.o \
lib/classpath/java.lang/ceil.o \
lib/classpath/java.lang/cos.o \
lib/classpath/java.lang/e_fmod.o \
lib/classpath/java.lang/exp.o \
lib/classpath/java.lang/floor.o \
lib/classpath/java.lang/javalang.o \
lib/classpath/java.lang/k_cos.o \
lib/classpath/java.lang/k_rem_pio2.o \
lib/classpath/java.lang/k_sin.o \
lib/classpath/java.lang/k_tan.o \
lib/classpath/java.lang/log.o \
lib/classpath/java.lang/pow.o \
lib/classpath/java.lang/remainder.o \
lib/classpath/java.lang/rint.o \
lib/classpath/java.lang/s_fabs.o \
lib/classpath/java.lang/sin.o \
lib/classpath/java.lang/sqrt.o \
lib/classpath/java.lang/tan.o \
lib/classpath/java.lang/e_rem_pio2.o \
lib/classpath/java.net/java_net_InetAddress.o \
lib/classpath/java.net/java_net_PlainDatagramSocketImpl.o \
lib/classpath/java.net/java_net_PlainSocketImpl.o \
lib/classpath/java.net/javanet.o\
lib/classpath/java.math/BigInteger.o\
lib/classpath/nsa/native_state.o

#OBJS=\
#$(INDIGENOUS_JAVA_LANG) \
#$(INDIGENOUS_JAVA_UTIL_OBJS) \
#$(CLASSPATH_OBJS) \
#$(PLAVA_OBJS) \
#$(VM_OBJS) \
#$(LINUX_HOST_OBJS) \
#$(STACKMAP_OBJS) \
#$(VERIFIER_OBJS) \
#$(SVETLANA_OBJS) \
#$(MISC_OBJS)

OBJS=$(VM_OBJS) $(INDIGENOUS_OBJS) $(CLASSPATH_OBJS) $(GTK_PEER_OBJS)

CFLAGS = -O2 -Ivm/ -Ivm/interp/ -I. -I./include  -Ilib/classpath/nsa
LDFLAGS = -lm -lpthread -ldl -lgmp -lcurses  
 

all: warning $(OBJS) $(PROG)

$(PROG): $(OBJS)
	$(CC) -o $(PROG) $(OBJS) $(LDFLAGS)
     
$(OBJS): %.o: %.c
	$(CC) -c $(CFLAGS) $< -o $@

