#                          Alliance VLSI CAD System
#
#     Product : OVER-THE-CELL ROUTER
#     File    : Makefile
#
#		Date	  : 24/04/2000

# Alliance Shared Libraries and Include Files for Makefiles
include $(ALLIANCE_TOP)/etc/$(ALLIANCE_OS).mk
include $(ALLIANCE_TOP)/etc/libraries.mk

# Tools
TAGS = ctags
RM   = rm -fr
AR   = ar -rv

# Directory
TARGET_DIR  = $(HOME)/local/$(ALLIANCE_OS)/bin
LIB_DIR	   = ../lib
INCLUDE_DIR = ../include

TARGET      = ocr

# Source
OCR_SRC_FILE = findNPointsPath.c \
					ocrRouter.c \
					ocrGlobalRouting.c \
					ocrMst.c \
					ocrWeightedTree.c \
					getOption.c \
					display.c \
					../util/ocrDataBaseUtil.c \
					../util/ocrInitDataBase.c \
					../util/ocrConnectorUtil.c \
					../util/ocrSignalUtil.c \
					../util/ocrWindow.c
					
OCR_OBJ_FILE = $(subst .c,.o,$(OCR_SRC_FILE))
LIB_NAME     = ocrPath.a

# Include Flags for Alliance Shared Libraries
OCR_ALC_INCLUDE = -I$(ALLIANCE_INCLUDE) \
						-I$(INCLUDE_DIR) \
                  -DMLU_H='<$(MLU_H)>' \
                  -DMPU_H='<$(MPU_H)>' \
                  -DMLO_H='<$(MLO_H)>' \
                  -DMPH_H='<$(MPH_H)>' \
                  -DMUT_H='<$(MUT_H)>'

# Libraries Flags for Alliance Shared Libraries
OCR_ALC_LIB = -L$(ALLIANCE_LIB) \
              $(MLU_L) \
              $(MPU_L) \
              $(MCP_L) \
              $(MAP_L) \
              $(MMG_L) \
              $(MCL_L) \
              $(MGL_L) \
              $(MAL_L) \
              $(MVL_L) \
              $(MEL_L) \
              $(MSL_L) \
              $(MHL_L) \
              $(RCN_L) \
              $(MLO_L) \
              $(MPH_L) \
              $(MUT_L) \
				  -lm

# Compilation Flags
OCR_CFLAGS = -Wall -O4 -p -g 

# Non file targets
.PHONY: clean

# Dependencies
all : $(TARGET_DIR)/$(TARGET) 
	$(TAGS) *.c $(INCLUDE_DIR)/*.h ../seg/*.c ../util/*.c

debug :
	$(MAKE) OCR_CFLAGS='-Wall -O4 -p -g -fprofile-arcs -ftest-coverage'
	
norm :
	$(MAKE) OCR_CFLAGS='-Wall -O4'

#    findNPointsPath.o : findNPointsPath.c $(INCLUDE_DIR)/mbk_tree.h	\
#	$(INCLUDE_DIR)/ocr.h $(INCLUDE_DIR)/ocrUtil.h \
#	$(INCLUDE_DIR)/ocrWRoutingDataBase.h $(INCLUDE_DIR)/ocrWRoutingUtil.h \
#	$(INCLUDE_DIR)/ocrWSegLabeling.h

$(TARGET_DIR)/$(TARGET) : $(OCR_OBJ_FILE) $(LIB_DIR)/$(LIB_NAME) 
	$(CC) $(OCR_CFLAGS) $(OCR_ALC_INCLUDE) $^ $(OCR_ALC_LIB) -o $@

# Implicite Rule
%.o : %.c
	$(CC) $(OCR_CFLAGS) $(OCR_ALC_INCLUDE) -c $< -o $@

clean :
	-$(RM) $(TARGET_DIR)/$(TARGET)
	-$(RM) *~ *.o gmon.out *.gcov *.da *.bb *.bbg .*.swp
	-$(RM) ../util/*.o ../util/*~
