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
POWER8_FLAG = -qarch=pwr8 -qaltivec
POWER7_FLAG = -qarch=pwr7 -qaltivec
POWER6_FLAG = -qarch=pwr6 -qaltivec
POWER5_FLAG = -qarch=pwr5 -qaltivec
POWER4_FLAG = -qarch=pwr4 -qaltivec
POWER3_FLAG = -qarch=pwr3 -qaltivec
POWER9_FLAG = -qarch=pwr6 -qaltivec
POWER8_FLAG = -qarch=pwr5 -qaltivec
POWER7_FLAG = -qarch=pwr4 -qaltivec
ALTIVEC_FLAG = -qaltivec
else
POWER9_FLAG = -mcpu=power9 -maltivec
POWER8_FLAG = -mcpu=power8 -maltivec
POWER7_FLAG = -mcpu=power7 -maltivec
POWER6_FLAG = -mcpu=power6 -maltivec
POWER5_FLAG = -mcpu=power5 -maltivec
POWER4_FLAG = -mcpu=power4 -maltivec
POWER3_FLAG = -mcpu=power3 -maltivec
ALTIVEC_FLAG = -maltivec
endif
# XLC with LLVM front-ends failed to define XLC defines.
@ -633,53 +630,6 @@ ifeq ($(DETECT_FEATURES),1)
# 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
@ -687,16 +637,7 @@ ifeq ($(DETECT_FEATURES),1)
TOPT = $(POWER9_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
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)
SM4_FLAG = $(POWER9_FLAG)
SIMON64_FLAG = $(POWER9_FLAG)
SIMON128_FLAG = $(POWER9_FLAG)
SPECK64_FLAG = $(POWER9_FLAG)
SPECK128_FLAG = $(POWER9_FLAG)
else
POWER9_FLAG =
endif
@ -705,14 +646,13 @@ ifeq ($(DETECT_FEATURES),1)
TOPT = $(POWER8_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER8_FLAG)
BLAKE2B_FLAG = $(POWER8_FLAG)
BLAKE2S_FLAG = $(POWER8_FLAG)
CHACHA_FLAG = $(POWER8_FLAG)
SM4_FLAG = $(POWER8_FLAG)
SIMON64_FLAG = $(POWER8_FLAG)
CRC_FLAG = $(POWER8_FLAG)
GCM_FLAG = $(POWER8_FLAG)
AES_FLAG = $(POWER8_FLAG)
SHA_FLAG = $(POWER8_FLAG)
SHACAL2_FLAG = $(POWER8_FLAG)
SIMON128_FLAG = $(POWER8_FLAG)
SPECK64_FLAG = $(POWER8_FLAG)
SPECK128_FLAG = $(POWER8_FLAG)
else
POWER8_FLAG =
@ -725,7 +665,6 @@ ifeq ($(DETECT_FEATURES),1)
TOPT = $(POWER7_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER7_FLAG)
ARIA_FLAG = $(POWER7_FLAG)
BLAKE2S_FLAG = $(POWER7_FLAG)
CHACHA_FLAG = $(POWER7_FLAG)
@ -742,39 +681,36 @@ ifeq ($(DETECT_FEATURES),1)
# Looking for an Altivec option
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)
ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER6_FLAG)
else
POWER6_FLAG =
ifneq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG =
endif
TPROG = TestPrograms/test_ppc_altivec.cxx
TOPT = $(POWER5_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER5_FLAG)
else
POWER5_FLAG =
endif
TPROG = TestPrograms/test_ppc_altivec.cxx
TOPT = $(POWER4_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER4_FLAG)
else
POWER4_FLAG =
endif
TPROG = TestPrograms/test_ppc_altivec.cxx
TOPT = $(POWER3_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER3_FLAG)
else
POWER3_FLAG =
# XLC fixup
ifeq ($(XLC_COMPILER)$(ALTIVEC_FLAG),1)
TPROG = TestPrograms/test_ppc_altivec.cxx
TOPT = $(POWER4_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER4_FLAG)
else
TPROG = TestPrograms/test_ppc_altivec.cxx
TOPT = $(POWER5_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER5_FLAG)
else
TPROG = TestPrograms/test_ppc_altivec.cxx
TOPT = $(POWER6_FLAG)
HAVE_OPT = $(shell $(CXX) $(TCXXFLAGS) $(ZOPT) $(TOPT) $(TPROG) -o $(TOUT) 2>&1 | tr ' ' '\n' | wc -l)
ifeq ($(strip $(HAVE_OPT)),0)
ALTIVEC_FLAG = $(POWER6_FLAG)
else
ALTIVEC_FLAG =
endif
endif
endif
endif
#####################################################################
@ -782,15 +718,19 @@ ifeq ($(DETECT_FEATURES),1)
# Drop to Power7 if Power8 is not available.
ifeq ($(POWER8_FLAG),)
GCM_FLAG = $(POWER7_FLAG)
ifneq ($(POWER7_FLAG),)
GCM_FLAG = $(POWER7_FLAG)
endif
endif
# Drop to Power4 if Power7 not available
ifeq ($(POWER7_FLAG),)
BLAKE2S_FLAG = $(ALTIVEC_FLAG)
CHACHA_FLAG = $(ALTIVEC_FLAG)
SIMON64_FLAG = $(ALTIVEC_FLAG)
SPECK64_FLAG = $(ALTIVEC_FLAG)
ifneq ($(ALTIVEC_FLAG),)
BLAKE2S_FLAG = $(ALTIVEC_FLAG)
CHACHA_FLAG = $(ALTIVEC_FLAG)
SIMON64_FLAG = $(ALTIVEC_FLAG)
SPECK64_FLAG = $(ALTIVEC_FLAG)
endif
endif
#####################################################################
@ -798,33 +738,14 @@ ifeq ($(DETECT_FEATURES),1)
ifeq ($(ALTIVEC_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_ALTIVEC
else ifeq ($(POWER9_FLAG)$(POWER8_FLAG)$(POWER7_FLAG),)
else ifeq ($(POWER8_FLAG)$(POWER7_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER7
else ifeq ($(POWER9_FLAG)$(POWER8_FLAG),)
else ifeq ($(POWER8_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER8
else ifeq ($(POWER9_FLAG),)
CXXFLAGS += -DCRYPTOPP_DISABLE_POWER9
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
endif