# opkhelper # lib/buildsystem/make # Build system plugin for POSIX-conformant make. # # Copyright (C) 2012 Patrick "P. J." McDermott # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . [ -n "${_OH_BUILDSYSTEM_MAKE_SM}" ] && return 0 _OH_BUILDSYSTEM_MAKE_SM='true' _oh_make_can_configure() { return 1 } _oh_make_can_build() { [ -r "${_OH_BUILDSYSTEM_BUILD_DIR}/makefile" -o \ -r "${_OH_BUILDSYSTEM_BUILD_DIR}/Makefile" ] } _oh_make_build() { _oh_make_update_first_defined_target '' "${@}" } _oh_make_can_clean() { _oh_make_can_build } _oh_make_clean() { _oh_make_update_first_defined_target 'distclean realclean clean' "${@}" } _oh_make_can_test() { _oh_make_can_build } _oh_make_test() { _oh_make_update_first_defined_target 'test check' "${@}" } _oh_make_can_install() { _oh_make_can_build } _oh_make_install() { _oh_make_update_first_defined_target 'install' \ "${@}" "DESTDIR=${_OH_BUILDSYSTEM_DESTDIR}" } _oh_make_update_first_defined_target() { _oh_local _ohbsmufdt_targets _ohbsmufdt_target _ohbsmufdt_rc _ohbsmufdt_targets="${1}" shift mkdir -p "${_OH_BUILDSYSTEM_BUILD_DIR}" cd "${_OH_BUILDSYSTEM_BUILD_DIR}" if [ -n "${_OH_BUILDSYSTEM_BUILD_TARGET}" ]; then make "${@}" "${_OH_BUILDSYSTEM_BUILD_TARGET}" _ohbsmufdt_rc=${?} elif [ -n "${_ohbsmufdt_targets}" ]; then for _ohbsmufdt_target in ${_ohbsmufdt_targets}; do # If the target is defined, ... if make -n "${_ohbsmufdt_target}" >/dev/null 2>&1; then # ... then update it. make "${@}" "${_ohbsmufdt_target}" _ohbsmufdt_rc=${?} break fi done else make "${@}" _ohbsmufdt_rc=${?} fi cd "${_OH_BUILDSYSTEM_WORK_AREA}" _oh_return ${_ohbsmufdt_rc} return ${?} }