1*03514f19SPatrick WilliamsFrom: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de> 2*03514f19SPatrick WilliamsDate: Thu, 14 Mar 2024 08:08:13 +0100 3*03514f19SPatrick WilliamsSubject: [PATCH 1/2] configure: Use AX_PROG_CC_FOR_BUILD for cross compiling 4*03514f19SPatrick WilliamsMIME-Version: 1.0 5*03514f19SPatrick WilliamsContent-Type: text/plain; charset=UTF-8 6*03514f19SPatrick WilliamsContent-Transfer-Encoding: 8bit 7*03514f19SPatrick Williams 8*03514f19SPatrick WilliamsThe macro AX_PROG_CC_FOR_BUILD [1] sets the variables CC_FOR_BUILD and 9*03514f19SPatrick Williams..._FLAGS_FOR_BUILD they can be used [2] to build binaries used at compile 10*03514f19SPatrick Williamstime. 11*03514f19SPatrick Williams 12*03514f19SPatrick Williams[1]: https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html 13*03514f19SPatrick Williams[2]: https://stackoverflow.com/questions/24201260/autotools-cross-compilation-and-generated-sources/24208587#24208587 14*03514f19SPatrick Williams 15*03514f19SPatrick WilliamsSigned-off-by: Jörg Sommer <joerg.sommer@navimatix.de> 16*03514f19SPatrick WilliamsUpstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] 17*03514f19SPatrick Williams--- 18*03514f19SPatrick Williams configure.ac | 49 +------------------------------------------- 19*03514f19SPatrick Williams src/Makefile.am | 54 +++++++++++++++++++++++++------------------------ 20*03514f19SPatrick Williams 2 files changed, 29 insertions(+), 74 deletions(-) 21*03514f19SPatrick Williams 22*03514f19SPatrick Williamsdiff --git a/configure.ac b/configure.ac 23*03514f19SPatrick Williamsindex 96fd022..2140837 100644 24*03514f19SPatrick Williams--- a/configure.ac 25*03514f19SPatrick Williams+++ b/configure.ac 26*03514f19SPatrick Williams@@ -55,54 +55,7 @@ AC_LANG([C]) 27*03514f19SPatrick Williams 28*03514f19SPatrick Williams AX_COMPILER_VENDOR 29*03514f19SPatrick Williams 30*03514f19SPatrick Williams-if test "${build}" != "${host}" 31*03514f19SPatrick Williams-then 32*03514f19SPatrick Williams- # If we are doing a Canadian Cross, in which the host and build systems 33*03514f19SPatrick Williams- # are not the same, we set reasonable default values for the tools. 34*03514f19SPatrick Williams- 35*03514f19SPatrick Williams- CC_FOR_BUILD=${CC_FOR_BUILD-gcc} 36*03514f19SPatrick Williams- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" 37*03514f19SPatrick Williams- CC=${CC-${host_alias}-gcc} 38*03514f19SPatrick Williams- CFLAGS=${CFLAGS-"-g -O2"} 39*03514f19SPatrick Williams- CXX=${CXX-${host_alias}-c++} 40*03514f19SPatrick Williams- CXXFLAGS=${CXXFLAGS-"-g -O2"} 41*03514f19SPatrick Williams-else 42*03514f19SPatrick Williams- # Set reasonable default values for some tools even if not Canadian. 43*03514f19SPatrick Williams- # Of course, these are different reasonable default values, originally 44*03514f19SPatrick Williams- # specified directly in the Makefile. 45*03514f19SPatrick Williams- # We don't export, so that autoconf can do its job. 46*03514f19SPatrick Williams- # Note that all these settings are above the fragment inclusion point 47*03514f19SPatrick Williams- # in Makefile.in, so can still be overridden by fragments. 48*03514f19SPatrick Williams- # This is all going to change when we autoconfiscate... 49*03514f19SPatrick Williams- CC_FOR_BUILD="\$(CC)" 50*03514f19SPatrick Williams- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" 51*03514f19SPatrick Williams- AC_PROG_CC 52*03514f19SPatrick Williams- 53*03514f19SPatrick Williams- # We must set the default linker to the linker used by gcc for the correct 54*03514f19SPatrick Williams- # operation of libtool. If LD is not defined and we are using gcc, try to 55*03514f19SPatrick Williams- # set the LD default to the ld used by gcc. 56*03514f19SPatrick Williams- if test -z "$LD" 57*03514f19SPatrick Williams- then 58*03514f19SPatrick Williams- if test "$GCC" = yes 59*03514f19SPatrick Williams- then 60*03514f19SPatrick Williams- case $build in 61*03514f19SPatrick Williams- *-*-mingw*) 62*03514f19SPatrick Williams- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; 63*03514f19SPatrick Williams- *) 64*03514f19SPatrick Williams- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; 65*03514f19SPatrick Williams- esac 66*03514f19SPatrick Williams- case $gcc_prog_ld in 67*03514f19SPatrick Williams- # Accept absolute paths. 68*03514f19SPatrick Williams- [[\\/]* | [A-Za-z]:[\\/]*)] 69*03514f19SPatrick Williams- LD="$gcc_prog_ld" ;; 70*03514f19SPatrick Williams- esac 71*03514f19SPatrick Williams- fi 72*03514f19SPatrick Williams- fi 73*03514f19SPatrick Williams- 74*03514f19SPatrick Williams- CXX=${CXX-"c++"} 75*03514f19SPatrick Williams- CFLAGS=${CFLAGS-"-g -O2"} 76*03514f19SPatrick Williams- CXXFLAGS=${CXXFLAGS-"-g -O2"} 77*03514f19SPatrick Williams-fi 78*03514f19SPatrick Williams+AX_PROG_CC_FOR_BUILD 79*03514f19SPatrick Williams 80*03514f19SPatrick Williams AC_DEFUN([REMOVE_FROM_VAR],[ 81*03514f19SPatrick Williams new_val="" 82*03514f19SPatrick Williamsdiff --git a/src/Makefile.am b/src/Makefile.am 83*03514f19SPatrick Williamsindex e05fad5..9b409a1 100644 84*03514f19SPatrick Williams--- a/src/Makefile.am 85*03514f19SPatrick Williams+++ b/src/Makefile.am 86*03514f19SPatrick Williams@@ -386,44 +386,46 @@ noinst_HEADERS = cielab_luts.h \ 87*03514f19SPatrick Williams v34_tx_pre_emphasis_filters.h \ 88*03514f19SPatrick Williams v34_tables.h 89*03514f19SPatrick Williams 90*03514f19SPatrick Williams-make_at_dictionary$(EXEEXT): $(top_srcdir)/src/make_at_dictionary.c 91*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_at_dictionary$(EXEEXT) $(top_srcdir)/src/make_at_dictionary.c -DHAVE_CONFIG_H -I$(top_builddir)/src 92*03514f19SPatrick Williams+LINK_FOR_BUILD.c = $(CC_FOR_BUILD) -DHAVE_CONFIG_H -I$(top_builddir)/src $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(TARGET_ARCH_FOR_BUILD) 93*03514f19SPatrick Williams 94*03514f19SPatrick Williams-make_cielab_luts$(EXEEXT): $(top_srcdir)/src/make_cielab_luts.c 95*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_cielab_luts$(EXEEXT) $(top_srcdir)/src/make_cielab_luts.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 96*03514f19SPatrick Williams+make_at_dictionary$(BUILD_EXEEXT): $(top_srcdir)/src/make_at_dictionary.c 97*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ 98*03514f19SPatrick Williams 99*03514f19SPatrick Williams-make_math_fixed_tables$(EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c 100*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_math_fixed_tables$(EXEEXT) $(top_srcdir)/src/make_math_fixed_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 101*03514f19SPatrick Williams+make_cielab_luts$(BUILD_EXEEXT): $(top_srcdir)/src/make_cielab_luts.c 102*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -lm 103*03514f19SPatrick Williams 104*03514f19SPatrick Williams-make_modem_filter$(EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c 105*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_modem_filter$(EXEEXT) $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 106*03514f19SPatrick Williams+make_math_fixed_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c 107*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -lm 108*03514f19SPatrick Williams 109*03514f19SPatrick Williams-make_modem_godard_coefficients$(EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c 110*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_modem_godard_coefficients$(EXEEXT) $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 111*03514f19SPatrick Williams+make_modem_filter$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c 112*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -lm 113*03514f19SPatrick Williams 114*03514f19SPatrick Williams-make_t43_gray_code_tables$(EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c 115*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_t43_gray_code_tables$(EXEEXT) $(top_srcdir)/src/make_t43_gray_code_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 116*03514f19SPatrick Williams+make_modem_godard_coefficients$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c 117*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -lm 118*03514f19SPatrick Williams 119*03514f19SPatrick Williams-make_v17_v32_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c 120*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_v17_v32_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 121*03514f19SPatrick Williams+make_t43_gray_code_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c 122*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -lm 123*03514f19SPatrick Williams 124*03514f19SPatrick Williams-make_v17_v32_convolutional_encoder$(EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c 125*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_v17_v32_convolutional_encoder$(EXEEXT) $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 126*03514f19SPatrick Williams+make_v17_v32_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c 127*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -lm 128*03514f19SPatrick Williams 129*03514f19SPatrick Williams-make_v29_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c 130*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_v29_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 131*03514f19SPatrick Williams+make_v17_v32_convolutional_encoder$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c 132*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -lm 133*03514f19SPatrick Williams 134*03514f19SPatrick Williams-make_v34_convolutional_coders$(EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c 135*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_v34_convolutional_coders$(EXEEXT) $(top_srcdir)/src/make_v34_convolutional_coders.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 136*03514f19SPatrick Williams+make_v29_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c 137*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -lm 138*03514f19SPatrick Williams 139*03514f19SPatrick Williams-make_v34_probe_signals$(EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c 140*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_v34_probe_signals$(EXEEXT) $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm 141*03514f19SPatrick Williams+make_v34_convolutional_coders$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c 142*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -lm 143*03514f19SPatrick Williams 144*03514f19SPatrick Williams-make_v34_shell_map$(EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c 145*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_v34_shell_map$(EXEEXT) $(top_srcdir)/src/make_v34_shell_map.c -DHAVE_CONFIG_H -I$(top_builddir)/src 146*03514f19SPatrick Williams+make_v34_probe_signals$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c 147*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/src -lm 148*03514f19SPatrick Williams 149*03514f19SPatrick Williams-make_v34_tx_pre_emphasis_filters$(EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c 150*03514f19SPatrick Williams- $(CC_FOR_BUILD) -o make_v34_tx_pre_emphasis_filters$(EXEEXT) $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c -DHAVE_CONFIG_H -I$(top_builddir)/src -I$(top_builddir)/tools -lm 151*03514f19SPatrick Williams+make_v34_shell_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c 152*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ 153*03514f19SPatrick Williams+ 154*03514f19SPatrick Williams+make_v34_tx_pre_emphasis_filters$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c 155*03514f19SPatrick Williams+ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/tools -lm 156*03514f19SPatrick Williams 157*03514f19SPatrick Williams # We need to run make_at_dictionary, so it generates the 158*03514f19SPatrick Williams # at_interpreter_dictionary.h file 159*03514f19SPatrick Williams-- 160*03514f19SPatrick Williams2.34.1 161*03514f19SPatrick Williams 162