- Timestamp:
- 07/13/06 22:52:40 (2 years ago)
- Location:
- trunk/m2
- Files:
-
- 6 modified
-
m2 (modified) (7 diffs)
-
m2_cygwin.r (modified) (3 diffs)
-
m2_linux.r (modified) (5 diffs)
-
m2_macx.r (modified) (2 diffs)
-
m2_sun.r (modified) (3 diffs)
-
m2_visualc.r (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/m2/m2
r155 r227 1 #!/usr/ local/bin/rebol -qs1 #!/usr/bin/rebol -qs 2 2 3 3 REBOL [ … … 84 84 target_env: context [ 85 85 name: none 86 uc_name: none 86 87 output_file: none 87 88 link_cxx: false … … 114 115 rule_text: none 115 116 116 rule_makeobj: func [cc flags obj src /local uc] [117 rule_makeobj: func [cc flags obj src] [ 117 118 ; Default to GNU 118 uc: uppercase copy name 119 rejoin [ "^(tab)$(" cc ") -c $(" uc flags ") -o " obj 120 " $(" uc "_INCPATH) " src ] 119 rejoin [ "^(tab)$(" cc ") -c $(" uc_name flags ") -o " obj 120 " $(" uc_name "_INCPATH) " src ] 121 121 ] 122 122 makerule_cxx: func [obj src] [ link_cxx: true … … 382 382 m2/add_target (make exe_target [ 383 383 name: basename 384 uc_name: uppercase copy basename 384 385 cfg: make m2/configuration [] 385 386 ]) blk … … 391 392 m2/add_target (make lib_target [ 392 393 name: basename 394 uc_name: uppercase copy basename 393 395 cfg: make m2/configuration [] 394 396 ]) blk … … 401 403 m2/add_target (make shlib_target [ 402 404 name: basename 405 uc_name: uppercase copy basename 403 406 cfg: make m2/configuration [] 404 407 ]) blk … … 410 413 m2/add_target (make rule_target [ 411 414 name: basename 415 uc_name: uppercase copy basename 412 416 cfg: make m2/configuration [] 413 417 ]) blk -
trunk/m2/m2_cygwin.r
r93 r227 180 180 ] 181 181 182 macro_text: function [] [uc] 183 [ 184 uc: uppercase name 185 182 macro_text: func [] 183 [ 186 184 emit [ 187 uc "_CFLAGS = " menv_cflags " " gnu_string "-D" defines eol188 uc "_CXXFLAGS = $(" uc"_CFLAGS) " menv_cxxflags eol189 uc "_INCPATH = " gnu_string "-I" include_paths eol190 uc "_LFLAGS = " menv_lflags eol191 uc "_LIBS = " gnu_string "-L" link_paths " "185 uc_name "_CFLAGS = " menv_cflags " " gnu_string "-D" defines eol 186 uc_name "_CXXFLAGS = $(" uc_name "_CFLAGS) " menv_cxxflags eol 187 uc_name "_INCPATH = " gnu_string "-I" include_paths eol 188 uc_name "_LFLAGS = " menv_lflags eol 189 uc_name "_LIBS = " gnu_string "-L" link_paths " " 192 190 gnu_string "-l" link_libs eol 193 191 ] … … 195 193 ;if cfg/qt [ 196 194 ; emit [ 197 ; uc "_SRCMOC = " expand_list_gnu srcmoc_files eol198 ; uc "_OBJMOC = " expand_list_gnu objmoc_files eol195 ; uc_name "_SRCMOC = " expand_list_gnu srcmoc_files eol 196 ; uc_name "_OBJMOC = " expand_list_gnu objmoc_files eol 199 197 ; ] 200 198 ;] 201 199 202 200 emit [ 203 ;uc "_HEADERS = " expand_list_gnu header_files eol204 uc "_SOURCES = " expand_list_gnu source_files eol205 uc "_OBJECTS = " expand_list_gnu object_files eol201 ;uc_name "_HEADERS = " expand_list_gnu header_files eol 202 uc_name "_SOURCES = " expand_list_gnu source_files eol 203 uc_name "_OBJECTS = " expand_list_gnu object_files eol 206 204 ] 207 205 ] … … 210 208 ; TODO: if cfg/qt [ "rm -f $(_SRCMOC)" ] 211 209 212 dist: function [] [uc] [ 213 uc: uppercase name 214 rejoin [" $(" uc "_SOURCES)" ] 215 ] 216 217 rule_text: function [] [uc] 218 [ 219 uc: uppercase name 210 dist: function [] [uc_name] [ 211 uc_name: uppercase name 212 rejoin [" $(" uc_name "_SOURCES)" ] 213 ] 214 215 rule_text: func [] 216 [ 220 217 emit [ eol output_file ": " obj_macro m2/local_libs link_libs 221 {^/^(tab)$(LINK) -o $@ $(} uc {_LFLAGS) } obj_macro222 { $(} uc {_LIBS)} eol218 {^/^(tab)$(LINK) -o $@ $(} uc_name {_LFLAGS) } obj_macro 219 { $(} uc_name {_LIBS)} eol 223 220 ] 224 221 ] -
trunk/m2/m2_linux.r
r93 r227 105 105 config: 106 106 [ 107 obj_macro: rejoin [ "$(" u ppercasename "_OBJECTS)" ]107 obj_macro: rejoin [ "$(" uc_name "_OBJECTS)" ] 108 108 109 109 cflags {-pipe} … … 168 168 ] 169 169 170 macro_text: function [] [uc] 171 [ 172 uc: uppercase name 173 170 macro_text: func [] 171 [ 174 172 emit [ 175 uc "_CFLAGS = " menv_cflags " " gnu_string "-D" defines eol176 uc "_CXXFLAGS = $(" uc"_CFLAGS) " menv_cxxflags eol177 uc "_INCPATH = " gnu_string "-I" include_paths eol178 uc "_LFLAGS = " menv_lflags eol179 uc "_LIBS = " gnu_string "-L" link_paths " "173 uc_name "_CFLAGS = " menv_cflags " " gnu_string "-D" defines eol 174 uc_name "_CXXFLAGS = $(" uc_name "_CFLAGS) " menv_cxxflags eol 175 uc_name "_INCPATH = " gnu_string "-I" include_paths eol 176 uc_name "_LFLAGS = " menv_lflags eol 177 uc_name "_LIBS = " gnu_string "-L" link_paths " " 180 178 gnu_string "-l" link_libs eol 181 179 ] … … 183 181 ;if cfg/qt [ 184 182 ; emit [ 185 ; uc "_SRCMOC = " expand_list_gnu srcmoc_files eol186 ; uc "_OBJMOC = " expand_list_gnu objmoc_files eol183 ; uc_name "_SRCMOC = " expand_list_gnu srcmoc_files eol 184 ; uc_name "_OBJMOC = " expand_list_gnu objmoc_files eol 187 185 ; ] 188 186 ;] 189 187 190 188 emit [ 191 ;uc "_HEADERS = " expand_list_gnu header_files eol192 uc "_SOURCES = " expand_list_gnu source_files eol193 uc "_OBJECTS = " expand_list_gnu object_files eol189 ;uc_name "_HEADERS = " expand_list_gnu header_files eol 190 uc_name "_SOURCES = " expand_list_gnu source_files eol 191 uc_name "_OBJECTS = " expand_list_gnu object_files eol 194 192 ] 195 193 ] … … 198 196 ; TODO: if cfg/qt [ "rm -f $(_SRCMOC)" ] 199 197 200 dist: function [] [uc] [ 201 uc: uppercase name 202 rejoin [" $(" uc "_SOURCES)" ] 203 ] 204 205 rule_text: function [] [uc] 206 [ 207 uc: uppercase name 198 dist: func [] [ 199 rejoin [" $(" uc_name "_SOURCES)" ] 200 ] 201 202 rule_text: func [] 203 [ 208 204 emit [ eol output_file ": " obj_macro m2/local_libs link_libs 209 205 {^/^(tab)$(} 210 206 either link_cxx ["LINK_CXX"]["LINK"] 211 {) -o $@ $(} uc {_LFLAGS) } obj_macro212 { $(} uc {_LIBS)} eol207 {) -o $@ $(} uc_name {_LFLAGS) } obj_macro 208 { $(} uc_name {_LIBS)} eol 213 209 ] 214 210 ] … … 222 218 ] 223 219 224 rule_text: function [] [] 225 [ 226 emit [ eol output_file ": " obj_macro 227 "^/^(tab)ar rc $@ " obj_macro " $(" uppercase name "_LFLAGS)" 228 "^/^(tab)ranlib $@^/" 220 rule_text: func [] 221 [ 222 emit [eol output_file ": " obj_macro] 223 emit either empty? link_libs [[ 224 "^/^-ar rc $@ " obj_macro " $(" uc_name "_LFLAGS)" 225 ]] [[ 226 ; Concatenate other libraries. 227 "^/^-ld -Ur -o " objdir name "lib.o $^^ $(" uc_name 228 "_LIBS) $(" uc_name "_LFLAGS)" 229 "^/^-ar rc $@ " objdir name "lib.o" 230 ]] 231 emit "^/^-ranlib $@^/" 232 if cfg/release [ 233 emit "^-strip -d $@^/" 229 234 ] 230 235 ] -
trunk/m2/m2_macx.r
r155 r227 95 95 built_obj_rule: none 96 96 97 uc_name: none98 99 97 cfg_bundle: none 100 98 cfg_universal: none … … 104 102 config: 105 103 [ 106 uc_name: uppercase copy name107 108 104 obj_macro: rejoin [ "$(" uc_name "_OBJECTS)" ] 109 105 -
trunk/m2/m2_sun.r
r93 r227 167 167 ] 168 168 169 macro_text: function [] [uc] 170 [ 171 uc: uppercase name 172 169 macro_text: func [] 170 [ 173 171 emit [ 174 uc "_CFLAGS = " menv_cflags " " gnu_string "-D" defines eol175 uc "_CXXFLAGS = $(" uc"_CFLAGS) " menv_cxxflags eol176 uc "_INCPATH = " gnu_string "-I" include_paths eol177 uc "_LFLAGS = " menv_lflags eol178 uc "_LIBS = " gnu_string "-L" link_paths " "172 uc_name "_CFLAGS = " menv_cflags " " gnu_string "-D" defines eol 173 uc_name "_CXXFLAGS = $(" uc_name "_CFLAGS) " menv_cxxflags eol 174 uc_name "_INCPATH = " gnu_string "-I" include_paths eol 175 uc_name "_LFLAGS = " menv_lflags eol 176 uc_name "_LIBS = " gnu_string "-L" link_paths " " 179 177 gnu_string "-l" link_libs eol 180 178 ] … … 182 180 ;if cfg/qt [ 183 181 ; emit [ 184 ; uc "_SRCMOC = " expand_list_gnu srcmoc_files eol185 ; uc "_OBJMOC = " expand_list_gnu objmoc_files eol182 ; uc_name "_SRCMOC = " expand_list_gnu srcmoc_files eol 183 ; uc_name "_OBJMOC = " expand_list_gnu objmoc_files eol 186 184 ; ] 187 185 ;] 188 186 189 187 emit [ 190 ;uc "_HEADERS = " expand_list_gnu header_files eol191 uc "_SOURCES = " expand_list_gnu source_files eol192 uc "_OBJECTS = " expand_list_gnu object_files eol188 ;uc_name "_HEADERS = " expand_list_gnu header_files eol 189 uc_name "_SOURCES = " expand_list_gnu source_files eol 190 uc_name "_OBJECTS = " expand_list_gnu object_files eol 193 191 ] 194 192 ] … … 197 195 ; TODO: if cfg/qt [ "rm -f $(_SRCMOC)" ] 198 196 199 dist: function [] [uc] [ 200 uc: uppercase name 201 rejoin [" $(" uc "_SOURCES)" ] 202 ] 203 204 rule_text: function [] [uc] 205 [ 206 uc: uppercase name 197 dist: func [] [ 198 rejoin [" $(" uc_name "_SOURCES)" ] 199 ] 200 201 rule_text: func [] 202 [ 207 203 emit [ eol output_file ": " obj_macro m2/local_libs link_libs 208 204 {^/^(tab)$(} 209 205 either link_cxx ["LINK_CXX"]["LINK"] 210 {) -o $@ $(} uc {_LFLAGS) } obj_macro211 { $(} uc {_LIBS)} eol206 {) -o $@ $(} uc_name {_LFLAGS) } obj_macro 207 { $(} uc_name {_LIBS)} eol 212 208 ] 213 209 ] -
trunk/m2/m2_visualc.r
r93 r227 102 102 config: 103 103 [ 104 obj_macro: rejoin [ "$(" u ppercasename "_OBJECTS)" ]104 obj_macro: rejoin [ "$(" uc_name "_OBJECTS)" ] 105 105 106 106 cflags {/nologo} … … 113 113 lflags {/subsystem:windows} 114 114 ] 115 116 libs {user32 gdi32}117 115 118 116 either cfg/warn [ … … 159 157 output_file: rejoin [ conv_slash output_dir name ".exe" ] 160 158 do config 159 libs {user32} ; gdi32 161 160 if cfg/qt [ 162 161 either cfg/qt = 3 [ … … 195 194 ] 196 195 197 macro_text: function [] [uc] 198 [ 199 uc: uppercase name 200 196 macro_text: func [] 197 [ 201 198 emit [ 202 uc "_CFLAGS = " menv_cflags " " gnu_string "/D" defines eol203 uc "_CXXFLAGS = $(" uc"_CFLAGS) " menv_cxxflags eol204 uc "_INCPATH = " gnu_string "/I" include_paths eol205 uc "_LFLAGS = " menv_lflags eol206 uc "_LIBS = " gnu_string "/libpath:" link_paths " "199 uc_name "_CFLAGS = " menv_cflags " " gnu_string "/D" defines eol 200 uc_name "_CXXFLAGS = $(" uc_name "_CFLAGS) " menv_cxxflags eol 201 uc_name "_INCPATH = " gnu_string "/I" include_paths eol 202 uc_name "_LFLAGS = " menv_lflags eol 203 uc_name "_LIBS = " gnu_string "/libpath:" link_paths " " 207 204 lib_string link_libs eol 208 205 ] 209 206 210 207 emit [ 211 uc "_SOURCES = " expand_list_gnu source_files eol212 uc "_OBJECTS = " expand_list_gnu object_files eol208 uc_name "_SOURCES = " expand_list_gnu source_files eol 209 uc_name "_OBJECTS = " expand_list_gnu object_files eol 213 210 ] 214 211 ] … … 216 213 clean: does [ rejoin [ "^(tab)-@del " output_file " " obj_macro eol ] ] 217 214 218 dist: function [] [uc] [ 219 uc: uppercase name 220 rejoin [" $(" uc "_SOURCES) $(" uc "_HEADERS)" ] 221 ] 222 223 rule_text: function [] [uc] 224 [ 225 uc: uppercase name 215 dist: func [] [ 216 rejoin [" $(" uc_name "_SOURCES) $(" uc_name "_HEADERS)" ] 217 ] 218 219 rule_text: func [] 220 [ 226 221 emit [ eol output_file ": " obj_macro m2/local_libs link_libs 227 {^/^(tab)$(LINK) /out:$@ $(} uc {_LFLAGS) } obj_macro 228 { $(} uc {_LIBS)} eol 229 ] 230 ] 231 232 rule_makeobj: func [cc flags obj src /local uc] [ 233 uc: uppercase name 234 rejoin [ "^(tab)$(" cc ") /c $(" uc flags ") /Fo" obj 235 " $(" uc "_INCPATH) " src ] 222 {^/^(tab)$(LINK) /out:$@ $(} uc_name {_LFLAGS) } obj_macro 223 { $(} uc_name {_LIBS)} eol 224 ] 225 ] 226 227 rule_makeobj: func [cc flags obj src] [ 228 rejoin [ "^(tab)$(" cc ") /c $(" uc_name flags ") /Fo" obj 229 " $(" uc_name "_INCPATH) " src ] 236 230 ] 237 231 ] … … 246 240 rule_text: function [] [] 247 241 [ 248 emit [ eol output_file ": " obj_macro 249 "^/^(tab)lib /nologo /out:$@ " obj_macro " $(" uppercase name 250 "_LFLAGS)^/" 242 emit [ 243 eol output_file ": " obj_macro 244 "^/^(tab)lib /nologo /out:$@ " obj_macro " $(" uc_name 245 "_LIBS) $(" uc_name "_LFLAGS)^/" 251 246 ] 252 247 ]
