trick/makefiles/Makefile.common
2015-02-26 09:02:31 -06:00

144 lines
4.7 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# $Id: Makefile.common 3788 2015-02-02 20:24:00Z jpenn1 $
ifeq ( $(shell test -e ${TRICK_HOME}/trick_source/er7_utils),0)
$(info ER7 Utils Exists#########)
endif
export TRICK_HOST_TYPE := $(shell export TRICK_HOME=$(TRICK_HOME) && $(TRICK_HOME)/bin/gte TRICK_HOST_TYPE)
export TRICK_VERSION := $(shell export TRICK_HOME=$(TRICK_HOME) && $(TRICK_HOME)/bin/trick_version -v)
export TRICK_MAJOR := $(shell export TRICK_HOME=$(TRICK_HOME) && $(TRICK_HOME)/bin/trick_version -y)
export TRICK_MINOR := $(shell export TRICK_HOME=$(TRICK_HOME) && $(TRICK_HOME)/bin/trick_version -m)
-include $(TRICK_HOME)/config_${TRICK_HOST_TYPE}.mk
ifndef TRICK_CC
export TRICK_CC := $(CC)
endif
ifndef TRICK_CPPC
export TRICK_CPPC := $(CXX)
endif
ifndef TRICK_LD
export TRICK_LD := $(LD)
endif
ifndef TRICK_SFLAGS
export TRICK_SFLAGS :=
endif
export TRICK_CFLAGS
export TRICK_CXXFLAGS
export TRICK_LDFLAGS
export TRICK_SFLAGS
export TRICK_ICG_EXCLUDE
export TRICK_ICG_NOCOMMENT
export TRICK_SWIG_EXCLUDE
export TRICK_GTE_EXT
export TRICK_HOST_CPU := $(shell export TRICK_CC=$(TRICK_CC) && $(TRICK_HOME)/bin/gte TRICK_HOST_CPU)
ifndef CONFIG_MK
ifneq ($(MAKECMDGOALS), clean)
$(error Please run $(TRICK_HOME)/configure before running make)
endif
endif
# Check if configure script has modifications
ifeq ($(shell test ${TRICK_HOME}/configure -nt \
${TRICK_HOME}/config_${TRICK_HOST_TYPE}.mk && echo "NEW_CONFIG"), NEW_CONFIG)
# Ignore check if using installation path of /usr/local/trick (i.e. SLAX CD)
# Timestamps during ISO creation may be misleading due to file copy prodecures
TEMP = $(shell echo "${TRICK_HOME}" | sed -e 's/\/usr\/local\/trick.*/LINUXLIVE/')
ifneq ($(TEMP), LINUXLIVE)
# Force running of the configure script if it is newer than config_*.mk)
$(warning Please rerun "${TRICK_HOME}/configure" to get the newest configuration changes. Then follow by running "make -C $$TRICK_HOME clean all")
endif
endif
# Do this section only once
ifndef TRICK_MAKE_COMMON
export TRICK_MAKE_COMMON := 1
export TRICK_INCLUDES := -I${TRICK_HOME}/trick_source -I../include
export TRICK_VERSIONS := -DTRICK_VER=$(TRICK_MAJOR) -DTRICK_MINOR=$(TRICK_MINOR)
TRICK_CFLAGS += $(TRICK_INCLUDES) $(TRICK_VERSIONS) -fpic
ifdef TRICK_CXXFLAGS
TRICK_CXXFLAGS += $(TRICK_INCLUDES) $(TRICK_VERSIONS) -fpic
else
TRICK_CXXFLAGS := ${TRICK_CFLAGS}
endif
TRICK_SFLAGS += $(TRICK_INCLUDES) $(TRICK_VERSIONS)
# append additional c and cxx flags defined in config_*.mk files.
TRICK_CFLAGS += $(TRICK_ADDITIONAL_CFLAGS)
TRICK_CXXFLAGS += $(TRICK_ADDITIONAL_CXXFLAGS)
# -fexceptions is included to propogate execptions through C code.
TRICK_CFLAGS += -fexceptions
ifeq ($(HAVE_ZEROCONF),1)
TRICK_CFLAGS += -DHAVE_ZEROCONF
TRICK_CXXFLAGS += -DHAVE_ZEROCONF
endif
export USE_ER7_UTILS_INTEGRATORS := 0
ifneq ("$(wildcard $(ER7_UTILS_HOME))","") # if the er7_utils directory exists
USE_ER7_UTILS_INTEGRATORS := 1
TRICK_CFLAGS += -DUSE_ER7_UTILS_INTEGRATORS -I${ER7_UTILS_HOME}/..
TRICK_CXXFLAGS += -DUSE_ER7_UTILS_INTEGRATORS -I${ER7_UTILS_HOME}/..
endif
endif #TRICK_MAKE_COMMON
ifeq ($(TRICK_FORCE_32BIT), 1)
TRICK_CFLAGS += -m32
TRICK_CXXFLAGS += -m32
TRICK_LDFLAGS += -m32
endif
IS_CC_CLANG = $(shell ${TRICK_CPPC} -xc /dev/null -dM -E | grep -c __clang__)
ifeq ($(IS_CC_CLANG), 1)
TRICK_CFLAGS += -fcolor-diagnostics
TRICK_CXXFLAGS += -fcolor-diagnostics
else
GCC_MAJOR:=$(shell $(TRICK_CC) -dumpversion | cut -f1 -d.)
GCC_MINOR:=$(shell $(TRICK_CC) -dumpversion | cut -f2 -d.)
endif
ifneq ($(HDF5),)
ifneq ($(HDF5),/usr)
HDF5_LIB := -L$(HDF5)/lib -lhdf5_hl -lhdf5 -lsz
HAVE_HDF5_HOME_LIB64 := $(shell test -e ${HDF5}/lib64 && echo "1")
ifeq ($(HAVE_HDF5_HOME_LIB64),1)
HDF5_LIB = -L$(HDF5)/lib64 $(HDF5_LIB)
endif
else
HDF5_LIB = -lhdf5_hl -lhdf5
endif
endif
HAVE_GSL := $(shell test -e ${GSL_HOME}/include/gsl && echo "1")
ifeq ($(HAVE_GSL),1)
ifneq ($(GSL_HOME),/usr)
HAVE_GSL_HOME_LIB64 := $(shell test -e ${GSL_HOME}/lib64 && echo "1")
ifeq ($(HAVE_GSL_HOME_LIB64),1)
TRICK_EXEC_LINK_LIBS += -L$(GSL_HOME)/lib64
endif
TRICK_EXEC_LINK_LIBS += -L$(GSL_HOME)/lib
endif
TRICK_EXEC_LINK_LIBS += -lgsl -lgslcblas
endif
TRICK_INCLUDE = $(shell $(PERL) -e '@inc_paths = "${TRICK_CFLAGS}" =~ /-I\s*(\S+)/g ; foreach $$i (@inc_paths) { print "-I$$i "}')
TRICK_DEFINES = $(shell $(PERL) -e '@defines = "${TRICK_CFLAGS}" =~ /-D\s*(\S+)/g ; foreach $$i (@defines) { print "-D$$i "}')
IO_SRC_DIR := io_src/
OBJ_DIR := object_${TRICK_HOST_CPU}
TRICK_LIB_DIR := ${TRICK_HOME}/lib_${TRICK_HOST_CPU}
TRICK_BIN_DIR := ${TRICK_HOME}/bin_${TRICK_HOST_CPU}
MASTER := ${TRICK_LIB_DIR}/master.o
TRICK_LIBS := ${TRICK_LIB_DIR}/libtrick.a ${TRICK_LIB_DIR}/libtrick_pyip.a
DEPFILE = $(PWD)/Makefile_deps
DEPTEMPFILE = $(PWD)/Makefile_temp_depends