diff --git a/Make.rules b/Make.rules
index 489ad8c..ac46165 100644
--- a/Make.rules
+++ b/Make.rules
@@ -14,9 +14,9 @@ else
 $(error unknown architecture $(ARCH))
 endif
 INCDIR	   = -I$(TOPDIR)include/ -I/usr/include/efi -I/usr/include/efi/$(ARCH) -I/usr/include/efi/protocol
-CPPFLAGS   = -DCONFIG_$(ARCH)
-CFLAGS	   = -O2 -g $(ARCH3264) -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-stack-protector -ffreestanding -fno-stack-check
-LDFLAGS	   = -nostdlib
+EFI_CPPFLAGS   = -DCONFIG_$(ARCH)
+EFI_CFLAGS	   = -O2 -g $(ARCH3264) -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-stack-protector -ffreestanding -fno-stack-check
+EFI_LDFLAGS	   = -nostdlib
 CRTOBJ		= crt0-efi-$(ARCH).o
 CRTPATHS	= /lib /lib64 /lib/efi /lib64/efi /usr/lib /usr/lib64 /usr/lib/efi /usr/lib64/efi /usr/lib/gnuefi /usr/lib64/gnuefi
 CRTPATH		= $(shell for f in $(CRTPATHS); do if [ -e $$f/$(CRTOBJ) ]; then echo $$f; break; fi; done)
@@ -24,7 +24,7 @@ CRTOBJS		= $(CRTPATH)/$(CRTOBJ)
 # there's a bug in the gnu tools ... the .reloc section has to be
 # aligned otherwise the file alignment gets screwed up
 LDSCRIPT	= elf_$(ARCH)_efi.lds
-LDFLAGS		+= -shared -Bsymbolic $(CRTOBJS) -L $(CRTPATH) -L /usr/lib -L /usr/lib64 -T $(LDSCRIPT)
+EFI_LDFLAGS		+= -shared -Bsymbolic $(CRTOBJS) -L $(CRTPATH) -L /usr/lib -L /usr/lib64 -T $(LDSCRIPT)
 LOADLIBES	= -lefi -lgnuefi $(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
 FORMAT		= --target=efi-app-$(ARCH)
 OBJCOPY		= objcopy
@@ -36,23 +36,23 @@ EFIDIR		= $(DESTDIR)/usr/share/efitools/efi
 DOCDIR		= $(DESTDIR)/usr/share/efitools
 
 # globally use EFI calling conventions (requires gcc >= 4.7)
-CFLAGS += -DGNU_EFI_USE_MS_ABI
+EFI_CFLAGS += -DGNU_EFI_USE_MS_ABI
 
 ifeq ($(ARCH),x86_64)
-  CFLAGS += -DEFI_FUNCTION_WRAPPER -mno-red-zone
+  EFI_CFLAGS += -DEFI_FUNCTION_WRAPPER -mno-red-zone
 endif
 
 ifeq ($(ARCH),ia32)
-  CFLAGS += -mno-red-zone
+  EFI_CFLAGS += -mno-red-zone
 endif
 
 ifeq ($(ARCH),arm)
-  LDFLAGS += --defsym=EFI_SUBSYSTEM=0x0a
+  EFI_LDFLAGS += --defsym=EFI_SUBSYSTEM=0x0a
   FORMAT = -O binary
 endif
 
 ifeq ($(ARCH),aarch64)
-  LDFLAGS += --defsym=EFI_SUBSYSTEM=0x0a
+  EFI_LDFLAGS += --defsym=EFI_SUBSYSTEM=0x0a
   FORMAT = -O binary
 endif
 
@@ -61,7 +61,7 @@ endif
 		   -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
 		   -j .reloc $(FORMAT) $*.so $@
 %.so: %.o
-	$(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES)
+	$(LD) $(EFI_LDFLAGS) $^ -o $@ $(LOADLIBES)
 	# check we have no undefined symbols
 	nm -D $@ | grep ' U ' && exit 1 || exit 0
 
@@ -99,13 +99,13 @@ getvar = $(shell if [ "$(1)" = "PK" -o "$(1)" = "KEK" ]; then echo $(1); else ec
 	./sign-efi-sig-list -a -c PK.crt -k PK.key dbx $< $@
 
 %.o: %.c
-	$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+	$(CC) $(INCDIR) $(EFI_CFLAGS) $(EFI_CPPFLAGS) -c $< -o $@
 
 %.efi.o: %.c
-	$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -fno-toplevel-reorder -DBUILD_EFI -c $< -o $@
+	$(CC) $(INCDIR) $(EFI_CFLAGS) $(EFI_CPPFLAGS) -fno-toplevel-reorder -DBUILD_EFI -c $< -o $@
 
 %.efi.s: %.c
-	$(CC) -S $(INCDIR) $(CFLAGS) $(CPPFLAGS) -fno-toplevel-reorder -DBUILD_EFI -c $< -o $@
+	$(CC) -S $(INCDIR) $(EFI_CFLAGS) $(EFI_CPPFLAGS) -fno-toplevel-reorder -DBUILD_EFI -c $< -o $@
 
 %.crt:
 	openssl req -new -x509 -newkey rsa:2048 -subj "/CN=$*/" -keyout $*.key -out $@ -days 3650 -nodes -sha256
