#
# 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   :                      All                           |
# |                                                             |
# | File   :                    Makefile                        |
# |                                                             |
# | Author :                  Jacomme Ludovic                   |
# |                                                             |
# | Date   :                    28.10.94                        |
# |                                                             |
# \------------------------------------------------------------*/

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

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

LOCAL_AUT_LIB = $(LOCAL_TARGET_LIB)/$(AUT_LIB)
LOCAL_ABL_LIB = $(LOCAL_TARGET_LIB)/$(ABL_LIB)
LOCAL_BDD_LIB = $(LOCAL_TARGET_LIB)/$(BDD_LIB)
LOCAL_FSM_LIB = $(LOCAL_TARGET_LIB)/$(FSM_LIB)
LOCAL_FKS_LIB = $(LOCAL_TARGET_LIB)/$(FKS_LIB)
LOCAL_FVH_LIB = $(LOCAL_TARGET_LIB)/$(FVH_LIB)
LOCAL_FTL_LIB = $(LOCAL_TARGET_LIB)/$(FTL_LIB)

LOCAL_ALL_LIB = $(LOCAL_AUT_LIB) $(LOCAL_ABL_LIB) \
                $(LOCAL_BDD_LIB) \
                $(LOCAL_FSM_LIB) $(LOCAL_FKS_LIB) \
                $(LOCAL_FVH_LIB) $(LOCAL_FTL_LIB)

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

LOCAL_AUT_INC = $(LOCAL_TARGET_INC)/$(AUT_H)
LOCAL_ABL_INC = $(LOCAL_TARGET_INC)/$(ABL_H)
LOCAL_BDD_INC = $(LOCAL_TARGET_INC)/$(BDD_H)
LOCAL_FSM_INC = $(LOCAL_TARGET_INC)/$(FSM_H)
LOCAL_FVH_INC = $(LOCAL_TARGET_INC)/$(FVH_H)
LOCAL_FTL_INC = $(LOCAL_TARGET_INC)/$(FTL_H)

# /*------------------------------------------------------------\
# |                                                             |
# |                             Binary                          |
# |                                                             |
# \------------------------------------------------------------*/

LOCAL_SYF_BIN = $(LOCAL_TARGET_BIN)/syf
LOCAL_XFS_BIN = $(LOCAL_TARGET_BIN)/xfsm
LOCAL_XPT_BIN = $(LOCAL_TARGET_BIN)/xpat

LOCAL_ALL_BIN = $(LOCAL_SYF_BIN) $(LOCAL_XFS_BIN) \
                $(LOCAL_XPT_BIN)

# /*------------------------------------------------------------\
# |                                                             |
# |                             Binary                          |
# |                                                             |
# \------------------------------------------------------------*/

distrib : $(LOCAL_ALL_BIN)

$(LOCAL_XPT_BIN) : $(LOCAL_ALL_LIB)
	cd $(LOCAL_XPT_SCE); $(MAKE) distrib

$(LOCAL_XFS_BIN) : $(LOCAL_ALL_LIB)
	cd $(LOCAL_XFS_SCE); $(MAKE) distrib

$(LOCAL_SYF_BIN) : $(LOCAL_ALL_LIB)
	cd $(LOCAL_SYF_SCE); $(MAKE) distrib

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

$(LOCAL_AUT_LIB) : $(LOCAL_AUT_INC)
	cd $(LOCAL_AUT_SCE); $(MAKE) distrib

$(LOCAL_ABL_LIB) : $(LOCAL_AUT_INC) $(LOCAL_ABL_INC)
	cd $(LOCAL_ABL_SCE); $(MAKE) distrib

$(LOCAL_BDD_LIB) : $(LOCAL_AUT_INC) $(LOCAL_ABL_INC) $(LOCAL_BDD_INC)
	cd $(LOCAL_BDD_SCE); $(MAKE) distrib

$(LOCAL_FSM_LIB) : $(LOCAL_AUT_INC) $(LOCAL_ABL_INC) $(LOCAL_BDD_INC)
	cd $(LOCAL_FSM_SCE); $(MAKE) distrib

$(LOCAL_FKS_LIB) : $(LOCAL_AUT_INC) $(LOCAL_ABL_INC) $(LOCAL_BDD_INC) \
                   $(LOCAL_FSM_INC)
	cd $(LOCAL_FKS_SCE); $(MAKE) distrib

$(LOCAL_FVH_LIB) : $(LOCAL_AUT_INC) $(LOCAL_ABL_INC) $(LOCAL_BDD_INC) \
                   $(LOCAL_FSM_INC)
	cd $(LOCAL_FVH_SCE); $(MAKE) distrib

$(LOCAL_FTL_LIB) : $(LOCAL_AUT_INC) $(LOCAL_ABL_INC) $(LOCAL_BDD_INC) \
                   $(LOCAL_FSM_INC)
	cd $(LOCAL_FTL_SCE); $(MAKE) distrib

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

$(LOCAL_AUT_INC) : $(LOCAL_AUT_SCE)/$(AUT_H)
	cd $(LOCAL_AUT_SCE); $(MAKE) distrib

$(LOCAL_ABL_INC) : $(LOCAL_ABL_SCE)/$(ABL_H)
	cd $(LOCAL_ABL_SCE); $(MAKE) distrib

$(LOCAL_BDD_INC) : $(LOCAL_BDD_SCE)/$(BDD_H)
	cd $(LOCAL_BDD_SCE); $(MAKE) distrib

$(LOCAL_FSM_INC) : $(LOCAL_FSM_SCE)/$(FSM_H)
	cd $(LOCAL_FSM_SCE); $(MAKE) distrib

$(LOCAL_FTL_INC) : $(LOCAL_FTL_SCE)/$(FTL_H)
	cd $(LOCAL_FTL_SCE); $(MAKE) distrib


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

clean :
	cd $(LOCAL_AUT_SCE); $(MAKE) clean
	cd $(LOCAL_ABL_SCE); $(MAKE) clean
	cd $(LOCAL_BDD_SCE); $(MAKE) clean
	cd $(LOCAL_FSM_SCE); $(MAKE) clean
	cd $(LOCAL_FKS_SCE); $(MAKE) clean
	cd $(LOCAL_FVH_SCE); $(MAKE) clean
	cd $(LOCAL_FTL_SCE); $(MAKE) clean
	cd $(LOCAL_SYF_SCE); $(MAKE) clean
	cd $(LOCAL_XFS_SCE); $(MAKE) clean
	cd $(LOCAL_XPT_SCE); $(MAKE) clean


# /*------------------------------------------------------------\
# |                                                             |
# |                            RealClean                        |
# |                                                             |
# \------------------------------------------------------------*/

realclean :
	cd $(LOCAL_AUT_SCE); $(MAKE) realclean
	cd $(LOCAL_ABL_SCE); $(MAKE) realclean
	cd $(LOCAL_BDD_SCE); $(MAKE) realclean
	cd $(LOCAL_FSM_SCE); $(MAKE) realclean
	cd $(LOCAL_FKS_SCE); $(MAKE) realclean
	cd $(LOCAL_FVH_SCE); $(MAKE) realclean
	cd $(LOCAL_FTL_SCE); $(MAKE) realclean
	cd $(LOCAL_SYF_SCE); $(MAKE) realclean
	cd $(LOCAL_XFS_SCE); $(MAKE) realclean
	cd $(LOCAL_XPT_SCE); $(MAKE) realclean


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

cleanobj :
	cd $(LOCAL_AUT_SCE); $(MAKE) cleanobj
	cd $(LOCAL_ABL_SCE); $(MAKE) cleanobj
	cd $(LOCAL_BDD_SCE); $(MAKE) cleanobj
	cd $(LOCAL_FSM_SCE); $(MAKE) cleanobj
	cd $(LOCAL_FKS_SCE); $(MAKE) cleanobj
	cd $(LOCAL_FVH_SCE); $(MAKE) cleanobj
	cd $(LOCAL_FTL_SCE); $(MAKE) cleanobj
	cd $(LOCAL_SYF_SCE); $(MAKE) cleanobj
	cd $(LOCAL_XFS_SCE); $(MAKE) cleanobj
	cd $(LOCAL_XPT_SCE); $(MAKE) cleanobj
