#
# Makefile for libgltrace.so and trace executable
#
# Kekoa Proudfoot
# 5/6/98
#

ROOT = ..
include $(ROOT)/make/shared.mk

INCS   = -I../lib64
CFLAGS = -mips3 -DIRIX $(N64CFLAGS)
LFLAGS = -mips3 -64

# Library 

LPERLHSRC =
LPERLCSRC = glimpl.c.pl
LPERLEXTR = glimpl.c.sp
LHEADERS  = $(LPERLHSRC:.pl=)
LSOURCES  = $(LPERLCSRC:.pl=)
LOBJECTS  = $(LSOURCES:.c=.o)
LTARGETS  = libgltrace.so

# Shared (among executables)

CHEADERS  = clparse.h
CSOURCES  = clparse.c
COBJECTS  = $(CSOURCES:.c=.o)

# Executables

PSOURCES  = $(PTARGETS:=.c)
POBJECTS  = $(PTARGETS:=.o)
PTARGETS  = trace

# Everything

HEADERS   = $(LHEADERS)
SOURCES   = $(LSOURCES) $(CSOURCES) $(PSOURCES)
OBJECTS   = $(LOBJECTS) $(COBJECTS) $(POBJECTS)
TARGETS   = $(LTARGETS) $(PTARGETS)

# Links

LINKS     = $(CHEADERS) $(CSOURCES) $(LPERLHSRC) $(LPERLCSRC) $(PSOURCES) \
	    $(LPERLEXTR)

DEPEND    = Depend

all: $(LINKS) $(HEADERS) $(TARGETS)

LFLAGS_libgltrace = -Wld,-init,__glt_init,-fini,__glt_fini
LIBS_libgltrace = -L../lib64 -lglt
libgltrace.so: $(LOBJECTS) ../lib64/libglt.a

trace: $(COBJECTS)

$(LINKS):
	rm -f $@; ln -s ../trace/$@ .

depend: $(LINKS) $(HEADERS) $(SOURCES)
	$(CC) $(CFLAGS) $(INCS) -M $(SOURCES) > Depend
	@echo glimpl.c.pl:
	@echo glimpl.c: ../perl/shared/flags >> Depend
	@echo glimpl.c: ../perl/shared/opcodes >> Depend
	@echo glimpl.c: ../perl/shared/headers >> Depend
	@echo glimpl.c: ../perl/shared/glheaders >> Depend
	@echo glimpl.c: glimpl.c.sp >> Depend

clean:
	rm -f *~ $(OBJECTS) $(TARGETS) core so_locations

noperl:
	rm -f $(LPERLCSRC:.pl=) $(LPERLHSRC:.pl=)

nodepend:
	rm -f $(DEPEND)

nolinks:
	rm -f $(LINKS)

install: libgltrace.so
	mkdir -p $(INSTROOT)/lib64
	cp libgltrace.so $(INSTROOT)/lib64

veryclean: clean noperl nodepend nolinks

ifeq ($(wildcard $(DEPEND)),$(DEPEND))
include $(DEPEND)
endif
