Good question.
 
The short answer:
 
This "package" is automatically generated to facilitate the applications configuration step.  It's created by simply setting XDC_CFGFILE to point at your ceapp.cfg, and then including "$(EXAMPLES_ROOTDIR)/buildutils/xdccfg_linuxarm.mak".
 
The long answer:
 
Refer to xdccfg_linuxarm.mak for the gory details.  The video_copy/dualcpu/makefile describes some of these details:
# Input:
# XDC_CFGFILE: location of the program configuration script (if in different
#              directory, include the relative path to the file)
# Implicit input: XDC_ROOT and XDC_PATH defined by the xdcpaths.mak above
#
# Output:
# XDC_FLAGS:   additional compiler flags that must be added to existing 
#              CFLAGS or CPPFLAGS
# XDC_CFILE:   name of the XDC-generated C file; usually does not need to be
#              used explicitly, the existing .c->.o rules will take care of it
# XDC_OFILE:   name of object file produced by compiling XDC-generated C file;
#              must be linked with the user's application
# XDC_LFILE:   list of Codec Engine libraries that must be supplied to the
#              linker (usually as `cat $(XDC_LFILE)`)
# Implicit output: rule that generates .c file from the program configuration
#              script (XDC_CFGFILE); rule to generate dummy package one dir.
#              level below the script; rule that cleans generated files
XDC_CFGFILE = ./ceapp.cfg
include       $(EXAMPLES_ROOTDIR)/buildutils/xdccfg_linuxarm.mak
Throughout the remainder of the makefile, the XDC_* variables are used as described in the comment above.
 
The reason for this non-standard config step is that the Codec Engine supports a wide variety of environments - from single processor x86 Linux, to the heterogeneous DM644x devices, to single processor DSP-only systems, and others.
 
The application's configuration defined in ceapp.cfg will describe _which_ environment it will be running in, and will result in the generation of source code specific for that environment (XDC_CFILE).  (For example, the implementation of CERuntime_init() is autogenerated based on your configuration).
 
Additionally, the list of libraries to link against (XDC_LFILE) will vary based on your configuration (do you need DSP/BIOS Link?  CMEM?  DSP/BIOS?  Framework Components?  Debug or release?  Imaging support?  Video support?  A proprietary class of codec support?  etc).  The good news is, you don't need to know what you need(!), simply describe your config in ceapp.cfg and the Config Kit (XDC tooling) will figure out the details for you; the list of libraries will be in the XDC_LFILE, you just have to link against the libraries declared in that file.
 
( FWIW, there is tooling under development for a future version of Codec Engine which will make this config step more user friendly. )
 
Ask if you have follow-up questions; I know this can be a bit much to follow at first.  :)
 
Chris


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of John harley
Sent: Tuesday, September 05, 2006 10:34 PM
To: davinci-linux-open-source
Subject: why running the makefile in...codec_engine_1_00/examples/apps/video_copy/dualcpu/ willproduce the direcory ./ceapp_package?

when I run the example in apps directory as the document ,
 
first get into the     codec_engine_1_00/examples/apps/video_copy/dualcpu/  and then     gmake clean , 
 
gmake , 
 
therefore , a directory named ceapp_package appears,
 
I check the makefile in this directory, but its content seems can not produce it ,  I have no idea which command or which file included in makefile will produce this directory.
 
by the way, we know the ceapp.cfg is a program configuration file for this app and makefile is used to build the executable, while , what is the relationship between them  and does  the makefile use ceapp.cfg via XDC tools ?
 
I am confused ,,,hoping meaningful reply , thanks in advance , :)
 
 
 
 
 
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to