From 16c96fc0224145192f803fecbdb20ec05fdaf5e2 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Thu, 20 Jun 2013 09:30:20 -0400 Subject: [PATCH] doc/examples: support BSD make Signed-off-by: Mathieu Desnoyers --- doc/examples/Makefile.am | 20 +++++++++--- doc/examples/demo/Makefile | 42 +++++++++++--------------- doc/examples/easy-ust/Makefile | 30 ++++++------------ doc/examples/gen-tp/Makefile | 6 ++-- doc/examples/hello-static-lib/Makefile | 32 ++++++-------------- 5 files changed, 56 insertions(+), 74 deletions(-) diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am index e9dd170d..583909b6 100644 --- a/doc/examples/Makefile.am +++ b/doc/examples/Makefile.am @@ -1,5 +1,3 @@ -SUBDIRS = easy-ust demo hello-static-lib - doc_examplesdir = ${docdir}/examples doc_examples_easy_ustdir = ${docdir}/examples/easy-ust doc_examples_gen_tpdir = ${docdir}/examples/gen-tp @@ -32,5 +30,19 @@ dist_doc_examples_hello_static_lib_DATA = hello-static-lib/Makefile \ hello-static-lib/ust_tests_hello.h \ hello-static-lib/tp.c -BUILD_EXAMPLES_FROM_TREE = 1 -export +if NO_SHARED +# Don't build examples if shared libraries support was explicitly +# disabled. +else +SUBDIRS_PROXY = easy-ust demo hello-static-lib + +all-local: + for subdir in $(SUBDIRS_PROXY); do \ + cd $$subdir && $(MAKE) AM_CPPFLAGS="-I../../../include/" AM_LDFLAGS='-L../../../liblttng-ust/.libs/ -Wl,-rpath="$(PWD)/../../liblttng-ust/.libs/"' $(AM_MAKEFLAGS) all; cd ..; \ + done + +clean-local: + for subdir in $(SUBDIRS_PROXY); do \ + cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) clean; cd ..; \ + done +endif diff --git a/doc/examples/demo/Makefile b/doc/examples/demo/Makefile index d55a1b19..27e41460 100644 --- a/doc/examples/demo/Makefile +++ b/doc/examples/demo/Makefile @@ -8,54 +8,46 @@ # Permission to modify the code and to distribute modified code is # granted, provided the above notices are retained, and a notice that # the code was modified is included with the above copyright notice. - +# # This Makefile is not using automake so that users may see how to build # a program with tracepoint provider probes as stand-alone shared objects. +# +# This makefile is purposefully kept simple to support GNU and BSD make. CC = gcc LIBS = -ldl # On Linux #LIBS = -lc # On BSD LOCAL_CPPFLAGS += -I. -# Only necessary when building from the source tree and lttng-ust is not -# installed -ifdef BUILD_EXAMPLES_FROM_TREE -LOCAL_CPPFLAGS += -I../../../include/ -LIBLTTNG_UST_PATH = ../../../liblttng-ust/.libs/ -override LDFLAGS += -L$(LIBLTTNG_UST_PATH) -Wl,-rpath='$$ORIGIN/$(LIBLTTNG_UST_PATH)' - -# Third-party Makefiles have to define these targets to integrate with an -# automake project -EMPTY_AUTOMAKE_TARGETS = distdir install install-data install-exec uninstall \ - install-dvi install-html install-info install-ps install-pdf \ - installdirs check installcheck mostlyclean distclean maintainer-clean \ - dvi html pdf ps info tags ctags -.PHONY: $(EMPTY_AUTOMAKE_TARGETS) -$(EMPTY_AUTOMAKE_TARGETS): -endif - all: demo lttng-ust-provider-ust-tests-demo.so lttng-ust-provider-ust-tests-demo3.so tp.o: tp.c ust_tests_demo.h - $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) -fpic -c -o $@ $< + $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) \ + $(AM_CFLAGS) -fpic -c -o $@ $< tp2.o: tp2.c ust_tests_demo2.h - $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) -fpic -c -o $@ $< + $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) \ + $(AM_CFLAGS) -fpic -c -o $@ $< lttng-ust-provider-ust-tests-demo.so: tp.o tp2.o - $(CC) -shared -Wl,--no-as-needed -o $@ $(LDFLAGS) -llttng-ust $^ + $(CC) -shared -Wl,--no-as-needed -o $@ $(LDFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(AM_CFLAGS) -llttng-ust tp.o tp2.o tp3.o: tp3.c ust_tests_demo3.h - $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) -fpic -c -o $@ $< + $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) \ + $(AM_CFLAGS) -fpic -c -o $@ $< lttng-ust-provider-ust-tests-demo3.so: tp3.o - $(CC) -shared -Wl,--no-as-needed -o $@ $(LDFLAGS) -llttng-ust $^ + $(CC) -shared -Wl,--no-as-needed -o $@ $(LDFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(AM_CFLAGS) -llttng-ust tp3.o demo.o: demo.c - $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) -c -o $@ $< + $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) \ + $(AM_CFLAGS) -c -o $@ $< demo: demo.o - $(CC) -o $@ $^ $(LIBS) + $(CC) $(LDFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(AM_CFLAGS) \ + -o $@ demo.o $(LIBS) .PHONY: clean clean: diff --git a/doc/examples/easy-ust/Makefile b/doc/examples/easy-ust/Makefile index e3546e11..15ce7ed8 100644 --- a/doc/examples/easy-ust/Makefile +++ b/doc/examples/easy-ust/Makefile @@ -9,43 +9,31 @@ # Permission to modify the code and to distribute modified code is # granted, provided the above notices are retained, and a notice that # the code was modified is included with the above copyright notice. - +# # This makefile is not using automake so that users can see how to build # a program with a statically embedded tracepoint provider probe. # the "html" target helps for documentation (req. code2html) +# +# This makefile is purposefully kept simple to support GNU and BSD make. CC = gcc LIBS = -ldl -llttng-ust # On Linux #LIBS = -lc -llttng-ust # On BSD LOCAL_CPPFLAGS += -I. -# Only necessary when building from the source tree and lttng-ust is not -# installed -ifdef BUILD_EXAMPLES_FROM_TREE -LOCAL_CPPFLAGS += -I../../../include/ -LIBLTTNG_UST_PATH = ../../../liblttng-ust/.libs/ -override LDFLAGS += -L$(LIBLTTNG_UST_PATH) -Wl,-rpath='$$ORIGIN/$(LIBLTTNG_UST_PATH)' - -# Third-party Makefiles have to define these targets to integrate with an -# automake project -EMPTY_AUTOMAKE_TARGETS = distdir install install-data install-exec uninstall \ - install-dvi install-html install-info install-ps install-pdf \ - installdirs check installcheck mostlyclean distclean maintainer-clean \ - dvi pdf ps info tags ctags -.PHONY: $(EMPTY_AUTOMAKE_TARGETS) -$(EMPTY_AUTOMAKE_TARGETS): -endif - all: sample sample: sample.o tp.o - $(CC) -o $@ $^ $(LDFLAGS) $(LIBS) + $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(AM_CFLAGS) \ + $(LIBS) sample.o tp.o sample.o: sample.c sample_component_provider.h - $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) -c -o $@ $< + $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) \ + $(AM_CFLAGS) -c -o $@ $< tp.o: tp.c sample_component_provider.h - $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) -c -o $@ $< + $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) \ + $(AM_CFLAGS) -c -o $@ $< html: sample_component_provider.html sample.html tp.html diff --git a/doc/examples/gen-tp/Makefile b/doc/examples/gen-tp/Makefile index ac18d492..c64cb9d4 100644 --- a/doc/examples/gen-tp/Makefile +++ b/doc/examples/gen-tp/Makefile @@ -10,10 +10,12 @@ # Permission to modify the code and to distribute modified code is # granted, provided the above notices are retained, and a notice that # the code was modified is included with the above copyright notice. - +# # This makefile is not using automake so that people can see how to make # simply. It builds a program with a statically embedded tracepoint # provider probe. +# +# This makefile is purposefully kept simple to support GNU and BSD make. CC = gcc @@ -23,7 +25,7 @@ LIBS = -ldl -llttng-ust #On Linux all: sample sample: sample.o sample_tracepoint.o - $(CC) -o $@ $^ $(LIBS) + $(CC) -o $@ $(LIBS) sample.o sample_tracepoint.o sample.o: sample.c sample_tracepoint.h $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< diff --git a/doc/examples/hello-static-lib/Makefile b/doc/examples/hello-static-lib/Makefile index 85c64c1b..f1913328 100644 --- a/doc/examples/hello-static-lib/Makefile +++ b/doc/examples/hello-static-lib/Makefile @@ -8,45 +8,33 @@ # Permission to modify the code and to distribute modified code is # granted, provided the above notices are retained, and a notice that # the code was modified is included with the above copyright notice. - +# # This Makefile is not using automake so that users may see how to build # a program with tracepoint provider probes compiled as static libraries. +# +# This makefile is purposefully kept simple to support GNU and BSD make. CC = gcc LOCAL_CPPFLAGS += -I. LIBS = -ldl -llttng-ust # On Linux #LIBS = -lc -llttng-ust # On BSD -# Only necessary when building from the source tree and lttng-ust is not -# installed -ifdef BUILD_EXAMPLES_FROM_TREE -LOCAL_CPPFLAGS += -I../../../include/ -LIBLTTNG_UST_PATH = ../../../liblttng-ust/.libs/ -override LDFLAGS += -L$(LIBLTTNG_UST_PATH) -Wl,-rpath='$$ORIGIN/$(LIBLTTNG_UST_PATH)' - -# Third-party Makefiles have to define these targets to integrate with an -# automake project -EMPTY_AUTOMAKE_TARGETS = distdir install install-data install-exec uninstall \ - install-dvi install-html install-info install-ps install-pdf \ - installdirs check installcheck mostlyclean distclean maintainer-clean \ - dvi html pdf ps info tags ctags -.PHONY: $(EMPTY_AUTOMAKE_TARGETS) -$(EMPTY_AUTOMAKE_TARGETS): -endif - all: hello lttng-ust-provider-hello.o: tp.c ust_tests_hello.h - $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) -c -o $@ $< + $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) \ + $(AM_CFLAGS) -c -o $@ $< lttng-ust-provider-hello.a: lttng-ust-provider-hello.o - ar -rc $@ $^ + ar -rc $@ lttng-ust-provider-hello.o hello.o: hello.c - $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) -c -o $@ $< + $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) \ + $(AM_CFLAGS) -c -o $@ $< hello: hello.o lttng-ust-provider-hello.a - $(CC) -o $@ $(LDFLAGS) $^ $(LIBS) + $(CC) -o $@ $(LDFLAGS) $(CPPFLAGS) $(AM_LDFLAGS) $(AM_CFLAGS) \ + $(LIBS) hello.o lttng-ust-provider-hello.a .PHONY: clean clean: -- 2.34.1