# Compiler/linker setup ------------------------------------------------------

# Mac OS X-specific flags.  Comment these out if using Linux.
#PLATFORM = osx
#CC       = gcc
#CFLAGS   = -fast -Wall
#OSLIBS   = -Wl,-framework -Wl,IOKit
#LDFLAGS  =

# Linux-specific flags.  Comment these out if using Mac OS X.
PLATFORM = linux
CC       = gcc
CFLAGS   = -O3 -Wall # can't include -lpthread here.. find out why
OSLIBS   =
LDFLAGS  =

# make all: all OBJS are compiled and executable available
# make <individual>
# make clean
# TODO: find out why -lpthread does not work when put into CFLAGS
# Example programs -----------------------------------------------------------

OBJS = matrix_mult matrix_mult_pthreads matrix_mult_pthreads_old
all: $(OBJS)

matrix_mult: matrix_mult.c mat_fun.o
	$(CC) $(CFLAGS) -o matrix_mult matrix_mult.c mat_fun.o

matrix_mult_pthreads: matrix_mult_pthreads.c mat_fun.o
	$(CC) $(CFLAGS) -o matrix_mult_pthreads matrix_mult_pthreads.c mat_fun.o -lpthread

matrix_mult_pthreads_old: matrix_mult_pthreads_old.c
	$(CC) $(CFLAGS) -o matrix_mult_pthreads_old matrix_mult_pthreads_old.c -lpthread

# library
mat_fun.o: mat_fun.c mat_fun.h
	$(CC) $(CFLAGS) -c mat_fun.c # -o mat_fun.o --> this seems implied here when
                                  #                   using 'func.o' as label

# Maintenance and stuff ------------------------------------------------------
clean:
	rm -f $(OBJS) *.o core


