# ----------   ---------------------------------------

#     
LCC = lcc
BUILD_DIR = .
INSTALL_DIR_LIB = _lib
INSTALL = cp -R

# . mcstbug #58675
#  Makefile    fcntl (F_SETLKW)
SKIP_F_SETLKW = 0

# ----------    ---------------------------------------

#    .      
SRC_DIR := $(shell dirname $(MAKEFILE_LIST))

include $(SRC_DIR)/Makefile.common

# ----------   ---------------------------------------------

#   
OFILES := _gcov.o _gcov_merge_add.o _gcov_merge_single.o

#       
OFILES := $(addprefix $(BUILD_DIR)/, $(OFILES))

#   
LIBGCOV_NAME := libgcov.a
LIBGCOV := $(BUILD_DIR)/$(LIBGCOV_NAME)

#       libgcov  gcc-4.7.3  x86_64
#     -fPIC,    ţ , .. 
#   CFLAGS_STATIC_ONLY.      
#    mcstbug #91030
CFLAGS_LIBGCOV := -DIN_GCC -DIN_LIBGCC2 -DENABLE_DECIMAL_BID_FORMAT \
	          -DHAVE_CC_TLS -DUSE_TLS -D__GCC_FLOAT_NOT_NEEDED \
		  -fbuilding-libgcc -fno-stack-protector \
		  -I$(SRC_DIR)/config -I$(SRC_DIR)/gcc-4.7.3/gcc -I$(SRC_DIR)/gcc-4.7.3/include
ifeq ($(SKIP_F_SETLKW), 1)
  CFLAGS_LIBGCOV += -DSKIP_F_SETLKW
endif

#  
#       libgcov  gcc-4.7.3  x86_64
WFLAGS_LIBGCOV=-W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition

#    libgcov.c,   gcc-4.7.3  ,   
WFLAGS_LCC=-Wno-undef -Wno-unused-function-all -Wno-ignored-pragmas -Wno-maybe-uninitialized-extra -Wno-conversion -Wno-declaration-after-statement

#   
CFLAGS := $(CFLAGS_COMMON) $(CFLAGS_STATIC_ONLY) $(CFLAGS_LIBGCOV) $(WFLAGS_LIBGCOV) $(WFLAGS_LCC)

# ----------  -------------------------------------------------------------

.PHONY: all install

all: $(BUILD_DIR) $(LIBGCOV)

$(BUILD_DIR):
	mkdir -p $(BUILD_DIR)

$(LIBGCOV): $(OFILES)
	$(AR) $(ARFLAGS) $@ $^

$(OFILES): $(SRC_DIR)/gcc-4.7.3/gcc/libgcov.c
	$(LCC) -DL$(*F) -c $(CFLAGS) $< -o $@

install:
	mkdir -p $(INSTALL_DIR_LIB) && \
        $(INSTALL) $(LIBGCOV) $(INSTALL_DIR_LIB)
