Vishal Bhoj | 82c8071 | 2015-12-15 21:13:33 +0530 | [diff] [blame] | 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 |
|