# 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.
-# This Makefile is not using automake so that people may see how to build
-# a program and tracepoint provider probes as stand-alone shared objects.
-
-CC = gcc
LIBS = -ldl # On Linux
#LIBS = -lc # On BSD
-CFLAGS = -I.
+LOCAL_CPPFLAGS += -I.
all: demo lttng-ust-provider-ust-tests-demo.so lttng-ust-provider-ust-tests-demo3.so
-lttng-ust-provider-ust-tests-demo.o: tp.c tp2.c ust_tests_demo.h ust_tests_demo2.h
- $(CC) $(CFLAGS) -fpic -c -o $@ $<
+tp.o: tp.c ust_tests_demo.h
+ $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(AM_CFLAGS) $(AM_CPPFLAGS) \
+ $(CFLAGS) -fpic -c -o $@ $<
+
+tp2.o: tp2.c ust_tests_demo2.h
+ $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(AM_CFLAGS) $(AM_CPPFLAGS) \
+ $(CFLAGS) -fpic -c -o $@ $<
-lttng-ust-provider-ust-tests-demo.so: lttng-ust-provider-ust-tests-demo.o
- $(CC) -shared -o $@ -llttng-ust $<
+lttng-ust-provider-ust-tests-demo.so: tp.o tp2.o
+ $(CC) -Wl,--no-as-needed -o $@ $(LDFLAGS) $(AM_CFLAGS) \
+ $(AM_LDFLAGS) $(CFLAGS) -shared -fpic tp.o tp2.o $(LIBS) -llttng-ust
-lttng-ust-provider-ust-tests-demo3.o: tp3.c ust_tests_demo3.h
- $(CC) $(CFLAGS) -fpic -c -o $@ $<
+tp3.o: tp3.c ust_tests_demo3.h
+ $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(AM_CFLAGS) $(AM_CPPFLAGS) \
+ $(CFLAGS) -fpic -c -o $@ $<
-lttng-ust-provider-ust-tests-demo3.so: lttng-ust-provider-ust-tests-demo3.o
- $(CC) -shared -o $@ -llttng-ust $<
+lttng-ust-provider-ust-tests-demo3.so: tp3.o
+ $(CC) -Wl,--no-as-needed -o $@ $(LDFLAGS) $(AM_CFLAGS) \
+ $(AM_LDFLAGS) $(CFLAGS) -shared -fpic tp3.o $(LIBS) -llttng-ust
demo.o: demo.c
- $(CC) $(CFLAGS) -c -o $@ $<
+ $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(AM_CFLAGS) $(AM_CPPFLAGS) \
+ $(CFLAGS) -c -o $@ $<
demo: demo.o
- $(CC) demo.o -o $@ $(LIBS)
+ $(CC) $(LDFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) $(CFLAGS) \
+ -o $@ demo.o $(LIBS)
.PHONY: clean
clean: