#
# 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.
#


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

LOCAL_TRGINC = $(TARGET_INCLUDE)
LOCAL_TRGLIB = $(TARGET_LIB)
LOCAL_TRGBIN = $(TARGET_BIN)

SOURCE = main.c

GGA_LIB = libGga301.a
GGA_H   = gga301.h
GGA_L   = -lGga301

RSA_OBJ = rsa.o
RSA_BIN = rsa
RSA_SRC = rsa.c
RSA_INC = rsa_lay.c rsa_net.c rsa_bull.c rsa_vhdl.c rsa_perf.c rsa_pat.c rsa_dat.c rsa_int.c rsa_icon.c

INC        = -DMUT_H='<'$(MUT_H)'>'\
             -DMLO_H='<'$(MLO_H)'>'\
             -DMPH_H='<'$(MPH_H)'>'\
             -DMLU_H='<'$(MLU_H)'>'\
             -DMPU_H='<'$(MPU_H)'>'\
             -DMGN_H='<'$(MGN_H)'>'\
             -DGGA_H='<'$(GGA_H)'>'\
             -DICU_H='<'$(ICU_H)'>'\
             -DICN_H='<'$(ICN_H)'>'\
             -DIAC_H='<'$(IAC_H)'>'

EXTRAFLAGS = -I$(LOCAL_TRGINC) -I$(ALLIANCE_INCLUDE) -O $(INC) -DALC=$(ALLIANCE_VERSION)

LIB        = -L$(LOCAL_TRGLIB) $(GGA_L) -L$(ALLIANCE_LIB) \
             $(MGN_L) $(MLU_L) $(MPU_L) \
             $(MCP_L) $(MAP_L) $(MMG_L) \
             $(MCL_L) $(MAL_L) $(MVL_L) $(MEL_L) $(MSL_L) $(MHL_L) $(MGL_L) \
             $(RCN_L) $(MLO_L) $(MPH_L) \
             $(ICU_L) $(ICC_L) $(ICA_L) $(ICN_L) \
             $(MUT_L) \
             -lm

distrib : $(LOCAL_TRGBIN)/$(RSA_BIN)

$(LOCAL_TRGBIN)/$(RSA_BIN) : $(LOCAL_TRGLIB)/$(GGA_LIB) $(SOURCE)
	$(CC) $(CFLAGS) $(EXTRAFLAGS) -o $(LOCAL_TRGBIN)/$(RSA_BIN) $(SOURCE) $(LIB)
	$(STRIP) $(LOCAL_TRGBIN)/$(RSA_BIN)

$(LOCAL_TRGLIB)/$(GGA_LIB) : $(RSA_SRC) $(RSA_INC)
	cp $(GGA_H) $(LOCAL_TRGINC)
	$(CC) $(CFLAGS) $(EXTRAFLAGS) -c $(RSA_SRC)
	$(AR) $(ARFLAGS) $(LOCAL_TRGLIB)/$(GGA_LIB) $(RSA_OBJ)
	$(RANLIB) $(LOCAL_TRGLIB)/$(GGA_LIB)


clean :
	$(RM) -f $(RSA_OBJ) distrib 

realclean : clean
	$(RM) -f $(LOCAL_TRGBIN)/$(RSA_BIN) 
	$(RM) -f $(LOCAL_TRGLIB)/$(GGA_LIB) 
	$(RM) -f $(LOCAL_TRGINC)/$(GGA_H) 
