diff options
Diffstat (limited to 'Makefile.tpl')
-rw-r--r-- | Makefile.tpl | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/Makefile.tpl b/Makefile.tpl index 2c114e4..365301d 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -1340,7 +1340,7 @@ stage[+id+]-start:: @[ -f stage_current ] && $(MAKE) `cat stage_current`-end || : ; \ echo stage[+id+] > stage_current ; \ echo stage[+id+] > stage_last; \ - $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)[+ + $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR) $(TARGET_SUBDIR)[+ FOR host_modules +][+ IF bootstrap +] @if [+ module +] @cd $(HOST_SUBDIR); [ -d stage[+id+]-[+module+] ] || \ @@ -1349,7 +1349,16 @@ stage[+id+]-start:: @CREATE_LINK_TO_DIR@ [+ IF prev +] ; \ set stage[+prev+]-[+module+] prev-[+module+] ; \ @CREATE_LINK_TO_DIR@ [+ ENDIF prev +] -@endif [+ module +][+ ENDIF bootstrap +][+ ENDFOR host_modules +] +@endif [+ module +][+ ENDIF bootstrap +][+ ENDFOR host_modules +][+ + FOR target_modules +][+ IF bootstrap +] +@if target-[+ module +] + @cd $(TARGET_SUBDIR); [ -d stage[+id+]-[+module+] ] || \ + mkdir stage[+id+]-[+module+]; \ + set stage[+id+]-[+module+] [+module+] ; \ + @CREATE_LINK_TO_DIR@ [+ IF prev +] ; \ + set stage[+prev+]-[+module+] prev-[+module+] ; \ + @CREATE_LINK_TO_DIR@ [+ ENDIF prev +] +@endif target-[+ module +][+ ENDIF bootstrap +][+ ENDFOR target_modules +] stage[+id+]-end:: @rm -f stage_current[+ FOR host_modules +][+ IF bootstrap +] @@ -1358,7 +1367,14 @@ stage[+id+]-end:: @UNDO_LINK_TO_DIR@ [+ IF prev +] ; \ set prev-[+module+] stage[+prev+]-[+module+] ; \ @UNDO_LINK_TO_DIR@ [+ ENDIF prev +] -@endif [+ module +][+ ENDIF bootstrap +][+ ENDFOR host_modules +] +@endif [+ module +][+ ENDIF bootstrap +][+ ENDFOR host_modules +][+ + FOR target_modules +][+ IF bootstrap +] +@if target-[+ module +] + @cd $(HOST_SUBDIR); set [+module+] stage[+id+]-[+module+] ; \ + @UNDO_LINK_TO_DIR@ [+ IF prev +] ; \ + set prev-[+module+] stage[+prev+]-[+module+] ; \ + @UNDO_LINK_TO_DIR@ [+ ENDIF prev +] +@endif [+ module +][+ ENDIF bootstrap +][+ ENDFOR target_modules +] # Bubble a bugfix through all the stages up to stage [+id+]. They # are remade, but not reconfigured. The next stage (if any) will not @@ -1467,7 +1483,10 @@ do-distclean: distclean-stage1 # -------------------------------------- # Generic dependencies for target modules on host stuff, especially gcc -[+ FOR target_modules +] +[+ FOR target_modules +][+ IF bootstrap +] +@if gcc-bootstrap[+ FOR bootstrap_stage +] +configure-stage[+id+]-target-[+module+]: maybe-all-stage[+id+]-gcc[+ ENDFOR +] +@endif gcc-bootstrap[+ ENDIF bootstrap +] configure-target-[+module+]: maybe-all-gcc [+ ENDFOR target_modules +] @@ -1535,7 +1554,6 @@ configure-target-[+module+]: maybe-all-target-newlib maybe-all-target-libgloss "prebootstrap" (if (or (= (dep-subtarget "on") "install-") - (=* (dep-module "on") "target-") (not (hash-ref boot-modules (dep-module "module"))) (not (hash-ref boot-modules (dep-module "on")))) "normal" @@ -1549,6 +1567,10 @@ configure-target-[+module+]: maybe-all-target-newlib maybe-all-target-libgloss (if (exist? "bootstrap") (hash-create-handle! boot-modules (get "module") #t)) "" +][+ ENDFOR host_modules +] +[+ FOR target_modules +][+ + (if (exist? "bootstrap") + (hash-create-handle! boot-modules (string-append "target-" (get "module")) #t)) + "" +][+ ENDFOR target_modules +] # With all the machinery above in place, it is pretty easy to generate # dependencies. Host dependencies are a bit more complex because we have |