-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathMakefile
190 lines (150 loc) · 5.86 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
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
# Makefile for wipe by Berke Durak
#
# echo berke1lambda-diode2com|tr 12 @.
#
# define HAVE_OSYNC if an O_SYNC bit can be specified for the open () call
# (see open(2))
#
# define HAVE_DEV_URANDOM if /dev/urandom is available; will use a simple
# getpid() ^ clock() like scheme to seed the pseudorandom generator
# otherwise.
#
# define HAVE_RANDOM if the random () library call is available on your
# system.
#
# define HAVE_STRCASECMP if the strcasecmp () library call is available
# on your system.
#
# the REMOVE_ON_INT option has been removed since version 0.17,
# as it is difficult to maintain and has no significant purpose IMHO.
#
# define WEAK_RC6 if you wish to use four-round RC6 instead of the
# standard 20 rounds
#
# define RC6_ENABLED ONLY IF RC6 HAS BEEN ACCEPTED AS THE ADVANCED ENCRYPTION
# STANDARD and if you wish it to be available as a PRNG. WARNING. The RC6
# algorythm is patented by RSADSI; unless it is selected as the AES,
# it requires licensing from RSADSI, and you might expose yourself to legal
# problems if you use it without checking with them. I take no responsibility
# on this. I just implemented it since its specifications were freely available
# and it was easy to implement. by default this is disabled.
#
# define SYNC_WAITS_FOR_SYNC if the sync () system call waits for physical
# i/o to be completed before returning, as under Linux.
#
# define FIND_DEVICE_SIZE_BY_BLKGETSIZE if ioctl BLKGETSIZE is available
# for determinating the block size of a device, as under Linux.
#
# define SIXTYFOUR,__USE_LARGEFILE and __USE_FILE_OFFSET64 to be able to
# wipe devices or files greater than 4Gb (works under Linux)
# --------------------------------------------------------------------------
# Linux 2.0.x
#
CC_LINUX=gcc
CCO_LINUX=-Wall -DHAVE_DEV_URANDOM -DHAVE_OSYNC -DHAVE_STRCASECMP -DHAVE_RANDOM -DWEAK_RC6 -DSYNC_WAITS_FOR_SYNC -DFIND_DEVICE_SIZE_BY_BLKGETSIZE -DSIXTYFOUR -D__USE_LARGEFILE -D_FILE_OFFSET_BITS=64
# default should be to turn off debugging and to turn on optimization.
#CCO_LINUX+=-O9 -pipe -fomit-frame-pointer -finline-functions -funroll-loops -fstrength-reduce
CCO_LINUX+=$(CFLAGS) $(LDFLAGS) $(CPPFLAGS)
#CCO_LINUX+=-DDEBUG -g
CCOC_LINUX=-c
# --------------------------------------------------------------------------
# SunOS 5.5.1
#
CC_SUNOS=gcc
CCO_SUNOS=-Wall -O6 -pipe -fomit-frame-pointer
CCOC_SUNOS=-c
# --------------------------------------------------------------------------
# AIX 4.1
#
CC_AIX=gcc
CCO_AIX=$(CFLAGS)
CCOC_AIX=-c
# --------------------------------------------------------------------------
# Generic UNIX (gcc)
#
CC_GENERIC=gcc
CCO_GENERIC=-Wall -O6 -pipe -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(CFLAGS) $(LDFLAGS) $(CPPFLAGS)
CCOC_GENERIC=-c
# Thanks to Chris L. Mason <[email protected]> for these:
#
# --------------------------------------------------------------------------
# Solaris 2.6 sparc
#
CC_SOLARISSP=gcc
CCO_SOLARISSP=-Wall -O6 -pipe -fomit-frame-pointer
CCOC_SOLARISSP=-c
# --------------------------------------------------------------------------
# Solaris 2.6 x86
#
CC_SOLARISX86=gcc
CCO_SOLARISX86=-Wall -O6 -fomit-frame-pointer
CCOC_SOLARISX86=-c
# --------------------------------------------------------------------------
# FreeBSD 2.2.6-STABLE
#
CC_FREEBSD=gcc
CCO_FREEBSD=-Wall -O6 -fomit-frame-pointer
CCOC_FREEBSD=-c
# --------------------------------------------------------------------------
# Digital/Compaq UNIX Alpha
#
# Thanks to Cyrus Durgin for this entry.
CC_DIGITALALPHA=gcc
CCO_DIGITALALPHA=-Wall -O6 -fomit-frame-pointer -DHAVE_OSYNC -DHAVE_STRCASECMP
CCOC_DIGITALALPHA=-c
#
OBJECTS=wipe.o arcfour.o md5.o misc.o random.o
TARGETS=wipe wipe.tr-asc.1
all :
@echo "Please type $(MAKE) <system> where <system> can be one of:"; \
echo " linux -- for Linux (kernel 2.0.x or higher)"; \
echo " sunos -- for SunOS (tested on 5.5.1)"; \
echo " aix -- for AIX (tested on 4.2)"; \
echo " solarissp -- for Solaris SPARC (tested on 2.6)"; \
echo " solarisx86 -- for Solaris x86 (tested on 2.6)"; \
echo " freebsd -- for FreeBSD (tested on 2.2.6-STABLE)"; \
echo " digitalalpha -- for Digital/Compaq UNIX Alpha"; \
echo " generic -- for generic unix"
linux :
$(MAKE) $(TARGETS) "CC=$(CC_LINUX)" "CCO=$(CCO_LINUX)" "CCOC=$(CCOC_LINUX)"
sunos :
$(MAKE) $(TARGETS) "CC=$(CC_SUNOS)" "CCO=$(CCO_SUNOS)" "CCOC=$(CCOC_SUNOS)"
aix :
$(MAKE) $(TARGETS) "CC=$(CC_AIX)" "CCO=$(CCO_AIX)" "CCOC=$(CCOC_AIX)"
freebsd :
$(MAKE) $(TARGETS) "CC=$(CC_FREEBSD)" "CCO=$(CCO_FREEBSD)" "CCOC=$(CCOC_FREEBSD)"
solarissp :
$(MAKE) $(TARGETS) "CC=$(CC_SOLARISSP)" "CCO=$(CCO_SOLARISSP)" "CCOC=$(CCOC_SOLARISSP)"
solarisx86 :
$(MAKE) $(TARGETS) "CC=$(CC_SOLARISX86)" "CCO=$(CCO_SOLARISX86)" "CCOC=$(CCOC_SOLARISX86)"
digitalalpha :
$(MAKE) $(TARGETS) "CC=$(CC_DIGITALALPHA)" "CCO=$(CCO_DIGITALALPHA)" "CCOC=$(CCOC_DIGITALALPHA)"
generic :
$(MAKE) $(TARGETS) "CC=$(CC_GENERIC)" "CCO=$(CCO_GENERIC)" "CCOC=$(CCOC_GENERIC)"
wipe : $(OBJECTS)
$(CC) $(CCO) $(OBJECTS) -o wipe
wipe.o : wipe.c random.h misc.h version.h
$(CC) $(CCO) $(CCOC) wipe.c -o wipe.o
version.h: always
if which git >/dev/null 2>&1 ; then \
git rev-list --max-count=1 HEAD | sed -e 's/^/#define WIPE_GIT "/' -e 's/$$/"/' >version.h ; \
else \
echo '#define WIPE_GIT "(unknown, compiled without git)"' >version.h ; \
fi
random.o : random.c misc.h md5.h
$(CC) $(CCO) $(CCOC) random.c -o random.o
rc6.o : rc6.c rc6.h
$(CC) $(CCO) $(CCOC) rc6.c -o rc6.o
arcfour.o : arcfour.c arcfour.h
$(CC) $(CCO) $(CCOC) arcfour.c -o arcfour.o
md5.o : md5.c md5.h
$(CC) $(CCO) $(CCOC) md5.c -o md5.o
misc.o : misc.c misc.h
$(CC) $(CCO) $(CCOC) misc.c -o misc.o
wipe.tr-asc.1 : wipe.tr.1
./trtur <wipe.tr.1 >wipe.tr-asc.1
clean :
rm -f wipe $(OBJECTS) wipe.tr-asc.1 version.h
install:
install -m755 -o root -g root wipe $(DESTDIR)/usr/bin
.PHONY: always clean install