# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: address@hidden # target_branch: http://bzr.savannah.gnu.org/r/grub/trunk/grub/ # testament_sha1: 8aaa787c18d382a45a9a89268c49ec1599118bdc # timestamp: 2011-08-25 23:14:04 -0700 # base_revision_id: address@hidden # # Begin patch === modified file 'ChangeLog' --- ChangeLog 2011-08-23 09:20:56 +0000 +++ ChangeLog 2011-08-26 06:13:59 +0000 @@ -1,3 +1,8 @@ +2011-08-25 BVK Chaitanya + + * gentpl.py: Use Autogen macros so that the output file + (Makefile.tpl) size is reduced. + 2011-08-23 Vladimir Serbinenko * grub-core/kern/mips/loongson/init.c (grub_machine_init): Handle the === modified file 'gentpl.py' --- gentpl.py 2011-07-05 19:00:01 +0000 +++ gentpl.py 2011-08-26 06:13:59 +0000 @@ -184,6 +184,17 @@ return r # +# Returns autogen code that defines an autogen macro using the +# definition given in the 'snippet'. +# +def define_autogen_macro(name, snippet): + r = "" + r += "[+ DEFINE " + name + " +]" + r += snippet + r += "[+ ENDDEF +]\n" + return r + +# # Template for handling values from sum of all groups for a platform, # for example: # @@ -245,10 +256,18 @@ # emu_condition = COND_GRUB_EMU_USB; # }; # +def define_macro_for_platform_conditionals_if_statement(p): + return define_autogen_macro( + "if_" + p + "_conditionals", + foreach_platform_specific_value(platform, "_condition", "condition", lambda cond: "if " + cond + "\n")) +def define_macro_for_platform_conditionals_endif_statement(p): + return define_autogen_macro( + "endif_" + p + "_conditionals", + foreach_platform_specific_value(platform, "_condition", "condition", lambda cond: "endif " + cond + "\n")) def under_platform_specific_conditionals(platform, snippet): - r = foreach_platform_specific_value(platform, "_condition", "condition", lambda cond: "if " + cond + "\n") + r = "[+ if_" + platform + "_conditionals +]" r += snippet - r += foreach_platform_specific_value(platform, "_condition", "condition", lambda cond: "endif " + cond + "\n") + r += "[+ endif_" + platform + "_conditionals +]" return r def platform_specific_values(platform, suffix, nonetag): @@ -261,18 +280,69 @@ def extra_dist(): return foreach_value("extra_dist", lambda value: value + " ") -def platform_sources(p): return platform_values(p, "") -def platform_nodist_sources(p): return platform_values(p, "_nodist") -def platform_dependencies(p): return platform_values(p, "dependencies", "_dependencies") +def define_macro_for_platform_sources(p): + return define_autogen_macro( + "get_" + p + "_sources", + platform_values(p, "")) +def define_macro_for_platform_nodist_sources(p): + return define_autogen_macro( + "get_" + p + "_nodist_sources", + platform_values(p, "_nodist")) +def define_macro_for_platform_dependencies(p): + return define_autogen_macro( + "get_" + p + "_dependencies", + platform_values(p, "dependencies", "_dependencies")) +def platform_sources(p): return "[+ get_" + p + "_sources +]" +def platform_nodist_sources(p): return "[+ get_" + p + "_nodist_sources +]" +def platform_dependencies(p): return "[+ get_" + p + "_dependencies +]" -def platform_startup(p): return platform_specific_values(p, "_startup", "startup") -def platform_ldadd(p): return platform_specific_values(p, "_ldadd", "ldadd") -def platform_cflags(p): return platform_specific_values(p, "_cflags", "cflags") -def platform_ldflags(p): return platform_specific_values(p, "_ldflags", "ldflags") -def platform_cppflags(p): return platform_specific_values(p, "_cppflags", "cppflags") -def platform_ccasflags(p): return platform_specific_values(p, "_ccasflags", "ccasflags") -def platform_stripflags(p): return platform_specific_values(p, "_stripflags", "stripflags") -def platform_objcopyflags(p): return platform_specific_values(p, "_objcopyflags", "objcopyflags") +# +# Returns Autogen code which defines the autogen macros that collect +# platform specific values for cflags, ldflags, etc. tags. +# +def define_macro_for_platform_startup(p): + return define_autogen_macro( + "get_" + p + "_startup", + platform_specific_values(p, "_startup", "startup")) +def define_macro_for_platform_cflags(p): + return define_autogen_macro( + "get_" + p + "_cflags", + platform_specific_values(p, "_cflags", "cflags")) +def define_macro_for_platform_ldadd(p): + return define_autogen_macro( + "get_" + p + "_ldadd", + platform_specific_values(p, "_ldadd", "ldadd")) +def define_macro_for_platform_ldflags(p): + return define_autogen_macro( + "get_" + p + "_ldflags", + platform_specific_values(p, "_ldflags", "ldflags")) +def define_macro_for_platform_cppflags(p): + return define_autogen_macro( + "get_" + p + "_cppflags", + platform_specific_values(p, "_cppflags", "cppflags")) +def define_macro_for_platform_ccasflags(p): + return define_autogen_macro( + "get_" + p + "_ccasflags", + platform_specific_values(p, "_ccasflags", "ccasflags")) +def define_macro_for_platform_stripflags(p): + return define_autogen_macro( + "get_" + p + "_stripflags", + platform_specific_values(p, "_stripflags", "stripflags")) +def define_macro_for_platform_objcopyflags(p): + return define_autogen_macro( + "get_" + p + "_objcopyflags", + platform_specific_values(p, "_objcopyflags", "objcopyflags")) +# +# Autogen calls to invoke the above macros. +# +def platform_startup(p): return "[+ get_" + p + "_startup +]" +def platform_ldadd(p): return "[+ get_" + p + "_ldadd +]" +def platform_cflags(p): return "[+ get_" + p + "_cflags +]" +def platform_ldflags(p): return "[+ get_" + p + "_ldflags +]" +def platform_cppflags(p): return "[+ get_" + p + "_cppflags +]" +def platform_ccasflags(p): return "[+ get_" + p + "_ccasflags +]" +def platform_stripflags(p): return "[+ get_" + p + "_stripflags +]" +def platform_objcopyflags(p): return "[+ get_" + p + "_objcopyflags +]" # # Emit snippet only the first time through for the current name. @@ -489,7 +559,6 @@ def data_rules(): return rules("data", data) -print "[+ AutoGen5 template +]\n" a = module_rules() b = kernel_rules() c = image_rules() @@ -499,6 +568,23 @@ g = data_rules() z = global_variable_initializers() +print "[+ AutoGen5 template +]\n" +for p in GRUB_PLATFORMS: + print define_macro_for_platform_sources(p) + print define_macro_for_platform_nodist_sources(p) + # print define_macro_for_platform_dependencies(p) + + print define_macro_for_platform_startup(p) + print define_macro_for_platform_cflags(p) + print define_macro_for_platform_ldadd(p) + print define_macro_for_platform_ldflags(p) + print define_macro_for_platform_cppflags(p) + print define_macro_for_platform_ccasflags(p) + print define_macro_for_platform_stripflags(p) + print define_macro_for_platform_objcopyflags(p) + + print define_macro_for_platform_conditionals_if_statement(p) + print define_macro_for_platform_conditionals_endif_statement(p) # print z # initializer for all vars print a print b # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWVWTPqIABIVfgEQwWP//93+v 3w6////wYAivffPp92vTgA75PeuxoPvOcUNsxtXhKESmniaR6gNPQnqeoAANGQZNBo0fpQAlEaCa GgmhT0JiNGho0GgAABoAIqe9TUygAHqGgAAAAAAAAAk1RBCPVPQyNIxkmgDJoGgAA09QAEUkym0p 6p4TBR6NTyQ0ZPUaGgNAABoAIokCZGhJ6ZqYk8im0m1MEMQ0000AAaHogiPSjwG2Z5j4txRTRTAr j31811aXXLASKhoMz5INKgsaUdSNtu3K5C7NftseLfux3oWQBdNpA22SxAiZwzk3ma3NN+quqKra Ry3IClFF92V/wPm5923dpNcg2BYjEirFEQUFGTqjDf234nAGsQhohJlD8BRtSxDw32nz3kWRZl6Y Tc6TFXBUKQIEuQHC0S1hpolJQgnUxROXTQUpLUyWwNzmZyzoLTNccBdeWUcSZ7zIVhNNiqqqqqqq q9OS7isMZk1/3mL5DYdWqvcxmxKhS7UUKATbHjiuKILGpmiEU5TktgcnLxyBq4H3ue2wWHYb6hOL YQji/sIxy7jno4/kV8DnbcX6iuZ1x16ZAmCuGWjVKtTRKsvAkYixV56DIUWHLIc99NqPpJm8qgzT JhDMBMBSKQFICkA7STjCkdyFOkyI1oA3l6L9mCEYVSiM3YRMDCRCYQRh1eM3m8uR09+QVFuWr2Hf 6BLNvq1E9vKzJXoEhPAbTHChtLaw88A6yKX0PS91JAHuOlqn+A0pMNgECxL/M4EtJhbd0BBNChWb fopDEZRHKRi58INDhcc7IibCnBSJeKCWYEZYko9uqtYPuje8D2JILa7bpvNeyatxc7jLov1NQqZq XEDqDtcTxFjP17SanMqCPC65NezMNRHGRNbnREIaoIYC51wQxN6ONoZhFLwyHG4ydZfvmtgJjyeD JF8yLs3lMOAsOqzFAsWzc5bW1G4mPbeQkaJkRAg05Z4w4VfugTKjr6EoBcO2krHuBOKh/QLTOFst jCq9csgkAo0XM1QNV9RpG6Dx0R1l2mYYl5U33YsGZjYlJPWNtzsXEomRFqVqFusY0OM0M1I2VULx QM2RcLoCtfjx8wZELp2FAF2QxvIEXBHDSk51mgtTQtLdoL090RNRvjkQvtjhVsGSzBu36SygWwpe 2y+F9rhmOSPRF7uebRpEwK073axDbaHCIZbKE0aqCjUwxOJc2VzZ8B4/ODtbeyVlccfoR/LixWZL IzEJit5DSI4joHAHqKVAFQdQpAS3aNwkummMYkQYxjOI0EJiOS4sGF0ujGWElSErKxjNRIe0Qupf C0S1WFJMN4SZPQRCRDHgOMPJUdxzYeY75zhXwnRqtPdiinrtWrE+jR8+3cnsBTLBXYdp9uXAD4i3 Egrm3rmw9OdZLcvUoEXTCFRlV5BexbrOEzbTUMJQW7pQRFoUuFSJq38BuIo0DyAwoJTR3FonNxWJ vlffUcMYTX5HqPiz2CUK7IS/Dt6SemypdKlddh2JHwV3SF5mIA+KxMJcima81TAwcTd8tPKabQrD vlom0LPGujVoA8Jeg61E7sF32sNtqXAUTkbBkDYcuwDHTEUOqdri0FhM3F9DL8I5ma0O3uI4+AJ8 0cDdw7rdRgeDvNkTZkLpJSRHT4jZpLTepdR51WFvLia7LYyyQYIUTRnw8kVf3JqOhIeEB64FsW5c jt7DIOlzNySFwHVhKcsOzYdHOKUIYIgiCik5ytwFMc6D9JCZ0stOhB3lR2ZzzvO0DmlpIuc8xeci hKieWEx6GGDMGQCTBmDMIQEgyASYMwZgJYtzIJwU+xuSQlhxlLu3OADdqwSsIcPK4oqqqqqqq/uS bYHMQxQkPobULCfyUMAzQSZe9mU0zOENmtTdLR4tSRhWvBpiNMjBEQ0Uzq3iWmB5UsETHnlhF9mz PgrclUgC1cjM1piHQVSD2+LmHLAPN51tNnlM4k5F2fQbk1gdZ4lYTrDSmmQ6gU2FYC3cIGISnhMw l2GWM+TOcihZAx3yLwS1WBBwzgJAb1aNY5g44TXdSbTApgJ2NiNJJKf9CYzhgWALtsFs1qLEgkGA ZASICjltaa8RwKC3KxAQFpt3XFivpCkiN26E3rvGr89xaiZuNqBoEIAMrjWUXEFuSAV9R10bA5dM iZxNpzrJAd0SSxDkAMnCrhBAS2qVb1vzh0Kqqq3wwkxY5kNBRFIooooopEG4CCUESa1cq4rzb0pW Fw0Ewlx3Uquo5zpOwCDDAbDnsfWQlFXLESS0sWFLRdOqjds1C61zCLeo9CCUrroGkSw7i6dC3S6Q 0mcuxRVOOi6C+UttJShQlAZEYsFVQVVZBldkhYGPhu+pmwk44FJtm5hDMVMgaa62ZbSFEhs3kadh gZINGFK72bqDCOBBkpMIiyQpI/wTS+LyFKYKQFMcBlzk1Rmgk6eOJgj3gWYimhMXkQlCizbdIXSu NR4NDiF46b672MEko4tR7jLEQQrQ0lIUspjpfaBqTmJT2h6ALA9gRhiXJqltJNdDMcgMiPCUC+Ax PKgsjz/F3JFOFCQVZM+ogA==