NMake的安装参数是什么意思

时间:2014-10-30 10:39:41

标签: openssl nmake

所有,请原谅我在这里发布一些混淆希望得到一些帮助以便更好地理解。

我正在尝试在VS 2012中编译OpenSSL src。一切都很顺利。但只是有一些困惑,这是

  1. 运行命令nmake -f ms\ntdll.maknmake -f ms\ntdll.mak install
  2. 在我的理解中。 -f表示引用makefile。 install表示目标。

    1. makefile的目标是什么?
    2. 我的理解只是一组要执行的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
      
      1. 为什么要运行nmake两次? 我的理解前一个是构建。第二个是为msi等安装包构建的。感谢。

1 个答案:

答案 0 :(得分:0)

是的,你的理解是正确的。

  1. -f标志告诉它使用以下文件作为Makefile
  2. makefile的目标是make makefile中第一个目标的参数(通常是 all )。
  3. 为什么要运行两次:正如您所推测的那样,第一次调用make会在工作目录中构建软件,第二次使用在目标下面给出的DOS命令序列将构建结果复制到安装位置标签

    所有这些细节都是make程序的任何变体的通用细节,并非特定于Microsoft的nmake。你没有问过任何关于nmake的具体信息。