view boot/Makefile @ 8:d390aa667e3c

program test.
author taiki
date Wed, 26 Dec 2012 14:40:17 +0900
parents cae91de64e26
children e6715e03b87a
line wrap: on
line source

LD	= /home/taiki/local/bin/ld
OBJCOPY	= /home/taiki/local/bin/objcopy



ARCH	=$(shell uname -m |sed s,i[3456789]86,ia32,)
LIB_PATH	= /usr/lib64
EFI_INCLUDE	= /usr/include/efi
EFI_INCLUDES	= -nostdinc -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol

EFI_PATH        = /usr/lib64/gnuefi
EFI_CRT_OBJS    = $(EFI_PATH)/crt0-efi-$(ARCH).o
EFI_LDS         = $(EFI_PATH)/elf_$(ARCH)_efi.lds

CFLAGS          = -O2 -Wall -fno-stack-protector -fpic -fshort-wchar -mno-red-zone $(EFI_INCLUDES)
ifeq ($(ARCH),x86_64)
	CFLAGS  += -DEFI_FUNCTION_WRAPPER
endif

LDFLAGS         = -nostdlib -znocombreloc -T $(EFI_LDS) -shared -Bsymbolic -L$(EFI_PATH) -L$(LIB_PATH) \
                  $(EFI_CRT_OBJS) -lefi -lgnuefi

TARGET  = bootx64.efi
OBJS    = bootx64.o
SOURCES = bootx64.c

all: $(TARGET)

bootx64.so: $(OBJS)
	$(LD) -o $@ $(LDFLAGS) $^ $(EFI_LIBS)

%.efi: %.so
	$(OBJCOPY) -j .text -j .sdata -j .data \
                -j .dynamic -j .dynsym  -j .rel \
                -j .rela -j .reloc -j .eh_frame \
                --target=efi-app-$(ARCH) $^ $@

clean:
	rm -rf $(TARGET) *.o *.so