# file: Makefile (for src)
#$Id: Makefile,v 1.23 2004/11/11 18:10:53 exact Exp $

# =============================================================
# PATHS ======================================================
# =============================================================

CORE_PATH=..

INCLUDE=-I${CORE_PATH}/inc -I${CORE_PATH}/gmp/include

# VAR indicates variants of the Core library
#	E.g., if VAR=(empty) then we compile the release version.
#	If VAR=Debug, then we compile a debugging version.

EXPROBJS=GmpIO${VAR}.o CoreIO${VAR}.o CoreAux${VAR}.o CoreDefs${VAR}.o \
         extLong${VAR}.o BigFloat${VAR}.o Real${VAR}.o Expr${VAR}.o 

# =============================================================
# FLAGS =======================================================
# =============================================================

# read in the appropriate compilation settings from the
# global Make.config.
include ${CORE_PATH}/Make.config


# =============================================================
# TARGETS =====================================================
# =============================================================

# The following library will be built:
CORE_LIB=$(CORE_PATH)/lib/libcore++${VAR}.a
CORE_SHARED_LIB=$(CORE_PATH)/lib/libcore++${VAR}.so

TARGET=$(CORE_LIB)

ifeq (${LINKAGE}, shared)
  TARGET+=$(CORE_SHARED_LIB)
endif

# =============================================================
# RULES  ======================================================
# =============================================================

all:	${TARGET}

${CORE_LIB}:	$(EXPROBJS)
	$(AR) $@ $?

${CORE_SHARED_LIB}:	$(EXPROBJS)
	$(CXX) $(CORE_LDFLAGS) -o $@ $^

%${VAR}.o:	%.cpp
# Aug 8, 2004 by Chee (TEMP CHANGE! FOR DEBUGGING)
#	${CXX} $(CORE_CXXFLAGS) -DCORE_SHOW_BOUNDS $(INCLUDE) -c $< -o $@
	${CXX} $(CORE_CXXFLAGS) $(INCLUDE) -c $< -o $@

# =============================================================
# HOUSE KEEPING  ==============================================
# =============================================================

clean:
	-@test -z "*${VAR}.o" || rm -rf *${VAR}.o

veryclean: clean
	-@test -z "${CORE_LIB}" || rm -rf "${CORE_LIB}"
	-@test -z "${CORE_SHARED_LIB}" || rm -rf "${CORE_SHARED_LIB}"

REPLACE_STRING="s/1.6, June 2003/1.7, August 2004/;s/1995-2003/1995-2004/"

chver:
	@for f in *.cpp; do \
	  sed -e ${REPLACE_STRING} $$f > x.tmp; mv x.tmp $$f; \
	done
