author | Claus Gittinger <cg@exept.de> |
Wed, 23 Aug 2006 22:21:00 +0200 | |
changeset 9680 | 8fa40fc23008 |
parent 9679 | 9869e924295d |
child 9723 | eb72c0ac62cd |
permissions | -rw-r--r-- |
9526
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
1 |
" |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
2 |
COPYRIGHT (c) 2006 by eXept Software AG |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
3 |
All Rights Reserved |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
4 |
|
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
5 |
This software is furnished under a license and may be used |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
6 |
only in accordance with the terms of that license and with the |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
7 |
inclusion of the above copyright notice. This software may not |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
8 |
be provided or otherwise made available to, or used by, any |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
9 |
other person. No title to or ownership of the software is |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
10 |
hereby transferred. |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
11 |
" |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
12 |
|
9671 | 13 |
"{ Package: 'stx:libbasic' }" |
9493 | 14 |
|
9568 | 15 |
ProjectDefinition subclass:#LibraryDefinition |
9616 | 16 |
instanceVariableNames:'' |
17 |
classVariableNames:'' |
|
18 |
poolDictionaries:'' |
|
19 |
category:'System-Support-Projects' |
|
9493 | 20 |
! |
21 |
||
9568 | 22 |
!LibraryDefinition class methodsFor:'documentation'! |
9526
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
23 |
|
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
24 |
copyright |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
25 |
" |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
26 |
COPYRIGHT (c) 2006 by eXept Software AG |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
27 |
All Rights Reserved |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
28 |
|
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
29 |
This software is furnished under a license and may be used |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
30 |
only in accordance with the terms of that license and with the |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
31 |
inclusion of the above copyright notice. This software may not |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
32 |
be provided or otherwise made available to, or used by, any |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
33 |
other person. No title to or ownership of the software is |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
34 |
hereby transferred. |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
35 |
" |
6760ab786028
changed name from '..._Definition' to '...'
Claus Gittinger <cg@exept.de>
parents:
9517
diff
changeset
|
36 |
! ! |
9493 | 37 |
|
9568 | 38 |
!LibraryDefinition class methodsFor:'defaults'! |
9533 | 39 |
|
9534 | 40 |
defaultDescription |
41 |
^ 'a classLibrary' |
|
9493 | 42 |
! ! |
43 |
||
9576 | 44 |
!LibraryDefinition class methodsFor:'description - project information'! |
45 |
||
46 |
description |
|
47 |
"Returns a description string which will appear in nt.def / bc.def" |
|
48 |
||
49 |
self module = 'stx' ifTrue:[ |
|
50 |
^ 'Smalltalk/X Class library' |
|
51 |
]. |
|
52 |
||
9586 | 53 |
^ 'Class Library' |
9576 | 54 |
|
55 |
"Created: / 17-08-2006 / 20:52:16 / cg" |
|
9586 | 56 |
"Modified: / 18-08-2006 / 16:15:53 / cg" |
9576 | 57 |
! ! |
58 |
||
9568 | 59 |
!LibraryDefinition class methodsFor:'file generation'! |
9493 | 60 |
|
9534 | 61 |
fileNamesToGenerate |
62 |
^ #( |
|
9604 | 63 |
#('Make.proto' #'generate_make_dot_proto') |
64 |
#('Make.spec' #'generate_make_dot_spec') |
|
65 |
#('libInit.cc' #'generate_libInit_dot_cc') |
|
66 |
#('bc.def' #'generate_bc_dot_def') |
|
67 |
#('nt.mak' #'generate_nt_dot_mak') |
|
9576 | 68 |
" |
9604 | 69 |
#('nt.def' #'generate_nt_dot_def') |
9576 | 70 |
" |
9604 | 71 |
#('abbrev.stc' #'generate_abbrev_dot_stc') |
72 |
#('bmake.bat' #'generate_bmake_dot_mak') |
|
9534 | 73 |
) |
9576 | 74 |
|
75 |
"Modified: / 17-08-2006 / 20:03:00 / cg" |
|
9582 | 76 |
! |
77 |
||
9622 | 78 |
generateFile:filename |
79 |
filename = 'libInit.cc' ifTrue:[ |
|
80 |
^ self generate_libInit_dot_cc |
|
81 |
]. |
|
82 |
filename = 'lib.rc' ifTrue:[ |
|
83 |
^ self generate_packageName_dot_rc |
|
84 |
]. |
|
85 |
^ super generateFile:filename |
|
86 |
||
87 |
"Created: / 22-08-2006 / 18:36:24 / cg" |
|
88 |
! |
|
89 |
||
9582 | 90 |
generate_libInit_dot_cc |
91 |
||
92 |
^self replaceMappings: self libInit_dot_cc_mappings |
|
93 |
in: self libInit_dot_cc |
|
94 |
||
95 |
" |
|
96 |
DapasXProject generate_libInit_dot_cc |
|
97 |
DapasX_Datenbasis generate_libInit_dot_cc |
|
98 |
||
99 |
" |
|
100 |
||
101 |
"Created: / 08-08-2006 / 12:47:16 / fm" |
|
102 |
"Modified: / 09-08-2006 / 11:30:52 / fm" |
|
9493 | 103 |
! ! |
104 |
||
9568 | 105 |
!LibraryDefinition class methodsFor:'file templates'! |
9493 | 106 |
|
107 |
bc_dot_def |
|
9576 | 108 |
"the template code for the bc.def file" |
9493 | 109 |
|
110 |
^ |
|
9608 | 111 |
'LIBRARY %(LIBRARY_NAME) |
9493 | 112 |
DESCRIPTION %(DESCRIPTION) |
113 |
CODE PRELOAD MOVEABLE DISCARDABLE |
|
114 |
SEGMENTS |
|
115 |
INITCODE PRELOAD DISCARDABLE |
|
116 |
EXPORTS |
|
9590 | 117 |
__%(LIBRARY_NAME)_Init @1 |
9504 | 118 |
' |
9493 | 119 |
|
120 |
"Created: / 08-08-2006 / 12:26:58 / fm" |
|
121 |
"Modified: / 08-08-2006 / 19:32:27 / fm" |
|
9590 | 122 |
"Modified: / 18-08-2006 / 17:13:45 / cg" |
9493 | 123 |
! |
124 |
||
125 |
classLine_libInit_dot_cc |
|
126 |
||
127 |
^'_%(CLASS)_Init(pass,__pRT__,snd);' |
|
128 |
||
129 |
"Created: / 08-08-2006 / 12:51:44 / fm" |
|
130 |
"Modified: / 08-08-2006 / 15:46:05 / fm" |
|
131 |
! |
|
132 |
||
133 |
extensionLine_libInit_dot_cc |
|
134 |
||
135 |
^'_%(LIBRARY_NAME)_extensions_Init(pass,__pRT__,snd);' |
|
136 |
||
137 |
"Created: / 08-08-2006 / 15:48:56 / fm" |
|
138 |
"Modified: / 08-08-2006 / 19:32:33 / fm" |
|
139 |
! |
|
140 |
||
141 |
libInit_dot_cc |
|
9576 | 142 |
"the template code for the libInit.cc file" |
9493 | 143 |
|
144 |
^ |
|
145 |
'/* |
|
9576 | 146 |
* $','Header','$ |
147 |
* |
|
9493 | 148 |
* DO NOT EDIT |
9576 | 149 |
* automagically generated from the projectDefinition: ',self name,'. |
9493 | 150 |
*/ |
151 |
#define __INDIRECTVMINITCALLS__ |
|
152 |
#include <stc.h> |
|
153 |
#define INIT_TEXT_SECT /* as nothing */ |
|
154 |
#ifdef WIN32 |
|
155 |
# pragma codeseg INITCODE "INITCODE" |
|
156 |
#else /* not WIN32 */ |
|
157 |
# if defined(__GNUC__) && !!defined(NO_SECTION_ATTRIBUTES) |
|
158 |
# if (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || __GNUC__ > 2 |
|
159 |
# undef INIT_TEXT_SECT |
|
160 |
# define INIT_TEXT_SECT __attribute__((section(".stxitext"))) |
|
161 |
# endif |
|
162 |
# endif /* not GNUC */ |
|
163 |
#endif /* not WIN32 */ |
|
164 |
#ifdef INIT_TEXT_SECT |
|
165 |
extern void _%(LIBRARY_NAME)_Init() INIT_TEXT_SECT; |
|
166 |
#endif |
|
167 |
void _%(LIBRARY_NAME)_Init(pass, __pRT__, snd) |
|
168 |
OBJ snd; struct __vmData__ *__pRT__; { |
|
169 |
__BEGIN_PACKAGE2__("%(LIBRARY_NAME)", _%(LIBRARY_NAME)_Init, "%(PACKAGE)"); |
|
170 |
%(CLASSES) |
|
171 |
%(EXTENSION) |
|
172 |
__END_PACKAGE__(); |
|
173 |
}' |
|
174 |
||
175 |
"Created: / 08-08-2006 / 12:40:45 / fm" |
|
176 |
"Modified: / 08-08-2006 / 19:33:01 / fm" |
|
9576 | 177 |
"Modified: / 18-08-2006 / 12:57:02 / cg" |
178 |
! |
|
179 |
||
180 |
lib_dot_rc |
|
181 |
||
182 |
^ |
|
183 |
'/*------------------------------------------------------------------------ |
|
184 |
* $','Header','$ |
|
185 |
* |
|
186 |
* DO NOT EDIT |
|
187 |
* automagically generated from the projectDefinition: ',self name,'. |
|
188 |
*------------------------------------------------------------------------*/ |
|
189 |
||
190 |
// #if (__BORLANDC__ < 0x0550) |
|
191 |
// #include <ver.h> |
|
192 |
// #endif |
|
193 |
||
194 |
VS_VERSION_INFO VERSIONINFO |
|
195 |
FILEVERSION %(FILEVERSION) |
|
196 |
PRODUCTVERSION %(PRODUCTVERSION) |
|
197 |
FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE |
|
198 |
FILEFLAGS VS_FF_PRERELEASE | VS_FF_SPECIALBUILD |
|
199 |
FILEOS VOS_NT_WINDOWS32 |
|
200 |
FILETYPE %(FILETYPE) |
|
201 |
FILESUBTYPE VS_USER_DEFINED |
|
202 |
||
203 |
BEGIN |
|
204 |
BLOCK "StringFileInfo" |
|
205 |
BEGIN |
|
206 |
BLOCK "040904E4" |
|
207 |
BEGIN |
|
208 |
VALUE "CompanyName", %(COMPANYNAME) |
|
209 |
VALUE "FileDescription", "Smalltalk/X Additional Developer Basic Classes Library\0" |
|
210 |
VALUE "FileVersion", "5.2.8.1\0" |
|
211 |
VALUE "InternalName", "libbasic3\0" |
|
212 |
VALUE "LegalCopyright", "Copyright eXept Software AG 1998-2006\0" |
|
213 |
VALUE "ProductName", "Smalltalk/X\0" |
|
214 |
VALUE "ProductVersion", "5.2.8.1\0" |
|
215 |
END |
|
216 |
||
217 |
END |
|
218 |
||
219 |
BLOCK "VarFileInfo" |
|
220 |
BEGIN // Language | Translation |
|
221 |
VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual |
|
222 |
END |
|
223 |
END |
|
224 |
' |
|
225 |
||
226 |
"Created: / 17-08-2006 / 19:37:50 / cg" |
|
227 |
"Modified: / 18-08-2006 / 12:57:09 / cg" |
|
9493 | 228 |
! |
229 |
||
230 |
make_dot_proto |
|
231 |
||
232 |
^ |
|
9576 | 233 |
'# $','Header','$ |
234 |
# |
|
235 |
# DO NOT EDIT |
|
236 |
# automagically generated from the projectDefinition: ',self name,'. |
|
237 |
# |
|
9493 | 238 |
# Warning: once you modify this file, do not rerun |
9576 | 239 |
# stmkmp or projectDefinition-build again - otherwise, your changes are lost. |
9493 | 240 |
# |
241 |
# The Makefile as generated by this Make.proto supports the following targets: |
|
242 |
# make - compile all st-files to a classLib |
|
243 |
# make clean - clean all temp files |
|
244 |
# make clobber - clean all |
|
9576 | 245 |
# |
246 |
# This file contains definitions for Unix based platforms. |
|
9493 | 247 |
|
248 |
# |
|
249 |
# position (of this package) in directory hierarchy: |
|
250 |
# (must point to ST/X top directory, for tools and includes) |
|
251 |
TOP=%(TOP) |
|
252 |
||
253 |
||
254 |
# subdirectories where targets are to be made: |
|
255 |
SUBDIRS=%(SUBDIRECTORIES) |
|
256 |
||
257 |
||
258 |
# subdirectories where Makefiles are to be made: |
|
259 |
# (only define if different from SUBDIRS) |
|
260 |
# ALLSUBDIRS= |
|
261 |
||
262 |
||
263 |
# if your embedded C code requires any system includes, |
|
264 |
# add the path(es) here:, |
|
265 |
# ********** OPTIONAL: MODIFY the next lines *** |
|
266 |
# LOCALINCLUDES=-Ifoo -Ibar |
|
267 |
LOCALINCLUDES=%(LOCAL_INCLUDES) |
|
268 |
||
269 |
||
270 |
# if you need any additional defines for embedded C code, |
|
271 |
# add them here:, |
|
272 |
# ********** OPTIONAL: MODIFY the next lines *** |
|
273 |
# LOCALDEFINES=-Dfoo -Dbar -DDEBUG |
|
274 |
LOCALDEFINES=%(LOCAL_DEFINES) |
|
275 |
||
276 |
||
9613 | 277 |
STCLOCALOPT=''-package=$(PACKAGE)'' -I. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) %(HEADEROUTPUTARG) %(COMMONSYMFLAG) -varPrefix=$(LIBNAME) |
9493 | 278 |
|
279 |
||
280 |
# ********** OPTIONAL: MODIFY the next line *** |
|
281 |
# additional C-libraries that should be pre-linked with the class-objects |
|
282 |
LD_OBJ_LIBS= |
|
283 |
||
284 |
||
285 |
# ********** OPTIONAL: MODIFY the next line *** |
|
286 |
# additional C targets or libraries should be added below |
|
287 |
LOCAL_EXTRA_TARGETS= |
|
288 |
||
9606 | 289 |
OBJS= $(COMMON_OBJS) $(UNIX_OBJS) |
290 |
||
9626 | 291 |
%(ADDITIONAL_DEFINITIONS) |
292 |
||
9493 | 293 |
all:: preMake classLibRule postMake |
294 |
||
9626 | 295 |
pre_objs:: %(ADDITIONAL_TARGETS) |
296 |
||
297 |
%(ADDITIONAL_RULES) |
|
9493 | 298 |
|
299 |
# add more install actions here |
|
300 |
install:: |
|
301 |
||
302 |
# add more install actions for aux-files (resources) here |
|
303 |
installAux:: |
|
304 |
||
305 |
# add more preMake actions here |
|
306 |
preMake:: |
|
307 |
||
308 |
# add more postMake actions here |
|
309 |
postMake:: cleanjunk |
|
310 |
||
311 |
cleanjunk:: |
|
312 |
||
313 |
clean:: |
|
9576 | 314 |
%(TAB)-rm -f *.o *.H |
9493 | 315 |
|
316 |
clobber:: |
|
9576 | 317 |
%(TAB)-rm -f *.so *.dll |
9493 | 318 |
|
319 |
', |
|
320 |
" |
|
321 |
$(INSTALLBASE):: |
|
9576 | 322 |
%(TAB)@test -d $@ || mkdir $@ |
9493 | 323 |
|
324 |
$(INSTALLBASE)/packages:: $(INSTALLBASE) |
|
9576 | 325 |
%(TAB)@test -d $@ || mkdir $@ |
9493 | 326 |
|
327 |
$(INSTALLBASE)/packages/$(MODULE):: $(INSTALLBASE)/packages |
|
9576 | 328 |
%(TAB)@test -d $@ || mkdir $@ |
9493 | 329 |
|
330 |
$(INSTALLBASE)/packages/$(MODULE)/dapasx:: $(INSTALLBASE)/packages/$(MODULE) |
|
9576 | 331 |
%(TAB)@test -d $@ || mkdir $@ |
9493 | 332 |
|
333 |
$(INSTALLBASE)/packages/$(MODULE)/dapasx/interactiver_editor:: $(INSTALLBASE)/packages/$(MODULE)/dapasx |
|
9576 | 334 |
%(TAB)@test -d $@ || mkdir $@ |
9493 | 335 |
|
336 |
$(INSTALLBASE)/packages/$(MODULE)/$(MODULE_DIR):: $(INSTALLBASE)/packages/$(MODULE) |
|
9576 | 337 |
%(TAB)@test -d $@ || mkdir $@ |
9493 | 338 |
" |
339 |
' |
|
340 |
# ''make depend'' will add dependency info between |
|
341 |
# BEGIN...END below |
|
342 |
# |
|
343 |
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it |
|
344 |
# ENDMAKEDEPEND --- do not remove this line |
|
345 |
||
346 |
' |
|
347 |
||
348 |
"Created: / 08-08-2006 / 20:45:36 / fm" |
|
349 |
"Modified: / 09-08-2006 / 16:50:23 / fm" |
|
9632 | 350 |
"Modified: / 23-08-2006 / 11:07:46 / cg" |
9493 | 351 |
! |
352 |
||
353 |
make_dot_spec |
|
354 |
||
355 |
^ |
|
9576 | 356 |
'# $','Header','$ |
357 |
# |
|
358 |
# DO NOT EDIT |
|
359 |
# automagically generated from the projectDefinition: ',self name,'. |
|
9493 | 360 |
# |
361 |
# Warning: once you modify this file, do not rerun |
|
9576 | 362 |
# stmkmp or projectDefinition-build again - otherwise, your changes are lost. |
9493 | 363 |
# |
9576 | 364 |
# This file contains specifications which are common to all platforms. |
9493 | 365 |
# |
366 |
||
9576 | 367 |
# Do NOT CHANGE THESE DEFINITIONS |
368 |
# (otherwise, ST/X will have a hard time to find out the packages location from its packageID, |
|
369 |
# to find the source code of a class and to find the library for a package) |
|
9493 | 370 |
MODULE=%(MODULE) |
371 |
MODULE_DIR=%(MODULE_DIRECTORY) |
|
9632 | 372 |
PACKAGE=$(MODULE):$(MODULE_DIR) |
9493 | 373 |
LIBNAME=%(LIBRARY_NAME) |
374 |
||
375 |
||
9576 | 376 |
# Argument(s) to the stc compiler (stc --usage). |
9493 | 377 |
# -H. : create header files locally |
378 |
# (if removed, they will be created as common |
|
379 |
# -Pxxx : defines the package |
|
380 |
# -Zxxx : a prefix for variables within the classLib |
|
381 |
# -Dxxx : defines passed to to CC for inline C-code |
|
382 |
# -Ixxx : include path passed to CC for inline C-code |
|
383 |
# +optspace : optimized for space |
|
384 |
# +optspace2 : optimized more for space |
|
385 |
# +optspace3 : optimized even more for space |
|
386 |
# +optinline : generate inline code for some ST constructs |
|
387 |
# +inlineNew : additionally inline new |
|
388 |
# +inlineMath : additionally inline some floatPnt math stuff |
|
389 |
# |
|
390 |
# ********** OPTIONAL: MODIFY the next line(s) *** |
|
391 |
# STCLOCALOPTIMIZATIONS=+optinline +inlineNew |
|
392 |
# STCLOCALOPTIMIZATIONS=+optspace3 |
|
9576 | 393 |
STCLOCALOPTIMIZATIONS=%(STCOPTIMIZATIONOPTIONS) |
9493 | 394 |
|
395 |
||
9576 | 396 |
# Argument(s) to the stc compiler (stc --usage). |
9493 | 397 |
# -warn : no warnings |
398 |
# -warnNonStandard : no warnings about ST/X extensions |
|
399 |
# -warnEOLComments : no warnings about EOL comment extension |
|
400 |
# -warnPrivacy : no warnings about privateClass extension |
|
401 |
# |
|
402 |
# ********** OPTIONAL: MODIFY the next line(s) *** |
|
403 |
# STCWARNINGS=-warn |
|
404 |
# STCWARNINGS=-warnNonStandard |
|
405 |
# STCWARNINGS=-warnEOLComments |
|
9576 | 406 |
STCWARNINGS=%(STCWARNINGOPTIONS) |
407 |
||
9493 | 408 |
%(OBJECTS) |
409 |
' |
|
410 |
||
411 |
"Created: / 08-08-2006 / 19:31:29 / fm" |
|
412 |
"Modified: / 09-08-2006 / 15:10:57 / fm" |
|
9632 | 413 |
"Modified: / 23-08-2006 / 11:07:34 / cg" |
9493 | 414 |
! |
415 |
||
416 |
nt_dot_def |
|
417 |
||
418 |
^ |
|
419 |
'LIBRARY %(LIBRARY_NAME) |
|
420 |
DESCRIPTION %(DESCRIPTION) |
|
421 |
VERSION %(VERSION_NUMBER) |
|
422 |
CODE EXECUTE READ |
|
423 |
DATA READ WRITE |
|
424 |
SECTIONS |
|
425 |
INITCODE READ EXECUTE |
|
426 |
INITDATA READ WRITE |
|
427 |
EXPORTS |
|
428 |
_%(LIBRARY_NAME)_Init @1 |
|
429 |
IMPORTS' |
|
430 |
||
431 |
"Modified: / 08-08-2006 / 19:33:14 / fm" |
|
432 |
! |
|
433 |
||
434 |
nt_dot_mak |
|
435 |
||
436 |
^ |
|
9576 | 437 |
'# $','Header','$ |
438 |
# |
|
439 |
# DO NOT EDIT |
|
440 |
# automagically generated from the projectDefinition: ',self name,'. |
|
9493 | 441 |
# |
442 |
# Warning: once you modify this file, do not rerun |
|
9576 | 443 |
# stmkmp or projectDefinition-build again - otherwise, your changes are lost. |
444 |
# |
|
445 |
# This file contains make rules for the win32 platform (using borland-bcc). |
|
9493 | 446 |
# |
447 |
TOP=%(TOP) |
|
448 |
||
449 |
!!INCLUDE $(TOP)\rules\stdHeader_nt |
|
450 |
||
451 |
!!INCLUDE Make.spec |
|
452 |
||
453 |
LOCALINCLUDES=%(LOCAL_INCLUDES) |
|
454 |
||
9631 | 455 |
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) %(HEADEROUTPUTARG) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) %(COMMONSYMFLAG) -varPrefix=$(LIBNAME) |
9576 | 456 |
RESFILES=%(RESFILENAME) |
9493 | 457 |
|
9626 | 458 |
%(ADDITIONAL_DEFINITIONS) |
459 |
||
9606 | 460 |
OBJS= $(COMMON_OBJS) $(WIN32_OBJS) |
461 |
||
9626 | 462 |
ALL:: %(ADDITIONAL_TARGETS) $(LIBDIR)\$(LIBNAME).lib $(BINDIR)\$(LIBNAME).dll |
9493 | 463 |
|
464 |
!!INCLUDE $(TOP)\rules\stdRules_nt |
|
465 |
||
9626 | 466 |
%(ADDITIONAL_RULES) |
467 |
||
9493 | 468 |
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it |
469 |
# ENDMAKEDEPEND --- do not remove this line |
|
470 |
' |
|
471 |
||
472 |
"Created: / 09-08-2006 / 11:44:20 / fm" |
|
473 |
"Modified: / 09-08-2006 / 19:59:32 / fm" |
|
9632 | 474 |
"Modified: / 23-08-2006 / 11:07:30 / cg" |
9493 | 475 |
! |
476 |
||
477 |
objectLine_make_dot_spec |
|
478 |
||
9633 | 479 |
^' $(OUTDIR)%(CLASSFILE).$(O) \' |
9493 | 480 |
|
481 |
"Created: / 08-08-2006 / 20:16:46 / fm" |
|
9633 | 482 |
"Modified: / 23-08-2006 / 11:11:38 / cg" |
9493 | 483 |
! ! |
484 |
||
9568 | 485 |
!LibraryDefinition class methodsFor:'mappings'! |
9493 | 486 |
|
487 |
bc_dot_def_mappings |
|
9534 | 488 |
^ (super bc_dot_def_mappings) |
9504 | 489 |
at:#'LIBRARY_NAME' put:[ self libraryName ]; |
490 |
yourself |
|
9493 | 491 |
|
492 |
"Created: / 09-08-2006 / 11:17:59 / fm" |
|
9543 | 493 |
"Modified: / 16-08-2006 / 18:19:25 / User" |
9590 | 494 |
"Modified: / 18-08-2006 / 17:14:00 / cg" |
9493 | 495 |
! |
496 |
||
497 |
classLine_libInit_dot_cc_mappings: aClassName |
|
498 |
||
499 |
^Dictionary new |
|
9530 | 500 |
at: #'CLASS' put: [self st2c:aClassName]; |
9493 | 501 |
yourself |
502 |
||
503 |
"Created: / 08-08-2006 / 14:04:00 / fm" |
|
504 |
"Modified: / 09-08-2006 / 18:27:07 / fm" |
|
505 |
! |
|
506 |
||
507 |
extensionLine_libInit_dot_cc_mappings |
|
508 |
||
509 |
^Dictionary new |
|
9629 | 510 |
at: #'LIBRARY_NAME' put: [self st2c:(self package copy asString replaceAny:':/' with:$_)]; |
9493 | 511 |
yourself |
512 |
||
513 |
"Created: / 09-08-2006 / 11:19:59 / fm" |
|
9629 | 514 |
"Modified: / 23-08-2006 / 01:23:40 / cg" |
9493 | 515 |
! |
516 |
||
517 |
libInit_dot_cc_mappings |
|
518 |
||
519 |
^Dictionary new |
|
9543 | 520 |
at: #'LIBRARY_NAME' put: [self libraryName]; |
9493 | 521 |
at: #'PACKAGE' put: [self package]; |
522 |
at: #'CLASSES' put: [self generateClassLines_libInit_dot_cc]; |
|
523 |
at: #'EXTENSION' put: [self generateExtensionLine_libInit_dot_cc]; |
|
524 |
||
525 |
yourself |
|
526 |
||
527 |
"Created: / 09-08-2006 / 11:20:24 / fm" |
|
9543 | 528 |
"Modified: / 16-08-2006 / 18:19:03 / User" |
9493 | 529 |
! |
530 |
||
9576 | 531 |
lib_dot_rc_mappings |
9493 | 532 |
|
533 |
^Dictionary new |
|
9576 | 534 |
at: #'FILEVERSION' put: ['5,2,8,1']; |
535 |
at: #'PRODUCTVERSION' put: ['5,2,8,1']; |
|
536 |
at: #'FILETYPE' put: 'VFT_DLL'; |
|
9493 | 537 |
yourself |
538 |
||
9576 | 539 |
"Created: / 17-08-2006 / 19:35:05 / cg" |
540 |
! |
|
541 |
||
542 |
make_dot_proto_mappings |
|
543 |
^ Dictionary new |
|
544 |
at: #'TAB' put: ( Character tab asString ); |
|
545 |
at: #'TOP' put: ( self unixPathToTop ); |
|
546 |
at: #'SUBDIRECTORIES' put: [self generateSubDirectories]; |
|
547 |
at: #'LOCAL_INCLUDES' put: [self generateUnixLocalIncludes]; |
|
548 |
at: #'LOCAL_DEFINES' put: ''; |
|
549 |
at: #'COMMONSYMFLAG' put: (self commonSymbolsFlag); |
|
9594 | 550 |
at: #'HEADEROUTPUTARG' put: (self headerFileOutputArg); |
9626 | 551 |
at: #'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_make_dot_proto); |
552 |
at: #'ADDITIONAL_RULES' put: (self additionalRules_make_dot_proto); |
|
553 |
at: #'ADDITIONAL_TARGETS' put: (self additionalTargets_make_dot_proto); |
|
9576 | 554 |
yourself |
555 |
||
9493 | 556 |
"Created: / 09-08-2006 / 11:20:45 / fm" |
557 |
"Modified: / 09-08-2006 / 16:44:48 / fm" |
|
9626 | 558 |
"Modified: / 23-08-2006 / 00:00:06 / cg" |
9493 | 559 |
! |
560 |
||
561 |
make_dot_spec_mappings |
|
9576 | 562 |
|d| |
9493 | 563 |
|
9576 | 564 |
d := super make_dot_spec_mappings. |
565 |
d |
|
566 |
at: #'LIBRARY_NAME' put: ( self libraryName ); |
|
9594 | 567 |
at: #'OBJECTS' put: [self generateObjects_make_dot_spec]; |
568 |
yourself. |
|
9576 | 569 |
^ d |
9493 | 570 |
|
571 |
"Created: / 09-08-2006 / 11:21:06 / fm" |
|
9576 | 572 |
"Modified: / 18-08-2006 / 11:45:18 / cg" |
9493 | 573 |
! |
574 |
||
575 |
nt_dot_def_mappings |
|
576 |
||
577 |
^Dictionary new |
|
578 |
at: #'LIBRARY_NAME' put: [self libraryName]; |
|
9679 | 579 |
at: #'DESCRIPTION' put: [self description asString storeString]; |
9493 | 580 |
at: #'VERSION_NUMBER' put: [self versionNumber]; |
581 |
yourself |
|
582 |
||
583 |
"Created: / 09-08-2006 / 11:21:21 / fm" |
|
584 |
! |
|
585 |
||
586 |
nt_dot_mak_mappings |
|
9590 | 587 |
|d resFileName| |
588 |
||
589 |
resFileName := (self package copyFrom:(self package lastIndexOfAny:':/')+1),'.res'. |
|
9493 | 590 |
|
9576 | 591 |
d := super nt_dot_mak_mappings. |
592 |
d |
|
593 |
at: #'LOCAL_INCLUDES' put: [self generateMsdosLocalIncludes]; |
|
594 |
at: #'COMMONSYMFLAG' put: (self commonSymbolsFlag); |
|
9594 | 595 |
at: #'HEADEROUTPUTARG' put: (self headerFileOutputArg); |
596 |
at: #'RESFILENAME' put: resFileName; |
|
9626 | 597 |
at: #'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_nt_dot_mak); |
598 |
at: #'ADDITIONAL_RULES' put: (self additionalRules_nt_dot_mak); |
|
599 |
at: #'ADDITIONAL_TARGETS' put: (self additionalTargets_nt_dot_mak); |
|
9594 | 600 |
yourself. |
9576 | 601 |
^ d. |
9493 | 602 |
|
603 |
"Created: / 09-08-2006 / 11:44:36 / fm" |
|
604 |
"Modified: / 09-08-2006 / 20:00:01 / fm" |
|
9626 | 605 |
"Modified: / 23-08-2006 / 00:00:20 / cg" |
9493 | 606 |
! |
607 |
||
608 |
objectLine_make_dot_spec_mappings: aClassName |
|
609 |
||
610 |
^Dictionary new |
|
9677 | 611 |
at: #'CLASSFILE' put: [|f| f := (Smalltalk classNamed:aClassName) classFilename asFilename withoutSuffix. |
612 |
f := f withoutSuffix. |
|
613 |
f := f baseName. |
|
614 |
f. ]; |
|
9493 | 615 |
yourself |
616 |
||
617 |
"Created: / 08-08-2006 / 20:17:28 / fm" |
|
618 |
"Modified: / 09-08-2006 / 18:26:52 / fm" |
|
619 |
! |
|
620 |
||
9530 | 621 |
st2c:aString |
622 |
^ (aString asString |
|
623 |
copyReplaceString:'_' withString:('_',($_ codePoint printStringRadix:8))) |
|
624 |
replaceAny:':' with:$_ |
|
9493 | 625 |
! ! |
626 |
||
9568 | 627 |
!LibraryDefinition class methodsFor:'mappings support'! |
9493 | 628 |
|
9576 | 629 |
commonSymbolsFlag |
630 |
"some libraries are compiled with COMMONSYMBOLS - |
|
631 |
This saves a lot of space in the generated dll/so files; |
|
632 |
However, it also requires the librun to be rebuilt, whenever one of |
|
633 |
the commonSymbols-libs changes. |
|
634 |
Therefore, NEVER do this for end-user or application libraries; |
|
9632 | 635 |
ONLY do it for a subset of the predefined, eXept-provided standard stx libraries" |
9493 | 636 |
|
9576 | 637 |
( |
638 |
#( |
|
639 |
'stx:libbasic' 'stx:libview' 'stx:libtool' |
|
640 |
'stx:libbasic2' 'stx:libview2' 'stx:libtool2' |
|
641 |
'stx:libbasic3' 'stx:libwidg' 'stx:libhtml' |
|
642 |
'stx:libcomp' 'stx:libwidg2' 'stx:libui' |
|
9596 | 643 |
'stx:libboss' 'stx:libdb' |
9576 | 644 |
) |
645 |
includes:self package) ifTrue:[ |
|
646 |
^ '$(COMMONSYMBOLS)' |
|
647 |
]. |
|
648 |
^ '' |
|
9547 | 649 |
|
9576 | 650 |
"Created: / 18-08-2006 / 13:01:52 / cg" |
9632 | 651 |
"Modified: / 23-08-2006 / 09:48:11 / cg" |
9576 | 652 |
! |
653 |
||
654 |
generateClassLines_libInit_dot_cc |
|
655 |
^ String streamContents:[:s | |
|
9582 | 656 |
|putLineForClassName| |
657 |
||
658 |
putLineForClassName := [:className | |
|
659 |
|newClassLine mappings| |
|
9576 | 660 |
|
9582 | 661 |
mappings := self classLine_libInit_dot_cc_mappings: className. |
662 |
newClassLine := self replaceMappings:mappings in:self classLine_libInit_dot_cc. |
|
663 |
s nextPutLine: newClassLine |
|
664 |
]. |
|
665 |
||
9616 | 666 |
self common_compiled_classNames do:putLineForClassName. |
667 |
||
9622 | 668 |
self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr | |
669 |
(attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[ |
|
670 |
putLineForClassName value:nm. |
|
671 |
]. |
|
672 |
]. |
|
673 |
||
9606 | 674 |
#( |
675 |
('UNIX' #unix) |
|
676 |
('WIN32' #win32) |
|
677 |
('VMS' #vms) |
|
678 |
('BEOS' #beos) |
|
679 |
) pairsDo:[:ifdef :id| |
|
680 |
|classes| |
|
681 |
||
682 |
classes := self compiled_classNamesForArchitecture:id. |
|
683 |
classes notEmpty ifTrue:[ |
|
684 |
s nextPutLine: '#ifdef ',ifdef. |
|
685 |
classes do:putLineForClassName. |
|
686 |
s nextPutLine: '#endif /* ',ifdef,' */'. |
|
687 |
]. |
|
9582 | 688 |
]. |
9493 | 689 |
] |
690 |
||
9576 | 691 |
" |
692 |
bosch_dapasx_datenbasis generateClassLines_libInit_dot_cc |
|
693 |
bosch_dapasx_kernel generateClassLines_libInit_dot_cc |
|
694 |
stx_libbasic3 generateClassLines_libInit_dot_cc |
|
695 |
" |
|
9493 | 696 |
|
697 |
"Created: / 09-08-2006 / 11:21:48 / fm" |
|
9547 | 698 |
"Modified: / 16-08-2006 / 18:52:10 / User" |
9622 | 699 |
"Modified: / 22-08-2006 / 18:25:21 / cg" |
9493 | 700 |
! |
701 |
||
702 |
generateExtensionLine_libInit_dot_cc |
|
9576 | 703 |
|mappings| |
9493 | 704 |
|
9576 | 705 |
^self extensionMethodNames isEmpty |
706 |
ifTrue:[''] |
|
707 |
ifFalse:[ |
|
708 |
mappings := self extensionLine_libInit_dot_cc_mappings. |
|
709 |
self replaceMappings: mappings in: self extensionLine_libInit_dot_cc.] |
|
710 |
||
711 |
" |
|
712 |
DapasXProject generateExtensionLine_libInit_dot_cc |
|
713 |
DapasX_Datenbasis generateExtensionLine_libInit_dot_cc |
|
714 |
" |
|
9493 | 715 |
|
716 |
"Created: / 09-08-2006 / 11:23:34 / fm" |
|
9576 | 717 |
"Modified: / 18-08-2006 / 12:00:18 / cg" |
9493 | 718 |
! |
719 |
||
9503 | 720 |
generateMsdosLocalIncludes |
9576 | 721 |
^ String streamContents:[:s | |
722 |
self searchForProjectsWhichProvideHeaderFiles |
|
723 |
do:[:includeProjectName | |
|
724 |
s nextPutAll:' -I',(self msdosPathToPackage: includeProjectName) |
|
725 |
] |
|
9493 | 726 |
] |
727 |
||
9576 | 728 |
" |
729 |
DapasXProject generateLocalIncludes |
|
730 |
DapasX_Datenbasis generateLocalIncludes |
|
731 |
" |
|
9493 | 732 |
|
733 |
"Created: / 09-08-2006 / 16:46:49 / fm" |
|
9576 | 734 |
"Modified: / 18-08-2006 / 11:58:40 / cg" |
9493 | 735 |
! |
736 |
||
737 |
generateObjects_make_dot_spec |
|
9504 | 738 |
|pivateClassesOf classes| |
9493 | 739 |
|
9606 | 740 |
classes := self compiled_classes_common. |
9504 | 741 |
pivateClassesOf := IdentityDictionary new. |
742 |
classes do:[:each | pivateClassesOf at:each put:(each allPrivateClasses)]. |
|
743 |
||
744 |
classes topologicalSort:[:a :b | |
|
745 |
"/ a must come before b iff: |
|
746 |
"/ b is a subclass of a |
|
747 |
"/ b has a private class which is a subclass of a |
|
748 |
||
749 |
|mustComeBefore pivateClassesOfB| |
|
9533 | 750 |
|
751 |
mustComeBefore := false. |
|
752 |
(a isSharedPool and:[(b sharedPools includes: a name)]) ifTrue:[ |
|
753 |
mustComeBefore := true |
|
754 |
]. |
|
755 |
||
756 |
mustComeBefore := mustComeBefore or:[b isSubclassOf:a]. |
|
9504 | 757 |
pivateClassesOfB := pivateClassesOf at:b. |
758 |
pivateClassesOfB do:[:eachClassInB | |
|
759 |
mustComeBefore := mustComeBefore or:[eachClassInB isSubclassOf:a] |
|
760 |
]. |
|
761 |
mustComeBefore |
|
762 |
]. |
|
763 |
||
764 |
^ String streamContents:[:s | |
|
9606 | 765 |
|putLineForClass sysDepOrNil| |
766 |
||
767 |
putLineForClass := |
|
768 |
[:eachClass | |
|
769 |
|mappings newObjectLine| |
|
770 |
mappings := self objectLine_make_dot_spec_mappings: eachClass name. |
|
771 |
newObjectLine := self replaceMappings: mappings in: self objectLine_make_dot_spec. |
|
772 |
s nextPutLine:newObjectLine. |
|
773 |
]. |
|
9504 | 774 |
|
9606 | 775 |
sysDepOrNil := nil. |
776 |
#( |
|
777 |
('UNIX' #unix) |
|
778 |
('WIN32' #win32) |
|
779 |
('VMS' #vms) |
|
780 |
('BEOS' #beos) |
|
781 |
) pairsDo:[:def :id| |
|
782 |
|depClasses| |
|
783 |
||
784 |
depClasses := self compiled_classesForArchitecture:id. |
|
785 |
depClasses notEmpty ifTrue:[ |
|
786 |
sysDepOrNil := def,'_OBJS'. |
|
787 |
s nextPutLine:sysDepOrNil,'= \'. |
|
788 |
depClasses do:putLineForClass. |
|
789 |
s cr. |
|
790 |
s cr. |
|
791 |
] |
|
9534 | 792 |
]. |
9606 | 793 |
|
794 |
s nextPutLine:'COMMON_OBJS= \'. |
|
795 |
||
796 |
classes do:putLineForClass. |
|
9622 | 797 |
|
798 |
self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr | |
|
799 |
(attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[ |
|
800 |
s nextPutLine:(' ',(Smalltalk fileNameForClass:nm),'.$(O) \'). |
|
801 |
]. |
|
802 |
]. |
|
803 |
||
9534 | 804 |
self extensionMethodNames notEmpty |
805 |
ifTrue:[ |
|
806 |
s nextPutLine:' extensions.$(O) \'. |
|
9606 | 807 |
]. |
808 |
s cr. |
|
9493 | 809 |
] |
810 |
||
9606 | 811 |
" |
812 |
bosch_dapasx_hw_schnittstellen_Definition generateObjects_make_dot_spec |
|
813 |
DapasXProject generateObjects_make_dot_spec |
|
814 |
stx_libbasic3 generateObjects_make_dot_spec |
|
815 |
" |
|
9493 | 816 |
|
817 |
"Created: / 09-08-2006 / 11:24:39 / fm" |
|
9622 | 818 |
"Modified: / 22-08-2006 / 18:23:59 / cg" |
9493 | 819 |
! |
820 |
||
9576 | 821 |
generateSubDirectories |
822 |
^ String streamContents:[:s | |
|
823 |
self subProjects |
|
824 |
do:[:subProjectName | |
|
825 |
s space; nextPutAll:subProjectName |
|
826 |
] |
|
9493 | 827 |
] |
828 |
||
9576 | 829 |
" |
830 |
DapasXProject generateSubDirectories |
|
831 |
DapasX_Datenbasis generateSubDirectories |
|
832 |
" |
|
9493 | 833 |
|
834 |
"Created: / 09-08-2006 / 11:26:59 / fm" |
|
9576 | 835 |
"Modified: / 18-08-2006 / 11:59:32 / cg" |
9493 | 836 |
! |
837 |
||
9503 | 838 |
generateUnixLocalIncludes |
9576 | 839 |
^ String streamContents:[:s | |
840 |
self searchForProjectsWhichProvideHeaderFiles |
|
841 |
do:[:includeProjectName | |
|
842 |
s nextPutAll:' -I',(self unixPathToPackage: includeProjectName) |
|
843 |
] |
|
9503 | 844 |
] |
845 |
||
9576 | 846 |
" |
847 |
DapasXProject generateLocalIncludes |
|
848 |
DapasX_Datenbasis generateLocalIncludes |
|
849 |
" |
|
9503 | 850 |
|
851 |
"Created: / 09-08-2006 / 16:46:49 / fm" |
|
9576 | 852 |
"Modified: / 18-08-2006 / 11:58:45 / cg" |
9594 | 853 |
! |
854 |
||
855 |
headerFileOutputArg |
|
856 |
"all stx stuff goes to the common include directory. |
|
857 |
Everything else is left locally" |
|
858 |
||
859 |
( |
|
860 |
#( |
|
861 |
'stx:libbasic' 'stx:libview' 'stx:libtool' |
|
862 |
'stx:libbasic2' 'stx:libview2' 'stx:libtool2' |
|
863 |
'stx:libbasic3' 'stx:libwidg' 'stx:libhtml' |
|
864 |
'stx:libcomp' 'stx:libwidg2' 'stx:libui' |
|
9596 | 865 |
'stx:libboss' 'stx:libdb' |
9594 | 866 |
) |
867 |
includes:self package) ifTrue:[ |
|
868 |
^ '-H$(INCLUDE)' |
|
869 |
]. |
|
870 |
^ '-H.' |
|
871 |
||
872 |
"Created: / 18-08-2006 / 13:01:52 / cg" |
|
9493 | 873 |
! ! |
874 |
||
9568 | 875 |
!LibraryDefinition class methodsFor:'sanity checks'! |
9493 | 876 |
|
877 |
searchForInconsistencies |
|
878 |
self searchForNeverCompiledSuperclasses. |
|
879 |
||
880 |
" |
|
881 |
self searchForInconsistencies |
|
882 |
DapasX_Datenbasis searchForInconsistencies |
|
883 |
" |
|
884 |
||
885 |
"Created: / 09-08-2006 / 16:30:46 / fm" |
|
886 |
! |
|
887 |
||
888 |
searchForNeverCompiledSuperclasses |
|
9495 | 889 |
self compiled_classesDo:[:includedClass | |
9493 | 890 |
includedClass allSuperclassesDo:[:eachSuperClass | |
891 |
eachSuperClass package == Project noProjectID ifTrue:[ |
|
892 |
self inconsistency:'uncompiled superclass: ' , eachSuperClass name |
|
893 |
]. |
|
894 |
] |
|
895 |
]. |
|
896 |
||
897 |
" |
|
898 |
self searchForNeverCompiledSuperclasses |
|
899 |
DapasX_Datenbasis searchForNeverCompiledSuperclasses |
|
900 |
" |
|
901 |
||
902 |
"Created: / 09-08-2006 / 16:31:54 / fm" |
|
903 |
! ! |
|
904 |
||
9568 | 905 |
!LibraryDefinition class methodsFor:'testing'! |
9558 | 906 |
|
9666 | 907 |
isLibraryDefinition |
908 |
^ self ~~ LibraryDefinition |
|
909 |
||
910 |
" |
|
911 |
stx_libboss isLibraryDefinition |
|
912 |
ProjectDefinition isLibraryDefinition |
|
913 |
LibraryDefinition isLibraryDefinition |
|
914 |
" |
|
915 |
||
916 |
"Created: / 23-08-2006 / 15:17:50 / cg" |
|
917 |
! |
|
918 |
||
9558 | 919 |
isProjectDefinition |
9611 | 920 |
^ self ~~ LibraryDefinition |
9558 | 921 |
|
9612 | 922 |
" |
923 |
stx_libboss isProjectDefinition |
|
924 |
ProjectDefinition isProjectDefinition |
|
925 |
" |
|
926 |
||
9558 | 927 |
"Created: / 17-08-2006 / 14:11:46 / cg" |
9612 | 928 |
"Modified: / 21-08-2006 / 15:50:13 / cg" |
9558 | 929 |
! ! |
930 |
||
9568 | 931 |
!LibraryDefinition class methodsFor:'update description'! |
9493 | 932 |
|
9606 | 933 |
classNamesAndAttributes_code |
9495 | 934 |
^ String streamContents:[:s | |
9606 | 935 |
s nextPutLine:'classNamesAndAttributes'. |
9576 | 936 |
s nextPutLine:' ^ #('. |
9606 | 937 |
s tab; nextPutLine:'"/ <className> or (<className> attributes...)'. |
9576 | 938 |
self searchForClasses do:[:eachClass | |
9606 | 939 |
|attributes specEntry| |
940 |
||
9616 | 941 |
(eachClass isLoaded not or:[eachClass isPrivate not]) ifTrue:[ |
9606 | 942 |
specEntry := self classNamesAndAttributes detect:[:entry | entry first = eachClass name] ifNone:nil. |
9617 | 943 |
specEntry isNil ifTrue:[ |
944 |
eachClass isLoaded ifFalse:[ |
|
945 |
attributes := #( autoload ). |
|
946 |
]. |
|
947 |
] ifFalse:[ |
|
9606 | 948 |
attributes := specEntry copyFrom:2. |
949 |
]. |
|
950 |
||
951 |
s tab. |
|
952 |
attributes isEmptyOrNil ifTrue:[ |
|
953 |
s nextPutAll:eachClass name asString storeString. |
|
954 |
] ifFalse:[ |
|
955 |
s nextPutAll:'('; nextPutAll:eachClass name asString storeString. |
|
9680 | 956 |
attributes do:[:eachAttribute | s nextPutAll:' '. s nextPutAll:eachAttribute storeString.]. |
9606 | 957 |
s nextPutAll:')'. |
958 |
]. |
|
959 |
s cr. |
|
9495 | 960 |
] |
961 |
]. |
|
9606 | 962 |
s nextPutLine:' )' |
9495 | 963 |
]. |
9493 | 964 |
|
965 |
" |
|
9606 | 966 |
stx_libbasic3 classNamesAndAttributes_code |
9493 | 967 |
" |
968 |
||
969 |
"Modified: / 08-08-2006 / 19:24:34 / fm" |
|
9576 | 970 |
"Created: / 17-08-2006 / 21:03:07 / cg" |
9617 | 971 |
"Modified: / 21-08-2006 / 19:16:14 / cg" |
9493 | 972 |
! |
973 |
||
9576 | 974 |
extensionMethodNames_code |
975 |
^ String streamContents:[:s | |
|
976 |
s nextPutLine:'extensionMethodNames'. |
|
977 |
s nextPutLine:' ^ #('. |
|
978 |
self searchForExtensions do:[:eachMethod | |
|
979 |
s nextPutAll:eachMethod mclass name storeString. |
|
980 |
s nextPutAll:' '. |
|
981 |
s nextPutLine: eachMethod selector storeString. |
|
982 |
]. |
|
9606 | 983 |
s nextPutLine:' )' |
9576 | 984 |
]. |
9493 | 985 |
|
986 |
" |
|
9576 | 987 |
self extensionMethodNames_code |
9493 | 988 |
" |
989 |
||
9576 | 990 |
"Created: / 17-08-2006 / 21:21:48 / cg" |
9493 | 991 |
! |
992 |
||
9514 | 993 |
forEachMethodsCodeToCompileDo:aTwoArgBlock |
9586 | 994 |
super forEachMethodsCodeToCompileDo:aTwoArgBlock. |
995 |
||
9514 | 996 |
aTwoArgBlock |
9606 | 997 |
value:self classNamesAndAttributes_code |
9534 | 998 |
value:'description'. |
9514 | 999 |
|
9586 | 1000 |
aTwoArgBlock |
9576 | 1001 |
value: self extensionMethodNames_code |
9534 | 1002 |
value: 'description'. |
9514 | 1003 |
|
1004 |
"Created: / 10-08-2006 / 16:35:47 / cg" |
|
9586 | 1005 |
"Modified: / 18-08-2006 / 16:22:49 / cg" |
9493 | 1006 |
! ! |
1007 |
||
9568 | 1008 |
!LibraryDefinition class methodsFor:'documentation'! |
9493 | 1009 |
|
1010 |
version |
|
9680 | 1011 |
^ '$Header: /cvs/stx/stx/libbasic/LibraryDefinition.st,v 1.49 2006-08-23 20:21:00 cg Exp $' |
9493 | 1012 |
! ! |