# $Id: Makefile,v 1.5 2001/11/27 22:09:19 eric Exp $

# Makefile for entire PJVM project.
#
# $Log: Makefile,v $
# Revision 1.5  2001/11/27 22:09:19  eric
# Added listobjects
#
# Revision 1.4  2001/11/14 18:15:42  eric
# Added instantiate
#
# Revision 1.3  2001/11/04 05:28:40  eric
# Added listmethods
#
# Revision 1.2  2001/10/31 00:22:49  eric
# Added listconstructors
#
# Revision 1.1  2001/10/23 21:30:02  eric
# Initial revision
#
#

CC=gcc
CFLAGS=-g  -Wall -I/usr/local/jdk1.3.1_01/include \
            -I/usr/local/jdk1.3.1_01/include/linux
HDRS=       reaper.h strtok2.h errexit.h
LDFLAGS=    -lpthread -ljvm \
            -L/usr/local/jdk1.3.1_01/jre/lib/i386/client
UCFLAGS=    -g -Wall
POBJS=pjvms.o strtok2.o errexit.o reaper.o passivesock.o passiveTCP.o
PSRCS=pjvms.c strtok2.c errexit.c reaper.c passivesock.c passiveTCP.c
ROBJS=requestjvm.o connectTCP.o connectsock.o errexit.o strtok2.o \
      reaper.o
RSRCS=requestjvm.c connectTCP.c connectsock.c errexit.c strtok2.c \
      reaper.c
UOBJS=connectTCP.o connectsock.o errexit.o
USRCS=connectTCP.c connectsock.c errexit.c
MOBJS=manager.o strtok2.o errexit.o passivesock.o passiveTCP.o \
      connectsock.o connectTCP.o
MSRCS=manager.c strtok2.c errexit.c passivesock.c passiveTCP.c \
      connectsock.c connectTCP.c
UTILS=listjvm.c killjvm.c loadclass.c listclass.c listconstructors.c \
listmethods.c instantiate.c listobjects.c

#POBJS=$(PSRCS:.c=.o)

all: pjvm pjvms manager requestjvm listjvm killjvm loadclass listclass \
listconstructors listmethods instantiate listobjects
	rm *.o

pjvm: pjvm.java
	javac pjvm.java
pjvms: $(POBJS)
	gcc $(LDFLAGS) $^ -o $@
manager: $(MOBJS)
	gcc $(LDFLAGS) $^ -o manager
requestjvm: $(ROBJS)
	gcc $(LDFLAGS) $^ -o requestjvm
listjvm: $(UOBJS) listjvm.o
	gcc $(LDFLAGS) $^ -o listjvm
killjvm: $(UOBJS) killjvm.o
	gcc $(LDFLAGS) $^ -o killjvm
loadclass: $(UOBJS) loadclass.o
	gcc $(LDFLAGS) $^ -o loadclass
listclass: $(UOBJS) listclass.o
	gcc $(LDFLAGS) $^ -o listclass
listconstructors: $(UOBJS) listconstructors.o
	gcc $(LDFLAGS) $^ -o listconstructors
listmethods: $(UOBJS) listmethods.o
	gcc $(LDFLAGS) $^ -o listmethods
instantiate: $(UOBJS) instantiate.o
	gcc $(LDFLAGS) $^ -o instantiate
listobjects: $(UOBJS) listobjects.o
	gcc $(LDFLAGS) $^ -o listobjects

depend: $(PSRCS) $(HDRS) $(RSRCS) $(USRCS) $(UTILS) $(MSRCS)
	makedepend -Y -- $(CFLAGS) -- $(PSRCS) $(RSRCS) $(USRCS) $(UTILS) $(MSRCS)

clean:
	rm -f pjvm.class
	rm -f pjvms
	rm -f manager
	rm -f requestjvm
	rm -f listjvm
	rm -f killjvm
	rm -f loadclass
	rm -f listclass
	rm -f listconstructors
	rm -f listmethods
	rm -f instantiate
	rm -f listobjects
