######################################################################
#
#  Name .................... LiDIA/src/simple_classes/lattice/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  : Mon Apr 11 16:09:08 MET DST 1994 
#  Copyright    : by the University of Saarland, 1994 
#

#
# include the configuration file
#

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

include ./makefile.inst

#
# Objects
#

OBJ=bil_base.o bil_alg1.o bil_alg2.o bil_alg3.o bfl_base.o bfl_alg1.o\
	bi_gsys_base.o bi_gsys_alg1.o bi_gsys_alg2.o \
	bi_gsys_alg3.o bi_basis.o bf_gsys_base.o \
	bf_gsys_alg1.o bf_gsys_alg2.o bf_basis.o \
	lattice_gensys.o lattice_basis.o

#
# Rules
#
c++:	$(OBJ) $(CXXOBJ)
	-$(AR) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a $(objp)*.o

g++:	$(OBJ) $(CXXOBJ)
	-$(AR) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a $(objp)*.o

CC:	$(OBJ) $(objp)p_vector.o $(objp)lattice_kernel.o $(objp)lattice_modules.o
	-$(AR) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a $(objp)*.o

appl:
	$(MAKE) $(CXXNAME)_appl

c++_appl:	lattice_appl$(EXE)
g++_appl:	lattice_appl$(EXE)

CC_appl:	lattice_appl$(EXE)


#
# Dependencies
#
bfl_base.o:		$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigfloat_lattice.h
bfl_alg1.o:		$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigfloat_lattice.h
bil_base.o:		$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigint_lattice.h
bil_alg1.o:		$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigint_lattice.h
bil_alg2.o:		$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bigint_lattice.h

bf_gsys_base.o:         $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bf_lattice_gensys.h
bf_gsys_alg1.o:         $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bf_lattice_gensys.h
bf_gsys_alg2.o:         $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bf_lattice_gensys.h
bf_basis.o:             $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bf_lattice_basis.h
bi_gsys_base.o:         $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bi_lattice_gensys.h
bi_gsys_alg1.o:         $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bi_lattice_gensys.h
bi_gsys_alg2.o:         $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bi_lattice_gensys.h
bi_gsys_alg3.o:         $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bi_lattice_gensys.h
bi_basis.o:             $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)bi_lattice_basis.h
lattice_gensys.o:       $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)lattice_gensys.h
lattice_basis.o:        $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)lattice_basis.h      

$(objp)p_vector.o:	$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)p_vector.h \
			$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)p_vector.c
	$(CXX)  -c $(CXXFLAGS) -I$(LIDIA_INC) $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)p_vector.c -o $(objp)p_vector.o
	$(NOOMV) p_vector.o $(objp)p_vector.o

$(objp)lattice_kernel.o:	$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)lattice_kernel.h \
			$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)lattice_kernel.c
	$(CXX)  -c $(CXXFLAGS) -I$(LIDIA_INC) $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)lattice_kernel.c -o $(objp)lattice_kernel.o
	$(NOOMV) lattice_kernel.o $(objp)lattice_kernel.o

$(objp)lattice_modules.o:	$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)lattice_modules.h \
			$(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)lattice_modules.c
	$(CXX)  -c $(CXXFLAGS) -I$(LIDIA_INC) $(LIDIA_INC)$(DIRSEP)LiDIA$(DIRSEP)lattice_modules.c -o $(objp)lattice_modules.o
	$(NOOMV) lattice_modules.o $(objp)lattice_modules.o




$(libp)LiDIA.a:         $(OBJ) 
	-$(AR) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a $(objp)*.o

ranlib:
	$(RANLIB) $(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a

lattice_appl$(EXE):		$(OBJ) lattice_appl.c 
	$(CXX) $(CXXFLAGS) lattice_appl.c $(CXX-off) -I$(LIDIA_INC) \
	$(LIDIA_LIB)$(DIRSEP)$(libp)LiDIA.a -o lattice_appl$(EXE) $(LIB)
	-$(MV) lattice_appl$(EXE) $(LIDIA_BIN)

#
# Clean
#

clean:
	-$(RM) *.o 
	-$(RMR) ptrepository 

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

#
# End Of Makefile
#
