# ==========================================
# Makefile for InOut Libary by Michael Riedl
IOSYS=MRI
# IOSYS=ISOIO
# COMPILER=XDS
COMPILER=GM2
CC = gcc
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 \
-L /usr/local/gm2/libs \
-O0 -g
OPTIONS= -fiso -flibs=iso \
-I /usr/local/gm2/lib/gcc/i686-pc-linux-gnu/6.4.0/m2/iso \
-I /usr/local/gm2/lib/gcc/i686-pc-linux-gnu/6.4.0/m2/pim \
-L /usr/local/gm2/libs \
-O0 -g
LIBS = -lgm2 -liso
M2C= gm2 -c $(OPTIONS)
M2L= gm2 -fonlylink -I. $(OPTIONS) $(LIBS) -v
LibInOut = libInOut.gm2.a
else
#***
OPTIONS=
LIBS =
M2C= xc =m
M2L= xc =p
LibInOut = libInOut.xds.a
endif
#****
all : mkall m2cc $(LibInOut) mkall
#........................................................................
OBJ = ASCII.o Deklera.o Errors.o TestReal.o \
NumConvert.o RealConvert.o ArgAccess.o StringsLib.o SigTerm.o \
Timer.o UserLib.o CommonIO.o FileSystem.o Streams.o \
InOut.o TFormAus.o FFormAus.o SFormAus.o SFormEin.o \
FormAusLib.o TIO.o FIO2.o SIO.o AsciiTime.o \
fslength.o
ifeq ($(COMPILER),GM2)
#*********************
mkall: mkall.o $(OBJ) \
ArgAccess.def ASCII.def AsciiTime.def \
CommonIO.def Deklera.def Errors.def FileSystem.def FIO2.def \
InOut.def NumConvert.def RealConvert.def FormAusLib.def \
TFormAus.def FFormAus.def SFormAus.def SFormEin.def \
SigTerm.def SIO.def Streams.def StringsLib.def TestReal.def \
Timer.def TIO.def UserLib.def Signals.def UnixLib.def \
fslength.def $(LibInOut) m2cc
$(M2L) mkall.mod $(LibInOut) -o mkall
endif
#****
ifeq ($(COMPILER),XDS)
#*********************
mkall: mkall.o $(OBJ) \
ArgAccess.def ASCII.def AsciiTime.def \
CommonIO.def Deklera.def Errors.def FileSystem.def FIO2.def \
InOut.def NumConvert.def RealConvert.def FormAusLib.def \
TFormAus.def FFormAus.def SFormAus.def SFormEin.def \
SigTerm.def SIO.def Streams.def StringsLib.def TestReal.def \
Timer.def TIO.def UserLib.def Signals.def UnixLib.def \
fslength.def $(OBJ) $(LibInOut) m2cc
$(M2L) mkall $(LibInOut)
endif
#****
mkall.o: mkall.mod ArgAccess.def ASCII.def AsciiTime.def CommonIO.def \
Deklera.def Errors.def FileSystem.def FIO2.def InOut.def \
NumConvert.def RealConvert.def FormAusLib.def TFormAus.def \
FFormAus.def SFormAus.def SFormEin.def SigTerm.def SIO.def \
Streams.def StringsLib.def TestReal.def Timer.def TIO.def \
UserLib.def Signals.def UnixLib.def fslength.def
$(M2C) mkall.mod
mkall.mod: ArgAccess.def ASCII.def AsciiTime.def CommonIO.def \
Deklera.def Errors.def FileSystem.def FIO2.def InOut.def \
NumConvert.def RealConvert.def FormAusLib.def TFormAus.def \
FFormAus.def SFormAus.def SFormEin.def SigTerm.def SIO.def \
Streams.def StringsLib.def TestReal.def Timer.def TIO.def \
UserLib.def Signals.def UnixLib.def fslength.def
# ==================================================================
M2CC = ./m2cc
CP = cp
# ==================================================================
#
# Create the files for either ISO based IO of Michael Riedls Library
# ==================================================================
FileSystem.def : FileSystem.def.m2cc m2cc
$(M2CC) -D __$(IOSYS)__ < FileSystem.def.m2cc > FileSystem.def
Streams.def : Streams.def.m2cc m2cc
$(M2CC) -D __$(IOSYS)__ < Streams.def.m2cc > Streams.def
ifeq ($(IOSYS),ISOIO)
#**************************
FileSystem.mod : FileSystem.ISO.mi
$(CP) FileSystem.ISO.mi FileSystem.mod
Streams.mod : Streams.ISO.mi
$(CP) Streams.ISO.mi Streams.mod
else
#***
FileSystem.mod : FileSystem.MRI.mi
$(CP) FileSystem.MRI.mi FileSystem.mod
Streams.mod : Streams.MRI.mi
$(CP) Streams.MRI.mi Streams.mod
endif
#****
SFormEin.mod : SFormEin.mod.m2cc m2cc
$(M2CC) -D __$(IOSYS)__ < SFormEin.mod.m2cc > SFormEin.mod
SIO.mod : SIO.mod.m2cc m2cc m2cc
$(M2CC) -D __$(IOSYS)__ < SIO.mod.m2cc > SIO.mod
Errors.mod : Errors.mod.m2cc m2cc
$(M2CC) -D __$(IOSYS)__ < Errors.mod.m2cc > Errors.mod
# Create the files {F|T|S}FormAus.def
# ===================================
FFormAus.def : XFormAus.def.m2cc m2cc
$(M2CC) -D __FILE__ < XFormAus.def.m2cc > FFormAus.def
FFormAus.mod : XFormAus.mod.m2cc m2cc
$(M2CC) -D __FILE__ < XFormAus.mod.m2cc > FFormAus.mod
TFormAus.def : XFormAus.def.m2cc m2cc
$(M2CC) -D __TERM__ < XFormAus.def.m2cc > TFormAus.def
TFormAus.mod : XFormAus.mod.m2cc m2cc
$(M2CC) -D __TERM__ < XFormAus.mod.m2cc > TFormAus.mod
SFormAus.def : XFormAus.def.m2cc m2cc
$(M2CC) -D __STREAM__ < XFormAus.def.m2cc > SFormAus.def
SFormAus.mod : XFormAus.mod.m2cc m2cc
$(M2CC) -D __STREAM__ < XFormAus.mod.m2cc > SFormAus.mod
# Create the files for UNIX calls
# ===============================
fslength.def : fslength.def.m2cc m2cc
$(M2CC) -D __$(COMPILER)__ < fslength.def.m2cc > fslength.def
Signals.def : Signals.def.m2cc m2cc
$(M2CC) -D __$(COMPILER)__ < Signals.def.m2cc > Signals.def
UnixLib.def : UnixLib.def.m2cc m2cc
$(M2CC) -D __$(COMPILER)__ < UnixLib.def.m2cc > UnixLib.def
CommonIO.def : CommonIO.def.m2cc m2cc
$(M2CC) -D __$(COMPILER)__ < CommonIO.def.m2cc > CommonIO.def
ArgAccess.mod : ArgAccess.mod.m2cc m2cc
$(M2CC) -D __$(COMPILER)__ < ArgAccess.mod.m2cc > ArgAccess.mod
TestReal.mod : TestReal.mod.m2cc m2cc
$(M2CC) -D __$(COMPILER)__ < TestReal.mod.m2cc > TestReal.mod
# =========================================================================
ArgAccess.o: ArgAccess.def ArgAccess.mod
$(M2C) ArgAccess.mod
ArgAccess.mod: ArgAccess.def
ASCII.o: ASCII.def ASCII.mod
$(M2C) ASCII.mod
ASCII.mod: ASCII.def
AsciiTime.o: AsciiTime.def AsciiTime.mod
$(M2C) AsciiTime.mod
AsciiTime.mod: AsciiTime.def
CommonIO.o: CommonIO.def CommonIO.mod
$(M2C) CommonIO.mod
CommonIO.mod: CommonIO.def
Deklera.o: Deklera.def Deklera.mod
$(M2C) Deklera.mod
Deklera.mod: Deklera.def
Errors.o: Errors.def Errors.mod
$(M2C) Errors.mod
Errors.mod: Errors.def
FileSystem.o: FileSystem.def FileSystem.mod
$(M2C) FileSystem.mod
FileSystem.mod: FileSystem.def
FIO2.o: FIO2.def FIO2.mod
$(M2C) FIO2.mod
FIO2.mod: FIO2.def
InOut.o: InOut.def InOut.mod
$(M2C) InOut.mod
InOut.mod: InOut.def
NumConvert.o: NumConvert.def NumConvert.mod
$(M2C) NumConvert.mod
NumConvert.mod: NumConvert.def
RealConvert.o: RealConvert.def RealConvert.mod
$(M2C) RealConvert.mod
RealConvert.mod: RealConvert.def
FormAusLib.o: FormAusLib.def FormAusLib.mod
$(M2C) FormAusLib.mod
FormAusLib.mod: FormAusLib.def
TFormAus.o: TFormAus.def TFormAus.mod
$(M2C) TFormAus.mod
TFormAus.mod: TFormAus.def
FFormAus.o: FFormAus.def FFormAus.mod
$(M2C) FFormAus.mod
FFormAus.mod: FFormAus.def
SFormAus.o: SFormAus.def SFormAus.mod
$(M2C) SFormAus.mod
SFormAus.mod: SFormAus.def
SFormEin.o: SFormEin.def SFormEin.mod
$(M2C) SFormEin.mod
SFormEin.mod: SFormEin.def
SigTerm.o: SigTerm.def SigTerm.mod
$(M2C) SigTerm.mod
SigTerm.mod: SigTerm.def
SIO.o: SIO.def SIO.mod
$(M2C) SIO.mod
SIO.mod: SIO.def
Streams.o: Streams.def Streams.mod
$(M2C) Streams.mod
Streams.mod: Streams.def
StringsLib.o: StringsLib.def StringsLib.mod
$(M2C) StringsLib.mod
StringsLib.mod: StringsLib.def
TestReal.o: TestReal.def TestReal.mod
$(M2C) TestReal.mod
TestReal.mod: TestReal.def
Timer.o: Timer.def Timer.mod
$(M2C) Timer.mod
Timer.mod: Timer.def
TIO.o: TIO.def TIO.mod
$(M2C) TIO.mod
TIO.mod: TIO.def
UserLib.o: UserLib.def UserLib.mod
$(M2C) UserLib.mod
UserLib.mod: UserLib.def
Signals.o: Signals.def
UnixLib.o: UnixLib.def
ifeq ($(COMPILER),XDS)
#**************************
fslength.o: fslength.def fslength.c
$(CC) -c -m32 fslength.c -o fslength.o
else
#***
fslength.o: fslength.def fslength.c
$(CC) -c fslength.c
endif
#****
# Complie simple preprocessor
#............................
m2cc : m2cc.c
$(CC) -o m2cc m2cc.c
# Create library
#...............
$(LibInOut) : $(OBJ)
ar -r $(LibInOut) $(OBJ)
ranlib $(LibInOut)
#.........................................................................
clean:
$(RM) mkall.o ArgAccess.o ASCII.o AsciiTime.o CommonIO.o \
Deklera.o Errors.o FileSystem.o FIO2.o InOut.o NumConvert.o \
RealConvert.o FormAusLib.o TFormAus.o FFormAus.o SFormAus.o \
SFormEin.o SigTerm.o SIO.o Streams.o StringsLib.o TestReal.o \
Timer.o TIO.o UserLib.o fslength.o \
fslength.def Signals.def \
CommonIO.def UnixLib.def FileSystem.def Streams.def XFormAus.def \
ArgAccess.mod Errors.mod TestReal.mod SFormEin.mod SIO.mod \
TFormAus.mod FFormAus.mod SFormAus.mod \
FileSystem.mod Streams.mod
ifeq ($(COMPILER),XDS)
#**************************
forceclean: clean
$(RM) $(LibInOut)
$(RM) .sym/*
endif
#****
ifeq ($(COMPILER),GM2)
#**************************
forceclean: clean
$(RM) $(LibInOut)
endif
#****