1 dnl 2 dnl @synopsis ENUM_LLVM_TARGETS 3 dnl 4 dnl @summary enumlate LLVM Targets, set up variables: 5 dnl LLVM_ENUM_TARGETS 6 dnl LLVM_ENUM_LINKERS 7 dnl 8 dnl Luba Tang <lubatang (a] mediatek.com> 9 10 AC_DEFUN([ENUM_LLVM_TARGETS], 11 [dnl 12 dnl from ${LLVM}/autoconf/configure.ac 13 dnl Allow specific targets to be specified for building (or not) 14 TARGETS_TO_BUILD=""; 15 16 AC_ARG_ENABLE([targets], 17 [AS_HELP_STRING([--enable-targets], 18 [Build specific host targets: all or target1,target2,... Valid targets are: 19 host, x86, x86_64, sparc, powerpc, alpha, arm, mips, spu, 20 xcore, msp430, systemz, blackfin, ptx, cbe, and cpp (default=all)])], 21 [], 22 [enableval=all]) 23 24 case "$enableval" in 25 all) TARGETS_TO_BUILD="X86 Sparc PowerPC Alpha ARM Mips CellSPU XCore MSP430 SystemZ Blackfin CBackend CppBackend MBlaze PTX" ;; 26 *)for a_target in `echo $enableval|sed -e 's/,/ /g' ` ; do 27 case "$a_target" in 28 x86) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; 29 x86_64) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; 30 sparc) TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;; 31 powerpc) TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;; 32 alpha) TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;; 33 arm) TARGETS_TO_BUILD="ARM $TARGETS_TO_BUILD" ;; 34 mips) TARGETS_TO_BUILD="Mips $TARGETS_TO_BUILD" ;; 35 spu) TARGETS_TO_BUILD="CellSPU $TARGETS_TO_BUILD" ;; 36 xcore) TARGETS_TO_BUILD="XCore $TARGETS_TO_BUILD" ;; 37 msp430) TARGETS_TO_BUILD="MSP430 $TARGETS_TO_BUILD" ;; 38 systemz) TARGETS_TO_BUILD="SystemZ $TARGETS_TO_BUILD" ;; 39 blackfin) TARGETS_TO_BUILD="Blackfin $TARGETS_TO_BUILD" ;; 40 cbe) TARGETS_TO_BUILD="CBackend $TARGETS_TO_BUILD" ;; 41 cpp) TARGETS_TO_BUILD="CppBackend $TARGETS_TO_BUILD" ;; 42 mblaze) TARGETS_TO_BUILD="MBlaze $TARGETS_TO_BUILD" ;; 43 ptx) TARGETS_TO_BUILD="PTX $TARGETS_TO_BUILD" ;; 44 *) AC_MSG_ERROR([Unrecognized target $a_target]) ;; 45 esac 46 done 47 ;; 48 esac 49 AC_SUBST(TARGETS_TO_BUILD,$TARGETS_TO_BUILD) 50 51 dnl Build the LLVM_TARGET and LLVM_... macros for Targets.def and the individual 52 dnl target feature def files. 53 LLVM_ENUM_TARGETS="" 54 LLVM_ENUM_LINKERS="" 55 for target_to_build in $TARGETS_TO_BUILD; do 56 if test -d ${srcdir}/lib/Target/${target_to_build} ; then 57 LLVM_ENUM_TARGETS="LLVM_TARGET($target_to_build) $LLVM_ENUM_TARGETS" 58 fi 59 if test -f ${srcdir}/lib/Target/${target_to_build}/*LDBackend.cpp ; then 60 LLVM_ENUM_LINKERS="LLVM_LINKER($target_to_build) $LLVM_ENUM_LINKERS"; 61 fi 62 done 63 AC_SUBST(LLVM_ENUM_TARGETS) 64 AC_SUBST(LLVM_ENUM_LINKERS) 65 ]) 66