LibraryDefinition.st
changeset 9576 9ff741fe7271
parent 9568 7d41a61ebd34
child 9582 8753d32d0969
equal deleted inserted replaced
9575:353ef8cc798f 9576:9ff741fe7271
    37 
    37 
    38 !LibraryDefinition class methodsFor:'defaults'!
    38 !LibraryDefinition class methodsFor:'defaults'!
    39 
    39 
    40 defaultDescription
    40 defaultDescription
    41     ^ 'a classLibrary'
    41     ^ 'a classLibrary'
       
    42 ! !
       
    43 
       
    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 
       
    53     self subclassResponsibility
       
    54 
       
    55     "Created: / 17-08-2006 / 20:52:16 / cg"
    42 ! !
    56 ! !
    43 
    57 
    44 !LibraryDefinition class methodsFor:'file generation'!
    58 !LibraryDefinition class methodsFor:'file generation'!
    45 
    59 
    46 fileNamesToGenerate
    60 fileNamesToGenerate
    48           #('Make.proto' #'generate_make_dot_proto')
    62           #('Make.proto' #'generate_make_dot_proto')
    49           #('Make.spec' #'generate_make_dot_spec')
    63           #('Make.spec' #'generate_make_dot_spec')
    50           #('libInit.cc' #'generate_libInit_dot_cc')
    64           #('libInit.cc' #'generate_libInit_dot_cc')
    51           #('bc.def' #'generate_bc_dot_def')
    65           #('bc.def' #'generate_bc_dot_def')
    52           #('nt.mak' #'generate_nt_dot_mak')
    66           #('nt.mak' #'generate_nt_dot_mak')
       
    67 "
    53           #('nt.def' #'generate_nt_dot_def')
    68           #('nt.def' #'generate_nt_dot_def')
       
    69 "
    54           #('abbrev.stc' #'generate_abbrev_dot_stc') 
    70           #('abbrev.stc' #'generate_abbrev_dot_stc') 
       
    71           #('bmake.bat'  #'generate_bmake_dot_mak') 
    55      )
    72      )
       
    73 
       
    74     "Modified: / 17-08-2006 / 20:03:00 / cg"
    56 ! !
    75 ! !
    57 
    76 
    58 !LibraryDefinition class methodsFor:'file templates'!
    77 !LibraryDefinition class methodsFor:'file templates'!
    59 
    78 
    60 bc_dot_def
    79 bc_dot_def
       
    80     "the template code for the bc.def file"
    61 
    81 
    62 ^ 
    82 ^ 
    63 'LIBRARY        %(LIBRARY_NAME)
    83 'LIBRARY        %(LIBRARY_NAME)
    64 DESCRIPTION     %(DESCRIPTION)
    84 DESCRIPTION     %(DESCRIPTION)
    65 CODE            PRELOAD MOVEABLE DISCARDABLE
    85 CODE            PRELOAD MOVEABLE DISCARDABLE
    69     __%(C_LIBRARY_NAME)_Init     @1
    89     __%(C_LIBRARY_NAME)_Init     @1
    70 '
    90 '
    71 
    91 
    72     "Created: / 08-08-2006 / 12:26:58 / fm"
    92     "Created: / 08-08-2006 / 12:26:58 / fm"
    73     "Modified: / 08-08-2006 / 19:32:27 / fm"
    93     "Modified: / 08-08-2006 / 19:32:27 / fm"
       
    94     "Modified: / 17-08-2006 / 20:05:24 / cg"
    74 !
    95 !
    75 
    96 
    76 classLine_libInit_dot_cc
    97 classLine_libInit_dot_cc
    77 
    98 
    78 ^'_%(CLASS)_Init(pass,__pRT__,snd);'
    99 ^'_%(CLASS)_Init(pass,__pRT__,snd);'
    88     "Created: / 08-08-2006 / 15:48:56 / fm"
   109     "Created: / 08-08-2006 / 15:48:56 / fm"
    89     "Modified: / 08-08-2006 / 19:32:33 / fm"
   110     "Modified: / 08-08-2006 / 19:32:33 / fm"
    90 !
   111 !
    91 
   112 
    92 libInit_dot_cc
   113 libInit_dot_cc
       
   114     "the template code for the libInit.cc file"
    93 
   115 
    94 ^ 
   116 ^ 
    95 '/*
   117 '/*
       
   118  * $','Header','$
       
   119  *
    96  * DO NOT EDIT 
   120  * DO NOT EDIT 
    97  * automagically generated from Make.proto (by make libInit.cc)
   121  * automagically generated from the projectDefinition: ',self name,'.
    98  */
   122  */
    99 #define __INDIRECTVMINITCALLS__
   123 #define __INDIRECTVMINITCALLS__
   100 #include <stc.h>
   124 #include <stc.h>
   101 #define INIT_TEXT_SECT /* as nothing */
   125 #define INIT_TEXT_SECT /* as nothing */
   102 #ifdef WIN32
   126 #ifdef WIN32
   120 __END_PACKAGE__();
   144 __END_PACKAGE__();
   121 }'
   145 }'
   122 
   146 
   123     "Created: / 08-08-2006 / 12:40:45 / fm"
   147     "Created: / 08-08-2006 / 12:40:45 / fm"
   124     "Modified: / 08-08-2006 / 19:33:01 / fm"
   148     "Modified: / 08-08-2006 / 19:33:01 / fm"
       
   149     "Modified: / 18-08-2006 / 12:57:02 / cg"
       
   150 !
       
   151 
       
   152 lib_dot_rc
       
   153 
       
   154 ^ 
       
   155 '/*------------------------------------------------------------------------
       
   156  * $','Header','$                                                            
       
   157  *
       
   158  * DO NOT EDIT 
       
   159  * automagically generated from the projectDefinition: ',self name,'.
       
   160  *------------------------------------------------------------------------*/
       
   161 
       
   162 // #if (__BORLANDC__ < 0x0550)
       
   163 // #include <ver.h>
       
   164 // #endif
       
   165 
       
   166 VS_VERSION_INFO VERSIONINFO
       
   167   FILEVERSION     %(FILEVERSION)
       
   168   PRODUCTVERSION  %(PRODUCTVERSION)
       
   169   FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
       
   170   FILEFLAGS       VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
       
   171   FILEOS          VOS_NT_WINDOWS32
       
   172   FILETYPE        %(FILETYPE)
       
   173   FILESUBTYPE     VS_USER_DEFINED
       
   174 
       
   175 BEGIN
       
   176   BLOCK "StringFileInfo"
       
   177   BEGIN
       
   178     BLOCK "040904E4"
       
   179     BEGIN
       
   180       VALUE "CompanyName", %(COMPANYNAME)
       
   181       VALUE "FileDescription", "Smalltalk/X Additional Developer Basic Classes Library\0"
       
   182       VALUE "FileVersion", "5.2.8.1\0"
       
   183       VALUE "InternalName", "libbasic3\0"
       
   184       VALUE "LegalCopyright", "Copyright eXept Software AG 1998-2006\0"
       
   185       VALUE "ProductName", "Smalltalk/X\0"
       
   186       VALUE "ProductVersion", "5.2.8.1\0"
       
   187     END
       
   188 
       
   189   END
       
   190 
       
   191   BLOCK "VarFileInfo"
       
   192   BEGIN                               //  Language   |    Translation
       
   193     VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
       
   194   END
       
   195 END
       
   196 '
       
   197 
       
   198     "Created: / 17-08-2006 / 19:37:50 / cg"
       
   199     "Modified: / 18-08-2006 / 12:57:09 / cg"
   125 !
   200 !
   126 
   201 
   127 make_dot_proto
   202 make_dot_proto
   128 
   203 
   129 ^ 
   204 ^ 
   130 '#
   205 '# $','Header','$
       
   206 #
       
   207 # DO NOT EDIT 
       
   208 # automagically generated from the projectDefinition: ',self name,'.
       
   209 #
   131 # Warning: once you modify this file, do not rerun
   210 # Warning: once you modify this file, do not rerun
   132 # stmkmp again - otherwise, your changes are lost.
   211 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
   133 #
   212 #
   134 # The Makefile as generated by this Make.proto supports the following targets:
   213 # The Makefile as generated by this Make.proto supports the following targets:
   135 #    make         - compile all st-files to a classLib
   214 #    make         - compile all st-files to a classLib
   136 #    make install - install the classLib in /opt/smalltalk/...
       
   137 #    make clean   - clean all temp files
   215 #    make clean   - clean all temp files
   138 #    make clobber - clean all
   216 #    make clobber - clean all
       
   217 #
       
   218 # This file contains definitions for Unix based platforms.
   139 
   219 
   140 #
   220 #
   141 # position (of this package) in directory hierarchy:
   221 # position (of this package) in directory hierarchy:
   142 # (must point to ST/X top directory, for tools and includes)
   222 # (must point to ST/X top directory, for tools and includes)
   143 TOP=%(TOP)
   223 TOP=%(TOP)
   206 postMake:: cleanjunk
   286 postMake:: cleanjunk
   207 
   287 
   208 cleanjunk::
   288 cleanjunk::
   209 
   289 
   210 clean::
   290 clean::
   211         -rm -f *.o *.H
   291 %(TAB)-rm -f *.o *.H
   212 
   292 
   213 clobber::
   293 clobber::
   214         -rm -f *.so *.dll
   294 %(TAB)-rm -f *.so *.dll
   215 
   295 
   216 ',
   296 ',
   217 "
   297 "
   218 $(INSTALLBASE)::
   298 $(INSTALLBASE)::
   219         @test -d $@ || mkdir $@
   299 %(TAB)@test -d $@ || mkdir $@
   220 
   300 
   221 $(INSTALLBASE)/packages:: $(INSTALLBASE)
   301 $(INSTALLBASE)/packages:: $(INSTALLBASE)
   222         @test -d $@ || mkdir $@
   302 %(TAB)@test -d $@ || mkdir $@
   223 
   303 
   224 $(INSTALLBASE)/packages/$(MODULE):: $(INSTALLBASE)/packages
   304 $(INSTALLBASE)/packages/$(MODULE):: $(INSTALLBASE)/packages
   225         @test -d $@ || mkdir $@
   305 %(TAB)@test -d $@ || mkdir $@
   226 
   306 
   227 $(INSTALLBASE)/packages/$(MODULE)/dapasx:: $(INSTALLBASE)/packages/$(MODULE)
   307 $(INSTALLBASE)/packages/$(MODULE)/dapasx:: $(INSTALLBASE)/packages/$(MODULE)
   228         @test -d $@ || mkdir $@
   308 %(TAB)@test -d $@ || mkdir $@
   229 
   309 
   230 $(INSTALLBASE)/packages/$(MODULE)/dapasx/interactiver_editor:: $(INSTALLBASE)/packages/$(MODULE)/dapasx
   310 $(INSTALLBASE)/packages/$(MODULE)/dapasx/interactiver_editor:: $(INSTALLBASE)/packages/$(MODULE)/dapasx
   231         @test -d $@ || mkdir $@
   311 %(TAB)@test -d $@ || mkdir $@
   232 
   312 
   233 $(INSTALLBASE)/packages/$(MODULE)/$(MODULE_DIR):: $(INSTALLBASE)/packages/$(MODULE)
   313 $(INSTALLBASE)/packages/$(MODULE)/$(MODULE_DIR):: $(INSTALLBASE)/packages/$(MODULE)
   234         @test -d $@ || mkdir $@
   314 %(TAB)@test -d $@ || mkdir $@
   235 "
   315 "
   236 '
   316 '
   237 # if other things are to be compiled,
   317 # if other things are to be compiled,
   238 # add target definitions here,
   318 # add target definitions here,
   239 # and list them in LOCAL_EXTRA_TARGETS above.
   319 # and list them in LOCAL_EXTRA_TARGETS above.
   240 # (care for make syntax - TABS are required in the actions)
   320 # (care for make syntax - TABS are required in the actions)
   241 # foo:  foo.o
   321 # foo:  foo.o
   242 #         $(CC) -o foo foo.o
   322 #%(TAB)$(CC) -o foo foo.o
   243 
   323 
   244 # ''make depend'' will add dependency info between
   324 # ''make depend'' will add dependency info between
   245 # BEGIN...END below
   325 # BEGIN...END below
   246 #
   326 #
   247 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
   327 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
   249 
   329 
   250 '
   330 '
   251 
   331 
   252     "Created: / 08-08-2006 / 20:45:36 / fm"
   332     "Created: / 08-08-2006 / 20:45:36 / fm"
   253     "Modified: / 09-08-2006 / 16:50:23 / fm"
   333     "Modified: / 09-08-2006 / 16:50:23 / fm"
       
   334     "Modified: / 18-08-2006 / 12:57:19 / cg"
   254 !
   335 !
   255 
   336 
   256 make_dot_spec
   337 make_dot_spec
   257 
   338 
   258 ^ 
   339 ^ 
   259 '#
   340 '# $','Header','$
       
   341 #
       
   342 # DO NOT EDIT 
       
   343 # automagically generated from the projectDefinition: ',self name,'.
       
   344 #
       
   345 # Warning: once you modify this file, do not rerun
       
   346 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
       
   347 #
   260 # This file contains specifications which are common to all platforms.
   348 # This file contains specifications which are common to all platforms.
   261 #
   349 #
   262 # Warning: once you modify this file, do not rerun
   350 
   263 # stmkmp again - otherwise, your changes are lost.
   351 # Do NOT CHANGE THESE DEFINITIONS
   264 #
   352 # (otherwise, ST/X will have a hard time to find out the packages location from its packageID,
   265 # This file contains definitions for Unix based platforms.
   353 #  to find the source code of a class and to find the library for a package)
   266 #
       
   267 
       
   268 
       
   269 
       
   270 
       
   271 # module and directory-in-module;
       
   272 # these should correspond to the directory hierarchy
       
   273 # location (otherwise, ST/X will have a hard time to
       
   274 # find out the packages location from its packageID)
       
   275 MODULE=%(MODULE)
   354 MODULE=%(MODULE)
   276 MODULE_DIR=%(MODULE_DIRECTORY)
   355 MODULE_DIR=%(MODULE_DIRECTORY)
   277 
       
   278 
       
   279 # the name of your classLibrary:
       
   280 # ********** REQUIRED: CHECK the next line ***
       
   281 LIBNAME=%(LIBRARY_NAME)
   356 LIBNAME=%(LIBRARY_NAME)
   282 
       
   283 
       
   284 # the package is stored as an ID in classes and methods
       
   285 # to identify code belonging to this project.
       
   286 # It also specifies the position in the source repository
       
   287 # and directory tree, when packages are loaded by packageID.
       
   288 # ********** REQUIRED: CHECK the next line ***
       
   289 PACKAGE=$(MODULE):$(MODULE_DIR)
   357 PACKAGE=$(MODULE):$(MODULE_DIR)
   290 
   358 
   291 
   359 
   292 # Argument(s) to the stc compiler.
   360 # Argument(s) to the stc compiler (stc --usage).
   293 #  -H.         : create header files locally
   361 #  -H.         : create header files locally
   294 #                (if removed, they will be created as common
   362 #                (if removed, they will be created as common
   295 #  -Pxxx       : defines the package
   363 #  -Pxxx       : defines the package
   296 #  -Zxxx       : a prefix for variables within the classLib
   364 #  -Zxxx       : a prefix for variables within the classLib
   297 #  -Dxxx       : defines passed to to CC for inline C-code
   365 #  -Dxxx       : defines passed to to CC for inline C-code
   304 #  +inlineMath : additionally inline some floatPnt math stuff
   372 #  +inlineMath : additionally inline some floatPnt math stuff
   305 #
   373 #
   306 # ********** OPTIONAL: MODIFY the next line(s) ***
   374 # ********** OPTIONAL: MODIFY the next line(s) ***
   307 # STCLOCALOPTIMIZATIONS=+optinline +inlineNew
   375 # STCLOCALOPTIMIZATIONS=+optinline +inlineNew
   308 # STCLOCALOPTIMIZATIONS=+optspace3
   376 # STCLOCALOPTIMIZATIONS=+optspace3
   309 STCLOCALOPTIMIZATIONS=+optspace3
   377 STCLOCALOPTIMIZATIONS=%(STCOPTIMIZATIONOPTIONS)
   310 
   378 
   311 
   379 
   312 # Argument(s) to the stc compiler.
   380 # Argument(s) to the stc compiler (stc --usage).
   313 #  -warn            : no warnings
   381 #  -warn            : no warnings
   314 #  -warnNonStandard : no warnings about ST/X extensions
   382 #  -warnNonStandard : no warnings about ST/X extensions
   315 #  -warnEOLComments : no warnings about EOL comment extension
   383 #  -warnEOLComments : no warnings about EOL comment extension
   316 #  -warnPrivacy     : no warnings about privateClass extension
   384 #  -warnPrivacy     : no warnings about privateClass extension
   317 #
   385 #
   318 # ********** OPTIONAL: MODIFY the next line(s) ***
   386 # ********** OPTIONAL: MODIFY the next line(s) ***
   319 # STCWARNINGS=-warn
   387 # STCWARNINGS=-warn
   320 # STCWARNINGS=-warnNonStandard
   388 # STCWARNINGS=-warnNonStandard
   321 # STCWARNINGS=-warnEOLComments
   389 # STCWARNINGS=-warnEOLComments
   322 STCWARNINGS=
   390 STCWARNINGS=%(STCWARNINGOPTIONS)
       
   391 
   323 
   392 
   324 OBJS= \
   393 OBJS= \
   325 %(OBJECTS)
   394 %(OBJECTS)
   326 '
   395 '
   327 
   396 
   328     "Created: / 08-08-2006 / 19:31:29 / fm"
   397     "Created: / 08-08-2006 / 19:31:29 / fm"
   329     "Modified: / 09-08-2006 / 15:10:57 / fm"
   398     "Modified: / 09-08-2006 / 15:10:57 / fm"
       
   399     "Modified: / 18-08-2006 / 12:56:33 / cg"
   330 !
   400 !
   331 
   401 
   332 nt_dot_def
   402 nt_dot_def
   333 
   403 
   334 ^
   404 ^
   348 !
   418 !
   349 
   419 
   350 nt_dot_mak
   420 nt_dot_mak
   351 
   421 
   352 ^
   422 ^
   353 '#
   423 '# $','Header','$
       
   424 #
       
   425 # DO NOT EDIT 
       
   426 # automagically generated from the projectDefinition: ',self name,'.
       
   427 #
       
   428 # Warning: once you modify this file, do not rerun
       
   429 # stmkmp or projectDefinition-build again - otherwise, your changes are lost.
       
   430 #
   354 # This file contains make rules for the win32 platform (using borland-bcc).
   431 # This file contains make rules for the win32 platform (using borland-bcc).
   355 #
   432 #
   356 # Warning: once you modify this file, do not rerun
       
   357 # stmkmp again - otherwise, your changes are lost.
       
   358 #
       
   359 TOP=%(TOP)
   433 TOP=%(TOP)
   360 
   434 
   361 !!INCLUDE $(TOP)\rules\stdHeader_nt
   435 !!INCLUDE $(TOP)\rules\stdHeader_nt
   362 
   436 
   363 !!INCLUDE Make.spec
   437 !!INCLUDE Make.spec
   364 
   438 
   365 LOCALINCLUDES=%(LOCAL_INCLUDES)
   439 LOCALINCLUDES=%(LOCAL_INCLUDES)
   366 
   440 
   367 STCLOCALOPT=-I. $(LOCALINCLUDES) -H. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) ''-P$(PACKAGE)'' ''-Z$(LIBNAME)'' $(COMMONSYMFLAG) $(INITCODESEPFLAG)
   441 STCLOCALOPT=-I. $(LOCALINCLUDES) -H. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) ''-P$(PACKAGE)'' ''-Z$(LIBNAME)'' $(COMMONSYMFLAG) $(INITCODESEPFLAG)
   368 
   442 RESFILENAME=$(LIBNAME).res
   369 ALL::  $(LIBJPEG) $(LIBDIR)\$(LIBNAME).lib $(BINDIR)\$(LIBNAME).dll
   443 RESFILES=%(RESFILENAME)
       
   444 
       
   445 ALL::  $(LIBDIR)\$(LIBNAME).lib $(BINDIR)\$(LIBNAME).dll
   370 
   446 
   371 !!INCLUDE $(TOP)\rules\stdRules_nt
   447 !!INCLUDE $(TOP)\rules\stdRules_nt
   372 
   448 
   373 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
   449 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
   374 # ENDMAKEDEPEND --- do not remove this line
   450 # ENDMAKEDEPEND --- do not remove this line
   375 '
   451 '
   376 
   452 
   377     "Created: / 09-08-2006 / 11:44:20 / fm"
   453     "Created: / 09-08-2006 / 11:44:20 / fm"
   378     "Modified: / 09-08-2006 / 19:59:32 / fm"
   454     "Modified: / 09-08-2006 / 19:59:32 / fm"
       
   455     "Modified: / 18-08-2006 / 12:57:32 / cg"
   379 !
   456 !
   380 
   457 
   381 objectLine_make_dot_spec
   458 objectLine_make_dot_spec
   382 
   459 
   383 ^'    %(CLASS).$(O) \'
   460 ^'    %(CLASS).$(O) \'
   428 
   505 
   429     "Created: / 09-08-2006 / 11:20:24 / fm"
   506     "Created: / 09-08-2006 / 11:20:24 / fm"
   430     "Modified: / 16-08-2006 / 18:19:03 / User"
   507     "Modified: / 16-08-2006 / 18:19:03 / User"
   431 !
   508 !
   432 
   509 
       
   510 lib_dot_rc_mappings
       
   511 
       
   512 ^Dictionary new
       
   513     at: #'FILEVERSION' put: ['5,2,8,1'];
       
   514     at: #'PRODUCTVERSION' put: ['5,2,8,1'];
       
   515     at: #'FILETYPE' put: 'VFT_DLL';
       
   516     yourself
       
   517 
       
   518     "Created: / 17-08-2006 / 19:35:05 / cg"
       
   519 !
       
   520 
   433 make_dot_proto_mappings
   521 make_dot_proto_mappings
   434 
   522     ^ Dictionary new
   435 ^Dictionary new
   523         at: #'TAB' put: ( Character tab asString );
   436     at: #'TOP' put: [self unixPathToTop];
   524         at: #'TOP' put: ( self unixPathToTop );
   437     at: #'SUBDIRECTORIES' put: [self generateSubDirectories];
   525         at: #'SUBDIRECTORIES' put: [self generateSubDirectories];
   438     at: #'LOCAL_INCLUDES' put: [self generateUnixLocalIncludes];
   526         at: #'LOCAL_INCLUDES' put: [self generateUnixLocalIncludes];
   439     at: #'LOCAL_DEFINES' put: [''];
   527         at: #'LOCAL_DEFINES' put: '';
   440     yourself
   528         at: #'COMMONSYMFLAG' put: (self commonSymbolsFlag);
       
   529         yourself
   441 
   530 
   442     "Created: / 09-08-2006 / 11:20:45 / fm"
   531     "Created: / 09-08-2006 / 11:20:45 / fm"
   443     "Modified: / 09-08-2006 / 16:44:48 / fm"
   532     "Modified: / 09-08-2006 / 16:44:48 / fm"
       
   533     "Modified: / 18-08-2006 / 12:59:05 / cg"
   444 !
   534 !
   445 
   535 
   446 make_dot_spec_mappings
   536 make_dot_spec_mappings
   447 
   537     |d|
   448 ^Dictionary new
   538 
   449     at: #'MODULE' put: [self module];  
   539     d := super make_dot_spec_mappings.
   450     at: #'MODULE_DIRECTORY' put: [self moduleDirectory];  
   540     d
   451     at: #'LIBRARY_NAME' put: [self libraryName];
   541         at: #'LIBRARY_NAME' put: ( self libraryName );
   452     at: #'OBJECTS' put: [self generateObjects_make_dot_spec];  
   542         at: #'OBJECTS' put: [self generateObjects_make_dot_spec].
   453     yourself
   543     ^ d
   454 
   544 
   455     "Created: / 09-08-2006 / 11:21:06 / fm"
   545     "Created: / 09-08-2006 / 11:21:06 / fm"
       
   546     "Modified: / 18-08-2006 / 11:45:18 / cg"
   456 !
   547 !
   457 
   548 
   458 nt_dot_def_mappings
   549 nt_dot_def_mappings
   459 
   550 
   460 ^Dictionary new
   551 ^Dictionary new
   465 
   556 
   466     "Created: / 09-08-2006 / 11:21:21 / fm"
   557     "Created: / 09-08-2006 / 11:21:21 / fm"
   467 !
   558 !
   468 
   559 
   469 nt_dot_mak_mappings
   560 nt_dot_mak_mappings
   470 
   561     |d|
   471 ^Dictionary new
   562 
   472     at: #'TOP' put: [self msdosPathToTop]; 
   563     d := super nt_dot_mak_mappings.
   473     at: #'LOCAL_INCLUDES' put: [self generateMsdosLocalIncludes];
   564     d
   474     yourself
   565         at: #'LOCAL_INCLUDES' put: [self generateMsdosLocalIncludes];
       
   566         at: #'COMMONSYMFLAG' put: (self commonSymbolsFlag);
       
   567         at: #'RESFILENAME' put:'RESFILENAME'.
       
   568     ^ d.
   475 
   569 
   476     "Created: / 09-08-2006 / 11:44:36 / fm"
   570     "Created: / 09-08-2006 / 11:44:36 / fm"
   477     "Modified: / 09-08-2006 / 20:00:01 / fm"
   571     "Modified: / 09-08-2006 / 20:00:01 / fm"
       
   572     "Modified: / 18-08-2006 / 13:03:50 / cg"
   478 !
   573 !
   479 
   574 
   480 objectLine_make_dot_spec_mappings: aClassName
   575 objectLine_make_dot_spec_mappings: aClassName
   481 
   576 
   482 ^Dictionary new                                               
   577 ^Dictionary new                                               
   493                 replaceAny:':' with:$_
   588                 replaceAny:':' with:$_
   494 ! !
   589 ! !
   495 
   590 
   496 !LibraryDefinition class methodsFor:'mappings support'!
   591 !LibraryDefinition class methodsFor:'mappings support'!
   497 
   592 
       
   593 commonSymbolsFlag
       
   594     "some libraries are compiled with COMMONSYMBOLS -
       
   595      This saves a lot of space in the generated dll/so files;
       
   596      However, it also requires the librun to be rebuilt, whenever one of
       
   597      the commonSymbols-libs changes.
       
   598      Therefore, NEVER do this for end-user or application libraries;
       
   599      ONLY do it for a subset of the predefined, exept-provided standard stx libraries"
       
   600 
       
   601     (
       
   602         #(
       
   603             'stx:libbasic'        'stx:libview'         'stx:libtool'   
       
   604             'stx:libbasic2'       'stx:libview2'        'stx:libtool2'
       
   605             'stx:libbasic3'       'stx:libwidg'         'stx:libhtml'
       
   606             'stx:libcomp'         'stx:libwidg2'        'stx:libui'
       
   607         )
       
   608     includes:self package) ifTrue:[
       
   609         ^ '$(COMMONSYMBOLS)'
       
   610     ].
       
   611     ^ ''
       
   612 
       
   613     "Created: / 18-08-2006 / 13:01:52 / cg"
       
   614 !
       
   615 
   498 generateClassLines_libInit_dot_cc
   616 generateClassLines_libInit_dot_cc
   499 
   617     ^ String streamContents:[:s |
   500 ^self compiled_classNames 
   618         self compiled_classNames do:[:className | 
   501     inject: ''
   619             |newClassLine mappings|
   502     into:[:classLines :className | 
   620 
   503         |newClassLine mappings|
   621             mappings := self classLine_libInit_dot_cc_mappings: className.
   504 
   622             newClassLine := self replaceMappings:mappings in:self classLine_libInit_dot_cc.
   505         mappings := self classLine_libInit_dot_cc_mappings: className.
   623             s nextPutLine: newClassLine 
   506         newClassLine := self replaceMappings: mappings  
   624         ]
   507                             in: self classLine_libInit_dot_cc.
       
   508         classLines concatenate: newClassLine 
       
   509                     and: String lf
       
   510     ]
   625     ]
   511 
   626 
   512 "
   627     "
   513     bosch_dapasx_datenbasis  generateClassLines_libInit_dot_cc
   628      bosch_dapasx_datenbasis  generateClassLines_libInit_dot_cc
   514     bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
   629      bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
   515 
   630      stx_libbasic3 generateClassLines_libInit_dot_cc
   516 "
   631     "
   517 
   632 
   518     "Created: / 09-08-2006 / 11:21:48 / fm"
   633     "Created: / 09-08-2006 / 11:21:48 / fm"
   519     "Modified: / 16-08-2006 / 18:52:10 / User"
   634     "Modified: / 16-08-2006 / 18:52:10 / User"
       
   635     "Modified: / 18-08-2006 / 11:59:44 / cg"
   520 !
   636 !
   521 
   637 
   522 generateExtensionLine_libInit_dot_cc
   638 generateExtensionLine_libInit_dot_cc
   523       |mappings|
   639     |mappings|
   524 ^self extensionMethodNames isEmpty
   640 
   525     ifTrue:['']
   641     ^self extensionMethodNames isEmpty
   526     ifFalse:[ mappings := self extensionLine_libInit_dot_cc_mappings.
   642         ifTrue:['']
   527               self replaceMappings: mappings  
   643         ifFalse:[ 
   528                             in: self extensionLine_libInit_dot_cc.]
   644             mappings := self extensionLine_libInit_dot_cc_mappings.
   529 "
   645             self replaceMappings: mappings in: self extensionLine_libInit_dot_cc.]
   530     DapasXProject generateExtensionLine_libInit_dot_cc
   646 
   531     DapasX_Datenbasis generateExtensionLine_libInit_dot_cc
   647     "
   532 
   648      DapasXProject generateExtensionLine_libInit_dot_cc
   533 "
   649      DapasX_Datenbasis generateExtensionLine_libInit_dot_cc
       
   650     "
   534 
   651 
   535     "Created: / 09-08-2006 / 11:23:34 / fm"
   652     "Created: / 09-08-2006 / 11:23:34 / fm"
       
   653     "Modified: / 18-08-2006 / 12:00:18 / cg"
   536 !
   654 !
   537 
   655 
   538 generateMsdosLocalIncludes
   656 generateMsdosLocalIncludes
   539 
   657     ^ String streamContents:[:s |
   540 ^self searchForProjectsWhichProvideHeaderFiles
   658         self searchForProjectsWhichProvideHeaderFiles
   541     inject: ''
   659             do:[:includeProjectName |    
   542     into:[:objectLines :includeProjectName |    
   660                 s nextPutAll:' -I',(self msdosPathToPackage: includeProjectName) 
   543             objectLines , ' -I',(self msdosPathToPackage: includeProjectName) 
   661             ]
   544     ]
   662     ]
   545 
   663 
   546 "
   664     "
   547     DapasXProject generateLocalIncludes
   665      DapasXProject generateLocalIncludes
   548     DapasX_Datenbasis generateLocalIncludes
   666      DapasX_Datenbasis generateLocalIncludes
   549 
   667     "
   550 "
       
   551 
   668 
   552     "Created: / 09-08-2006 / 16:46:49 / fm"
   669     "Created: / 09-08-2006 / 16:46:49 / fm"
       
   670     "Modified: / 18-08-2006 / 11:58:40 / cg"
   553 !
   671 !
   554 
   672 
   555 generateObjects_make_dot_spec 
   673 generateObjects_make_dot_spec 
   556     |pivateClassesOf classes|
   674     |pivateClassesOf classes|
   557 
   675 
   600 "
   718 "
   601 
   719 
   602     "Created: / 09-08-2006 / 11:24:39 / fm"
   720     "Created: / 09-08-2006 / 11:24:39 / fm"
   603 !
   721 !
   604 
   722 
   605 generatePrerequisiteProjectsPaths
   723 generateSubDirectories
   606 
   724     ^ String streamContents:[:s |
   607 ^self prerequisiteProjects
   725         self subProjects 
   608     inject: ''
   726             do:[:subProjectName |    
   609     into:[:objectLines :subProjectName |    
   727                 s space; nextPutAll:subProjectName
   610         objectLines
   728             ]
   611             concatenate: String lf
       
   612             and: ' -I'
       
   613             and: subProjectName 
       
   614     ]
   729     ]
   615 
   730 
   616 "
   731     "
   617     DapasXProject generatePrerequisiteProjectsPaths
   732      DapasXProject generateSubDirectories
   618     DapasX_Datenbasis generatePrerequisiteProjectsPaths
   733      DapasX_Datenbasis generateSubDirectories
   619 
   734     "
   620 "
   735 
   621 
   736     "Created: / 09-08-2006 / 11:26:59 / fm"
   622     "Created: / 09-08-2006 / 12:34:20 / fm"
   737     "Modified: / 18-08-2006 / 11:59:32 / cg"
   623 !
   738 !
   624 
   739 
   625 generateSubDirectories
   740 generateUnixLocalIncludes
   626 
   741     ^ String streamContents:[:s |
   627 ^self subProjects 
   742         self searchForProjectsWhichProvideHeaderFiles
   628     inject: ''
   743             do:[:includeProjectName |    
   629     into:[:objectLines :subProjectName |    
   744                 s nextPutAll:' -I',(self unixPathToPackage: includeProjectName) 
   630         objectLines
   745             ]
   631             concatenate: ' '
       
   632             and: subProjectName 
       
   633     ]
   746     ]
   634 
   747 
   635 "
   748     "
   636     DapasXProject generateSubDirectories
   749      DapasXProject generateLocalIncludes
   637     DapasX_Datenbasis generateSubDirectories
   750      DapasX_Datenbasis generateLocalIncludes
   638 
   751     "
   639 "
       
   640 
       
   641     "Created: / 09-08-2006 / 11:26:59 / fm"
       
   642 !
       
   643 
       
   644 generateUnixLocalIncludes
       
   645 
       
   646 ^self searchForProjectsWhichProvideHeaderFiles
       
   647     inject: ''
       
   648     into:[:objectLines :includeProjectName |    
       
   649             objectLines , ' -I',(self unixPathToPackage: includeProjectName) 
       
   650     ]
       
   651 
       
   652 "
       
   653     DapasXProject generateLocalIncludes
       
   654     DapasX_Datenbasis generateLocalIncludes
       
   655 
       
   656 "
       
   657 
   752 
   658     "Created: / 09-08-2006 / 16:46:49 / fm"
   753     "Created: / 09-08-2006 / 16:46:49 / fm"
   659 !
   754     "Modified: / 18-08-2006 / 11:58:45 / cg"
   660 
       
   661 prerequisiteProjectsOrdered
       
   662 
       
   663 ^self prerequisiteProjects asSortedCollection:[:a :b | ]
       
   664 
       
   665 "
       
   666     DapasXProject generatePrerequisiteProjectsPaths
       
   667     DapasX_Datenbasis generatePrerequisiteProjectsPaths
       
   668 
       
   669 "
       
   670 
       
   671     "Created: / 09-08-2006 / 13:12:01 / fm"
       
   672 ! !
   755 ! !
   673 
   756 
   674 !LibraryDefinition class methodsFor:'sanity checks'!
   757 !LibraryDefinition class methodsFor:'sanity checks'!
   675 
   758 
   676 searchForInconsistencies
   759 searchForInconsistencies
   709     "Created: / 17-08-2006 / 14:11:46 / cg"
   792     "Created: / 17-08-2006 / 14:11:46 / cg"
   710 ! !
   793 ! !
   711 
   794 
   712 !LibraryDefinition class methodsFor:'update description'!
   795 !LibraryDefinition class methodsFor:'update description'!
   713 
   796 
   714 autoloadedClassNamesGeneratedCodeToCompile
   797 autoloadedClassNames_code
   715     |classNamesCode|
   798     |compiled excluded|
   716 
   799 
   717    classNamesCode := 'autoloaded_classNames', String lf, '"This method has been automatically generated"'.
   800     compiled := self compiled_classNames.
   718    classNamesCode := classNamesCode, String lf, self autoloadedClassNamesGeneratedString. 
   801     excluded := self excluded_classNames.
   719    ^classNamesCode
       
   720 
       
   721 "
       
   722     DapasXProject autoloadedClassNamesGeneratedCodeToCompile
       
   723     DapasX_Datenbasis autoloadedClassNamesGeneratedCodeToCompile
       
   724 
       
   725 "
       
   726 
       
   727     "Created: / 08-08-2006 / 15:07:06 / fm"
       
   728 !
       
   729 
       
   730 autoloadedClassNamesGeneratedString
       
   731     | |
       
   732 
       
   733     ^ String streamContents:[:s |
   802     ^ String streamContents:[:s |
   734         s nextPutAll:'^#('.
   803         s nextPutLine:'autoloaded_classNames'.
   735         self searchForClassesWithProject do:[:eachClass |
   804         s nextPutLine:'    ^ #('.
       
   805         self searchForClasses do:[:eachClass |
   736             (false "eachClass wasAutoloaded" or:[ eachClass isLoaded not ]) ifTrue:[
   806             (false "eachClass wasAutoloaded" or:[ eachClass isLoaded not ]) ifTrue:[
   737                 (self compiled_classNames includes:eachClass name) ifFalse:[
   807                 (compiled includes:eachClass name) ifFalse:[
   738                     (self excluded_classNames includes:eachClass name) ifFalse:[
   808                     (excluded includes:eachClass name) ifFalse:[
   739                         s cr; nextPutAll:eachClass name asString storeString
   809                         s nextPutAll:'        '; nextPutLine:eachClass name asString storeString
   740                     ]
   810                     ]
   741                 ]
   811                 ]
   742              ]
   812              ]
   743         ].
   813         ].
   744         s cr; nextPutAll:')'
   814         s nextPutLine:')'
   745     ].
   815     ].
   746 
   816 
   747 "
   817     "
   748     bosch_dapasx_interactiver_editor autoloadedClassNamesGeneratedString
   818      DapasXProject autoloadedClassNames_code
   749 "
   819      DapasX_Datenbasis autoloadedClassNames_code
   750 
   820      stx_libbasic3 autoloadedClassNames_code
   751     "Created: / 08-08-2006 / 15:00:17 / fm"
   821     "
   752     "Modified: / 08-08-2006 / 19:24:34 / fm"
   822 
   753     "Modified: / 11-08-2006 / 14:01:23 / cg"
   823     "Created: / 17-08-2006 / 20:55:35 / cg"
   754 !
   824 !
   755 
   825 
   756 classNamesGeneratedCodeToCompile
   826 classNames_code
   757     |classNamesCode|
   827     |autoloaded excluded|
   758 
   828 
   759    classNamesCode := 'compiled_classNames', String lf, '"This method has been automatically generated"'.
   829     autoloaded := self autoloaded_classNames.
   760    classNamesCode := classNamesCode, String lf, self classNamesGeneratedString. 
   830     excluded := self excluded_classNames.
   761    ^classNamesCode
       
   762 
       
   763 "
       
   764     DapasXProject Datenbasis
       
   765     DapasX_Datenbasis Datenbasis
       
   766 
       
   767 "
       
   768 
       
   769     "Created: / 08-08-2006 / 15:07:06 / fm"
       
   770 !
       
   771 
       
   772 classNamesGeneratedString
       
   773     | |
       
   774 
   831 
   775     ^ String streamContents:[:s |
   832     ^ String streamContents:[:s |
   776         s nextPutAll:'^#('.
   833         s nextPutLine:'compiled_classNames'.
   777         self searchForClassesWithProject do:[:eachClass |
   834         s nextPutLine:'    ^ #('.
   778             (self autoloaded_classNames includes:eachClass name) ifFalse:[ 
   835         self searchForClasses do:[:eachClass |
   779                 (self excluded_classNames includes:eachClass name) ifFalse:[ 
   836             eachClass isPrivate ifFalse:[
   780                     s cr; nextPutAll:eachClass name asString storeString
   837                 (autoloaded includes:eachClass name) ifFalse:[ 
       
   838                     (excluded includes:eachClass name) ifFalse:[ 
       
   839                         s nextPutAll:'        '; nextPutLine:eachClass name asString storeString
       
   840                      ]
   781                  ]
   841                  ]
   782              ]
   842              ]
   783         ].
   843         ].
   784         s cr; nextPutAll:')'
   844         s nextPutLine:')'
   785     ].
   845     ].
   786 
   846 
   787 "
   847 "
   788     bosch_dapasx_interactiver_editor classNamesGeneratedString
   848     bosch_dapasx_interactiver_editor classNamesGeneratedString
   789 "
   849 "
   790 
   850 
   791     "Created: / 08-08-2006 / 15:00:17 / fm"
       
   792     "Modified: / 08-08-2006 / 19:24:34 / fm"
   851     "Modified: / 08-08-2006 / 19:24:34 / fm"
   793     "Modified: / 11-08-2006 / 14:01:26 / cg"
   852     "Created: / 17-08-2006 / 21:03:07 / cg"
   794 !
   853 !
   795 
   854 
   796 extensionMethodNamesGeneratedCodeToCompile
   855 extensionMethodNames_code
   797     |extensionMethodNamesCode|
       
   798 
       
   799    extensionMethodNamesCode := 'extensionMethodNames', String lf, '"This method has been automatically generated"'.
       
   800    extensionMethodNamesCode := extensionMethodNamesCode, String lf, self extensionMethodNamesGeneratedString. 
       
   801    ^extensionMethodNamesCode
       
   802 
       
   803 "
       
   804     DapasXProject extensionMethodNamesGeneratedCodeToCompile
       
   805     DapasX_Datenbasis extensionMethodNamesGeneratedCodeToCompile
       
   806 
       
   807 "
       
   808 
       
   809     "Created: / 08-08-2006 / 18:54:42 / fm"
       
   810 !
       
   811 
       
   812 extensionMethodNamesGeneratedString
       
   813     |generatedString |
   856     |generatedString |
   814 
   857 
   815     generatedString := self searchForExtensionsWithProject 
   858     ^ String streamContents:[:s |
   816             inject: '^#(' 
   859         s nextPutLine:'extensionMethodNames'.
   817             into:[:string :each | 
   860         s nextPutLine:'    ^ #('.
   818                 string, String lf, each mclass name asString storeString, ' #', each name ]. 
   861         self searchForExtensions do:[:eachMethod | 
   819     ^generatedString, String lf, ')'
   862             s nextPutAll:eachMethod mclass name storeString. 
   820 
   863             s nextPutAll:' '.
   821 "
   864             s nextPutLine: eachMethod selector storeString. 
   822     self extensionMethodNamesGeneratedString
   865         ]. 
   823 "
   866         s nextPutLine:')'
   824 
   867     ].
   825     "Created: / 08-08-2006 / 18:55:04 / fm"
   868 
       
   869 "
       
   870     self extensionMethodNames_code
       
   871 "
       
   872 
       
   873     "Created: / 17-08-2006 / 21:21:48 / cg"
   826 !
   874 !
   827 
   875 
   828 forEachMethodsCodeToCompileDo:aTwoArgBlock
   876 forEachMethodsCodeToCompileDo:aTwoArgBlock
   829     aTwoArgBlock 
   877     aTwoArgBlock 
   830         value:self autoloadedClassNamesGeneratedCodeToCompile
   878         value:self autoloadedClassNames_code
   831         value:'description'.
   879         value:'description'.
   832 
   880 
   833    aTwoArgBlock
   881    aTwoArgBlock
   834         value: self classNamesGeneratedCodeToCompile
   882         value: self classNames_code
   835         value: 'description'.
   883         value: 'description'.
   836 
   884 
   837    (self theMetaclass includesSelector:#excluded_classNames) ifFalse:[
   885    (self theMetaclass includesSelector:#excluded_classNames) ifFalse:[
   838        aTwoArgBlock
   886        aTwoArgBlock
   839             value: 'excluded_classNames\^ #()' withCRs
   887             value: 'excluded_classNames\^ #()' withCRs
   840             value: 'description'.
   888             value: 'description'.
   841    ].
   889    ].
   842 
   890 
   843    aTwoArgBlock 
   891    aTwoArgBlock 
   844         value: self extensionMethodNamesGeneratedCodeToCompile
   892         value: self extensionMethodNames_code
   845         value: 'description'.
   893         value: 'description'.
   846 
   894 
   847 "/   aTwoArgBlock 
   895    aTwoArgBlock 
   848 "/        value: 'description ^''bla bla'''
   896         value: self description_code
   849 "/        value: 'description'
   897         value: 'description - project information'.
   850 
   898 
   851     "Created: / 10-08-2006 / 16:35:47 / cg"
   899     "Created: / 10-08-2006 / 16:35:47 / cg"
       
   900     "Modified: / 17-08-2006 / 21:22:26 / cg"
   852 ! !
   901 ! !
   853 
   902 
   854 !LibraryDefinition class methodsFor:'documentation'!
   903 !LibraryDefinition class methodsFor:'documentation'!
   855 
   904 
   856 version
   905 version
   857     ^ '$Header: /cvs/stx/stx/libbasic/LibraryDefinition.st,v 1.22 2006-08-17 15:24:38 cg Exp $'
   906     ^ '$Header: /cvs/stx/stx/libbasic/LibraryDefinition.st,v 1.23 2006-08-18 11:07:23 cg Exp $'
   858 ! !
   907 ! !