从 Makefile 安装包
Installing a package from Makefile
我是编写Makefile 的初学者。我正在编写一个用于构建我的第一个 linux 应用程序。
到目前为止,我已经写了以下内容。
REDHATOS := $(shell command -v cat /etc/redhat-release 2> /dev/null)
DEBIANOS := $(shell command -v cat /etc/debian_version 2> /dev/null)
SWIG := $(shell command -v swig 2> /dev/null)
PRE_BUILD_VALIDATION:
ifndef SWIG
@echo "swig not installed, trying to install it first ..."
ifdef DEBIANOS
@sudo apt-get install swig
else
@sudo yum install swig
endif
endif
基本上我想检查系统中是否已经安装了SWIG(你可以忽略这个)。如果没有,它将首先安装。我想设计独立于平台的进程(Fedora 或Ubuntu)。
但是,当我在 Fedora 系统中 make
ing 时,我遇到了以下错误。
swig not installed, trying to install it first ...
sudo: apt-get: command not found
Makefile:7: recipe for target 'PRE_BUILD_VALIDATION' failed
make: *** [PRE_BUILD_VALIDATION] Error 1
它实际上应该点击 yum install swig
命令,因为它是 Fedora 系统。我不知道我做错了什么。如果我在这里做一些愚蠢的事情,请帮助并原谅。初学者在这里!!!
谢谢!
嗯,你 运行宁 command -v
,记录如下:
-v print a description of COMMAND similar to the `type' builtin
如果您从命令行运行它:
$ command -v cat /etc/debian_version
/bin/cat
因此,这两个变量都包含字符串 /bin/cat
,并且它们都不为空,因此您的 ifdef
始终为真。
可能您想取出 -v
。
你这里的错误是变量有错误的值。
最好使用 wildcard
检查文件是否存在:
REDHATOS := $(wildcard /etc/redhat-release*)
DEBIANOS := $(wildcard /etc/debian_version*)
免费小费::-)
ifneq($(DEBIANOS),)
PKG_INSTALLER := apt-get
endif
我是编写Makefile 的初学者。我正在编写一个用于构建我的第一个 linux 应用程序。
到目前为止,我已经写了以下内容。
REDHATOS := $(shell command -v cat /etc/redhat-release 2> /dev/null)
DEBIANOS := $(shell command -v cat /etc/debian_version 2> /dev/null)
SWIG := $(shell command -v swig 2> /dev/null)
PRE_BUILD_VALIDATION:
ifndef SWIG
@echo "swig not installed, trying to install it first ..."
ifdef DEBIANOS
@sudo apt-get install swig
else
@sudo yum install swig
endif
endif
基本上我想检查系统中是否已经安装了SWIG(你可以忽略这个)。如果没有,它将首先安装。我想设计独立于平台的进程(Fedora 或Ubuntu)。
但是,当我在 Fedora 系统中 make
ing 时,我遇到了以下错误。
swig not installed, trying to install it first ...
sudo: apt-get: command not found
Makefile:7: recipe for target 'PRE_BUILD_VALIDATION' failed
make: *** [PRE_BUILD_VALIDATION] Error 1
它实际上应该点击 yum install swig
命令,因为它是 Fedora 系统。我不知道我做错了什么。如果我在这里做一些愚蠢的事情,请帮助并原谅。初学者在这里!!!
谢谢!
嗯,你 运行宁 command -v
,记录如下:
-v print a description of COMMAND similar to the `type' builtin
如果您从命令行运行它:
$ command -v cat /etc/debian_version
/bin/cat
因此,这两个变量都包含字符串 /bin/cat
,并且它们都不为空,因此您的 ifdef
始终为真。
可能您想取出 -v
。
你这里的错误是变量有错误的值。
最好使用 wildcard
检查文件是否存在:
REDHATOS := $(wildcard /etc/redhat-release*)
DEBIANOS := $(wildcard /etc/debian_version*)
免费小费::-)
ifneq($(DEBIANOS),)
PKG_INSTALLER := apt-get
endif