Rev 2 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2 | Rev 11 | ||
---|---|---|---|
1 | # Nettle Makefile |
1 | # Nettle Makefile |
2 | 2 | ||
3 | @SET_MAKE@ |
3 | @SET_MAKE@ |
4 | 4 | ||
5 | srcdir = @srcdir@ |
5 | srcdir = @srcdir@ |
6 | VPATH = @srcdir@ |
6 | VPATH = @srcdir@ |
7 | 7 | ||
8 | LIBOBJS = @LIBOBJS@ |
8 | LIBOBJS = @LIBOBJS@ |
9 | 9 | ||
10 | INSTALL = @INSTALL@ |
10 | INSTALL = @INSTALL@ |
11 | INSTALL_DATA = @INSTALL_DATA@ |
11 | INSTALL_DATA = @INSTALL_DATA@ |
12 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
12 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
13 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
13 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
14 | INSTALL_STRIP_PROGRAM = $(INSTALL_PROGRAM) -s |
14 | INSTALL_STRIP_PROGRAM = $(INSTALL_PROGRAM) -s |
15 | MKDIR_P = @MKDIR_P@ |
15 | MKDIR_P = @MKDIR_P@ |
16 | 16 | ||
17 | SUBDIRS = tools testsuite examples |
17 | SUBDIRS = tools testsuite examples |
18 | 18 | ||
19 | include config.make |
19 | include config.make |
20 | 20 | ||
21 | PRE_CPPFLAGS = -I. |
21 | PRE_CPPFLAGS = -I. |
22 | 22 | ||
23 | TARGETS = aesdata$(EXEEXT) desdata$(EXEEXT) shadata$(EXEEXT) \ |
23 | TARGETS = aesdata$(EXEEXT) desdata$(EXEEXT) shadata$(EXEEXT) \ |
24 | libnettle.a $(SHLIBTARGET) |
24 | libnettle.a $(SHLIBTARGET) |
25 | 25 | ||
26 | DOCTARGETS = nettle.info nettle.html nettle.pdf |
26 | DOCTARGETS = nettle.info nettle.html nettle.pdf |
27 | 27 | ||
28 | all check install uninstall: |
28 | all check install uninstall: |
29 | $(MAKE) $@-here |
29 | $(MAKE) $@-here |
30 | set -e; for d in $(SUBDIRS); do \ |
30 | set -e; for d in $(SUBDIRS); do \ |
31 | echo "Making $@ in $$d" ; (cd $$d && $(MAKE) $@); done |
31 | echo "Making $@ in $$d" ; (cd $$d && $(MAKE) $@); done |
32 | 32 | ||
33 | clean distclean mostlyclean maintainer-clean tags: |
33 | clean distclean mostlyclean maintainer-clean tags: |
34 | set -e; for d in $(SUBDIRS); do \ |
34 | set -e; for d in $(SUBDIRS); do \ |
35 | echo "Making $@ in $$d" ; (cd $$d && $(MAKE) $@); done |
35 | echo "Making $@ in $$d" ; (cd $$d && $(MAKE) $@); done |
36 | $(MAKE) $@-here |
36 | $(MAKE) $@-here |
37 | 37 | ||
38 | check-here: |
38 | check-here: |
39 | true |
39 | true |
40 | 40 | ||
41 | # These targets aren't supported, but they are expected by the |
41 | # These targets aren't supported, but they are expected by the |
42 | # automake generated Makefiles in the lsh build. |
42 | # automake generated Makefiles in the lsh build. |
43 | dvi installcheck uninstallcheck: |
43 | dvi installcheck uninstallcheck: |
44 | true |
44 | true |
45 | 45 | ||
46 | all-here: $(TARGETS) $(DOCTARGETS) |
46 | all-here: $(TARGETS) $(DOCTARGETS) |
47 | 47 | ||
48 | nettle_SOURCES = aes-decrypt-internal.c aes-decrypt.c \ |
48 | nettle_SOURCES = aes-decrypt-internal.c aes-decrypt.c \ |
49 | aes-encrypt-internal.c aes-encrypt.c aes-encrypt-table.c \ |
49 | aes-encrypt-internal.c aes-encrypt.c aes-encrypt-table.c \ |
50 | aes-set-encrypt-key.c aes-set-decrypt-key.c aes-meta.c \ |
50 | aes-set-encrypt-key.c aes-set-decrypt-key.c aes-meta.c \ |
51 | arcfour.c arcfour-crypt.c arcfour-meta.c \ |
51 | arcfour.c arcfour-crypt.c arcfour-meta.c \ |
52 | arctwo.c arctwo-meta.c \ |
52 | arctwo.c arctwo-meta.c \ |
53 | base16-encode.c base16-decode.c base16-meta.c \ |
53 | base16-encode.c base16-decode.c base16-meta.c \ |
54 | base64-encode.c base64-decode.c base64-meta.c \ |
54 | base64-encode.c base64-decode.c base64-meta.c \ |
55 | cast128.c cast128-meta.c \ |
55 | cast128.c cast128-meta.c \ |
56 | blowfish.c \ |
56 | blowfish.c \ |
57 | cbc.c ctr.c \ |
57 | cbc.c ctr.c \ |
58 | des.c \ |
58 | des.c \ |
59 | des3.c des-compat.c \ |
59 | des3.c des-compat.c \ |
60 | hmac.c hmac-md5.c hmac-sha1.c hmac-sha256.c \ |
60 | hmac.c hmac-md5.c hmac-sha1.c hmac-sha256.c \ |
61 | knuth-lfib.c \ |
61 | knuth-lfib.c \ |
62 | md2.c md2-meta.c md4.c md4-meta.c \ |
62 | md2.c md2-meta.c md4.c md4-meta.c \ |
63 | md5.c md5-compress.c md5-compat.c md5-meta.c \ |
63 | md5.c md5-compress.c md5-compat.c md5-meta.c \ |
64 | sha1.c sha1-compress.c sha1-meta.c sha256.c sha256-meta.c \ |
64 | sha1.c sha1-compress.c sha1-meta.c sha256.c sha256-meta.c \ |
65 | serpent.c serpent-meta.c \ |
65 | serpent.c serpent-meta.c \ |
66 | twofish.c twofish-meta.c \ |
66 | twofish.c twofish-meta.c \ |
67 | yarrow256.c yarrow_key_event.c \ |
67 | yarrow256.c yarrow_key_event.c \ |
68 | sexp.c sexp-format.c \ |
68 | sexp.c sexp-format.c \ |
69 | sexp-transport.c sexp-transport-format.c \ |
69 | sexp-transport.c sexp-transport-format.c \ |
70 | bignum.c bignum-random.c sexp2bignum.c \ |
70 | bignum.c bignum-random.c sexp2bignum.c \ |
71 | pkcs1.c pkcs1-rsa-md5.c pkcs1-rsa-sha1.c pkcs1-rsa-sha256.c \ |
71 | pkcs1.c pkcs1-rsa-md5.c pkcs1-rsa-sha1.c pkcs1-rsa-sha256.c \ |
72 | rsa.c rsa-sign.c rsa-verify.c \ |
72 | rsa.c rsa-sign.c rsa-verify.c \ |
73 | rsa-md5-sign.c rsa-md5-verify.c \ |
73 | rsa-md5-sign.c rsa-md5-verify.c \ |
74 | rsa-sha1-sign.c rsa-sha1-verify.c \ |
74 | rsa-sha1-sign.c rsa-sha1-verify.c \ |
75 | rsa-sha256-sign.c rsa-sha256-verify.c \ |
75 | rsa-sha256-sign.c rsa-sha256-verify.c \ |
76 | rsa-encrypt.c rsa-decrypt.c \ |
76 | rsa-encrypt.c rsa-decrypt.c \ |
77 | rsa-keygen.c rsa-compat.c \ |
77 | rsa-keygen.c rsa-compat.c \ |
78 | rsa2sexp.c sexp2rsa.c \ |
78 | rsa2sexp.c sexp2rsa.c \ |
79 | dsa.c dsa-sign.c dsa-verify.c dsa-keygen.c \ |
79 | dsa.c dsa-sign.c dsa-verify.c dsa-keygen.c \ |
80 | sexp2dsa.c \ |
80 | sexp2dsa.c \ |
81 | pgp-encode.c rsa2openpgp.c \ |
81 | pgp-encode.c rsa2openpgp.c \ |
82 | der-iterator.c der2rsa.c \ |
82 | der-iterator.c der2rsa.c \ |
83 | buffer.c buffer-init.c realloc.c \ |
83 | buffer.c buffer-init.c realloc.c \ |
84 | nettle-internal.c |
84 | nettle-internal.c |
85 | 85 | ||
86 | HEADERS = aes.h arcfour.h arctwo.h asn1.h bignum.h blowfish.h \ |
86 | HEADERS = aes.h arcfour.h arctwo.h asn1.h bignum.h blowfish.h \ |
87 | base16.h base64.h buffer.h cast128.h \ |
87 | base16.h base64.h buffer.h cast128.h \ |
88 | cbc.h ctr.h \ |
88 | cbc.h ctr.h \ |
89 | des.h des-compat.h dsa.h \ |
89 | des.h des-compat.h dsa.h \ |
90 | hmac.h \ |
90 | hmac.h \ |
91 | knuth-lfib.h \ |
91 | knuth-lfib.h \ |
92 | macros.h \ |
92 | macros.h \ |
93 | md2.h md4.h \ |
93 | md2.h md4.h \ |
94 | md5.h md5-compat.h \ |
94 | md5.h md5-compat.h \ |
95 | memxor.h \ |
95 | memxor.h \ |
96 | nettle-meta.h nettle-types.h \ |
96 | nettle-meta.h nettle-types.h \ |
97 | pgp.h pkcs1.h realloc.h rsa.h rsa-compat.h \ |
97 | pgp.h pkcs1.h realloc.h rsa.h rsa-compat.h \ |
98 | sexp.h \ |
98 | sexp.h \ |
99 | serpent.h sha.h twofish.h \ |
99 | serpent.h sha.h twofish.h \ |
100 | yarrow.h |
100 | yarrow.h |
101 | 101 | ||
102 | INSTALL_HEADERS = $(HEADERS) nettle-stdint.h |
102 | INSTALL_HEADERS = $(HEADERS) nettle-stdint.h |
103 | 103 | ||
104 | SOURCES = $(nettle_SOURCES) aesdata.c desdata.c shadata.c |
104 | SOURCES = $(nettle_SOURCES) aesdata.c desdata.c shadata.c |
105 | 105 | ||
106 | DISTFILES = $(SOURCES) $(HEADERS) .bootstrap aclocal.m4 configure.ac \ |
106 | DISTFILES = $(SOURCES) $(HEADERS) .bootstrap aclocal.m4 configure.ac \ |
107 | configure stamp-h.in \ |
107 | configure stamp-h.in \ |
108 | config.guess config.sub install-sh texinfo.tex \ |
108 | config.guess config.sub install-sh texinfo.tex \ |
109 | config.h.in config.m4.in config.make.in Makefile.in \ |
109 | config.h.in config.m4.in config.make.in Makefile.in \ |
110 | README AUTHORS COPYING COPYING.LIB INSTALL NEWS TODO ChangeLog \ |
110 | README AUTHORS COPYING COPYING.LIB INSTALL NEWS TODO ChangeLog \ |
111 | memxor.c $(des_headers) descore.README \ |
111 | memxor.c $(des_headers) descore.README \ |
112 | aes-internal.h cast128_sboxes.h desinfo.h desCode.h \ |
112 | aes-internal.h cast128_sboxes.h desinfo.h desCode.h \ |
113 | serpent_sboxes.h nettle-internal.h \ |
113 | serpent_sboxes.h nettle-internal.h \ |
114 | asm.m4 \ |
114 | asm.m4 \ |
115 | nettle.texinfo nettle.info nettle.html nettle.pdf sha-example.c |
115 | nettle.texinfo nettle.info nettle.html nettle.pdf sha-example.c |
116 | 116 | ||
117 | # Rules building libnettle.a |
117 | # Rules building libnettle.a |
118 | # FIXME: Do we really need to delete the archive first? |
118 | # FIXME: Do we really need to delete the archive first? |
119 | nettle_OBJS = $(nettle_SOURCES:.c=.$(OBJEXT)) $(LIBOBJS) |
119 | nettle_OBJS = $(nettle_SOURCES:.c=.$(OBJEXT)) $(LIBOBJS) |
120 | nettle_PURE_OBJS = $(nettle_OBJS:.$(OBJEXT)=.p$(OBJEXT)) |
120 | nettle_PURE_OBJS = $(nettle_OBJS:.$(OBJEXT)=.p$(OBJEXT)) |
121 | 121 | ||
122 | libnettle.a: $(nettle_OBJS) |
122 | libnettle.a: $(nettle_OBJS) |
123 | -rm -f $@ |
123 | -rm -f $@ |
124 | $(AR) $(ARFLAGS) $@ $(nettle_OBJS) |
124 | $(AR) $(ARFLAGS) $@ $(nettle_OBJS) |
125 | $(RANLIB) $@ |
125 | $(RANLIB) $@ |
126 | 126 | ||
127 | .c.$(OBJEXT): |
127 | .c.$(OBJEXT): |
128 | $(COMPILE) $(CCPIC_MAYBE) -c $< \ |
128 | $(COMPILE) $(CCPIC_MAYBE) -c $< \ |
129 | && $(DEP_PROCESS) |
129 | && $(DEP_PROCESS) |
130 | 130 | ||
131 | # Rules building libnettle.so |
131 | # Rules building libnettle.so |
132 | $(SHLIBFORLINK): $(nettle_PURE_OBJS) |
132 | $(SHLIBFORLINK): $(nettle_PURE_OBJS) |
133 | $(SHLIBLINK) $(nettle_PURE_OBJS) -o $@ $(SHLIBLIBS) |
133 | $(SHLIBLINK) $(nettle_PURE_OBJS) -o $@ $(SHLIBLIBS) |
134 | -mkdir .lib 2>/dev/null |
134 | -mkdir .lib 2>/dev/null |
135 | [ -z "$(SHLIBSONAME)" ] || (cd .lib \ |
135 | [ -z "$(SHLIBSONAME)" ] || (cd .lib \ |
136 | && ln -sf ../$(SHLIBFORLINK) $(SHLIBSONAME)) |
136 | && ln -sf ../$(SHLIBFORLINK) $(SHLIBSONAME)) |
137 | 137 | ||
138 | .c.p$(OBJEXT): |
138 | .c.p$(OBJEXT): |
139 | $(COMPILE) $(SHLIBCFLAGS) -c $< -o $@ \ |
139 | $(COMPILE) $(SHLIBCFLAGS) -c $< -o $@ \ |
140 | && $(DEP_PROCESS) |
140 | && $(DEP_PROCESS) |
141 | 141 | ||
142 | # For Solaris and BSD make, we have to use an explicit rule for each executable |
142 | # For Solaris and BSD make, we have to use an explicit rule for each executable |
143 | aesdata$(EXEEXT): aesdata.$(OBJEXT) |
143 | aesdata$(EXEEXT): aesdata.$(OBJEXT) |
144 | $(LINK) aesdata.$(OBJEXT) $(LIBS) -o aesdata$(EXEEXT) |
144 | $(LINK) aesdata.$(OBJEXT) $(LIBS) -o aesdata$(EXEEXT) |
145 | 145 | ||
146 | desdata$(EXEEXT): desdata.$(OBJEXT) |
146 | desdata$(EXEEXT): desdata.$(OBJEXT) |
147 | $(LINK) desdata.$(OBJEXT) $(LIBS) -o desdata$(EXEEXT) |
147 | $(LINK) desdata.$(OBJEXT) $(LIBS) -o desdata$(EXEEXT) |
148 | 148 | ||
149 | shadata$(EXEEXT): shadata.$(OBJEXT) |
149 | shadata$(EXEEXT): shadata.$(OBJEXT) |
150 | $(LINK) shadata.$(OBJEXT) $(LIBS) -lm -o shadata$(EXEEXT) |
150 | $(LINK) shadata.$(OBJEXT) $(LIBS) -lm -o shadata$(EXEEXT) |
151 | 151 | ||
152 | # .$(OBJEXT)$(EXEEXT): |
152 | # .$(OBJEXT)$(EXEEXT): |
153 | # $(LINK) $< $(LIBS) -o $@ |
153 | # $(LINK) $< $(LIBS) -o $@ |
154 | 154 | ||
155 | # desCore rules |
155 | # desCore rules |
156 | # It seems using $(srcdir)/ doesn't work with GNU make 3.79.1 |
156 | # It seems using $(srcdir)/ doesn't work with GNU make 3.79.1 |
157 | # des_headers = $(srcdir)/parity.h $(srcdir)/rotors.h $(srcdir)/keymap.h |
157 | # des_headers = $(srcdir)/parity.h $(srcdir)/rotors.h $(srcdir)/keymap.h |
158 | des_headers = parity.h rotors.h keymap.h |
158 | des_headers = parity.h rotors.h keymap.h |
159 | 159 | ||
160 | # Generate DES headers. |
160 | # Generate DES headers. |
161 | $(des_headers): desdata.c |
161 | $(des_headers): desdata.c |
162 | $(MAKE) desdata$(EXEEXT) |
162 | $(MAKE) desdata$(EXEEXT) |
163 | ./desdata$(EXEEXT) $(@F) > $@T |
163 | ./desdata$(EXEEXT) $(@F) > $@T |
164 | test -s $@T && mv -f $@T $@ |
164 | test -s $@T && mv -f $@T $@ |
165 | 165 | ||
166 | des.$(OBJEXT): des.c des.h $(des_headers) |
166 | des.$(OBJEXT): des.c des.h $(des_headers) |
167 | 167 | ||
168 | .asm.$(OBJEXT): |
168 | .asm.$(OBJEXT): |
169 | $(M4) $(srcdir)/asm.m4 machine.m4 config.m4 \ |
169 | $(M4) $(srcdir)/asm.m4 machine.m4 config.m4 \ |
170 | $< >$*.s |
170 | $< >$*.s |
171 | $(COMPILE) $(CCPIC_MAYBE) -c $*.s |
171 | $(COMPILE) $(CCPIC_MAYBE) -c $*.s |
172 | echo "$@ : $< $(srcdir)/asm.m4 machine.m4 config.m4" >$@.d |
172 | echo "$@ : $< $(srcdir)/asm.m4 machine.m4 config.m4" >$@.d |
173 | 173 | ||
174 | .asm.p$(OBJEXT): |
174 | .asm.p$(OBJEXT): |
175 | $(M4) $(srcdir)/asm.m4 machine.m4 config.m4 \ |
175 | $(M4) $(srcdir)/asm.m4 machine.m4 config.m4 \ |
176 | $< >$*.s |
176 | $< >$*.s |
177 | $(COMPILE) $(SHLIBCFLAGS) -c $*.s -o $@ |
177 | $(COMPILE) $(SHLIBCFLAGS) -c $*.s -o $@ |
178 | echo "$@ : $< $(srcdir)/asm.m4 machine.m4 config.m4" >$@.d |
178 | echo "$@ : $< $(srcdir)/asm.m4 machine.m4 config.m4" >$@.d |
179 | 179 | ||
180 | # Texinfo rules |
180 | # Texinfo rules |
181 | .texinfo.info: |
181 | .texinfo.info: |
182 | cd $(srcdir) && $(MAKEINFO) --output $@T `basename "$<"` \ |
182 | cd $(srcdir) && $(MAKEINFO) --output $@T `basename "$<"` \ |
183 | && test -s $@T && mv -f $@T $@ |
183 | && test -s $@T && mv -f $@T $@ |
184 | 184 | ||
185 | .texinfo.html: |
185 | .texinfo.html: |
186 | cd $(srcdir) && $(MAKEINFO) --html --no-split \ |
186 | cd $(srcdir) && $(MAKEINFO) --html --no-split \ |
187 | --output $@T `basename "$<"` \ |
187 | --output $@T `basename "$<"` \ |
188 | && test -s $@T && mv -f $@T $@ |
188 | && test -s $@T && mv -f $@T $@ |
189 | 189 | ||
190 | .texinfo.dvi: |
190 | .texinfo.dvi: |
191 | cd $(srcdir) && texi2dvi `basename "$<"` |
191 | cd $(srcdir) && texi2dvi `basename "$<"` |
192 | 192 | ||
193 | .dvi.ps: |
193 | .dvi.ps: |
194 | cd $(srcdir) && dvips -Ppdf -G0 -o `basename "$<" .dvi`.ps `basename "$<"` |
194 | cd $(srcdir) && dvips -Ppdf -G0 -o `basename "$<" .dvi`.ps `basename "$<"` |
195 | 195 | ||
196 | # Avoid rebuilding .dvi and .ps files when the .texinfo source is unchanged. |
196 | # Avoid rebuilding .dvi and .ps files when the .texinfo source is unchanged. |
197 | PS2PDFFLAGS=-dCompatibilityLevel=1.3 -dMAxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true |
197 | PS2PDFFLAGS=-dCompatibilityLevel=1.3 -dMAxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true |
198 | .texinfo.pdf: |
198 | .texinfo.pdf: |
199 | $(MAKE) `basename "$<" .texinfo`.ps |
199 | $(MAKE) `basename "$<" .texinfo`.ps |
200 | cd $(srcdir) && ps2pdf $(PS2PDFFLAGS) `basename "$<" .texinfo`.ps |
200 | cd $(srcdir) && ps2pdf $(PS2PDFFLAGS) `basename "$<" .texinfo`.ps |
201 | 201 | ||
202 | # Configure-related rules, mostly copied from the autoconf manual. No |
202 | # Configure-related rules, mostly copied from the autoconf manual. No |
203 | # $(srcdir) prefixes on the targets, though. |
203 | # $(srcdir) prefixes on the targets, though. |
204 | 204 | ||
205 | configure: configure.ac aclocal.m4 |
205 | configure: configure.ac aclocal.m4 |
206 | cd $(srcdir) && $(AUTOCONF) |
206 | cd $(srcdir) && $(AUTOCONF) |
207 | 207 | ||
208 | # autoheader might not change config.h.in, so touch a stamp file. |
208 | # autoheader might not change config.h.in, so touch a stamp file. |
209 | config.h.in: stamp-h.in |
209 | config.h.in: stamp-h.in |
210 | stamp-h.in: configure.ac aclocal.m4 |
210 | stamp-h.in: configure.ac aclocal.m4 |
211 | cd $(srcdir) && autoheader |
211 | cd $(srcdir) && autoheader |
212 | echo timestamp > $(srcdir)/stamp-h.in |
212 | echo timestamp > $(srcdir)/stamp-h.in |
213 | 213 | ||
214 | config.status: configure |
214 | config.status: configure |
215 | ./config.status --recheck |
215 | ./config.status --recheck |
216 | 216 | ||
217 | config.h: stamp-h |
217 | config.h: stamp-h |
218 | stamp-h: config.h.in config.status |
218 | stamp-h: config.h.in config.status |
219 | ./config.status config.h |
219 | ./config.status config.h |
220 | echo timestamp > stamp-h |
220 | echo timestamp > stamp-h |
221 | 221 | ||
222 | Makefile: Makefile.in config.status |
222 | Makefile: Makefile.in config.status |
223 | ./config.status $@ |
223 | ./config.status $@ |
224 | 224 | ||
225 | config.make: config.make.in config.status |
225 | config.make: config.make.in config.status |
226 | ./config.status $@ |
226 | ./config.status $@ |
227 | 227 | ||
228 | config.m4: config.m4.in config.status |
228 | config.m4: config.m4.in config.status |
229 | ./config.status $@ |
229 | ./config.status $@ |
230 | 230 | ||
231 | # Installation |
231 | # Installation |
232 | # FIXME: Use mkinstalldirs. |
232 | # FIXME: Use mkinstalldirs. |
233 | install-here: install-info install-headers libnettle.a $(SHLIBINSTALL) |
233 | install-here: install-info install-headers libnettle.a $(SHLIBINSTALL) |
234 | $(MKDIR_P) $(DESTDIR)$(libdir) |
234 | $(MKDIR_P) $(DESTDIR)$(libdir) |
235 | $(INSTALL_DATA) libnettle.a $(DESTDIR)$(libdir) |
235 | $(INSTALL_DATA) libnettle.a $(DESTDIR)$(libdir) |
236 | 236 | ||
237 | install-shared: $(SHLIBFORLINK) |
237 | install-shared: $(SHLIBFORLINK) |
238 | $(MKDIR_P) $(DESTDIR)$(libdir) |
238 | $(MKDIR_P) $(DESTDIR)$(libdir) |
239 | $(INSTALL_PROGRAM) $(SHLIBFORLINK) $(DESTDIR)$(libdir)/$(SHLIBFILE) |
239 | $(INSTALL_PROGRAM) $(SHLIBFORLINK) $(DESTDIR)$(libdir)/$(SHLIBFILE) |
240 | [ -z "$(SHLIBSONAME)" ] \ |
240 | [ -z "$(SHLIBSONAME)" ] \ |
241 | || (cd $(DESTDIR)$(libdir) \ |
241 | || (cd $(DESTDIR)$(libdir) \ |
242 | && ln -sf $(SHLIBFILE) $(SHLIBSONAME) \ |
242 | && ln -sf $(SHLIBFILE) $(SHLIBSONAME) \ |
243 | && ln -sf $(SHLIBFILE) $(SHLIBFORLINK) ) |
243 | && ln -sf $(SHLIBFILE) $(SHLIBFORLINK) ) |
244 | 244 | ||
245 | # I'd like to use makes VPATH search to locate the files to be |
245 | # I'd like to use makes VPATH search to locate the files to be |
246 | # installed. But it seems most make programs don't set $<, $^, $? and |
246 | # installed. But it seems most make programs don't set $<, $^, $? and |
247 | # friends for ordinary explicit rules. |
247 | # friends for ordinary explicit rules. |
248 | 248 | ||
249 | install-info: nettle.info |
249 | install-info: nettle.info |
250 | $(MKDIR_P) $(DESTDIR)$(infodir) |
250 | $(MKDIR_P) $(DESTDIR)$(infodir) |
251 | f=nettle.info ; \ |
251 | f=nettle.info ; \ |
252 | [ -f $$f ] || f="$(srcdir)/$$f" ; \ |
252 | [ -f $$f ] || f="$(srcdir)/$$f" ; \ |
253 | $(INSTALL_DATA) "$$f" $(DESTDIR)$(infodir) ; \ |
253 | $(INSTALL_DATA) "$$f" $(DESTDIR)$(infodir) ; \ |
254 | if (install-info --version && \ |
254 | if (install-info --version && \ |
255 | install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ |
255 | install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ |
256 | install-info --info-dir="$(DESTDIR)$(infodir)" "$$f" ; \ |
256 | install-info --info-dir="$(DESTDIR)$(infodir)" "$$f" ; \ |
257 | else : ; fi |
257 | else : ; fi |
258 | 258 | ||
259 | # NOTE: I'd like to use $^, but that's a GNU extension. $? should be |
259 | # NOTE: I'd like to use $^, but that's a GNU extension. $? should be |
260 | # more portable, and equivalent for phony targets. |
260 | # more portable, and equivalent for phony targets. |
261 | install-headers: $(INSTALL_HEADERS) |
261 | install-headers: $(INSTALL_HEADERS) |
262 | $(MKDIR_P) $(DESTDIR)$(includedir)/nettle |
262 | $(MKDIR_P) $(DESTDIR)$(includedir)/nettle |
263 | for f in $(INSTALL_HEADERS) ; do \ |
263 | for f in $(INSTALL_HEADERS) ; do \ |
264 | if [ -f "$$f" ] ; then \ |
264 | if [ -f "$$f" ] ; then \ |
265 | $(INSTALL_DATA) "$$f" $(DESTDIR)$(includedir)/nettle ; \ |
265 | $(INSTALL_DATA) "$$f" $(DESTDIR)$(includedir)/nettle ; \ |
266 | else \ |
266 | else \ |
267 | $(INSTALL_DATA) "$(srcdir)/$$f" $(DESTDIR)$(includedir)/nettle ; \ |
267 | $(INSTALL_DATA) "$(srcdir)/$$f" $(DESTDIR)$(includedir)/nettle ; \ |
268 | fi ; done |
268 | fi ; done |
269 | 269 | ||
270 | # Uninstall |
270 | # Uninstall |
271 | uninstall-here: uninstall-info uninstall-headers uninstall-shared |
271 | uninstall-here: uninstall-info uninstall-headers uninstall-shared |
272 | rm -f $(DESTDIR)$(libdir)/libnettle.a |
272 | rm -f $(DESTDIR)$(libdir)/libnettle.a |
273 | 273 | ||
274 | uninstall-headers: |
274 | uninstall-headers: |
275 | for f in $(INSTALL_HEADERS) ; do \ |
275 | for f in $(INSTALL_HEADERS) ; do \ |
276 | rm -f $(DESTDIR)$(includedir)/nettle/$$f ; \ |
276 | rm -f $(DESTDIR)$(includedir)/nettle/$$f ; \ |
277 | done |
277 | done |
278 | 278 | ||
279 | uninstall-info: |
279 | uninstall-info: |
280 | if (install-info --version && \ |
280 | if (install-info --version && \ |
281 | install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ |
281 | install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ |
282 | install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)"/nettle.info ; \ |
282 | install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)"/nettle.info ; \ |
283 | else : ; fi |
283 | else : ; fi |
284 | -rm -f $(DESTDIR)$(infodir)/nettle.info |
284 | -rm -f $(DESTDIR)$(infodir)/nettle.info |
285 | 285 | ||
286 | # FIXME: Leaves the links around |
286 | # FIXME: Leaves the links around |
287 | uninstall-shared: |
287 | uninstall-shared: |
288 | test -z "$(SHLIBINSTALL)" || rm -f $(DESTDIR)$(libdir)/$(SHLIBFILE) |
288 | test -z "$(SHLIBINSTALL)" || rm -f $(DESTDIR)$(libdir)/$(SHLIBFILE) |
289 | 289 | ||
290 | # Distribution |
290 | # Distribution |
291 | distdir = $(PACKAGE_NAME)-$(PACKAGE_VERSION) |
291 | distdir = $(PACKAGE_NAME)-$(PACKAGE_VERSION) |
292 | top_distdir = $(distdir) |
292 | top_distdir = $(distdir) |
293 | 293 | ||
294 | # NOTE: Depending on the automake version in the parent dir, |
294 | # NOTE: Depending on the automake version in the parent dir, |
295 | # we must handle both absolute and relative $destdir. |
295 | # we must handle both absolute and relative $destdir. |
296 | 296 | ||
297 | distdir: $(DISTFILES) |
297 | distdir: $(DISTFILES) |
298 | rm -rf "$(distdir)" |
298 | rm -rf "$(distdir)" |
299 | mkdir "$(distdir)" |
299 | mkdir "$(distdir)" |
300 | set -e; for f in $(DISTFILES) ; do \ |
300 | set -e; for f in $(DISTFILES) ; do \ |
301 | if [ -f "$$f" ] ; then cp "$$f" "$(distdir)" ; \ |
301 | if [ -f "$$f" ] ; then cp "$$f" "$(distdir)" ; \ |
302 | else cp "$(srcdir)/$$f" "$(distdir)" ; \ |
302 | else cp "$(srcdir)/$$f" "$(distdir)" ; \ |
303 | fi ; \ |
303 | fi ; \ |
304 | done |
304 | done |
305 | set -e; for d in sparc x86 ; do \ |
305 | set -e; for d in sparc x86 ; do \ |
306 | mkdir "$(distdir)/$$d" ; \ |
306 | mkdir "$(distdir)/$$d" ; \ |
307 | cp $(srcdir)/$$d/*.asm $(srcdir)/$$d/*.m4 "$(distdir)/$$d" ; \ |
307 | cp $(srcdir)/$$d/*.asm $(srcdir)/$$d/*.m4 "$(distdir)/$$d" ; \ |
308 | done |
308 | done |
309 | set -e; for d in $(SUBDIRS); do \ |
309 | set -e; for d in $(SUBDIRS); do \ |
310 | sd="$(distdir)/$$d" ; \ |
310 | sd="$(distdir)/$$d" ; \ |
311 | mkdir "$$sd" && $(MAKE) -C $$d distdir="`cd $$sd && pwd`" $@ ; \ |
311 | mkdir "$$sd" && $(MAKE) -C $$d distdir="`cd $$sd && pwd`" $@ ; \ |
312 | done |
312 | done |
313 | 313 | ||
314 | dist: distdir |
314 | dist: distdir |
315 | tar cf - $(distdir) | gzip -c >$(distdir).tar.gz |
315 | tar cf - $(distdir) | gzip -c >$(distdir).tar.gz |
316 | rm -rf $(distdir) |
316 | rm -rf $(distdir) |
317 | 317 | ||
318 | rm_distcheck = test ! -d distcheck-tmp \ |
318 | rm_distcheck = test ! -d distcheck-tmp \ |
319 | || { find distcheck-tmp -type d ! -perm -200 -exec chmod u+w {} ';' \ |
319 | || { find distcheck-tmp -type d ! -perm -200 -exec chmod u+w {} ';' \ |
320 | && rm -fr distcheck-tmp; }; |
320 | && rm -fr distcheck-tmp; }; |
321 | 321 | ||
322 | distcheck: dist |
322 | distcheck: dist |
323 | $(rm_distcheck) |
323 | $(rm_distcheck) |
324 | mkdir distcheck-tmp |
324 | mkdir distcheck-tmp |
325 | gzip -d < $(distdir).tar.gz \ |
325 | gzip -d < $(distdir).tar.gz \ |
326 | | { cd distcheck-tmp && tar xf - && chmod -R a-w $(distdir) ; } |
326 | | { cd distcheck-tmp && tar xf - && chmod -R a-w $(distdir) ; } |
327 | mkdir distcheck-tmp/build |
327 | mkdir distcheck-tmp/build |
328 | mkdir distcheck-tmp/install |
328 | mkdir distcheck-tmp/install |
329 | cd distcheck-tmp/build && ../$(distdir)/configure --prefix="`cd ../install && pwd`" |
329 | cd distcheck-tmp/build && ../$(distdir)/configure --prefix="`cd ../install && pwd`" |
330 | cd distcheck-tmp/build && $(MAKE) |
330 | cd distcheck-tmp/build && $(MAKE) |
331 | cd distcheck-tmp/build && $(MAKE) check |
331 | cd distcheck-tmp/build && $(MAKE) check |
332 | cd distcheck-tmp/build && $(MAKE) install |
332 | cd distcheck-tmp/build && $(MAKE) install |
333 | cd distcheck-tmp/build && $(MAKE) uninstall |
333 | cd distcheck-tmp/build && $(MAKE) uninstall |
334 | cd distcheck-tmp && find install -type f -print > leftover-install-files |
334 | cd distcheck-tmp && find install -type f -print > leftover-install-files |
335 | @test `cat distcheck-tmp/leftover-install-files | wc -l` -le 1 \ |
335 | @test `cat distcheck-tmp/leftover-install-files | wc -l` -le 1 \ |
336 | || { echo "ERROR: files left after uninstall:" ; \ |
336 | || { echo "ERROR: files left after uninstall:" ; \ |
337 | cat distcheck-tmp/leftover-install-files ; \ |
337 | cat distcheck-tmp/leftover-install-files ; \ |
338 | exit 1; } |
338 | exit 1; } |
339 | chmod -R a-w distcheck-tmp/install |
339 | chmod -R a-w distcheck-tmp/install |
340 | mkdir distcheck-tmp/destdir |
340 | mkdir distcheck-tmp/destdir |
341 | destdir="`cd distcheck-tmp/destdir && pwd`" \ |
341 | destdir="`cd distcheck-tmp/destdir && pwd`" \ |
342 | && cd distcheck-tmp/build \ |
342 | && cd distcheck-tmp/build \ |
343 | && $(MAKE) install DESTDIR="$$destdir" \ |
343 | && $(MAKE) install DESTDIR="$$destdir" \ |
344 | && $(MAKE) uninstall DESTDIR="$$destdir" |
344 | && $(MAKE) uninstall DESTDIR="$$destdir" |
345 | cd distcheck-tmp && find destdir -type f -print > leftover-destdir-files |
345 | cd distcheck-tmp && find destdir -type f -print > leftover-destdir-files |
346 | @test `cat distcheck-tmp/leftover-destdir-files | wc -l` -le 1 \ |
346 | @test `cat distcheck-tmp/leftover-destdir-files | wc -l` -le 1 \ |
347 | || { echo "ERROR: destdir files left after uninstall:" ; \ |
347 | || { echo "ERROR: destdir files left after uninstall:" ; \ |
348 | cat distcheck-tmp/leftover-destdir-files ; \ |
348 | cat distcheck-tmp/leftover-destdir-files ; \ |
349 | exit 1; } |
349 | exit 1; } |
350 | cd distcheck-tmp/build && $(MAKE) dist |
350 | cd distcheck-tmp/build && $(MAKE) dist |
351 | cd distcheck-tmp/build && rm *.gz |
351 | cd distcheck-tmp/build && rm *.gz |
352 | cd distcheck-tmp/build && $(MAKE) distclean |
352 | cd distcheck-tmp/build && $(MAKE) distclean |
353 | cd distcheck-tmp && find build -type f -print > leftover-build-files |
353 | cd distcheck-tmp && find build -type f -print > leftover-build-files |
354 | @test `cat distcheck-tmp/leftover-build-files | wc -l` -eq 0 \ |
354 | @test `cat distcheck-tmp/leftover-build-files | wc -l` -eq 0 \ |
355 | || { echo "ERROR: files left in build directory after distclean:" ; \ |
355 | || { echo "ERROR: files left in build directory after distclean:" ; \ |
356 | cat distcheck-tmp/leftover-build-files ; \ |
356 | cat distcheck-tmp/leftover-build-files ; \ |
357 | exit 1; } |
357 | exit 1; } |
358 | $(rm_distcheck) |
358 | $(rm_distcheck) |
359 | 359 | ||
360 | clean-here: |
360 | clean-here: |
361 | -rm -f $(TARGETS) *.$(OBJEXT) *.p$(OBJEXT) *.s |
361 | -rm -f $(TARGETS) *.$(OBJEXT) *.p$(OBJEXT) *.s |
362 | -rm -rf .lib |
362 | -rm -rf .lib |
363 | 363 | ||
364 | distclean-here: clean-here |
364 | distclean-here: clean-here |
365 | -rm -f config.h stamp-h config.log config.status machine.m4 \ |
365 | -rm -f config.h stamp-h config.log config.status machine.m4 \ |
366 | config.make config.m4 Makefile nettle-stdint.h *.asm *.d |
366 | config.make config.m4 Makefile nettle-stdint.h *.asm *.d |
367 | 367 | ||
368 | maintainer-clean-here: |
368 | maintainer-clean-here: |
369 | -rm -f $(DOCTARGETS) *.dvi *.ps |
369 | -rm -f $(DOCTARGETS) *.dvi *.ps |
370 | 370 | ||
371 | tags-here: |
371 | tags-here: |
372 | etags $(srcdir)/*.c $(srcdir)/*.h |
372 | etags $(srcdir)/*.c $(srcdir)/*.h |
373 | 373 | ||
374 | DEP_FILES = $(SOURCES:.c=.$(OBJEXT).d) $(SOURCES:.c=.p$(OBJEXT).d) |
374 | DEP_FILES = $(SOURCES:.c=.$(OBJEXT).d) $(SOURCES:.c=.p$(OBJEXT).d) |
375 | @DEP_INCLUDE@ $(DEP_FILES) |
375 | @DEP_INCLUDE@ $(DEP_FILES) |