# Makefile for Numerical libary by Michael Riedl
# ==============================================
# Choose target IO System
IOSYS=MRI
# IOSYS=ISOIO
# Choose target Compilter
COMPILER=XDS
# COMPILER=GM2
ENDIAN=LITTLEENDIAN
# ENDIAN=BIGENDIAN
#................................................................................
BLASLIB = BLAS
# BLASLIB = BLASF77
# LinPack also has "inline" option
BLASLIBin = BLAS
# BLASLIBin = BLASF77
# BLASLIBin = inline
M2PP = ../../Werkzeuge/m2pp # -b
ifeq ($(COMPILER),GM2)
#*********************
OPTIONS= -fiso -flibs=iso \
-I /usr/local/gm2/lib/gcc/x86_64-pc-linux-gnu/6.4.0/m2/iso \
-I /usr/local/gm2/lib/gcc/x86_64-pc-linux-gnu/6.4.0/m2/pim \
-I /home/mriedl/Modula-2/InOut/quellen.iso \
-L /usr/local/gm2/libs \
-O0 -g
OPTIONS= -fiso -flibs=iso \
-I /usr/local/gm2/lib/gcc/i586-linux-gnu/4.7.4/m2/iso \
-I /usr/local/gm2/lib/gcc/i586-linux-gnu/4.7.4/m2/pim \
-I /home/mriedl/Modula-2/InOut/quellen.iso \
-L /usr/local/gm2/libs \
-O0 -g
LIBS = -lgm2 -liso
M2C= gm2 -c $(OPTIONS)
M2L= gm2 -fonlylink -I. $(OPTIONS) $(LIBS)
NUMLIB = libnumM2.gm2.a
all : mkall $(NUMLIB)
else
#***
OPTIONS=
LIBS =
M2C= xc =m
M2L= xc =p
NUMLIB = libnumM2.xds.a
all : mkall $(NUMLIB)
endif
#****
#........................................................................
OBJ = BaseLib.o ApproxLib.o LibDBlas.o LibDBlasM2.o \
LibDBlasF77.o LibDBlasL3F77.o F77func.o Differ.o DynMat.o \
LinPack.o EigenLib1.o \
EigenLibAux.o EigenLib2.o EigenLib3.o Fourier.o SortLib.o \
Integral.o LinLib.o SVDLib1.o IEEE.o LMathLib.o LngCmplxMath.o \
CmplxMath.o MatLib.o PMatLib.o RandomLib.o \
SpezFunkt1.o SpezFunkt2.o SpezFunkt3.o SpezFunkt4.o \
OptimLib1.o StatLib.o NumAlLib1.o SMatEA.o FMatEA.o
ifeq ($(COMPILER),GM2)
#*********************
mkall: mkall.o $(OBJ) \
BaseLib.def ApproxLib.def \
LibDBlas.def LibDBlasM2.def LibDBlasF77.def LibDBlasL1F77.def \
LibDBlasLxF77.def LibDBlasL3F77.def LinPack.def F77func.def \
Differ.def DynMat.def EigenLibAux.def EigenLib1.def \
EigenLib2.def EigenLib3.def Fourier.def SortLib.def \
Integral.def LinLib.def SVDLib1.def IEEE.def LMathLib.def \
LngCmplxMath.def CmplxMath.def MatLib.def PMatLib.def \
RandomLib.def FMatEA.def SMatEA.def SpezFunkt1.def \
SpezFunkt2.def SpezFunkt3.def SpezFunkt4.def \
OptimLib1.def StatLib.def NumAlLib1.def OpenMPF77.def
$(M2L) mkall.mod
else
#***
mkall: mkall.o $(OBJ) \
BaseLib.def ApproxLib.def \
LibDBlas.def LibDBlasM2.def LibDBlasF77.def LibDBlasL1F77.def \
LibDBlasLxF77.def LibDBlasL3F77.def LinPack.def F77func.def \
Differ.def DynMat.def EigenLibAux.def EigenLib1.def \
EigenLib2.def EigenLib3.def Fourier.def SortLib.def \
Integral.def LinLib.def SVDLib1.def IEEE.def LMathLib.def \
LngCmplxMath.def CmplxMath.def MatLib.def PMatLib.def \
RandomLib.def FMatEA.def SMatEA.def SpezFunkt1.def \
SpezFunkt2.def SpezFunkt3.def SpezFunkt4.def \
OptimLib1.def StatLib.def NumAlLib1.def OpenMPF77.def
$(M2L) mkall
endif
#****
mkall.o: mkall.mod BaseLib.def ApproxLib.def LibDBlas.def \
LibDBlasM2.def LibDBlasF77.def LibDBlasL1F77.def \
LibDBlasLxF77.def LibDBlasL3F77.def LinPack.def F77func.def \
Differ.def DynMat.def EigenLibAux.def EigenLib1.def \
EigenLib2.def EigenLib3.def Fourier.def SortLib.def \
Integral.def LinLib.def SVDLib1.def IEEE.def LMathLib.def \
LngCmplxMath.def CmplxMath.def MatLib.def PMatLib.def \
RandomLib.def FMatEA.def SMatEA.def SpezFunkt1.def \
SpezFunkt2.def SpezFunkt3.def SpezFunkt4.def \
OptimLib1.def StatLib.def NumAlLib1.def OpenMPF77.def
$(M2C) mkall.mod
mkall.mod: BaseLib.def ApproxLib.def LibDBlas.def LibDBlasM2.def \
LibDBlasF77.def LibDBlasL1F77.def LibDBlasLxF77.def \
LibDBlasL3F77.def LinPack.def F77func.def Differ.def \
DynMat.def EigenLibAux.def EigenLib1.def EigenLib2.def \
EigenLib3.def Fourier.def SortLib.def Integral.def LinLib.def \
SVDLib1.def IEEE.def LMathLib.def LngCmplxMath.def CmplxMath.def \
MatLib.def PMatLib.def RandomLib.def FMatEA.def SMatEA.def \
SpezFunkt1.def SpezFunkt2.def SpezFunkt3.def \
SpezFunkt4.def OptimLib1.def StatLib.def NumAlLib1.def OpenMPF77.def
#..............................................................................
ifeq ($(COMPILER),XDS)
#*********************
mkall.o : .sym/LibDBlasL1F77.sym
.sym/LibDBlasL1F77.sym : LibDBlasL1F77.def
$(M2C) LibDBlasL1F77.def
mkall.o : .sym/LibDBlasL3F77.sym
.sym/LibDBlasL3F77.sym : LibDBlasL3F77.def
$(M2C) LibDBlasL3F77.def
mkall.o : .sym/LibDBlasF77.sym
.sym/LibDBlasF77.sym : LibDBlasF77.def
$(M2C) LibDBlasF77.def
mkall.o : .sym/LibDBlasLxF77.sym
.sym/LibDBlasLxF77.sym : LibDBlasLxF77.def
$(M2C) LibDBlasLxF77.def
mkall.o : .sym/OpenMPF77.sym
.sym/OpenMPF77.sym : OpenMPF77.def
$(M2C) OpenMPF77.def
endif
#****
#..............................................................................
BaseLib.o: BaseLib.def BaseLib.mod
$(M2C) BaseLib.mod
BaseLib.mod: BaseLib.def
ApproxLib.o: ApproxLib.def ApproxLib.mod
$(M2C) ApproxLib.mod
ApproxLib.mod: ApproxLib.def
LibDBlas.o: LibDBlas.def LibDBlas.mod
$(M2C) LibDBlas.mod
LibDBlas.mod: LibDBlas.def
LibDBlasM2.o: LibDBlasM2.def LibDBlasM2.mod
$(M2C) LibDBlasM2.mod
LibDBlasM2.mod: LibDBlasM2.def
LibDBlasF77.o: LibDBlasF77.def LibDBlasF77.mod
$(M2C) LibDBlasF77.mod
LibDBlasF77.mod: LibDBlasF77.def
LibDBlasL3F77.o: LibDBlasL3F77.def LibDBlasL3F77.mod
$(M2C) LibDBlasL3F77.mod
LibDBlasL3F77.mod: LibDBlasL3F77.def
LinPack.o: LinPack.def LinPack.mod
$(M2C) LinPack.mod
F77func.o: F77func.def F77func.mod
$(M2C) F77func.mod
F77func.mod: F77func.def
Differ.o: Differ.def Differ.mod
$(M2C) Differ.mod
Differ.mod: Differ.def
DynMat.o: DynMat.def DynMat.mod
$(M2C) DynMat.mod
DynMat.mod: DynMat.def
EigenLibAux.o: EigenLibAux.def EigenLibAux.mod
$(M2C) EigenLibAux.mod
EigenLibAux.mod: EigenLibAux.def
EigenLib1.o: EigenLib1.def EigenLib1.mod
$(M2C) EigenLib1.mod
EigenLib2.o: EigenLib2.def EigenLib2.mod
$(M2C) EigenLib2.mod
EigenLib2.mod: EigenLib2.def
EigenLib3.o: EigenLib3.def EigenLib3.mod
$(M2C) EigenLib3.mod
EigenLib3.mod: EigenLib3.def
Fourier.o: Fourier.def Fourier.mod
$(M2C) Fourier.mod
Fourier.mod: Fourier.def
SortLib.o: SortLib.def SortLib.mod
$(M2C) SortLib.mod
SortLib.mod: SortLib.def
Integral.o: Integral.def Integral.mod
$(M2C) Integral.mod
Integral.mod: Integral.def
LinLib.o: LinLib.def LinLib.mod
$(M2C) LinLib.mod
LinLib.mod: LinLib.def
SVDLib1.o: SVDLib1.def SVDLib1.mod
$(M2C) SVDLib1.mod
SVDLib1.mod: SVDLib1.def
IEEE.o: IEEE.def IEEE.mod
$(M2C) IEEE.mod
IEEE.mod: IEEE.def
LMathLib.o: LMathLib.def LMathLib.mod
$(M2C) LMathLib.mod
LMathLib.mod: LMathLib.def
LngCmplxMath.o: LngCmplxMath.def LngCmplxMath.mod
$(M2C) LngCmplxMath.mod
LngCmplxMath.mod: LngCmplxMath.def
CmplxMath.o: CmplxMath.def CmplxMath.mod
$(M2C) CmplxMath.mod
CmplxMath.mod: CmplxMath.def
MatLib.o: MatLib.def MatLib.mod
$(M2C) MatLib.mod
MatLib.mod: MatLib.def
PMatLib.o: PMatLib.def PMatLib.mod
$(M2C) PMatLib.mod
PMatLib.mod: PMatLib.def
RandomLib.o: RandomLib.def RandomLib.mod
$(M2C) RandomLib.mod
RandomLib.mod: RandomLib.def
FMatEA.o: FMatEA.def FMatEA.mod
$(M2C) FMatEA.mod
FMatEA.mod: FMatEA.def
SMatEA.o: SMatEA.def SMatEA.mod
$(M2C) SMatEA.mod
SpezFunkt1.o: SpezFunkt1.def SpezFunkt1.mod
$(M2C) SpezFunkt1.mod
SpezFunkt1.mod: SpezFunkt1.def
SpezFunkt2.o: SpezFunkt2.def SpezFunkt2.mod
$(M2C) SpezFunkt2.mod
SpezFunkt2.mod: SpezFunkt2.def
SpezFunkt3.o: SpezFunkt3.def SpezFunkt3.mod
$(M2C) SpezFunkt3.mod
SpezFunkt3.mod: SpezFunkt3.def
SpezFunkt4.o: SpezFunkt4.def SpezFunkt4.mod
$(M2C) SpezFunkt4.mod
SpezFunkt4.mod: SpezFunkt4.def
OptimLib1.o: OptimLib1.def OptimLib1.mod
$(M2C) OptimLib1.mod
OptimLib1.mod: OptimLib1.def
StatLib.o: StatLib.def StatLib.mod
$(M2C) StatLib.mod
StatLib.mod: StatLib.def
NumAlLib1.o: NumAlLib1.def NumAlLib1.mod
$(M2C) NumAlLib1.mod
NumAlLib1.mod: NumAlLib1.def
#..............................................................................
# EigenLib1.mod : EigenLib1.mod.m2pp
# $(M2PP) -D __$(COMPILER)__ -D __$(BLASLIB)__ < EigenLib1.mod.m2pp \
# > EigenLib1.mod
IEEE.def : IEEE.def.m2pp
$(M2PP) -D __$(COMPILER)__ -D __$(ENDIAN)__ < IEEE.def.m2pp > IEEE.def
EigenLib1.mod : EigenLib1.mod.m2pp
$(M2PP) -D __$(COMPILER)__ -D __$(BLASLIB)__ -D __DEBUG__ < EigenLib1.mod.m2pp > EigenLib1.mod
Integral.mod : Integral.mod.m2pp
$(M2PP) -D __$(COMPILER)__ < Integral.mod.m2pp > Integral.mod
# Integral.mod : Integral.mod.m2pp
# $(M2PP) -D __$(COMPILER)__ -D __DEBUG__ < Integral.mod.m2pp > Integral.mod
MatLib.mod : MatLib.mod.m2pp
$(M2PP) -D __$(COMPILER)__ -D __$(BLASLIB)__ < MatLib.mod.m2pp > MatLib.mod
RandomLib.mod : RandomLib.mod.m2pp
$(M2PP) -D __$(COMPILER)__ < RandomLib.mod.m2pp > RandomLib.mod
SpezFunkt2.mod : SpezFunkt2.mod.m2pp
$(M2PP) -D __$(COMPILER)__ < SpezFunkt2.mod.m2pp > SpezFunkt2.mod
StatLib.mod : StatLib.mod.m2pp
$(M2PP) -D __$(COMPILER)__ < StatLib.mod.m2pp > StatLib.mod
OpenMPF77.def : OpenMPF77.def.m2pp
$(M2PP) -D __$(COMPILER)__ < OpenMPF77.def.m2pp > OpenMPF77.def
LibDBlasL1F77.def : LibDBlasL1F77.def.m2pp
$(M2PP) -D __$(COMPILER)__ < LibDBlasL1F77.def.m2pp > LibDBlasL1F77.def
LibDBlasLxF77.def : LibDBlasLxF77.def.m2pp
$(M2PP) -D __$(COMPILER)__ < LibDBlasLxF77.def.m2pp > LibDBlasLxF77.def
LinPack.mod : LinPack.mod.m2pp
$(M2PP) -D __$(BLASLIBin)__ < LinPack.mod.m2pp > LinPack.mod
SMatEA.mod : SMatEA.mod.m2pp
$(M2PP) -D __$(IOSYS)__ < SMatEA.mod.m2pp > SMatEA.mod
#..............................................................................
$(NUMLIB) : $(OBJ)
ar -r $(NUMLIB) $(OBJ)
ranlib $(NUMLIB)
#..............................................................................
clean: force
$(RM) mkall.o BaseLib.o ApproxLib.o LibDBlas.o LibDBlasM2.o \
LibDBlasF77.o LibDBlasL3F77.o F77func.o Differ.o DynMat.o \
EigenLibAux.o EigenLib2.o EigenLib3.o Fourier.o SortLib.o \
Integral.o LinLib.o SVDLib1.o IEEE.o LMathLib.o LngCmplxMath.o \
CmplxMath.o MatLib.o PMatLib.o RandomLib.o FMatEA.o \
SpezFunkt1.o SpezFunkt2.o SpezFunkt2b.o SpezFunkt3.o SpezFunkt4.o \
OptimLib1.o StatLib.o NumAlLib1.o \
LibDBlasL1F77.def LibDBlasLxF77.def OpenMPF77.def \
EigenLib1.mod Integral.mod LinPack.mod MatLib.mod \
RandomLib.mod SMatEA.mod SpezFunkt2.mod StatLib.mod
force: