Mercurial > hg > octave-nkf
changeset 20172:8ba35b7b355d
Add cross buioldable mkoctfile target
* configure.ac: add option for --enable-cross-mkoctfile
* src/Makefile.am: on enable cross mkoctfile, add rules to generate $(host_triplet)-mkoctfile
* build-aux/common.mk: add new macro for do_subst_cross_config_vals
author | John Donoghue |
---|---|
date | Wed, 18 Mar 2015 11:18:39 -0400 |
parents | 2e7497ff2535 |
children | 23c0f89700a4 |
files | build-aux/common.mk configure.ac src/Makefile.am |
diffstat | 3 files changed, 204 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/build-aux/common.mk +++ b/build-aux/common.mk @@ -661,6 +661,177 @@ $(simple_move_if_change_rule) endef +define do_subst_cross_config_vals + $(SED) < $< \ + -e "s|%NO_EDIT_WARNING%|DO NOT EDIT! Generated automatically from $(<F) by Make.|" \ + -e "s|%NO_OCT_FILE_STRIP%|${NO_OCT_FILE_STRIP}|" \ + -e "s|%OCTAVE_BINDIR%|\"${bindir}\"|" \ + -e "s|%OCTAVE_CONF_ALL_CFLAGS%|\"${ALL_CFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_ALL_CXXFLAGS%|\"${ALL_CXXFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_ALL_FFLAGS%|\"${ALL_FFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_ALL_LDFLAGS%|\"${ALL_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_AMD_CPPFLAGS%|\"${AMD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_AMD_LDFLAGS%|\"${AMD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_AMD_LIBS%|\"${AMD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_AR%|\"${AR}\"|" \ + -e "s|%OCTAVE_CONF_ARFLAGS%|\"${ARFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_ARPACK_CPPFLAGS%|\"${ARPACK_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_ARPACK_LDFLAGS%|\"${ARPACK_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_ARPACK_LIBS%|\"${ARPACK_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_BLAS_LIBS%|\"${BLAS_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CAMD_CPPFLAGS%|\"${CAMD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CAMD_LDFLAGS%|\"${CAMD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CAMD_LIBS%|\"${CAMD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CANONICAL_HOST_TYPE%|\"${canonical_host_type}\"|" \ + -e "s|%OCTAVE_CONF_CARBON_LIBS%|\"${CARBON_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CC%|\"${CC}\"|" \ + -e "s|%OCTAVE_CONF_CCOLAMD_CPPFLAGS%|\"${CCOLAMD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CCOLAMD_LDFLAGS%|\"${CCOLAMD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CCOLAMD_LIBS%|\"${CCOLAMD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CFLAGS%|\"${CFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CHOLMOD_CPPFLAGS%|\"${CHOLMOD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CHOLMOD_LDFLAGS%|\"${CHOLMOD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CHOLMOD_LIBS%|\"${CHOLMOD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_COLAMD_CPPFLAGS%|\"${COLAMD_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_COLAMD_LDFLAGS%|\"${COLAMD_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_COLAMD_LIBS%|\"${COLAMD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CPICFLAG%|\"${CPICFLAG}\"|" \ + -e "s|%OCTAVE_CONF_CPPFLAGS%|\"${CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CURL_CPPFLAGS%|\"${CURL_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CURL_LDFLAGS%|\"${CURL_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CURL_LIBS%|\"${CURL_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CXSPARSE_CPPFLAGS%|\"${CXSPARSE_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CXSPARSE_LDFLAGS%|\"${CXSPARSE_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CXSPARSE_LIBS%|\"${CXSPARSE_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_CXX%|\"${CXX}\"|" \ + -e "s|%OCTAVE_CONF_CXXCPP%|\"${CXXCPP}\"|" \ + -e "s|%OCTAVE_CONF_CXXFLAGS%|\"${CXXFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_CXXPICFLAG%|\"${CXXPICFLAG}\"|" \ + -e "s|%OCTAVE_CONF_CXX_VERSION%|\"${CXX_VERSION}\"|" \ + -e "s|%OCTAVE_CONF_DEFAULT_PAGER%|\"${DEFAULT_PAGER}\"|" \ + -e "s|%OCTAVE_CONF_DEFS%|\"${DEFS}\"|" \ + -e "s|%OCTAVE_CONF_DEPEND_FLAGS%|\"${DEPEND_FLAGS}\"|" \ + -e "s|%OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%|\"${DEPEND_EXTRA_SED_PATTERN}\"|" \ + -e "s|%OCTAVE_CONF_DL_LD%|\"${DL_LD}\"|" \ + -e "s|%OCTAVE_CONF_DL_LDFLAGS%|\"${DL_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_DL_LIBS%|\"${DL_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_ENABLE_DYNAMIC_LINKING%|\"${ENABLE_DYNAMIC_LINKING}\"|" \ + -e "s|%OCTAVE_CONF_EXEEXT%|\"${EXEEXT}\"|" \ + -e "s|%OCTAVE_CONF_GCC_VERSION%|\"${GCC_VERSION}\"|" \ + -e "s|%OCTAVE_CONF_GXX_VERSION%|\"${GXX_VERSION}\"|" \ + -e "s|%OCTAVE_CONF_F77%|\"${F77}\"|" \ + -e "s|%OCTAVE_CONF_F77_FLOAT_STORE_FLAG%|\"${F77_FLOAT_STORE_FLAG}\"|" \ + -e "s|%OCTAVE_CONF_F77_INTEGER_8_FLAG%|\"${F77_INTEGER_8_FLAG}\"|" \ + -e "s|%OCTAVE_CONF_FFLAGS%|\"${FFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3_CPPFLAGS%|\"${FFTW3_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3_LDFLAGS%|\"${FFTW3_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3_LIBS%|\"${FFTW3_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3F_CPPFLAGS%|\"${FFTW3F_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3F_LDFLAGS%|\"${FFTW3F_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FFTW3F_LIBS%|\"${FFTW3F_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_FLIBS%|\"${FLIBS}\"|" \ + -e "s|%OCTAVE_CONF_FLTK_CPPFLAGS%|\"${FLTK_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FLTK_LDFLAGS%|\"${FLTK_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FLTK_LIBS%|\"${FLTK_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_FONTCONFIG_CPPFLAGS%|\"${FONTCONFIG_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FONTCONFIG_LIBS%|\"${FONTCONFIG_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_FPICFLAG%|\"${FPICFLAG}\"|" \ + -e "s|%OCTAVE_CONF_FT2_CPPFLAGS%|\"${FT2_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_FT2_LIBS%|\"${FT2_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_GLPK_CPPFLAGS%|\"${GLPK_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_GLPK_LDFLAGS%|\"${GLPK_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_GLPK_LIBS%|\"${GLPK_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_GNUPLOT%|\"${GNUPLOT}\"|" \ + -e "s|%OCTAVE_CONF_HDF5_CPPFLAGS%|\"${HDF5_CPPFLAGS}\"|" | \ + $(SED) -e "s|%OCTAVE_CONF_HDF5_LDFLAGS%|\"${HDF5_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_HDF5_LIBS%|\"${HDF5_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_INCLUDEDIR%|\"${includedir}\"|" \ + -e "s|%OCTAVE_CONF_LAPACK_LIBS%|\"${LAPACK_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_LD_CXX%|\"${LD_CXX}\"|" \ + -e "s|%OCTAVE_CONF_LDFLAGS%|\"${LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_LD_STATIC_FLAG%|\"${LD_STATIC_FLAG}\"|" \ + -e "s|%OCTAVE_CONF_LEX%|\"${LEX}\"|" \ + -e "s|%OCTAVE_CONF_LEXLIB%|\"${LEXLIB}\"|" \ + -e "s|%OCTAVE_CONF_LFLAGS%|\"${LFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_LIBDIR%|\"${libdir}\"|" \ + -e "s|%OCTAVE_CONF_LIBEXT%|\"${LIBEXT}\"|" \ + -e "s|%OCTAVE_CONF_LIBFLAGS%|\"${LIBFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_LIBOCTAVE%|\"${LIBOCTAVE}\"|" \ + -e "s|%OCTAVE_CONF_LIBOCTINTERP%|\"${LIBOCTINTERP}\"|" \ + -e "s|%OCTAVE_CONF_LIBS%|\"${LIBS}\"|" \ + -e "s|%OCTAVE_CONF_LLVM_CPPFLAGS%|\"${LLVM_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_LLVM_LDFLAGS%|\"${LLVM_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_LLVM_LIBS%|\"${LLVM_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_LN_S%|\"${LN_S}\"|" \ + -e "s|%OCTAVE_CONF_MAGICK_CPPFLAGS%|\"${MAGICK_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_MAGICK_LDFLAGS%|\"${MAGICK_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_MAGICK_LIBS%|\"${MAGICK_LIBS}\"|" \ + -e 's|%OCTAVE_CONF_MKOCTFILE_AR%|\"${AR}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_CC%|\"${CC}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_CXX%|\"${CXX}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_DL_LD%|\"${DL_LD}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%|\"${DL_LDFLAGS}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_F77%|\"${F77}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_LD_CXX%|\"${LD_CXX}\"|' \ + -e 's|%OCTAVE_CONF_MKOCTFILE_RANLIB%|\"${RANLIB}\"|' \ + -e "s|%OCTAVE_CONF_OCTAVE_LINK_DEPS%|\"${OCTAVE_LINK_DEPS}\"|" \ + -e "s|%OCTAVE_CONF_OCTAVE_LINK_OPTS%|\"${OCTAVE_LINK_OPTS}\"|" \ + -e "s|%OCTAVE_CONF_OCTINCLUDEDIR%|\"${octincludedir}\"|" \ + -e "s|%OCTAVE_CONF_OCTLIBDIR%|\"${octlibdir}\"|" \ + -e "s|%OCTAVE_CONF_OCT_LINK_DEPS%|\"${OCT_LINK_DEPS}\"|" \ + -e "s|%OCTAVE_CONF_OCT_LINK_OPTS%|\"${OCT_LINK_OPTS}\"|" \ + -e "s|%OCTAVE_CONF_OPENGL_LIBS%|\"${OPENGL_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_OSMESA_CPPFLAGS%|\"${OSMESA_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_OSMESA_LDFLAGS%|\"${OSMESA_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_OSMESA_LIBS%|\"${OSMESA_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_PCRE_CPPFLAGS%|\"${PCRE_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_PCRE_LIBS%|\"${PCRE_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_PREFIX%|\"${prefix}\"|" \ + -e "s|%OCTAVE_CONF_PTHREAD_CFLAGS%|\"${PTHREAD_CFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_PTHREAD_LIBS%|\"${PTHREAD_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_QHULL_CPPFLAGS%|\"${QHULL_CPPFLAGSS}\"|" \ + -e "s|%OCTAVE_CONF_QHULL_LDFLAGS%|\"${QHULL_LDFLAGSS}\"|" \ + -e "s|%OCTAVE_CONF_QHULL_LIBS%|\"${QHULL_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_QRUPDATE_CPPFLAGS%|\"${QRUPDATE_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_QRUPDATE_LDFLAGS%|\"${QRUPDATE_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_QRUPDATE_LIBS%|\"${QRUPDATE_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_QT_CPPFLAGS%|\"${QT_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_QT_LDFLAGS%|\"${QT_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_QT_LIBS%|\"${QT_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_RANLIB%|\"${RANLIB}\"|" \ + -e "s|%OCTAVE_CONF_RDYNAMIC_FLAG%|\"${RDYNAMIC_FLAG}\"|" \ + -e "s|%OCTAVE_CONF_READLINE_LIBS%|\"${READLINE_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_SED%|\"${SED}\"|" \ + -e "s|%OCTAVE_CONF_SHARED_LIBS%|\"${SHARED_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_SHLEXT%|\"${SHLEXT}\"|" \ + -e "s|%OCTAVE_CONF_SHLLINKEXT%|\"${SHLLINKEXT}\"|" \ + -e "s|%OCTAVE_CONF_SHLEXT_VER%|\"${SHLEXT_VER}\"|" \ + -e "s|%OCTAVE_CONF_SH_LD%|\"${SH_LD}\"|" \ + -e "s|%OCTAVE_CONF_SH_LDFLAGS%|\"${SH_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_SONAME_FLAGS%|\"${SONAME_FLAGS}\"|" \ + -e "s|%OCTAVE_CONF_STATIC_LIBS%|\"${STATIC_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_TERM_LIBS%|\"${TERM_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_UMFPACK_CPPFLAGS%|\"${UMFPACK_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_UMFPACK_LDFLAGS%|\"${UMFPACK_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_UMFPACK_LIBS%|\"${UMFPACK_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_USE_64_BIT_IDX_T%|\"${USE_64_BIT_IDX_T}\"|" \ + -e "s|%OCTAVE_CONF_VERSION%|\"${version}\"|" \ + -e "s|%OCTAVE_CONF_WARN_CFLAGS%|\"${WARN_CFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_WARN_CXXFLAGS%|\"${WARN_CXXFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_X11_INCFLAGS%|\"${X11_INCFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_X11_LIBS%|\"${X11_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_XTRA_CFLAGS%|\"${XTRA_CFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_XTRA_CXXFLAGS%|\"${XTRA_CXXFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_YACC%|\"${YACC}\"|" \ + -e "s|%OCTAVE_CONF_YFLAGS%|\"${YFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_Z_CPPFLAGS%|\"${Z_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_Z_LDFLAGS%|\"${Z_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_Z_LIBS%|\"${Z_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_config_opts%|\"${config_opts}\"|" > $@-t && \ + $(simple_move_if_change_rule) +endef + + define do_subst_default_vals $(SED) < $< > $@-t \ -e "s|%NO_EDIT_WARNING%|DO NOT EDIT! Generated automatically from $(<F) by Make.|" \
--- a/configure.ac +++ b/configure.ac @@ -2973,6 +2973,21 @@ AC_SUBST(QT_LDFLAGS) AC_SUBST(QT_LIBS) +# do we want to create cross-mkoctfile ? +cross_mkoctfile=no +AC_ARG_ENABLE([cross-mkoctfile], + [AS_HELP_STRING([--enable-cross-mkoctfile], + [build cross-mkoctfile if cross compiling])], + [if test "$enableval" = yes; then cross_mkoctfile=yes; fi]) + +if test "$cross_mkoctfile" = yes; then + if test "$cross_compiling" = no; then + AC_MSG_WARN([ignoring --enable-cross-mkoctfile when not cross compiling]) + fi +fi +AM_CONDITIONAL([AMCOND_CROSS_MKOCTFILE], [test $cross_mkoctfile = yes]) + + ### Decide whether or not to install build logs with Octave. install_build_logs=no @@ -3141,6 +3156,7 @@ Include support for GNU readline: $USE_READLINE 64-bit array dims and indexing: $USE_64_BIT_IDX_T OpenMP SMP multithreading: $USE_OPENMP + Build cross mkoctfile: $cross_mkoctfile ]) warn_msg_printed=false
--- a/src/Makefile.am +++ b/src/Makefile.am @@ -57,8 +57,10 @@ OCTAVE_VERSION_LINKS = octave-cli-$(version)$(EXEEXT) +archlib_PROGRAMS = + if AMCOND_BUILD_GUI - archlib_PROGRAMS = octave-gui + archlib_PROGRAMS += octave-gui OCTAVE_VERSION_LINKS += octave-gui-$(version)$(EXEEXT) endif @@ -129,7 +131,20 @@ $(top_builddir)/libgnu/libgnu.la \ $(LIBS) -all-local: $(OCTAVE_VERSION_LINKS) +# if building cross octfile +OCTAVE_CROSS_TOOLS= +if AMCOND_CROSS_MKOCTFILE +OCTAVE_CROSS_TOOLS += $(host_triplet)-mkoctfile$(BUILD_EXEEXT) +$(host_triplet)-mkoctfile$(BUILD_EXEEXT): $(host_triplet)-mkoctfile.cc + $(BUILD_CXX) -o $(host_triplet)-mkoctfile$(BUILD_EXEEXT) -Dgnulib='' -Doctave_idx_type=int $(DEFAULT_INCLUDES) $(BUILD_CXXFLAGS) $(BUILD_LDFLAGS) $(host_triplet)-mkoctfile.cc +mostlyclean-local: + -rm -f $(TARGET)-mkoctfile$(BUILD_EXEEXT) + +$(host_triplet)-mkoctfile.cc: mkoctfile.in.cc Makefile + $(AM_V_GEN)$(do_subst_cross_config_vals) +endif + +all-local: $(OCTAVE_VERSION_LINKS) $(OCTAVE_CROSS_TOOLS) octave-config.cc: octave-config.in.cc Makefile $(AM_V_GEN)$(do_subst_default_vals)