]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/bootstrap/server/src/Make.rules
update
[l4.git] / l4 / pkg / bootstrap / server / src / Make.rules
index 9264c013f67041ea2ef2cd637cc4a2e74acb28fd..e52ae21de247978255636311876e21ee5f3b8880 100644 (file)
@@ -18,6 +18,7 @@ RELOC_PHYS          := y
 LDFLAGS              = -Bstatic
 EXTRA_GENERAL_D_DEP  = .redo-change-tracker
 INCLUDE_MAKE_RULES   = $(SRC_DIR)/*/Make.rules
+BOOTSTRAP_LD_dep    := $(SRC_DIR)/ldscript.inc
 #REQUIRES_LIBS        = libbsd-lite
 
 include $(L4DIR)/mk/Makeconf
@@ -76,6 +77,7 @@ SUPPORT_CC_arm-tegra2     := support_tegra2.cc
 SUPPORT_CC_arm-imx21      := support_imx.cc
 SUPPORT_CC_arm-imx51      := support_imx.cc
 SUPPORT_CC_arm-om         := support_om.cc
+SUPPORT_CC_arm-kirkwood   := support_kirkwood.cc
 DEFAULT_RELOC_arm-imx21   := 0x00200000  # because of blob
 
 ifneq ($(DEFAULT_RELOC_arm-$(PLATFORM_TYPE)),)
@@ -101,7 +103,6 @@ SRC_CC_ppc32    += ARCH-ppc32/init_kip_v2-arch.cc \
                   ARCH-ppc32/reboot.cc
 SRC_CC          += $(SUPPORT_CC_$(ARCH)-$(PLATFORM_TYPE))
 SRC_S          += ARCH-$(ARCH)/crt0.S
-ASFLAGS_ARCH-arm/crt0.S += -march=armv6zk
 
 OPTS            = -g -Os $(CARCHFLAGS_$(ARCH)) $(CARCHFLAGS_$(ARCH)_$(CPU))
 DEFINES         += -DRAM_BASE=$(RAM_BASE)
@@ -153,7 +154,7 @@ ENTRY_FN := $(shell echo "$(ENTRY)" | tr '[ ]' '[_]' )
 # we need to re-do if some things change
 # we do not need to track BOOTSTRACE_CMDLINE as it's only used in startup.cc
 # and that is regenerated every time
-REDO_TEXT_CMD = echo "$(ENTRY) '$(COMPRESS)' '$(RAM_SIZE_MB)' '$(PLATFORM_TYPE)'"
+REDO_TEXT_CMD = echo "$(ENTRY) '$(COMPRESS)' '$(RAM_SIZE_MB)' '$(PLATFORM_TYPE)' '$(LOADER_MBI)'"
 .redo-change-tracker: FORCE
        $(VERBOSE)if  test ! -r "$@" ||                    \
                    ! $(REDO_TEXT_CMD) | cmp -s "$@"; then \
@@ -162,9 +163,18 @@ REDO_TEXT_CMD = echo "$(ENTRY) '$(COMPRESS)' '$(RAM_SIZE_MB)' '$(PLATFORM_TYPE)'
 
 ifneq ($(ENTRY),)
 
-INSTALL_TARGET = $(BOOTSTRAP_ELF_NAME) bootstrap_$(ENTRY_FN) bootstrap_$(ENTRY_FN).elf
+INSTALL_TARGET  = $(BOOTSTRAP_ELF_NAME) bootstrap_$(ENTRY_FN) bootstrap_$(ENTRY_FN).elf
+ifeq ($(ARCH),amd64)
+INSTALL_TARGET += bootstrap32.elf
+BOOTSTRAP_LINK_SOURCE = bootstrap32.elf
+else
+BOOTSTRAP_LINK_SOURCE = $(BOOTSTRAP_ELF_NAME)
+endif
 
-bootstrap_$(ENTRY_FN).elf: $(BOOTSTRAP_ELF_NAME)
+bootstrap_$(ENTRY_FN): $(BOOTSTRAP_LINK_SOURCE)
+       $(VERBOSE)$(LN) -f $< $@
+
+bootstrap_$(ENTRY_FN).elf: $(BOOTSTRAP_LINK_SOURCE)
        $(VERBOSE)$(LN) -f $< $@
 
 bootstrap_$(ENTRY_FN).raw: bootstrap.raw
@@ -212,14 +222,12 @@ $(IMAGES_DIR)/%: % $(IMAGES_DIR)/Makefile
 $(IMAGES_DIR)/Makefile: $(SRC_DIR)/Make.rules
        @echo "  ==> Preparing image directory"
        $(VERBOSE)install -d $(dir $@)
-       $(VERBOSE)$(ECHO) "# Automatically generated by bootstrap" > $@
-       $(VERBOSE)$(ECHO) "a:"                                    >> $@
-       $(VERBOSE)$(ECHO) "     \$$(MAKE) -C .. image"            >> $@
-       $(VERBOSE)$(ECHO) "%:"                                    >> $@
-       $(VERBOSE)$(ECHO) "     \$$(MAKE) -C .. image E=\"\$$@\"" >> $@
+       $(VERBOSE)$(ECHO) "# Automatically generated by bootstrap"                           > $@
+       $(VERBOSE)$(ECHO) "\$$(if \$$(MAKECMDGOALS),%,a):"                                  >> $@
+       $(VERBOSE)$(ECHO) "     \$$(MAKE) -C .. image \$$(if \$$(MAKECMDGOALS),E=\"\$$@\")" >> $@
 else
   INSTALL_TARGET = bootstrap
-endif
+endif # ENTRY
 
 ifneq ($(REALMODE_LOADING),0)
 LOADER_MBI      = 1
@@ -245,10 +253,6 @@ ifneq ($(RAM_SIZE_MB),)
 CPPFLAGS       += -DRAM_SIZE_MB=$(RAM_SIZE_MB)
 endif
 
-ifeq ($(ARCH),amd64)
-all:: $(OBJ_DIR)/ARCH-amd64/libc32/OBJ-$(ARCH)_$(CPU)/libc32.a
-endif
-
 CXXFLAGS += -fno-rtti -fno-exceptions
 CXXFLAGS += $(call checkcxx,-fno-threadsafe-statics)
 
@@ -273,7 +277,7 @@ ifneq ($(ENTRY),)
 
  OBJS_$(BOOTSTRAP_ELF_NAME)   += $(MODULE_OBJECT_FILES)
  CPPFLAGS                     += -DIMAGE_MODE
- BOOTSTRAP_LD_dep             := mod.make.inc
+ BOOTSTRAP_LD_dep             += mod.make.inc
  STARTUP_C_dep                := mod.make.inc
 endif
 
@@ -378,13 +382,16 @@ CFLAGS32  := $(filter-out -m64, $(CFLAGS)) -m32
 $(OBJ_DIR)/ARCH-amd64/libc32/OBJ-$(ARCH)_$(CPU)/libc32.a: FORCE
        $(VERBOSE)$(MAKE) O=$(OBJ_BASE) -C $(SRC_DIR)/ARCH-amd64/libc32
 
-bootstrap: $(OBJ32) bootstrap32.bin $(OBJ_DIR)/ARCH-amd64/libc32/OBJ-$(ARCH)_$(CPU)/libc32.a
+bootstrap32.elf: $(OBJ32) bootstrap32.bin $(OBJ_DIR)/ARCH-amd64/libc32/OBJ-$(ARCH)_$(CPU)/libc32.a
        @$(LINK_MESSAGE)
        $(VERBOSE)$(CC32) -o $@ -nostdlib -static \
          -Wl,-T,$(SRC_DIR)/ARCH-amd64/boot32/bootstrap32.ld,--gc-sections $^ -lgcc
        $(VERBOSE)chmod 755 $@
 
-bootstrap32.bin: $(TARGET)
+bootstrap: bootstrap32.elf
+       $(VERBOSE)$(LN) -f $^ $@
+
+bootstrap32.bin: $(BOOTSTRAP_ELF_NAME)
        @$(GEN_MESSAGE)
        $(VERBOSE)$(OBJCOPY) -S $< bootstrap64.bin
        $(VERBOSE)chmod -x bootstrap64.bin
@@ -407,7 +414,4 @@ clean cleanall::
 else
 bootstrap: $(BOOTSTRAP_ELF_NAME)
        $(VERBOSE)$(LN) -f $^ $@
-
-bootstrap_$(ENTRY_FN): $(BOOTSTRAP_ELF_NAME)
-       $(VERBOSE)$(LN) -f $^ $@
 endif