Commit fba37fa3 authored by Daniele Tafani's avatar Daniele Tafani
Browse files

erroneously overwritten the Makefile. This is the right one that Axel last edited.

parent 6513c080
include ../config.mk
include config.mk
CXXFLAGS = -O0 -g -Wall -Wno-unused-local-typedefs -Wno-unused-variable -Wno-unknown-warning-option -Werror -fmessage-length=0 -I$(DCDBDEPLOYPATH)/include/ -I$(DCDBBASEPATH)/include/
OBJS = ipmipusher.o settings.o ipmiservice.o montblancservice.o
LIBS = -L$(DCDBDEPLOYPATH)/lib/ -lmosquitto -lssl -lcrypto -lpthread -lOpenIPMI -lOpenIPMIposix -lboost_system -lboost_thread
TARGET = montblancpusher
LIBRARIES = DCDBLib
PROJECTS = FilePusher SysFsPusher CollectAgent ParastationProvider IPMIPusher MontBlancPusher SNMPPusher DCDBTools
.PHONY : all clean install
CASSANDRA_VERSION = 2.1.2
MOSQUITTO_VERSION = 1.3.5
BOOST_VERSION = 1.57.0
SNMP_VERSION = 5.7.2.1
OPENSSL_VERSION = 1.0.1k
CPPDRV_VERSION = 1.0.0
LIBUV_VERSION = 0.10.32
$(TARGET): $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LIBS)
all: $(TARGET)
BOOST_VERSION_U = $(subst .,_,$(BOOST_VERSION))
DISTFILES = apache-cassandra-$(CASSANDRA_VERSION).tar.gz;http://apache.cs.utah.edu/cassandra/$(CASSANDRA_VERSION)/apache-cassandra-$(CASSANDRA_VERSION)-bin.tar.gz \
mosquitto-$(MOSQUITTO_VERSION).tar.gz;http://mosquitto.org/files/source/mosquitto-$(MOSQUITTO_VERSION).tar.gz \
rudeconfig-5.0.5.tar.gz;http://rudeserver.com/config/download/rudeconfig-5.0.5.tar.gz \
OpenIPMI-2.0.19.tar.gz;http://netcologne.dl.sourceforge.net/project/openipmi/OpenIPMI%202.0%20Library/OpenIPMI-2.0.19.tar.gz \
boost_$(BOOST_VERSION_U).tar.gz;http://netcologne.dl.sourceforge.net/project/boost/boost/$(BOOST_VERSION)/boost_$(BOOST_VERSION_U).tar.gz \
net-snmp-$(SNMP_VERSION).zip;http://netcologne.dl.sourceforge.net/project/net-snmp/net-snmp/$(SNMP_VERSION)/net-snmp-$(SNMP_VERSION).zip \
openssl-$(OPENSSL_VERSION).tar.gz;https://www.openssl.org/source/openssl-$(OPENSSL_VERSION).tar.gz \
cpp-driver-$(CPPDRV_VERSION).tar.gz;https://github.com/datastax/cpp-driver/archive/1.0.0.tar.gz \
libuv-v$(LIBUV_VERSION).tar.gz;http://www.libuv.org/dist/v$(LIBUV_VERSION)/libuv-v$(LIBUV_VERSION).tar.gz
FETCH = wget -c --no-check-certificate -O -
OPENSSL_TARGET = $(if $(findstring $(shell uname),Darwin),"darwin64-x86_64-cc", "linux-x86_64")
MAKETHREADS ?= $(if $(findstring $(shell uname),Darwin),$(shell sysctl machdep.cpu.thread_count | cut -b 27-),\
$(if $(findstring $(shell uname),Linux),$(shell cat /proc/cpuinfo | grep processor | wc -l),4))
CASSANDRA_CLUSTER_NAME = Datacenter Monitor Database
CASSANDRA_FLUSH_LARGEST_MEMTABLES_AT = 0.5
CASSANDRA_REDUCE_CACHE_SIZES_AT = 0.6
CASSANDRA_REDUCE_CACHE_CAPACITY_TO = 0.4
CASSANDRA_PARTITIONER = org.apache.cassandra.dht.ByteOrderedPartitioner
CASSANDRA_COMMITLOG_TOTAL_SPACE_IN_MB = 256
CASSANDRA_COMMITLOG_SEGMENT_SIZE_IN_MB = 16
DISTFILESNAMES = $(foreach f,$(DISTFILES),$(shell echo "$(f)" | sed 's/;.*//'))
DISTFILESPATHS = $(foreach f,$(DISTFILES),$(shell echo "$(f)" | sed 's/.tar.gz;.*//' | sed 's/.zip;.*//' ))
CFLAGS += -I$(DCDBDEPLOYPATH)/include -O0 -g
CXX11FLAGS = --std=c++11 -Wno-c99-extensions -Wno-missing-field-initializers
LDFLAGS += -L$(DCDBDEPLOYPATH)/lib -O0 -g
.PHONY : info all clean cleanall distclean $(LIBRARIES) $(PROJECTS)
info:
@echo ""
@echo "DCDB - Data Center Database"
@echo "Buildsystem description"
@echo ""
@echo "Use the DCDBDEPSPATH environment variable to specify a build path for the"
@echo "dependencies. Currently, the project dependenceis will be built to:"
@echo "$(DCDBDEPSPATH)"
@echo ""
@echo "Use the DCDBDEPLOYPATH environment variable to specifiy the path for deployment"
@echo "of all tools. Currently, the directory for deployment/staging is:"
@echo "$(DCDBDEPLOYPATH)"
@echo ""
@echo "There should only be a few requirements to build DCDB."
@echo "On Ubuntu, these are: build-essential, cmake, libssl-dev"
@echo "To run Cassandra, you should also have a JAVA runtime installed."
@echo ""
@echo "To modify the number of parallel build threads, you may set the MAKETHREADS"
@echo "environment variable. Currently, your system is configured to execute a"
@echo "parallel build with $(MAKETHREADS) threads."
@echo ""
@echo "To start, please type:"
@echo " make all"
@echo $(OPENSSLPREFIX)
clean:
rm -f $(OBJS) $(TARGET)
@$(foreach l,$(LIBRARIES),echo "Cleaning $(l)..." && make -C $(l) clean && echo;)
@$(foreach p,$(PROJECTS),echo "Cleaning $(p)..." && make -C $(p) clean && echo;)
cleanall: clean
@cd $(DCDBDEPSPATH) && rm -f .prerequesites .extract-distfiles .download-distfiles
@cd $(DCDBDEPSPATH) && rm -rf mosquitto_build
@$(foreach f,$(DISTFILESPATHS),echo "Cleaning $(f)..." && rm -rf $(DCDBDEPSPATH)/$(f) && echo;)
distclean: clean
@echo "Wiping dependencies..."
@rm -rf $(DCDBDEPSPATH)
mrproper: distclean
$(eval U := $(shell whoami))
@if [ "$(U)" = "root" ]; then echo "Sorry, I won't allow you to use mrproper as root."; exit 1; fi
@echo ""
@echo "Wiping installation directory..."
@rm -rf $(DCDBDEPLOYPATH)
all: $(DCDBDEPSPATH)/.prerequesites
@make $(LIBRARIES)
@make $(PROJECTS)
$(DCDBDEPSPATH)/.prerequesites: $(DCDBDEPSPATH)/.extract-distfiles
@echo ""
@echo "Preparing patches..."
@cp -a patches $(DCDBDEPSPATH)/
$(eval S := $(shell echo "$(DISTFILESPATHS)" | sed 's/.*openssl/openssl/' | sed 's/\ .*//'))
@if [ ! -e $(DCDBDEPSPATH)/$(S)/.installed ]; then \
echo ""; \
echo "Building OpenSSL library..."; \
cd $(DCDBDEPSPATH)/$(S) && ./Configure shared --prefix=$(DCDBDEPLOYPATH) $(OPENSSL_TARGET); \
cd $(DCDBDEPSPATH)/$(S) && make && make install_sw && touch $(DCDBDEPSPATH)/$(S)/.installed; \
else \
echo "Skipping OpenSSL library (already built)..."; \
fi
$(eval M := $(shell echo "$(DISTFILESPATHS)" | sed 's/.*mosquitto/mosquitto/' | sed 's/\ .*//'))
@if [ ! -e $(DCDBDEPSPATH)/$(M)/.installed ]; then \
echo ""; \
echo "Building Mosquitto library..."; \
if [ -e $(DCDBDEPSPATH)/patches/$(M).patch ]; then \
echo "Patching Mosquitto..."; \
cd $(DCDBDEPSPATH)/$(M) && (patch -N -p0 < $(DCDBDEPSPATH)/patches/$(M).patch || true); \
fi; \
mkdir -p $(DCDBDEPSPATH)/mosquitto_build; \
cd $(DCDBDEPSPATH)/mosquitto_build && \
cmake -DWITH_SRV=no -DWITH_TLS=OFF -DCMAKE_INSTALL_PREFIX:PATH=$(DCDBDEPLOYPATH)/ $(DCDBDEPSPATH)/$(M) && \
make -j $(MAKETHREADS) && make install && \
touch $(DCDBDEPSPATH)/$(M)/.installed; \
else \
echo "Skipping Mosquitto library (already built)..."; \
fi
$(eval R := $(shell echo "$(DISTFILESPATHS)" | sed 's/.*rudeconfig/rudeconfig/' | sed 's/\ .*//'))
@if [ ! -e $(DCDBDEPSPATH)/$(R)/.installed ]; then \
echo ""; \
echo "Building Rudeconfig library..."; \
cd $(DCDBDEPSPATH)/$(R) && ./configure --prefix=$(DCDBDEPLOYPATH) && \
make -j $(MAKETHREADS) && \
chmod +x install-sh && \
make install && \
touch $(DCDBDEPSPATH)/$(R)/.installed; \
else \
echo "Skipping Rudeconfig library (already built)..."; \
fi
$(eval O := $(shell echo "$(DISTFILESPATHS)" | sed 's/.*OpenIPMI/OpenIPMI/' | sed 's/\ .*//'))
$(eval X := $(shell uname))
@if [ ! -e $(DCDBDEPSPATH)/$(O)/.installed ]; then \
echo ""; \
echo "Building OpenIPMI library..."; \
if [ -e $(DCDBDEPSPATH)/patches/$(O).patch ]; then \
echo "Patching OpenIPMI..."; \
cd $(DCDBDEPSPATH)/$(O) && (patch -N -p1 < $(DCDBDEPSPATH)/patches/$(O).patch || true); \
fi; \
if [ "$(X)" == "Darwin" ]; then \
echo "Fixing OpenIPMI for Mac OS..."; \
cd $(DCDBDEPSPATH)/$(O) && find . -name 'Makefile*' | xargs sed -i '' -e 's/Map/map/g'; \
fi; \
cd $(DCDBDEPSPATH)/$(O) && ./configure --prefix=$(DCDBDEPLOYPATH) --with-swig=no --with-perl=no --with-python=no CFLAGS="$(CFLAGS)"; \
cd $(DCDBDEPSPATH)/$(O) && make -j $(MAKETHREADS) && make install && touch $(DCDBDEPSPATH)/$(O)/.installed; \
else \
echo "Skipping OpenIPMI library (already built)..."; \
fi
$(eval B := $(shell echo "$(DISTFILESPATHS)" | sed 's/.*boost/boost/' | sed 's/\ .*//'))
@if [ ! -e $(DCDBDEPSPATH)/$(B)/.installed ]; then \
echo ""; \
echo "Building Boost..."; \
if [ -e $(DCDBDEPSPATH)/patches/$(B).patch ]; then \
echo "Patching Boost..."; \
cd $(DCDBDEPSPATH)/$(B) && (patch -N -p2 < $(DCDBDEPSPATH)/patches/$(B).patch || true); \
fi; \
cd $(DCDBDEPSPATH)/$(B) && ./bootstrap.sh --prefix=$(DCDBDEPLOYPATH) \
--with-libraries=atomic,chrono,date_time,exception,filesystem,program_options,random,system,thread,timer && \
./b2 -j $(MAKETHREADS) install && touch $(DCDBDEPSPATH)/$(B)/.installed; \
else \
echo "Skipping Boost (already built)..."; \
fi
$(eval S := $(shell echo "$(DISTFILESPATHS)" | sed 's/.*net-snmp/net-snmp/' | sed 's/\ .*//'))
@if [ ! -e $(DCDBDEPSPATH)/$(S)/.installed ]; then \
echo ""; \
echo "Building net-snmp..."; \
if [ -e $(DCDBDEPSPATH)/patches/$(S).patch ]; then \
echo "Patching net-snmp..."; \
cd $(DCDBDEPSPATH)/$(S) && (patch -N -p1 < $(DCDBDEPSPATH)/patches/$(S).patch || true); \
fi; \
cd $(DCDBDEPSPATH)/$(S) && env CFLAGS="$(CFLAGS)" ./configure --prefix=$(DCDBDEPLOYPATH) --with-default-snmp-version="3" \
--with-sys-contact="@@no.where" --with-sys-location="Unknown" --with-logfile="$(DCDBDEPLOYPATH)/var/log/snmpd.log" \
--with-persistent-directory="$(DCDBDEPLOYPATH)/var/net-snmp" --disable-embedded-perl --without-perl-modules \
--with-openssl=$(DCDBDEPLOYPATH) ; \
cd $(DCDBDEPSPATH)/$(S) && env CFLAGS="$(CFLAGS)" make -j $(MAKETHREADS) && make install && touch $(DCDBDEPSPATH)/$(S)/.installed; \
else \
echo "Skipping net-snmp (already built)..."; \
fi
$(eval U := $(shell echo "$(DISTFILESPATHS)" | sed 's/.*libuv/libuv/' | sed 's/\ .*//'))
@if [ ! -e $(DCDBDEPSPATH)/$(U)/.installed ]; then \
echo ""; \
echo "Building libuv..."; \
cd $(DCDBDEPSPATH)/$(U) && \
env CFLAGS="$(CFLAGS)" make -j $(MAKETHREADS); \
echo "Installing libuv..."; \
mkdir -p $(DCDBDEPLOYPATH)/include/uv-private; \
cd $(DCDBDEPSPATH)/$(U) && install -c include/uv.h $(DCDBDEPLOYPATH)/include/; \
cd $(DCDBDEPSPATH)/$(U) && install -c include/uv-private/* $(DCDBDEPLOYPATH)/include/uv-private/; \
mkdir -p $(DCDBDEPLOYPATH)/lib/; \
if [ -e $(DCDBDEPSPATH)/$(U)/libuv.a ]; then cd $(DCDBDEPSPATH)/$(U) && install -c libuv.a $(DCDBDEPLOYPATH)/lib/; fi; \
if [ -e $(DCDBDEPSPATH)/$(U)/libuv.so ]; then cd $(DCDBDEPSPATH)/$(U) && install -c libuv.so $(DCDBDEPLOYPATH)/lib/; ln -s $(DCDBDEPLOYPATH)/lib/libuv.so $(DCDBDEPLOYPATH)/lib/libuv.so.0.10; fi; \
if [ -e $(DCDBDEPSPATH)/$(U)/libuv.dylib ]; then cd $(DCDBDEPSPATH)/$(U) && install -c libuv.dylib $(DCDBDEPLOYPATH)/lib/; fi; \
touch $(DCDBDEPSPATH)/$(U)/.installed; \
else \
echo "Skipping libuv (already built)..."; \
fi
$(eval D := $(shell echo "$(DISTFILESPATHS)" | sed 's/.*cpp-driver/cpp-driver/' | sed 's/\ .*//'))
@if [ ! -e $(DCDBDEPSPATH)/$(D)/.installed ]; then \
echo ""; \
echo "Building cpp-driver..."; \
if [ -e $(DCDBDEPSPATH)/patches/$(D).patch ]; then \
echo "Patching cpp-driver..."; \
cd $(DCDBDEPSPATH)/$(D) && (patch -N -p1 < $(DCDBDEPSPATH)/patches/$(D).patch || true); \
fi; \
mkdir -p $(DCDBDEPSPATH)/cpp-driver_build; \
cd $(DCDBDEPSPATH)/cpp-driver_build && \
cmake -DCMAKE_CXX_FLAGS="$(CXX11FLAGS) -Wno-unused-command-line-argument -L$(DCDBDEPLOYPATH)/lib " \
-DCASS_USE_EXTERNAL_BOOST=YES \
-DCASS_BUILD_EXAMPLES=NO \
-DINSTALL_LIB_DIR=lib \
-DCMAKE_INSTALL_PREFIX=$(DCDBDEPLOYPATH)/ \
-DCMAKE_EXE_LINKER_FLAGS="-L$(DCDBDEPLOYPATH)/lib -lboost_random" \
$(DCDBDEPSPATH)/$(D) && \
make -j $(MAKETHREADS) && make install && \
touch $(DCDBDEPSPATH)/$(D)/.installed; \
else \
echo "Skipping cpp-driver (already built)..."; \
fi
@echo ""
@echo "Staging and configuring Cassandra..."
@$(eval C := $(shell echo "$(DISTFILESPATHS)" | sed 's/.*apache-cassandra/apache-cassandra/' | sed 's/\ .*//'))
@rsync -a $(DCDBDEPSPATH)/$(C)/ $(DCDBDEPLOYPATH)/cassandra
@$(eval P := $(shell echo "$(DCDBDEPLOYPATH)" | sed 's/\//\\\//g'))
@sed -i.original -e 's/\/var\/lib\/cassandra/$(P)\/var\/lib\/cassandra/g' $(DCDBDEPLOYPATH)/cassandra/conf/cassandra.yaml
@sed -i -e 's/.*cluster_name:.*/cluster_name:\ '\''$(CASSANDRA_CLUSTER_NAME)'\''/' $(DCDBDEPLOYPATH)/cassandra/conf/cassandra.yaml
@sed -i -e 's/.*flush_largest_memtables_at:.*/flush_largest_memtables_at:\ $(CASSANDRA_FLUSH_LARGEST_MEMTABLES_AT)/' $(DCDBDEPLOYPATH)/cassandra/conf/cassandra.yaml
@sed -i -e 's/.*reduce_cache_sizes_at:.*/reduce_cache_sizes_at:\ $(CASSANDRA_REDUCE_CACHE_SIZES_AT)/' $(DCDBDEPLOYPATH)/cassandra/conf/cassandra.yaml
@sed -i -e 's/.*reduce_cache_capacity_to:.*/reduce_cache_capacity_to:\ $(CASSANDRA_REDUCE_CACHE_CAPACITY_TO)/' $(DCDBDEPLOYPATH)/cassandra/conf/cassandra.yaml
@sed -i -e 's/.*partitioner:.*/partitioner:\ $(CASSANDRA_PARTITIONER)/' $(DCDBDEPLOYPATH)/cassandra/conf/cassandra.yaml
@sed -i -e 's/.*commitlog_total_space_in_mb:.*/commitlog_total_space_in_mb: $(CASSANDRA_COMMITLOG_TOTAL_SPACE_IN_MB)/' $(DCDBDEPLOYPATH)/cassandra/conf/cassandra.yaml
@sed -i -e 's/.*commitlog_segment_size_in_mb:.*/commitlog_segment_size_in_mb: $(CASSANDRA_COMMITLOG_SEGMENT_SIZE_IN_MB)/' $(DCDBDEPLOYPATH)/cassandra/conf/cassandra.yaml
@touch $(DCDBDEPSPATH)/.prerequesites
$(DCDBDEPSPATH)/.extract-distfiles: $(foreach f,$(DISTFILESPATHS),$(DCDBDEPSPATH)/$(f)/.dirstamp)
@touch $(DCDBDEPSPATH)/.extract-distfiles
$(DCDBDEPSPATH)/.download-distfiles: $(foreach f,$(DISTFILESNAMES),$(DCDBDEPSPATH)/distfiles/$(f))
@touch $(DCDBDEPSPATH)/.download-distfiles
$(DCDBDEPSPATH)/distfiles/%:
@mkdir -p $(DCDBDEPSPATH)/distfiles
$(eval F := $(shell echo "$@" | sed 's/.*\///'))
$(eval FF := $(shell echo "$(DISTFILES)" | sed 's/.*$(F);//' | sed 's/ .*//'))
@echo "Downloading $(FF) as $(F)..."
@cd $(DCDBDEPSPATH)/distfiles && $(FETCH) $(FF) > $(F)
$(DCDBDEPSPATH)/%/.dirstamp: $(DCDBDEPSPATH)/.download-distfiles
$(eval F := $(shell echo "$@" | sed 's/\/.dirstamp//' | sed 's/.*\///'))
@echo "Extracting $(F)..."
@if [ "$(suffix $(shell ls $(DCDBDEPSPATH)/distfiles/$(F)*))" = ".gz" ]; then \
cd $(DCDBDEPSPATH) && tar xzf distfiles/$(F).tar.gz; \
else \
cd $(DCDBDEPSPATH) && unzip distfiles/$(F).zip > /dev/null; \
fi
@touch $@
$(LIBRARIES): $(DCDBDEPSPATH)/.prerequesites
@echo ""
@echo "Building Library $@..."
@$(MAKE) -j $(MAKETHREADS) -C $@
@echo "Installing Library $@..."
@$(MAKE) -C $@ install
install: $(TARGET)
install $(TARGET) $(DCDBDEPLOYPATH)/bin/
$(PROJECTS):
@echo ""
@echo "Building $@..."
@$(MAKE) -j $(MAKETHREADS) -C $@
@echo "Installing $@..."
@$(MAKE) -C $@ install
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment