blob: c84ff8932fece9af0a265249b3870fcd968a7296 [file] [log] [blame]
##===- polly/lib/Makefile -----------------------*- Makefile -*-===##
#
# Indicate where we are relative to the top of the source tree.
#
LEVEL :=..
LIBRARYNAME=LLVMPolly
LOADABLE_MODULE = 1
include $(LEVEL)/Makefile.config
CPP.Flags += $(POLLY_INC)
DIRS = Exchange
USEDLIBS = pollyexchange.a
DIRS += Analysis
USEDLIBS += pollyanalysis.a
DIRS += CodeGen
USEDLIBS += pollycodegen.a
# This needs to be added after the files that use it, otherwise some functions
# from pollysupport are not available. They will be eliminated if they are
# not used at the time of linking pollysupport.a
DIRS += Support
USEDLIBS += pollysupport.a
DIRS += JSON
USEDLIBS += pollyjson.a
# TODO: Export symbols for RTTI or EH?
#
# Include Makefile.common so we know what to do.
#
include $(LEVEL)/Makefile.common
LIBS += $(POLLY_LD) $(POLLY_LIB)
$(LibDir)/libpollyanalysis.a : $(LibDir)/.dir $(PROJ_OBJ_DIR)/Analysis/$(BuildMode)/.dir \
$(PROJ_SRC_DIR)/Analysis/*
$(Verb) if [ -d $(PROJ_SRC_DIR)/Analysis ]; then\
if ([ ! -f Analysis/Makefile ] || \
command test Analysis/Makefile -ot $(PROJ_SRC_DIR)/Analysis/Makefile ); then \
$(MKDIR) Analysis; \
$(CP) $(PROJ_SRC_DIR)/Analysis/Makefile Analysis/Makefile; \
fi; \
($(MAKE) -C Analysis $@ ) || exit 1; \
fi
$(LibDir)/libpollycodegen.a : $(LibDir)/.dir $(PROJ_OBJ_DIR)/CodeGen/$(BuildMode)/.dir \
$(PROJ_SRC_DIR)/CodeGen/*
$(Verb) if [ -d $(PROJ_SRC_DIR)/CodeGen ]; then\
if ([ ! -f CodeGen/Makefile ] || \
command test CodeGen/Makefile -ot $(PROJ_SRC_DIR)/CodeGen/Makefile ); then \
$(MKDIR) CodeGen; \
$(CP) $(PROJ_SRC_DIR)/CodeGen/Makefile CodeGen/Makefile; \
fi; \
($(MAKE) -C CodeGen $@ ) || exit 1; \
fi
$(LibDir)/libpollyexchange.a : $(LibDir)/.dir $(PROJ_OBJ_DIR)/Exchange/$(BuildMode)/.dir \
$(PROJ_SRC_DIR)/Exchange/*
$(Verb) if [ -d $(PROJ_SRC_DIR)/Exchange ]; then\
if ([ ! -f Exchange/Makefile ] || \
command test Exchange/Makefile -ot $(PROJ_SRC_DIR)/Exchange/Makefile ); then \
$(MKDIR) Exchange; \
$(CP) $(PROJ_SRC_DIR)/Exchange/Makefile Exchange/Makefile; \
fi; \
($(MAKE) -C Exchange $@ ) || exit 1; \
fi
$(LibDir)/libpollysupport.a : $(LibDir)/.dir $(PROJ_OBJ_DIR)/Support/$(BuildMode)/.dir \
$(PROJ_SRC_DIR)/Support/*
$(Verb) if [ -d $(PROJ_SRC_DIR)/Support ]; then\
if ([ ! -f Support/Makefile ] || \
command test Support/Makefile -ot $(PROJ_SRC_DIR)/Support/Makefile ); then \
$(MKDIR) Support; \
$(CP) $(PROJ_SRC_DIR)/Support/Makefile Support/Makefile; \
fi; \
($(MAKE) -C Support $@ ) || exit 1; \
fi
$(LibDir)/libpollyjson.a : $(LibDir)/.dir $(PROJ_OBJ_DIR)/JSON/$(BuildMode)/.dir \
$(PROJ_SRC_DIR)/JSON/*
$(Verb) if [ -d $(PROJ_SRC_DIR)/JSON ]; then\
if ([ ! -f JSON/Makefile ] || \
command test JSON/Makefile -ot $(PROJ_SRC_DIR)/JSON/Makefile ); then \
$(MKDIR) JSON; \
$(CP) $(PROJ_SRC_DIR)/JSON/Makefile JSON/Makefile; \
fi; \
($(MAKE) -C JSON $@ ) || exit 1; \
fi