VirtualBox

Ignore:
Timestamp:
Sep 28, 2013 6:53:10 PM (11 years ago)
Author:
vboxsync
Message:

Bit the bullet and forked tools_def.template, dropping most of the horrible sed stuff and hand crafting a usable template instead.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/Firmware/Makefile.kmk

    r48740 r48754  
    255255        --tagname $(VBOX_EFI_TOOL_CHAIN)
    256256
     257#
     258# Tools configurations.
     259#
     260$(VBoxEfiFirmware_0_OUTDIR)/x86/Conf/tools_def.txt \
     261$(VBoxEfiFirmware_0_OUTDIR)/amd64/Conf/tools_def.txt: \
     262               $(VBOX_PATH_EFI_FIRMWARE)/vbox-tools_def.txt \
     263                $(MAKEFILE) | $$(dir $$@)
     264        $(RM) -f -- "$@"
     265        $(SED) \
     266                -e 's,@VBOX_IASLCMD@,$(VBOX_IASLCMD),' \
     267                -e 's,@KMK@,$(MAKE),' \
     268               \
     269                -e 's,@VBOX_PATH_PREFIX_MINGW32@,$(VBOX_PATH_PREFIX_MINGW32),' \
     270                -e 's,@VBOX_PATH_PREFIX_MINGW64@,$(VBOX_PATH_PREFIX_MINGW64),' \
     271                -e 's,@VBOX_MINGW32_Wno@,-Wno-address $(VBOX_MINGW32_Wno-unused-but-set-variable) $(VBOX_MINGW32_Wno-maybe-uninitialized) $(VBOX_MINGW32_Wno-array-bounds),' \
     272                -e 's,@VBOX_MINGW64_Wno@,-Wno-address $(VBOX_MINGW64_Wno-unused-but-set-variable) $(VBOX_MINGW64_Wno-maybe-uninitialized) $(VBOX_MINGW64_Wno-array-bounds),' \
     273                -e 's,@VBOX_MINGW64_USER_LABEL_PREFIX@,$(VBOX_MINGW64_USER_LABEL_PREFIX),' \
     274               \
     275                -e 's,@PATH_VS2010@,$(PATH_TOOL_$(VBOX_VCC_TOOL)),' \
     276                -e 's,@PATH_VS2010_AMD64_BIN@,$(PATH_TOOL_$(VBOX_VCC_TOOL))/bin/$(subst x86,x86_amd64,$(KBUILD_HOST_ARCH)),' \
     277               \
     278                --output $@ $<
    257279
    258280#
    259281# VBoxEFI32
    260282#
    261 
    262283$(VBoxEfiFirmware_0_OUTDIR)/x86/Conf/target.txt: $(MAKEFILE) | $$(dir $$@) $(VBOX_EFI_BLDPROGS)
    263284        $(APPEND) -tn "$@" \
     
    275296                "MAX_CONCURRENT_THREAD_NUMBER = 1"
    276297
    277 $(VBoxEfiFirmware_0_OUTDIR)/x86/Conf/tools_def.txt: \
    278                $(VBOX_PATH_EFI_FIRMWARE)/BaseTools/Conf/tools_def.template \
    279                 $(MAKEFILE) | $$(dir $$@)
    280         $(RM) -f -- "$@"
    281 ifeq ($(VBOX_EFI_TOOL_CHAIN),UNIXGCC)
    282         $(SED) \
    283                 -e 's,^DEFINE UNIXGCC_IA32_PETOOLS_PREFIX.*$(DOLLAR),DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = $(VBOX_PATH_PREFIX_MINGW32),' \
    284                 -e 's,^DEFINE UNIXGCC_X64_PETOOLS_PREFIX.*$(DOLLAR),DEFINE UNIXGCC_X64_PETOOLS_PREFIX = $(VBOX_PATH_PREFIX_MINGW64),' \
    285                 -e 's,^DEFINE UNIX_IASL_BIN.*$(DOLLAR),DEFINE UNIX_IASL_BIN = $(VBOX_IASLCMD),' \
    286                 -e 's,^\(DEFINE GCC_ALL_CC_FLAGS.*$(DOLLAR)\),\1 -Wno-address $(VBOX_MINGW32_Wno-unused-but-set-variable) $(VBOX_MINGW32_Wno-maybe-uninitialized),' \
    287                 $(if $(VBOX_MINGW32_Wno-array-bounds),,-e 's,-Wno-array-bounds,,g') \
    288                 -e 's,=[[:space:]]*make$(DOLLAR),= $(MAKE),' \
    289                $(if-expr "$(VBOX_EFI_BUILD_TARGET)" == "DEBUG", -e 's/ -O2 / /g',) \
    290                 --output $@ $<
    291 else if ($(VBOX_EFI_TOOL_CHAIN),VS2010)
    292         $(SED) \
    293                 -e 's,^DEFINE VS2010_BIN[[:space:]]*=.*$(DOLLAR),DEFINE VS2010_BIN = $(PATH_TOOL_$(VBOX_VCC_TOOL))/bin,' \
    294                 -e 's,^DEFINE VS2010_DLL[[:space:]]*=.*$(DOLLAR),DEFINE VS2010_DLL = DEF(VS2010_BIN),' \
    295                 -e 's,^\([^=]*_VS2010[a-zA-Z_0-9]*_CC_FLAGS[[:space:]]*=.*\)$(DOLLAR),\1 /Oy-,' \
    296                 --output $@ $<
    297 #               -e 's,^\([^=]*_VS2010[a-zA-Z_0-9]*_CC_FLAGS[[:space:]]*=.*\) /O1ib2 \(.*\)$(DOLLAR),\1 /Osi /GF /Gy \2 /Oy-,'
    298 else
    299  $(error Unexpected VBOX_EFI_TOOL_CHAIN value "$(VBOX_EFI_TOOL_CHAIN)")
    300 endif
    301 
    302298## @todo 32-bit DEBUG is busted, image to big.
    303299$(VBoxEfiFirmware_0_OUTDIR)/x86/$(VBOX_EFI_OUTPUT_SUBDIR)/FV/OVMF.fd \
     
    318314# VBoxEFI64
    319315#
    320 
    321316$(VBoxEfiFirmware_0_OUTDIR)/amd64/Conf/target.txt: $(MAKEFILE) | $$(dir $$@) $(VBOX_EFI_BLDPROGS)
    322317        $(APPEND) -tn "$@" \
     
    334329                "MAX_CONCURRENT_THREAD_NUMBER = 1"
    335330
    336 # Hack! Drop an underscore from the entrypoint, or SecMain won't work.
    337 $(VBoxEfiFirmware_0_OUTDIR)/amd64/Conf/tools_def.txt: \
    338                $(VBOX_PATH_EFI_FIRMWARE)/BaseTools/Conf/tools_def.template \
    339                 $(MAKEFILE) | $$(dir $$@)
    340         $(RM) -f -- "$@"
    341 ifeq ($(VBOX_EFI_TOOL_CHAIN),UNIXGCC)
    342         $(SED) \
    343                 -e 's,^DEFINE UNIXGCC_IA32_PETOOLS_PREFIX.*$(DOLLAR),DEFINE UNIXGCC_IA32_PETOOLS_PREFIX = $(VBOX_PATH_PREFIX_MINGW32),' \
    344                 -e 's,^DEFINE UNIXGCC_X64_PETOOLS_PREFIX.*$(DOLLAR),DEFINE UNIXGCC_X64_PETOOLS_PREFIX = $(VBOX_PATH_PREFIX_MINGW64),' \
    345                 -e 's,^DEFINE UNIX_IASL_BIN.*$(DOLLAR),DEFINE UNIX_IASL_BIN = $(VBOX_IASLCMD),' \
    346                 -e 's,^\(DEFINE GCC_ALL_CC_FLAGS.*$(DOLLAR)\),\1 -Wno-address $(VBOX_MINGW64_Wno-unused-but-set-variable) $(VBOX_MINGW64_Wno-maybe-uninitialized),' \
    347                 $(if $(VBOX_MINGW64_Wno-array-bounds),,-e 's,-Wno-array-bounds,,g') \
    348                 -e 's,=[[:space:]]*make$(DOLLAR),= $(MAKE),' \
    349                 -e 's,^\(DEFINE GCC_IA32_X64_DLINK_COMMON.*\)$(DOLLAR),\1 --fatal-warnings,' \
    350                 $(if $(VBOX_MINGW64_USER_LABEL_PREFIX),,-e 's,^\(DEFINE GCC_IA32_X64_DLINK_FLAGS.* --entry \)_,\1,') \
    351                 --output $@ $<
    352 else if ($(VBOX_EFI_TOOL_CHAIN),VS2010)
    353         $(SED) \
    354                 -e 's,^DEFINE VS2010_BIN[[:space:]]*=.*$(DOLLAR),DEFINE VS2010_BIN = $(PATH_TOOL_$(VBOX_VCC_TOOL))/bin,' \
    355                 -e 's,^DEFINE VS2010_DLL[[:space:]]*=.*$(DOLLAR),DEFINE VS2010_DLL = DEF(VS2010_BIN),' \
    356                 -e 's,^\([^=]*_VS2010[a-zA-Z_0-9]*_CC_FLAGS[[:space:]]*=.*\) /X \(.*\)$(DOLLAR),\1 \2 /Oy-,' \
    357                 --output $@ $<
    358 else
    359  $(error Unexpected VBOX_EFI_TOOL_CHAIN value "$(VBOX_EFI_TOOL_CHAIN)")
    360 endif
    361 
    362331$(VBoxEfiFirmware_0_OUTDIR)/amd64/$(VBOX_EFI_OUTPUT_SUBDIR)/FV/OVMF.fd \
    363332+ $(VBoxEfiFirmwareDbg64_SOURCES): \
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette