# 
# ------ MAKEFILE FILE FOR Linux FREALIGN -----------F77
# 
# Using: gnu compiler
#
# Thanks to: Shixin Yang & Dr Edward Egelman at University of Virginia
#    for providing this file
#
# Notes:  To create executable: make
#

SHELL  = /bin/sh

FFLAGS = -O3 -s -fomit-frame-pointer -Wall -falign-functions=4 \
	 -funroll-loops -fexpensive-optimizations -fschedule-insns2 \
	 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
	  -c 

CFLAGS = -O3 -DPROTOTYPE -D_FILE_OFFSET_BITS=64 \
	 -D_LARGEFILE_SOURCE  -c
	 
CUFLAGS = -O3  -lg2c -lcufft -DPROTOTYPE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE

COMP   = g77

CUDA   = nvcc -arch sm_13 -lpthread --compiler-bindir /usr/bin/gcc34 

CC     = gcc34

PGM    = frealign_v8

LIB    = $(PGM).a

.PRECIOUS :  $(PGM) $(LIB) 

.SUFFIXES: .cu

include Makefile.inc

$(PGM) : $(PGM).cu $(LIB) 
	@echo linking $(PGM)
	$(CUDA) $(CUFLAGS) $(PGM).cu $(LIB) -o ../bin/$(PGM).exe_rec 

ioc.o : ioc.c
	$(CC) $(CFLAGS) -o ioc.o ioc.c
	$(AR) r $(LIB) ioc.o
	@\rm ioc.o

$(LIB) : ioc.o $(ELEMENTS)
	@echo all object files placed in library

.cu.a:
	$(CUDA) $(CUFLAGS) -c $< 
	$(AR) r $(LIB) $*.o
	@\rm $*.o
	
.f.a:
	$(COMP) $(FFLAGS) $<
	$(AR) r $(LIB) $*.o
	@\rm $*.o
	
clean:
	rm -rf frealign_v8.a
