сравнение двух переменных с помощью оператора условия в Makefiles - PullRequest
0 голосов
/ 14 июля 2020

Ниже мой Makefile. Я просто хочу провести сравнение с помощью оператора && (или его эквивалента), как показано в следующем псевдокоде. Я хочу запустить следующий logi c внутри цели «все»

#   if (CUR_PI_VERSION == LAST_PI_VERSION) && (CUR_GIT_VERSION == LAST_GIT_VERSION) 
#       print "everything matched. Nothing to do"
#   else
#       print "files not matched"
#       run python script.
#
#   How do I achieve this.

Я посмотрел при других ответах, но я не смог получить желаемый результат. Я приложил свой образец кода для справки.

CUR_PI_VERSION:= "abc"
CUR_GIT_VERSION:= "cde"

LAST_PI_VERSION:= "abc"
LAST_GIT_VERSION:= "cde"

$(info $$CUR_GIT_VERSION is [${CUR_GIT_VERSION}])
$(info $$CUR_PI_VERSION is [${CUR_PI_VERSION}])

$(info $$LAST_GIT_VERSION is [${LAST_GIT_VERSION}])
$(info $$LAST_PI_VERSION is [${LAST_PI_VERSION}])

all:

# The pseudocode of what I want to do is as follows 
#   if (CUR_PI_VERSION == LAST_PI_VERSION) && (CUR_GIT_VERSION == LAST_GIT_VERSION) 
#       print "everything matched. Nothing to do"
#   else
#       print "files not matched"
#       run python script.
#
#   How do I achieve this.
#
    ifeq ($(CUR_GIT_VERSION),$(LAST_GIT_VERSION))
        ifeq ($(CUR_FPI_VERSION),$(LAST_FPI_VERSION))
            echo "Everything matched, so don't need the make top"
        endif 
    endif

Любая помощь приветствуется.

1 Ответ

1 голос
/ 14 июля 2020

Вы можете попробовать это:

all:
ifeq ($(CUR_PI_VERSION)@$(CUR_GIT_VERSION),$(LAST_PI_VERSION)@$(LAST_GIT_VERSION))
    echo "Everything matched, so don't need the make top"
endif

Вышеупомянутый тест сравнивает две сцепленные строки (соединенные @):

$(CUR_PI_VERSION)@$(CUR_GIT_VERSION)

и

$(LAST_PI_VERSION)@$(LAST_GIT_VERSION)
...