MinGW를 사용해 openssl 0.9.8r을 빌드하려고 했는데,
Win32의 include 경로가 제대로 잡히지 않는지 make 단계에서 에러가 발생한다.

결국 기존의 방식대로 ActivePerl과 MS C Compiler를 사용해 빌드하기로 했다.

OpenSSL의 Config은 Perl 스크립트로 되어있고,
MS-WIN32라는 환경 프리셋을 제공하므로,
Perl만 사용할 수 있으면 Win32에서 빌드할 수 있다.
(Perl에는 지식이 없지만, 아마 이런 스크립트들은 모두 Perl로 되어있으리라 추정한다.)

1. MS Visual Studio가 설치되어 있어야 한다.

2. ActivePerl을 다운받고 설치한다.
   http://www.activestate.com/
   다른 Perl 도구가 있으면 사용해도 되겠다.

3. OpenSSL의 소스를 다운받고 적당한 곳에 압축을 푼다. (여기에선 C:\W32Build 아래에)

4. 커맨드 프롬프트 창을 연다.

5. MS Visual Studio 개발 환경의 환경변수가 모두 지정되어 있지 않다면,
   아래와 같은 배치명령어로 환경변수를 등록한다.
   VC6 : C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
   VC9 : C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat

6. OpenSSL의 소스가 있는 곳으로 가서 Configure를 실행한다.
   C:\W32Build\openssl-0.9.8k>perl Configure VC-WIN32 --openssldir=C:\OpenSSL
   Configure는 순식간에 끝난다.

7. 성능을 높이기 위해 MS assembler(MASM)을 사용하려면,
    아래 사이트에서 MASM32 SDK를 다운받고 설치한다.
    http://www.masm32.com/

8. 이제 Make 파일을 만든다.
   어셈블러 코드를 포함한 Make 파일을 만드려면
       C:\W32Build\openssl-0.9.8k>ms\do_ms.bat
   모두 C 코드로 빌드하는 Make 파일을 만드려면
       C:\W32Build\openssl-0.9.8k>ms\do_msam.bat
   을 실행한다.
   그러면 ms\nt.mak와 ms\ntdll.mak가 생성된다.

9. nt.mak는 OpenSSL 프로그램을 빌드하고, ntdll.mak는 OpenSSL의 DLL을 빌드한다.
   DLL을 빌드하려면,
      nmake -f ms\ntdll.mak
   을 실행하면 된다.
   빌드된 파일들은 out32dll 폴더와 설정시 입력했던 C:\OpenSSL 폴더 아래에 있다.

Good luck!

출처: http://www.lovelgw.com/Blog/61
Posted by 배트
,