From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4001:c06::22a; helo=mail-io0-x22a.google.com; envelope-from=sigmaepsilon92@gmail.com; receiver=edk2-devel@lists.01.org Received: from mail-io0-x22a.google.com (mail-io0-x22a.google.com [IPv6:2607:f8b0:4001:c06::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4E6F9203369F9 for ; Fri, 29 Jun 2018 23:46:58 -0700 (PDT) Received: by mail-io0-x22a.google.com with SMTP id s26-v6so10382863ioj.4 for ; Fri, 29 Jun 2018 23:46:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=7nb+sVNSdI43JxTx7I7wNetJBLgU6x1RkeM8r/mj6bM=; b=hs4qaZgZmOnwv3nHxRBUrGBHUScLy/TcwkSLaxm/OtPBxmut+NzutCzq4/+ClN8IZy AzDPByw3qU5ixdl1Wu0woG08QZ+YG5sY/1hujgQyYo6UJ1YFxQ8rKG5wEMgHKISncqYy 62TI4+oMjLbfU6zhiSw/E8V4w8dQ+0YGCLjZjeHYl3B/RWFcd9eBgv3vgsBYTb6lkxg6 QQpy5JHVQYNRlNv9gyczf+Rn3VH3oD9M8ttxUq1IE1vCRTrcAT3ySw3DEW70/6xp+20z p8OJaRiSsYiJONK7sP32ud1nXgfLk+8NWGpt3fRq9EZ6AAh0/zeutxmNAeWcbV7l8L/h a+/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=7nb+sVNSdI43JxTx7I7wNetJBLgU6x1RkeM8r/mj6bM=; b=tknp2Zz403DmcJkUJ4/k0mUsGRfphsQ5hXANakrspdid2sUMy22FJadMZH0/oXwkMT owFbU6a4QrV/OUehBqhI6w9snm5C4M+q01UMqDp8zDQEsHIv+Q+BEWDO4YgloJSh6SFm MTuYd09QM3udVBgBBdgym6dyaJtOW8ZXv3cuUkPG52XOuMFf8ZXtIDQkgYEYnsCewWAy pwTqHO3VrpCC73rzbI3VLfNIGTamKJEu/6YR3OyBrN0LPUv14kYS943WFcdtj7fDyPcy CZUGIZlJx5DgE4JdGlUDOTAeZF5hMDzSmuRVs/zwLYd0Ai5zwWR4YGNLYFXcIJTjjVmy 8+8A== X-Gm-Message-State: APt69E1piA6ZaOj7SNvq6VO+LAg/2NSx1stujdXTVvqTcNLA6dhzj2Px +TOUYcMo1JNr26D0e8HGpFdQt3C6sqoZcxZMTAVKYm22 X-Google-Smtp-Source: AAOMgpe4SnlJMTP/WnfRZv8vvZlfE/RrVDElY3B0zKsx+MgSr0hqbkdxerRUSMiLgjPK4LUQgT+xzIFOGfaaMnhU3Sk= X-Received: by 2002:a6b:1902:: with SMTP id 2-v6mr14254017ioz.304.1530341217030; Fri, 29 Jun 2018 23:46:57 -0700 (PDT) MIME-Version: 1.0 From: Michael Zimmermann Date: Sat, 30 Jun 2018 08:46:46 +0200 Message-ID: To: edk2-devel-01 , Yonghong Zhu , Liming Gao Subject: Questions about the build process X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jun 2018 06:46:58 -0000 Content-Type: text/plain; charset="UTF-8" Out of curiosity I took a closer look at how the build system works internall(especially the Makefile generation and parallel builds) and I got some questions which I hope you can answer: Why are we using make at all? As far as I can see we're not using any special make functionality and most dependency calculation is done in the python build tool anyway. So why don't we just run the build commands ourselves from within the build tool? Why is every module being build separately / Why don't we generate one makefile which does everything ? To give an opposite view on the previous question, why don't we generate makefiles which contain the whole internal dependency graph so the build tool can then call a top level 'make' and not worry about anything. We wouldn't even have to implement any kind of parallel build support(which we currently have a lot of code for) because make would do that for us. If scrambled log output during parallel builds is a concern, then we could switch to the "ninja" build system which would probably be way more suited for edk2's usecase because it's a pretty fast low level language which also gives you proper logs when building in parallel. ninja is available for linux, mac and windows. Thanks Michael