configure.in 2.59 KiB
AC_INIT()
AC_ARG_ENABLE([debugging], [ --enable-debugging enable -g when compiling ])
AC_ARG_ENABLE([64bit_analysis], [ --enable-64bit-analysis enable 64bit binary analysis ])
AC_ARG_ENABLE([64bit_build], [ --enable-64bit-build enable 64bit build of stars, enabling more memory usage.])
AC_ARG_ENABLE([reducedanalysis], [ --enable-reducedanalysis reduce the amount of in-depth analysis (useful for large programs that exhaust memory)])
AC_ARG_ENABLE([idapro], [ --enable-idapro build STARS as a plugin for IDA])
AC_ARG_ENABLE([idapro], [ --enable-irdb build STARS as a IRDB analysis])
AC_CANONICAL_HOST
EXTRA_CXXFLAGS=-O3
CXX=g++
LD=g++
PLUGIN_NAME=SMPStaticAnalyzer.plx
if test "$enable_debugging" = yes; then
EXTRA_CXXFLAGS=-g
fi
if test "$enable_idapro" != no; then
BACKENDS=idapro
if test "$enable_64bit_build" = yes; then
echo Using 64-bit build mode is disabled with IDA -- exiting...
exit 1
fi
fi
if test "$enable_irdb" = yes; then
BACKENDS="$BACKENDS irdb"
fi
EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} \
-std=c++0x \
-I${SMPSA_HOME}/include \
-I${SMPSA_HOME}/include/base \
-I${SMPSA_HOME}/include/interfaces \
-I${SMPSA_HOME}/include/interfaces/abstract \
-I${IDASDK}/include \
-I${SMPSA_HOME}/include/interfaces/idapro \
-D__LINUX__ -w --short-enums \
"
# select 32-bit or 64-bit build mode.
if test "$enable_64bit_build" = yes; then
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -m64"
else
EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -m32"
fi
# set flags specific to each backend.
IDA_CXXFLAGS="-DSTARS_IDA_INTERFACE -D__PLUGIN__ -D__IDP__"
IRDB_CXXFLAGS="-DSTARS_IRDB_INTERFACE -I${SECURITY_TRANSFORMS_HOME}/include -I${SECURITY_TRANSFORMS_HOME}/libIRDB/include -I${SECURITY_TRANSFORMS_HOME}/beaengine/include"
if test "$enable_reducedanalysis" = yes; then
EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -DSMP_REDUCED_ANALYSIS"
fi
if test ! "$enable_64bit_analysis" = no; then
echo Enabling 64-bit IDAPRO support.
EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -D__EA64__"
PLUGIN_NAME=SMPStaticAnalyzer.plx64
fi
STARS_HOME=$SMPSA_HOME
AC_SUBST(EXTRA_CXXFLAGS)
AC_SUBST(CXX)
AC_SUBST(LD)
AC_SUBST(PLUGIN_NAME)
AC_SUBST(STARS_HOME)
AC_SUBST(IDA_CXXFLAGS)
AC_SUBST(IRDB_CXXFLAGS)
AC_SUBST(BACKENDS)
AC_OUTPUT(Makefile
src/Makefile
src/base/Makefile
src/interfaces/Makefile
src/interfaces/idapro/Makefile
src/interfaces/irdb/Makefile
src/interfaces/abstract/Makefile
src/drivers/Makefile
src/drivers/idapro/Makefile
src/drivers/irdb/Makefile
lib/irdb/Makefile
lib/idapro/Makefile
lib/Makefile
scripts/Makefile
)