Skip to content

Commit

Permalink
r2522 Apply patch from Daniel Schürmann: https://sourceforge.net/p/bo…
Browse files Browse the repository at this point in the history
  • Loading branch information
thenihilist committed Jan 16, 2014
1 parent 4b22c4c commit a7a4260
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 69 deletions.
38 changes: 20 additions & 18 deletions CMakeLists.txt
Expand Up @@ -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)
Expand All @@ -86,31 +88,31 @@ 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)
ADD_SUBDIRECTORY(codegen)
ADD_SUBDIRECTORY(db)
ADD_SUBDIRECTORY(type)
ADD_SUBDIRECTORY(transform)
ADD_SUBDIRECTORY(util)
ADD_SUBDIRECTORY(util)
ADD_SUBDIRECTORY(frontend)


Expand Down Expand Up @@ -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)
Expand Down
4 changes: 4 additions & 0 deletions c/CMakeLists.txt
Expand Up @@ -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
Expand All @@ -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
Expand Down
50 changes: 27 additions & 23 deletions db/CMakeLists.txt
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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})
32 changes: 16 additions & 16 deletions 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)
28 changes: 16 additions & 12 deletions transform/CMakeLists.txt
Expand Up @@ -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
Expand All @@ -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})

0 comments on commit a7a4260

Please sign in to comment.