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
|