
#   fifo.library, FIFO:
#
#   FIFO:fubar/rwcse

# Binaries are built in current directory for compatibility with Makefile
# and to avoid overwriting the pre-compiled binaries

OD = dtmp:
EXE = fifo.library
CFLAGS= -s -ms -mRR -proto -I$(OD)

SRCS= tag.a lib.c fifo.c
OBJS= $(OD)tag.o $(OD)lib.o $(OD)fifo.o

FDEVEXE= fifo-handler
FDEVSRC= fifo-handler.c htag.a
FDEVOBJ= $(OD)fifo-handler.o $(OD)htag.o

LIBDEST=  LIBS:
FDEVDEST= L:
BINDEST=  C:
INCDEST=  dinclude:pd/
FDFDEST=  dinclude:fd/

TESTEXE= testfifo RemCLI
TESTSRC= testfifo.c remcli.c
TESTOBJ= $(OD)testfifo.o $(OD)remcli.o

LLDLIB= lib/fifol.lib
LSDLIB= lib/fifos.lib
LSDRLIB= lib/fifosr.lib
HDRFILE= dinclude:pd/fifo.h

LIBPROTOS= $(OD)fifolib-protos.h
HANPROTOS= $(OD)fifohan-protos.h

all: $(EXE) $(LLDLIB) $(LSDLIB) $(LSDRLIB) $(FDEVEXE) $(TESTEXE)

oldall: $(HDRFILE) $(LIBPROTOS) $(HANPROTOS) $(EXE) $(LLDLIB) $(LSDLIB) $(LSDRLIB) $(FDEVEXE) $(TESTEXE)

$(EXE) : $(OBJS)
    dcc $(CFLAGS) %(right) -o %(left) -l0 -lcsr -lamigasr20

# DICE-2.06.x doesn't know -auto <library>
# which apparently adds (generates?) the autoinit code (see DICE:lib/alib/fifolib.a)
$(LLDLIB) : fd/fifo_lib.fd
    fdtolib fd/fifo_lib.fd -o %(left) -auto fifo.library -mD

$(LSDLIB) : fd/fifo_lib.fd
    fdtolib fd/fifo_lib.fd -o %(left) -auto fifo.library

$(LSDRLIB) : fd/fifo_lib.fd
    fdtolib fd/fifo_lib.fd -mr -h clib/fifo_protos.h -o %(left) -auto fifo.library

$(FDEVEXE) : $(FDEVOBJ)
    dcc $(CFLAGS) %(right) -o %(left) -Llib -lfifo

$(TESTEXE) : $(TESTOBJ)
    dcc $(CFLAGS) %(right) -o %(left) -Llib -lfifo

$(OBJS) $(FDEVOBJ) $(TESTOBJ) : $(SRCS) $(FDEVSRC) $(TESTSRC)
    dcc $(CFLAGS) %(right) -o %(left) -c

$(LIBPROTOS) : $(SRCS)
    makeproto -o%(left) %(right)

$(HANPROTOS) : $(FDEVSRC)
    makeproto -o%(left) %(right)

$(HDRFILE) : libraries/fifo.h
    Copy %(right) %(left) QUIET CLONE

install: installbin installinc installlib

installbin:
    Copy $(EXE) $(LIBDEST) CLONE
    Copy $(FDEVEXE) $(FDEVDEST) CLONE
    Copy RemCLI $(BINDEST) CLONE
    -echo Installed library, handler and RemCLI

installinc:
    Copy libraries/fifo.h $(INCDEST)libraries/ CLONE
    Copy clib/fifo_protos.h $(INCDEST)clib/ CLONE
    Copy fd/fifo_lib.fd $(FDFDEST) CLONE
    Copy proto/fifo.h $(INCDEST)proto/ CLONE
    -echo Installed Includes and FD files

installlib:
    Copy $(LLDLIB) $(LSDLIB) $(LSDRLIB) DLib: CLONE
    -echo Installed DICE compiler libraries

clean:
    -delete $(OBJS)
    -delete $(TESTOBJ)
    -delete $(FDEVOBJ)

