所有,请原谅我在这里发布一些混淆希望得到一些帮助以便更好地理解。
我正在尝试在VS 2012中编译OpenSSL
src。一切都很顺利。但只是有一些困惑,这是
nmake -f ms\ntdll.mak
和nmake -f ms\ntdll.mak install
。 在我的理解中。 -f
表示引用makefile。
install
表示目标。
我的理解只是一组要执行的dos命令。我可以在ntdll.mak
。
install: all
$(MKDIR) "$(INSTALLTOP)"
$(MKDIR) "$(INSTALLTOP)\bin"
$(MKDIR) "$(INSTALLTOP)\include"
$(MKDIR) "$(INSTALLTOP)\include\openssl"
$(MKDIR) "$(INSTALLTOP)\lib"
$(CP) "$(INCO_D)\*.[ch]" "$(INSTALLTOP)\include\openssl"
$(CP) "$(BIN_D)\$(E_EXE).exe $(INSTALLTOP)\bin"
$(MKDIR) "$(OPENSSLDIR)"
$(CP) apps\openssl.cnf "$(OPENSSLDIR)"
$(CP) "$(O_SSL)" "$(INSTALLTOP)\bin"
$(CP) "$(O_CRYPTO)" "$(INSTALLTOP)\bin"
$(CP) "$(L_SSL)" "$(INSTALLTOP)\lib"
$(CP) "$(L_CRYPTO)" "$(INSTALLTOP)\lib"
$(MKDIR) "$(INSTALLTOP)\lib\engines"
$(CP) "$(E_SHLIB)" "$(INSTALLTOP)\lib\engines"
test: $(T_EXE)
cd $(BIN_D)
..\ms\test
nmake
两次?
我的理解前一个是构建。第二个是为msi
等安装包构建的。感谢。答案 0 :(得分:0)
是的,你的理解是正确的。
为什么要运行两次:正如您所推测的那样,第一次调用make会在工作目录中构建软件,第二次使用在目标下面给出的DOS命令序列将构建结果复制到安装位置标签
所有这些细节都是make程序的任何变体的通用细节,并非特定于Microsoft的nmake。你没有问过任何关于nmake的具体信息。