Skip to content

Commit

Permalink
OPTFLAGS: Properly propagate build option flags to nxcomp{,ext,shad} …
Browse files Browse the repository at this point in the history
…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
      - nxcompext
      - nxcompshad
      - nx-X11/lib/*
      - [...]
      - nxagent
      - [...]

 Fixes ArcticaProject#141
 Fixes X2GoBTS#84
  • Loading branch information
sunweaver committed Jun 23, 2016
1 parent 98ff03c commit eafb6f3
Show file tree
Hide file tree
Showing 13 changed files with 62 additions and 85 deletions.
14 changes: 11 additions & 3 deletions Makefile
Expand Up @@ -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 \
Expand All @@ -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}
Expand Down
2 changes: 1 addition & 1 deletion debian/rules
Expand Up @@ -67,7 +67,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
Expand Down
16 changes: 10 additions & 6 deletions nx-X11/Makefile
Expand Up @@ -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 || \
Expand All @@ -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

Expand Down
38 changes: 0 additions & 38 deletions nx-X11/lib/X11/Imakefile
Expand Up @@ -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::
Expand Down
22 changes: 1 addition & 21 deletions nx-X11/programs/Xserver/Imakefile
Expand Up @@ -442,27 +442,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))

/*
Expand Down
1 change: 1 addition & 0 deletions nx-libs.spec
Expand Up @@ -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
Expand Down
6 changes: 4 additions & 2 deletions nxcomp/Makefile.in
Expand Up @@ -41,6 +41,8 @@ CXXFLAGS = @CXXFLAGS@ @X_CFLAGS@ @DEFS@ \
CXXINCLUDES =
CXXDEFINES =

CPPFLAGS = @CPPFLAGS@

#
# C programs have their own CFLAGS.
#
Expand Down Expand Up @@ -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

Expand Down
8 changes: 6 additions & 2 deletions nxcomp/configure.in
Expand Up @@ -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.

Expand Down
6 changes: 4 additions & 2 deletions nxcompext/Makefile.in
Expand Up @@ -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 \
Expand Down Expand Up @@ -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

Expand Down
8 changes: 6 additions & 2 deletions nxcompext/configure.in
Expand Up @@ -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.

Expand Down
6 changes: 4 additions & 2 deletions nxcompshad/Makefile.in
Expand Up @@ -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@.
Expand Down Expand Up @@ -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

Expand Down
12 changes: 8 additions & 4 deletions nxcompshad/configure.in
Expand Up @@ -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.

Expand Down Expand Up @@ -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

Expand Down
8 changes: 6 additions & 2 deletions nxproxy/configure.in
Expand Up @@ -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.

Expand Down

0 comments on commit eafb6f3

Please sign in to comment.