The flag activates some Win32 compatibility quirks and on clang/openbsd it enables so many of them that the code doesn't compile anymore. Therefore move it into the "Win32 area" in that Makefile. Change-Id: Ic77c04941e40a568f1d74cec09eb3d22a66e69b0 Signed-off-by: Patrick Georgi <patrick@coreboot.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/78724 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
		
			
				
	
	
		
			285 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			285 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| ## SPDX-License-Identifier: GPL-2.0-only
 | |
| compressionobj :=
 | |
| compressionobj += compress.o
 | |
| # LZ4
 | |
| compressionobj += lz4.o
 | |
| compressionobj += lz4hc.o
 | |
| compressionobj += lz4frame.o
 | |
| compressionobj += xxhash.o
 | |
| compressionobj += lz4_wrapper.o
 | |
| # LZMA
 | |
| compressionobj += lzma.o
 | |
| compressionobj += LzFind.o
 | |
| compressionobj += LzmaDec.o
 | |
| compressionobj += LzmaEnc.o
 | |
| 
 | |
| cbfsobj :=
 | |
| cbfsobj += cbfstool.o
 | |
| cbfsobj += common.o
 | |
| cbfsobj += cbfs_image.o
 | |
| cbfsobj += cbfs-mkstage.o
 | |
| cbfsobj += cbfs-mkpayload.o
 | |
| cbfsobj += elfheaders.o
 | |
| cbfsobj += rmodule.o
 | |
| cbfsobj += xdr.o
 | |
| cbfsobj += partitioned_file.o
 | |
| cbfsobj += platform_fixups.o
 | |
| # COMMONLIB
 | |
| cbfsobj += cbfs_private.o
 | |
| cbfsobj += fsp_relocate.o
 | |
| # FMAP
 | |
| cbfsobj += fmap.o
 | |
| cbfsobj += kv_pair.o
 | |
| cbfsobj += valstr.o
 | |
| # linux as payload
 | |
| cbfsobj += linux_trampoline.o
 | |
| cbfsobj += cbfs-payload-linux.o
 | |
| # compression algorithms
 | |
| cbfsobj += $(compressionobj)
 | |
| 
 | |
| fmapobj :=
 | |
| fmapobj += fmaptool.o
 | |
| fmapobj += cbfs_sections.o
 | |
| fmapobj += fmap_from_fmd.o
 | |
| fmapobj += fmd.o
 | |
| fmapobj += fmd_parser.o
 | |
| fmapobj += fmd_scanner.o
 | |
| # FMAP
 | |
| fmapobj += fmap.o
 | |
| fmapobj += kv_pair.o
 | |
| fmapobj += valstr.o
 | |
| 
 | |
| rmodobj :=
 | |
| rmodobj += rmodtool.o
 | |
| rmodobj += rmodule.o
 | |
| rmodobj += common.o
 | |
| rmodobj += elfheaders.o
 | |
| rmodobj += xdr.o
 | |
| 
 | |
| ifwiobj :=
 | |
| ifwiobj += ifwitool.o
 | |
| ifwiobj += common.o
 | |
| 
 | |
| ifitobj :=
 | |
| ifitobj += ifittool.o
 | |
| ifitobj += common.o
 | |
| ifitobj += fit.o
 | |
| ifitobj += cbfs_image.o
 | |
| # Make it link ....
 | |
| ifitobj += xdr.o
 | |
| ifitobj += elfheaders.o
 | |
| ifitobj += partitioned_file.o
 | |
| ifitobj += cbfs-mkstage.o
 | |
| ifitobj += cbfs-mkpayload.o
 | |
| ifitobj += rmodule.o
 | |
| # FMAP
 | |
| ifitobj += fmap.o
 | |
| ifitobj += kv_pair.o
 | |
| ifitobj += valstr.o
 | |
| # compression algorithms
 | |
| ifitobj += $(compressionobj)
 | |
| 
 | |
| 
 | |
| cbfscompobj :=
 | |
| cbfscompobj += $(compressionobj)
 | |
| cbfscompobj += cbfscomptool.o
 | |
| 
 | |
| amdcompobj :=
 | |
| amdcompobj += amdcompress.o
 | |
| amdcompobj += elfheaders.o
 | |
| amdcompobj += common.o
 | |
| amdcompobj += xdr.o
 | |
| 
 | |
| elogobj :=
 | |
| elogobj := elogtool.o
 | |
| elogobj += eventlog.o
 | |
| elogobj += valstr.o
 | |
| elogobj += elog.o
 | |
| elogobj += common.o
 | |
| elogobj += flashrom.o
 | |
| 
 | |
| include $(top)/util/cbfstool/fpt_formats/Makefile.inc
 | |
| cse_fpt_obj :=
 | |
| cse_fpt_obj += cse_fpt.o
 | |
| cse_fpt_obj += common.o
 | |
| cse_fpt_obj += cse_helpers.o
 | |
| cse_fpt_obj += $(foreach var, $(fpt_formats_obj), $(var))
 | |
| 
 | |
| include $(top)/util/cbfstool/bpdt_formats/Makefile.inc
 | |
| cse_serger_obj :=
 | |
| cse_serger_obj += cse_serger.o
 | |
| cse_serger_obj += common.o
 | |
| cse_serger_obj += cse_helpers.o
 | |
| cse_serger_obj += $(foreach var, $(bpdt_formats_obj), $(var))
 | |
| 
 | |
| TOOLCFLAGS ?= -Werror -Wall -Wextra -Wshadow
 | |
| TOOLCFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow
 | |
| TOOLCFLAGS += -Wstrict-prototypes -Wwrite-strings
 | |
| TOOLCFLAGS += -O2
 | |
| TOOLCPPFLAGS ?= -D_DEFAULT_SOURCE # memccpy() from string.h
 | |
| TOOLCPPFLAGS += -D_BSD_SOURCE -D_SVID_SOURCE # _DEFAULT_SOURCE for older glibc
 | |
| TOOLCPPFLAGS += -D_GNU_SOURCE # memmem() from string.h
 | |
| TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
 | |
| TOOLCPPFLAGS += -I$(top)/util/cbfstool
 | |
| TOOLCPPFLAGS += -I$(objutil)/cbfstool
 | |
| TOOLCPPFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
 | |
| TOOLCPPFLAGS += -include $(top)/src/commonlib/bsd/include/commonlib/bsd/compiler.h
 | |
| TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/include
 | |
| TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/firmware/2lib/include
 | |
| TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/host/include
 | |
| TOOLCPPFLAGS += -I$(VBOOT_SOURCE)/host/lib/include
 | |
| # UEFI header file support. It's not pretty, but that's what we currently
 | |
| # have right now.
 | |
| TOOLCPPFLAGS += -I$(top)/src
 | |
| TOOLCPPFLAGS += -I$(top)/src/vendorcode/intel/edk2/uefi_2.4/MdePkg/Include
 | |
| 
 | |
| TOOLLDFLAGS ?=
 | |
| 
 | |
| ifeq ($(shell uname -s | cut -c-7 2>/dev/null), MINGW32)
 | |
| HOSTCFLAGS += -fms-extensions
 | |
| TOOLCFLAGS += -mno-ms-bitfields
 | |
| endif
 | |
| ifeq ($(shell uname -o 2>/dev/null), Cygwin)
 | |
| TOOLCFLAGS+=-std=gnu11
 | |
| TOOLCPPFLAGS+=-D_GNU_SOURCE
 | |
| else
 | |
| TOOLCFLAGS+=-std=c11
 | |
| endif
 | |
| 
 | |
| LZ4CFLAGS ?= -Wno-strict-prototypes
 | |
| 
 | |
| VBOOT_HOSTLIB = $(VBOOT_HOST_BUILD)/libvboot_host.a
 | |
| 
 | |
| $(VBOOT_HOSTLIB):
 | |
| 	printf "    MAKE       $(subst $(objutil)/,,$(@))\n"
 | |
| 	unset CFLAGS LDFLAGS; $(MAKE) -C $(VBOOT_SOURCE) \
 | |
| 		BUILD=$(VBOOT_HOST_BUILD) \
 | |
| 		CC="$(HOSTCC)" \
 | |
| 		PKG_CONFIG="true" \
 | |
| 		USE_FLASHROM=0 \
 | |
| 		V=$(V) \
 | |
| 		DEBUG= \
 | |
| 		hostlib
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(objutil)/cbfstool/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/flashmap/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lzma/C/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(top)/src/commonlib/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(top)/src/commonlib/bsd/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/lz4/lib/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) $(LZ4CFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/fpt_formats/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/%.o: $(top)/util/cbfstool/bpdt_formats/%.c
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@))\n"
 | |
| 	$(HOSTCC) $(TOOLCPPFLAGS) $(TOOLCFLAGS) $(HOSTCFLAGS) -c -o $@ $<
 | |
| 
 | |
| $(objutil)/cbfstool/cbfstool: $(addprefix $(objutil)/cbfstool/,$(cbfsobj)) $(VBOOT_HOSTLIB)
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) -v $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfsobj)) $(VBOOT_HOSTLIB)
 | |
| 
 | |
| $(objutil)/cbfstool/fmaptool: $(addprefix $(objutil)/cbfstool/,$(fmapobj))
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(fmapobj))
 | |
| 
 | |
| $(objutil)/cbfstool/rmodtool: $(addprefix $(objutil)/cbfstool/,$(rmodobj))
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(rmodobj))
 | |
| 
 | |
| $(objutil)/cbfstool/ifwitool: $(addprefix $(objutil)/cbfstool/,$(ifwiobj))
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(ifwiobj))
 | |
| 
 | |
| $(objutil)/cbfstool/ifittool: $(addprefix $(objutil)/cbfstool/,$(ifitobj)) $(VBOOT_HOSTLIB)
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(ifitobj)) $(VBOOT_HOSTLIB)
 | |
| 
 | |
| $(objutil)/cbfstool/cbfs-compression-tool: $(addprefix $(objutil)/cbfstool/,$(cbfscompobj))
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cbfscompobj))
 | |
| 
 | |
| $(objutil)/cbfstool/amdcompress: $(addprefix $(objutil)/cbfstool/,$(amdcompobj))
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(amdcompobj)) -lz
 | |
| 
 | |
| $(objutil)/cbfstool/elogtool: $(addprefix $(objutil)/cbfstool/,$(elogobj)) $(VBOOT_HOSTLIB)
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(elogobj)) $(VBOOT_HOSTLIB)
 | |
| 
 | |
| $(objutil)/cbfstool/cse_fpt: $(addprefix $(objutil)/cbfstool/,$(cse_fpt_obj))
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cse_fpt_obj))
 | |
| 
 | |
| $(objutil)/cbfstool/cse_serger: $(addprefix $(objutil)/cbfstool/,$(cse_serger_obj))
 | |
| 	printf "    HOSTCC     $(subst $(objutil)/,,$(@)) (link)\n"
 | |
| 	$(HOSTCC) $(TOOLLDFLAGS) -o $@ $(addprefix $(objutil)/cbfstool/,$(cse_serger_obj))
 | |
| 
 | |
| # Yacc source is superset of header
 | |
| $(objutil)/cbfstool/fmd.o: TOOLCFLAGS += -Wno-redundant-decls
 | |
| $(objutil)/cbfstool/fmd_parser.o: TOOLCFLAGS += -Wno-redundant-decls
 | |
| # Lex generates unneeded functions and declarations
 | |
| $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-redundant-decls
 | |
| $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-unused-function
 | |
| # Tolerate lzma sdk warnings
 | |
| $(objutil)/cbfstool/LzmaEnc.o: TOOLCFLAGS += -Wno-sign-compare -Wno-cast-qual
 | |
| # Tolerate commonlib warnings
 | |
| $(objutil)/cbfstool/cbfs_private.o: TOOLCFLAGS += -Wno-sign-compare
 | |
| # Tolerate lz4 warnings
 | |
| $(objutil)/cbfstool/lz4.o: TOOLCFLAGS += -Wno-missing-prototypes
 | |
| $(objutil)/cbfstool/lz4_wrapper.o: TOOLCFLAGS += -Wno-attributes
 | |
| 
 | |
| $(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_parser.h
 | |
| $(objutil)/cbfstool/fmd.o: $(objutil)/cbfstool/fmd_scanner.h
 | |
| $(objutil)/cbfstool/fmd_parser.o: $(objutil)/cbfstool/fmd.o
 | |
| $(objutil)/cbfstool/fmd_scanner.o: $(objutil)/cbfstool/fmd.o
 | |
| $(objutil)/cbfstool/fmd_scanner.o: TOOLCFLAGS += -Wno-sign-compare
 | |
| 
 | |
| $(objutil)/cbfstool/%: $(top)/util/cbfstool/%_shipped
 | |
| 	mkdir -p $(dir $@)
 | |
| 	cp $< $@
 | |
| 
 | |
| ifeq ($(CONFIG_FMD_GENPARSER),y)
 | |
| TOOLLEX := lex
 | |
| TOOLYACC := bison
 | |
| 
 | |
| # the .c rule also creates .h
 | |
| $(top)/util/cbfstool/fmd_scanner.h_shipped: $(top)/util/cbfstool/fmd_scanner.c_shipped
 | |
| $(top)/util/cbfstool/fmd_scanner.c_shipped: $(top)/util/cbfstool/fmd_scanner.l
 | |
| 	echo "    LEX        util/cbfstool/fmd_scanner.[ch]"
 | |
| 	$(TOOLLEX) -L -o $@ --header-file=$(patsubst %.c_shipped,%.h_shipped,$@) $<
 | |
| 
 | |
| # the .c rule also creates .h
 | |
| $(top)/util/cbfstool/fmd_parser.h_shipped: $(top)/util/cbfstool/fmd_parser.c_shipped
 | |
| $(top)/util/cbfstool/fmd_parser.c_shipped: $(top)/util/cbfstool/fmd_parser.y
 | |
| 	echo "    YACC       util/cbfstool/fmd_parser.[ch]"
 | |
| 	$(TOOLYACC) -l -o $@ --defines=$(patsubst %.c_shipped,%.h_shipped,$@) $<
 | |
| 
 | |
| endif # CONFIG_FMD_GENPARSER
 |