##############################################################################
##
##  GNU Makefile for 
##  Lab assignment 4 (CS213, Spring 2000)
##
##############################################################################

# Don't forget to add your Andrew user-ID here!

NAME=
VERSION=1

ASSTDIR=/afs/cs.cmu.edu/academic/class/15213-s00/L4

# Uncomment only one of the following three:
DEFINES=-DLINUX
#DEFINES=-DALPHA
#DEFINES=

CC=gcc

CACHEPROF=./cacheprof
CACHEPROFFLAGS=--cacheprofdir=.

#
# uncomment one of the two lines below
#
CFLAGS=-Wall -O2 $(DEFINES) 
#CFLAGS=-Wall -g $(DEFINES)
#
#
CPP=gcc -E

INCDIR=
LIBDIR=

LIBS=

OBJS=driver.o mxm.o mxm_through.o

TESTS = 

##############################################################################

all: all-target

ifeq (Makefile.depend, $(wildcard Makefile.depend))
include Makefile.depend
all-target: driver
else
all-target: depend
	@echo Please run make once again!
endif

##############################################################################

driver: $(OBJS)
	$(CACHEPROF) $(CACHEPROFFLAGS) $(CC) $(CFLAGS) $^ $(TESTS) $(LIBDIR) $(LIBS) -o $@

mxm.o: mxm.c
	$(CACHEPROF) $(CACHEPROFFLAGS) $(CC) $(CFLAGS) $(INCDIR) -c -o $*.o $<

#mxm_through.o: mxm_through.c
#	$(CACHEPROF) $(CACHEPROFFLAGS) $(CC) $(CFLAGS) $(INCDIR) -c -o $*.o $<

%.s: %.c
	$(CC) $(CFLAGS) $(INCDIR) -S -o $*.s $<

%.o: %.c
	$(CC) $(CFLAGS) $(INCDIR) -c -o $*.o $<

depend dep:
	@echo Generating dependencies...
	$(CPP) -M $(CPPFLAGS) $(INCDIR) *.c >Makefile.depend

edclean:
	-rm *.bak *~

clean: edclean
	-rm -f $(OBJS) core
	-rm -f Makefile.depend

nuke: clean
	-rm -f driver

##############################################################################

handin:
	cp mxm.c $(ASSTDIR)/handin/$(NAME)-mxm-$(VERSION).c
	cp mxm_through.c $(ASSTDIR)/handin/$(NAME)-mxm_through-$(VERSION).c

submit:
	cp mxm.c $(ASSTDIR)/web/submit/$(NAME)-mxm.c
	cp mxm_through.c $(ASSTDIR)/web/submit/$(NAME)-mxm_through.c
