File: Makefile

package info (click to toggle)
openzwave 1.6.1914%2Bds2-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,048 kB
  • sloc: xml: 80,834; cpp: 61,230; ansic: 2,858; perl: 596; makefile: 564; sh: 167
file content (96 lines) | stat: -rw-r--r-- 3,092 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#
# Makefile for OpenzWave Mac OS X applications
# Greg Satz

# GNU make only

# requires libudev-dev

.SUFFIXES:	.d .cpp .o .a
.PHONY:	default clean

# 2019-10 added this test because there are path issues, hings go wrong when you try to run
# "make" in the cpp/test subdirectory. One of the offending statements is "top_builddir ?= $(CURDIR)"
# Needs some work to get a proper fix.

ifeq ($(top_builddir),)
 $(error Variable top_builddir is undefined, please run "make" from root of OpenzWave repository only.)
endif

COMMON_FLAGS	:= -std=c++11 -Wall -Wno-unknown-pragmas -Wsign-compare
DEBUG_CFLAGS    := -ggdb -DDEBUG $(CPPFLAGS) $(COMMON_FLAGS)
RELEASE_CFLAGS  := -O3 $(CPPFLAGS) $(COMMON_FLAGS)

DEBUG_LDFLAGS	:= -g

top_srcdir := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))../../)

#where is put the temporary library
LIBDIR  	?= $(top_builddir)

INCLUDES	:= -I $(top_srcdir)/cpp/test/ -I $(top_srcdir)/cpp/test/include/ -I $(top_srcdir)/cpp/src -I $(top_srcdir)/cpp/tinyxml/ -I $(top_srcdir)/cpp/hidapi/hidapi/
OZW_LIB = $(wildcard $(LIBDIR)/*.a )
LIBS = $(OZW_LIB) /usr/lib/*/libtinyxml.a

ifneq ($(UNAME),FreeBSD)
LIBS += -lresolv
endif

#LIBSDIR = $(abspath $(dir $(firstword $(LIBS))))
SOURCES  := $(top_srcdir)/cpp/test/src/ $(top_srcdir)/cpp/test/
gtestsrc := $(notdir $(wildcard $(top_srcdir)/cpp/test/src/*.cc))
testsrc := $(notdir $(wildcard $(top_srcdir)/cpp/test/*.cpp))
VPATH := $(top_srcdir)/cpp/test/:$(top_srcdir)/cpp/test/src/

top_builddir ?= $(CURDIR)

default: $(top_builddir)/gtest-main

include $(top_srcdir)/cpp/build/support.mk

-include $(patsubst %.cc,$(DEPDIR)/%.d,$(gtestsrc))
-include $(patsubst %.cpp,$(DEPDIR)/%.d,$(testsrc))

#if we are on a Mac, add these flags and libs to the compile and link phases 
ifeq ($(UNAME),Darwin)
CFLAGS += -DDARWIN
TARCH += -arch x86_64
endif

# Dup from main makefile, but that is not included when building here..
ifeq ($(UNAME),FreeBSD)
LDFLAGS+= -lusb

ifeq ($(shell test $$(uname -U) -ge 1002000; echo $$?),1)
ifeq (,$(wildcard /usr/local/include/iconv.h))
$(error FreeBSD pre 10.2: Please install libiconv from ports)
else
CFLAGS += -I/usr/local/include
LDFLAGS+= -L/usr/local/lib -liconv
endif
endif

endif

$(OBJDIR)/%.o : %.cc
	@echo "Building $(notdir $@)"
	@$(CXX) -MM $(filter-out -Werror=implicit-function-declaration,$(CFLAGS)) $(INCLUDES) $< > $(DEPDIR)/$*.d
	@mv -f $(DEPDIR)/$*.d $(DEPDIR)/$*.d.tmp
	@$(SED) -e 's|.*:|$(OBJDIR)/$*.o: $(DEPDIR)/$*.d|' < $(DEPDIR)/$*.d.tmp > $(DEPDIR)/$*.d;
	@$(SED) -e 's/.*://' -e 's/\\$$//' < $(DEPDIR)/$*.d.tmp | fmt -1 | \
	  $(SED) -e 's/^ *//' -e 's/$$/:/' >> $(DEPDIR)/.$*.d;
	@rm -f $(DEPDIR)/$*.d.tmp
	@$(CXX) $(filter-out -Werror=implicit-function-declaration,$(CFLAGS)) $(TARCH) $(INCLUDES) -o $@ $<

$(top_builddir)/gtest-main:	$(patsubst %.cc,$(OBJDIR)/%.o,$(gtestsrc)) \
	$(patsubst %.cpp,$(OBJDIR)/%.o,$(testsrc)) $(OZW_LIB)
	@echo "Linking $@"
	@$(LD) $(LDFLAGS) $(TARCH) -o $@ $+ $(LIBS) -pthread

test:	$(top_builddir)/gtest-main
	$(top_builddir)/gtest-main

clean:
	@rm -rf $(DEPDIR) $(OBJDIR) $(top_builddir)/gtest-main

.SUFFIXES:	.d .cpp .cc .o .a