diff --git a/CMakeLists.txt b/CMakeLists.txt index 1528870..852a8b9 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -Wall - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O1 -fopenmp") set(PostgreSQL_TYPE_INCLUDE_DIR "9.5") -set(PostgreSQL_ADDITIONAL_VERSIONS "10.1" "10" "9.5") +set(PostgreSQL_ADDITIONAL_VERSIONS "12.4" "10.1" "10" "9.5") find_program(LSB_RELEASE lsb_release) execute_process(COMMAND ${LSB_RELEASE} -is @@ -42,13 +42,15 @@ set(ENV{PKG_CONFIG_PATH} "/usr/local/lib/pkgconfig") find_package(PkgConfig REQUIRED) find_package(PostgreSQL REQUIRED) find_package(OpenMP) +find_package(MPI) find_package(BISON 2.4 REQUIRED) find_package(FLEX REQUIRED) -find_package(Boost REQUIRED serialization graph) +find_package(Boost REQUIRED mpi serialization graph) include_directories(${Boost_INCLUDE_DIR}) + find_package(OpenSSL) find_package(Doxygen) @@ -65,6 +67,12 @@ if(OpenMP_CXX_FOUND) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif() +if(MPI_CXX_FOUND) + INCLUDE_DIRECTORIES(${MPI_CXX_INCLUDE_PATH}) + LIST(APPEND SCR_EXTERNAL_LIBS ${MPI_CXX_LIBRARIES}) + #set(CMAKE_CXX_COMPILER "mpic++") +endif() + if(DOXYGEN_FOUND) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) add_custom_target(doc ALL ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @@ -126,7 +134,7 @@ add_executable(ag_gen "${CMAKE_SOURCE_DIR}/src/main.cpp" ${FLEX_nm_scanner_OUTPUTS} ${BISON_nm_parser_OUTPUTS} ${FLEX_xp_scanner_OUTPUTS} ${BISON_xp_parser_OUTPUTS} ${ag_gen_src} ${utils_src} ${mpi_src}) -target_link_libraries(ag_gen ${PostgreSQL_LIBRARIES} Boost::serialization) +target_link_libraries(ag_gen ${PostgreSQL_LIBRARIES} Boost::serialization Boost::mpi ${MPI_C_LIBRARIES}) add_executable(decode "${CMAKE_SOURCE_DIR}/src/tools/decode.cpp" ${ag_gen_src} ${utils_src}) diff --git a/build/Makefile b/build/Makefile index ff54d15..2068598 100644 --- a/build/Makefile +++ b/build/Makefile @@ -1,5 +1,5 @@ # CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.21 +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 # Default target executed when no arguments are given to make. default_target: all @@ -65,16 +65,6 @@ CMAKE_BINARY_DIR = "/home/noah/Documents/School/Thesis Work/ag_parallel/build" #============================================================================= # Targets provided globally by CMake. -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." - /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache -.PHONY : rebuild_cache/fast - # Special rule for the target edit_cache edit_cache: @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." @@ -85,6 +75,16 @@ edit_cache: edit_cache/fast: edit_cache .PHONY : edit_cache/fast +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + # The main all target all: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start "/home/noah/Documents/School/Thesis Work/ag_parallel/build/CMakeFiles" "/home/noah/Documents/School/Thesis Work/ag_parallel/build//CMakeFiles/progress.marks" @@ -117,30 +117,17 @@ depend: .PHONY : depend #============================================================================= -# Target rules for targets named dynstr_test +# Target rules for targets named doc # Build rule for target. -dynstr_test: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dynstr_test -.PHONY : dynstr_test +doc: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 doc +.PHONY : doc # fast build rule for target. -dynstr_test/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/dynstr_test.dir/build.make CMakeFiles/dynstr_test.dir/build -.PHONY : dynstr_test/fast - -#============================================================================= -# Target rules for targets named decode - -# Build rule for target. -decode: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 decode -.PHONY : decode - -# fast build rule for target. -decode/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/build -.PHONY : decode/fast +doc/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/doc.dir/build.make CMakeFiles/doc.dir/build +.PHONY : doc/fast #============================================================================= # Target rules for targets named ag_gen @@ -156,17 +143,30 @@ ag_gen/fast: .PHONY : ag_gen/fast #============================================================================= -# Target rules for targets named doc +# Target rules for targets named decode # Build rule for target. -doc: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 doc -.PHONY : doc +decode: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 decode +.PHONY : decode # fast build rule for target. -doc/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/doc.dir/build.make CMakeFiles/doc.dir/build -.PHONY : doc/fast +decode/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/build +.PHONY : decode/fast + +#============================================================================= +# Target rules for targets named dynstr_test + +# Build rule for target. +dynstr_test: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dynstr_test +.PHONY : dynstr_test + +# fast build rule for target. +dynstr_test/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dynstr_test.dir/build.make CMakeFiles/dynstr_test.dir/build +.PHONY : dynstr_test/fast nm_parser.o: nm_parser.c.o .PHONY : nm_parser.o @@ -221,8 +221,8 @@ src/ag_gen/ag_gen.o: src/ag_gen/ag_gen.cpp.o # target to build an object file src/ag_gen/ag_gen.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/ag_gen.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/ag_gen.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/ag_gen.cpp.o .PHONY : src/ag_gen/ag_gen.cpp.o src/ag_gen/ag_gen.i: src/ag_gen/ag_gen.cpp.i @@ -230,8 +230,8 @@ src/ag_gen/ag_gen.i: src/ag_gen/ag_gen.cpp.i # target to preprocess a source file src/ag_gen/ag_gen.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/ag_gen.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/ag_gen.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/ag_gen.cpp.i .PHONY : src/ag_gen/ag_gen.cpp.i src/ag_gen/ag_gen.s: src/ag_gen/ag_gen.cpp.s @@ -239,8 +239,8 @@ src/ag_gen/ag_gen.s: src/ag_gen/ag_gen.cpp.s # target to generate assembly for a file src/ag_gen/ag_gen.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/ag_gen.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/ag_gen.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/ag_gen.cpp.s .PHONY : src/ag_gen/ag_gen.cpp.s src/ag_gen/asset.o: src/ag_gen/asset.cpp.o @@ -248,8 +248,8 @@ src/ag_gen/asset.o: src/ag_gen/asset.cpp.o # target to build an object file src/ag_gen/asset.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/asset.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/asset.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/asset.cpp.o .PHONY : src/ag_gen/asset.cpp.o src/ag_gen/asset.i: src/ag_gen/asset.cpp.i @@ -257,8 +257,8 @@ src/ag_gen/asset.i: src/ag_gen/asset.cpp.i # target to preprocess a source file src/ag_gen/asset.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/asset.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/asset.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/asset.cpp.i .PHONY : src/ag_gen/asset.cpp.i src/ag_gen/asset.s: src/ag_gen/asset.cpp.s @@ -266,8 +266,8 @@ src/ag_gen/asset.s: src/ag_gen/asset.cpp.s # target to generate assembly for a file src/ag_gen/asset.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/asset.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/asset.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/asset.cpp.s .PHONY : src/ag_gen/asset.cpp.s src/ag_gen/assetgroup.o: src/ag_gen/assetgroup.cpp.o @@ -275,8 +275,8 @@ src/ag_gen/assetgroup.o: src/ag_gen/assetgroup.cpp.o # target to build an object file src/ag_gen/assetgroup.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/assetgroup.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/assetgroup.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/assetgroup.cpp.o .PHONY : src/ag_gen/assetgroup.cpp.o src/ag_gen/assetgroup.i: src/ag_gen/assetgroup.cpp.i @@ -284,8 +284,8 @@ src/ag_gen/assetgroup.i: src/ag_gen/assetgroup.cpp.i # target to preprocess a source file src/ag_gen/assetgroup.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/assetgroup.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/assetgroup.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/assetgroup.cpp.i .PHONY : src/ag_gen/assetgroup.cpp.i src/ag_gen/assetgroup.s: src/ag_gen/assetgroup.cpp.s @@ -293,8 +293,8 @@ src/ag_gen/assetgroup.s: src/ag_gen/assetgroup.cpp.s # target to generate assembly for a file src/ag_gen/assetgroup.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/assetgroup.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/assetgroup.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/assetgroup.cpp.s .PHONY : src/ag_gen/assetgroup.cpp.s src/ag_gen/edge.o: src/ag_gen/edge.cpp.o @@ -302,8 +302,8 @@ src/ag_gen/edge.o: src/ag_gen/edge.cpp.o # target to build an object file src/ag_gen/edge.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/edge.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/edge.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/edge.cpp.o .PHONY : src/ag_gen/edge.cpp.o src/ag_gen/edge.i: src/ag_gen/edge.cpp.i @@ -311,8 +311,8 @@ src/ag_gen/edge.i: src/ag_gen/edge.cpp.i # target to preprocess a source file src/ag_gen/edge.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/edge.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/edge.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/edge.cpp.i .PHONY : src/ag_gen/edge.cpp.i src/ag_gen/edge.s: src/ag_gen/edge.cpp.s @@ -320,8 +320,8 @@ src/ag_gen/edge.s: src/ag_gen/edge.cpp.s # target to generate assembly for a file src/ag_gen/edge.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/edge.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/edge.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/edge.cpp.s .PHONY : src/ag_gen/edge.cpp.s src/ag_gen/exploit.o: src/ag_gen/exploit.cpp.o @@ -329,8 +329,8 @@ src/ag_gen/exploit.o: src/ag_gen/exploit.cpp.o # target to build an object file src/ag_gen/exploit.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/exploit.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/exploit.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/exploit.cpp.o .PHONY : src/ag_gen/exploit.cpp.o src/ag_gen/exploit.i: src/ag_gen/exploit.cpp.i @@ -338,8 +338,8 @@ src/ag_gen/exploit.i: src/ag_gen/exploit.cpp.i # target to preprocess a source file src/ag_gen/exploit.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/exploit.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/exploit.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/exploit.cpp.i .PHONY : src/ag_gen/exploit.cpp.i src/ag_gen/exploit.s: src/ag_gen/exploit.cpp.s @@ -347,8 +347,8 @@ src/ag_gen/exploit.s: src/ag_gen/exploit.cpp.s # target to generate assembly for a file src/ag_gen/exploit.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/exploit.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/exploit.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/exploit.cpp.s .PHONY : src/ag_gen/exploit.cpp.s src/ag_gen/factbase.o: src/ag_gen/factbase.cpp.o @@ -356,8 +356,8 @@ src/ag_gen/factbase.o: src/ag_gen/factbase.cpp.o # target to build an object file src/ag_gen/factbase.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/factbase.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/factbase.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/factbase.cpp.o .PHONY : src/ag_gen/factbase.cpp.o src/ag_gen/factbase.i: src/ag_gen/factbase.cpp.i @@ -365,8 +365,8 @@ src/ag_gen/factbase.i: src/ag_gen/factbase.cpp.i # target to preprocess a source file src/ag_gen/factbase.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/factbase.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/factbase.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/factbase.cpp.i .PHONY : src/ag_gen/factbase.cpp.i src/ag_gen/factbase.s: src/ag_gen/factbase.cpp.s @@ -374,8 +374,8 @@ src/ag_gen/factbase.s: src/ag_gen/factbase.cpp.s # target to generate assembly for a file src/ag_gen/factbase.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/factbase.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/factbase.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/factbase.cpp.s .PHONY : src/ag_gen/factbase.cpp.s src/ag_gen/network_state.o: src/ag_gen/network_state.cpp.o @@ -383,8 +383,8 @@ src/ag_gen/network_state.o: src/ag_gen/network_state.cpp.o # target to build an object file src/ag_gen/network_state.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/network_state.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/network_state.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/network_state.cpp.o .PHONY : src/ag_gen/network_state.cpp.o src/ag_gen/network_state.i: src/ag_gen/network_state.cpp.i @@ -392,8 +392,8 @@ src/ag_gen/network_state.i: src/ag_gen/network_state.cpp.i # target to preprocess a source file src/ag_gen/network_state.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/network_state.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/network_state.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/network_state.cpp.i .PHONY : src/ag_gen/network_state.cpp.i src/ag_gen/network_state.s: src/ag_gen/network_state.cpp.s @@ -401,8 +401,8 @@ src/ag_gen/network_state.s: src/ag_gen/network_state.cpp.s # target to generate assembly for a file src/ag_gen/network_state.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/network_state.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/network_state.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/network_state.cpp.s .PHONY : src/ag_gen/network_state.cpp.s src/ag_gen/quality.o: src/ag_gen/quality.cpp.o @@ -410,8 +410,8 @@ src/ag_gen/quality.o: src/ag_gen/quality.cpp.o # target to build an object file src/ag_gen/quality.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/quality.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/quality.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/quality.cpp.o .PHONY : src/ag_gen/quality.cpp.o src/ag_gen/quality.i: src/ag_gen/quality.cpp.i @@ -419,8 +419,8 @@ src/ag_gen/quality.i: src/ag_gen/quality.cpp.i # target to preprocess a source file src/ag_gen/quality.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/quality.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/quality.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/quality.cpp.i .PHONY : src/ag_gen/quality.cpp.i src/ag_gen/quality.s: src/ag_gen/quality.cpp.s @@ -428,8 +428,8 @@ src/ag_gen/quality.s: src/ag_gen/quality.cpp.s # target to generate assembly for a file src/ag_gen/quality.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/quality.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/quality.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/quality.cpp.s .PHONY : src/ag_gen/quality.cpp.s src/ag_gen/topology.o: src/ag_gen/topology.cpp.o @@ -437,8 +437,8 @@ src/ag_gen/topology.o: src/ag_gen/topology.cpp.o # target to build an object file src/ag_gen/topology.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/topology.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/topology.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/topology.cpp.o .PHONY : src/ag_gen/topology.cpp.o src/ag_gen/topology.i: src/ag_gen/topology.cpp.i @@ -446,8 +446,8 @@ src/ag_gen/topology.i: src/ag_gen/topology.cpp.i # target to preprocess a source file src/ag_gen/topology.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/topology.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/topology.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/topology.cpp.i .PHONY : src/ag_gen/topology.cpp.i src/ag_gen/topology.s: src/ag_gen/topology.cpp.s @@ -455,8 +455,8 @@ src/ag_gen/topology.s: src/ag_gen/topology.cpp.s # target to generate assembly for a file src/ag_gen/topology.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/topology.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/ag_gen/topology.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/ag_gen/topology.cpp.s .PHONY : src/ag_gen/topology.cpp.s src/main.o: src/main.cpp.o @@ -584,8 +584,8 @@ src/util/avail_mem.o: src/util/avail_mem.cpp.o # target to build an object file src/util/avail_mem.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/avail_mem.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/avail_mem.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/avail_mem.cpp.o .PHONY : src/util/avail_mem.cpp.o src/util/avail_mem.i: src/util/avail_mem.cpp.i @@ -593,8 +593,8 @@ src/util/avail_mem.i: src/util/avail_mem.cpp.i # target to preprocess a source file src/util/avail_mem.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/avail_mem.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/avail_mem.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/avail_mem.cpp.i .PHONY : src/util/avail_mem.cpp.i src/util/avail_mem.s: src/util/avail_mem.cpp.s @@ -602,8 +602,8 @@ src/util/avail_mem.s: src/util/avail_mem.cpp.s # target to generate assembly for a file src/util/avail_mem.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/avail_mem.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/avail_mem.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/avail_mem.cpp.s .PHONY : src/util/avail_mem.cpp.s src/util/build_sql.o: src/util/build_sql.c.o @@ -611,8 +611,8 @@ src/util/build_sql.o: src/util/build_sql.c.o # target to build an object file src/util/build_sql.c.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/build_sql.c.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/build_sql.c.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/build_sql.c.o .PHONY : src/util/build_sql.c.o src/util/build_sql.i: src/util/build_sql.c.i @@ -620,8 +620,8 @@ src/util/build_sql.i: src/util/build_sql.c.i # target to preprocess a source file src/util/build_sql.c.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/build_sql.c.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/build_sql.c.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/build_sql.c.i .PHONY : src/util/build_sql.c.i src/util/build_sql.s: src/util/build_sql.c.s @@ -629,8 +629,8 @@ src/util/build_sql.s: src/util/build_sql.c.s # target to generate assembly for a file src/util/build_sql.c.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/build_sql.c.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/build_sql.c.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/build_sql.c.s .PHONY : src/util/build_sql.c.s src/util/common.o: src/util/common.cpp.o @@ -638,8 +638,8 @@ src/util/common.o: src/util/common.cpp.o # target to build an object file src/util/common.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/common.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/common.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/common.cpp.o .PHONY : src/util/common.cpp.o src/util/common.i: src/util/common.cpp.i @@ -647,8 +647,8 @@ src/util/common.i: src/util/common.cpp.i # target to preprocess a source file src/util/common.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/common.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/common.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/common.cpp.i .PHONY : src/util/common.cpp.i src/util/common.s: src/util/common.cpp.s @@ -656,8 +656,8 @@ src/util/common.s: src/util/common.cpp.s # target to generate assembly for a file src/util/common.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/common.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/common.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/common.cpp.s .PHONY : src/util/common.cpp.s src/util/db_functions.o: src/util/db_functions.cpp.o @@ -665,8 +665,8 @@ src/util/db_functions.o: src/util/db_functions.cpp.o # target to build an object file src/util/db_functions.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/db_functions.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/db_functions.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/db_functions.cpp.o .PHONY : src/util/db_functions.cpp.o src/util/db_functions.i: src/util/db_functions.cpp.i @@ -674,8 +674,8 @@ src/util/db_functions.i: src/util/db_functions.cpp.i # target to preprocess a source file src/util/db_functions.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/db_functions.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/db_functions.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/db_functions.cpp.i .PHONY : src/util/db_functions.cpp.i src/util/db_functions.s: src/util/db_functions.cpp.s @@ -683,8 +683,8 @@ src/util/db_functions.s: src/util/db_functions.cpp.s # target to generate assembly for a file src/util/db_functions.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/db_functions.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/db_functions.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/db_functions.cpp.s .PHONY : src/util/db_functions.cpp.s src/util/hash.o: src/util/hash.c.o @@ -692,8 +692,8 @@ src/util/hash.o: src/util/hash.c.o # target to build an object file src/util/hash.c.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/hash.c.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/hash.c.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/hash.c.o .PHONY : src/util/hash.c.o src/util/hash.i: src/util/hash.c.i @@ -701,8 +701,8 @@ src/util/hash.i: src/util/hash.c.i # target to preprocess a source file src/util/hash.c.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/hash.c.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/hash.c.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/hash.c.i .PHONY : src/util/hash.c.i src/util/hash.s: src/util/hash.c.s @@ -710,8 +710,8 @@ src/util/hash.s: src/util/hash.c.s # target to generate assembly for a file src/util/hash.c.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/hash.c.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/hash.c.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/hash.c.s .PHONY : src/util/hash.c.s src/util/list.o: src/util/list.c.o @@ -719,8 +719,8 @@ src/util/list.o: src/util/list.c.o # target to build an object file src/util/list.c.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/list.c.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/list.c.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/list.c.o .PHONY : src/util/list.c.o src/util/list.i: src/util/list.c.i @@ -728,8 +728,8 @@ src/util/list.i: src/util/list.c.i # target to preprocess a source file src/util/list.c.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/list.c.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/list.c.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/list.c.i .PHONY : src/util/list.c.i src/util/list.s: src/util/list.c.s @@ -737,8 +737,8 @@ src/util/list.s: src/util/list.c.s # target to generate assembly for a file src/util/list.c.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/list.c.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/list.c.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/list.c.s .PHONY : src/util/list.c.s src/util/mem.o: src/util/mem.c.o @@ -746,9 +746,9 @@ src/util/mem.o: src/util/mem.c.o # target to build an object file src/util/mem.c.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/dynstr_test.dir/build.make CMakeFiles/dynstr_test.dir/src/util/mem.c.o - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/mem.c.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/mem.c.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/mem.c.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/dynstr_test.dir/build.make CMakeFiles/dynstr_test.dir/src/util/mem.c.o .PHONY : src/util/mem.c.o src/util/mem.i: src/util/mem.c.i @@ -756,9 +756,9 @@ src/util/mem.i: src/util/mem.c.i # target to preprocess a source file src/util/mem.c.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/dynstr_test.dir/build.make CMakeFiles/dynstr_test.dir/src/util/mem.c.i - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/mem.c.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/mem.c.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/mem.c.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/dynstr_test.dir/build.make CMakeFiles/dynstr_test.dir/src/util/mem.c.i .PHONY : src/util/mem.c.i src/util/mem.s: src/util/mem.c.s @@ -766,9 +766,9 @@ src/util/mem.s: src/util/mem.c.s # target to generate assembly for a file src/util/mem.c.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/dynstr_test.dir/build.make CMakeFiles/dynstr_test.dir/src/util/mem.c.s - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/mem.c.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/mem.c.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/mem.c.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/dynstr_test.dir/build.make CMakeFiles/dynstr_test.dir/src/util/mem.c.s .PHONY : src/util/mem.c.s src/util/redis_manager.o: src/util/redis_manager.cpp.o @@ -776,8 +776,8 @@ src/util/redis_manager.o: src/util/redis_manager.cpp.o # target to build an object file src/util/redis_manager.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/redis_manager.cpp.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/redis_manager.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/redis_manager.cpp.o .PHONY : src/util/redis_manager.cpp.o src/util/redis_manager.i: src/util/redis_manager.cpp.i @@ -785,8 +785,8 @@ src/util/redis_manager.i: src/util/redis_manager.cpp.i # target to preprocess a source file src/util/redis_manager.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/redis_manager.cpp.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/redis_manager.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/redis_manager.cpp.i .PHONY : src/util/redis_manager.cpp.i src/util/redis_manager.s: src/util/redis_manager.cpp.s @@ -794,8 +794,8 @@ src/util/redis_manager.s: src/util/redis_manager.cpp.s # target to generate assembly for a file src/util/redis_manager.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/redis_manager.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/redis_manager.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/redis_manager.cpp.s .PHONY : src/util/redis_manager.cpp.s src/util/str_array.o: src/util/str_array.c.o @@ -803,8 +803,8 @@ src/util/str_array.o: src/util/str_array.c.o # target to build an object file src/util/str_array.c.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/str_array.c.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/str_array.c.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/str_array.c.o .PHONY : src/util/str_array.c.o src/util/str_array.i: src/util/str_array.c.i @@ -812,8 +812,8 @@ src/util/str_array.i: src/util/str_array.c.i # target to preprocess a source file src/util/str_array.c.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/str_array.c.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/str_array.c.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/str_array.c.i .PHONY : src/util/str_array.c.i src/util/str_array.s: src/util/str_array.c.s @@ -821,8 +821,8 @@ src/util/str_array.s: src/util/str_array.c.s # target to generate assembly for a file src/util/str_array.c.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/str_array.c.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/str_array.c.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/str_array.c.s .PHONY : src/util/str_array.c.s src/util/vector.o: src/util/vector.c.o @@ -830,8 +830,8 @@ src/util/vector.o: src/util/vector.c.o # target to build an object file src/util/vector.c.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/vector.c.o $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/vector.c.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/vector.c.o .PHONY : src/util/vector.c.o src/util/vector.i: src/util/vector.c.i @@ -839,8 +839,8 @@ src/util/vector.i: src/util/vector.c.i # target to preprocess a source file src/util/vector.c.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/vector.c.i $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/vector.c.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/vector.c.i .PHONY : src/util/vector.c.i src/util/vector.s: src/util/vector.c.s @@ -848,8 +848,8 @@ src/util/vector.s: src/util/vector.c.s # target to generate assembly for a file src/util/vector.c.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/vector.c.s $(MAKE) $(MAKESILENT) -f CMakeFiles/ag_gen.dir/build.make CMakeFiles/ag_gen.dir/src/util/vector.c.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/decode.dir/build.make CMakeFiles/decode.dir/src/util/vector.c.s .PHONY : src/util/vector.c.s xp_parser.o: xp_parser.c.o diff --git a/build/ag_gen b/build/ag_gen index 3acaada..636220f 100755 Binary files a/build/ag_gen and b/build/ag_gen differ diff --git a/build/compile_commands.json b/build/compile_commands.json index 9fda8de..d2a0c0e 100644 --- a/build/compile_commands.json +++ b/build/compile_commands.json @@ -1,13 +1,133 @@ [ { "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/dynstr_test.dir/src/util/mem.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/mem.c\"", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/main.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/main.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/main.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/nm_scanner.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_scanner.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_scanner.c" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/nm_parser.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_parser.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_parser.c" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/xp_scanner.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_scanner.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_scanner.c" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/xp_parser.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_parser.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_parser.c" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/ag_gen/ag_gen.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/ag_gen.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/ag_gen.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/ag_gen/asset.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/asset.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/asset.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/ag_gen/assetgroup.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/assetgroup.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/assetgroup.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/ag_gen/edge.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/edge.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/edge.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/ag_gen/exploit.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/exploit.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/exploit.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/ag_gen/factbase.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/factbase.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/factbase.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/ag_gen/network_state.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/network_state.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/network_state.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/ag_gen/quality.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/quality.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/quality.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/ag_gen/topology.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/topology.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/topology.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/util/avail_mem.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/avail_mem.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/avail_mem.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/src/util/build_sql.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/build_sql.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/build_sql.c" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/util/common.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/common.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/common.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/util/db_functions.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/db_functions.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/db_functions.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/src/util/hash.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/hash.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/hash.c" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/src/util/list.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/list.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/list.c" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/src/util/mem.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/mem.c\"", "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/mem.c" }, { "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/dynstr_test.dir/src/tests/mem_test.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/tests/mem_test.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/tests/mem_test.c" + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/util/redis_manager.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/redis_manager.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/redis_manager.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/src/util/str_array.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/str_array.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/str_array.c" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -pthread -o CMakeFiles/ag_gen.dir/src/util/vector.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/vector.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/vector.c" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/mpi/serialize.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/serialize.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/serialize.cpp" +}, +{ + "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", + "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_MPI_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -pthread -o CMakeFiles/ag_gen.dir/src/mpi/tasks.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/tasks.cpp\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/tasks.cpp" }, { "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", @@ -111,132 +231,12 @@ }, { "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/main.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/main.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/main.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/nm_scanner.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_scanner.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_scanner.c" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/nm_parser.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_parser.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/nm_parser.c" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/xp_scanner.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_scanner.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_scanner.c" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/xp_parser.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_parser.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/build/xp_parser.c" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/ag_gen.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/ag_gen.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/ag_gen.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/asset.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/asset.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/asset.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/assetgroup.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/assetgroup.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/assetgroup.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/edge.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/edge.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/edge.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/exploit.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/exploit.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/exploit.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/factbase.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/factbase.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/factbase.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/network_state.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/network_state.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/network_state.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/quality.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/quality.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/quality.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/ag_gen/topology.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/topology.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/ag_gen/topology.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/avail_mem.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/avail_mem.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/avail_mem.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/build_sql.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/build_sql.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/build_sql.c" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/common.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/common.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/common.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/db_functions.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/db_functions.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/db_functions.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/hash.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/hash.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/hash.c" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/list.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/list.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/list.c" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/mem.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/mem.c\"", + "command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/dynstr_test.dir/src/util/mem.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/mem.c\"", "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/mem.c" }, { "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/util/redis_manager.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/redis_manager.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/redis_manager.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/str_array.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/str_array.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/str_array.c" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/cc -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/ag_gen.dir/src/util/vector.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/vector.c\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/util/vector.c" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/mpi/serialize.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/serialize.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/serialize.cpp" -}, -{ - "directory": "/home/noah/Documents/School/Thesis Work/ag_parallel/build", - "command": "/usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -std=c++14 -fopenmp -DREDIS -g -g -O0 -ggdb -Wall -fopenmp -pedantic -o CMakeFiles/ag_gen.dir/src/mpi/tasks.cpp.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/tasks.cpp\"", - "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/mpi/tasks.cpp" + "command": "/usr/bin/cc -I/usr/include/postgresql -I\"/home/noah/Documents/School/Thesis Work/ag_parallel/src\" -g -o CMakeFiles/dynstr_test.dir/src/tests/mem_test.c.o -c \"/home/noah/Documents/School/Thesis Work/ag_parallel/src/tests/mem_test.c\"", + "file": "/home/noah/Documents/School/Thesis Work/ag_parallel/src/tests/mem_test.c" } ] \ No newline at end of file diff --git a/build/run.sh b/build/run.sh index 32141d6..f54dba1 100755 --- a/build/run.sh +++ b/build/run.sh @@ -1,9 +1,25 @@ -sudo -u postgres -i sh -c "dropdb ag_gen" || true -sudo -u postgres -i sh -c "createdb ag_gen ag_gen" -psql ag_gen < schema.sql +#!/usr/bin/env bash + +DBNAME="testing4" + +if sudo -u postgres -i sh -c "psql -q ${DBNAME} -c '\q'" 2>&1; then + echo "Database ${DBNAME} exists. Dropping and recreating from dump." + sudo -u postgres -i sh -c "dropdb "$DBNAME"" || true + sudo -u postgres -i sh -c "createdb "$DBNAME" ag_gen" + psql -q "$DBNAME" < schema.sql + else + echo "Database ${DBNAME} does not exist. Creating and importing from dump." + sudo -u postgres -i sh -c "createdb "$DBNAME" ag_gen" + psql -q "$DBNAME" < schema.sql +fi + +#sudo -u postgres -i sh -c "dropdb ag_gen" || true +#sudo -u postgres -i sh -c "createdb ag_gen ag_gen" +#psql ag_gen < schema.sql + #./ag_gen -n ../car_examples/generic_timeline_maintenance.nm -x ../car_examples/tmp.xp -g DOTFILE.dot -t 1 -q 1 #./ag_gen -n ../car_examples/generic_maintenance.nm -x ../car_examples/generic_maintenance.xp -g DOTFILE.dot -t 1 -q 1 -./ag_gen -n ../fpga_examples/Network_1/car_network1.nm -x ../fpga_examples/Network_1/car_network1.xp -g DOTFILE.dot -t 1 -q 1 -p -a .20 +./ag_gen -n ../fpga_examples/Network_1/car_network1.nm -x ../fpga_examples/Network_1/car_network1.xp -g DOTFILE.dot -t 1 -q 1 -p -a .20 -m 1 -z "$DBNAME" #./ag_gen -n ../car_examples/generic_timeline_maintenance.nm -x ../car_examples/sync_timeline_maintenance.xp -g DOTFILE.dot -t 1 -q 1 # python3 ../tools/color_code.py ../build/states.txt DOTFILE.dot new.dot diff --git a/src/main.cpp b/src/main.cpp index 5c1b807..f504cd1 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,6 +25,10 @@ #include #include +#include +#include +#include + #include "ag_gen/ag_gen.h" #include "util/db_functions.h" #include "util/build_sql.h" @@ -38,6 +42,9 @@ #include "util/redis_manager.h" #endif // REDIS +namespace mpi = boost::mpi; + + template class ag_visitor : public boost::default_dfs_visitor { std::vector> &to_delete; @@ -411,11 +418,13 @@ const std::string read_file(const std::string &fn) { // and error if an unknown flag is provided. It then uses the database given in // the "config.txt" file to generate an attack graph. int main(int argc, char *argv[]) { + //------------------------------ //Program block 1: initialization and database connection //------------------------------ //int thread_count=strtol(argv[5],NULL,10); //int init_qsize=strtol(argv[6],NULL,10); + struct timeval ts1,tf1,ts2,tf2,ts3,tf3; gettimeofday(&ts1,NULL); if (argc < 2) { @@ -429,8 +438,11 @@ int main(int argc, char *argv[]) { std::string opt_config; std::string opt_graph; std::string opt_batch; + std::string db_name = "ag_gen"; + int thread_count; int init_qsize; + int mpi_nodes; bool should_graph = false; bool no_cycles = false; @@ -441,7 +453,7 @@ int main(int argc, char *argv[]) { double alpha = 0.5; int opt; - while ((opt = getopt(argc, argv, "rb:g:dhc:n:x:t:q:pa:")) != -1) { + while ((opt = getopt(argc, argv, "rb:g:dhc:n:x:t:q:pa:m:z:")) != -1) { switch (opt) { case 'g': should_graph = true; @@ -482,6 +494,12 @@ int main(int argc, char *argv[]) { //Save a 10% buffer for PSQL ops alpha = atof(optarg) - 0.1; break; + case 'm': + mpi_nodes = atoi(optarg); + break; + case 'z': + db_name = optarg; + break; case '?': if (optopt == 'c') fprintf(stderr, "Option -%c requires an argument.\n", optopt); @@ -495,42 +513,75 @@ int main(int argc, char *argv[]) { exit(EXIT_FAILURE); } } - printf("Finished init\n"); - std::string config_section = (opt_config.empty()) ? "default" : opt_config; + std::cout << "Arguments parsed." << std::endl; + /* + // Initialize the MPI environment + MPI_Init(NULL, NULL); - boost::property_tree::ptree pt; - boost::property_tree::ini_parser::read_ini("config.ini", pt); + // Get the number of processes + MPI_Comm_size(MPI_COMM_WORLD, &mpi_nodes); + + // Get the rank of the process + int world_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); + + // Get the name of the processor + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int name_len; + MPI_Get_processor_name(processor_name, &name_len); + + // Print off a hello world message + printf("Hello from processor %s, rank %d out of %d processors\n", + processor_name, world_rank, mpi_nodes); + */ + mpi::environment env; + mpi::communicator world; + std::cout << "\nHello from process " << world.rank() << " of " << world.size() + << "." << std::endl; + + if(world.rank() == 0){ + + printf("Finished init\n"); + + std::string config_section = (opt_config.empty()) ? "default" : opt_config; + + boost::property_tree::ptree pt; + boost::property_tree::ini_parser::read_ini("config.ini", pt); + + if (use_postgres) + { + std::string dbName = pt.get("database.name"); + std::string host = pt.get("database.host"); + std::string port = pt.get("database.port"); + std::string username = pt.get("database.username"); + std::string password = pt.get("database.password"); + std::cout<Initialization and Connecting to DB took %lf ms.<----------- \n",tdiff2); + printf("\n"); + } + else + { + std::cout << "Error: Not yet implemented. Database must be used.\ + Please use the '-p' argument when running this program." << std::endl; + return(1); + } - if (use_postgres) - { - std::string dbName = pt.get("database.name"); - std::string host = pt.get("database.host"); - std::string port = pt.get("database.port"); - std::string username = pt.get("database.username"); - std::string password = pt.get("database.password"); - std::cout<Initialization and Connecting to DB took %lf ms.<----------- \n",tdiff2); - printf("\n"); } - else - { - - std::cout << "Error: Not yet implemented. Database must be used.\ - Please use the '-p' argument when running this program." << std::endl; - return(1); - } - - //-------------------------------------------- //program block 2: read in network model and exploit pattern and store them in local database //-------------------------------------------- @@ -558,6 +609,8 @@ int main(int argc, char *argv[]) { } parsedxp = parse_xp(opt_xp); } + + printf("\n"); printf("=====parsed nm=====\n"); std::cout << parsednm <<"\n"; @@ -568,7 +621,7 @@ int main(int argc, char *argv[]) { if (batch_process) batch_size = std::stoi(opt_batch); - if (use_postgres) { + if (use_postgres && world.rank() == 0) { std::cout << "Importing Models and Exploits into Database: "; import_models(parsednm, parsedxp); //directly use the strings parsednm and parsedxp as SQL commands gettimeofday(&tf3,NULL); @@ -578,15 +631,10 @@ int main(int argc, char *argv[]) { printf("\n"); } - else - { - std::cout << "Importing into Mock" << std::endl; - } - //------------------------------------------ //program block 3: //------------------------------------------ - + AGGenInstance _instance; //the following five assignments to _instance's members are all from db_function.cpp //the following five assignments are only applicable when use_postgres is set to true @@ -633,7 +681,7 @@ int main(int argc, char *argv[]) { postinstance = gen.generate(batch_process, batch_size, thread_count, init_qsize, alpha); //The method call to generate the attack graph, defined in ag_gen.cpp. //Serialization Unit Testing on Postinstance Data - serialization_unit_testing(postinstance); + serialization_unit_testing(postinstance, world); std::cout << "Done\n"; @@ -702,3 +750,4 @@ int main(int argc, char *argv[]) { printf("%lf\n",tdiff4); */ } + diff --git a/src/mpi/serialize.cpp b/src/mpi/serialize.cpp index 876cdff..ff80df8 100644 --- a/src/mpi/serialize.cpp +++ b/src/mpi/serialize.cpp @@ -35,8 +35,14 @@ #include #include +#include +#include +#include + #include +namespace mpi = boost::mpi; + void save_quality(const Quality &q, const char * filename){ std::ofstream ofs(filename); @@ -175,10 +181,12 @@ int network_state_check(NetworkState &ns1, NetworkState &ns2){ } -void serialization_unit_testing(AGGenInstance &instance){ +void serialization_unit_testing(AGGenInstance &instance, boost::mpi::communicator &world){ + if(world.rank() == 0){ + printf("\n"); + std::cout << "---------STARTING SERIALIZATION UNIT TESTING---------" << std::endl; + } - printf("\n"); - std::cout << "---------STARTING SERIALIZATION UNIT TESTING---------" << std::endl; std::string filename(boost::archive::tmpdir()); filename += "/qualfile.txt"; @@ -196,120 +204,254 @@ void serialization_unit_testing(AGGenInstance &instance){ int ns_count = 0; int ns_corr = 0; - std::cout << "Performing Unit Testing on Quality Serialization." << std::endl; + if(world.rank() == 0){ + std::cout << "Performing Unit Testing on Quality Serialization." << std::endl; + } + for (auto qual : instance.initial_qualities) { - //std::cout << "Orginial Quality:" << std::endl; - //qual.print(); - //printf("\n"); + //Send Qualities + if(world.rank() == 0){ + //Can't use broadcast, since it doesn't send to self. + if(world.size() == 1) + world.isend(0, 0, qual); + else + broadcast(world, qual, 0); + //save_quality(qual, filename.c_str()); + } - save_quality(qual, filename.c_str()); + //Receive Qualities + if(world.rank() > 0 || world.size() == 1){ + Quality new_qual; + mpi::request req; - Quality new_qual; - restore_quality(new_qual, filename.c_str()); + req = world.irecv(mpi::any_source, mpi::any_tag,new_qual); + do { + boost::optional stat = req.test(); + if(stat){ + //std::cout << "New message from " << stat->source() << ":"<< std::endl; + //new_qual.print(); + break; + } + } while(1); - //std::cout << "Quality after restoring from serialization:" << std::endl; - //new_qual.print(); - //std::cout << "-------------------------------------------" << std::endl; - //printf("\n"); - qual_count++; - qual_corr += quality_check(qual, new_qual); + //restore_quality(new_qual, filename.c_str()); + qual_count++; + qual_corr += quality_check(qual, new_qual); + } + } - std::cout << "Quality Unit Testing: " << std::to_string(qual_corr) << "/" << std::to_string(qual_count) << std::endl; - printf("\n"); + int total_qual_corr; + if (world.rank() == 0 && world.size() == 1){ + total_qual_corr = qual_corr; + } + + if (world.rank() == 0 && world.size() > 1){ + reduce(world, qual_corr, total_qual_corr, std::plus(), 0); + } + else if (world.rank() > 0 && world.size() > 1){ + reduce(world, qual_corr, std::plus(), 0); + } + + if (world.rank() == 0){ + std::cout << "Quality Unit Testing: " << std::to_string(total_qual_corr) << "/" << std::to_string(world.size() * qual_count) << std::endl; + printf("\n"); + + std::cout << "Performing Unit Testing on Topology Serialization." << std::endl; + } - std::cout << "Performing Unit Testing on Topology Serialization." << std::endl; for (auto topo : instance.initial_topologies) { - //std::cout << "Original Topology: " << std::endl; - //topo.print(); + //Send Topologies + if(world.rank() == 0){ + //Can't use broadcast, since it doesn't send to self. + if(world.size() == 1) + world.isend(0, 0, topo); + else + broadcast(world, topo, 0); + //save_quality(qual, filename.c_str()); + } - save_topology(topo, filename.c_str()); + //Receive Topologies + if(world.rank() > 0 || world.size() == 1){ + Topology new_top; + mpi::request req; - Topology new_top; - restore_topology(new_top, filename.c_str()); + req = world.irecv(mpi::any_source, mpi::any_tag, new_top); + do { + boost::optional stat = req.test(); + if(stat){ + break; + } + } while(1); + + //restore_topology(new_top, filename.c_str()); + top_count++; + top_corr += topology_check(topo, new_top); + } - //std::cout << "Topology after restoring from serialization:" << std::endl; - //new_top.print(); - //std::cout << "-------------------------------------------" << std::endl; - //printf("\n"); - top_count++; - top_corr += topology_check(topo, new_top); } - std::cout << "Topology Unit Testing: " << std::to_string(top_corr) << "/" << std::to_string(top_count) << std::endl; - printf("\n"); + int total_top_corr; + + if(world.rank() ==0 && world.size() == 1){ + total_top_corr = top_corr; + } + if (world.rank() == 0 && world.size() > 1){ + reduce(world, top_corr, total_top_corr, std::plus(), 0); + } + else if (world.rank() > 0 && world.size() > 1){ + reduce(world, top_corr, std::plus(), 0); + } + + if (world.rank() == 0){ + std::cout << "Topology Unit Testing: " << std::to_string(total_top_corr) << "/" << std::to_string(world.size() * top_count) << std::endl; + printf("\n"); + + std::cout << "Performing Unit Testing on Factbase Serialization." << std::endl; + } - std::cout << "Performing Unit Testing on Factbase Serialization." << std::endl; for (auto fb : instance.factbases) { - save_factbase(fb, filename.c_str()); - Factbase new_fb; - restore_factbase(new_fb, filename.c_str()); + //Send Factbases + if(world.rank() == 0){ + //Can't use broadcast, since it doesn't send to self. + if(world.size() == 1) + world.isend(0, 0, fb); + else + broadcast(world, fb, 0); + } - fb_count++; - fb_corr += factbase_check(fb, new_fb); + //Receive Factbases + if(world.rank() > 0 || world.size() == 1){ + Factbase new_fb; + mpi::request req; + + req = world.irecv(mpi::any_source, mpi::any_tag, new_fb); + do { + boost::optional stat = req.test(); + if(stat){ + break; + } + } while(1); + + fb_count++; + fb_corr += factbase_check(fb, new_fb); + } } - std::cout << "Factbase Unit Testing: " << std::to_string(fb_corr) << "/" << std::to_string(fb_count) << std::endl; - printf("\n"); + int total_fb_corr; - std::cout << "Performing Unit Testing on Network State Serialization." << std::endl; - save_network_state(init_state, filename.c_str()); - - NetworkState new_ns; - restore_network_state(new_ns, filename.c_str()); - - ns_count++; - ns_corr += network_state_check(init_state, new_ns); + if(world.rank() ==0 && world.size() == 1){ + total_fb_corr = fb_corr; + } + if (world.rank() == 0 && world.size() > 1){ + reduce(world, fb_corr, total_fb_corr, std::plus(), 0); + } + else if (world.rank() > 0 && world.size() > 1){ + reduce(world, fb_corr, std::plus(), 0); + } - std::cout << "Network State Unit Testing: " << std::to_string(ns_corr) << "/" << std::to_string(ns_count) << std::endl; - printf("\n"); - - if(qual_corr == qual_count) - { - std::cout << "100% Success Rate for Quality Serialization." << std::endl; - } - else{ - std::cout << "Errors occurred in the Quality Serialization." << std::endl; - e_flag = 1; + + if (world.rank() == 0){ + std::cout << "Factbase Unit Testing: " << std::to_string(total_fb_corr) << "/" << std::to_string(world.size() * fb_count) << std::endl; + printf("\n"); + + std::cout << "Performing Unit Testing on Network State Serialization." << std::endl; } - - if(top_corr == top_count) - { - std::cout << "100% Success Rate for Topology Serialization." << std::endl; - } - else{ - std::cout << "Errors occurred in the Topology Serialization." << std::endl; - e_flag = 1; + //Send Network State + if(world.rank() == 0){ + //Can't use broadcast, since it doesn't send to self. + if(world.size() == 1) + world.isend(0, 0, init_state); + else + broadcast(world, init_state, 0); } - if(fb_corr == fb_count) - { - std::cout << "100% Success Rate for Factbase Serialization." << std::endl; - } - else{ - std::cout << "Errors occurred in the Factbase Serialization." << std::endl; - e_flag = 1; + //Receive Network State + if(world.rank() > 0 || world.size() == 1){ + NetworkState new_ns; + mpi::request req; + + req = world.irecv(mpi::any_source, mpi::any_tag, new_ns); + do { + boost::optional stat = req.test(); + if(stat){ + break; + } + } while(1); + + ns_count++; + ns_corr += network_state_check(init_state, new_ns); } - if(ns_corr == ns_count) - { - std::cout << "100% Success Rate for Network State Serialization." << std::endl; + int total_ns_corr; + + if(world.rank() ==0 && world.size() == 1){ + total_ns_corr = ns_corr; } - else{ - std::cout << "Errors occurred in the Network State Serialization." << std::endl; - e_flag = 1; + if (world.rank() == 0 && world.size() > 1){ + reduce(world, ns_corr, total_ns_corr, std::plus(), 0); + } + else if (world.rank() > 0 && world.size() > 1){ + reduce(world, ns_corr, std::plus(), 0); } - - if(e_flag == 1) - std::cout << "-------------ERRORS OCCURRED DURING SERIALIZATION UNIT TESTING---------------" << std::endl; - std::cout << "---------FINISHED SERIALIZATION UNIT TESTING---------" << std::endl; - printf("\n"); + if (world.rank() == 0){ + std::cout << "Network State Unit Testing: " << std::to_string(total_ns_corr) << "/" << std::to_string(world.size() * ns_count) << std::endl; + printf("\n"); + } + + if(world.rank() == 0){ + + if(total_qual_corr == world.size() * qual_count) + { + std::cout << "100% Success Rate for Quality Serialization." << std::endl; + } + else{ + std::cout << "Errors occurred in the Quality Serialization." << std::endl; + e_flag = 1; + } + + + if(total_top_corr == world.size() * top_count) + { + std::cout << "100% Success Rate for Topology Serialization." << std::endl; + } + else{ + std::cout << "Errors occurred in the Topology Serialization." << std::endl; + e_flag = 1; + } + + if(total_fb_corr == world.size() * fb_count) + { + std::cout << "100% Success Rate for Factbase Serialization." << std::endl; + } + else{ + std::cout << "Errors occurred in the Factbase Serialization." << std::endl; + e_flag = 1; + } + + if(total_ns_corr == world.size() * ns_count) + { + std::cout << "100% Success Rate for Network State Serialization." << std::endl; + } + else{ + std::cout << "Errors occurred in the Network State Serialization." << std::endl; + e_flag = 1; + } + + + if(e_flag == 1) + std::cout << "-------------ERRORS OCCURRED DURING SERIALIZATION UNIT TESTING---------------" << std::endl; + std::cout << "---------FINISHED SERIALIZATION UNIT TESTING---------" << std::endl; + printf("\n"); + } + //MPI Clean-up + //MPI_Finalize(); return; } diff --git a/src/mpi/serialize.h b/src/mpi/serialize.h index 99160d6..f6a5280 100644 --- a/src/mpi/serialize.h +++ b/src/mpi/serialize.h @@ -9,7 +9,7 @@ void save_topology(const Topology &t, const char * filename); void restore_topology(Topology &t, const char * filename); int topology_check(Topology &t1, Topology &t2); -void serialization_unit_testing(AGGenInstance &instance); +void serialization_unit_testing(AGGenInstance &instance, boost::mpi::communicator &world); #endif //SERIALIZE_H