source: CMT/v1r16p20040901/src/demo/demo1.cmt @ 1

Last change on this file since 1 was 1, checked in by arnault, 19 years ago

Import all tags

File size: 5.0 KB
Line 
1%%%-----------------------------------------------------------
2%%% Copyright Christian Arnault LAL-Orsay CNRS
3%%% arnault@lal.in2p3.fr
4%%% See the complete license in cmt_license.txt "http://www.cecill.info".
5%%%-----------------------------------------------------------
6
7%%%---------------------------------
8%%%------ demoA --------------------
9%%%---------------------------------
10%%package demoA
11
12branches classes demoA
13
14application demoA demoA.cxx foo=bar -target_tag
15application A A.java
16
17pattern -global multi macro m1 "" Linux m1linux alpha m1alpha ; macro m2 m2
18
19macro m3 m3
20
21make_fragment rename -header=rename_header
22
23document rename XXX OFFSET=XXX demoA.cxx
24
25application XXXdemoA -check -group=X XXXdemoA.cxx
26
27include_path $(demoA_root)
28
29setup_script init
30
31%%%---------------------------------
32%%file cmt/init.bat
33
34echo "doing A init"
35
36%%%---------------------------------
37%%file cmt/init.csh
38
39echo "doing A init"
40
41%%%---------------------------------
42%%file cmt/init.sh
43
44echo "doing A init"
45
46%%%---------------------------------
47%%file src/demoA.cxx
48#include <stdio.h>
49 
50int main ()
51{
52  //xxx
53  printf ("demoA\n");
54
55  return (0);
56}
57
58%%%---------------------------------
59%%file demoA/demoA.h
60
61#define demoA 123
62
63%%%---------------------------------
64%%file src/A.java
65
66public class A
67{
68  public static void main (String arg[])
69  {
70    System.out.println ("A");
71  }
72}
73
74%%%---------------------------------
75%%file cmt/fragments/rename
76
77## ${SUFFIX}
78
79${CONSTITUENT} :: ${FILEPATH}${OFFSET}${NAME}${FILESUFFIX}
80
81
82${FILEPATH}${OFFSET}${NAME}${FILESUFFIX} : ${FULLNAME}
83        cp $? $@
84
85clean::
86        /bin/rm -f ${FILEPATH}${OFFSET}${NAME}${FILESUFFIX}
87
88%%%---------------------------------
89%%file cmt/fragments/rename_header
90
91%%%---------------------------------
92%%file cmt/fragments/nmake/rename
93
94## ${SUFFIX}
95
96${CONSTITUENT} :: ${FILEPATH}${OFFSET}${NAME}${FILESUFFIX}
97
98${FILEPATH}${OFFSET}${NAME}${FILESUFFIX} : ${FULLNAME}
99        copy $? $@
100
101clean::
102        del ${FILEPATH}${OFFSET}${NAME}${FILESUFFIX}
103
104%%%---------------------------------
105%%file cmt/fragments/nmake/rename_header
106
107%%%---------------------------------
108%%%------ demoB --------------------
109%%%---------------------------------
110%%package demoB
111package demoB
112
113use demoA
114
115application demoB -check demoB.cxx
116
117#application B B.java
118
119set before_init "before_init"
120
121setup_script init
122
123set after_init "after_init"
124
125%%file cmt/init.bat
126
127echo "doing B init"
128
129%%file cmt/init.csh
130
131echo "doing B init"
132
133%%file cmt/init.sh
134
135echo "doing B init"
136
137%%file src/demoB.cxx
138#include <stdio.h>
139
140#include <demoA/demoA.h>
141 
142int main ()
143{
144  printf ("demoB demoA=%d\n", demoA);
145
146  return (0);
147}
148
149%%file src/B.java
150
151public class B
152{
153  public static void main (String arg[])
154  {
155    System.out.println ("B");
156  }
157}
158
159%%%---------------------------------
160%%%------ demoC --------------------
161%%%---------------------------------
162%%package demoC
163package demoC
164
165build_strategy rebuild_makefiles
166
167include_path ../demoC
168
169branches demoC
170
171library C C*.cxx
172
173macro demoC_linkopts "-L$(DEMOCROOT)/$(demoC_tag) -lC" \
174      WIN32          ""
175
176application demoC -check demoC.cxx
177
178path_append LD_LIBRARY_PATH "" \
179            Linux "../$(demoC_tag)"
180
181
182%%file src/demoC.cxx
183#include <stdio.h>
184
185typedef void (*Procedure) ();
186
187#ifdef WIN32
188#include <windows.h>
189
190Procedure get_proc (const char* name)
191{
192  void* f = ::LoadLibrary ("..\\Win32Debug\\C.dll");
193
194  if (f == 0)
195    {
196      f = ::LoadLibrary ("..\\VisualC\\C.dll");
197    }
198
199  if (f == 0)
200    {
201      printf ("Cannot load the library\n");
202      exit (0);
203    }
204
205  Procedure p;
206
207  p = (Procedure)::GetProcAddress ((HMODULE) f, name);
208  if (p == 0)
209    {
210      char* s = new char[strlen(name) + 2];
211      s[0] = '_';
212      strcpy (s+1, name);
213      p = (Procedure)::GetProcAddress((HMODULE) f, s);
214    }
215
216  if (p == 0)
217    {
218      printf ("Cannot get the module %s\n", name);
219      exit (0);
220    }
221
222  return (p);
223}
224#else
225extern "C" {
226void C1 ();
227void C2 ();
228void C3 ();
229}
230#endif
231
232int main ()
233{
234  printf ("demoC\n");
235
236#ifdef WIN32
237
238  Procedure c = 0;
239
240  c = get_proc ("C1");
241  c ();
242  c = get_proc ("C2");
243  c ();
244  c = get_proc ("C3");
245  c ();
246#else
247  C1 ();
248  C2 ();
249  C3 ();
250#endif
251
252  return (0);
253}
254
255%%file src/C1.cxx
256#include <stdio.h>
257
258extern "C" {
259  void C1 ();
260}
261
262void C1 ()
263{
264  printf ("C1\n");
265}
266
267%%file src/C2.cxx
268#include <stdio.h>
269 
270extern "C" {
271  void C2 ();
272}
273
274void C2 ()
275{
276  printf ("C2\n");
277}
278
279%%file src/C3.cxx
280#include <stdio.h>
281 
282extern "C" {
283  void C3 ();
284}
285
286void C3 ()
287{
288  printf ("C3\n");
289}
290
291%%%---------------------------------
292%%%------ Actions ------------------
293%%%---------------------------------
294%%cdpackage demoA
295%%cmt run "gmake all_groups"
296%%%cmt run "gmake check"
297%%cdpackage demoB
298%%%cmt run "gmake all"
299%%%cmt run "gmake check"
300%%cdpackage demoC
301%%%cmt run "cmt config"
302%%%cmt run ". setup.sh ; gmake QUIET=1 all check"
Note: See TracBrowser for help on using the repository browser.