commit d650a0b47eadeb675e2d2cf03ad10a4dbc564971 Author: Mike Gabriel Date: Thu Jun 23 14:27:15 2016 +0200 OPTFLAGS: Properly propagate build option flags to nxcomp{,ext,shad} and the nx-X11 build scripts. Note: - The "normal" way to inject CFLAGS (and CPPFLAGS) into nx-X11 builds is copying those options over into the variable CDEBUGFLAGS. - LDFLAGS have to be handed to nx-X11 via LOCAL_LDFLAGS. This change also includes a slight change in the nx-X11 build order. Old build order: Main Makefile: - [...] - libNX_X11 + implicitly building nxcomp + implicitly building nxcompext - [...] - nxagent + implicitly building nxcompshad - [...] New build ordner: Main Makefile: - [...] - nxcomp - setup nx-X11 build env + cd nx-X11 && make BuildEnv - nx-X11/lib/* - nxcompext - nxcompshad - [...] - nxagent - [...] Fixes ArcticaProject/nx-libs#141 Fixes X2GoBTS#84 Backported from Arctica GH 3.6.x branch. v2: backport to nx-libs 3.5.0.x (Mihai Moldovan) --- a/nx-X11/lib/X11/Imakefile +++ b/nx-X11/lib/X11/Imakefile @@ -1148,44 +1148,6 @@ includes:: ks_tables.h CONFIGURE ?= ./configure -#if NXLibraries - -$(NX_XCOMPCONFIGTARGET): - cd ../../../nxcomp && \ - ${CONFIGURE} - -$(NX_XCOMPEXTCONFIGTARGET): - cd ../../../nxcompext && \ - ${CONFIGURE} - -#ifdef SunArchitecture -$(NX_XCOMPLIBTARGET): $(NX_XCOMPCONFIGTARGET) - ${MAKE} -C $(NX_XCOMPLIBDIR) - -$(NX_XCOMPEXTLIBTARGET): $(NX_XCOMPEXTCONFIGTARGET) - ${MAKE} -C ../../../nxcompext - -#else -$(NX_XCOMPLIBTARGET): $(NX_XCOMPCONFIGTARGET) - ${MAKE} -C $(NX_XCOMPLIBDIR) - -$(NX_XCOMPEXTLIBTARGET): $(NX_XCOMPEXTCONFIGTARGET) $(NX_XCOMPLIBTARGET) lib$(LIBNAME).so.$(SOXLIBREV) - ${MAKE} -C ../../../nxcompext - -#endif - -depend:: - -lib$(LIBNAME).so.$(SOXLIBREV): $(NX_XCOMPLIBTARGET) - -all:: $(NX_XCOMPLIBTARGET) - -depend:: $(NX_XCOMPLIBTARGET) - -all:: $(NX_XCOMPEXTLIBTARGET) - -#endif - depend:: ks_tables.h clean:: --- a/nx-X11/Makefile +++ b/nx-X11/Makefile @@ -56,6 +56,18 @@ World: ;; esac; @date @echo "" + if [ ! -f xmakefile ]; then ${MAKE} ${MFLAGS} BuildEnv; fi + ${MAKE} ${MAKE_OPTS} $(MFLAGS) $(WORLDOPTS) World + @echo "" + @date + @echo "" + @-$(RM) $(VERSPROG) + @-$(CC) $(VERSINC) -o $(VERSPROG) $(VERSSRC) + @echo Full build of $(RELEASE) complete. + @-$(RM) $(VERSPROG) + @echo "" + +BuildEnv: @if [ -f xmakefile ]; then \ ${MAKE} ${MAKE_OPTS} -k distclean || \ ${MAKE} ${MAKE_OPTS} -k clean || \ @@ -91,15 +103,6 @@ World: ${MAKE} ${MAKE_OPTS} $(MFLAGS) BOOTSTRAPSUBDIRS= clean ${MAKE} ${MAKE_OPTS} $(MFLAGS) includes ${MAKE} ${MAKE_OPTS} $(MFLAGS) depend - ${MAKE} ${MAKE_OPTS} $(MFLAGS) $(WORLDOPTS) World - @echo "" - @date - @echo "" - @-$(RM) $(VERSPROG) - @-$(CC) $(VERSINC) -o $(VERSPROG) $(VERSSRC) - @echo Full build of $(RELEASE) complete. - @-$(RM) $(VERSPROG) - @echo "" .PRECIOUS: Makefile --- a/nx-X11/programs/Xserver/Imakefile +++ b/nx-X11/programs/Xserver/Imakefile @@ -1035,27 +1035,7 @@ NX_XSHADOWLIBNAME = cygXcompshad.dll NX_XSHADOWLIBNAME = libXcompshad.so #endif -NX_XSHADOWLIBDIR = $(XTOP)/../nxcompshad -NX_XSHADOWLIBTARGET = $(NX_XSHADOWLIBDIR)/$(NX_XSHADOWLIBNAME) -NX_XSHADOWCONFIGTARGET = $(NX_XSHADOWLIBDIR)/config.status - -CONFIGURE ?= ./configure - -$(NX_XSHADOWCONFIGTARGET): - cd $(NX_XSHADOWLIBDIR) && \ - ${CONFIGURE} - -#ifdef SunArchitecture -$(NX_XSHADOWLIBTARGET): $(NX_XSHADOWCONFIGTARGET) - cd $(NX_XSHADOWLIBDIR) && \ - ${MAKE} -#else -$(NX_XSHADOWLIBTARGET): $(NX_XSHADOWCONFIGTARGET) - cd $(NX_XSHADOWLIBDIR) && \ - rm -f *.o && ${MAKE} -#endif - -ServerTarget(nxagent,$(NX_XSHADOWLIBTARGET) $(NXAGENTDIRS),$(NXAGENTOBJS), \ +ServerTarget(nxagent,$(NXAGENTDIRS),$(NXAGENTOBJS), \ $(LIBCWRAPPER) $(NXAGENTLIBS) $(LOADABLEEXTS),$(NXAGENTSYSLIBS) $(NXAGENTNXLIBS)) /* --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -34,6 +34,8 @@ CXXFLAGS = @CXXFLAGS@ @X_CFLAGS@ @DEF CXXINCLUDES = -I. -I../nxcomp CXXDEFINES = +CPPFLAGS = @CPPFLAGS@ + CC = @CC@ CCFLAGS = @CFLAGS@ @X_CFLAGS@ @DEFS@ \ -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ @@ -75,9 +77,9 @@ DEPENDINCLUDES = -I/usr/include/c++ -I/ .SUFFIXES: .cpp.c .cpp.o: - $(CXX) -c $(CXXFLAGS) $(CXXINCLUDES) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXINCLUDES) $< .c.o: - $(CC) -c $(CCFLAGS) $(CCINCLUDES) $< + $(CC) -c $(CPPFLAGS) $(CCFLAGS) $(CCINCLUDES) $< LIBRARY = Xcompext --- a/nxcompext/configure.in +++ b/nxcompext/configure.in @@ -7,8 +7,12 @@ AC_PREREQ(2.13) dnl Reset default compilation flags. -CXXFLAGS="$CXXFLAGS -O3" -CFLAGS="$CFLAGS -O3" +if test "x$CXXFLAGS" = "x"; then + CXXFLAGS="-O3" +fi +if test "x$CFLAGS" == "x"; then + CFLAGS="-O3" +fi dnl Reset default linking directives. --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -36,6 +36,8 @@ CXXFLAGS = @CXXFLAGS@ @X_CFLAGS@ @DEF CXXINCLUDES = CXXDEFINES = +CPPFLAGS = @CPPFLAGS@ + # # C programs don't share the C++ flags. They should # have their own @CCFLAGS@. @@ -96,9 +98,9 @@ DEPENDINCLUDES = -I/usr/include/g++ -I/u .SUFFIXES: .cpp.c .cpp.o: - $(CXX) -c $(CXXFLAGS) $(CXXINCLUDES) $(CXXDEFINES) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXINCLUDES) $(CXXDEFINES) $< .c.o: - $(CC) -c $(CCFLAGS) $(CCINCLUDES) $(CCDEFINES) $< + $(CC) -c $(CPPFLAGS) $(CCFLAGS) $(CCINCLUDES) $(CCDEFINES) $< LIBRARY = Xcompshad --- a/nxcompshad/configure.in +++ b/nxcompshad/configure.in @@ -7,8 +7,12 @@ AC_PREREQ(2.13) dnl Reset default compilation flags. -CXXFLAGS="$CXXFLAGS -O3" -CPPFLAGS="$CPPFLAGS -O3" +if test "x$CXXFLAGS" == "x"; then + CXXFLAGS="-O3" +fi +if test "x$CPPFLAGS" == "x"; then + CPPFLAGS="-O3" +fi dnl Reset default linking directives. @@ -77,8 +81,8 @@ case "${gcc_version}" in *) AC_MSG_RESULT([yes]) - CXXFLAGS="$CXXFLAGS -Wmissing-declarations -Wnested-externs" - CPPFLAGS="$CPPFLAGS -Wmissing-declarations -Wnested-externs" + CXXFLAGS="$CXXFLAGS -Wmissing-declarations" + CPPFLAGS="$CPPFLAGS -Wmissing-declarations" ;; esac