diff --git a/Makefile.am b/Makefile.am index 51c4d3e5267d13e379dce7371d87ca4a6411362e..4026c5df433f9a0500a372ae36834830514fdaf2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,14 +1,5 @@ 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 @@ -76,29 +67,36 @@ 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 have to use an explicit rule .asm -> .o, to override the .c +# -> .o rule. Using rules involving .s doesn't seem to work. +# %.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. -%.$(OBJEXT): %.s - $(COMPILE) -c $< -o $@ +%.$(OBJEXT): %.asm asm.m4 machine.m4 config.m4 + $(M4) $(srcdir)/asm.m4 machine.m4 config.m4 \ + `test -f $< || echo '$(srcdir)/'`$< >$*.s + $(COMPILE) -c $*.s -o $@ echo >.deps/$*.Po # Shared library rules all-local: $(SHLIBTARGET) install-data-local: $(SHLIBINSTALL) +%_p.$(OBJEXT): %.asm asm.m4 machine.m4 config.m4 + $(M4) $(srcdir)/asm.m4 machine.m4 config.m4 \ + `test -f $< || echo '$(srcdir)/'`$< >$*.s + $(COMPILE) -c $*.s -o $@ + echo >.deps/$*.Po + # 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)) +SHLIBOBJECTS = $(patsubst %.$(OBJEXT),%_p.$(OBJEXT),$(am_libnettle_a_OBJECTS) $(LIBOBJS)) $(SHLIBFORLINK): $(SHLIBOBJECTS) $(SHLIBLINK) $^ -o $@