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
|
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
|
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
+
+
+
|
monocypher_dir := @srcdir@/vendor/monocypher/
argon2_dir := @srcdir@/vendor/argon2/
aes_dir := @srcdir@/vendor/aes/
CC := @CC@
AR := @AR@
RANLIB := @RANLIB@
CFLAGS := @CFLAGS@ @SHOBJFLAGS@
CPPFLAGS := -I. -I@srcdir@ -I$(monocypher_dir) -I$(argon2_dir) @CPPFLAGS@ @SHOBJCPPFLAGS@ @DEFS@ @TCL_DEFS@
CPPFLAGS := -I. -I@srcdir@ -I$(monocypher_dir) -I$(argon2_dir) -I$(aes_dir) @CPPFLAGS@ @SHOBJCPPFLAGS@ @DEFS@ @TCL_DEFS@
LDFLAGS := @LDFLAGS@
LIBS := @LIBS@
SHOBJLDFLAGS := @SHOBJLDFLAGS@
VPATH := @srcdir@
srcdir := @srcdir@
prefix := @prefix@
exec_prefix := @exec_prefix@
libdir := @libdir@
PACKAGE_VERSION := @PACKAGE_VERSION@
TCL_PACKAGE_PATH := @TCL_PACKAGE_PATH@
PACKAGE_INSTALL_DIR := $(TCL_PACKAGE_PATH)/tcl-nano$(PACKAGE_VERSION)
INSTALL := @INSTALL@
INSTALL_PROGRAM := @INSTALL_PROGRAM@
INSTALL_DATA := @INSTALL_DATA@
export CC CFLAGS CPPFLAGS
all: @EXTENSION_TARGET@ pkgIndex.tcl
ifeq (@TCLEXT_BUILD@,shared)
@EXTENSION_TARGET@: monocypher.o argon2.o randombytes.o nano.o Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(SHOBJLDFLAGS) -o @EXTENSION_TARGET@ nano.o randombytes.o monocypher.o argon2.o $(LIBS)
@EXTENSION_TARGET@: monocypher.o argon2.o aes.o randombytes.o nano.o Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(SHOBJLDFLAGS) -o @EXTENSION_TARGET@ nano.o randombytes.o monocypher.o argon2.o aes.o $(LIBS)
-@WEAKENSYMS@ @EXTENSION_TARGET@
-@REMOVESYMS@ @EXTENSION_TARGET@
else
@EXTENSION_TARGET@: nano-amalgamation.o Makefile
-@WEAKENSYMS@ nano-amalgamation.o
-@REMOVESYMS@ nano-amalgamation.o
$(AR) rc @EXTENSION_TARGET@ nano-amalgamation.o
-$(RANLIB) @EXTENSION_TARGET@
endif
# The amalgamation is used when compiling statically so that the same ABI can be exposed
# to upstream projects rather than requiring them to filter out our symbols
nano-amalgamation.c: @srcdir@/nano.c @srcdir@/randombytes.c $(monocypher_dir)monocypher.c $(argon2_dir)argon2.c Makefile
nano-amalgamation.c: @srcdir@/nano.c @srcdir@/randombytes.c $(monocypher_dir)monocypher.c $(argon2_dir)argon2.c $(aes_dir)aes.c Makefile
rm -f nano-amalgamation.c
cat @srcdir@/nano.c @srcdir@/randombytes.c $(monocypher_dir)monocypher.c $(argon2_dir)argon2.c > nano-amalgamation.c
cat @srcdir@/nano.c @srcdir@/randombytes.c $(monocypher_dir)monocypher.c $(argon2_dir)argon2.c $(aes_dir)aes.c > nano-amalgamation.c
nano-amalgamation.o: nano-amalgamation.c $(monocypher_dir)monocypher.h $(argon2_dir)argon2.h @srcdir@/randombytes.h nano.tcl.h Makefile
nano-amalgamation.o: nano-amalgamation.c $(monocypher_dir)monocypher.h $(argon2_dir)argon2.h $(aes_dir)aes.h @srcdir@/randombytes.h nano.tcl.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o nano-amalgamation.o -c nano-amalgamation.c
nano.o: @srcdir@/nano.c $(monocypher_dir)monocypher.h $(argon2_dir)argon2.h @srcdir@/randombytes.h nano.tcl.h Makefile
nano.o: @srcdir@/nano.c $(monocypher_dir)monocypher.h $(argon2_dir)argon2.h $(aes_dir)aes.h @srcdir@/randombytes.h nano.tcl.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) -o nano.o -c @srcdir@/nano.c
randombytes.o: @srcdir@/randombytes.c @srcdir@/randombytes.h
$(CC) $(CPPFLAGS) $(CFLAGS) -o randombytes.o -c @srcdir@/randombytes.c
monocypher.o: $(monocypher_dir)monocypher.c $(monocypher_dir)monocypher.h
$(CC) $(CPPFLAGS) $(CFLAGS) -o monocypher.o -c $(monocypher_dir)monocypher.c
argon2.o: $(argon2_dir)argon2.c $(argon2_dir)argon2.h
argon2.o: $(argon2_dir)argon2.c $(argon2_dir)argon2.h $(monocypher_dir)monocypher.h
$(CC) $(CPPFLAGS) $(CFLAGS) -o argon2.o -c $(argon2_dir)argon2.c
aes.o: $(aes_dir)aes.c $(aes_dir)aes.h
$(CC) $(CPPFLAGS) $(CFLAGS) -o aes.o -c $(aes_dir)aes.c
pkgIndex.tcl: pkgIndex.tcl-@TCLEXT_BUILD@
cp pkgIndex.tcl-@TCLEXT_BUILD@ pkgIndex.tcl
nano.tcl.h: @srcdir@/nano.tcl Makefile
od -A n -v -t xC < '@srcdir@/nano.tcl' > nano.tcl.h.new.1
sed 's@ *@@g;s@..@0x&, @g' < nano.tcl.h.new.1 > nano.tcl.h.new.2
rm -f nano.tcl.h.new.1
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
-
-
-
+
+
+
|
$(INSTALL_PROGRAM) @EXTENSION_TARGET@ '$(DESTDIR)$(PACKAGE_INSTALL_DIR)'
$(INSTALL_DATA) pkgIndex.tcl '$(DESTDIR)$(PACKAGE_INSTALL_DIR)'
$(INSTALL_DATA) @srcdir@/nano.man '$(DESTDIR)$(PACKAGE_INSTALL_DIR)'
clean:
rm -f nano-amalgamation.c nano-amalgamation.o
rm -f @EXTENSION_TARGET@ nano.o nano.gcda nano.gcno
rm -f argon2.o monocypher.o randombytes.o
rm -f argon2.gcda monocypher.gcda randombytes.gcda
rm -f argon2.gcno monocypher.gcno randombytes.gcno
rm -f argon2.o monocypher.o aes.o randombytes.o
rm -f argon2.gcda monocypher.gcda aes.gcda randombytes.gcda
rm -f argon2.gcno monocypher.gcno aes.gcno randombytes.gcno
rm -f nano-coverage.info
distclean: clean
rm -f Makefile pkgIndex.tcl-shared pkgIndex.tcl-static nano.syms
rm -f pkgIndex.tcl
rm -f config.log config.status
rm -f nano.tcl.h nano.tcl.h.new.1 nano.tcl.h.new.2
|