# Makefile for rds construction
include $(TOP)/etc/$(MACHINE).mk
include $(TOP)/etc/libraries.mk

LOCAL_TRGLIB = ../lib
LOCAL_TRGINC = ../include

LOCAL_CFLAGS = $(CFLAGS) -O4 -D$(MACHINE)

LOCAL_RDSOBJ = rdsacces.o rdserror.o rdsdebug.o
LOCAL_RFMOBJ = rfmacces.o rfmerror.o
LOCAL_RUTOBJ = rutacces.o ruterror.o
LOCAL_RTLOBJ = rtlacces.o rtlerror.o
LOCAL_RPROBJ = rprparse.o rprerror.o
LOCAL_RWIOBJ = rwiacces.o rwierror.o

LOCAL_RDSLIB = libRds203.a
LOCAL_RFMLIB = libRfm204.a
LOCAL_RUTLIB = libRut203.a
LOCAL_RTLLIB = libRtl105.a
LOCAL_RPRLIB = libRpr206.a
LOCAL_RWILIB = libRwi104.a

LOCAL_RDSINC = rds203.h
LOCAL_RFMINC = rfm204.h
LOCAL_RUTINC = rut203.h
LOCAL_RTLINC = rtl105.h
LOCAL_RPRINC = rpr206.h
LOCAL_RWIINC = rwi104.h

LOCAL_HEADER = -I$(ALLIANCE_INCLUDE) \
               -DRDS_H='"$(LOCAL_RDSINC)"' \
               -DRPR_H='"$(LOCAL_RPRINC)"' \
               -DRFM_H='"$(LOCAL_RFMINC)"' \
               -DRUT_H='"$(LOCAL_RUTINC)"' \
               -DRWI_H='"$(LOCAL_RWIINC)"' \
               -DRTL_H='"$(LOCAL_RTLINC)"' \
               -DMUT_H='"$(MUT_H)"'        \
               -DMPH_H='"$(MPH_H)"'        \
               -DALLIANCE_VERSION=$(ALLIANCE_VERSION) \
               -DRTL_DEFAULT_TECHNO='"$(TOP)/etc/cmos_5.rds"'

distrib : $(LOCAL_TRGLIB)/$(LOCAL_RDSLIB) \
          $(LOCAL_TRGLIB)/$(LOCAL_RFMLIB) \
          $(LOCAL_TRGLIB)/$(LOCAL_RUTLIB) \
          $(LOCAL_TRGLIB)/$(LOCAL_RTLLIB) \
          $(LOCAL_TRGLIB)/$(LOCAL_RPRLIB) \
          $(LOCAL_TRGLIB)/$(LOCAL_RWILIB)
	@if [ -f $(LOCAL_TRGLIB)/INSTALLED ] ; \
	then $(RM) $(LOCAL_TRGLIB)/INSTALLED ; \
	else exit 0 ; \
	fi
	@if [ -f $(LOCAL_TRGINC)/INSTALLED ] ; \
	then $(RM) $(LOCAL_TRGINC)/INSTALLED ; \
	else exit 0 ; \
	fi
	@$(TOUCH) distrib

all : $(LOCAL_TRGLIB)/$(LOCAL_RDSLIB) \
      $(LOCAL_TRGLIB)/$(LOCAL_RFMLIB) \
      $(LOCAL_TRGLIB)/$(LOCAL_RUTLIB) \
      $(LOCAL_TRGLIB)/$(LOCAL_RTLLIB) \
      $(LOCAL_TRGLIB)/$(LOCAL_RPRLIB) \
      $(LOCAL_TRGLIB)/$(LOCAL_RWILIB)

$(LOCAL_TRGLIB)/$(LOCAL_RDSLIB) : $(LOCAL_RDSOBJ)
	$(CP) $(LOCAL_RDSINC) $(LOCAL_TRGINC)/
	$(AR) $(ARFLAGS) $(LOCAL_TRGLIB)/$(LOCAL_RDSLIB) $(LOCAL_RDSOBJ)
	$(RANLIB) $(LOCAL_TRGLIB)/$(LOCAL_RDSLIB)

$(LOCAL_TRGLIB)/$(LOCAL_RFMLIB) : $(LOCAL_RFMOBJ)
	$(CP) $(LOCAL_RFMINC) $(LOCAL_TRGINC)/
	$(AR) $(ARFLAGS) $(LOCAL_TRGLIB)/$(LOCAL_RFMLIB) $(LOCAL_RFMOBJ)
	$(RANLIB) $(LOCAL_TRGLIB)/$(LOCAL_RFMLIB)

$(LOCAL_TRGLIB)/$(LOCAL_RUTLIB) : $(LOCAL_RUTOBJ)
	$(CP) $(LOCAL_RUTINC) $(LOCAL_TRGINC)/
	$(AR) $(ARFLAGS) $(LOCAL_TRGLIB)/$(LOCAL_RUTLIB) $(LOCAL_RUTOBJ)
	$(RANLIB) $(LOCAL_TRGLIB)/$(LOCAL_RUTLIB)

$(LOCAL_TRGLIB)/$(LOCAL_RTLLIB) : $(LOCAL_RTLOBJ)
	$(CP) $(LOCAL_RTLINC) $(LOCAL_TRGINC)/
	$(AR) $(ARFLAGS) $(LOCAL_TRGLIB)/$(LOCAL_RTLLIB) $(LOCAL_RTLOBJ)
	$(RANLIB) $(LOCAL_TRGLIB)/$(LOCAL_RTLLIB)

$(LOCAL_TRGLIB)/$(LOCAL_RPRLIB) : $(LOCAL_RPROBJ)
	$(CP) $(LOCAL_RPRINC) $(LOCAL_TRGINC)/
	$(AR) $(ARFLAGS) $(LOCAL_TRGLIB)/$(LOCAL_RPRLIB) $(LOCAL_RPROBJ)
	$(RANLIB) $(LOCAL_TRGLIB)/$(LOCAL_RPRLIB)

$(LOCAL_TRGLIB)/$(LOCAL_RWILIB) : $(LOCAL_RWIOBJ)
	$(CP) $(LOCAL_RWIINC) $(LOCAL_TRGINC)/
	$(AR) $(ARFLAGS) $(LOCAL_TRGLIB)/$(LOCAL_RWILIB) $(LOCAL_RWIOBJ)
	$(RANLIB) $(LOCAL_TRGLIB)/$(LOCAL_RWILIB)

rdserror.o : rdserror.c rdserror.h $(LOCAL_RDSINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rdserror.c

rfmerror.o : rfmerror.c rfmerror.h $(LOCAL_RFMINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rfmerror.c

rprerror.o : rprerror.c rprerror.h $(LOCAL_RPRINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rprerror.c

rtlerror.o : rtlerror.c rtlerror.h $(LOCAL_RTLINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rtlerror.c

ruterror.o : ruterror.c ruterror.h $(LOCAL_RUTINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c ruterror.c

rwierror.o : rwierror.c rwierror.h $(LOCAL_RWIINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rwierror.c

rdsdebug.o : rdsdebug.c rdsdebug.h $(LOCAL_RDSINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rdsdebug.c

rdsacces.o : rdsacces.c rdsacces.h $(LOCAL_RDSINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rdsacces.c

rfmacces.o : rfmacces.c rfmacces.h $(LOCAL_RFMINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rfmacces.c

rprparse.o : rprparse.c rprparse.h $(LOCAL_RPRINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rprparse.c

rtlacces.o : rtlacces.c rtlacces.h $(LOCAL_RTLINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rtlacces.c

rutacces.o : rutacces.c rutacces.h $(LOCAL_RUTINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rutacces.c

rwiacces.o : rwiacces.c rwiacces.h $(LOCAL_RWIINC)
	$(CC) $(LOCAL_CFLAGS) $(LOCAL_HEADER) -c rwiacces.c

clean :
	$(RM) -f $(LOCAL_RDSOBJ) $(LOCAL_RTLOBJ) $(LOCAL_RFMOBJ)
	$(RM) -f $(LOCAL_RPROBJ) $(LOCAL_RUTOBJ) $(LOCAL_RWIOBJ)
	$(RM) -f distrib
	$(RM) -f $(LOCAL_TRGLIB)/$(LOCAL_RDSLIB) $(LOCAL_TRGINC)/$(LOCAL_RDSINC)
	$(RM) -f $(LOCAL_TRGLIB)/$(LOCAL_RFMLIB) $(LOCAL_TRGINC)/$(LOCAL_RFMINC)
	$(RM) -f $(LOCAL_TRGLIB)/$(LOCAL_RUTLIB) $(LOCAL_TRGINC)/$(LOCAL_RUTINC)
	$(RM) -f $(LOCAL_TRGLIB)/$(LOCAL_RTLLIB) $(LOCAL_TRGINC)/$(LOCAL_RTLINC)
	$(RM) -f $(LOCAL_TRGLIB)/$(LOCAL_RPRLIB) $(LOCAL_TRGINC)/$(LOCAL_RPRINC)
	$(RM) -f $(LOCAL_TRGLIB)/$(LOCAL_RWILIB) $(LOCAL_TRGINC)/$(LOCAL_RWIINC)
