From 9fe4da971b535331f737c7ab82a6e3ae4bdca662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Tue, 1 Oct 2002 22:32:10 +0200 Subject: [PATCH] A first attempt at rules for building a shared libnettle.so. Rev: src/nettle/Makefile.am:1.42 --- Makefile.am | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index ff0f4cfb..51c4d3e5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,14 @@ SUBDIRS = . testsuite examples +SHLIBFORLINK = @SHLIBFORLINK@ +SHLIBSONAME = @SHLIBSONAME@ +SHLIBFILE = @SHLIBFILE@ + +SHLIBCFLAGS = @SHLIBCFLAGS@ +SHLIBLINK = @SHLIBLINK@ +SHLIBTARGET = @SHLIBTARGET@ +SHLIBINSTALL = @SHLIBINSTALL@ + noinst_PROGRAMS = aesdata desdata shadata libnettleincludedir = $(includedir)/nettle @@ -67,15 +76,39 @@ SUFFIXES = .asm RM_TMP = rm -f # FIXME: How to write this without using GNU make features? +%.s: %.asm asm.m4 machine.m4 config.m4 + $(M4) $(srcdir)/asm.m4 machine.m4 config.m4 \ + `test -f $< || echo '$(srcdir)/'`$< >$@ + # NOTE: We create an empty .deps-file, to make the make/automake # dependency tracking happier. -%.o: %.asm asm.m4 machine.m4 config.m4 - $(M4) $(srcdir)/asm.m4 machine.m4 config.m4 \ - `test -f $< || echo '$(srcdir)/'`$< >tmp-$*.s - $(COMPILE) -c tmp-$*.s -o $@ - $(RM_TMP) tmp-$*.s +%.$(OBJEXT): %.s + $(COMPILE) -c $< -o $@ + echo >.deps/$*.Po + +# Shared library rules +all-local: $(SHLIBTARGET) +install-data-local: $(SHLIBINSTALL) + +# Assembler files must contain only PIC-clean code. +%_p.$(OBJEXT): %.c + $(COMPILE) $(SHLIBCFLAGS) -c $< -o $@ + +%_p.$(OBJEXT): %.s + $(COMPILE) $(SHLIBCFLAGS) -c $< -o $@ echo >.deps/$*.Po +SHLIBOBJECTS = (patsubst %.$(OBJEXT),%_p.$(OBJEXT),$(am_libnettle_a_OBJECTS) $(LIBOBJS)) + +$(SHLIBFORLINK): $(SHLIBOBJECTS) + $(SHLIBLINK) $^ -o $@ + +install-shared: $(SHLIBFORLINK) + $(INSTALL_DATA) $(SHLIBFORLINK) $(DESTDIR)$(libdir)/$(SHLIBFILE) + (cd $(DESTDIR)$(libdir) \ + && ln -sf $(SHLIBFILE) $(SHLIBSONAME) \ + && ln -sf $(SHLIBFILE) $(SHLIBFORLINK) ) + %.html : %.texinfo (cd $(srcdir) \ && $(MAKEINFO) --html --no-split --output $@T $(<F) \ -- GitLab