#####################################################################
#
#  Name ...................................... bigint_matrix makefile 
#
#  Architecture : sparc7, sparc8, mips, linux, os2
#  Compiler     : gcc, g++ 
#  Flags        : -g -O2
#  Program Flags: -DDEBUG, -DMEMORY, -DERRIGN 
#  Author       : Papanikolaou Thomas & Stefan Neis
#  Release      : 1.0 
#  Last Change  : Wed May 3 16:09:08 MET DST 1995
#  Copyright    : by the University of Saarland, 1995
#

#
# include the configuration file
#

include ../../../config/CONFIG

#
#
#

CPPOBJ = bm_base.o bm_arith.o bm_linalg1.o bm_linalg2.o

OBJ=$(CPPOBJ) 

#
# Rules
#

# On many machines g++ doesn't optimize correctly (e.g.on Sparc).
# Therefore we suppress optimization by cancelling CPPFLAGS.
# On some machines, like the alpha with 64 bit longs, g++ must use
# optimization! In this case comment out the following line.
# Moreover on some machines optimization is not necessary but
# possible (e.g. on Intel386/486/pentium). In this case you may
# comment out the following line to get better code:

CPPFLAGS= 

# That's all you need to change!

.c.o:
	$(CPP) -c $(CPPFLAGS) -I$(LIDIA_INC) $<

all:	$(libp)LiDIA.a 

appl:	bigint_matrix_appl$(EXE)

#
# Dependencies
# 
bm_base.o:	$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigint_matrix.h
bm_arith.o:	$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigint_matrix.h
bm_linalg2.o: $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigint_matrix.h

#
# One special rule:
#

bm_linalg1.o: bm_linalg1.c $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigint_matrix.h
	$(CPP) -c $(CPPFLAGS) -I$(LIDIA_INC) -DLIDIA_PRIMELIST_NAME=\"$(LIDIA_INSTALL_PRIMES)/LIDIA_PRIMES\" bm_linalg1.c

$(libp)LiDIA.a:         $(OBJ) 
	$(AR) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a $(OBJ) 
	$(RANLIB) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a

bm_linalg3.o: bm_linalg1.c $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigint_matrix.h
	-$(LN) bm_linalg1.c bm_linalg3.c
	$(CPP) -c $(CPPFLAGS) -I$(LIDIA_INC) -DLIDIA_PRIMELIST_NAME=\"$(LIDIA_PRIMES)/LIDIA_PRIMES\" bm_linalg3.c

bigint_matrix_appl$(EXE): bigint_matrix_appl.c bm_linalg3.o
	$(CPP) $(CPPFLAGS) bigint_matrix_appl.c $(CPP-off) bm_linalg3.o -I$(LIDIA_INC) -L$(LIDIA_LIB) -o bigint_matrix_appl$(EXE) $(LIB)
	-$(MV) bigint_matrix_appl$(EXE) $(LIDIA_BIN)
	-$(LN) $(LIDIA_HOME)$(DIRSEP)src$(DIRSEP)simple_classes$(DIRSEP)bigint_matrix$(DIRSEP)bigint_matrix_appl.1 $(LIDIA_BIN)$(DIRSEP)bigint_matrix_appl.1
	-$(LN) $(LIDIA_HOME)$(DIRSEP)src$(DIRSEP)simple_classes$(DIRSEP)bigint_matrix$(DIRSEP)bigint_matrix_appl.2 $(LIDIA_BIN)$(DIRSEP)bigint_matrix_appl.2
	-$(LN) $(LIDIA_HOME)$(DIRSEP)src$(DIRSEP)simple_classes$(DIRSEP)bigint_matrix$(DIRSEP)bigint_matrix_appl.3 $(LIDIA_BIN)$(DIRSEP)bigint_matrix_appl.3
	-$(LN) $(LIDIA_HOME)$(DIRSEP)src$(DIRSEP)simple_classes$(DIRSEP)bigint_matrix$(DIRSEP)bigint_matrix_appl.dat $(LIDIA_BIN)$(DIRSEP)bigint_matrix_appl.dat
	-$(RM) bm_linalg3.c

#
# Clean
#

clean:
	-$(RM) *.o *.o2 

veryclean:	clean 
	-$(RM) bigint_matrix_appl$(EXE) 

#
# end of makefile
#
