From d650a0b47eadeb675e2d2cf03ad10a4dbc564971 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Thu, 23 Jun 2016 14:27:15 +0200 Subject: 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 --- Makefile | 14 +++++++++++--- debian/rules | 2 +- nx-X11/Makefile | 16 ++++++++++------ nx-X11/lib/X11/Imakefile | 38 -------------------------------------- nx-X11/programs/Xserver/Imakefile | 22 +--------------------- nx-libs.spec | 1 + nxcomp/Makefile.in | 6 ++++-- nxcomp/configure.in | 8 ++++++-- nxcompext/Makefile.in | 6 ++++-- nxcompext/configure.in | 8 ++++++-- nxcompshad/Makefile.in | 6 ++++-- nxcompshad/configure.in | 12 ++++++++---- nxproxy/configure.in | 8 ++++++-- 13 files changed, 62 insertions(+), 85 deletions(-) diff --git a/Makefile b/Makefile index e2077ed5b..daff448cd 100644 --- a/Makefile +++ b/Makefile @@ -49,9 +49,7 @@ build-lite: build-full: # in the full case, we rely on "magic" in the nx-X11 imake-based makefiles... - cd nxcomp && autoconf - cd nxcompext && autoconf - cd nxcompshad && autoconf + cd nxcomp && autoconf && (${CONFIGURE}) && ${MAKE} # prepare nx-X11/config/cf/nxversion.def sed \ @@ -62,6 +60,16 @@ build-full: nx-X11/config/cf/nxversion.def.in \ > nx-X11/config/cf/nxversion.def + # prepare Makefiles and the nx-X11 symlinking magic + cd nx-X11 && make BuildEnv + + # build libNX_X11 and libNX_Xext prior to building + # nxcomp{ext,shad}. + cd nx-X11/lib && make + + cd nxcompext && autoconf && (${CONFIGURE}) && ${MAKE} + cd nxcompshad && autoconf && (${CONFIGURE}) && ${MAKE} + cd nx-X11 && ${MAKE} World cd nxproxy && autoconf && (${CONFIGURE}) && ${MAKE} diff --git a/debian/rules b/debian/rules index a37478c21..275956c9a 100755 --- a/debian/rules +++ b/debian/rules @@ -66,7 +66,7 @@ override_dh_auto_install: override_dh_auto_build: - LOCAL_LDFLAGS="$(LDFLAGS)" SHLIBGLOBALSFLAGS="$(LDFLAGS)" SHLIBDIR="$(LIBDIR)" PREFIX=/usr dh_auto_build --parallel + PREFIX=/usr dh_auto_build --parallel -- CDEBUGFLAGS="$(CPPFLAGS) $(CFLAGS)" LOCAL_LDFLAGS="$(LDFLAGS)" SHLIBGLOBALSFLAGS="$(LDFLAGS)" SHLIBDIR="$(LIBDIR)" override_dh_strip: dh_strip -plibnx-x11-6 --dbg-package=libnx-x11-6-dbg diff --git a/nx-X11/Makefile b/nx-X11/Makefile index cb8c86b2b..1096e62cf 100644 --- a/nx-X11/Makefile +++ b/nx-X11/Makefile @@ -39,6 +39,15 @@ World: @echo "" @date @echo "" + if [ ! -f xmakefile ]; then ${MAKE} ${MFLAGS} BuildEnv; fi + ${MAKE} ${MAKE_OPTS} $(MFLAGS) $(WORLDOPTS) World + @echo "" + @date + @echo "" + @echo Full build of $(RELEASE) complete. + @echo "" + +BuildEnv: @if [ -f xmakefile ]; then \ ${MAKE} ${MAKE_OPTS} -k distclean || \ ${MAKE} ${MAKE_OPTS} -k clean || \ @@ -52,12 +61,7 @@ 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 "" - @echo Full build of $(RELEASE) complete. - @echo "" + .PRECIOUS: Makefile diff --git a/nx-X11/lib/X11/Imakefile b/nx-X11/lib/X11/Imakefile index 81a1cfd3d..1ba1e4818 100644 --- a/nx-X11/lib/X11/Imakefile +++ b/nx-X11/lib/X11/Imakefile @@ -1139,44 +1139,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:: diff --git a/nx-X11/programs/Xserver/Imakefile b/nx-X11/programs/Xserver/Imakefile index 0d820fad2..50031217e 100644 --- a/nx-X11/programs/Xserver/Imakefile +++ b/nx-X11/programs/Xserver/Imakefile @@ -455,27 +455,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)) /* diff --git a/nx-libs.spec b/nx-libs.spec index 770f1870a..8b2ecb09a 100644 --- a/nx-libs.spec +++ b/nx-libs.spec @@ -454,6 +454,7 @@ chmod a+x my_configure; %{!?__global_ldflags: %global __global_ldflags -Wl,-z,relro} export SHLIBGLOBALSFLAGS="%{__global_ldflags}" export LOCAL_LDFLAGS="%{__global_ldflags}" +export CDEBUGFLAGS="%{__global_cppflags} %{__global_cflags}" make %{?_smp_mflags} CONFIGURE="$PWD/my_configure" PREFIX=%{_prefix} USRLIBDIR=%{_libdir} SHLIBDIR=%{_libdir} %install diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in index 759ab6a4f..ee12c3dbb 100644 --- a/nxcomp/Makefile.in +++ b/nxcomp/Makefile.in @@ -41,6 +41,8 @@ CXXFLAGS = @CXXFLAGS@ @X_CFLAGS@ @DEFS@ \ CXXINCLUDES = CXXDEFINES = +CPPFLAGS = @CPPFLAGS@ + # # C programs have their own CFLAGS. # @@ -87,9 +89,9 @@ DEPENDINCLUDES = -I/usr/include/c++ -I/usr/include/g++ -I/usr/include/g++-3 .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 = Xcomp diff --git a/nxcomp/configure.in b/nxcomp/configure.in index 47b29e7bc..6586f22b2 100644 --- a/nxcomp/configure.in +++ b/nxcomp/configure.in @@ -10,8 +10,12 @@ AC_SUBST(pkgconfigdir) dnl Set our default compilation flags. -CXXFLAGS="$CXXFLAGS -O3 -fno-rtti -fno-exceptions" -CFLAGS="$CFLAGS -O3" +if test "x$CXXFLAGS" = "x"; then + CXXFLAGS="-O3 -fno-rtti -fno-exceptions" +fi +if test "x$CFLAGS" = "x"; then + CFLAGS="$CFLAGS -O3" +fi dnl Reset default linking directives. diff --git a/nxcompext/Makefile.in b/nxcompext/Makefile.in index dd18c8053..415ffabb1 100644 --- a/nxcompext/Makefile.in +++ b/nxcompext/Makefile.in @@ -34,6 +34,8 @@ CXXFLAGS = @CXXFLAGS@ @X_CFLAGS@ @DEFS@ \ CXXINCLUDES = -I. -I../nxcomp CXXDEFINES = +CPPFLAGS = @CPPFLAGS@ + CC = @CC@ CCFLAGS = @CFLAGS@ @X_CFLAGS@ @DEFS@ \ -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ @@ -78,9 +80,9 @@ DEPENDINCLUDES = -I/usr/include/c++ -I/usr/include/g++ -I/usr/include/g++-3 .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 diff --git a/nxcompext/configure.in b/nxcompext/configure.in index 6078851b4..70bb9d121 100644 --- a/nxcompext/configure.in +++ b/nxcompext/configure.in @@ -10,8 +10,12 @@ AC_SUBST(pkgconfigdir) 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. diff --git a/nxcompshad/Makefile.in b/nxcompshad/Makefile.in index 68bb1fbad..9c2b6f4fd 100644 --- a/nxcompshad/Makefile.in +++ b/nxcompshad/Makefile.in @@ -36,6 +36,8 @@ CXXFLAGS = @CXXFLAGS@ @X_CFLAGS@ @DEFS@ \ CXXINCLUDES = CXXDEFINES = +CPPFLAGS = @CPPFLAGS@ + # # C programs don't share the C++ flags. They should # have their own @CCFLAGS@. @@ -99,9 +101,9 @@ DEPENDINCLUDES = -I/usr/include/g++ -I/usr/include/g++-3 .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 diff --git a/nxcompshad/configure.in b/nxcompshad/configure.in index 7ec064cc6..226b13ef8 100644 --- a/nxcompshad/configure.in +++ b/nxcompshad/configure.in @@ -10,8 +10,12 @@ AC_SUBST(pkgconfigdir) 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. @@ -80,8 +84,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 diff --git a/nxproxy/configure.in b/nxproxy/configure.in index 268584216..12e2a08d2 100644 --- a/nxproxy/configure.in +++ b/nxproxy/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 Prefer headers and libraries from nx-X11 if present. -- cgit v1.2.3