From 674ff8e3cc1e95a351d14683db7b67a7822d5aa3 Mon Sep 17 00:00:00 2001
From: Gav Wood <i@gavwood.com>
Date: Sat, 28 Jun 2014 19:23:32 +0200
Subject: [PATCH] Full python serpent support. Shared libs on all platforms.

---
 Assembly.h       |  4 ++--
 CMakeLists.txt   | 26 ++++++--------------------
 CodeFragment.cpp |  1 -
 3 files changed, 8 insertions(+), 23 deletions(-)

diff --git a/Assembly.h b/Assembly.h
index 29f899c0e..3e8a83260 100644
--- a/Assembly.h
+++ b/Assembly.h
@@ -70,8 +70,8 @@ class Assembly
 public:
 	AssemblyItem newTag() { return AssemblyItem(Tag, m_usedTags++); }
 	AssemblyItem newPushTag() { return AssemblyItem(PushTag, m_usedTags++); }
-	AssemblyItem newData(bytes const& _data) { auto h = sha3(_data); m_data[h] = _data; return AssemblyItem(PushData, h); }
-	AssemblyItem newPushString(std::string const& _data) { auto h = sha3(_data); m_strings[h] = _data; return AssemblyItem(PushString, h); }
+	AssemblyItem newData(bytes const& _data) { h256 h = (u256)std::hash<std::string>()(asString(_data)); m_data[h] = _data; return AssemblyItem(PushData, h); }
+	AssemblyItem newPushString(std::string const& _data) { h256 h = (u256)std::hash<std::string>()(_data); m_strings[h] = _data; return AssemblyItem(PushString, h); }
 
 	AssemblyItem append() { return append(newTag()); }
 	void append(Assembly const& _a);
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4117e6edc..2356b7d9d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,27 +6,20 @@ aux_source_directory(. SRC_LIST)
 
 set(EXECUTABLE lll)
 
-if(APPLE)
-	# set(CMAKE_INSTALL_PREFIX ../lib)
-	add_library(${EXECUTABLE} SHARED ${SRC_LIST})
-else()
-	add_library(${EXECUTABLE} ${SRC_LIST})
-endif()
-if (UNIX)
-    FIND_PACKAGE(Boost 1.53 REQUIRED COMPONENTS thread date_time system filesystem program_options signals serialization chrono unit_test_framework locale)
-endif()
+# set(CMAKE_INSTALL_PREFIX ../lib)
+add_library(${EXECUTABLE} SHARED ${SRC_LIST})
+
 file(GLOB HEADERS "*.h") 
 
 include_directories(..)
-target_link_libraries(${EXECUTABLE} ethential)
+
 target_link_libraries(${EXECUTABLE} evmface)
+target_link_libraries(${EXECUTABLE} ethential)
 target_link_libraries(${EXECUTABLE} gmp)
 
+
 if(${TARGET_PLATFORM} STREQUAL "w64")
-	include_directories(/usr/x86_64-w64-mingw32/include/cryptopp)
-	target_link_libraries(${EXECUTABLE} cryptopp)
 	target_link_libraries(${EXECUTABLE} boost_system-mt-s)
-	target_link_libraries(${EXECUTABLE} boost_filesystem-mt-s)
 	target_link_libraries(${EXECUTABLE} boost_thread_win32-mt-s)
 	target_link_libraries(${EXECUTABLE} iphlpapi)
 	target_link_libraries(${EXECUTABLE} ws2_32)
@@ -34,23 +27,16 @@ if(${TARGET_PLATFORM} STREQUAL "w64")
 	target_link_libraries(${EXECUTABLE} shlwapi)
 elseif (APPLE)
 	# Latest mavericks boost libraries only come with -mt
-	target_link_libraries(${EXECUTABLE} ${CRYPTOPP_LIBRARIES})
 	target_link_libraries(${EXECUTABLE} boost_system-mt)
-	target_link_libraries(${EXECUTABLE} boost_filesystem-mt)
 	target_link_libraries(${EXECUTABLE} boost_thread-mt)
 	find_package(Threads REQUIRED)
 	target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT})
 elseif (UNIX)
-	target_link_libraries(${EXECUTABLE} ${CRYPTOPP_LIBRARIES})
 	target_link_libraries(${EXECUTABLE} ${Boost_SYSTEM_LIBRARY})
-	target_link_libraries(${EXECUTABLE} ${Boost_FILESYSTEM_LIBRARY})
 	target_link_libraries(${EXECUTABLE} ${Boost_THREAD_LIBRARY})
-	target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARY})
 	target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT})
 else ()
-	target_link_libraries(${EXECUTABLE} ${CRYPTOPP_LIBRARIES})
 	target_link_libraries(${EXECUTABLE} boost_system)
-	target_link_libraries(${EXECUTABLE} boost_filesystem)
 	target_link_libraries(${EXECUTABLE} boost_thread)
 	find_package(Threads REQUIRED)
 	target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT})
diff --git a/CodeFragment.cpp b/CodeFragment.cpp
index 2ad23471d..f0aeb860c 100644
--- a/CodeFragment.cpp
+++ b/CodeFragment.cpp
@@ -26,7 +26,6 @@
 #include <boost/spirit/include/support_utree.hpp>
 #include <libethential/Log.h>
 #include <libevmface/Instruction.h>
-#include <libethcore/CommonEth.h>
 #include "CompilerState.h"
 using namespace std;
 using namespace eth;