Skip to content

Commit 88ed58e

Browse files
committed
Merge branch 'release-1.5.0'
2 parents b0958c8 + e971575 commit 88ed58e

File tree

239 files changed

+3568
-2977
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

239 files changed

+3568
-2977
lines changed

.gitignore

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
/Makefile.llvm.config
1717
/config.log
1818
/config.status
19+
/configure.out
1920

2021
# Generated by make
2122
Debug+Asserts
@@ -28,4 +29,11 @@ bin/*.pyc
2829
.DS_Store
2930

3031
# Backup files
31-
*.orig
32+
*.orig
33+
34+
# Generated by SMACK
35+
a.bpl
36+
37+
# Generated by Boogie
38+
corral_out_trace.txt
39+
corraldebug.out

CMakeLists.txt

Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,43 @@
1-
#
2-
# Copyright (c) 2013 Pantazis Deligiannis (p.deligiannis@imperial.ac.uk)
1+
#
32
# This file is distributed under the MIT License. See LICENSE for details.
4-
#
3+
#
54

65
cmake_minimum_required(VERSION 2.8)
76
project(smack)
87

98
if (NOT WIN32 OR MSYS OR CYGWIN)
109
find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config PATHS ${LLVM_CONFIG} NO_DEFAULT_PATH DOC "llvm-config")
11-
10+
1211
if (LLVM_CONFIG_EXECUTABLE STREQUAL "LLVM_CONFIG_EXECUTABLE-NOTFOUND")
1312
message(FATAL_ERROR "llvm-config could not be found!")
1413
endif()
15-
14+
1615
execute_process(
1716
COMMAND ${LLVM_CONFIG_EXECUTABLE} --cxxflags
1817
OUTPUT_VARIABLE LLVM_CXXFLAGS
1918
OUTPUT_STRIP_TRAILING_WHITESPACE
2019
)
21-
20+
2221
set(LLVM_CXXFLAGS "${LLVM_CXXFLAGS} -fno-exceptions -fno-rtti")
23-
22+
2423
execute_process(
2524
COMMAND ${LLVM_CONFIG_EXECUTABLE} --libs
2625
OUTPUT_VARIABLE LLVM_LIBS
2726
OUTPUT_STRIP_TRAILING_WHITESPACE
2827
)
29-
28+
29+
execute_process(
30+
COMMAND ${LLVM_CONFIG_EXECUTABLE} --system-libs
31+
OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
32+
OUTPUT_STRIP_TRAILING_WHITESPACE
33+
)
34+
3035
execute_process(
3136
COMMAND ${LLVM_CONFIG_EXECUTABLE} --ldflags
3237
OUTPUT_VARIABLE LLVM_LDFLAGS
3338
OUTPUT_STRIP_TRAILING_WHITESPACE
3439
)
35-
40+
3641
else()
3742
set(LLVM_SRC "" CACHE PATH "LLVM source directory")
3843
set(LLVM_BUILD "" CACHE PATH "LLVM build directory")
@@ -50,7 +55,7 @@ else()
5055
set(LLVM_CXXFLAGS "\"/I${LLVM_SRC}/include\" \"/I${LLVM_BUILD}/include\" -D_SCL_SECURE_NO_WARNINGS -wd4146 -wd4244 -wd4355 -wd4482 -wd4800")
5156
set(LLVM_LDFLAGS "")
5257
set(LLVM_LIBS "${LLVM_LIBDIR}/LLVMTransformUtils.lib" "${LLVM_LIBDIR}/LLVMipa.lib" "${LLVM_LIBDIR}/LLVMAnalysis.lib" "${LLVM_LIBDIR}/LLVMTarget.lib" "${LLVM_LIBDIR}/LLVMMC.lib" "${LLVM_LIBDIR}/LLVMObject.lib" "${LLVM_LIBDIR}/LLVMBitReader.lib" "${LLVM_LIBDIR}/LLVMCore.lib" "${LLVM_LIBDIR}/LLVMSupport.lib")
53-
58+
5459
endif()
5560

5661
include_directories(include)
@@ -136,26 +141,29 @@ add_library(dsa STATIC
136141
)
137142

138143
add_library(smackTranslator STATIC
139-
include/smack/smack.h
140144
include/smack/BoogieAst.h
141145
include/smack/BplFilePrinter.h
142146
include/smack/BplPrinter.h
147+
include/smack/Contracts.h
143148
include/smack/DSAAliasAnalysis.h
149+
include/smack/Naming.h
150+
include/smack/Slicing.h
144151
include/smack/SmackInstGenerator.h
145152
include/smack/SmackModuleGenerator.h
146153
include/smack/SmackOptions.h
147154
include/smack/SmackRep.h
148-
include/smack/SmackRep2dMem.h
149155
include/smack/SmackRepFlatMem.h
150156
lib/smack/BoogieAst.cpp
151157
lib/smack/BplFilePrinter.cpp
152158
lib/smack/BplPrinter.cpp
159+
lib/smack/Contracts.cpp
153160
lib/smack/DSAAliasAnalysis.cpp
161+
lib/smack/Naming.cpp
162+
lib/smack/Slicing.cpp
154163
lib/smack/SmackInstGenerator.cpp
155164
lib/smack/SmackModuleGenerator.cpp
156165
lib/smack/SmackOptions.cpp
157166
lib/smack/SmackRep.cpp
158-
lib/smack/SmackRep2dMem.cpp
159167
lib/smack/SmackRepFlatMem.cpp
160168
)
161169

@@ -166,22 +174,28 @@ add_executable(smack
166174
set_target_properties(smack smackTranslator assistDS dsa
167175
PROPERTIES COMPILE_FLAGS "${LLVM_CXXFLAGS}")
168176

169-
target_link_libraries(smackTranslator ${LLVM_LIBS} ${LLVM_LDFLAGS})
177+
target_link_libraries(smackTranslator ${LLVM_LIBS} ${LLVM_SYSTEM_LIBS} ${LLVM_LDFLAGS})
170178
target_link_libraries(smack smackTranslator assistDS dsa)
171179

172-
INSTALL(TARGETS smack smackTranslator assistDS dsa
180+
INSTALL(TARGETS smack
173181
RUNTIME DESTINATION bin
174-
LIBRARY DESTINATION lib
175-
ARCHIVE DESTINATION lib
176182
)
177183

178184
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/bin/boogie
179-
${CMAKE_CURRENT_SOURCE_DIR}/bin/corral
180-
${CMAKE_CURRENT_SOURCE_DIR}/bin/llvm2bpl.py
181-
${CMAKE_CURRENT_SOURCE_DIR}/bin/smackgen.py
182-
${CMAKE_CURRENT_SOURCE_DIR}/bin/smackverify.py
183-
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
184-
GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
185+
${CMAKE_CURRENT_SOURCE_DIR}/bin/corral
186+
${CMAKE_CURRENT_SOURCE_DIR}/bin/llvm2bpl.py
187+
${CMAKE_CURRENT_SOURCE_DIR}/bin/smackgen.py
188+
${CMAKE_CURRENT_SOURCE_DIR}/bin/smackverify.py
189+
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
190+
GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
185191
DESTINATION bin
186192
)
187-
193+
194+
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/smack/smack.h
195+
${CMAKE_CURRENT_SOURCE_DIR}/include/smack/smack-contracts.h
196+
${CMAKE_CURRENT_SOURCE_DIR}/include/smack/smack-svcomp.h
197+
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
198+
GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
199+
DESTINATION include/smack
200+
)
201+

LICENSE

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ The MIT License
22

33
Copyright (c) 2008-2014 Zvonimir Rakamaric (zvonimir@cs.utah.edu),
44
Michael Emmi (michael.emmi@gmail.com)
5+
Modified work Copyright (c) 2013-2014 Pantazis Deligiannis,
6+
Montgomery Carter,
7+
Arvind Haran
58

69
Permission is hereby granted, free of charge, to any person obtaining a copy
710
of this software and associated documentation files (the "Software"), to deal
@@ -38,3 +41,12 @@ poolalloc include/assistDS
3841
include/dsa
3942
lib/AssistDS
4043
lib/DSA
44+
45+
In addition, a binary distribution of SMACK contains at least the following
46+
tools and packages, which come with their own licenses:
47+
- LLVM, clang, LLVM runtime (http://llvm.org/)
48+
- mono (http://www.mono-project.com/)
49+
- Boogie (http://boogie.codeplex.com/)
50+
- Corral (http://corral.codeplex.com/)
51+
- Z3 (http://z3.codeplex.com/), Non-Commercial Use Only
52+

Makefile.common.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Set the name of the project here
22
PROJECT_NAME := smack
3-
PROJ_VERSION := 1.4.1
3+
PROJ_VERSION := 1.5.0
44

55
# Set this variable to the top of the LLVM source tree.
66
LLVM_SRC_ROOT = @LLVM_SRC@
@@ -27,3 +27,5 @@ include $(PROJ_OBJ_ROOT)/Makefile.llvm.config
2727
# Include all of the build rules used for making LLVM
2828
include $(PROJ_SRC_ROOT)/Makefile.llvm.rules
2929

30+
# SMACK-specific scripts
31+
include $(PROJ_SRC_ROOT)/Makefile.smack.scripts

Makefile.llvm.config.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ PROJ_SRC_DIR := $(call realpath, $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%
5959
prefix := $(PROJ_INSTALL_ROOT)
6060
PROJ_prefix := $(prefix)
6161
ifndef PROJ_VERSION
62-
PROJ_VERSION := 1.4.1
62+
PROJ_VERSION := 1.5.0
6363
endif
6464

6565
PROJ_bindir := $(PROJ_prefix)/bin

0 commit comments

Comments
 (0)