From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: Building with 'make install T=' and 'make config T=' Date: Wed, 09 Dec 2015 17:19:09 +0100 Message-ID: <3389553.DHxrbPlyKc@xps13> References: <10748670.5QWvKQimdm@xps13> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Cc: dev@dpdk.org To: "Wiles, Keith" Return-path: Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42]) by dpdk.org (Postfix) with ESMTP id 6A5C95939 for ; Wed, 9 Dec 2015 17:20:26 +0100 (CET) Received: by wmvv187 with SMTP id v187so270074796wmv.1 for ; Wed, 09 Dec 2015 08:20:26 -0800 (PST) In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 2015-12-09 15:32, Wiles, Keith: > On 12/9/15, 8:59 AM, "Thomas Monjalon" wr= ote: >=20 > >2015-12-09 14:39, Wiles, Keith: > >> I am having a problem with =E2=80=98make install T=3D=E2=80=98 com= mand as I was using it before. I would normally build a x86_64-native-l= inuxapp-gcc, clang and icc or a different config all together. Currentl= y the =E2=80=98make install T=3D=E2=80=98 gives a warning message at th= e end of the build plus creates the x86_64-native-linuxapp-XXX director= y. If I use the suggested =E2=80=98make config T=3D=E2=80=98 command th= is command create a directory =E2=80=98build=E2=80=99 with a .config fi= le. The problem is this method does not allow me to have multiple build= s at the same time. > >>=20 > >> What is the suggested method to have multiple builds without insta= lling into the local file system? > > > >The multiple build is not supported anymore. It was only building wi= th > >the default configuration. > >If you want to test various builds, I suggest to use this script: > >=09scripts/test-build.sh > >=09http://dpdk.org/browse/dpdk/commit/?id=3Dcd31ca579c >=20 > Having a build script is great, but it give me an error on building. = The script does not have a =E2=80=94help option and the unknown option = is not very usefulas it does not explain the two option -jX and -s in t= hat output message. I would have expected a bit more help instructions = on using this command and adding a -h or =E2=80=94help would be useful.= =20 Please check. There is a -h option. > The error I get from the following command is: './scripts/test-build.= sh x86_64-native-linuxapp-gcc=E2=80=99 building on a Ubuntu 15.10 with = all patches. If I use =E2=80=98make install T=3Dx86_64-native-linuxapp-= gcc=E2=80=99 this command builds correctly with the warning at the end.= [...] > /work/home/rkwiles/projects/intel/dpdk/lib/librte_eal/linuxapp/eal/ea= l_pci.c: In function \u2018pci_config_extended_tag\u2019: > /work/home/rkwiles/projects/intel/dpdk/lib/librte_eal/linuxapp/eal/ea= l_pci.c:505:2: error: ignoring return value of \u2018fgets\u2019, decla= red with attribute warn_unused_result [-Werror=3Dunused-result] > fgets(buf, sizeof(buf), f); > ^ It is a compilation error, not related to the script. > >If you just want to compile, it is simple: > >=09make config T=3Dx86_64-native-linuxapp-gcc O=3Dmy-gcc-build > >=09make O=3Dmy-gcc-build >=20 > IMO we have gone backwards in making DPDK easy to build. I agree usin= g =E2=80=98make install T=3D=E2=80=98 may not be the best solution as =E2= =80=98install=E2=80=99 implies we are installing the code. I agree not = we should not try to build multiple configuration with one command, but= we should be able to do =E2=80=98make build T=3Dx86_64-native-linuxapp= -gcc=E2=80=99 to replace the =E2=80=98make install T=3D=E2=80=98 comman= d. Now the developer only needs to type one command with to build a con= figuration and not two. If the developer includes the =E2=80=98O=3D=E2=80= =98 option then the command should create that directory and build the = configuration into that directory. For the 80% rule the =E2=80=98O=3D=E2= =80=98 option should not be required. The O=3D option is not required. The new syntax is closer to the standard behaviour. You just don't want to type "make config" because you are using a defau= lt configuration. > The =E2=80=98make config T=3D O=3D=E2=80=98 then =E2=80=98make O=3D=E2= =80=98 series of commands are not required, even the =E2=80=98config=E2= =80=99 keyword is not required and just an extra step we do not need. W= hat does the =E2=80=98config=E2=80=99 target really add to the made oth= er then creating the =E2=80=98build=E2=80=99 directory and a config fil= e. I believe the =E2=80=98build=E2=80=99 directory should be dropped/re= moved all together and just require the =E2=80=98T=3D=E2=80=98 and/or t= he =E2=80=98O=3D=E2=80=98 if they really want to define a different out= put directory. Between "make config" and "make" you can modify the configuration. In the next release, "make config" will be wrapped by a "configure" scr= ipt which will allow to configure your target in one line. So we will end up with: =09./configure =09make =09make install It may be weird to you but it is standard to others.