CC = gcc
HASWELL_CFLAGS = -O3 -Wall -g -march=haswell
CFLAGS = -O2 -Wall -g
LFLAGS = -lpapi -ljpeg -lm

all:   sobel_serial sobel_haswell sobel_simd sobel_extra

###

sobel_serial:	sobel_serial.o jpeg_routines.o
		$(CC) -o sobel_serial sobel_serial.o jpeg_routines.o $(LFLAGS)

sobel_serial.o:	sobel_serial.c
		$(CC) $(CFLAGS) -c sobel_serial.c
###

sobel_haswell:	sobel_haswell.o jpeg_routines.o
		$(CC) -o sobel_haswell sobel_haswell.o jpeg_routines.o $(LFLAGS)

sobel_haswell.o:	sobel_haswell.c
		$(CC) $(HASWELL_CFLAGS) -c sobel_haswell.c

###

sobel_simd:	sobel_simd.o jpeg_routines.o
		$(CC) -o sobel_simd sobel_simd.o jpeg_routines.o $(LFLAGS)

sobel_simd.o:	sobel_simd.c
		$(CC) $(CFLAGS) -march=haswell -c sobel_simd.c

###

sobel_extra:	sobel_extra.o jpeg_routines.o
		$(CC) -o sobel_extra sobel_extra.o jpeg_routines.o $(LFLAGS)

sobel_extra.o:	sobel_extra.c
		$(CC) $(CFLAGS) -march=haswell -c sobel_extra.c


###

jpeg_routines.o:	jpeg_routines.c
		$(CC) $(CFLAGS) -c jpeg_routines.c

###

clean:
	       rm -f *~ *.o sobel_serial sobel_haswell sobel_simd sobel_extra


submit:	
	tar -czvf hw04_submit.tar.gz Makefile README *.c *.h
