]> code.delx.au - refind/blob - filesystems/Make.tiano
Added rudimentary debconf support for Debian package.
[refind] / filesystems / Make.tiano
1 #
2 # filesystems/Make.common
3 # Build control file for rEFInd's EFI filesystem drivers
4 #
5
6 # This program is licensed under the terms of the GNU GPL, version 3,
7 # or (at your option) any later version.
8 # You should have received a copy of the GNU General Public License
9 # along with this program. If not, see <http://www.gnu.org/licenses/>.
10
11 include ../Make.common
12
13 # Below file defines TARGET (RELEASE or DEBUG) and TOOL_CHAIN_TAG (GCC44, GCC45, or GCC46)
14 #include $(EDK2BASE)/Conf/target.txt
15
16 EFILIB = $(EDK2BASE)/Build/Mde/$(TARGET)_$(TOOL_CHAIN_TAG)/$(UC_ARCH)/MdePkg/Library
17 ALL_EFILIBS = $(EFILIB)/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib \
18 $(EFILIB)/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib \
19 $(EFILIB)/BasePcdLibNull/BasePcdLibNull/OUTPUT/BasePcdLibNull.lib \
20 $(EFILIB)/UefiDebugLibConOut/UefiDebugLibConOut/OUTPUT/UefiDebugLibConOut.lib \
21 $(EFILIB)/BaseLib/BaseLib/OUTPUT/BaseLib.lib \
22 $(EFILIB)/BaseMemoryLib/BaseMemoryLib/OUTPUT/BaseMemoryLib.lib \
23 $(EFILIB)/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib \
24 $(EFILIB)/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib \
25 $(EFILIB)/UefiDevicePathLib/UefiDevicePathLib/OUTPUT/UefiDevicePathLib.lib \
26 $(EFILIB)/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib \
27 $(EFILIB)/UefiLib/UefiLib/OUTPUT/UefiLib.lib \
28 $(EFILIB)/UefiDriverEntryPoint/UefiDriverEntryPoint/OUTPUT/UefiDriverEntryPoint.lib
29
30 ifeq ($(ARCH),aarch64)
31 ALL_EFILIBS += $(EFILIB)/BaseStackCheckLib/BaseStackCheckLib/OUTPUT/BaseStackCheckLib.lib
32 endif
33
34 TIANO_INCLUDE_DIRS = -I $(EDK2BASE)/MdePkg \
35 -I $(EDK2BASE)/MdePkg/Include \
36 -I $(EDK2BASE)/MdePkg/Include/$(ARCHDIR) \
37 -I $(EDK2BASE)/EdkCompatibilityPkg/Foundation/Framework/Include \
38 -I $(EDK2BASE)/EdkCompatibilityPkg/Foundation/Library/Dxe/Include
39
40 FSW_NAMES = fsw_efi fsw_core fsw_efi_lib fsw_lib AutoGen
41 OBJS = $(FSW_NAMES:=.obj)
42 #DRIVERNAME = ext2
43 BUILDME = $(DRIVERNAME)_$(FILENAME_CODE).efi
44
45 ENTRYPOINT = _ModuleEntryPoint
46
47 %.obj: %.c
48 $(CC) $(ARCH_CFLAGS) $(CFLAGS) $(TIANO_INCLUDE_DIRS) \
49 -DFSTYPE=$(DRIVERNAME) -DNO_BUILTIN_VA_FUNCS \
50 -D__MAKEWITH_TIANO -c $< -o $@
51
52 ifneq (,$(filter %.efi,$(BUILDME)))
53
54 DLL_TARGET = $(subst .efi,.dll,$(BUILDME))
55
56 all: $(BUILDME)
57
58 $(DLL_TARGET): $(OBJS) fsw_$(DRIVERNAME).obj
59 $(LD) -o $(DRIVERNAME)_$(FILENAME_CODE).dll $(TIANO_LDFLAGS) \
60 --start-group $(ALL_EFILIBS) $(OBJS) fsw_$(DRIVERNAME).obj --end-group
61
62 $(BUILDME): $(DLL_TARGET)
63 $(OBJCOPY) --strip-unneeded -R .eh_frame $(DLL_TARGET)
64 $(GENFW) -e UEFI_DRIVER -o $(BUILDME) $(DLL_TARGET)
65 mkdir -p ../drivers_$(FILENAME_CODE)
66 cp $(BUILDME) ../drivers_$(FILENAME_CODE)
67
68 endif
69