LIBS=../../libcrypto
-SOURCE[../../libcrypto]=\
- {- $target{rc4_asm_src} -}
-GENERATE[rc4-586.s]=asm/rc4-586.pl $(PERLASM_SCHEME) $(CFLAGS) $(LIB_CFLAGS) $(PROCESSOR)
-DEPEND[rc4-586.s]=../perlasm/x86asm.pl
+$RC4ASM=rc4_enc.c rc4_skey.c
+IF[{- !$disabled{asm} -}]
+ $RC4ASM_x86=rc4-586.s
+ $RC4ASM_x86_64=rc4-x86_64.s rc4-md5-x86_64.s
+ $RC4ASM_s390x=rc4-s390x.s
+ $RC4ASM_parisc11=rc4-parisc.s
+ $RC4ASM_parisc20_64=$RC4ASM_parisc11
+ $RC4ASM_c64xplus=rc4-c64xplus.s
+
+ # Now that we have defined all the arch specific variables, use the
+ # appropriate one, and define the appropriate macros
+ IF[$RC4ASM_{- $target{asm_arch} -}]
+ $RC4ASM=$RC4ASM_{- $target{asm_arch} -}
+ $RC4DEF=RC4_ASM
+ ENDIF
+ENDIF
-GENERATE[rc4-x86_64.s]=asm/rc4-x86_64.pl $(PERLASM_SCHEME)
-GENERATE[rc4-md5-x86_64.s]=asm/rc4-md5-x86_64.pl $(PERLASM_SCHEME)
+SOURCE[../../libcrypto]=$RC4ASM
-GENERATE[rc4-parisc.s]=asm/rc4-parisc.pl $(PERLASM_SCHEME)
+# When all deprecated symbols are removed, libcrypto doesn't export the
+# rc4 functions, so we must include them directly in liblegacy.a
+IF[{- $disabled{'deprecated-3.0'} -}]
+ SOURCE[../../providers/liblegacy.a]=$RC4ASM
+ENDIF
+
+GENERATE[rc4-586.s]=asm/rc4-586.pl
+DEPEND[rc4-586.s]=../perlasm/x86asm.pl
-BEGINRAW[Makefile]
-{- $builddir -}/rc4-ia64.s: {- $sourcedir -}/asm/rc4-ia64.pl
- @(trap "rm $@.*" INT 0; \
- perl $< $(CFLAGS) $(LIB_CFLAGS) $@.S; \
- case `awk '/^#define RC4_INT/{print$$NF}' $(BLDDIR)/include/openssl/opensslconf.h` in \
- int) set -x; $(CC) $(CFLAGS) $(LIB_CFLAGS) -DSZ=4 -E $@.S > $@.i && mv -f $@.i $@;; \
- char) set -x; $(CC) $(CFLAGS) $(LIB_CFLAGS) -DSZ=1 -E $@.S > $@.i && mv -f $@.i $@;; \
- *) exit 1 ;; \
- esac )
+GENERATE[rc4-x86_64.s]=asm/rc4-x86_64.pl
+GENERATE[rc4-md5-x86_64.s]=asm/rc4-md5-x86_64.pl
-# GNU make "catch all"
-{- $builddir -}/rc4-%.s: {- $sourcedir -}/asm/rc4-%.pl
- CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@
-ENDRAW[Makefile]
+GENERATE[rc4-parisc.s]=asm/rc4-parisc.pl
+GENERATE[rc4-c64xplus.s]=asm/rc4-c64xplus.pl
+GENERATE[rc4-s390x.s]=asm/rc4-s390x.pl