This was originally done in order to use subdir-objects to prevent automake warnings (I didn't have the idea of .include.c files at the moment).
Here for rather illustrative purposes, as well as benchmarking against the meson. Makes moving the library assignments out of configure.ac for speed of testing feasible, but the latter should be doing this too. Makes compilation errors print file paths relatively to the top build directory. Avoids multiple "../" in compiler/linker arguments. The rebuild ( touch os/backtrace.c; make ) speedup is only about 1/5 .. 1/4 on Linux. On Solaris, the difference is 1~2 seconds. XQuartz becomes slower (8 sec -> 9 sec). Xvfb-only rebuild slows down too (3.8 -> 4.6 sec). XWin becomes 43 -> 22 sec, but here the "make" and "bash" (the latter because of libtool being a shell script) most likely need patching to use spawning instead of fork-exec, after which the time would probably be comparable to Linux. Build changes: - Documentation is disabled by default. (Is this wrong?) This only gives 0.08 sec difference when rebuilding, however. - C sources from Yacc/Lex files are now generated for all DDX-es regardless of whether they are built or not. This is OK, because that's what the "make dist" did anyway (was it rather a bug than a feature; i.e. should they have not been distributed?). - No "make relink" necessary. But modules are now rebuilt after the Xorg binary changes, giving a verbosity burst at the end of rebuild. - Libraries and binaries are put into the top of build directory. - Module names are changed to reflect their source directories. "make [un]install" now has to find-and-rename/remove them. The last three patches only arguably fix "make distcheck": - makefile: fix distcheck configure flags This does not work for older automake versions (and the motivation of LDADD -> DEPENDENCIES duplication in makefiles was probably such a concern; so marking this arguable). - hw/xfree86: fix install target for distcheck as non-root Just unsure if this is correct/safe. - xephyr: disable piglit tests This is a hack needing the proper fix. Includes a commit from master ( e337de2d488a124e5fee0fdcb882567b68f1767d ) for the purpose of marking a "safe history point". Not tested: Hurd, HAL, SELinux, Xvfb piglit Mihail
e337de2d488a124e5fee0fdcb882567b68f1767d, on Linux, out-of-source: Default configure: 'make -j4': 3m19.22s real 8m38.20s user 0m39.94s system 'make -j4 -r': 3m17.21s real 8m37.24s user 0m39.84s system 'touch .../os/backtrace.c; make -j4': 0m10.49s real 0m07.59s user 0m02.29s system 'touch .../os/backtrace.c; make -j4 -r': 0m09.15s real 0m06.67s user 0m01.87s system 'make install -j1' 0m06.26s real 0m03.94s user 0m01.72s system 'make install -j4' 0m05.98s real 0m03.94s user 0m01.75s system 'make install -j4 -r' 0m04.09s real 0m02.58s user 0m01.21s system Xvfb only: 'make -j4': 1m48.49s real 5m15.46s user 0m22.70s system 'make install -j1' 0m01.96s real 0m01.35s user 0m00.53s system 'make install -j4' 0m01.91s real 0m01.38s user 0m00.50s system 'touch; make -j4': 0m03.87s real 0m02.95s user 0m00.78s system 'touch; make -j4 -r': 0m03.28s real 0m02.53s user 0m00.59s system Single makefile, out-of-source: Default configure: 'make -j4': 2m23.40s real 8m27.73s user 0m40.35s system speedup: 28% 'make -j4 -r': 2m23.82s real 8m27.72s user 0m40.59s system 'touch $(top_srcdir)/os/backtrace.c; make -j4': 0m06.81s real 0m11.46s user 0m02.22s system 'touch $(top_srcdir)/os/backtrace.c; make -j4 -r': 0m05.85s real 0m10.59s user 0m02.15s system speedup: 36% 'make install -j1' 0m06.10s real 0m05.19s user 0m00.74s system 'make install -j4' 0m04.81s real 0m05.28s user 0m00.74s system 'make install -j4 -r' 0m03.21s real 0m03.43s user 0m00.70s system speedup: 21% Default configure with "configure.ac: disable documentation by default" commit reverted: 'touch; make -j4': 0m06.89s real 0m11.65s user 0m02.22s system 1.1% slowdown from reverting Xvfb only: 'touch; make -j4' 0m04.59s real 0m03.81s user 0m00.64s system 18% slowdown 'make install -j4' 0m03.42s real 0m03.67s user 0m00.42s system 79% slowdown Linking commands: rm hw/xfree86/Xorg make -C hw/xfree86 Xorg make: Entering directory '.../xserver/build/hw/xfree86' /bin/sh ../../libtool --tag=CC --mode=link gcc -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wbad-function-cast -Wold-style-definition -Wdeclaration-after-statement -Wunused -Wuninitialized -Wshadow -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wlogical-op -Werror=implicit -Werror=nonnull -Werror=init-self -Werror=main -Werror=missing-braces -Werror=sequence-point -Werror=return-type -Werror=trigraphs -Werror=array-bounds -Werror=write-strings -Werror=address -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -fno-strict-aliasing -fno-strict-aliasing -D_DEFAULT_SOURCE -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/include/X11/dri -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/freetype2 -I../../../include -I../../include -I../../../Xext -I../../../composite -I../../../damageext -I../../../xfixes -I../../../Xi -I../../../mi -I../../../miext/sync -I../../../miext/shadow -I../../../miext/damage -I../../../render -I../../../randr -I../../../fb -I../../../dbe -I../../../present -fvisibility=hidden -DHAVE_XORG_CONFIG_H -fvisibility=hidden -I/usr/include/libdrm -g -O2 -pthread -export-dynamic -o Xorg sdksyms.o ../../dix/libmain.la ../../dix/dix.O ../../mi/libmi.la ../../os/os.O -lnettle -ldl -lunwind loader/libloader.la common/libcommon.la os-support/libxorgos.la parser/libxf86config.la dixmods/libdixmods.la modes/libxf86modes.la ramdac/libramdac.la ddc/libddc.la i2c/libi2c.la ../../composite/libcomposite.la ../../xfixes/libxfixes.la ../../Xext/libXext.la ../../dbe/libdbe.la ../../record/librecord.la ../../randr/librandr.la ../../render/librender.la ../../damageext/libdamageext.la ../../dri3/libdri3.la ../../present/libpresent.la ../../miext/sync/libsync.la ../../miext/damage/libdamage.la ../../Xi/libXi.la ../../xkb/libxkb.la dixmods/libxorgxkb.la dri/libdri.la dri2/libdri2.la ../../dri3/libdri3.la ../../miext/sync/libsync.la ../../mi/libmi.la ../../os/libos.la ../../Xext/libXvidmode.la -lpciaccess -ldrm -lpixman-1 -lXfont2 -lXau -lxshmfence -lXdmcp -lm -lm rm Xorg make Xorg /bin/sh ./libtool --tag=CC --mode=link gcc -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wbad-function-cast -Wold-style-definition -Wdeclaration-after-statement -Wunused -Wuninitialized -Wshadow -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wlogical-op -Werror=implicit -Werror=nonnull -Werror=init-self -Werror=main -Werror=missing-braces -Werror=sequence-point -Werror=return-type -Werror=trigraphs -Werror=array-bounds -Werror=write-strings -Werror=address -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -fno-strict-aliasing -fno-strict-aliasing -D_DEFAULT_SOURCE -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/include/X11/dri -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/freetype2 -I../include -I./include -I../Xext -I../composite -I../damageext -I../xfixes -I../Xi -I../mi -I../miext/sync -I../miext/shadow -I../miext/damage -I../render -I../randr -I../fb -I../dbe -I../present -fvisibility=hidden -DHAVE_XORG_CONFIG_H -fvisibility=hidden -I/usr/include/libdrm -g -O2 -pthread -export-dynamic -o Xorg hw/xfree86/Xorg-sdksyms.o ./libmain.la ./dix.O ./libmi.la ./os.O -lnettle -ldl -lunwind ./libxf_loader.la ./libxf_common.la ./libxf_os.la ./libxf_parser.la ./libxf_dixmods.la ./libxf_modes.la ./libxf_ramdac.la ./libxf_ddc.la ./libxf_i2c.la ./libcomposite.la ./libxfixes_main.la ./libXext_main.la ./libdbe.la ./librecord.la ./librandr.la ./librender.la ./libdamageext.la ./libdri3.la ./libpresent.la ./libmiext_sync.la ./libmiext_damage.la ./libXi_main.la ./libxkb.la ./libxf_dixmods_xkb.la ./libxf_dri.la ./libxf_dri2.la ./libdri3.la ./libmiext_sync.la ./libmi.la ./libos.la ./libXext_vidmode.la -lpciaccess -ldrm -lpixman-1 -lXfont2 -lXau -lxshmfence -lXdmcp -lm -lm
mdea.sh
Description: Bourne shell script
sim1.txz
Description: Binary data
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
