# Compilateur et linker
FC         = f90
FLD        = $(FC)

CC         = cc
CLD        = $(CC)

RM         = /sbin/rm -f

# Options liees a l'architecture
MP         =
ABI        = -n32
ISA        = -r10000 -mips4
PROC       = ip27
ARCH       = $(MP) $(ABI) $(ISA)

# Options compilateurs C
COLEV      = -O3
CODEB      = -O0

CDEB       = -g3 -DEBUG:subscript_check=ON:trap_uninitialized=ON:div_check=3:verbose_runtime=ON
COPT       = -OPT:IEEE_arithmetic=1:roundoff=0 -fullwarn
CFLAGS     = $(ARCH) $(COLEV) $(COPT)

# Options compilateur Fortran
FOLEV      = -O3
FODEB      = -O0 -g3 -DEBUG:subscript_check=ON:trap_uninitialized=ON:div_check=3:verbose_runtime=ON

FDEB       = -g3 -DEBUG:subscript_check=ON:trap_uninitialized=ON:div_check=3:verbose_runtime=ON
FOPT       = -OPT:IEEE_arithmetic=1:roundoff=0 -fullwarn
FFLAGS     = $(ARCH) $(FOLEV) $(FOPT)


# Librairies C
CLIBS       = -lmalloc -lfastm -lscs -lm -lmx -lfpe
CLDFLAGS    = $(ARCH) $(COLEV)

# Librairies Fortran
FLIBS       = -lfastm -lscs -lm -lmx -lfpe
FLDFLAGS    = $(ARCH) $(FOLEV)

PROF       =

# Includes C
CHDRS      = \
		ccdim.h \
		ccscal.h

# objects
COBJS       = \
		prod_cbls.o

# sources C
CSRCS       = \
		prod_cbls.c

# objects Fortran
FOBJS       = \
		modscal.o \
		prod_fbls.o

# sources Fortran
FSRCS       = \
		modscal.f90 \
		prod_fbls.f

# compilation
.c.o:
	$(CC) $(CFLAGS) $< -c

# compilation Fortran
.f90.o:
	$(FC) $(FFLAGS) $< -c

# link C
EXECC = prod_cbls.exe
cbls:	$(COBJS)
	$(CLD) $(CLDFLAGS) $(COBJS) $(CLIBS) -o $(EXECC)
	$(RM) $(COBJS)

# link Fortran
EXECF = prod_fbls.exe
fbls:	$(FOBJS)
	$(FLD) $(FLDFLAGS) $(FOBJS) $(FLIBS) -o $(EXECF)
	$(RM) $(FOBJS)

# nettoyage
clean:
	$(RM) $(COBJS) $(FOBJS) $(EXECC) $(EXECF)

###
modscal.o: modscal.f90
prod_fbls.o: prod_fbls.f modscal.o
prod_cbls.o: prod_cbls.c ccdim.h ccscal.h
