File: Makefile

package info (click to toggle)
ekeyd 1.1.3-3
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 628 kB
  • ctags: 859
  • sloc: ansic: 5,189; sh: 271; makefile: 199; perl: 148
file content (167 lines) | stat: -rw-r--r-- 5,817 bytes parent folder | download
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
# Override any of these on the cmdline to change things. Remember to ensure
# that you override them during build as well as install though.
DESTDIR ?=
PREFIX ?= /usr
SYSCONFPREFIX ?= /etc/entropykey
RUNTIMEPREFIX ?= /var/run
MANPREFIX ?= $(PREFIX)/share/man/man
BUILD_ULUSBD ?= 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

all: all-programs all-scripts all-configs

# Attempt to detect an OS
OSNAME=$(shell uname -s | tr A-Z a-z | tr -d /)

ifeq ($(OSNAME),linux)
CFLAGS += -DEKEY_OS_LINUX -DEKEY_FULL_TERMIOS
all-programs: egd-linux
endif

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

all-programs: ekeyd ekey-setkey
all-scripts: ekey-rekey ekeydctl
all-configs: ekeyd.conf

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

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
LIBS += -llua$(LUA_V) -lm $(LIBDL)
CFLAGS += -std=c99 -Wall -pedantic -Wshadow -Werror -D_GNU_SOURCE
CFLAGS += '-DCONFIGFILE="$(SYSCONFPREFIX)/ekeyd.conf"' '-DPIDFILE="$(RUNTIMEPREFIX)/ekeyd.pid"' '-DKEYRINGFILE="$(SYSCONFPREFIX)/keyring"'
LDFLAGS += $(LIBDIRS)
CFLAGS += $(EXTRA_CFLAGS)

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) -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)|' < $< > $@
	if test -x $<; then chmod +x $@; fi

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

install: all
	mkdir -p $(DESTDIR)$(PREFIX)/sbin
	mkdir -p $(DESTDIR)$(MANPREFIX)8
	mkdir -p $(DESTDIR)$(MANPREFIX)5
	mkdir -p $(DESTDIR)$(SYSCONFPREFIX)
	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/
ifneq ($(BUILD_ULUSBD),no)
	install -m 755 ekey-ulusbd $(DESTDIR)$(PREFIX)/sbin/
	$(MANZCMD) < ekey-ulusbd.8 > $(DESTDIR)$(MANPREFIX)8/ekey-ulusbd.8$(MANZEXT)
endif
	install -m 644 ekeyd.conf $(DESTDIR)$(SYSCONFPREFIX)
	$(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)
	$(MANZCMD) < ekeyd.conf.5 > $(DESTDIR)$(MANPREFIX)5/ekeyd.conf.5$(MANZEXT)
	echo "# Keyring Data file. Managed by ekey-setkey" > $(DESTDIR)$(SYSCONFPREFIX)/keyring