From: Jesse Williamson Date: Thu, 17 Mar 2016 15:45:53 +0000 (-0700) Subject: librados examples: link and include from current source tree by default. X-Git-Tag: ses5-milestone5~465^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=109e6022beb0920f2a4746bd8c541e975494f251;p=ceph.git librados examples: link and include from current source tree by default. Fixes #15100. The Makefile now by default links and includes from the current source tree's librados and offers another option for building examples against the system's. Signed-off-by: Jesse Williamson --- diff --git a/examples/librados/Makefile b/examples/librados/Makefile index f1fbed0f9aad..8d9d926935be 100644 --- a/examples/librados/Makefile +++ b/examples/librados/Makefile @@ -1,15 +1,35 @@ -CXXFLAGS=-std=c++0x -I../../src/include -CFLAGS=-I../../src/include -all: librados_hello_world librados_hello_world_c -librados_hello_world: hello_world.cc - g++ -g -c hello_world.cc -o hello_world.o $(CXXFLAGS) - g++ -g hello_world.o -lrados -o librados_hello_world $(LDFLAGS) +CXX?=g++ +CXX_FLAGS?=-std=c++11 -Wall -Wextra -Werror -g +CXX_LIBS?=-lboost_system -lrados +CXX_INC?=$(LOCAL_LIBRADOS_INC) +CXX_CC=$(CXX) $(CXX_FLAGS) $(CXX_INC) $(LOCAL_LIBRADOS) $(CXX_LIBS) -librados_hello_world_c: hello_world_c.c - cc -g -c hello_world_c.c -o hello_world_c.o $(CFLAGS) - cc -g hello_world_c.o -lrados -o librados_hello_world_c $(LDFLAGS) +CC?=gcc +CC_FLAGS=-Wall -Wextra -Werror -g +CC_INC=$(LOCAL_LIBRADOS_INC) +CC_LIBS?=-lrados +CC_CC=$(CC) $(CC_FLAGS) $(CC_INC) $(LOCAL_LIBRADOS) $(CC_LIBS) + +# Relative path to the Ceph source: +CEPH_SRC_HOME?=../../src + +LOCAL_LIBRADOS?=-L$(CEPH_SRC_HOME)/.libs/ -Wl,-rpath,$(CEPH_SRC_HOME)/.libs +LOCAL_LIBRADOS_INC?=-I$(CEPH_SRC_HOME)/include + +all: hello_world_cpp hello_world_c + +# Build against the system librados instead of the one in the build tree: +all-system: LOCAL_LIBRADOS= +all-system: LOCAL_LIBRADOS_INC= +all-system: all + +hello_world_cpp: hello_world.cc + $(CXX_CC) -o hello_world_cpp hello_world.cc + +hello_world_c: hello_world_c.c + $(CC_CC) -o hello_world_c hello_world_c.c clean: - rm hello_world.o librados_hello_world - rm hello_world_c.o librados_hello_world_c + rm -f hello_world_cpp hello_world_c + diff --git a/examples/librados/hello_world.readme b/examples/librados/hello_world.readme index 54f89ac1a7de..d438f932e47f 100644 --- a/examples/librados/hello_world.readme +++ b/examples/librados/hello_world.readme @@ -1,10 +1,14 @@ This simple librados program can be built by running "make" (and cleaned up with "make clean"), assuming you have librados-dev already installed. +By default, the makefile will build against the librados headers and library in your +build tree (ie. using relative paths). If you would like to build the examples against +your system librados and headers, use "make all-system". + And executed using ./librados_hello_world -c ../../src/ceph.conf (or whatever path to a ceph.conf is appropriate to you, or by explicitly specifying monitors, user id, and keys). It demonstrates using librados in a non-Ceph project and the code should -be self-explanatory. \ No newline at end of file +be self-explanatory.