File tree 10 files changed +35
-18
lines changed 10 files changed +35
-18
lines changed Original file line number Diff line number Diff line change 24
24
hw-cbmc.dir : trans-word-level.dir trans-netlist.dir verilog.dir \
25
25
vhdl.dir smvlang.dir cprover.dir temporal-logic.dir
26
26
27
- vlindex.dir : cprover.dir verilog.dir
27
+ vlindex.dir : ebmc.dir cprover.dir verilog.dir
28
28
29
29
# building cbmc proper
30
30
.PHONY : cprover.dir
Original file line number Diff line number Diff line change
1
+ EBMC_VERSION = 5.7
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ SRC = \
16
16
ebmc_parse_options.cpp \
17
17
ebmc_properties.cpp \
18
18
ebmc_solver_factory.cpp \
19
+ ebmc_version.cpp \
19
20
instrument_past.cpp \
20
21
k_induction.cpp \
21
22
liveness_to_safety.cpp \
@@ -69,12 +70,27 @@ endif
69
70
include ../config.inc
70
71
include ../common
71
72
73
+ # get version from git
74
+ GIT_INFO = $(shell git describe --tags --always --dirty || echo "n/a")
75
+ RELEASE_INFO = const char *EBMC_VERSION="$(EBMC_VERSION ) ($(GIT_INFO ) )";
76
+ GIT_INFO_FILE = ebmc_version.cpp
77
+
78
+ $(GIT_INFO_FILE ) :
79
+ echo ' $(RELEASE_INFO)' > $@
80
+
81
+ # mark the actually generated file as a phony target to enforce a rebuild - but
82
+ # only if the version information has changed!
83
+ KNOWN_RELEASE_INFO = $(shell cat $(GIT_INFO_FILE ) 2>/dev/null)
84
+ ifneq ($(RELEASE_INFO ) , $(KNOWN_RELEASE_INFO ) )
85
+ .PHONY : $(GIT_INFO_FILE )
86
+ endif
87
+
72
88
ifneq ($(wildcard ../vhdl/Makefile) ,)
73
89
OBJ += ../vhdl/vhdl$(LIBEXT )
74
90
CXXFLAGS += -DHAVE_VHDL
75
91
endif
76
92
77
- CLEANFILES = ebmc$(EXEEXT )
93
+ CLEANFILES = $( GIT_INFO_FILE ) ebmc$(EXEEXT )
78
94
79
95
all : ebmc$(EXEEXT )
80
96
Original file line number Diff line number Diff line change @@ -344,13 +344,13 @@ Function: ebmc_parse_optionst::help
344
344
345
345
void ebmc_parse_optionst::help ()
346
346
{
347
- std::cout <<
348
- " \n "
349
- " * * EBMC - Copyright (C) 2001-2017 Daniel Kroening * * \n "
350
- " * * Version " EBMC_VERSION " * *\n "
351
- " * * University of Oxford, Computer Science Department * *\n "
352
-
353
- " \n " ;
347
+ std::cout
348
+ << ' \n '
349
+ << banner_string ( " EBMC" , EBMC_VERSION) << ' \n '
350
+ << " * * EBMC - Copyright (C) 2001-2017 Daniel Kroening * *\n "
351
+ " * * University of Oxford, Computer Science Department * *\n "
352
+
353
+ " \n " ;
354
354
355
355
std::cout << help_formatter (
356
356
// clang-format off
Original file line number Diff line number Diff line change @@ -55,7 +55,7 @@ class ebmc_parse_optionst:public parse_options_baset
55
55
argc,
56
56
argv,
57
57
std::string (" EBMC " ) + EBMC_VERSION),
58
- ui_message_handler(cmdline, " EBMC " EBMC_VERSION)
58
+ ui_message_handler(cmdline, std::string( " EBMC " ) + EBMC_VERSION)
59
59
{
60
60
}
61
61
Original file line number Diff line number Diff line change @@ -92,7 +92,7 @@ ebmc_solver_factoryt ebmc_solver_factory(const cmdlinet &cmdline)
92
92
auto dec = std::make_unique<smt2_convt>(
93
93
ns,
94
94
" ebmc" ,
95
- " Generated by EBMC " EBMC_VERSION,
95
+ std::string ( " Generated by EBMC " ) + EBMC_VERSION,
96
96
" QF_AUFBV" ,
97
97
smt2_solver.value (),
98
98
*outfile_ptr);
@@ -118,7 +118,7 @@ ebmc_solver_factoryt ebmc_solver_factory(const cmdlinet &cmdline)
118
118
return ebmc_solvert{std::make_unique<smt2_convt>(
119
119
ns,
120
120
" ebmc" ,
121
- " Generated by EBMC " EBMC_VERSION,
121
+ std::string ( " Generated by EBMC " ) + EBMC_VERSION,
122
122
" QF_AUFBV" ,
123
123
smt2_solver.value (),
124
124
std::cout)};
@@ -128,7 +128,7 @@ ebmc_solver_factoryt ebmc_solver_factory(const cmdlinet &cmdline)
128
128
return ebmc_solvert{std::make_unique<smt2_dect>(
129
129
ns,
130
130
" ebmc" ,
131
- " Generated by EBMC " EBMC_VERSION,
131
+ std::string ( " Generated by EBMC " ) + EBMC_VERSION,
132
132
" QF_AUFBV" ,
133
133
smt2_solver.value (),
134
134
message_handler)};
Original file line number Diff line number Diff line change 1
- #define EBMC_VERSION "5.7"
1
+ extern const char * EBMC_VERSION ;
Original file line number Diff line number Diff line change 8
8
OBJ+ = $(CPROVER_DIR ) /util/util$(LIBEXT ) \
9
9
$(CPROVER_DIR ) /langapi/langapi$(LIBEXT ) \
10
10
$(CPROVER_DIR ) /big-int/big-int$(LIBEXT ) \
11
+ ../ebmc/ebmc_version$(OBJEXT ) \
11
12
../verilog/verilog$(LIBEXT )
12
13
13
14
include ../config.inc
Original file line number Diff line number Diff line change @@ -79,9 +79,8 @@ void vlindex_parse_optionst::help()
79
79
{
80
80
std::cout
81
81
<< " \n "
82
- " * * VLINDEX - Copyright (C) 2024 * *\n "
83
- " * * Version " EBMC_VERSION
84
- " * *\n "
82
+ << banner_string (" VLINDEX" , EBMC_VERSION) << ' \n '
83
+ << " * * Copyright (C) 2024 * *\n "
85
84
86
85
" \n " ;
87
86
Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ class vlindex_parse_optionst : public parse_options_baset
35
35
argc,
36
36
argv,
37
37
std::string (" EBMC " ) + EBMC_VERSION),
38
- ui_message_handler(cmdline, " EBMC " EBMC_VERSION)
38
+ ui_message_handler(cmdline, std::string( " EBMC " ) + EBMC_VERSION)
39
39
{
40
40
}
41
41
You can’t perform that action at this time.
0 commit comments