]> granicus.if.org Git - handbrake/commitdiff
build: Respect CC environment variable on FreeBSD.
authorYuichiro NAITO <naito.yuichiro@gmail.com>
Sat, 17 Nov 2018 08:23:53 +0000 (17:23 +0900)
committerBradley Sepos <bradley@bradleysepos.com>
Mon, 26 Nov 2018 22:59:40 +0000 (17:59 -0500)
Fixes #1674.

We use the compiler that CC environment variable indicates.
If CC is ommited, use gcc or clang which is installed.
If gcc is chosen, we need to add `-Wl,-rpath` option to make runtime linker
linking gcc's runtime libraries from installed path. For example, gcc7's
runtime libraries are installed in `/usr/local/lib/gcc7` by default.
And we also need to link libc++ first to make libc++ initializer is called
on runtime.

gtk/module.rules
make/configure.py
make/include/gcc.defs
make/variant/freebsd.defs

index eaebdb3f5cc0366459d2725489e8c0899019a944..09d99b4666254b07e856e8469c34363cbb624bf6 100644 (file)
@@ -17,6 +17,8 @@ $(GTK.CONFIGURE.stamp): $(GTK.src/)configure.ac $(GTK.src/)src/Makefile.am
        set -e; cd $(GTK.build/); $(call fn.ABSOLUTE,$(GTK.src/))configure \
                $(GTK.CONFIGURE.extra) \
                PKG_CONFIG_PATH=$(BUILD/)contrib/lib/pkgconfig:$(PKG_CONFIG_PATH) \
+               CC="$(GCC.gcc)" \
+               CXX="$(GCC.gxx)" \
                CFLAGS="$(call fn.ARGS,GTK.GCC,.g .O *D ?extra)" \
                LDFLAGS="$(call fn.ARGS,GTK.GCC,?strip .g .O ?extra.exe)" \
                PYTHON="$(PYTHON.exe)" \
index 9697fffa567bbf209f7377d6b5ec356dbdacb1ac..6f58a78e2b4058400b8b619e784306f544bda651 100644 (file)
@@ -1512,7 +1512,12 @@ try:
     class Tools:
         ar    = ToolProbe( 'AR.exe',    'ar', abort=True )
         cp    = ToolProbe( 'CP.exe',    'cp', abort=True )
-        gcc   = ToolProbe( 'GCC.gcc',   'gcc', IfHost( 'clang', '*-*-freebsd*' ), IfHost( 'gcc-4', '*-*-cygwin*' ))
+        gcc_tools = ['GCC.gcc',
+                     IfHost( os.environ.get('CC', None), '*-*-freebsd*' ),
+                     'gcc',
+                     IfHost( 'clang', '*-*-freebsd*' ),
+                     IfHost( 'gcc-4', '*-*-cygwin*' )]
+        gcc   = ToolProbe(*filter(None, gcc_tools))
 
         if host.match( '*-*-darwin*' ):
             gmake = ToolProbe( 'GMAKE.exe', 'make', 'gmake', abort=True )
index adb86ad460539e99d41868bf53cf5005dc1982f5..83b26aafa3e2c1db65dc5b58691dbc7e0c977f7c 100644 (file)
@@ -1,5 +1,5 @@
 GCC.gcc = gcc
-GCC.gxx = $(dir $(GCC.gcc))$(subst clang,clang++,$(subst gcc,g++,$(notdir $(GCC.gcc))))
+GCC.gxx = $(dir $(GCC.gcc))$(subst cc,c++,$(subst clang,clang++,$(subst gcc,g++,$(notdir $(GCC.gcc)))))
 
 GCC.strip   = $$(if $$(filter none,$$(GCC.g)),1)
 GCC.dylib   = 1
@@ -91,7 +91,7 @@ GCC.args.extra.exe++   = $(LDFLAGS)
 
 define import.GCC
     $(1).GCC.gcc = $$(GCC.gcc)
-    $(1).GCC.gxx = $$(dir $$($(1).GCC.gcc))$$(subst clang,clang++,$$(subst gcc,g++,$$(notdir $$($(1).GCC.gcc))))
+    $(1).GCC.gxx = $$(dir $$($(1).GCC.gcc))$$(subst cc,c++,$$(subst clang,clang++,$$(subst gcc,g++,$$(notdir $$($(1).GCC.gcc)))))
 
     $(1).GCC.pipe    = $$(GCC.pipe)
     $(1).GCC.c_std   = $$(GCC.c_std)
index d8a7245f80d92256d8248b712d0e06a9425aa34f..e0855b51af0135679bcf04ff152310544e75ecb1 100644 (file)
@@ -14,3 +14,7 @@ GCC.args.g.none = -g0
 GCC.args.g.min  = -g1
 GCC.args.g.std  = -g2
 GCC.args.g.max  = -g3
+
+GCC.MAJOR_VERSION = $(shell $(GCC.gcc) -dumpversion | cut -f 1 -d .)
+GCC.LDFLAGS = -lc++ -Wl,-rpath=$(LOCALBASE)/lib/gcc$(GCC.MAJOR_VERSION)
+LDFLAGS += $(if $(findstring gcc, $(GCC.gcc)), $(GCC.LDFLAGS), )