> I'm trying to figure out why bsdmake on MacOS does this using the > standard Makefiles: > > cc -c -I. -I.. -I../include -DOPENSSL_THREADS -D_REENTRANT > -DDSO_DLFCN -DHAVE_DLFCN_H -Wall -pedantic -DPEDANTIC -Wno-long-long > -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror > -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK > -DOPENSSL_NO_DEPRECATED -Wno-language-extension-token > -Wno-extended-offsetof -arch x86_64 -O3 -DL_ENDIAN -DMD32_REG_T=int > -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 > -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM > -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -c -o > x86_64cpuid.o x86_64cpuid.s > > but does this when using the single makefile: > > as -o tmp.master/x86_64cpuid.o tmp.master/x86_64cpuid.s > > anyone got any ideas? Its driving me crazy (and stops the single > makefile from working on macos). > > AFAICS, both routes should use a .s.o rule which invokes as, so ... wtf?
>From Makefile. ... ASFLAG=$(CFLAG) BUILD_CMD=... $(MAKE) -e $(BUILDENV) ... build_crypto: ... AS='$(CC) -c' ... $(BUILD_ONE_CMD) ... For reference, idea behind -e $(BUILDENV) is to achieve consistent behaviour among different make flavours, BSD vs. SysV. For unification sake, i.e. to harmonize rules usage on all platforms, it might be appropriate to switch to .S on x86_64. I mean a number of platforms use .S files as output from perlasm scripts, i.e. assembly code that needs C pre-processing, which can arguably serve as common denominator for all platforms. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org