#Makefile for AMG, from Philippe Royannez

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

LOCAL_TRGBIN     = ../bin
LOCAL_TRGLIB     = ../lib
LOCAL_TRGINC     = ../include

ALC_INC          = -I$(ALLIANCE_INCLUDE) \
 		   -DRSA_H='"$(GGA_H)"'\
                   -DMGN_H='"$(MGN_H)"'\
                   -DMLU_H='"$(MLU_H)"'\
                   -DMPU_H='"$(MPU_H)"'\
                   -DMLO_H='"$(MLO_H)"'\
                   -DMPH_H='"$(MPH_H)"'\
                   -DICU_H='"$(ICU_H)"'\
                   -DICN_H='"$(ICN_H)"'\
                   -DIAC_H='"$(IAC_H)"'\
                   -DMUT_H='"$(MUT_H)"'
ALC_LIB          = -L$(ALLIANCE_LIB) \
		   $(GGA_L) \
                   $(MGN_L) \
                   $(MLU_L) \
                   $(MPU_L) \
                   $(MCP_L) \
                   $(MAP_L) \
                   $(MMG_L) \
                   $(MCL_L) \
                   $(MAL_L) \
                   $(MVL_L) \
                   $(MEL_L) \
                   $(MSL_L) \
                   $(MHL_L) \
                   $(MLO_L) \
                   $(MPH_L) \
                   $(ICU_L) \
                   $(ICC_L) \
                   $(ICA_L) \
                   $(ICN_L) \
                   $(MUT_L) -lm
VERSION          = '"1.5"'

RCSSOURCES = Makefile main.c dispatch.c amg_data.c amg_layout.c amg_vhdl.c amg_icon.c amg_pat.c
SOURCE = dispatch.c amg_layout.c amg_vhdl.c amg_data.c amg_pat.c amg_icon.c

OBJ = dispatch.o amg_layout.o amg_vhdl.o amg_data.o amg_pat.o amg_icon.o

#CHECK = -DVTICHECK -DPARSEOUT

LOCAL_CFLAGS     = $(CHECK) $(ALC_INC) -D$(MACHINE) \
                   -DALC=$(ALLIANCE_VERSION) \
                   -DAMG=$(VERSION)

AMG_LIB         = libGam000.a
AMG_INC         = gam000.h

distrib : $(LOCAL_TRGBIN)/amg 
	@if [ -f $(LOCAL_TRGBIN)/INSTALLED ]; then $(RM) $(LOCAL_TRGBIN)/INSTALLED; else exit 0; fi
	@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

$(LOCAL_TRGBIN)/amg : $(LOCAL_TRGLIB)/$(AMG_LIB) main.o
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -o $(LOCAL_TRGBIN)/amg main.o $(LOCAL_TRGLIB)/$(AMG_LIB) $(ALC_LIB)

$(LOCAL_TRGLIB)/$(AMG_LIB) : $(OBJ)
	$(CP) $(AMG_INC) $(LOCAL_TRGINC)/
	$(AR) $(ARFLAGS) $(LOCAL_TRGLIB)/$(AMG_LIB) $(OBJ)
	$(RANLIB) $(LOCAL_TRGLIB)/$(AMG_LIB)

main.o : main.c
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -c main.c

dispatch.o : dispatch.c
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -c dispatch.c

amg_layout.o : amg_layout.c
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -c amg_layout.c

amg_data.o : amg_data.c
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -c amg_data.c

amg_vhdl.o : amg_vhdl.c
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -c amg_vhdl.c

amg_icon.o : amg_icon.c
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -c amg_icon.c

amg_pat.o : amg_pat.c
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -c amg_pat.c

checkin : 
	echo "y" > 1
	for i in $(RCSSOURCES); do \
		ci -l$(VERSION) -f -m"rcs version number consistency" $$i < 1 ; \
	done
	rm 1

clean :
	-@$(RM) main.o $(OBJ)
	-@$(RM) $(LOCAL_TRGLIB)/$(AMG_LIB) $(LOCAL_TRGINC)/$(AMG_INC)
	-@$(RM) $(LOCAL_TRGBIN)/amg
	-@$(RM) distrib

