forked from OpenZWave/open-zwave-control-panel
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
115 lines (90 loc) · 3.55 KB
/
Makefile
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#
# Makefile for OpenzWave Control Panel application
# Greg Satz
# GNU make only
.SUFFIXES: .cpp .o .a .s
CC := $(CROSS_COMPILE)gcc
CXX := $(CROSS_COMPILE)g++
LD := $(CROSS_COMPILE)g++
AR := $(CROSS_COMPILE)ar rc
RANLIB := $(CROSS_COMPILE)ranlib
DEBUG_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-inline -Wno-format -g -DDEBUG -ggdb -O0
RELEASE_CFLAGS := -Wall -Wno-unknown-pragmas -Werror -Wno-format -O3 -DNDEBUG
DEBUG_LDFLAGS := -g
# Change for DEBUG or RELEASE
# The NO_MKSTEMPS indicates to the compiler that mkstemps(3) is unavailable. The code
# to use calls mktemp instead. This generates linker warnings. It is benign but annoying.
CFLAGS := -c -std=c++11 $(DEBUG_CFLAGS) # -DNO_MKSTEMPS
LDFLAGS := $(DEBUG_LDFLAGS)
# Assume all Z-Wave stuff under our parent directory, library in sibling...
PWD := $(shell pwd)
ZWAVE := $(shell dirname $(PWD))
OPENZWAVE := $(ZWAVE)/open-zwave
LIBZWAVE := -L$(ZWAVE)/open-zwave -lopenzwave
LIBZWAVEARC := $(ZWAVE)/open-zwave/libopenzwave.a
# Locally built vs. installed as binary with package manager, or equiv...
#LIBMICROHTTPD := -L/usr/local/lib/ -lmicrohttpd
LIBMICROHTTPD := -lmicrohttpd
INCLUDES := -I $(OPENZWAVE)/cpp/src -I $(OPENZWAVE)/cpp/src/command_classes/ \
-I $(OPENZWAVE)/cpp/src/value_classes/ -I $(OPENZWAVE)/cpp/src/platform/ \
-I $(OPENZWAVE)/cpp/src/platform/unix -I $(OPENZWAVE)/cpp/tinyxml/ \
-I /usr/local/include/
# gnutls support
GNUTLS := -lgnutls
# for Linux
LIBUSB := -ludev
LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -lpthread $(LIBUSB) -lresolv
# Installation at
PGMDIR := /usr/local/bin
RUNSHLIBDIR := /usr/local/lib
CONFDIR := /var/lib/ozwcp
RUNDIR := /var/cache/ozwcp
# The user login and id that will run the package
#OZU := ozw
OZUN := 9281 # the most random number evar
OZU := bill
WPORT := 8821 # HTTP service on this port
# for Mac OS X - which I do not have to test with
#ARCH := -arch i386 -arch x86_64
#CFLAGS += $(ARCH)
#LIBZWAVE := $(wildcard $(OPENZWAVE)/cpp/lib/mac/*.a)
#LIBUSB := -framework IOKit -framework CoreFoundation
#LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -pthread $(LIBUSB) $(ARCH) -lresolv
%.o : %.cpp
$(CXX) $(CFLAGS) $(INCLUDES) -o $@ $<
%.o : %.c
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $<
all: ozwcp
defs:
ifeq ($(LIBZWAVE),)
@echo Please edit the Makefile to avoid this error message.
@exit 1
endif
ozwcp.o: ozwcp.h webserver.h $(OPENZWAVE)/cpp/src/Options.h $(OPENZWAVE)/cpp/src/Manager.h \
$(OPENZWAVE)/cpp/src/Node.h $(OPENZWAVE)/cpp/src/Group.h \
$(OPENZWAVE)/cpp/src/Notification.h $(OPENZWAVE)/cpp/src/platform/Log.h
webserver.o: webserver.h ozwcp.h $(OPENZWAVE)/cpp/src/Options.h $(OPENZWAVE)/cpp/src/Manager.h \
$(OPENZWAVE)/cpp/src/Node.h $(OPENZWAVE)/cpp/src/Group.h \
$(OPENZWAVE)/cpp/src/Notification.h $(OPENZWAVE)/cpp/src/platform/Log.h
ozwcp: ozwcp.o webserver.o zwavelib.o $(LIBZWAVEARC)
$(LD) -o $@ $(LDFLAGS) ozwcp.o webserver.o zwavelib.o $(LIBS)
dist: ozwcp
rm -f ozwcp.tar.gz
tar -c --exclude=".svn" -hvzf ozwcp.tar.gz ozwcp config/ cp.html cp.js openzwavetinyicon.png README
clean:
rm -f ozwcp *.o
install:
echo $(ZWAVE)
cp $(OPENZWAVE)/libopenzwave.so* $(RUNSHLIBDIR)
chmod ugo+r $(RUNSHLIBDIR)/libopenzwave.so*
cp ozwcp $(PGMDIR)
mkdir -p $(RUNDIR)
# useradd -m -b $(RUNDIR) -s /bin/bash -c "OpenZWave Panel Operation" $(OZU)
cp *.js *.css cp.html $(RUNDIR)
mkdir -p $(CONFDIR)
cp -r $(OPENZWAVE)/config $(CONFDIR)
rm -f $(RUNDIR)/config # prep for symlink
ln -s $(CONFDIR) $(RUNDIR)/config
./genrun $(PGMDIR) $(RUNDIR) $(WPORT) $(RUNSHLIBDIR)
chown -R $(OZU).$(OZU) $(RUNDIR) $(CONFDIR) $(PGMDIR)/*ozwcp
chmod u+x $(PGMDIR)/*ozwcp