From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MXwyc-0002zA-CA for qemu-devel@nongnu.org; Mon, 03 Aug 2009 08:49:18 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MXwyX-0002wz-Gb for qemu-devel@nongnu.org; Mon, 03 Aug 2009 08:49:17 -0400 Received: from [199.232.76.173] (port=51626 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MXwyW-0002wa-Oj for qemu-devel@nongnu.org; Mon, 03 Aug 2009 08:49:12 -0400 Received: from mx2.redhat.com ([66.187.237.31]:40735) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MXwyW-0006ms-2O for qemu-devel@nongnu.org; Mon, 03 Aug 2009 08:49:12 -0400 From: Juan Quintela Date: Mon, 3 Aug 2009 14:45:51 +0200 Message-Id: Subject: [Qemu-devel] [PATCH v2 00/81] More Makefile/configure simplification List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com 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_ in Makefiles use TARGET_ 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(-)