include config.make
+# FIXME: Really need -I$(srcdir) ???
+INCLUDES = -I. -I$(srcdir)
TARGETS = aesdata$(EXEEXT) desdata$(EXEEXT) shadata$(EXEEXT) libnettle.a $(SHLIBTARGET)
-all check install uninstall clean distclean mostlyclean maintainer-clean distdir:
+all check install uninstall:
$(MAKE) $@-here
set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done
+clean distclean mostlyclean maintainer-clean:
+ set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done
+ $(MAKE) $@-here
+
check-here:
true
SOURCES = $(nettle_SOURCES) aesdata.c desdata.c shadata.c
DISTFILES = $(SOURCES) $(HEADERS) .bootstrap aclocal.m4 configure.ac configure \
- config.guess config.sub texinfo.tex \
+ config.guess config.sub install-sh texinfo.tex \
config.h.in config.m4.in config.make.in Makefile.in \
README AUTHORS COPYING INSTALL NEWS TODO \
+ memxor.c $(des_headers) descore.README \
+ aes-internal.h cast128_sboxes.h desinfo.h desCode.h \
+ serpent_sboxes.h nettle-internal.h \
nettle.texinfo nettle.info sha-example.c
# Rules building libnettle.a
shadata$(EXEEXT): shadata.$(OBJEXT)
$(LINK) $^ $(LIBS) -lm -o $@
+# desCore rules
+# It seems using $(srcdir)/ doesn't work with GNU make 3.79.1
+# des_headers = $(srcdir)/parity.h $(srcdir)/rotors.h $(srcdir)/keymap.h
+des_headers = parity.h rotors.h keymap.h
+
+# Generate DES headers.
+$(des_headers): desdata.c
+ $(MAKE) desdata$(EXEEXT)
+ ./desdata$(EXEEXT) $(@F) > $@T
+ test -s $@T && mv -f $@T $@
+
+des.o: des.c des.h $(des_headers)
+
# FIXME: For some reason, this rule breaks builds on Tru64 5.1B (on
# alpha), with the system make. It fails with "Don't know how to make
# aes.asm", which is very strange, since the make program on this
Makefile: $(srcdir)/Makefile.in config.status
$(SHELL) ./config.status $@
-settings: $(srcdir)/settings.in config.status
+config.make: $(srcdir)/config.make.in config.status
$(SHELL) ./config.status $@
config.status: $(srcdir)/configure
$(SHELL) ./config.status --recheck
+config.m4: config.status $(srcdir)/config.m4.in
+ $(SHELL) ./config.status $@
+
configure: $(srcdir)/configure.ac $(srcdir)/aclocal.m4
cd $(srcdir) && $(AUTOCONF)
touch $@
# Installation
-install-here: install-info libnettle.a $(SHLIBTARGET) $(INSTALL_HEADERS) $(SHLIBINSTALL)
- $(INSTALL) -d $(includedir)/nettle
+install-here: install-info install-headers libnettle.a $(SHLIBTARGET) $(SHLIBINSTALL)
$(INSTALL) -d $(libdir)
- $(INSTALL_DATA) $(INSTALL_HEADERS) $(includedir)/nettle
$(INSTALL_DATA) libnettle.a $(libdir)
install-shared: $(SHLIBFORLINK)
install-info: nettle.info
$(INSTALL) -d $(infodir)
- $(INSTALL_DATA) nettle.info $(infodir) ; \
+ $(INSTALL_DATA) $< $(infodir) ; \
if (install-info --version && \
install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
- install-info --info-dir="$(infodir)" nettle.info ; \
+ install-info --info-dir="$(infodir)" $< ; \
else : ; fi
+install-headers: $(INSTALL_HEADERS)
+ $(INSTALL) -d $(includedir)/nettle
+ $(INSTALL_DATA) $^ $(includedir)/nettle
+
# Distribution
distdir = $(PACKAGE_NAME)-$(PACKAGE_VERSION)
top_distdir = $(distdir)
# $(distdir) must always be a relative path!
-distdir-here: $(DISTFILES)
+distdir: $(DISTFILES)
rm -rf $(distdir)
mkdir $(distdir)
- cp $(DISTFILES) $(distdir)
+ cp $^ $(distdir)
+ set -e; for d in sparc x86 ; do \
+ mkdir $(distdir)/$$d ; \
+ cp $(srcdir)/$$d/*.asm $(srcdir)/$$d/*.m4 $(distdir)/$$d ; \
+ done
set -e; for d in $(SUBDIRS); do \
sd=$(distdir)/$$d ; \
mkdir $$sd && $(MAKE) -C $$d distdir=../$$sd $@ ; \
rm_distcheck = test ! -d distcheck-tmp \
|| { find distcheck-tmp -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr distcheck-tmp; }; }
+ && rm -fr distcheck-tmp; };
distcheck: dist
$(rm_distcheck)
mkdir distcheck-tmp
- cd distcheck-tmp && gzip -d < $(distdir).tar.gz | tar xf - && chmod -R a-w $(distdir)
+ gzip -d < $(distdir).tar.gz \
+ | { cd distcheck-tmp && tar xf - && chmod -R a-w $(distdir) ; }
mkdir distcheck-tmp/build
mkdir distcheck-tmp/install
cd distcheck-tmp/build && ../$(distdir)/configure --prefix=`cd ../install && pwd`
cd distcheck-tmp/build && $(MAKE) install
cd distcheck-tmp/build && $(MAKE) dist
cd distcheck-tmp/build && rm *.gz
- cd distcheck-tmp/build && $(MAKE) distcleancheck
+ cd distcheck-tmp/build && $(MAKE) distclean
cd distcheck-tmp && find build -type f -print > leftover-files
@test `cat distcheck-tmp/leftover-files | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
exit 1; }
$(rm_distcheck)
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-
-
clean-here:
- rm -f $(TARGETS) *.$(OBJEXT) *.p$(OBJEXT) *.d
+ -rm -f $(TARGETS) *.$(OBJEXT) *.p$(OBJEXT) *.d
-distclean-hdr:
- -rm -f config.h stamp-h1
-config.m4: config.status $(srcdir)/config.m4.in
- $(SHELL) ./config.status $@
+distclean-here: clean-here
+ -rm -f config.h stamp-h1 config.log config.status \
+ config.make config.m4 Makefile nettle-types.h
-include $(SOURCES:.c=.$(OBJEXT).d) $(SOURCES:.c=.p$(OBJEXT).d)