diff --git a/CMakeLists.txt b/CMakeLists.txt index af552b45..8ea2747e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,8 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.cmake # ${CMAKE_CURRENT_BINARY_DIR}/include/config.h) #INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/include) +ADD_DEFINITIONS( -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS ) + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) IF(USE_GC) FIND_PACKAGE(BoehmGC REQUIRED) @@ -86,23 +88,23 @@ IF(USE_GC) ELSE(USE_GC) ADD_DEFINITIONS(-DNO_GARBAGE_COLLECTOR) ENDIF(USE_GC) - + IF(USE_FLEXPP_BISONPP) FIND_PACKAGE(Bisonpp REQUIRED) FIND_PACKAGE(Flexpp REQUIRED) -ENDIF(USE_FLEXPP_BISONPP) - -#==========================# -# check if m4 is available # -#==========================# - -MESSAGE("Searching for m4 scripting language") -FIND_PROGRAM(M4_PROGRAM m4) -IF(${M4_PROGRAM} MATCHES "NOTFOUND") - MESSAGE(" -> WARNING : could not find m4, cannot generate ssl files from m4 sources") -ELSE(${M4_PROGRAM} MATCHES "NOTFOUND") - MESSAGE(" -> ${M4_PROGRAM}") -ENDIF(${M4_PROGRAM} MATCHES "NOTFOUND") +ENDIF(USE_FLEXPP_BISONPP) + +#==========================# +# check if m4 is available # +#==========================# + +MESSAGE("Searching for m4 scripting language") +FIND_PROGRAM(M4_PROGRAM m4) +IF(${M4_PROGRAM} MATCHES "NOTFOUND") + MESSAGE(" -> WARNING : could not find m4, cannot generate ssl files from m4 sources") +ELSE(${M4_PROGRAM} MATCHES "NOTFOUND") + MESSAGE(" -> ${M4_PROGRAM}") +ENDIF(${M4_PROGRAM} MATCHES "NOTFOUND") ADD_SUBDIRECTORY(loader) ADD_SUBDIRECTORY(c) @@ -110,7 +112,7 @@ ADD_SUBDIRECTORY(codegen) ADD_SUBDIRECTORY(db) ADD_SUBDIRECTORY(type) ADD_SUBDIRECTORY(transform) -ADD_SUBDIRECTORY(util) +ADD_SUBDIRECTORY(util) ADD_SUBDIRECTORY(frontend) @@ -145,9 +147,9 @@ install(FILES include/*.h DESTINATION include) # this is put at the end so that first cmake configure will assume USE_GC NO, # and will not check for existence of Boehm GC OPTION(USE_GC "Use Boehm garbage collector, only developers should turn this off" true) - -#Markus: Re-add usage of bison++ and flex++. -OPTION(USE_FLEXPP_BISONPP "Use Coetmeur's bison++ and flex++, only developers should turn this on" false) + +#Markus: Re-add usage of bison++ and flex++. +OPTION(USE_FLEXPP_BISONPP "Use Coetmeur's bison++ and flex++, only developers should turn this on" false) IF(BUILD_TESTING) FIND_PACKAGE(CppUnit REQUIRED) diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt index 8ad9ae82..9f0ea24c 100644 --- a/c/CMakeLists.txt +++ b/c/CMakeLists.txt @@ -7,13 +7,16 @@ # sed -f db/ansi-c-scanner.sed c/ansi-c-scanner.cpp > c/ansi-c-scanner.cpp1 # mv c/ansi-c-scanner.cpp1 c/ansi-c-scanner.cpp +IF(BISONPP_EXECUTABLE) add_custom_command( COMMENT "Building Parser - Bison++" OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-parser.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-parser.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c.y COMMAND ${BISONPP_EXECUTABLE} -d -v -o${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-parser.cpp -h${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-parser.h ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c.y ) +ENDIF(BISONPP_EXECUTABLE) +IF(FLEXPP_EXECUTABLE) add_custom_command( COMMENT "Building Scanner - Flex++" OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-scanner.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-scanner.h @@ -22,6 +25,7 @@ add_custom_command( COMMAND sed -f ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-scanner.sed ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-scanner.cpp > ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-scanner.cpp.1 COMMAND mv ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-scanner.cpp.1 ${CMAKE_CURRENT_SOURCE_DIR}/ansi-c-scanner.cpp ) +ENDIF(FLEXPP_EXECUTABLE) SET(boomerang_DSLs_sources ansi-c-parser.cpp diff --git a/db/CMakeLists.txt b/db/CMakeLists.txt index f338e738..4fe3d93e 100644 --- a/db/CMakeLists.txt +++ b/db/CMakeLists.txt @@ -10,6 +10,7 @@ # sed -f db/sslscanner.sed db/sslscanner.cpp > db/sslscanner.cpp1 # mv db/sslscanner.cpp1 db/sslscanner.cpp +IF(BISONPP_EXECUTABLE) add_custom_command( COMMENT "Building Parser - Bison++" OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/sslparser.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sslparser.h @@ -18,7 +19,9 @@ add_custom_command( COMMAND sed -e "s/int __alloca_free_ptr/static int __alloca_free_ptr/" ${CMAKE_CURRENT_SOURCE_DIR}/sslparser.cpp > ${CMAKE_CURRENT_SOURCE_DIR}/sslparser.cpp.1 COMMAND mv ${CMAKE_CURRENT_SOURCE_DIR}/sslparser.cpp.1 ${CMAKE_CURRENT_SOURCE_DIR}/sslparser.cpp ) +ENDIF(BISONPP_EXECUTABLE) +IF(FLEXPP_EXECUTABLE) add_custom_command( COMMENT "Building Scanner - Flex++" OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/sslscanner.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sslscanner.h @@ -27,28 +30,29 @@ add_custom_command( COMMAND sed -f ${CMAKE_CURRENT_SOURCE_DIR}/sslscanner.sed ${CMAKE_CURRENT_SOURCE_DIR}/sslscanner.cpp > ${CMAKE_CURRENT_SOURCE_DIR}/sslscanner.cpp.1 COMMAND mv ${CMAKE_CURRENT_SOURCE_DIR}/sslscanner.cpp.1 ${CMAKE_CURRENT_SOURCE_DIR}/sslscanner.cpp ) +ENDIF(FLEXPP_EXECUTABLE) -SET(boomerang_db_sources - basicblock.cpp - cfg.cpp - dataflow.cpp - exp.cpp - insnameelem.cpp - managed.cpp - proc.cpp - prog.cpp - register.cpp - rtl.cpp - signature.cpp - sslinst.cpp - sslparser.cpp - sslscanner.cpp - statement.cpp - table.cpp - visitor.cpp -) -# for ansi-c parser includes -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/c) - -ADD_LIBRARY(boomerang_db STATIC ${boomerang_db_sources}) +SET(boomerang_db_sources + basicblock.cpp + cfg.cpp + dataflow.cpp + exp.cpp + insnameelem.cpp + managed.cpp + proc.cpp + prog.cpp + register.cpp + rtl.cpp + signature.cpp + sslinst.cpp + sslparser.cpp + sslscanner.cpp + statement.cpp + table.cpp + visitor.cpp +) +# for ansi-c parser includes +INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/c) + +ADD_LIBRARY(boomerang_db STATIC ${boomerang_db_sources}) diff --git a/frontend/CMakeLists.txt b/frontend/CMakeLists.txt index 72e0ddce..5f28925a 100644 --- a/frontend/CMakeLists.txt +++ b/frontend/CMakeLists.txt @@ -1,20 +1,20 @@ ADD_SUBDIRECTORY(machine) - -SET(boomerang_frontend_common_sources - frontend.cpp - njmcDecoder.cpp -) -# for ansi-c parser includes -INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/c) - -ADD_LIBRARY(Frontend_common STATIC ${boomerang_frontend_common_sources}) - -BOOMERANG_ADD_FRONTEND(pentium) -BOOMERANG_ADD_FRONTEND(mips) -BOOMERANG_ADD_FRONTEND(ppc) -BOOMERANG_ADD_FRONTEND(sparc) -BOOMERANG_ADD_FRONTEND(st20) - + +SET(boomerang_frontend_common_sources + frontend.cpp + njmcDecoder.cpp +) +# for ansi-c parser includes +INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/c) + +ADD_LIBRARY(Frontend_common STATIC ${boomerang_frontend_common_sources}) + +BOOMERANG_ADD_FRONTEND(pentium) +BOOMERANG_ADD_FRONTEND(mips) +BOOMERANG_ADD_FRONTEND(ppc) +BOOMERANG_ADD_FRONTEND(sparc) +BOOMERANG_ADD_FRONTEND(st20) + SET(BOOMERANG_FRONTENDS Frontend_common ${_BOOMERANG_FRONTENDS} CACHE INTERNAL "") ADD_DEPENDENCIES(Frontend_common st20) \ No newline at end of file diff --git a/transform/CMakeLists.txt b/transform/CMakeLists.txt index 35a386c0..293a5584 100644 --- a/transform/CMakeLists.txt +++ b/transform/CMakeLists.txt @@ -6,13 +6,16 @@ # # Fix warnings with same sed file # sed -f db/sslscanner.sed transform/transformation-scanner.cpp1 > transform/transformation-scanner.cpp +IF(BISONPP_EXECUTABLE) add_custom_command( COMMENT "Building Parser - Bison++" OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/transformation-parser.cpp ${CMAKE_CURRENT_SOURCE_DIR}/transformation-parser.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/transformation.y COMMAND ${BISONPP_EXECUTABLE} -d -v -o${CMAKE_CURRENT_SOURCE_DIR}/transformation-parser.cpp -h${CMAKE_CURRENT_SOURCE_DIR}/transformation-parser.h ${CMAKE_CURRENT_SOURCE_DIR}/transformation.y ) +ENDIF(BISONPP_EXECUTABLE) +IF(FLEXPP_EXECUTABLE) add_custom_command( COMMENT "Building Scanner - Flex++" OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/transformation-scanner.cpp ${CMAKE_CURRENT_SOURCE_DIR}/transformation-scanner.h @@ -21,17 +24,18 @@ add_custom_command( COMMAND sed -f ${CMAKE_CURRENT_SOURCE_DIR}/transformation-scanner.sed ${CMAKE_CURRENT_SOURCE_DIR}/transformation-scanner.cpp > ${CMAKE_CURRENT_SOURCE_DIR}/transformation-scanner.cpp.1 COMMAND mv ${CMAKE_CURRENT_SOURCE_DIR}/transformation-scanner.cpp.1 ${CMAKE_CURRENT_SOURCE_DIR}/transformation-scanner.cpp ) +ENDIF(FLEXPP_EXECUTABLE) -SET(boomerang_transform_sources - transformer.cpp - rdi.cpp - generic.cpp - transformation-parser.cpp - transformation-scanner.cpp - rdi.h - generic.h - transformation-parser.h - transformation-scanner.h +SET(boomerang_transform_sources + transformer.cpp + rdi.cpp + generic.cpp + transformation-parser.cpp + transformation-scanner.cpp + rdi.h + generic.h + transformation-parser.h + transformation-scanner.h ) - -ADD_LIBRARY(boomerang_transform STATIC ${boomerang_transform_sources}) + +ADD_LIBRARY(boomerang_transform STATIC ${boomerang_transform_sources})