[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Minios-devel] Excited for Xen Project in Outreachy

Hi Kanika,

On 24 Feb 2018, at 20:40, KANIKA SAINI <kanika16047@xxxxxxxxxxx> wrote:

Thank you, Lars. 
The links you have provided have managed to make things clearer to me now.

I understand how a flag in the makefile can be changed by passing a parameter to the make command in the command line and how 
"origin" checks where the variable comes from.
I did realize creating the dependency of the Makefile itself would indeed not be a good idea at the finer level of granularity. 
I went through the documentation at http://unikraft.neclab.eu/developers-app.html and can now understand the structure of makefiles of libraries better. 

I spent some time studying the problem and came across this solution at https://www.cmcrossroads.com/article/rebuilding-when-cppflags-changes which uses the concept of signatures. 
I also understood how rules are dynamically being set by the Makefiles in support/build/ directory. 

To be able to draft a solution there's one more thing lacking my understanding, which is the order of the execution of the makefiles. 
What calls the dynamic makefiles and when is the main makefile called and how do the dynamic makefiles pass those parameters to the main one?

I am not sure I understand your question.

Generally, you can debug makefiles which can help you understand what is going on: e.g. see http://www.oreilly.com/openbook/make3/book/ch12.pdf

But in a nutshell: you call make ... in your directory and the Makefile is invoked
* Other rules, e.g. in support / build are included via include statements
* All the other *.uk makefiles are also included 
=> The makefile in unikraft / unikraft.git drives everything related to building and configuration (including menuconfig)

In some cases you have nested makefile execution, where another makefile is invoked via "@make" as in the Hello World app


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.