File: Make.tiano

package info (click to toggle)
refind 0.14.2-2.1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 9,432 kB
  • sloc: ansic: 52,757; sh: 2,086; python: 592; makefile: 351; perl: 5
file content (69 lines) | stat: -rw-r--r-- 2,905 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#
# filesystems/Make.tiano
# Build control file for rEFInd's EFI filesystem drivers
#

# This program is licensed under the terms of the GNU GPL, version 3,
# or (at your option) any later version.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

include ../Make.common

# Below file defines TARGET (RELEASE or DEBUG) and TOOL_CHAIN_TAG (GCC44, GCC45, or GCC46)
#include $(TIANOBASE)/Conf/target.txt

EFILIB          = $(TIANOBASE)/Build/Mde/$(TARGET)_$(TOOL_CHAIN_TAG)/$(UC_ARCH)/MdePkg/Library
ALL_EFILIBS     = $(EFILIB)/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib \
		  $(EFILIB)/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib \
		  $(EFILIB)/BasePcdLibNull/BasePcdLibNull/OUTPUT/BasePcdLibNull.lib \
		  $(EFILIB)/UefiDebugLibConOut/UefiDebugLibConOut/OUTPUT/UefiDebugLibConOut.lib \
		  $(EFILIB)/BaseLib/BaseLib/OUTPUT/BaseLib.lib \
		  $(EFILIB)/BaseMemoryLib/BaseMemoryLib/OUTPUT/BaseMemoryLib.lib \
		  $(EFILIB)/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib \
		  $(EFILIB)/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib \
		  $(EFILIB)/UefiDevicePathLib/UefiDevicePathLib/OUTPUT/UefiDevicePathLib.lib \
		  $(EFILIB)/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib \
		  $(EFILIB)/UefiLib/UefiLib/OUTPUT/UefiLib.lib \
		  $(EFILIB)/UefiDriverEntryPoint/UefiDriverEntryPoint/OUTPUT/UefiDriverEntryPoint.lib

ifeq ($(ARCH),aarch64)
  ALL_EFILIBS +=  $(EFILIB)/BaseStackCheckLib/BaseStackCheckLib/OUTPUT/BaseStackCheckLib.lib
endif

TIANO_INCLUDE_DIRS = -I $(TIANOBASE)/MdePkg \
                     -I $(TIANOBASE)/MdePkg/Include \
                     -I $(TIANOBASE)/MdePkg/Include/$(ARCHDIR) \
		     -I $(TIANOBASE)/EdkCompatibilityPkg/Foundation/Framework/Include \
		     -I $(TIANOBASE)/EdkCompatibilityPkg/Foundation/Library/Dxe/Include

FSW_NAMES       = fsw_efi fsw_core fsw_efi_lib fsw_lib AutoGen
OBJS            = $(FSW_NAMES:=.obj)
#DRIVERNAME      = ext2
BUILDME          = $(DRIVERNAME)_$(FILENAME_CODE).efi

ENTRYPOINT = _ModuleEntryPoint

%.obj: %.c
	$(CC) $(ARCH_CFLAGS) $(CFLAGS) $(TIANO_INCLUDE_DIRS) \
	      -DFSTYPE=$(DRIVERNAME) -DNO_BUILTIN_VA_FUNCS \
	      -D__MAKEWITH_TIANO -c $< -o $@

ifneq (,$(filter %.efi,$(BUILDME)))

DLL_TARGET = $(subst .efi,.dll,$(BUILDME))

all: $(BUILDME)

$(DLL_TARGET): $(OBJS) fsw_$(DRIVERNAME).obj
	$(LD) -o $(DRIVERNAME)_$(FILENAME_CODE).dll $(TIANO_LDFLAGS) \
	      --start-group $(ALL_EFILIBS) $(OBJS) fsw_$(DRIVERNAME).obj --end-group

$(BUILDME): $(DLL_TARGET)
	$(OBJCOPY) --strip-unneeded -R .eh_frame $(DLL_TARGET)
	$(GENFW) -e UEFI_DRIVER -o $(BUILDME) $(DLL_TARGET)
	mkdir -p ../drivers_$(FILENAME_CODE)
	cp $(BUILDME) ../drivers_$(FILENAME_CODE)

endif