#Makefile for Grog, from Frederic Petrot
include $(TOP)/etc/$(MACHINE).mk
ALC_INC          = -I$(ALLIANCE_INCLUDE) \
                   -DMGN_H='"mgn319.h"' \
                   -DMLU_H='"mlu411.h"' \
                   -DMPU_H='"mpu402.h"' \
                   -DMLO_H='"mlo404.h"' \
                   -DMPH_H='"mph402.h"' \
                   -DICU_H='"icu201.h"' \
                   -DICN_H='"icn201.h"' \
                   -DIAC_H='"iac201.h"' \
                   -DMUT_H='"mut315.h"'
ALC_LIB          = -L$(ALLIANCE_LIB) \
                   -lMgn319 \
                   -lMlu411 \
                   -lMpu402 \
                   -lMcp401 \
                   -lMap402 \
                   -lMmg401 \
                   -lMcl408 \
                   -lMal404 \
                   -lMvl406 \
                   -lMel406 \
                   -lMsl608 \
                   -lMhl402 \
                   -lMlo404 \
                   -lMph402 \
                   -lIcu201 \
                   -lIcc201 \
                   -lIca201 \
                   -lIcn201 \
                   -lMut315 -lm
VERSION          = '"1.5"'

RCSSOURCES = Makefile main.c vtisim.c grog.c grog.h grog_code.yac grog_data.c grog_genview.c grog_layout.c grog_netlist.c grog_outline.c grog_vhdl.c
SOURCE = vtisim.c grog.c grog_layout.c grog_netlist.c grog_vhdl.c grog_code.yac grog_data.c grog_outline.c

OBJ = vtisim.o grog.o grog_layout.o grog_netlist.o grog_vhdl.o grog_code.y.o grog_data.o grog_outline.o grog_icon.o

#CHECK = -DVTICHECK -DPARSEOUT

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

GROG_LIB         = ../lib/libGgr000.a
GROG_INC         = ggr000.h

distrib : $(GROG_LIB) grog 
	@$(MV) grog ../bin
	@$(CP) $(GROG_INC) ../include
	@if [ -f ../bin/INSTALLED ]; then $(RM) ../bin/INSTALLED; else exit 0; fi
	@if [ -f ../lib/INSTALLED ]; then $(RM) ../lib/INSTALLED; else exit 0; fi
	@if [ -f ../include/INSTALLED ]; then $(RM) ../include/INSTALLED; else exit 0; fi
	@$(TOUCH) distrib

grog : $(GROG_LIB) main.o
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -o grog main.o $(GROG_LIB) $(ALC_LIB)

$(GROG_LIB) : $(OBJ)
	$(AR) $(ARFLAGS) $(GROG_LIB) $(OBJ)
	$(RANLIB) $(GROG_LIB)

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

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

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

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

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

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

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

grog_code.y.o : grog_code.yac
	$(YACC) $(YACCFLAGS) grog_code.yac
	$(SED) -e "s/yy/grog/g" -e "s/YY/GROG/g" y.tab.c > grog_code.y.c
	$(RM) y.tab.c
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -c grog_code.y.c

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

vtisim.o : vtisim.c
	$(CC) $(CFLAGS) $(LOCAL_CFLAGS) -c vtisim.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) $(GROG_LIB) grog grog_code.y.c distrib
