Home | History | Annotate | Download | only in BootSector
      1 ## @file

      2 #  Just use host GCC to compile boot sector image.

      3 #

      4 #  Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>

      5 #

      6 #  This program and the accompanying materials

      7 #  are licensed and made available under the terms and conditions of the BSD License

      8 #  which accompanies this distribution. The full text of the license may be found at

      9 #  http://opensource.org/licenses/bsd-license.php

     10 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

     11 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

     12 #

     13 #

     14 ##

     15 
     16 ASM=gcc
     17 DLINK=ld
     18 
     19 ASSEMBLY_CODE_FILE_LIST = $(MODULE_DIR)/bootsect.S \
     20                           $(MODULE_DIR)/bs16.S \
     21                           $(MODULE_DIR)/bs32.S \
     22                           $(MODULE_DIR)/efi32.S \
     23                           $(MODULE_DIR)/efi64.S \
     24                           $(MODULE_DIR)/Gpt.S \
     25                           $(MODULE_DIR)/Mbr.S \
     26                           $(MODULE_DIR)/start.S \
     27                           $(MODULE_DIR)/start16.S \
     28                           $(MODULE_DIR)/start32.S \
     29                           $(MODULE_DIR)/start64.S \
     30                           $(MODULE_DIR)/st16_64.S \
     31                           $(MODULE_DIR)/st32_64.S
     32 
     33 TARGET_FILES = $(OUTPUT_DIR)/bootsect.com \
     34                $(OUTPUT_DIR)/bs16.com \
     35                $(OUTPUT_DIR)/bs32.com \
     36                $(OUTPUT_DIR)/Gpt.com \
     37                $(OUTPUT_DIR)/Mbr.com \
     38                $(OUTPUT_DIR)/start.com \
     39                $(OUTPUT_DIR)/start16.com \
     40                $(OUTPUT_DIR)/start32.com \
     41                $(OUTPUT_DIR)/efi32.com2 \
     42                $(OUTPUT_DIR)/start64.com \
     43                $(OUTPUT_DIR)/st16_64.com \
     44                $(OUTPUT_DIR)/st32_64.com \
     45                $(OUTPUT_DIR)/efi64.com2
     46 
     47 .PHONY : all
     48 all: $(TARGET_FILES)
     49 
     50 # bootsect.S

     51 $(OUTPUT_DIR)/bootsect.o: $(MODULE_DIR)/bootsect.S
     52 	$(ASM) -c -o $(OUTPUT_DIR)/bootsect.o $(MODULE_DIR)/bootsect.S
     53 $(OUTPUT_DIR)/bootsect.com: $(OUTPUT_DIR)/bootsect.o
     54 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/bootsect.com $(OUTPUT_DIR)/bootsect.o -Ttext 0 -Map $(OUTPUT_DIR)/bootsect.map
     55 
     56 # bs16.S

     57 $(OUTPUT_DIR)/bs16.o: $(MODULE_DIR)/bs16.S
     58 	$(ASM) -c -o $(OUTPUT_DIR)/bs16.o $(MODULE_DIR)/bs16.S
     59 $(OUTPUT_DIR)/bs16.com: $(OUTPUT_DIR)/bs16.o
     60 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/bs16.com $(OUTPUT_DIR)/bs16.o -Ttext 0 -Map $(OUTPUT_DIR)/bs16.map
     61 
     62 # bs32.S

     63 $(OUTPUT_DIR)/bs32.o: $(MODULE_DIR)/bs32.S
     64 	$(ASM) -c -o $(OUTPUT_DIR)/bs32.o $(MODULE_DIR)/bs32.S
     65 $(OUTPUT_DIR)/bs32.com: $(OUTPUT_DIR)/bs32.o
     66 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/bs32.com $(OUTPUT_DIR)/bs32.o -Ttext 0 -Map $(OUTPUT_DIR)/bs32.map
     67 
     68 # Gpt.S

     69 $(OUTPUT_DIR)/Gpt.o: $(MODULE_DIR)/Gpt.S
     70 	$(ASM) -c -o $(OUTPUT_DIR)/Gpt.o $(MODULE_DIR)/Gpt.S
     71 $(OUTPUT_DIR)/Gpt.com: $(OUTPUT_DIR)/Gpt.o
     72 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/Gpt.com $(OUTPUT_DIR)/Gpt.o -Ttext 0 -Map $(OUTPUT_DIR)/Gpt.map
     73 
     74 # Mbr.S

     75 $(OUTPUT_DIR)/Mbr.o: $(MODULE_DIR)/Mbr.S
     76 	$(ASM) -c -o $(OUTPUT_DIR)/Mbr.o $(MODULE_DIR)/Mbr.S
     77 $(OUTPUT_DIR)/Mbr.com: $(OUTPUT_DIR)/Mbr.o
     78 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/Mbr.com $(OUTPUT_DIR)/Mbr.o -Ttext 0 -Map $(OUTPUT_DIR)/Mbr.map
     79 
     80 # start.S

     81 $(OUTPUT_DIR)/start.o: $(MODULE_DIR)/start.S
     82 	$(ASM) -c -o $(OUTPUT_DIR)/start.o $(MODULE_DIR)/start.S
     83 $(OUTPUT_DIR)/start.com: $(OUTPUT_DIR)/start.o
     84 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/start.com $(OUTPUT_DIR)/start.o -Ttext 0 -Map $(OUTPUT_DIR)/start.map
     85 
     86 # start16.S

     87 $(OUTPUT_DIR)/start16.o: $(MODULE_DIR)/start16.S
     88 	$(ASM) -c -o $(OUTPUT_DIR)/start16.o $(MODULE_DIR)/start16.S
     89 $(OUTPUT_DIR)/start16.com: $(OUTPUT_DIR)/start16.o
     90 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/start16.com $(OUTPUT_DIR)/start16.o -Ttext 0 -Map $(OUTPUT_DIR)/start16.map
     91 
     92 # start32.S

     93 $(OUTPUT_DIR)/start32.o: $(MODULE_DIR)/start32.S
     94 	$(ASM) -c -o $(OUTPUT_DIR)/start32.o $(MODULE_DIR)/start32.S
     95 $(OUTPUT_DIR)/start32.com: $(OUTPUT_DIR)/start32.o
     96 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/start32.com $(OUTPUT_DIR)/start32.o -Ttext 0 -Map $(OUTPUT_DIR)/start32.map
     97 
     98 # start64.S

     99 $(OUTPUT_DIR)/start64.o: $(MODULE_DIR)/start64.S
    100 	$(ASM) -c -o $(OUTPUT_DIR)/start64.o $(MODULE_DIR)/start64.S
    101 $(OUTPUT_DIR)/start64.com: $(OUTPUT_DIR)/start64.o
    102 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/start64.com $(OUTPUT_DIR)/start64.o -Ttext 0 -Map $(OUTPUT_DIR)/start64.map
    103 
    104 # start16_64.S

    105 $(OUTPUT_DIR)/st16_64.o: $(MODULE_DIR)/st16_64.S
    106 	$(ASM) -c -o $(OUTPUT_DIR)/st16_64.o $(MODULE_DIR)/st16_64.S
    107 $(OUTPUT_DIR)/st16_64.com: $(OUTPUT_DIR)/st16_64.o
    108 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/st16_64.com $(OUTPUT_DIR)/st16_64.o -Ttext 0 -Map $(OUTPUT_DIR)/st16_64.map
    109 
    110 # start32_64.S

    111 $(OUTPUT_DIR)/st32_64.o: $(MODULE_DIR)/st32_64.S
    112 	$(ASM) -c -o $(OUTPUT_DIR)/st32_64.o $(MODULE_DIR)/st32_64.S
    113 $(OUTPUT_DIR)/st32_64.com: $(OUTPUT_DIR)/st32_64.o
    114 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/st32_64.com $(OUTPUT_DIR)/st32_64.o -Ttext 0 -Map $(OUTPUT_DIR)/st32_64.map
    115 
    116 # efi32.S

    117 $(OUTPUT_DIR)/efi32.o: $(MODULE_DIR)/efi32.S
    118 	$(ASM) -c -o $(OUTPUT_DIR)/efi32.o $(MODULE_DIR)/efi32.S
    119 $(OUTPUT_DIR)/efi32.com: $(OUTPUT_DIR)/efi32.o
    120 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/efi32.com $(OUTPUT_DIR)/efi32.o -Ttext 0 -Map $(OUTPUT_DIR)/efi32.map
    121 $(OUTPUT_DIR)/efi32.com2: $(OUTPUT_DIR)/efi32.com
    122 	Split -f $(OUTPUT_DIR)/efi32.com -p $(OUTPUT_DIR) -o efi32.com1 -p $(OUTPUT_DIR) -t efi32.com2 -s 135168
    123 
    124 # efi64.S

    125 $(OUTPUT_DIR)/efi64.o: $(MODULE_DIR)/efi64.S
    126 	$(ASM) -c -o $(OUTPUT_DIR)/efi64.o $(MODULE_DIR)/efi64.S
    127 $(OUTPUT_DIR)/efi64.com: $(OUTPUT_DIR)/efi64.o
    128 	$(DLINK) --oformat binary -o $(OUTPUT_DIR)/efi64.com $(OUTPUT_DIR)/efi64.o -Ttext 0 -Map $(OUTPUT_DIR)/efi64.map
    129 $(OUTPUT_DIR)/efi64.com2: $(OUTPUT_DIR)/efi64.com
    130 	Split -f $(OUTPUT_DIR)/efi64.com -p $(OUTPUT_DIR) -o efi64.com1 -p $(OUTPUT_DIR) -t efi64.com2 -s 135168
    131 
    132 clean:
    133 ifneq ($(OUTPUT_DIR), )
    134 	rm -r $(OUTPUT_DIR)
    135 endif
    136 ifneq ($(DEBUG_DIR), )
    137 	rm -r $(DEBUG_DIR)
    138 endif
    139 
    140 
    141