*BIG* verify code reorganisation.
[oweals/openssl.git] / crypto / md5 / Makefile.ssl
index d73650fe4def1b61c2bb514a9dcc89ad895a4488..92ffc0b502d529efeb4dd17a38d2b246cddb7c61 100644 (file)
@@ -20,9 +20,17 @@ MD5_ASM_OBJ=
 
 CFLAGS= $(INCLUDES) $(CFLAG)
 
+# We let the C compiler driver to take care of .s files. This is done in
+# order to be excused from maintaining a separate set of architecture
+# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
+# gcc, then the driver will automatically translate it to -xarch=v8plus
+# and pass it down to assembler.
+AS=$(CC) -c
+ASFLAGS=$(CFLAGS)
+
 GENERAL=Makefile
 TEST=md5test.c
-APPS=md5.c
+APPS=
 
 LIB=$(TOP)/libcrypto.a
 LIBSRC=md5_dgst.c md5_one.c
@@ -47,7 +55,7 @@ lib:    $(LIBOBJ)
 
 # elf
 asm/mx86-elf.o: asm/mx86unix.cpp
-       $(CPP) -DELF asm/mx86unix.cpp | as -o asm/mx86-elf.o
+       $(CPP) -DELF -x c asm/mx86unix.cpp | as -o asm/mx86-elf.o
 
 # solaris
 asm/mx86-sol.o: asm/mx86unix.cpp
@@ -63,19 +71,26 @@ asm/mx86-out.o: asm/mx86unix.cpp
 asm/mx86bsdi.o: asm/mx86unix.cpp
        $(CPP) -DBSDI asm/mx86unix.cpp | sed 's/ :/:/' | as -o asm/mx86bsdi.o
 
-asm/mx86unix.cpp: asm/md5-586.pl
+asm/mx86unix.cpp: asm/md5-586.pl ../perlasm/x86asm.pl
        (cd asm; $(PERL) md5-586.pl cpp >mx86unix.cpp)
 
-# works for both SC and gcc
-# (PATH is changed because /usr/ccs/bin/as knows opcodes we need
-# that GNU as has never heard of)
 asm/md5-sparcv8plus.o: asm/md5-sparcv9.S
-       $(CPP) -DULTRASPARC -DMD5_BLOCK_DATA_ORDER asm/md5-sparcv9.S | \
-       PATH=/usr/ccs/bin:$(PATH) as -xarch=v8plus - -o asm/md5-sparcv8plus.o
+       $(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
+               -o asm/md5-sparcv8plus.o asm/md5-sparcv9.S
+
+# Old GNU assembler doesn't understand V9 instructions, so we
+# hire /usr/ccs/bin/as to do the job. Note that option is called
+# *-gcc27, but even gcc 2>=8 users may experience similar problem
+# if they didn't bother to upgrade GNU assembler. Such users should
+# not choose this option, but be adviced to *remove* GNU assembler
+# or upgrade it.
+asm/md5-sparcv8plus-gcc27.o: asm/md5-sparcv9.S
+       $(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -E asm/md5-sparcv9.S | \
+               /usr/ccs/bin/as -xarch=v8plus - -o asm/md5-sparcv8plus-gcc27.o
 
 asm/md5-sparcv9.o: asm/md5-sparcv9.S
-       PATH=/usr/ccs/bin:$(PATH) $(CC) -xarch=v9 -DULTRASPARC -DMD5_BLOCK_DATA_ORDER -c asm/md5-sparcv9.S -o asm/md5-sparcv9.o
-
+       $(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
+               -o asm/md5-sparcv9.o asm/md5-sparcv9.S
 
 files:
        $(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO