#
# This file is part of the Alliance CAD System
# Copyright (C) Laboratoire LIP6 - Dpartement ASIM
# Universite Pierre et Marie Curie
# 
# Home page          : http://www-asim.lip6.fr/alliance/
# E-mail support     : mailto:alliance-support@asim.lip6.fr
# 
# This progam is  free software; you can redistribute it  and/or modify it
# under the  terms of the GNU  General Public License as  published by the
# Free Software Foundation;  either version 2 of the License,  or (at your
# option) any later version.
# 
# Alliance VLSI  CAD System  is distributed  in the hope  that it  will be
# useful, but WITHOUT  ANY WARRANTY; without even the  implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
# 
# You should have received a copy  of the GNU General Public License along
# with the GNU C Library; see the  file COPYING. If not, write to the Free
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#

# /*------------------------------------------------------------\
# |                                                             |
# | Tool   :                      RDS                           |
# |                                                             |
# | File   :                   Makefile                         |
# |                                                             |
# | Author :                 Jacomme Ludovic                    |
# |                                                             |
# | Date   :                    10.01.96                        |
# |                                                             |
# \------------------------------------------------------------*/

include $(TOP)/etc/$(MACHINE).mk
include $(TOP)/etc/libraries.mk
include local.mk

# /*------------------------------------------------------------\
# |                                                             |
# |                             Variables                       |
# |                                                             |
# \------------------------------------------------------------*/

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

RDS_L   =  -lRds207
RCF_L   =  -lRcf109
RFM_L   =  -lRfm208
RGS_L   =  -lRgs109
RPR_L   =  -lRpr210
RTL_L   =  -lRtl108
RWI_L   =  -lRwi107
RUT_L   =  -lRut206

RDS_H   =    rds207.h
RFM_H   =    rfm208.h
RPR_H   =    rpr210.h
RTL_H   =    rtl108.h
RWI_H   =    rwi107.h
RUT_H   =    rut206.h

RDS_LIB = libRds207.a
RCF_LIB = libRcf109.a
RFM_LIB = libRfm208.a
RGS_LIB = libRgs109.a
RPR_LIB = libRpr210.a
RTL_LIB = libRtl108.a
RWI_LIB = libRwi107.a
RUT_LIB = libRut206.a

# /*------------------------------------------------------------\
# |                                                             |
# |                             Object                          |
# |                                                             |
# \------------------------------------------------------------*/

LOCAL_RDSOBJ = rdsalloc.o rdsfree.o rdsadd.o rdsdel.o rdsview.o \
               rdserror.o rdsdebug.o
LOCAL_RFMOBJ = rfmacces.o rfmview.o rfmerror.o
LOCAL_RUTOBJ = rutacces.o rutpoly.o rutequi.o rutunify.o ruterror.o
LOCAL_RTLOBJ = rtlacces.o rtlenv.o rtlerror.o
LOCAL_RPROBJ = rprparse.o rprview.o rprerror.o
LOCAL_RWIOBJ = rwialloc.o rwidel.o rwierror.o rwiget.o rwiadd.o \
               rwibuild.o rwidestroy.o rwifree.o rwiview.o

# /*------------------------------------------------------------\
# |                                                             |
# |                             Library                         |
# |                                                             |
# \------------------------------------------------------------*/

LOCAL_MBK_LIB = -L$(ALLIANCE_LIB) \
                $(MPU_L) \
                $(MAP_L) \
                $(MMG_L) \
                $(MCP_L) \
                $(MPH_L) \
                $(MUT_L)

LOCAL_RDS_LIB = -L$(LOCAL_TARGET_LIB) \
                $(RTL_L) \
                $(RGS_L) \
                $(RCF_L) \
                $(RFM_L) \
                $(RPR_L) \
                $(RWI_L) \
                $(RUT_L) \
                $(RDS_L)

LOCAL_LIB = $(LOCAL_RDS_LIB) $(LOCAL_MBK_LIB)

# /*------------------------------------------------------------\
# |                                                             |
# |                             Include                         |
# |                                                             |
# \------------------------------------------------------------*/
# /*------------------------------------------------------------\
# |                                                             |
# |                             Define                          |
# |                                                             |
# \------------------------------------------------------------*/

LOCAL_HEADER = -I$(LOCAL_TARGET_INC) \
               -DRDS_H='"$(RDS_H)"'  \
               -DRPR_H='"$(RPR_H)"'  \
               -DRFM_H='"$(RFM_H)"'  \
               -DRUT_H='"$(RUT_H)"'  \
               -DRWI_H='"$(RWI_H)"'  \
               -DRTL_H='"$(RTL_H)"'  \
               -I$(ALLIANCE_INCLUDE) \
               -DMUT_H='"$(MUT_H)"'  \
               -DMPH_H='"$(MPH_H)"'  \
               -DALLIANCE_VERSION=$(ALLIANCE_VERSION) \
               -DALLIANCE_TOP='"$(TOP)"' \
               -DRTL_DEFAULT_TECHNO='"etc/cmos_7.rds"'

# /*------------------------------------------------------------\
# |                                                             |
# |                             RDS                             |
# |                                                             |
# \------------------------------------------------------------*/

distrib : all

all : $(LOCAL_TARGET_LIB)/$(RDS_LIB) \
      $(LOCAL_TARGET_INC)/$(RDS_H)   \
      $(LOCAL_TARGET_LIB)/$(RFM_LIB) \
      $(LOCAL_TARGET_INC)/$(RFM_H)   \
      $(LOCAL_TARGET_LIB)/$(RUT_LIB) \
      $(LOCAL_TARGET_INC)/$(RUT_H)   \
      $(LOCAL_TARGET_LIB)/$(RTL_LIB) \
      $(LOCAL_TARGET_INC)/$(RTL_H)   \
      $(LOCAL_TARGET_LIB)/$(RPR_LIB) \
      $(LOCAL_TARGET_INC)/$(RPR_H)   \
      $(LOCAL_TARGET_LIB)/$(RWI_LIB) \
      $(LOCAL_TARGET_INC)/$(RWI_H)

$(LOCAL_TARGET_INC)/$(RDS_H) : $(RDS_H)
	$(CP) $(RDS_H) $(LOCAL_TARGET_INC)/$(RDS_H)

$(LOCAL_TARGET_INC)/$(RFM_H) : $(RFM_H)
	$(CP) $(RFM_H) $(LOCAL_TARGET_INC)/$(RFM_H)

$(LOCAL_TARGET_INC)/$(RUT_H) : $(RUT_H)
	$(CP) $(RUT_H) $(LOCAL_TARGET_INC)/$(RUT_H)

$(LOCAL_TARGET_INC)/$(RTL_H) : $(RTL_H)
	$(CP) $(RTL_H) $(LOCAL_TARGET_INC)/$(RTL_H)

$(LOCAL_TARGET_INC)/$(RPR_H) : $(RPR_H)
	$(CP) $(RPR_H) $(LOCAL_TARGET_INC)/$(RPR_H)

$(LOCAL_TARGET_INC)/$(RWI_H) : $(RWI_H)
	$(CP) $(RWI_H) $(LOCAL_TARGET_INC)/$(RWI_H)

$(LOCAL_TARGET_LIB)/$(RDS_LIB) : $(LOCAL_RDSOBJ)
	$(AR) $(ARFLAGS) $(LOCAL_TARGET_LIB)/$(RDS_LIB) $(LOCAL_RDSOBJ)
	$(RANLIB) $(LOCAL_TARGET_LIB)/$(RDS_LIB)

$(LOCAL_TARGET_LIB)/$(RFM_LIB) : $(LOCAL_RFMOBJ)
	$(AR) $(ARFLAGS) $(LOCAL_TARGET_LIB)/$(RFM_LIB) $(LOCAL_RFMOBJ)
	$(RANLIB) $(LOCAL_TARGET_LIB)/$(RFM_LIB)

$(LOCAL_TARGET_LIB)/$(RUT_LIB) : $(LOCAL_RUTOBJ)
	$(AR) $(ARFLAGS) $(LOCAL_TARGET_LIB)/$(RUT_LIB) $(LOCAL_RUTOBJ)
	$(RANLIB) $(LOCAL_TARGET_LIB)/$(RUT_LIB)

$(LOCAL_TARGET_LIB)/$(RTL_LIB) : $(LOCAL_RTLOBJ)
	$(AR) $(ARFLAGS) $(LOCAL_TARGET_LIB)/$(RTL_LIB) $(LOCAL_RTLOBJ)
	$(RANLIB) $(LOCAL_TARGET_LIB)/$(RTL_LIB)

$(LOCAL_TARGET_LIB)/$(RPR_LIB) : $(LOCAL_RPROBJ)
	$(AR) $(ARFLAGS) $(LOCAL_TARGET_LIB)/$(RPR_LIB) $(LOCAL_RPROBJ)
	$(RANLIB) $(LOCAL_TARGET_LIB)/$(RPR_LIB)

$(LOCAL_TARGET_LIB)/$(RWI_LIB) : $(LOCAL_RWIOBJ)
	$(AR) $(ARFLAGS) $(LOCAL_TARGET_LIB)/$(RWI_LIB) $(LOCAL_RWIOBJ)
	$(RANLIB) $(LOCAL_TARGET_LIB)/$(RWI_LIB)

.c.o :
	$(CC) -c $(LOCAL_CFLAGS) $(LOCAL_HEADER) $<

# /*------------------------------------------------------------\
# |                                                             |
# |                              Main                           |
# |                                                             |
# \------------------------------------------------------------*/

test : main.o
	$(CC) $(LOCAL_CFLAGS) -o $(LOCAL_TARGET_BIN)/rdstest main.o $(LOCAL_LIB) -lm

# /*------------------------------------------------------------\
# |                                                             |
# |                              Clean                          |
# |                                                             |
# \------------------------------------------------------------*/

clean :
	$(RM) -f $(LOCAL_RDSOBJ) $(LOCAL_RTLOBJ) $(LOCAL_RFMOBJ)
	$(RM) -f $(LOCAL_RPROBJ) $(LOCAL_RUTOBJ) $(LOCAL_RWIOBJ)

realclean : clean
	$(RM) -f $(LOCAL_TARGET_LIB)/$(RDS_LIB) $(LOCAL_TARGET_INC)/$(RDS_H)
	$(RM) -f $(LOCAL_TARGET_LIB)/$(RFM_LIB) $(LOCAL_TARGET_INC)/$(RFM_H)
	$(RM) -f $(LOCAL_TARGET_LIB)/$(RUT_LIB) $(LOCAL_TARGET_INC)/$(RUT_H)
	$(RM) -f $(LOCAL_TARGET_LIB)/$(RTL_LIB) $(LOCAL_TARGET_INC)/$(RTL_H)
	$(RM) -f $(LOCAL_TARGET_LIB)/$(RPR_LIB) $(LOCAL_TARGET_INC)/$(RPR_H)
	$(RM) -f $(LOCAL_TARGET_LIB)/$(RWI_LIB) $(LOCAL_TARGET_INC)/$(RWI_H)

