-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
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
# 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:
# 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
# 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
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 $@ $<
# 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: