blob: 84e93a18613a3f78de02dd9fcc08f377a754f929 (
plain) (
tree)
|
|
# TODO Autogen.obj
# Difference *.o *.obj
MAIN_FILE=MemtestEfi
CC=gcc
CFLAGS= -Werror -Wall -fno-builtin -fshort-wchar -fno-common -fno-strict-aliasing -g \
-Wno-array-bounds -fno-stack-protector -Wno-address -mno-red-zone \
-fpie -ffunction-sections -fdata-sections -flto -maccumulate-outgoing-args \
-fno-asynchronous-unwind-tables -nostdlib -fPIC
LINKER=
M64=-m64 -mcmodel=small
M32=-m32
M=$(M64)
PREPROCESSOR=-DUEFI -DUSING_LTO -Os \
-D DISABLE_NEW_DEPRECATED_INTERFACES "-DEFIAPI=__attribute__((ms_abi))"
OBJS=AutoGen.obj main.o display.o test.o smp.o config.o screen_buffer.o lib.o init.o controller.o \
pci.o spd.o dmi.o reloc.o patn.o error.o vmem.o cpuid.o memsize.o \
random.o MemtestEfi.obj logger.o memory_tables.o ApplicationEntryPoint.o UefiLib2.o \
UefiRuntimeServicesTableLib.o UefiBootServicesTableLib.o UefiDebugLibStdErr.o \
BaseDebugPrintErrorLevelLib.o
#BaseMemoryLib.o
LIBRARIES=OUTPUT/MemtestEfi.lib
# BasePcdLibNull.lib BasePrintLib.lib \
# UefiDevicePathLib.lib \
# UefiMemoryAllocationLib.lib)
all: clean MemtestEfi.efi move run
$(MAIN_FILE).efi: $(MAIN_FILE).dll
./memtest86+/efi/Include/GenFw -e UEFI_APPLICATION -o $(MAIN_FILE).efi $(MAIN_FILE).dll
$(MAIN_FILE).dll: $(MAIN_FILE).lib
$(CC) $(CFLAGS) $(PREPROCESSOR) $(M) -o $(MAIN_FILE).dll \
-nostdlib \
-Wl,-n,-q,--gc-sections \
-Wl,--entry,_ModuleEntryPoint \
-Wl,-Map,$(MAIN_FILE).map,--whole-archive \
-Wl,-melf_x86_64,--oformat=elf64-x86-64,-pie \
-Wl,--defsym=PECOFF_HEADER_SIZE=0x228 \
-Wl,--script=memtest86+/efi/Include/GccBase.lds \
-z common-page-size=0x40 \
-u _ModuleEntryPoint \
-DSTRING_ARRAY_NAME=${MAIN_FILE}Strings \
$(LIBRARIES)
objcopy --strip-unneeded -R .eh_frame -v $(MAIN_FILE).dll $(MAIN_FILE).dll
strip -R .strtab MemtestEfi.dll
$(MAIN_FILE).lib: $(OBJS)
gcc-ar crv OUTPUT/$(MAIN_FILE).lib $(OBJS)
$(MAIN_FILE).obj: $(MAIN_FILE).c
$(CC) $(CFLAGS) $(PREPROCESSOR) $(M) -o $(MAIN_FILE).obj \
-MMD -MF OUTPUT/$(MAIN_FILE).obj.deps \
-c \
-include memtest86+/efi/Include/AutoGen.h \
-DSTRING_ARRAY_NAME=${MAIN_FILE}Strings \
-I . \
-I"memtest86+" \
-I"memtest86+/efi/Include" \
$(MAIN_FILE).c
AutoGen.obj: memtest86+/efi/Include/AutoGen.c
$(CC) $(CFLAGS) $(PREPROCESSOR) $(M) -o AutoGen.obj \
-c \
-I"./" \
-I"memtest86+/efi/Include/" \
-I"memtest86+/efi/Include/Uefi" \
-I"memtest86+/efi/Include/Library" \
memtest86+/efi/Include/AutoGen.c
%.o: memtest86+/%.c
$(CC) $(CFLAGS) $(PREPROCESSOR) $(M) -c -o $@ $< \
-I"memtest86+/efi"
%.o: memtest86+/efi/Include/src/%.c
$(CC) $(CFLAGS) $(PREPROCESSOR) $(M) -c -o $@ $< \
-I"memtest86+/efi/Include" \
-I"memtest86+/efi/Include/Library"
%.o: memtest86+/efi/Include/src/UefiLib/%.c
$(CC) $(CFLAGS) $(PREPROCESSOR) $(M) -c -o $@ $< \
-I"memtest86+/efi/Include" \
-I"memtest86+/efi/Include/Protocol" \
-I"memtest86+/efi/Include/Guid"
UefiLib2.o: Acpi.o Console.o UefiDriverModel.o UefiLib.o UefiLibPrint.o UefiNotTiano.o
ld -r Acpi.o Console.o UefiDriverModel.o UefiLib.o UefiLibPrint.o UefiNotTiano.o -o UefiLib2.o
%.o: memtest86+/efi/Include/src/UefiDebugLibStdErr/%.c
$(CC) $(CFLAGS) $(PREPROCESSOR) $(M) -c -o $@ $< \
-I"memtest86+/efi/Include"
UefiDebugLibStdErr.o: DebugLib.o DebugLibConstructor.o
ld -r DebugLib.o DebugLibConstructor.o -o UefiDebugLibStdErr.o
%.o: memtest86+/efi/%.c
$(CC) $(CFLAGS) $(PREPROCESSOR) $(M) -c -o $@ $< \
-I"memtest86+" \
-I"memtest86+/efi" \
-I"memtest86+/efi/Include"
clean:
rm -f OUTPUT/*
rm -f memtest86+/*.o
rm -f *.o
rm -f MemtestEfi.obj
rm -f MemtestEfi.map
rm -f MemtestEfi.dll
rm -f MemtestEfi.efi
rm -f MemtestEfi.txt
rm -f AutoGen.obj
move:
cp MemtestEfi.efi ../test_code/hda-contents
run:
sudo ./run.sh
|