Fix: examples Makefile on FreeBSD
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 20 Jun 2013 12:50:33 +0000 (08:50 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 20 Jun 2013 13:04:47 +0000 (09:04 -0400)
Support BSD-style make.

Fixes #565

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
doc/examples/Makefile.am
doc/examples/qsbr-minimal/Makefile

index 646213bceb3fd3ce1346719c2343e1867d08dc0e..6f427c08c55aa460299770f3056599d36ed9550f 100644 (file)
@@ -1,17 +1,24 @@
-if NO_SHARED
-# Don't build examples if shared libraries support was explicitly
-# disabled.
-else
-SUBDIRS = qsbr-minimal
-
 doc_examplesdir = ${docdir}/examples
 
 doc_examples_qsbr_minimaldir = ${doc_examplesdir}/qsbr-minimal
 
-doc_examples_qsbr_minimal_DATA = \
+dist_doc_examples_qsbr_minimal_DATA = \
        qsbr-minimal/Makefile \
        qsbr-minimal/qsbr-minimal.c
 
-BUILD_EXAMPLES_FROM_TREE = 1
-export
+if NO_SHARED
+# Don't build examples if shared libraries support was explicitly
+# disabled.
+else
+SUBDIRS_PROXY = qsbr-minimal
+
+all-local:
+       for subdir in $(SUBDIRS_PROXY); do \
+               cd $$subdir && $(MAKE) AM_CPPFLAGS="-I../../../urcu/ -I../../../" AM_LDFLAGS='-L../../../.libs/ -Wl,-rpath="$(PWD)/../../.libs/"' $(AM_MAKEFLAGS) all; \
+       done
+
+clean-local:
+       for subdir in $(SUBDIRS_PROXY); do \
+               cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) clean; \
+       done
 endif
index 53f1380f1289cafe4528ef83d25cb24ec09725f9..b0400cb594f6de350cd17808be27f54bb3e8b522 100644 (file)
@@ -8,35 +8,23 @@
 # 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 purposefully kept simple to support GNU and BSD make.
 
 CC = gcc
 LIBS = -lurcu-qsbr
 CFLAGS = -g -O2 -Wall
-
-# Only necessary when building from the source tree and userspace RCU is
-# not installed
-ifdef BUILD_EXAMPLES_FROM_TREE
-LOCAL_CPPFLAGS += -I../../../urcu/ -I../../../
-LIBURCU_QSBR_PATH = ../../../.libs/
-override LDFLAGS += -L$(LIBURCU_QSBR_PATH) -Wl,-rpath='$$ORIGIN/$(LIBURCU_QSBR_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
+OBJECTS = qsbr-minimal.o
 
 all: qsbr-minimal
 
-qsbr-minimal: qsbr-minimal.o
-       $(CC) -o $@ $^ $(LDFLAGS) $(LIBS)
+qsbr-minimal: $(OBJECTS)
+       $(CC) $(CFLAGS) $(LDFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) \
+               $(LIBS) -o $@ $(OBJECTS)
 
 qsbr-minimal.o: qsbr-minimal.c
-       $(CC) $(CPPFLAGS) $(LOCAL_CPPFLAGS) $(CFLAGS) -c -o $@ $<
+       $(CC) $(CPPFLAGS) $(CFLAGS) $(AM_CPPFLAGS) $(AM_CFLAGS) \
+               -c -o $@ $<
 
 .PHONY: clean
 clean:
This page took 0.033806 seconds and 4 git commands to generate.