# /*------------------------------------------------------------\
# |                                                             |
# | This file is part of the Alliance CAD System Copyright      |
# | (C) Laboratoire LIP6 - Dpartement ASIM Universite P&M 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   :                     XSCH                           |
# |                                                             |
# | File   :                    Makefile                        |
# |                                                             |
# | Author :                 Jacomme Ludovic                    |
# |                                                             |
# | Date   :                    09.14.99                        |
# |                                                             |
# \------------------------------------------------------------*/

include $(ALLIANCE_TOP)/etc/$(ALLIANCE_OS).mk
include $(ALLIANCE_TOP)/etc/libraries.mk
include local.mk

LOCAL_CC = $(CC)

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

LOCAL_CFLAGS = $(CFLAGS) -D$(ALLIANCE_OS)

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

LOCAL_INCLUDE = $(MOTIF_INCLUDE)    -I$(X11_INCLUDE) \
                -I$(LOCAL_TARGET_INC) -I$(ALLIANCE_INCLUDE)

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

LOCAL_XSCH_BIN = xsch

# LOCAL_X11_LIB   = -L$(X11_LIB) -lXt -lX11 
LOCAL_X11_LIB = $(MOTIF_LIB) -L$(X11_LIB) -lXt -lSM -lICE -lX11 

LOCAL_MBK_LIB = -L$(ALLIANCE_LIB) \
                $(MLU_L) \
                $(MAL_L) \
                $(MCL_L) \
                $(MEL_L) \
                $(MHL_L) \
                $(MSL_L) \
                $(MVL_L) \
                $(MGL_L) \
                $(MLO_L) \
                $(MUT_L) \
                $(MGL_L) \
                -L$(LOCAL_TARGET_LIB) \
                $(ABV_L) \
                $(ABE_L) \
                $(BDD_L) \
                $(ABL_L) \
                $(AUT_L) \
                $(RCN_L)

LOCAL_SCL_LIB = -L$(LOCAL_TARGET_LIB) \
                $(SCL_L)

LOCAL_LIB = $(LOCAL_X11_LIB) $(LOCAL_SCL_LIB) \
            $(LOCAL_MBK_LIB)

LOCAL_X11_DEFINE   = -D_NO_PROTO 

LOCAL_MBK_DEFINE = -DMLO_H='"$(MLO_H)"' \
                   -DMUT_H='"$(MUT_H)"' \
                   -DAUT_H='"$(AUT_H)"' \
                   -DABL_H='"$(ABL_H)"' \
                   -DBDD_H='"$(BDD_H)"' \
                   -DABE_H='"$(ABE_H)"' \
                   -DABV_H='"$(ABV_H)"' \
                   -DRCN_H='"$(RCN_H)"' \
                   -DSCL_H='"$(SCL_H)"'

LOCAL_XSCH_DEFINE = -DXTB_H='"XTB.h"' -DXSB_H='"XSB.h"' \
                    -DXMF_H='"XMF.h"' -DXME_H='"XME.h"' \
                    -DXMV_H='"XMV.h"' -DXMT_H='"XMT.h"' \
                    -DXMS_H='"XMS.h"' -DXMH_H='"XMH.h"' \
                    -DXMX_H='"XMX.h"' -DXSC_H='"XSC.h"' \
                    -DXSCH_DEFAULT_PARAM_NAME='"$(ALLIANCE_TOP)/etc/$(LOCAL_XSCH_BIN).par"' \
                    -DXMS_FILE_NAME='".$(LOCAL_XSCH_BIN).cfg"' \
                    -DALLIANCE_VERSION=$(ALLIANCE_VERSION) \
                    -DXSCH_TOOL_NAME='"$(LOCAL_XSCH_BIN)"' \
                    -DXSCH_VERSION='"1.05-04"'

LOCAL_DEFINE = $(LOCAL_X11_DEFINE) $(LOCAL_MBK_DEFINE) $(LOCAL_XSCH_DEFINE) 

LOCAL_HEADER = $(LOCAL_INCLUDE) $(LOCAL_DEFINE)

LOCAL_XSB_OBJ = XSB_share.o XSB_parse.o XSB_error.o
LOCAL_XSC_OBJ = XSC_bound.o XSC_error.o XSC_object.o XSC_schem.o \
                XSC_place.o XSC_select.o
LOCAL_XTB_OBJ = XTB_icon.o XTB_panel.o XTB_menu.o XTB_pixmap.o    \
                XTB_cursor.o XTB_dialog.o
LOCAL_XMX_OBJ = XMX_motif.o XMX_color.o XMX_graphic.o XMX_panel.o  \
                XMX_menu.o XMX_message.o XMX_grid.o XMX_event.o    \
                XMX_cursor.o XMX_dialog.o XMX_view.o \
                XMX_icon.o
LOCAL_XMF_OBJ = XMF_menu.o XMF_panel.o XMF_dialog.o XMF_file.o
LOCAL_XME_OBJ = XME_edit.o XME_select.o XME_search.o XME_menu.o \
                XME_panel.o XME_dialog.o XME_message.o
LOCAL_XMV_OBJ = XMV_view.o XMV_panel.o XMV_menu.o XMV_dialog.o \
                XMV_message.o XMV_map.o
LOCAL_XMT_OBJ = XMT_tools.o XMT_menu.o XMT_panel.o XMT_dialog.o \
                XMT_message.o
LOCAL_XMS_OBJ = XMS_setup.o XMS_menu.o XMS_dialog.o XMS_panel.o 
LOCAL_XMH_OBJ = XMH_help.o XMH_menu.o XMH_panel.o 

LOCAL_OBJ = $(LOCAL_XSB_OBJ) $(LOCAL_XSC_OBJ) $(LOCAL_XTB_OBJ) \
            $(LOCAL_XMX_OBJ) $(LOCAL_XMF_OBJ) $(LOCAL_XME_OBJ) \
            $(LOCAL_XMV_OBJ) $(LOCAL_XMT_OBJ) $(LOCAL_XMS_OBJ) \
            $(LOCAL_XMH_OBJ) xsch.o

# /*------------------------------------------------------------\
# |                                                             |
# |                              Xsch                           |
# |                                                             |
# \------------------------------------------------------------*/

distrib : $(LOCAL_TARGET_BIN)/$(LOCAL_XSCH_BIN)

all : $(LOCAL_TARGET_BIN)/$(LOCAL_XSCH_BIN)

force : $(LOCAL_OBJ)
	$(CC) $(LOCAL_CFLAGS) -o $(LOCAL_TARGET_BIN)/$(LOCAL_XSCH_BIN) \
              $(LOCAL_OBJ) $(LOCAL_LIB) -lm

$(LOCAL_TARGET_BIN)/$(LOCAL_XSCH_BIN) : $(LOCAL_OBJ)
	$(CC) $(LOCAL_CFLAGS) -o $(LOCAL_TARGET_BIN)/$(LOCAL_XSCH_BIN) \
                    $(LOCAL_OBJ) $(LOCAL_LIB) -lm
	$(STRIP) $(LOCAL_TARGET_BIN)/$(LOCAL_XSCH_BIN)

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

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

clean :
	$(RM) -f $(LOCAL_OBJ)

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

realclean : clean
	$(RM) -f $(LOCAL_TARGET_BIN)/$(LOCAL_XSCH_BIN)

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

cleanobj :
	$(RM) -f $(LOCAL_OBJ)
