1# 2# Makefile for OpenZWave MingW32 build 3# Maarten Damen 4 5.SUFFIXES: .d .cpp .o .a 6.PHONY: default clean 7 8CC := $(CROSS_COMPILE)gcc 9CXX := $(CROSS_COMPILE)g++ 10LD := $(CROSS_COMPILE)g++ 11AR := $(CROSS_COMPILE)ar rc 12RANLIB := $(CROSS_COMPILE)ranlib 13 14DEBUG_CFLAGS := -Wall -Wno-format -g -DDEBUG -DLOG_STDERR -DMINGW 15RELEASE_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-format -O3 -DMINGW 16 17DEBUG_LDFLAGS := -g 18 19# Change for DEBUG or RELEASE 20CFLAGS := -c $(DEBUG_CFLAGS) 21LDFLAGS := $(DEBUG_LDFLAGS) 22 23LIBDIR := ../../../lib/windows-mingw32 24 25INCLUDES := -I ../../../src -I ../../../src/command_classes/ -I ../../../src/aes/ -I ../../../src/value_classes/ \ 26 -I ../../../src/platform/ -I ../../../src/platform/windows -I ../../../tinyxml/ -I ../../../hidapi/hidapi/ 27SOURCES := ../../../src ../../../src/command_classes ../../../src/aes ../../../tinyxml ../../../hidapi/windows \ 28 ../../../src/value_classes ../../../src/platform ../../../src/platform/windows 29 30VPATH = ../../../src:../../../src/command_classes:../../../src/aes:../../../tinyxml:../../../hidapi/windows:\ 31 ../../../src/value_classes:../../../src/platform:../../../src/platform/windows 32 33%.d : %.cpp 34 @set -e; rm -f $@; \ 35 $(CXX) -MM $(INCLUDES) $< > $@.$$$$; \ 36 sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ 37 rm -f $@.$$$$ 38 39tinyxml := $(notdir $(wildcard ../../../tinyxml/*.cpp)) 40hidapi := $(notdir $(wildcard ../../../hidapi/linux/hid.c)) # we do not want the libusb version 41cclasses := $(notdir $(wildcard ../../../src/command_classes/*.cpp)) 42vclasses := $(notdir $(wildcard ../../../src/value_classes/*.cpp)) 43aes := $(notdir $(wildcard ../../../src/aes/*.c)) 44pform := $(notdir $(wildcard ../../../src/platform/*.cpp)) \ 45 $(notdir $(wildcard ../../../src/platform/windows/*.cpp)) 46indep := $(notdir $(wildcard ../../../src/*.cpp)) 47 48%.o : %.cpp 49 $(CXX) $(CFLAGS) $(INCLUDES) -o $@ $< 50 51%.o : %.c 52 $(CC) $(CFLAGS) $(INCLUDES) -o $@ $< 53 54default: $(LIBDIR)/openzwave.a 55 56clean: 57 rm -f *.d *.o 58 59-include $(tinyxml:.cpp=.d) 60-include $(hidapi:.c=.d) 61-include $(cclasses:.cpp=.d) 62-include $(vclasses:.cpp=.d) 63-include $(aes:.c=.d) 64-include $(pform:.cpp=.d) 65-include $(indep:.cpp=.d) 66 67vers.c: 68 echo 'char ozw_vers[] = "OpenZWave version 1.0.'`svnversion ../..`'";' > vers.c 69 70vers.o: vers.c 71 72$(LIBDIR)/openzwave.a: $(patsubst %.cpp,%.o,$(tinyxml)) \ 73 $(patsubst %.c,%.o,$(hidapi)) \ 74 $(patsubst %.cpp,%.o,$(cclasses)) \ 75 $(patsubst %.cpp,%.o,$(vclasses)) \ 76 $(patsubst %.c,%.o,$(aes)) \ 77 $(patsubst %.cpp,%.o,$(pform)) \ 78 $(patsubst %.cpp,%.o,$(indep)) vers.o 79 $(AR) $@ $? 80