Align GNUmakefile with Autotools and CMake

pull/755/head
Jeffrey Walton 2018-11-28 19:58:58 -05:00
parent ee5b0562b9
commit 5d9ecc2b2e
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
1 changed files with 48 additions and 127 deletions

View File

@ -609,18 +609,15 @@ ifeq ($(DETECT_FEATURES),1)
POWER9_FLAG = -qarch=pwr9 -qaltivec POWER9_FLAG = -qarch=pwr9 -qaltivec
POWER8_FLAG = -qarch=pwr8 -qaltivec POWER8_FLAG = -qarch=pwr8 -qaltivec
POWER7_FLAG = -qarch=pwr7 -qaltivec POWER7_FLAG = -qarch=pwr7 -qaltivec
POWER6_FLAG = -qarch=pwr6 -qaltivec POWER9_FLAG = -qarch=pwr6 -qaltivec
POWER5_FLAG = -qarch=pwr5 -qaltivec POWER8_FLAG = -qarch=pwr5 -qaltivec
POWER4_FLAG = -qarch=pwr4 -qaltivec POWER7_FLAG = -qarch=pwr4 -qaltivec
POWER3_FLAG = -qarch=pwr3 -qaltivec ALTIVEC_FLAG = -qaltivec
else else
POWER9_FLAG = -mcpu=power9 -maltivec POWER9_FLAG = -mcpu=power9 -maltivec
POWER8_FLAG = -mcpu=power8 -maltivec POWER8_FLAG = -mcpu=power8 -maltivec
POWER7_FLAG = -mcpu=power7 -maltivec POWER7_FLAG = -mcpu=power7 -maltivec
POWER6_FLAG = -mcpu=power6 -maltivec ALTIVEC_FLAG = -maltivec
POWER5_FLAG = -mcpu=power5 -maltivec
POWER4_FLAG = -mcpu=power4 -maltivec
POWER3_FLAG = -mcpu=power3 -maltivec
endif endif
# XLC with LLVM front-ends failed to define XLC defines. # XLC with LLVM front-ends failed to define XLC defines.
@ -633,53 +630,6 @@ ifeq ($(DETECT_FEATURES),1)
# endif # endif
#endif #endif
#####################################################################
# Crypto is a separate submodule of POWER8 due to possible export
# restrictions by the government. It is the reason LLVM choose
# different intrinsics than GCC and XLC.
TPROG = TestPrograms/test_ppc_aes.cxx
TOPT = $(POWER9_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
AES_FLAG = $(POWER9_FLAG)
endif
TPROG = TestPrograms/test_ppc_aes.cxx
TOPT = $(POWER8_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
AES_FLAG = $(POWER8_FLAG)
endif
TPROG = TestPrograms/test_ppc_vmull.cxx
TOPT = $(POWER9_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
GCM_FLAG = $(POWER9_FLAG)
endif
TPROG = TestPrograms/test_ppc_vmull.cxx
TOPT = $(POWER8_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
GCM_FLAG = $(POWER8_FLAG)
endif
TPROG = TestPrograms/test_ppc_sha.cxx
TOPT = $(POWER9_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
SHA_FLAG = $(POWER9_FLAG)
endif
TPROG = TestPrograms/test_ppc_sha.cxx
TOPT = $(POWER8_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
SHA_FLAG = $(POWER8_FLAG)
endif
##################################################################### #####################################################################
# Looking for a POWER8 option # Looking for a POWER8 option
@ -687,16 +637,7 @@ ifeq ($(DETECT_FEATURES),1)
TOPT = $(POWER9_FLAG) TOPT = $(POWER9_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l) HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0) ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER9_FLAG)
BLAKE2B_FLAG = $(POWER9_FLAG)
BLAKE2S_FLAG = $(POWER9_FLAG)
CHACHA_FLAG = $(POWER9_FLAG)
DARN_FLAG = $(POWER9_FLAG) DARN_FLAG = $(POWER9_FLAG)
SM4_FLAG = $(POWER9_FLAG)
SIMON64_FLAG = $(POWER9_FLAG)
SIMON128_FLAG = $(POWER9_FLAG)
SPECK64_FLAG = $(POWER9_FLAG)
SPECK128_FLAG = $(POWER9_FLAG)
else else
POWER9_FLAG = POWER9_FLAG =
endif endif
@ -705,14 +646,13 @@ ifeq ($(DETECT_FEATURES),1)
TOPT = $(POWER8_FLAG) TOPT = $(POWER8_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l) HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0) ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER8_FLAG)
BLAKE2B_FLAG = $(POWER8_FLAG) BLAKE2B_FLAG = $(POWER8_FLAG)
BLAKE2S_FLAG = $(POWER8_FLAG) CRC_FLAG = $(POWER8_FLAG)
CHACHA_FLAG = $(POWER8_FLAG) GCM_FLAG = $(POWER8_FLAG)
SM4_FLAG = $(POWER8_FLAG) AES_FLAG = $(POWER8_FLAG)
SIMON64_FLAG = $(POWER8_FLAG) SHA_FLAG = $(POWER8_FLAG)
SHACAL2_FLAG = $(POWER8_FLAG)
SIMON128_FLAG = $(POWER8_FLAG) SIMON128_FLAG = $(POWER8_FLAG)
SPECK64_FLAG = $(POWER8_FLAG)
SPECK128_FLAG = $(POWER8_FLAG) SPECK128_FLAG = $(POWER8_FLAG)
else else
POWER8_FLAG = POWER8_FLAG =
@ -725,7 +665,6 @@ ifeq ($(DETECT_FEATURES),1)
TOPT = $(POWER7_FLAG) TOPT = $(POWER7_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l) HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0) ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER7_FLAG)
ARIA_FLAG = $(POWER7_FLAG) ARIA_FLAG = $(POWER7_FLAG)
BLAKE2S_FLAG = $(POWER7_FLAG) BLAKE2S_FLAG = $(POWER7_FLAG)
CHACHA_FLAG = $(POWER7_FLAG) CHACHA_FLAG = $(POWER7_FLAG)
@ -742,39 +681,36 @@ ifeq ($(DETECT_FEATURES),1)
# Looking for an Altivec option # Looking for an Altivec option
TPROG = TestPrograms/test_ppc_altivec.cxx TPROG = TestPrograms/test_ppc_altivec.cxx
TOPT = $(POWER6_FLAG) TOPT = $(ALTIVEC_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l) HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0) ifneq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER6_FLAG) ALTIVEC_FLAG =
else
POWER6_FLAG =
endif endif
TPROG = TestPrograms/test_ppc_altivec.cxx # XLC fixup
TOPT = $(POWER5_FLAG) ifeq ($(XLC_COMPILER)$(ALTIVEC_FLAG),1)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l) TPROG = TestPrograms/test_ppc_altivec.cxx
ifeq ($(strip $(HAVE_OPT)),0) TOPT = $(POWER4_FLAG)
ALTIVEC_FLAG = $(POWER5_FLAG) HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
else ifeq ($(strip $(HAVE_OPT)),0)
POWER5_FLAG = ALTIVEC_FLAG = $(POWER4_FLAG)
endif else
TPROG = TestPrograms/test_ppc_altivec.cxx
TPROG = TestPrograms/test_ppc_altivec.cxx TOPT = $(POWER5_FLAG)
TOPT = $(POWER4_FLAG) HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l) ifeq ($(strip $(HAVE_OPT)),0)
ifeq ($(strip $(HAVE_OPT)),0) ALTIVEC_FLAG = $(POWER5_FLAG)
ALTIVEC_FLAG = $(POWER4_FLAG) else
else TPROG = TestPrograms/test_ppc_altivec.cxx
POWER4_FLAG = TOPT = $(POWER6_FLAG)
endif HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
TPROG = TestPrograms/test_ppc_altivec.cxx ALTIVEC_FLAG = $(POWER6_FLAG)
TOPT = $(POWER3_FLAG) else
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l) ALTIVEC_FLAG =
ifeq ($(strip $(HAVE_OPT)),0) endif
ALTIVEC_FLAG = $(POWER3_FLAG) endif
else endif
POWER3_FLAG =
endif endif
##################################################################### #####################################################################
@ -782,15 +718,19 @@ ifeq ($(DETECT_FEATURES),1)
# Drop to Power7 if Power8 is not available. # Drop to Power7 if Power8 is not available.
ifeq ($(POWER8_FLAG),) ifeq ($(POWER8_FLAG),)
GCM_FLAG = $(POWER7_FLAG) ifneq ($(POWER7_FLAG),)
GCM_FLAG = $(POWER7_FLAG)
endif
endif endif
# Drop to Power4 if Power7 not available # Drop to Power4 if Power7 not available
ifeq ($(POWER7_FLAG),) ifeq ($(POWER7_FLAG),)
BLAKE2S_FLAG = $(ALTIVEC_FLAG) ifneq ($(ALTIVEC_FLAG),)
CHACHA_FLAG = $(ALTIVEC_FLAG) BLAKE2S_FLAG = $(ALTIVEC_FLAG)
SIMON64_FLAG = $(ALTIVEC_FLAG) CHACHA_FLAG = $(ALTIVEC_FLAG)
SPECK64_FLAG = $(ALTIVEC_FLAG) SIMON64_FLAG = $(ALTIVEC_FLAG)
SPECK64_FLAG = $(ALTIVEC_FLAG)
endif
endif endif
##################################################################### #####################################################################
@ -798,33 +738,14 @@ ifeq ($(DETECT_FEATURES),1)
ifeq ($(ALTIVEC_FLAG),) ifeq ($(ALTIVEC_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_ALTIVEC CXXFLAGS += -DCRYPTOPP_DISABLE_ALTIVEC
else ifeq ($(POWER9_FLAG)$(POWER8_FLAG)$(POWER7_FLAG),) else ifeq ($(POWER8_FLAG)$(POWER7_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER7 CXXFLAGS += -DCRYPTOPP_DISABLE_POWER7
else ifeq ($(POWER9_FLAG)$(POWER8_FLAG),) else ifeq ($(POWER8_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER8 CXXFLAGS += -DCRYPTOPP_DISABLE_POWER8
else ifeq ($(POWER9_FLAG),) else ifeq ($(POWER9_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER9 CXXFLAGS += -DCRYPTOPP_DISABLE_POWER9
endif endif
#####################################################################
# Fixups for missing crypto
ifneq ($(POWER9_FLAG)$(POWER8_FLAG),)
ifeq ($(AES_FLAG)$(GCM_FLAG)$(SHA_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER8_CRYPTO
else
ifeq ($(AES_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER8_AES
endif
ifeq ($(GCM_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER8_VMULL
endif
ifeq ($(SHA_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER8_SHA
endif
endif
endif
# DETECT_FEATURES # DETECT_FEATURES
endif endif