rc4-s390x.pl: harmonize build rule with other similar rules.
diff --git a/crypto/rc4/Makefile b/crypto/rc4/Makefile
index 3f467a6..aa25be6 100644
--- a/crypto/rc4/Makefile
+++ b/crypto/rc4/Makefile
@@ -50,9 +50,6 @@
 rc4-ia64.S: asm/rc4-ia64.pl
 	$(PERL) asm/rc4-ia64.pl $(CFLAGS) > $@
 
-rc4-s390x.s:	asm/rc4-s390x.pl
-	$(PERL) asm/rc4-s390x.pl > $@
-
 rc4-parisc.s:	asm/rc4-parisc.pl
 	$(PERL) asm/rc4-parisc.pl $(PERLASM_SCHEME) $@
 
@@ -63,6 +60,9 @@
 	*)	exit 1 ;; \
 	esac
 
+# GNU make "catch all"
+rc4-%.s:	asm/rc4-%.pl;	$(PERL) $< $(PERLASM_SCHEME) $@
+
 files:
 	$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
 
diff --git a/crypto/rc4/asm/rc4-s390x.pl b/crypto/rc4/asm/rc4-s390x.pl
index 96681fa..f26c515 100644
--- a/crypto/rc4/asm/rc4-s390x.pl
+++ b/crypto/rc4/asm/rc4-s390x.pl
@@ -13,6 +13,9 @@
 # "cluster" Address Generation Interlocks, so that one pipeline stall
 # resolves several dependencies.
 
+while (($output=shift) && ($output!~/^\w[\w\-]*\.\w+$/)) {}
+open STDOUT,">$output";
+
 $rp="%r14";
 $sp="%r15";
 $code=<<___;
@@ -203,3 +206,4 @@
 ___
 
 print $code;
+close STDOUT;	# force flush