2015-12-09 15:32, Wiles, Keith: > On 12/9/15, 8:59 AM, "Thomas Monjalon" <thomas.monjalon at 6wind.com> wrote: > > >2015-12-09 14:39, Wiles, Keith: > >> I am having a problem with ?make install T=? command as I was using it > >> before. I would normally build a x86_64-native-linuxapp-gcc, clang and icc > >> or a different config all together. Currently the ?make install T=? gives > >> a warning message at the end of the build plus creates the > >> x86_64-native-linuxapp-XXX directory. If I use the suggested ?make config > >> T=? command this command create a directory ?build? with a .config file. > >> The problem is this method does not allow me to have multiple builds at > >> the same time. > >> > >> What is the suggested method to have multiple builds without installing > >> into the local file system? > > > >The multiple build is not supported anymore. It was only building with > >the default configuration. > >If you want to test various builds, I suggest to use this script: > > scripts/test-build.sh > > http://dpdk.org/browse/dpdk/commit/?id=cd31ca579c > > Having a build script is great, but it give me an error on building. The > script does not have a ?help option and the unknown option is not very > usefulas it does not explain the two option -jX and -s in that output > message. I would have expected a bit more help instructions on using this > command and adding a -h or ?help would be useful.
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? building on a Ubuntu 15.10 with all patches. If I > use ?make install T=x86_64-native-linuxapp-gcc? this command builds correctly > with the warning at the end. [...] > /work/home/rkwiles/projects/intel/dpdk/lib/librte_eal/linuxapp/eal/eal_pci.c: > In function \u2018pci_config_extended_tag\u2019: > /work/home/rkwiles/projects/intel/dpdk/lib/librte_eal/linuxapp/eal/eal_pci.c:505:2: > error: ignoring return value of \u2018fgets\u2019, declared with attribute > warn_unused_result [-Werror=unused-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: > > make config T=x86_64-native-linuxapp-gcc O=my-gcc-build > > make O=my-gcc-build > > IMO we have gone backwards in making DPDK easy to build. I agree using ?make > install T=? may not be the best solution as ?install? 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 ?make build > T=x86_64-native-linuxapp-gcc? to replace the ?make install T=? command. Now > the developer only needs to type one command with to build a configuration > and not two. If the developer includes the ?O=? option then the command > should create that directory and build the configuration into that directory. > For the 80% rule the ?O=? option should not be required. The O= 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 default configuration. > The ?make config T= O=? then ?make O=? series of commands are not required, > even the ?config? keyword is not required and just an extra step we do not > need. What does the ?config? target really add to the made other then > creating the ?build? directory and a config file. I believe the ?build? > directory should be dropped/removed all together and just require the ?T=? > and/or the ?O=? if they really want to define a different output directory. Between "make config" and "make" you can modify the configuration. In the next release, "make config" will be wrapped by a "configure" script which will allow to configure your target in one line. So we will end up with: ./configure make make install It may be weird to you but it is standard to others.