File: Makefile

package info (click to toggle)
ekeyd 1.1.5-4
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 752 kB
  • sloc: ansic: 5,259; sh: 337; makefile: 262; perl: 150
file content (206 lines) | stat: -rw-r--r-- 6,688 bytes parent folder | download | duplicates (4)
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#!/bin/make
#
# Entropy key daemon and tools
#
# Copyright 2009-2011 Simtec Electronics
#
# For licence terms refer to the COPYING file.


# Override any of these on the cmdline to set options. 
# Ensure they are overridden during both build and install.
DESTDIR ?=
PREFIX ?= /usr
SYSCONFPREFIX ?= /etc/entropykey
RUNTIMEPREFIX ?= /var/run
MANPREFIX ?= $(PREFIX)/share/man/man
BUILD_ULUSBD ?= no
BUILD_EGDLINUX ?= no
RM ?= rm -f
LUA_V ?= 5.1
EXTRA_INC ?=
LUA_INC ?= -I/usr/include/lua5.1
LIBDL ?= -ldl
PTHFLAGS ?=
PTHLIBS ?= -lpthread
KERNOUTOK :=
KERNOUTNOTOK := -- 
EGDSOCK := /etc/entropy
UDEVOK :=
MANZCMD := gzip -c
MANZEXT := .gz

# Current tool version as returned from tools
EKEYD_VERSION_S="1.1.5"

# Attempt to detect an OS and set build options as appropriate
OSNAME=$(shell uname -s | tr A-Z a-z | tr -d /)

ifeq ($(OSNAME),linux)
CFLAGS += -DEKEY_OS_LINUX -DEKEY_FULL_TERMIOS
override BUILD_EGDLINUX:=yes
else
ifeq ($(OSNAME),gnukfreebsd)
# Bizarre hybrid GNU/kFreeBSD platform is sort-of-GNU sort-of-FreeBSD
# So far, only seen in Debian's distribution.
CFLAGS += -DEKEY_OS_FREEBSD
# Incomplete termios support means no -DEKEY_FULL_TERMIOS
# FreeBSD's kernel lacks a kernel mode output
override KERNOUTOK := -- 
override KERNOUTNOTOK :=
# Lua is, however, likely installed in the usual places, so no need to fudge those.
else
ifeq ($(OSNAME),mirbsd)
CFLAGS += -DEKEY_OS_$(shell echo $(OSNAME) | tr a-z A-Z)
# Build the userland USBd support for older versions (recent MirBSD has support)
override BUILD_ULUSBD:=yes
override PTHFLAGS:=-pthread
override PTHLIBS:=
# System dependent settings
override LUA_INC:=
override LUA_V:=
override LIBDL:=
override OPT:=
override UDEVOK:=-- 
override MANZCMD:=cat
override MANZEXT:=
# see RAND_egd(3)
override EGDSOCK:=/var/run/egd-pool
ifeq ($(IN_MIRPORTS),)
# standalone compilation
INCLUDES += -I/usr/mpkg/include
LIBDIRS += -L/usr/mpkg/lib
endif
else
# Other BSDs ?
ifeq ($(findstring bsd,$(OSNAME)),bsd)
# *BSD doesn't have obvious cdc-acm support (may need recompilation of kernel) so offer
# the somewhat more hacky userland USBd support via libusb for now.
CFLAGS += -DEKEY_OS_$(shell echo $(OSNAME) | tr a-z A-Z)
override BUILD_ULUSBD:=yes
ifeq ($(OSNAME),freebsd)
override LUA_V:=-5.1
# FreeBSD's kernel lacks a kernel mode output
override KERNOUTOK := -- 
override KERNOUTNOTOK :=
endif
ifeq ($(OSNAME),openbsd)
override LUA_V:=
override PTHFLAGS:=-pthread
override PTHLIBS:=
override MANZCMD:=cat
override MANZEXT:=
endif
override LUA_INC:=-I/usr/local/include/lua51
override LIBDL:=
LIBDIRS += -L/usr/local/lib
INCLUDES += -I/usr/local/include
endif
endif
endif
endif

# Set up tool flags
INCLUDES += -I../device/frames/ -I../device/ -I../device/skein/ $(LUA_INC) $(EXTRA_INC)
OPT ?= -O2

CFLAGS += $(INCLUDES)
CFLAGS += -g -Wall $(OPT)
CFLAGS += -fno-strict-aliasing
CFLAGS += -std=c99 -Wall -pedantic -Wshadow -Werror -D_GNU_SOURCE
CFLAGS += '-DCONFIGFILE="$(SYSCONFPREFIX)/ekeyd.conf"'
CFLAGS += '-DPIDFILE="$(RUNTIMEPREFIX)/ekeyd.pid"'
CFLAGS += '-DKEYRINGFILE="$(SYSCONFPREFIX)/keyring"'
CFLAGS += '-DEKEYD_VERSION_S=""$(EKEYD_VERSION_S)""'
CFLAGS += $(EXTRA_CFLAGS)

LIBS += -llua$(LUA_V) -lm $(LIBDL)
LDFLAGS += $(LIBDIRS)


all: all-programs all-scripts all-configs

install: all install-ekeyd

all-programs: ekeyd ekey-setkey

ifneq ($(BUILD_ULUSBD),no)
all-programs: ekey-ulusbd
install: install-ekey-ulusbd
endif

ifneq ($(BUILD_EGDLINUX),no)
all-programs: egd-linux
install: install-egd-linux
endif

all-scripts: ekey-rekey ekeydctl

all-configs: ekeyd.conf

ekey-ulusbd: ekey-ulusbd.o daemonise_ulusbd.o
	$(CC) $(CFLAGS) $(PTHFLAGS) $(LDFLAGS) -o $@ $^ -lusb $(PTHLIBS)

ekey-ulusbd.o: ekey-ulusbd.c
	$(COMPILE.c) $(OUTPUT_OPTION) $(PTHFLAGS) $^

daemonise_ulusbd.o: daemonise.c
	$(COMPILE.c) $(OUTPUT_OPTION) $(PTHFLAGS) $^

egd-linux: egd-linux.o daemonise.o
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^

ekeyd: ekeyd.o daemonise.o lstate.o connection.o stream.o frame.o packet.o keydb.o util.o fds.o krnlop.o foldback.o stats.o nonce.o ../device/frames/pem.o ../device/skeinwrap.o ../device/skein/skein.o ../device/skein/skein_block.o
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)

ekey-setkey: ekey-setkey.o util.o stream.o frame.o packet.o keydb.o crc8.o nonce.o ../device/frames/pem.o ../device/skeinwrap.o ../device/skein/skein.o ../device/skein/skein_block.o
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^

control.inc: bin2c.lua control.lua
	lua$(LUA_V) bin2c.lua +control.lua result > control.inc.new
	mv control.inc.new control.inc

lstate.o: lstate.c control.inc

%: %.in
	sed -e's|@PREFIX@|$(PREFIX)|g' -e's|@SYSCONFPREFIX@|$(SYSCONFPREFIX)|g' -e's|@RUNTIMEPREFIX@|$(RUNTIMEPREFIX)|g' -e's|@LUA_V@|$(LUA_V)|g' -e's|@KERNOUTOK@|$(KERNOUTOK)|' -e's|@KERNOUTNOTOK@|$(KERNOUTNOTOK)|' -e's|@EGDSOCK@|$(EGDSOCK)|' -e's|@UDEVOK@|$(UDEVOK)|' -e's|@EKEYD_VERSION_S@|$(EKEYD_VERSION_S)|' < $< > $@
	if test -x $<; then chmod +x $@; fi

install-ekey-ulusbd:
	mkdir -p $(DESTDIR)$(PREFIX)/sbin
	install -m 755 ekey-ulusbd $(DESTDIR)$(PREFIX)/sbin/
	mkdir -p $(DESTDIR)$(MANPREFIX)8
	$(MANZCMD) < ekey-ulusbd.8 > $(DESTDIR)$(MANPREFIX)8/ekey-ulusbd.8$(MANZEXT)

install-egd-linux:
	mkdir -p $(DESTDIR)$(PREFIX)/sbin
	install -m 755 egd-linux $(DESTDIR)$(PREFIX)/sbin/
	mkdir -p $(DESTDIR)$(MANPREFIX)8
	$(MANZCMD) < egd-linux.8 > $(DESTDIR)$(MANPREFIX)8/egd-linux.8$(MANZEXT)

install-ekeyd:
	mkdir -p $(DESTDIR)$(PREFIX)/sbin
	install -m 755 ekeyd $(DESTDIR)$(PREFIX)/sbin/
	install -m 755 ekey-setkey $(DESTDIR)$(PREFIX)/sbin/
	install -m 755 ekey-rekey $(DESTDIR)$(PREFIX)/sbin/
	install -m 755 ekeydctl $(DESTDIR)$(PREFIX)/sbin/
	mkdir -p $(DESTDIR)$(MANPREFIX)8
	$(MANZCMD) < ekeyd.8 > $(DESTDIR)$(MANPREFIX)8/ekeyd.8$(MANZEXT)
	$(MANZCMD) < ekey-setkey.8 > $(DESTDIR)$(MANPREFIX)8/ekey-setkey.8$(MANZEXT)
	$(MANZCMD) < ekey-rekey.8 > $(DESTDIR)$(MANPREFIX)8/ekey-rekey.8$(MANZEXT)
	$(MANZCMD) < ekeydctl.8 > $(DESTDIR)$(MANPREFIX)8/ekeydctl.8$(MANZEXT)
	mkdir -p $(DESTDIR)$(MANPREFIX)5
	$(MANZCMD) < ekeyd.conf.5 > $(DESTDIR)$(MANPREFIX)5/ekeyd.conf.5$(MANZEXT)
	mkdir -p $(DESTDIR)$(SYSCONFPREFIX)
	install -m 644 ekeyd.conf $(DESTDIR)$(SYSCONFPREFIX)
	echo "# Keyring Data file. Managed by ekey-setkey" > $(DESTDIR)$(SYSCONFPREFIX)/keyring
	chmod 0600 $(DESTDIR)$(SYSCONFPREFIX)/keyring

clean:
	$(RM) rdpkt ekeyd ekey-setkey *.o control.inc ../device/skeinwrap.o ../device/frames/pem.o ../device/skein/skein.o ../device/skein/skein_block.o ekeyd.conf ekey-rekey egd-linux control.inc.new ekeydctl ekey-ulusbd *.gcda gmon.out

olddeps:
	sudo apt-get install lua5.1 liblua5.1-socket2 liblua5.1-posix0 liblua5.1-dev libusb-dev

deps:
	sudo apt-get install lua5.1 liblua5.1-socket2 liblua5.1-posix1 liblua5.1-dev libusb-dev