On 2012-09-19 10:30, suzuki toshiya wrote: > [...snip...] > Ahh, I see. I will try. >> 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. I may be able to save you the trouble of testing further with cygwin bash / MSVC unless you truly want to see how it works. In that case, I can provide you with a test batch file that will automatically setup your environment for MSVC 2008 or 2010, download, and compile a number of libraries including ICONV, ICU, BOOST, ZLIB, PNG, POSTGRESQL, TIFF, LIBPROJ, GEOTIFF, LIBXML2, PIXMAN, CAIRO, SIGC++, SQLITE, EXPAT, JPEG, and JPEG-Turbo (all Mapnik dependencies). Probably can do a whole lot more that were pyspatialite dependencies as well, but there's a lot of crossover here. Note - with ICU, I don't use the custom ./runConfigureICU file, but the standard ./configure, which TMK is genuine autoconf. I could be wrong; it's happened once or twice. ;-) >> 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.
As for saving you the trouble of testing altogether, as I further read and better understood the INSTALL.GNU and CUSTOMIZE docs and did a little further testing, I saw why "make setup ..." was auto-detecting as unix every time. If I remove cygwin from my path statement first, it then defaults to the dos/windows setup, which is an improvement. Unfortunately, something else is now failing... process_begin: CreateProcess(NULL, type builds\newline, ...) failed. make (e=2): The system cannot find the file specified. make: *** [dos_setup] Error 2 So now I need to figure out why that is. It might have to do with the code to replace unix-style forward slashes with dos/windows-style backslashes. I'll look into this further then see how the compile goes once it's actually detecting a Win OS rather than unix. Additionally, I noted that freetype/builds/detect.mk is using a very klugy workaround for echoing newlines to the console. Instead of using this ... @type builds$(SEP)newline With an empty newline file, it's much easier just to use this... @echo: Same result, no fuss, no muss. Batch file magic. ;-) 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 >>>>>> Freetype-devel@nongnu.org >>>>>> https://lists.nongnu.org/mailman/listinfo/freetype-devel >>>>> >>> >> > >
_______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/freetype-devel