public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Andrew Fish" <afish@apple.com>
To: devel@edk2.groups.io, tpradeep@cisco.com
Subject: Re: [edk2-devel] Build New Package with EDKII OVMF
Date: Tue, 06 Aug 2019 09:51:52 -0700	[thread overview]
Message-ID: <281DBC2C-F1FA-412D-8619-680BDAC0994B@apple.com> (raw)
In-Reply-To: <75CED343-73C4-4C32-AAFE-4A31041A5849@cisco.com>

[-- Attachment #1: Type: text/plain, Size: 7446 bytes --]



> On Aug 6, 2019, at 3:15 AM, via Groups.Io <tpradeep=cisco.com@groups.io> wrote:
> 
>    Hello All,
> 
>    I am new to EDKII (UEFI) development. Cloned UDK2018 branch and modified Conf/target.txt to build OVMF package. OVMF.fd boots up fine on QEMU
> 

Shakthi,

Conf/target.txt is just the default arguments for the build command. So `build -p SampleModulePkg/SampleModulePkg.dsc` should work for you? 

You can generally ignore the Conf/target.txt if you pass enough arguments to build. You did not mention what OS, or what tools you are using so I can't give you the args you need to use. 

For me on a Mac controlling what builds from the command line looks like:
$ build -p MdePkg/MdePkg.dsc  -a X64 -t XCODE5 -b DEBUG

You would need to replace the -t with the toolchain you are using, and that should match the TOOL_CHAIN_TAG you edited in the Conf/target.txt file. 

/Volumes/Case/UDK2018(UDK2018)>. edksetup.sh
Loading previous configuration from /Volumes/Case/UDK2018/Conf/BuildEnv.sh
WORKSPACE: /Volumes/Case/UDK2018
EDK_TOOLS_PATH: /Volumes/Case/UDK2018/BaseTools
CONF_PATH: /Volumes/Case/UDK2018/Conf
/Volumes/Case/UDK2018(UDK2018)>build -h
Usage: build.exe [options] [all|fds|genc|genmake|clean|cleanall|cleanlib|modules|libraries|run]

Copyright (c) 2007 - 2017, Intel Corporation  All rights reserved.

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -a TARGETARCH, --arch=TARGETARCH
                        ARCHS is one of list: IA32, X64, IPF, ARM, AARCH64 or
                        EBC, which overrides target.txt's TARGET_ARCH
                        definition. To specify more archs, please repeat this
                        option.
  -p PLATFORMFILE, --platform=PLATFORMFILE
                        Build the platform specified by the DSC file name
                        argument, overriding target.txt's ACTIVE_PLATFORM
                        definition.
  -m MODULEFILE, --module=MODULEFILE
                        Build the module specified by the INF file name
                        argument.
  -b BUILDTARGET, --buildtarget=BUILDTARGET
                        Using the TARGET to build the platform, overriding
                        target.txt's TARGET definition.
  -t TOOLCHAIN, --tagname=TOOLCHAIN
                        Using the Tool Chain Tagname to build the platform,
                        overriding target.txt's TOOL_CHAIN_TAG definition.
  -x SKUID, --sku-id=SKUID
                        Using this name of SKU ID to build the platform,
                        overriding SKUID_IDENTIFIER in DSC file.
  -n THREADNUMBER       Build the platform using multi-threaded compiler. The
                        value overrides target.txt's
                        MAX_CONCURRENT_THREAD_NUMBER. When value is set to 0,
                        tool automatically detect number of processor threads,
                        set value to 1 means disable multi-thread build, and
                        set value to more than 1 means user specify the
                        threads number to build.
  -f FDFFILE, --fdf=FDFFILE
                        The name of the FDF file to use, which overrides the
                        setting in the DSC file.
  -r ROMIMAGE, --rom-image=ROMIMAGE
                        The name of FD to be generated. The name must be from
                        [FD] section in FDF file.
  -i FVIMAGE, --fv-image=FVIMAGE
                        The name of FV to be generated. The name must be from
                        [FV] section in FDF file.
  -C CAPNAME, --capsule-image=CAPNAME
                        The name of Capsule to be generated. The name must be
                        from [Capsule] section in FDF file.
  -u, --skip-autogen    Skip AutoGen step.
  -e, --re-parse        Re-parse all meta-data files.
  -c, --case-insensitive
                        Don't check case of file name.
  -w, --warning-as-error
                        Treat warning in tools as error.
  -j LOGFILE, --log=LOGFILE
                        Put log in specified file as well as on console.
  -s, --silent          Make use of silent mode of (n)make.
  -q, --quiet           Disable all messages except FATAL ERRORS.
  -v, --verbose         Turn on verbose output with informational messages
                        printed, including library instances selected, final
                        dependency expression, and warning messages, etc.
  -d DEBUG, --debug=DEBUG
                        Enable debug messages at specified level.
  -D MACROS, --define=MACROS
                        Macro: "Name [= Value]".
  -y REPORTFILE, --report-file=REPORTFILE
                        Create/overwrite the report to the specified filename.
  -Y REPORTTYPE, --report-type=REPORTTYPE
                        Flags that control the type of build report to
                        generate.  Must be one of: [PCD, LIBRARY, FLASH,
                        DEPEX, BUILD_FLAGS, FIXED_ADDRESS, HASH,
                        EXECUTION_ORDER].  To specify more than one flag,
                        repeat this option on the command line and the default
                        flag set is [PCD, LIBRARY, FLASH, DEPEX, HASH,
                        BUILD_FLAGS, FIXED_ADDRESS]
  -F FLAG, --flag=FLAG  Specify the specific option to parse EDK UNI file.
                        Must be one of: [-c, -s]. -c is for EDK framework UNI
                        file, and -s is for EDK UEFI UNI file. This option can
                        also be specified by setting *_*_*_BUILD_FLAGS in
                        [BuildOptions] section of platform DSC. If they are
                        both specified, this value will override the setting
                        in [BuildOptions] section of platform DSC.
  -N, --no-cache        Disable build cache mechanism
  --conf=CONFDIRECTORY  Specify the customized Conf directory.
  --check-usage         Check usage content of entries listed in INF file.
  --ignore-sources      Focus to a binary build and ignore all source files
  --pcd=OPTIONPCD       Set PCD value by command line. Format: "PcdName=Value"
  -l COMMANDLENGTH, --cmd-len=COMMANDLENGTH
                        Specify the maximum line length of build command.
                        Default is 4096.
  --hash                Enable hash-based caching during build process.
  --binary-destination=BINCACHEDEST
                        Generate a cache of binary files in the specified
                        directory.
  --binary-source=BINCACHESOURCE
                        Consume a cache of binary files from the specified
                        directory.
  --genfds-multi-thread
                        Enable GenFds multi thread to generate ffs file.


Thanks,

Andrew Fish


>    Now I am trying to create a new package and build. I am following EDK II Module Writer's Guide v 7.0
> 
>    I have created a SampleModulePkg with an SampleHelloWorld application in it. Made sure SampleModulePkg.dsc, SampleModulePkg.dec and Application/HelloWorld/HelloWorld.inf has correct content. 
> 
>    When I run build command, I don’t see SampleModulePkg getting built
> 
>    Am I missing something?
> 
>    Regards,
>    Shakthi
> 
> 
> 
> 
> 
> 
> 


[-- Attachment #2: Type: text/html, Size: 35550 bytes --]

      reply	other threads:[~2019-08-06 16:53 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <07E34EFF-E386-4E1A-AB0B-5B0D7EA66D4C@cisco.com>
2019-08-06 10:15 ` Build New Package with EDKII OVMF Shakthi Pradeep (tpradeep)
2019-08-06 16:51   ` Andrew Fish [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=281DBC2C-F1FA-412D-8619-680BDAC0994B@apple.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox