doc/examples: support BSD make
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 20 Jun 2013 13:30:20 +0000 (09:30 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 20 Jun 2013 13:39:22 +0000 (09:39 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
doc/examples/Makefile.am
doc/examples/demo/Makefile
doc/examples/easy-ust/Makefile
doc/examples/gen-tp/Makefile
doc/examples/hello-static-lib/Makefile

index e9dd170d07b59df84e128f67e5a9f9f9a62221e5..583909b65a8a97c211c7c44623bac968285c2663 100644 (file)
@@ -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
index d55a1b19ce6afbb48cea0273325e445a1f36e629..27e4146012ab02a40051f80b858846e6529a611d 100644 (file)
@@ -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:
index e3546e11a63c3675e35c2edb78d308aeaba085fe..15ce7ed81450993e076d633ae6f2f51362ef23c7 100644 (file)
@@ -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
 
index ac18d49274d85d13f53eb97c35dbaafb91d4d900..c64cb9d4e721c90fb2cc744a5fe1e32eba0d7657 100644 (file)
 # 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 $@ $<
index 85c64c1b7cb4a848dc9a275273cb3a94105165db..f19133286dfe565d20b82b2b2ab3a2685f1eb77d 100644 (file)
@@ -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:
This page took 0.029022 seconds and 4 git commands to generate.