# Makefile for Libraries for QCD programs
#
# No communications here, so good for SP (parallel) as well as workstations

# RS6000 specialization:
#   Some SU(3) operations assembly coded.  See files with suffix .rs6k.
#    so far, assembly code does not use any architecture specific commands
#  DO NOT USE WITH DOUBLE PRECISION VERSION!! (Until we have double
#     precision assembly code)

MAKEFILE = Make_RS6K

# See Make_vanilla for a generic processor
# See Make_t3e for the Cray T3E assembly code
# See Make_alpha for  DEC alpha assembly code

#   Architecture and cc flags
#ARCH= pwrx   # For POWER2
#ARCH= ppc    # For POWERPC
ARCH=pwr3

#CARCH= -qarch=${ARCH} -qtune=${ARCH}  # Use this one if you defined ARCH above
CARCH= # Otherwise, use this one

#CFLAGS=-O3 ${CARCH} -DFAST   #RS6000 generic
CFLAGS = -O3 -Q=500 -qmaxmem=-1 ${CARCH} -DFAST -DNATIVEDOUBLE # Blue Horizon

CC = xlc  #IBM ANSI

# Add suffix for assembly code
.SUFFIXES:
.SUFFIXES: .1o .rs6k .c .y .l .s

# compile IBM RS6000 Assembler code from .rs6k file
.rs6k.1o:
	as -o $*.1o $*.rs6k

grow4wvecs.1o: grow4wvecs.rs6k
m_amat_hwvec.1o: m_amat_hwvec.rs6k
m_amat_wvec.1o: m_amat_wvec.rs6k
m_amatvec.1o: m_amatvec.rs6k
m_amv_4dir.1o: m_amv_4dir.rs6k
m_mat_an.1o: m_mat_an.rs6k
m_mat_hwvec.1o: m_mat_hwvec.rs6k
m_mat_na.1o: m_mat_na.rs6k
m_mat_nn.1o: m_mat_nn.rs6k
m_mat_wvec.1o: m_mat_wvec.rs6k
m_matvec.1o: m_matvec.rs6k
m_matvec_s.1o: m_matvec_s.rs6k
m_mv_s_4dir.1o: m_mv_s_4dir.rs6k
wp_shrink4.1o: wp_shrink4.rs6k
prefetch.1o: prefetch.rs6k


include Make_template
