]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/example/qi/compiler_tutorial/Jamfile
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / spirit / example / qi / compiler_tutorial / Jamfile
1 #==============================================================================
2 # Copyright (c) 2001-2011 Joel de Guzman
3 #
4 # Distributed under the Boost Software License, Version 1.0. (See accompanying
5 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #==============================================================================
7 project spirit-qi-compiler_tutorial
8 : requirements
9 <c++-template-depth>300
10 :
11 ;
12
13 import modules ;
14
15 exe calc1 : calc1.cpp ;
16 exe calc2 : calc2.cpp ;
17 exe calc3 : calc3.cpp ;
18 exe calc4 : calc4.cpp ;
19 exe calc5 : calc5.cpp ;
20 exe calc6 : calc6.cpp ;
21
22 exe calc7 :
23 calc7/vm.cpp
24 calc7/compiler.cpp
25 calc7/expression.cpp
26 calc7/statement.cpp
27 calc7/main.cpp
28 ;
29
30 exe calc8 :
31 calc8/vm.cpp
32 calc8/compiler.cpp
33 calc8/expression.cpp
34 calc8/statement.cpp
35 calc8/main.cpp
36 ;
37
38 exe mini_c :
39 mini_c/vm.cpp
40 mini_c/compiler.cpp
41 mini_c/expression.cpp
42 mini_c/statement.cpp
43 mini_c/function.cpp
44 mini_c/main.cpp
45 ;
46
47 exe conjure1 :
48 conjure1/vm.cpp
49 conjure1/compiler.cpp
50 conjure1/expression.cpp
51 conjure1/statement.cpp
52 conjure1/function.cpp
53 conjure1/main.cpp
54 ;
55
56 exe conjure2 :
57 conjure2/compiler.cpp
58 conjure2/expression.cpp
59 conjure2/function.cpp
60 conjure2/lexer.cpp
61 conjure2/main.cpp
62 conjure2/statement.cpp
63 conjure2/vm.cpp
64 ;
65
66 #==============================================================================
67 # conjure3 and above require LLVM. Make sure you provide the
68 # LLVM_PATH in your bjam invocation. E.g.:
69 #
70 # bjam -sLLVM_PATH=C:/dev/llvm conjure3
71 #
72 #==============================================================================
73
74 if [ modules.peek : LLVM_PATH ]
75 {
76 LLVM_PATH = [ modules.peek : LLVM_PATH ] ;
77 }
78
79 if $(LLVM_PATH)
80 {
81 path-constant LLVM_LIB_DEBUG_PATH : $(LLVM_PATH)/lib/Debug ;
82 path-constant LLVM_LIB_RELEASE_PATH : $(LLVM_PATH)/lib/Release ;
83
84 llvm_linker_flags =
85 "advapi32.lib"
86 "shell32.lib"
87 ;
88
89 llvm_debug_libs = [ glob $(LLVM_LIB_DEBUG_PATH)/LLVM*.lib ] ;
90 llvm_release_libs = [ glob $(LLVM_LIB_RELEASE_PATH)/LLVM*.lib ] ;
91
92 rule build_exe_1 ( target-name : sources + : requirements * )
93 {
94 local llvm_lib ;
95 if <variant>debug in $(requirements)
96 {
97 llvm_lib = $(llvm_debug_libs) ;
98 }
99 else
100 {
101 llvm_lib = $(llvm_release_libs) ;
102 }
103
104 exe $(target-name)
105 : $(sources)
106 $(llvm_lib)
107 : $(requirements)
108 <toolset>msvc
109 <include>$(LLVM_PATH)/include
110 <linkflags>$(llvm_linker_flags)
111 ;
112 }
113
114 rule build_exe ( target-name : sources + )
115 {
116 build_exe_1 $(target-name) : $(sources) : <variant>debug ;
117 build_exe_1 $(target-name) : $(sources) : <variant>release ;
118 }
119
120 build_exe conjure3 :
121 conjure3/compiler.cpp
122 conjure3/expression.cpp
123 conjure3/function.cpp
124 conjure3/lexer.cpp
125 conjure3/main.cpp
126 conjure3/statement.cpp
127 conjure3/vm.cpp
128 ;
129 }
130
131
132