More Makefile/configure simplification
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest81 patches 9 repliesIn review
- v142 patches 11 repliesSuperseded
Changes in v2 from the cover letter
- split CFLAGS into QEMU_CFLAGS and CFLAGS to enable:
make CFLAGS="-O3" foo.o
make CFLAGS=""
- We have now LIBS/libs_softmmu/libs_tools
Everything that is in libs_tools is also in libs_softmmu, namely curl and vde
- We have now LIBS and QEMU_CFLAGS per target
- all *_LIBS have been folded in the right LIBS variable
- All arch/os setup/libs/cflags moved to ./configure
- AUDIO_PT is gone, it setup to linke with -pthread, but the LDFLAGS was used only for executables in main Makefile, and none of them use sound. It was not used for the targets, that is where it would make a difference.
- aio is renamed to posix_aio
Patches in v2 No applies recorded yet
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [Qemu-devel] [PATCH v2 00/81] More Makefile/configure simplification
Hi
I compiled natively on x86_64 linux and crosscompiled it for windows. Compilation in a different build directory also works.
v2:
- split CFLAGS into QEMU_CFLAGS and CFLAGS to enable:
make CFLAGS="-O3" foo.o
make CFLAGS=""
- We have now LIBS/libs_softmmu/libs_tools
Everything that is in libs_tools is also in libs_softmmu, namely curl and vde
- We have now LIBS and QEMU_CFLAGS per target
- all *_LIBS have been folded in the right LIBS variable
- All arch/os setup/libs/cflags moved to ./configure
- AUDIO_PT is gone, it setup to linke with -pthread, but the LDFLAGS was used only for executables in main Makefile, and none of them use sound. It was not used for the targets, that is where it would make a difference.
- aio is renamed to posix_aio
v1:
- CPPFLAGS is gone, long life to CFLAGS
- Refactor common CFLAGS setup to ./configure
- Use same CFLAGS for all configure tests
- ARCH/OS_CFLAGS/LDFLAGS are gone, we add to CFLAGS as we find more options
- new functions complie_prog() compile_object(), test case compilation is done with one function
- LIBS: Start LIBS reorganization, common stuff moved to ./configure
- libs_softmmu created for libraries that are only for softmmu
- moved compilation tests out of the creation of configuration files, make things way easier.
- Moved sparc_cpu setup to a single place
- minor cleanups/refactors/.. here and there
Comments?
ToDo:
- move all the handling of options to the start of the file
- change meanining of options to:
foo="no" -> don't even try
foo="" -> try to detect, and go with detected result
foo="yes" -> detect, and if it is not found, just exit with an error message.
Distributions really want to be able to tell:
./configure --enable-kvm --enable-vnc-tls ...
And if it didn't found anything, just exit. Packager would sort the right BuildRequires at this point.
- Start thinking how to enable/disable drivers
Later, Juan.
Juan Quintela (81):
strip binary is not used anywhere
oss variable don't exist anymore
Use CFLAGS from enviroment, ARCH_CFLAGS hasn't been defined yet move cpu command line setting to the beggining
move check_linker_flags sooner than starting of printing variables remove not needed rt variable
move checks for bswap32/bswap_32 sooner than starting of printing
variables
move general CFLAGS/LDFLAGS definitions after last $cc run We want to add options at the beggining, not at the end of variables Remove OS_{CFLAGS,LDFLAGS} and ARCH_{LDFLAGS,CFLAGS}
move EXTRA_CFLAGS/LDFLAGS to the very beginning
create compile_object/compile_prog functions
remove unused temporal files
Add CURL_CFLAGS
__sparc_*__ is defined through -D__sparc_*__
move mingw32 code after selection of OS
This variables can't be set here
refactor kqemu selection for both mingw32
move sparc_cpu arg parsing to the begining
refactor sparc_cpu code to be in a single place
refactor $cpu selection in various places
reindent Operating System selection configure
We use -lz for all binaries
We want to pass LIB through configuration files now PTHREADLIBS was used for all binaries
CLOCKLIBS was used for all binaries
Move to configure CONFIG_SOLARIS libraries needed always Move to configure CONFIG_WIN32 libraries needed always
We set -Werror through configure now
Rename CPPFLAGS to QEMU_CFLAGS
split QEMU_CFLAGS very long line
move common QEMU_CFLAGS to configure
Refactor HELPER_CFLAGS
move SDL_LIBS Win32 hack to configure
Add libs_softmmu variable
Add SDL_LIBS to libs_softmmu
gcc generates the right dependency for this file
move coreaudio libraries to coreaudio selection
Move sound library selection to sound selection
files are only compiled when CONFIG_ADLIB is defined
Test if we need -lutil in ,/configure
Fold CURSES_LIBS into libsoftmmu_libs
Fold VNC_TLS_LIBS into libs_softmmu
Fold VNC_SASL_LIBS into libs_softmmu
Fold XEN_LIBS into libs_softmmu
Fold BLUEZ_LIBS into libs_softmmu
Fold FDT_LIBS into libs_softmmu
Fold BRLAPI_LIBS into libs_softmmu
remove duplicated TARGET_GPROF code
\!CONFIG_USER_ONLY == CONFIG_SOFTMMU
Introduce CONFIG_NOSOFTFLOAT and simplify Makefile.target permit to add things to LDFLAGS for target
refactor linker_script common part and change quoting permit to add things to CFLAGS per target
fix typo, there should be bsd_user there
Move alpha CFLAGS target to configure
Move ia64 QEMU_CFLAGS target to configure
this bit was already generated in configure
Fold TARGET_GPROF handling in configure
Generate more conmmon CFLAGS
Added CONFIG_NEED_MMU for microblaze and cris
Move dis-* selection to configure
Use only one KVM_CFLAGS
Use one less HELPER_CFLAGS
Make slirp include dir globlal in cflags
FMOD_CFLAGS is not set when CONFIG_FMOD is undef
AUDIO_PT is not needed
Generate CONFIG_AUDIO_PT_INT in configure
CONFIG_POSIX makes more sense that not CONFIG_WIN32 remove last 3 uses of :=, everywhere else uses += or = Consolidate audio flags in configure
We also need TARGET_<arechname> in Makefiles
use TARGET_<arch name> for selection
Disable aio in mingw32
Add libs_tools support
VDE libs are used both by tools and softmmu
CURL libs are used both by tools and softmmu
Add cocoa libs at Darwin selection time
convert gprof flags to style of rest of Makefile
Move libsunpath to use the same style than everything else rename aio/CONFIG_AIO to posix_aio/CONFIG_POSIX_AIO
Makefile | 59 +--- Makefile.hw | 4 +- Makefile.target | 275 ++------------ block/raw-posix.c | 26 +- configure | 864 +++++++++++++++++++++++++------------------- create_config | 8 - pc-bios/optionrom/Makefile | 6 +- rules.mak | 6 +- 8 files changed, 555 insertions(+), 693 deletions(-)