Skip to content

Commit

Permalink
Utilities: Simplify Makefiles with VPATH and partially fix dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
vit9696 committed May 29, 2020
1 parent b1a4c4a commit fcf9154
Show file tree
Hide file tree
Showing 10 changed files with 112 additions and 265 deletions.
File renamed without changes.
83 changes: 25 additions & 58 deletions User/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
# SPDX-License-Identifier: BSD-3-Clause
##

.DEFAULT_GOAL := all

CC ?= gcc

ifeq ($(UDK_PATH),)
Expand Down Expand Up @@ -61,73 +63,38 @@ ifneq ($(STANDALONE),1)
#
# UDK implementations.
#
OBJS = UefiLibPrint.o CpuDeadLoop.o BaseDebugPrintErrorLevelLib.o DebugLib.o PrintLib.o PrintLibInternal.o String.o SafeString.o SwapBytes16.o SwapBytes32.o LinkedList.o
OBJS += UefiLibPrint.o CpuDeadLoop.o BaseDebugPrintErrorLevelLib.o DebugLib.o PrintLib.o PrintLibInternal.o String.o SafeString.o SwapBytes16.o SwapBytes32.o LinkedList.o
#
# Customised/Simplified implementations at userspace level.
#
OBJS += BaseMemoryLib.o BootServices.o DebugBreak.o EfiVar.o Math.o Pcd.o
OBJS += BaseMemoryLib.o BootServices.o DebugBreak.o EfiVar.o UserMath.o Pcd.o
#
# OcGuardLib targets.
#
OBJS += BitOverflow.o NativeOverflow.o TripleOverflow.o
endif

UefiLibPrint.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/UefiLib/UefiLibPrint.c -o $@

CpuDeadLoop.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/BaseLib/CpuDeadLoop.c -o $@

BaseDebugPrintErrorLevelLib.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.c -o $@

DebugLib.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/UefiDebugLibConOut/DebugLib.c -o $@

PrintLib.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/BasePrintLib/PrintLib.c -o $@

PrintLibInternal.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/BasePrintLib/PrintLibInternal.c -o $@

String.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/BaseLib/String.c -o $@

SafeString.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/BaseLib/SafeString.c -o $@

SwapBytes16.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/BaseLib/SwapBytes16.c -o $@

SwapBytes32.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/BaseLib/SwapBytes32.c -o $@

LinkedList.o:
$(CC) $(CFLAGS) $(UDK_PATH)/MdePkg/Library/BaseLib/LinkedList.c -o $@

BaseMemoryLib.o:
$(CC) $(CFLAGS) ../../User/Library/BaseMemoryLib.c -o $@

BootServices.o:
$(CC) $(CFLAGS) ../../User/Library/BootServices.c -o $@

DebugBreak.o:
$(CC) $(CFLAGS) ../../User/Library/DebugBreak.c -o $@

EfiVar.o:
$(CC) $(CFLAGS) ../../User/Library/EfiVar.c -o $@

Math.o:
$(CC) $(CFLAGS) ../../User/Library/Math.c -o $@
#
# Add source searchpath for transparent compilation.
# This way make will find any file in path in VPATH and apply "%.o: %.c" rule.
#
VPATH += :$(UDK_PATH)/MdePkg/Library/UefiLib:$\
$(UDK_PATH)/MdePkg/Library/BaseLib:$\
$(UDK_PATH)/MdePkg/Library/BaseDebugPrintErrorLevelLib:$\
$(UDK_PATH)/MdePkg/Library/UefiDebugLibConOut:$\
$(UDK_PATH)/MdePkg/Library/BasePrintLib:$\
$(UDK_PATH)/MdePkg/Library/BasePrintLib:$\
../../User/Library:$\
../../Library/OcGuardLib
endif

Pcd.o:
$(CC) $(CFLAGS) ../../User/Library/Pcd.c -o $@
%.o: %.c
$(CC) $(CFLAGS) $< -o $@

BitOverflow.o:
$(CC) $(CFLAGS) ../../Library/OcGuardLib/BitOverflow.c -o $@
all: $(PRODUCT)

NativeOverflow.o:
$(CC) $(CFLAGS) ../../Library/OcGuardLib/NativeOverflow.c -o $@
$(PRODUCT): $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PRODUCT)
$(STRIP) $(PRODUCT)

TripleOverflow.o:
$(CC) $(CFLAGS) ../../Library/OcGuardLib/TripleOverflow.c -o $@
clean:
rm -rf *.o *.dSYM $(PRODUCT)
46 changes: 13 additions & 33 deletions Utilities/AppleEfiSignTool/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,20 @@
# SPDX-License-Identifier: BSD-3-Clause
##

PRODUCT = AppleEfiSignTool$(SUFFIX)
OBJS = main.o \
AppleEfiBinary.o \
Sha2.o \
BigNumWordMul64.o \
BigNumPrimitives.o \
BigNumMontgomery.o \
RsaDigitalSign.o \
SecureMem.o \
OcAppleKeysLib.o
VPATH = ../../Library/OcCryptoLib:$\
../../Library/OcCryptoLib/IA32:$\
../../Library/OcAppleKeysLib
include ../../User/Makefile

.DEFAULT_GOAL := all
PRODUCT = AppleEfiSignTool$(SUFFIX)

OBJS += main.o
OBJS += AppleEfiBinary.o Sha2.o BigNumWordMul64.o BigNumPrimitives.o BigNumMontgomery.o RsaDigitalSign.o SecureMem.o OcAppleKeysLib.o

all: $(PRODUCT)

$(PRODUCT): $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PRODUCT)
$(STRIP) $(PRODUCT)

Sha2.o:
$(CC) $(CFLAGS) ../../Library/OcCryptoLib/Sha2.c -o $@

BigNumWordMul64.o:
$(CC) $(CFLAGS) ../../Library/OcCryptoLib/IA32/BigNumWordMul64.c -o $@

BigNumPrimitives.o:
$(CC) $(CFLAGS) ../../Library/OcCryptoLib/BigNumPrimitives.c -o $@

BigNumMontgomery.o:
$(CC) $(CFLAGS) ../../Library/OcCryptoLib/BigNumMontgomery.c -o $@

RsaDigitalSign.o:
$(CC) $(CFLAGS) -include OcCryptoConfig.h ../../Library/OcCryptoLib/RsaDigitalSign.c -o $@

SecureMem.o:
$(CC) $(CFLAGS) ../../Library/OcCryptoLib/SecureMem.c -o $@

OcAppleKeysLib.o:
$(CC) $(CFLAGS) ../../Library/OcAppleKeysLib/OcAppleKeysLib.c -o $@

clean:
rm -rf *.o $(PRODUCT)
42 changes: 12 additions & 30 deletions Utilities/ConfigValidity/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,16 @@
# SPDX-License-Identifier: BSD-3-Clause
##

PRODUCT = ConfigValidity$(SUFFIX)
OBJS = ConfigValidity.o \
OcConfigurationLib.o \
OcTemplateLib.o \
OcSerializeLib.o \
OcXmlLib.o \
OcAsciiLib.o
VPATH = ../../Library/OcConfigurationLib:$\
../../Library/OcTemplateLib:$\
../../Library/OcSerializeLib:$\
../../Library/OcXmlLib:$\
../../Library/OcStringLib
include ../../User/Makefile

.DEFAULT_GOAL := all
PRODUCT = ConfigValidity$(SUFFIX)

OBJS += ConfigValidity.o
OBJS += OcConfigurationLib.o OcTemplateLib.o OcSerializeLib.o OcXmlLib.o OcAsciiLib.o

all: $(PRODUCT)

$(PRODUCT): $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PRODUCT)
$(STRIP) $(PRODUCT)

OcConfigurationLib.o:
$(CC) $(CFLAGS) ../../Library/OcConfigurationLib/OcConfigurationLib.c -o $@

OcTemplateLib.o:
$(CC) $(CFLAGS) ../../Library/OcTemplateLib/OcTemplateLib.c -o $@

OcSerializeLib.o:
$(CC) $(CFLAGS) ../../Library/OcSerializeLib/OcSerializeLib.c -o $@

OcXmlLib.o:
$(CC) $(CFLAGS) ../../Library/OcXmlLib/OcXmlLib.c -o $@

OcAsciiLib.o:
$(CC) $(CFLAGS) ../../Library/OcStringLib/OcAsciiLib.c -o $@

clean:
rm -rf *.o *.dSYM $(PRODUCT)
23 changes: 8 additions & 15 deletions Utilities/EfiResTool/Makefile
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
STANDALONE = 1

include ../../User/Makefile
## @file
# Copyright (c) 2019, vit9696. All rights reserved.
# Copyright (c) 2020, PMheart. All rights reserved.
# SPDX-License-Identifier: BSD-3-Clause
##

.DEFAULT_GOAL := all
STANDALONE = 1
PRODUCT = EfiResTool$(SUFFIX)

OBJS += EfiResTool.o

all: $(PRODUCT)

$(PRODUCT): $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PRODUCT)
$(STRIP) $(PRODUCT)

clean:
rm -rf *.o $(PRODUCT)
OBJS = EfiResTool.o
include ../../User/Makefile
16 changes: 2 additions & 14 deletions Utilities/HelloWorld/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,6 @@
# SPDX-License-Identifier: BSD-3-Clause
##

PRODUCT = HelloWorld$(SUFFIX)
OBJS = main.o
include ../../User/Makefile

.DEFAULT_GOAL := all
PRODUCT = HelloWorld$(SUFFIX)

OBJS += main.o

all: $(PRODUCT)

$(PRODUCT): $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PRODUCT)
$(STRIP) $(PRODUCT)

clean:
rm -rf *.o *.dSYM $(PRODUCT)
93 changes: 26 additions & 67 deletions Utilities/KextInject/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,71 +3,30 @@
# SPDX-License-Identifier: BSD-3-Clause
##

PRODUCT = KextInject$(SUFFIX)
OBJS = KextInject.o \
Lilu.o \
Vsmc.o \
KextPatcher.o \
PrelinkedKext.o \
PrelinkedContext.o \
Vtables.o \
Link.o \
KernelReader.o \
DataPatcher.o \
CxxSymbols.o \
Header.o \
Symbols.o \
Relocations.o \
OcXmlLib.o \
OcAsciiLib.o \
lzss.o \
lzvn.o
VPATH = ../../Library/OcAppleKernelLib:$\
../../Library/OcMiscLib:$\
../../Library/OcMachoLib:$\
../../Library/OcXmlLib:$\
../../Library/OcStringLib:$\
../../Library/OcCompressionLib/lzss:$\
../../Library/OcCompressionLib/lzvn
include ../../User/Makefile

.DEFAULT_GOAL := all
PRODUCT = KextInject$(SUFFIX)

OBJS += KextInject.o
OBJS += Lilu.o Vsmc.o
OBJS += KextPatcher.o PrelinkedKext.o PrelinkedContext.o Vtables.o Link.o KernelReader.o DataPatcher.o CxxSymbols.o Header.o Symbols.o Relocations.o OcXmlLib.o OcAsciiLib.o lzss.o lzvn.o

all: $(PRODUCT)

$(PRODUCT): $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PRODUCT)
$(STRIP) $(PRODUCT)

Lilu.o:
$(CC) $(CFLAGS) ./Lilu.c -o $@

Vsmc.o:
$(CC) $(CFLAGS) ./Vsmc.c -o $@

KextPatcher.o:
$(CC) $(CFLAGS) ../../Library/OcAppleKernelLib/KextPatcher.c -o $@

PrelinkedKext.o:
$(CC) $(CFLAGS) ../../Library/OcAppleKernelLib/PrelinkedKext.c -o $@

PrelinkedContext.o:
$(CC) $(CFLAGS) ../../Library/OcAppleKernelLib/PrelinkedContext.c -o $@

Vtables.o:
$(CC) $(CFLAGS) ../../Library/OcAppleKernelLib/Vtables.c -o $@

Link.o:
$(CC) $(CFLAGS) ../../Library/OcAppleKernelLib/Link.c -o $@

KernelReader.o:
$(CC) $(CFLAGS) ../../Library/OcAppleKernelLib/KernelReader.c -o $@

DataPatcher.o:
$(CC) $(CFLAGS) ../../Library/OcMiscLib/DataPatcher.c -o $@

CxxSymbols.o:
$(CC) $(CFLAGS) ../../Library/OcMachoLib/CxxSymbols.c -o $@

Header.o:
$(CC) $(CFLAGS) ../../Library/OcMachoLib/Header.c -o $@

Symbols.o:
$(CC) $(CFLAGS) ../../Library/OcMachoLib/Symbols.c -o $@

Relocations.o:
$(CC) $(CFLAGS) ../../Library/OcMachoLib/Relocations.c -o $@

OcXmlLib.o:
$(CC) $(CFLAGS) ../../Library/OcXmlLib/OcXmlLib.c -o $@

OcAsciiLib.o:
$(CC) $(CFLAGS) ../../Library/OcStringLib/OcAsciiLib.c -o $@

lzss.o:
$(CC) $(CFLAGS) ../../Library/OcCompressionLib/lzss/lzss.c -o $@

lzvn.o:
$(CC) $(CFLAGS) ../../Library/OcCompressionLib/lzvn/lzvn.c -o $@

clean:
rm -rf *.o *.dSYM $(PRODUCT)
25 changes: 9 additions & 16 deletions Utilities/disklabel/Makefile
Original file line number Diff line number Diff line change
@@ -1,21 +1,14 @@
STANDALONE = 1

## @file
# Copyright (c) 2019, vit9696. All rights reserved.
# Copyright (c) 2020, PMheart. All rights reserved.
# SPDX-License-Identifier: BSD-3-Clause
##

STANDALONE = 1
PRODUCT = disklabel$(SUFFIX)
OBJS = disklabel.o
include ../../User/Makefile

.DEFAULT_GOAL := all
PRODUCT = disklabel$(SUFFIX)

OBJS += disklabel.o

ifeq ($(DIST),Darwin)
LDFLAGS += -Wl,-framework,CoreFoundation -Wl,-framework,CoreGraphics -Wl,-framework,CoreText
endif

all: $(PRODUCT)

$(PRODUCT): $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o $(PRODUCT)
$(STRIP) $(PRODUCT)

clean:
rm -rf *.o $(PRODUCT)
Loading

0 comments on commit fcf9154

Please sign in to comment.