BIN       = ~/bin

CFLAGS  = -g -I. -Wall
#CFLAGS   = -O2 -I. -Wall
BIN     =~/bin

SOURCES = util.cpp xmalloc.cpp stringcache.cpp ta.cpp clics_output.cpp \
		  opcode.cpp detect.cpp function.cpp clone.cpp directory.cpp \
		  source.cpp sort.cpp readclassfile.cpp jcd.cpp

OBJECTS = util.o xmalloc.o stringcache.o ta.o clics_output.o opcode.o \
		  detect.o function.o clone.o directory.o \
		  source.o sort.o readclassfile.o jcd.o

jcd : $(OBJECTS) 
	g++ -o jcd $(CFLAGS) $(OBJECTS)

jcd.o : jcd.cpp
	g++ -c $(CFLAGS) jcd.cpp

readclassfile.o : readclassfile.cpp
	g++ -c $(CFLAGS) readclassfile.cpp

sort.o : sort.cpp
	g++ -c $(CFLAGS) sort.cpp

opcode.o : opcode.cpp
	g++ -c $(CFLAGS) opcode.cpp

stringcache.o : stringcache.cpp
	g++ -c $(CFLAGS) stringcache.cpp

clone.o : clone.cpp
	g++ -c $(CFLAGS) clone.cpp

function.o : function.cpp
	g++ -c $(CFLAGS) function.cpp

source.o : source.cpp
	g++ -c $(CFLAGS) source.cpp

directory.o : directory.cpp
	g++ -c $(CFLAGS) directory.cpp

detect.o : detect.cpp
	g++ -c $(CFLAGS) detect.cpp

util.o : util.cpp
	g++ -c $(CFLAGS) util.cpp

xmalloc.o : xmalloc.cpp
	g++ -c $(CFLAGS) xmalloc.cpp

ta.o : ta.cpp
	g++ -c $(CFLAGS) ta.cpp

clics_output.o : clics_output.cpp
	g++ -c $(CFLAGS) clics_output.cpp

data.o : data.cpp
	g++ -c $(CFLAGS) data.cpp

install: jcd
	cp jcd $(BIN)/jcd
	chmod 755 $(BIN)/jcd

clean:
	/bin/rm -f *.o *.s jcd

