CXXFLAGS += -std=c++0x GCCMAJOR := $(shell ${CXX} -dumpversion | cut -d"." -f1) GCCMINOR := $(shell ${CXX} -dumpversion | cut -d"." -f2) ifeq ($(GCCMAJOR),4) ifneq ($(GCCMINOR),8) SYSROOT := $(shell ${CXX} -print-sysroot) endif endif MACHINE := $(shell ${CXX} -dumpmachine) TANGO_DIR := /usr/local/tango-9.2.2 OMNIORB_DIR := /usr/local/omniorb-4.2.1 ZMQ_DIR := /usr/local/zeromq-4.0.7 RUNTIME_DIR := /runtime TANGO_INC := ${TANGO_DIR}/include/tango OMNIORB_INC := ${OMNIORB_DIR}/include RUNTIME_INC := ${RUNTIME_DIR}/include ZMQ_INC := ${ZMQ_DIR}/include ifeq ($(SYSROOT),) INC_DIR = -I${TANGO_INC} -I${OMNIORB_INC} -I${ZMQ_INC} -I${RUNTIME_INC} else INC_DIR = -I${SYSROOT}/usr/include/tango -I/srv/${MACHINE}/runtime/ endif TANGO_LIB = ${TANGO_DIR}/lib OMNIORB_LIB = ${OMNIORB_DIR}/lib RUNTIME_LIB = ${RUNTIME_DIR}/lib ZMQ_LIB = ${ZMQ_DIR}/lib ifeq ($(SYSROOT),) LIB_DIR = -L${TANGO_LIB} -L${OMNIORB_LIB} -L${RUNTIME_LIB} -L${ZMQ_LIB} else LIB_DIR = -L/srv/${MACHINE}/runtime/lib endif #----------------------------------------- # Default make entry #----------------------------------------- default: release release debug: bin/$(NAME_SRV) #----------------------------------------- # Set CXXFLAGS and LDFLAGS #----------------------------------------r CXXFLAGS += -D__linux__ -D__OSVERSION__=2 -pedantic -Wall \ -Wno-non-virtual-dtor -Wno-long-long -DOMNI_UNLOADABLE_STUBS \ $(INC_DIR) -Isrc ifeq ($(GCCMAJOR),4) CXXFLAGS += -Wextra endif LDFLAGS += $(LIB_DIR) -ltango -llog4tango -lomniORB4 -lomniDynamic4 \ -lCOS4 -lomnithread -lzmq #----------------------------------------- # Set dependencies #----------------------------------------- SRC_FILES += $(wildcard src/*.cpp) OBJ_FILES += $(addprefix obj/,$(notdir $(SRC_FILES:.cpp=.o))) obj/%.o: $(SRC_FILES:%.cpp) $(CXX) $(CXXFLAGS) -c -o $@ $< .nse_depinfo: $(SRC_FILES) @$(CXX) $(CXXFLAGS) -M -MM $^ | sed 's/\(.*\)\.o/obj\/\1.o/g' > $@ -include .nse_depinfo #----------------------------------------- # Main make entries #----------------------------------------- bin/$(NAME_SRV): bin obj $(OBJ_FILES) $(CXX) $(CXXFLAGS) $(OBJ_FILES) -o bin/$(NAME_SRV) $(LDFLAGS) clean: @rm -fr obj/ bin/ core* .nse_depinfo src/*~ bin obj: @mkdir $@ #----------------------------------------- # Target specific options #----------------------------------------- release: CXXFLAGS += -O2 -DNDEBUG release: LDFLAGS += -s debug: CXXFLAGS += -ggdb3 .PHONY: clean