Skip to content

Commit 70199b4

Browse files
committed
configure: add initial support for CC_FOR_BUILD, CXX_FOR_BUILD, CFLAGS_FOR_BUILD, CXXFLAGS_FOR_BUILD, LDFLAGS_FOR_BUILD
1 parent 4237a6e commit 70199b4

File tree

4 files changed

+252
-3
lines changed

4 files changed

+252
-3
lines changed

Makefile.include.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,15 @@ dvidir=@dvidir@
2828
pdfdir=@pdfdir@
2929
psdir=@psdir@
3030
CXX=@CXX@
31+
CXX_FOR_BUILD=@CXX_FOR_BUILD@
3132
CC=@CC@
33+
CC_FOR_BUILD=@CC_FOR_BUILD@
3234
CXXFLAGS+=@CXXFLAGS@
35+
CXXFLAGS_FOR_BUILD+=@CXXFLAGS_FOR_BUILD@
3336
CFLAGS+=@CFLAGS@
37+
CFLAGS_FOR_BUILD+=@CFLAGS_FOR_BUILD@
3438
LDFLAGS+=@LDFLAGS@
39+
LDFLAGS_FOR_BUILD+=@LDFLAGS_FOR_BUILD@
3540
INCLUDES+=-I@abs_top_srcdir@/lib
3641
INCLUDES+=-I@abs_top_srcdir@/xbmc
3742
INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.gui

configure.in

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ AC_PREREQ(2.59)
55
AC_INIT([xbmc], [12.9.8], [http://trac.xbmc.org])
66
AC_CONFIG_HEADERS([xbmc/config.h])
77
AH_TOP([#pragma once])
8+
m4_include([m4/ax_prog_cc_for_build.m4])
9+
m4_include([m4/ax_prog_cxx_for_build.m4])
810
m4_include([m4/ax_python_devel.m4])
911
m4_include([m4/xbmc_arch.m4])
1012

@@ -579,13 +581,15 @@ if test "x$host_vendor" != "xapple"; then
579581
fi
580582

581583
# Checks for programs.
584+
PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
585+
AC_PROG_CC
586+
AX_PROG_CC_FOR_BUILD
587+
CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
582588
PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
583589
AC_PROG_CXX
590+
AX_PROG_CXX_FOR_BUILD
584591
CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
585-
PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
586-
AC_PROG_CC
587592
AC_PROG_LIBTOOL
588-
CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
589593
AC_PROG_AWK
590594
AC_PROG_LN_S
591595
AC_PROG_MAKE_SET
@@ -2467,6 +2471,11 @@ AC_SUBST(CFLAGS)
24672471
AC_SUBST(CXXFLAGS)
24682472
AC_SUBST(INCLUDES)
24692473
AC_SUBST(LDFLAGS)
2474+
AC_SUBST(CXX_FOR_BUILD)
2475+
AC_SUBST(CC_FOR_BUILD)
2476+
AC_SUBST(CFLAGS_FOR_BUILD)
2477+
AC_SUBST(CXXFLAGS_FOR_BUILD)
2478+
AC_SUBST(LDFLAGS_FOR_BUILD)
24702479
AC_SUBST(SDL_DEFINES)
24712480
AC_SUBST(BUILD_DVDCSS)
24722481
AC_SUBST(DISABLE_WAVEFORM)

m4/ax_prog_cc_for_build.m4

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# ===========================================================================
2+
# http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
3+
# ===========================================================================
4+
#
5+
# SYNOPSIS
6+
#
7+
# AX_PROG_CC_FOR_BUILD
8+
#
9+
# DESCRIPTION
10+
#
11+
# This macro searches for a C compiler that generates native executables,
12+
# that is a C compiler that surely is not a cross-compiler. This can be
13+
# useful if you have to generate source code at compile-time like for
14+
# example GCC does.
15+
#
16+
# The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything
17+
# needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD).
18+
# The value of these variables can be overridden by the user by specifying
19+
# a compiler with an environment variable (like you do for standard CC).
20+
#
21+
# It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and object
22+
# file extensions for the build platform, and GCC_FOR_BUILD to `yes' if
23+
# the compiler we found is GCC. All these variables but GCC_FOR_BUILD are
24+
# substituted in the Makefile.
25+
#
26+
# LICENSE
27+
#
28+
# Copyright (c) 2008 Paolo Bonzini <[email protected]>
29+
#
30+
# Copying and distribution of this file, with or without modification, are
31+
# permitted in any medium without royalty provided the copyright notice
32+
# and this notice are preserved. This file is offered as-is, without any
33+
# warranty.
34+
35+
#serial 8
36+
37+
AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
38+
AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
39+
AC_REQUIRE([AC_PROG_CC])dnl
40+
AC_REQUIRE([AC_PROG_CPP])dnl
41+
AC_REQUIRE([AC_EXEEXT])dnl
42+
AC_REQUIRE([AC_CANONICAL_HOST])dnl
43+
44+
dnl Use the standard macros, but make them use other variable names
45+
dnl
46+
pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
47+
pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
48+
pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
49+
pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
50+
pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl
51+
pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl
52+
pushdef([ac_cv_objext], ac_cv_build_objext)dnl
53+
pushdef([ac_exeext], ac_build_exeext)dnl
54+
pushdef([ac_objext], ac_build_objext)dnl
55+
pushdef([CC], CC_FOR_BUILD)dnl
56+
pushdef([CPP], CPP_FOR_BUILD)dnl
57+
pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl
58+
pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
59+
pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl
60+
pushdef([host], build)dnl
61+
pushdef([host_alias], build_alias)dnl
62+
pushdef([host_cpu], build_cpu)dnl
63+
pushdef([host_vendor], build_vendor)dnl
64+
pushdef([host_os], build_os)dnl
65+
pushdef([ac_cv_host], ac_cv_build)dnl
66+
pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
67+
pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
68+
pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
69+
pushdef([ac_cv_host_os], ac_cv_build_os)dnl
70+
pushdef([ac_cpp], ac_build_cpp)dnl
71+
pushdef([ac_compile], ac_build_compile)dnl
72+
pushdef([ac_link], ac_build_link)dnl
73+
74+
save_cross_compiling=$cross_compiling
75+
save_ac_tool_prefix=$ac_tool_prefix
76+
cross_compiling=no
77+
ac_tool_prefix=
78+
79+
AC_PROG_CC
80+
AC_PROG_CPP
81+
AC_EXEEXT
82+
83+
ac_tool_prefix=$save_ac_tool_prefix
84+
cross_compiling=$save_cross_compiling
85+
86+
dnl Restore the old definitions
87+
dnl
88+
popdef([ac_link])dnl
89+
popdef([ac_compile])dnl
90+
popdef([ac_cpp])dnl
91+
popdef([ac_cv_host_os])dnl
92+
popdef([ac_cv_host_vendor])dnl
93+
popdef([ac_cv_host_cpu])dnl
94+
popdef([ac_cv_host_alias])dnl
95+
popdef([ac_cv_host])dnl
96+
popdef([host_os])dnl
97+
popdef([host_vendor])dnl
98+
popdef([host_cpu])dnl
99+
popdef([host_alias])dnl
100+
popdef([host])dnl
101+
popdef([LDFLAGS])dnl
102+
popdef([CPPFLAGS])dnl
103+
popdef([CFLAGS])dnl
104+
popdef([CPP])dnl
105+
popdef([CC])dnl
106+
popdef([ac_objext])dnl
107+
popdef([ac_exeext])dnl
108+
popdef([ac_cv_objext])dnl
109+
popdef([ac_cv_exeext])dnl
110+
popdef([ac_cv_prog_cc_g])dnl
111+
popdef([ac_cv_prog_cc_cross])dnl
112+
popdef([ac_cv_prog_cc_works])dnl
113+
popdef([ac_cv_prog_gcc])dnl
114+
popdef([ac_cv_prog_CPP])dnl
115+
116+
dnl Finally, set Makefile variables
117+
dnl
118+
BUILD_EXEEXT=$ac_build_exeext
119+
BUILD_OBJEXT=$ac_build_objext
120+
AC_SUBST(BUILD_EXEEXT)dnl
121+
AC_SUBST(BUILD_OBJEXT)dnl
122+
AC_SUBST([CFLAGS_FOR_BUILD])dnl
123+
AC_SUBST([CPPFLAGS_FOR_BUILD])dnl
124+
AC_SUBST([LDFLAGS_FOR_BUILD])dnl
125+
])

m4/ax_prog_cxx_for_build.m4

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# ===========================================================================
2+
# http://www.gnu.org/software/autoconf-archive/ax_prog_cxx_for_build.html
3+
# ===========================================================================
4+
#
5+
# SYNOPSIS
6+
#
7+
# AX_PROG_CXX_FOR_BUILD
8+
#
9+
# DESCRIPTION
10+
#
11+
# This macro searches for a C++ compiler that generates native
12+
# executables, that is a C++ compiler that surely is not a cross-compiler.
13+
# This can be useful if you have to generate source code at compile-time
14+
# like for example GCC does.
15+
#
16+
# The macro sets the CXX_FOR_BUILD and CXXCPP_FOR_BUILD macros to anything
17+
# needed to compile or link (CXX_FOR_BUILD) and preprocess
18+
# (CXXCPP_FOR_BUILD). The value of these variables can be overridden by
19+
# the user by specifying a compiler with an environment variable (like you
20+
# do for standard CXX).
21+
#
22+
# LICENSE
23+
#
24+
# Copyright (c) 2008 Paolo Bonzini <[email protected]>
25+
# Copyright (c) 2012 Avionic Design GmbH
26+
#
27+
# Based on the AX_PROG_CC_FOR_BUILD macro by Paolo Bonzini.
28+
#
29+
# Copying and distribution of this file, with or without modification, are
30+
# permitted in any medium without royalty provided the copyright notice
31+
# and this notice are preserved. This file is offered as-is, without any
32+
# warranty.
33+
34+
#serial 2
35+
36+
AU_ALIAS([AC_PROG_CXX_FOR_BUILD], [AX_PROG_CXX_FOR_BUILD])
37+
AC_DEFUN([AX_PROG_CXX_FOR_BUILD], [dnl
38+
AC_REQUIRE([AX_PROG_CC_FOR_BUILD])dnl
39+
AC_REQUIRE([AC_PROG_CXX])dnl
40+
AC_REQUIRE([AC_PROG_CXXCPP])dnl
41+
AC_REQUIRE([AC_CANONICAL_HOST])dnl
42+
43+
dnl Use the standard macros, but make them use other variable names
44+
dnl
45+
pushdef([ac_cv_prog_CXXCPP], ac_cv_build_prog_CXXCPP)dnl
46+
pushdef([ac_cv_prog_gxx], ac_cv_build_prog_gxx)dnl
47+
pushdef([ac_cv_prog_cxx_works], ac_cv_build_prog_cxx_works)dnl
48+
pushdef([ac_cv_prog_cxx_cross], ac_cv_build_prog_cxx_cross)dnl
49+
pushdef([ac_cv_prog_cxx_g], ac_cv_build_prog_cxx_g)dnl
50+
pushdef([CXX], CXX_FOR_BUILD)dnl
51+
pushdef([CXXCPP], CXXCPP_FOR_BUILD)dnl
52+
pushdef([CXXFLAGS], CXXFLAGS_FOR_BUILD)dnl
53+
pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
54+
pushdef([CXXCPPFLAGS], CXXCPPFLAGS_FOR_BUILD)dnl
55+
pushdef([host], build)dnl
56+
pushdef([host_alias], build_alias)dnl
57+
pushdef([host_cpu], build_cpu)dnl
58+
pushdef([host_vendor], build_vendor)dnl
59+
pushdef([host_os], build_os)dnl
60+
pushdef([ac_cv_host], ac_cv_build)dnl
61+
pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
62+
pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
63+
pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
64+
pushdef([ac_cv_host_os], ac_cv_build_os)dnl
65+
pushdef([ac_cxxcpp], ac_build_cxxcpp)dnl
66+
pushdef([ac_compile], ac_build_compile)dnl
67+
pushdef([ac_link], ac_build_link)dnl
68+
69+
save_cross_compiling=$cross_compiling
70+
save_ac_tool_prefix=$ac_tool_prefix
71+
cross_compiling=no
72+
ac_tool_prefix=
73+
74+
AC_PROG_CXX
75+
AC_PROG_CXXCPP
76+
77+
ac_tool_prefix=$save_ac_tool_prefix
78+
cross_compiling=$save_cross_compiling
79+
80+
dnl Restore the old definitions
81+
dnl
82+
popdef([ac_link])dnl
83+
popdef([ac_compile])dnl
84+
popdef([ac_cxxcpp])dnl
85+
popdef([ac_cv_host_os])dnl
86+
popdef([ac_cv_host_vendor])dnl
87+
popdef([ac_cv_host_cpu])dnl
88+
popdef([ac_cv_host_alias])dnl
89+
popdef([ac_cv_host])dnl
90+
popdef([host_os])dnl
91+
popdef([host_vendor])dnl
92+
popdef([host_cpu])dnl
93+
popdef([host_alias])dnl
94+
popdef([host])dnl
95+
popdef([CXXCPPFLAGS])dnl
96+
popdef([CPPFLAGS])dnl
97+
popdef([CXXFLAGS])dnl
98+
popdef([CXXCPP])dnl
99+
popdef([CXX])dnl
100+
popdef([ac_cv_prog_cxx_g])dnl
101+
popdef([ac_cv_prog_cxx_cross])dnl
102+
popdef([ac_cv_prog_cxx_works])dnl
103+
popdef([ac_cv_prog_gxx])dnl
104+
popdef([ac_cv_prog_CXXCPP])dnl
105+
106+
dnl Finally, set Makefile variables
107+
dnl
108+
AC_SUBST([CXXFLAGS_FOR_BUILD])dnl
109+
AC_SUBST([CXXCPPFLAGS_FOR_BUILD])dnl
110+
])

0 commit comments

Comments
 (0)