ProjectDefinition.st
branchjv
changeset 18059 b882507b9fdf
parent 18057 8da7c39a6322
parent 15223 c90e1ab942ea
child 18061 2643e3012a13
--- a/ProjectDefinition.st	Tue Apr 30 10:54:00 2013 +0100
+++ b/ProjectDefinition.st	Tue May 21 21:58:09 2013 +0100
@@ -623,7 +623,7 @@
     ].
     rel := self topRelativePathToPackage_unix:aPackageID.
     (rel startsWith:'stx/') ifTrue:[
-        ^ '$(TOP)/', (rel copyFrom:'stx/' size + 1).
+        ^ '$(TOP)/', (rel withoutPrefix:'stx/').
     ] ifFalse:[
         ^ '$(TOP)/../', rel
     ]
@@ -650,7 +650,7 @@
 
     rel := self topRelativePathToPackage_win32:aPackageID.
     (rel startsWith:'stx\') ifTrue:[
-        ^ '$(TOP)\', (rel copyFrom:'stx\' size + 1).
+        ^ '$(TOP)\', (rel withoutPrefix:'stx\').
     ] ifFalse:[
         ^ '$(TOP)\..\', rel
     ]
@@ -782,7 +782,7 @@
 
     rel := (self topRelativePathToPackage_unix:toPackageID).
     (rel startsWith:'stx/') ifTrue:[
-        ^ '$(TOP)', (rel copyFrom:'stx/' size)
+        ^ '$(TOP)', (rel copyFrom:'stx/' size) "/ notice: the slash remains
     ].
 
     ^ '$(TOP)/../', rel.
@@ -2832,9 +2832,10 @@
 
 productName
     "Returns a product name which will appear in <lib>.rc.
-     Under win32, this is placed into the dlls file-info"
-
-    |m|
+     Under win32, this is placed into the dlls file-info.
+     This method is usually redefined in a concrete application definition"
+
+    |m nm|
 
     m := self module.
     m = 'stx' ifTrue:[
@@ -2843,10 +2844,20 @@
     m = 'exept' ifTrue:[
         ^ 'eXept addOns'
     ].
-    Error handle:[:ex |
+    SubclassResponsibilityError handle:[:ex |
+        "/ we get this error, if the concrete class has not yet redefined
+        "/ startupClassName.
+        self breakPoint:#cg.
         ^ 'ProductName'
     ] do:[
-        ^ self startupClassName
+        nm := self startupClassName.
+        (nm endsWith:'Startup') ifTrue:[
+            ^ nm copyButLast:'Startup' size.
+        ].
+        (nm endsWith:'Start') ifTrue:[
+            ^ nm copyButLast:'Start' size.
+        ].
+        ^ nm
     ].
 
     "Modified: / 08-11-2007 / 16:45:14 / cg"
@@ -2993,12 +3004,16 @@
     dict := OrderedDictionary withKeysAndValues:#(
           'Make.spec'         #'generate_make_dot_spec'
           'Make.proto'        #'generate_make_dot_proto'
-          'Makefile'          #'generate_makefile'          "/ for unix
+          "/ cg: changed to generate Makefile.init instead of Makefile,
+          "/     because macosx files are not case sensitive.
+          "/ You will have to execute make -f Makefile.init initially
+          "/ 'Makefile'          #'generate_makefile'          "/ for unix
+          'Makefile.init'     #'generate_makefile'          "/ for unix
           'bc.mak'            #'generate_bc_dot_mak'        "/ for windows
           'abbrev.stc'        #'generate_abbrev_dot_stc'
           'bmake.bat'         #'generate_bmake_dot_mak'     "/ for bcc32
           'vcmake.bat'        #'generate_vcmake_dot_mak'    "/ for msvc
-          'lccmake.bat'       #'generate_lccmake_dot_mak'   "/ for lcc
+          'lccmake.bat'       #'generate_lccmake_dot_mak'   "/ for lcc - not supported at the moment
           "/ 'tccmake.bat'       #'generate_tccmake_dot_mak'     "/ for tcc - cannot link at the moment
           'mingwmake.bat'     #'generate_mingwmake_dot_mak'   "/ for mingw
     ).
@@ -4730,6 +4745,12 @@
 # My only task is to generate the real makefile and call make again.
 # Thereafter, I am no longer used and needed.
 #
+# MACOSX caveat:
+#   as filenames are not case sensitive (in a default setup),
+#   we cannot use tha above trick. Therefore, this file is now named
+#   "Makefile.init", and you have to execute "make -f Makefile.init" to
+#   get the initial makefile.  This is now also done by the toplevel CONFIG
+#   script.
 
 .PHONY: run
 
@@ -7466,11 +7487,11 @@
 !ProjectDefinition class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.463 2013-04-26 09:04:54 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.468 2013-05-07 15:28:48 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.463 2013-04-26 09:04:54 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.468 2013-05-07 15:28:48 cg Exp $'
 !
 
 version_HG
@@ -7479,7 +7500,7 @@
 !
 
 version_SVN
-    ^ '§ Id: ProjectDefinition.st 10645 2011-06-09 15:28:45Z vranyj1  §'
+    ^ '$ Id: ProjectDefinition.st 10645 2011-06-09 15:28:45Z vranyj1  $'
 ! !