[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails
From: |
suzuki toshiya |
Subject: |
Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails |
Date: |
Thu, 20 Sep 2012 00:30:42 +0900 |
User-agent: |
Mozilla-Thunderbird 2.0.0.12 (X11/20080406) |
RMWChaos wrote:
> On 2012-09-18 23:26, address@hidden wrote:
>> $ /cygdrive/e/MSVC2005/VC/bin/cl.exe /?
>> /cygdrive/e/MSVC2005/VC/bin/cl.exe: error while loading shared
>> libraries: MSVCR80.dll: cannot open shared object file: No such file
>> or directory
>
> I don't have this problem, but I'm probably not initializing things the
> same way that you do. In my batch file, I'm using SETLOCAL/ENDLOCAL to
> contain any vars, including PATH, so that I can modify the PATH
> statement during batch execution without modifying it for the entire
> life of the CMD shell. Then I call the appropriate command for MSVC
> (vcvarsall.bat for MSVC2008/SDK7.0 and setenv.bat for MSVC2010/SDK7.1),
> which modifies the PATH statement as appropriate. Then, I call bash and
> can run cl.exe within it ...
>
> $ cl.exe /?
> Microsoft (R) C/C++ Optimizing Compiler Version 15.00.30729.01 for x64
> Copyright (C) Microsoft Corporation. All rights reserved.
>
> C/C++ COMPILER OPTIONS
Ahh, I see. I will try.
> This allows autoconf to confirm the compiler works and set the
> appropriate flags, etc. within bash. Once that's done, however, bash
> exits and make is called from the Windows CMD shell prompt directly, not
> within bash.
>> * Autoconf's "configure" is often designed for the compilers on Unix
>> systems. For example, AC_CHECK_LIB macro (used to check the existence
>> of a library with given name) assumes that "-lxxx" option will make
>> the compiler search libxxx. Apparently, it would not work with MSVC
>> ("/Fl" should be used instead of "-l"). I could not find the
>> abstraction system in Autoconf to translate such options, I'm afraid
>> that Autoconf's configure is not safe solution for the people working
>> with MSVC.
>
> Using autoconf for Cygwin/MSVC is pretty common in my (albeit limited)
> experience. You can refer to various libs to see this for yourself. An
> example is lib ICU, which has a "CYGWIN/MSVC" option in its configure
> file.
I don't think ICU is good example, but anyway I will try some libraries
using genuine autoconf only.
> c:\freetype> vcvarsall amd64
> c:\freetype> bash ./configure --prefix=[path] --enable-static
> "CFLAGS=/Gy /MD /EHsc /nologo" "CXXFLAGS=/Gy /MD /EHsc /nologo"
> c:\freetype> make
> c:\freetype> make install
>
> To reiterate, I'm *NOT* running make in bash, but at the Windows CMD
> shell prompt, which is not the same as what you were indicating with
> "configure && make && make install". That may be where the
> miscommunication is coming from here.
Oh! Thank you very much for clarification, yes, I had overlooked that
"make" was executed out of bash. I've never tried such.
> Regards,
>
> -RMWChaos
>
>>
>>> -RMWChaos
>>>
>>> On 2012-09-18 12:01, suzuki toshiya wrote:
>>>> Today I don't have my machine with MSVC in my hand...
>>>> I think "make setup visualc" is not designed for the combination
>>>> of Cygwin bash/make + MSVC. It would be suitable for MinGW make + MSVC.
>>>>
>>>> The binaries you want to build are those running on Windows
>>>> platform WITHOUT cygwin? Or, those running DEPENDING cygwin?
>>>> Cygwin is designed to pretend as if it were Unix platform,
>>>> so configure will be (mis)guided as if it finds the platform
>>>> as Unix.
>>>>
>>>>> bash ./configure %FLAGS%
>>>>> make
>>>>> make install
>>>>>
>>>>> For most packages, this is working well; however, I'm really
>>>>> struggling
>>>> Without giving concrete example, I could not comment about
>>>> whether this (configure && make && make install) is right
>>>> direction, because, I'm not sure which binary (with cygwin?
>>>> without cygwin?) you want. What kind of packages you could
>>>> get expected result?
>>>>
>>>> Regards,
>>>> mpsuzuki
>>>>
>>>>
>>>> RMWChaos wrote:
>>>>> *ENVIRONMENT:*
>>>>> MS Windows 7 x64
>>>>> MSVC 2008 / SDK 7.0 -or- 2010 / SDK 7.1
>>>>> Cygwin bash
>>>>> GNU make 3.8.1
>>>>>
>>>>>
>>>>> *PREAMBLE:*
>>>>> Ultimately, this might turn out to be one build 'bug' and one build
>>>>> feature 'enhancement / change request', and perhaps I should submit
>>>>> this
>>>>> as two separate issues; however, they both relate to the same
>>>>> problem: I
>>>>> can't get Freetype2 to compile in Windows 7 x64 using Cygwin / GNU
>>>>> Make
>>>>> / MSVC 2008 or 2010. I'll wait to see what some initial responses are
>>>>> before deciding how to proceed.
>>>>>
>>>>> I'm attempting to develop an automated build process for a Windows
>>>>> application that requires the Freetype2 lib. The automated build
>>>>> allows
>>>>> for the selection of x86 / x64, MSVC 2008 / 2010, static / shared
>>>>> libs,
>>>>> and other options. To accommodate these options and simplify the build
>>>>> process, I want to build all libs using the following steps, where all
>>>>> the chosen build options are stored in var FLAGS...
>>>>>
>>>>> bash ./configure %FLAGS%
>>>>> make
>>>>> make install
>>>>>
>>>>> For most packages, this is working well; however, I'm really
>>>>> struggling
>>>>> with Freetype2. As noted in the two problem descriptions below, these
>>>>> steps aren't working because the Freetype2 configure and makefiles
>>>>> appear to be using absolute paths rather than relative paths (if I can
>>>>> modify this one thing, I can get my preferred method above to work).
>>>>>
>>>>> Alternatively, running 'make setup visualc' is defaulting to unix
>>>>> rather
>>>>> than win32/visualc, and thus fails when it can't find a 'visualc'
>>>>> target
>>>>> in the unix makefile. Am I doing something wrong here by running "make
>>>>> setup visualc" from the Freetype source directory, or has this
>>>>> something
>>>>> to do with having a Win x64 OS or using Cygwin bash?
>>>>>
>>>>> I'm unable to use the MSVC/SDK command line "vcbuild" tool with the
>>>>> freetype.sln/vcproj files in this case due to the need to allow for
>>>>> the
>>>>> numerous possible build combinations. So the solution to either of the
>>>>> following problems below will likely resolve the issue for me.
>>>>> Preferably, I'd like to get a solution to problem #2 and change the
>>>>> Freetype2 configure and makefiles to use relative- rather than
>>>>> absolute
>>>>> paths during the build process. Perhaps someone can explain to me the
>>>>> choice to use absolute- over relative paths?
>>>>>
>>>>>
>>>>> *PROBLEM #1:*
>>>>> Running "make setup visualc", setup still detects as unix-based OS and
>>>>> CC compiler rather than Win32 and CL compiler - although, configure
>>>>> reports ' checking for cc...no' and 'checking for cl ... cl.exe' - and
>>>>> eventually fails with the message "make: *** No rule to make target
>>>>> `visualc'. Stop.". Is this because I've got a Win64 OS and am using
>>>>> Cygwin bash?
>>>>>
>>>>> The unix build process doesn't have a visualc build process - duh,
>>>>> it's
>>>>> unix, not Windows - and the detect process is seeing my system as unix
>>>>> rather than win32 even when I pass the visualc option to make
>>>>> setup. So
>>>>> I'm stumped here. How do I force the make setup process to detect as
>>>>> win32 rather than unix? I suspect I need to follow the CUSTOMIZE
>>>>> instructions, but I would think that the setup detect process would
>>>>> see
>>>>> my system as windows rather than unix.
>>>>>
>>>>>
>>>>> *PROBLEM #2:*
>>>>> The configure process for Freetype2 is using absolute paths rather
>>>>> than
>>>>> relative paths. This is a problem as ./configure is run in Cygwin
>>>>> bash,
>>>>> where paths are in the format "/cygdrive/c/..." but GNU Make is run
>>>>> in a
>>>>> Win CMD shell, where paths are in the format "C:\...". Ultimately,
>>>>> when
>>>>> GNU make is called, after ./configure completes, it fails immediately
>>>>> because it sees the absolute path
>>>>> '/cygdrive/c/.../freetype/src/base/ftsystem.c' as a switch (the
>>>>> initial
>>>>> forward slash) rather than as a path, which would fail anyway under
>>>>> Windows CMD shell. If instead there was a relative path
>>>>> 'src/base/ftsystem.c', things should work properly. Even running GNU
>>>>> make under Cygwin, it still fails seeing the path as a switch because
>>>>> it's not wrapped in quotes.
>>>>>
>>>>> Need an "easy" way to convert configure to utilize relative paths so
>>>>> that it assumes it's running in the source base directory
>>>>> 'freetype' and
>>>>> everything else is accessed via './src/base', etc. I've passed the
>>>>> CFG="--srcdir=." option to make setup as well as "--srcdir=." to
>>>>> ./configure, but that didn't appear to work. I've also manually
>>>>> changed
>>>>> 'abs_curr_dir' var in configure to '.' and './' but neither of those
>>>>> worked either.
>>>>>
>>>>> Thanks and regards,
>>>>>
>>>>> -RMWChaos
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Freetype-devel mailing list
>>>>> address@hidden
>>>>> https://lists.nongnu.org/mailman/listinfo/freetype-devel
>>>>
>>
>
- [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, RMWChaos, 2012/09/18
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, suzuki toshiya, 2012/09/18
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, RMWChaos, 2012/09/19
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, mpsuzuki, 2012/09/19
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, RMWChaos, 2012/09/19
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails,
suzuki toshiya <=
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, RMWChaos, 2012/09/19
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, RMWChaos, 2012/09/19
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, mpsuzuki, 2012/09/20
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, RMWChaos, 2012/09/20
- Re: [ft-devel] Freetype 2.4.10 MSVC++ / Cygwin Compile fails, mpsuzuki, 2012/09/20