[Vxl-maintainers] RE: [Cmake] cmake/nmake/VC6.0/VXL
Wheeler, Fred (CRD)
wheeler at crd.ge.com
Tue Mar 19 19:44:04 EST 2002
Bill,
Bingo. That was it. I was setting OS in my .bashrc. I never expected "OS" to become a special
reserved variable, and had long since forgotten that I even set it. Thanks for your keen advice.
Regards,
Fred Wheeler
-----Original Message-----
From: Bill Hoffman [mailto:bill.hoffman at kitware.com]
Sent: Tuesday, March 19, 2002 3:50 PM
To: Wheeler, Fred (CRD); 'William A. Hoffman'; 'Amitha Perera'
Cc: 'cmake at public.kitware.com'; Vxl-maintainers (E-mail)
Subject: RE: [Vxl-maintainers] RE: [Cmake] cmake/nmake/VC6.0/VXL
That little bit of stuff was copied from a microsoft generated makefile, it is needed
so that the makefiles will work on windows 98/ME. (on 98 to test for a directory you
test for dir/nul to exist...)
Are you setting OS in a .bashrc or something?
All the versions of cygwin we have here do not set OS to anything other than Windows_NT.
Administrator at KALGAN ~/CMake-nmake
$ echo $OS
Windows_NT
It is the same for cygwin: 1.3.10(0.51/3/2) and 1.3.2 and 1.3.9.
I did a quick google search, and on windows OS should be Windows_NT even
when running cygwin. There are plenty of packages that depend on that being set.
-Bill
At 03:34 PM 3/19/2002 -0500, Wheeler, Fred (CRD) wrote:
>Bill, Amitha,
>
>Thanks for your suggestions. I found the problem.
>
>The cmake-produced nmake makefiles set NULL=nul. This causes nmake to think that the sub-dirs do
not
>exist, so nmake does a rebuild-cache. I was able to override this with a hack by setting the env
var
>OS to Windows_NT, which causes the makefiles to set NULL="". Under cygwin, OS="1.3.10(0.51/3/2)",
>whatever that means.
>
>"nmake NULL=" did not work, I guess because the variable setting is not propagated to sub-makes.
>
>Here is an example stanza that shows how NULL is used:
>
># Targets for making default_target in subdirectories.
>default_target_vcl: $(TARGETS)
> if not exist "c:\Local\SR\vxl_bld\vcl\$(NULL)" $(MAKE) $(MAKESILENT) rebuild_cache
> echo Building default_target in directory c:/Local/SR/vxl_bld/vcl
> cd c:\Local\SR\vxl_bld\vcl
> $(MAKE) -$(MAKEFLAGS) $(MAKESILENT) default_target
> cd c:\Local\SR\vxl_bld
>
>Here is how NULL is set near the top of the makefile
>
>!IF "$(OS)" == "Windows_NT"
>NULL=
>!ELSE
>NULL=nul
>!ENDIF
>
>
>Perhaps it is wishful thinking, but it would be nice to be able to use GNU make in cygwin and have
it
>use the VC6.0 compiler.
>
>Regards,
>Fred Wheeler
>
>-----Original Message-----
>From: William A. Hoffman [mailto:billlist at nycap.rr.com]
>Sent: Tuesday, March 19, 2002 3:01 PM
>To: Wheeler, Fred (CRD); 'Bill Hoffman'
>Cc: 'cmake at public.kitware.com'; Vxl-maintainers (E-mail)
>Subject: Re: [Vxl-maintainers] RE: [Cmake] cmake/nmake/VC6.0/VXL
>
>
>If it is not the cache changing then try doing a nmake /D > log
>Then look at the log file and try to figure out why it keeps running rebuild_cache.
>
>-Bill
>
>
>At 02:48 PM 3/19/2002 -0500, Wheeler, Fred (CRD) wrote:
>>VXL-list: Anyone else have problems with a top level cmake re-run for each directory traversed
>>during a build with cygwin/cmake/nmake/MSVC6.0? Does anyone else compile/use VXL in this
>>environment?
>>
>>
>>Bill,
>>
>>I tried your suggestion, but no luck. The cache file did not change. I tried wiping my build
>>directory and starting a clean build also. I can watch the cache file change a couple of times to
>>add pointers to libraries that will appear in the build dirs, like this,
>>
>> % diff CMakeCache_2.txt CMakeCache.txt
>> 178c178
>> < NATIVE_JPEG_LIBRARY:FILEPATH=NOTFOUND
>> ---
>> > NATIVE_JPEG_LIBRARY:FILEPATH=c:/Local/SR/vxl_bld/v3p/jpeg
>>
>>But, generally the top level runs of cmake do not change the cache file. The time stamp of the
>cache
>>file does not even change.
>>
>>The build commands I'm using are straightforward,
>>
>> (in cygwin, SR is set to a directory)
>> cd $SR
>> rm -rf $SR/vxl_bld
>> mkdir $SR/vxl_bld
>> cd $SR/vxl_bld
>> cmake -G"NMake Makefiles" "C:\local\sr\vxl_src"
>> cp CMakeCache.txt CMakeCache_orig.txt
>> nmake
>>
>>Any other ideas? Could something be changing the cache back-and-forth?
>>
>>The following output shows the end of one top-level cmake run, the building of a test exec, and the
>>next top-level cmake run.
>>
>>
>> cmake: creating : c:/Local/SR/vxl_bld/conversions/math/Makefile
>> cmake: creating : c:/Local/SR/vxl_bld/conversions/math/tests/Makefile
>> cmake: creating : c:/Local/SR/vxl_bld/conversions/misc/Makefile
>> cmake: creating : c:/Local/SR/vxl_bld/conversions/misc/tests/Makefile
>> Building default_target in directory c:/Local/SR/vxl_bld/vxl/vul/io
>> c:\Local\SR\CMake\Source\cmake.exe -SC:\local\sr\vxl_src\vxl\vul\io -Oc:\Local\S
>> R\vxl_bld\vxl\vul\io -HC:\local\sr\vxl_src -Bc:\Local\SR\vxl_bld
>> 'cmake.check_depends' is up-to-date
>> 'cmake.depends' is up-to-date
>> cl /W3 /Zm1000 /GX /GR /MDd /Zi /Od /GZ -IC:\local\sr\vxl_src\vxl\vul\io -Ic:\Lo
>> cal\SR\vxl_bld\vcl -Ic:\Local\SR\vxl_bld\vxl -IC:\local\sr\vxl_src\vcl -IC:\loca
>> l\sr\vxl_src\vcl\config.win32-VC60 -IC:\local\sr\vxl_src\vxl -DVXL_WARN_DEPRECAT
>> ED -DVXL_WARN_DEPRECATED_ONCE -DVCL_WHERE_ROOT_DIR_H_EXISTS -c C:\local\sr\vxl_s
>> rc\vxl\vul\io\vul_io_user_info.cxx /Fovul_io_user_info.obj
>> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
>> Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
>>
>> vul_io_user_info.cxx
>> lib /nologo @c:\DOCUME~1\wheeler\LOCALS~1\Temp\nma01124.
>> c:\Local\SR\CMake\Source\cmake.exe -HC:\local\sr\vxl_src -Bc:\Local\SR\vxl_bld
>> cmake: creating : c:/Local/SR/vxl_bld/Makefile
>> cmake: creating : c:/Local/SR/vxl_bld/vcl/Makefile
>> cmake: creating : c:/Local/SR/vxl_bld/vcl/tests/Makefile
>> cmake: creating : c:/Local/SR/vxl_bld/v3p/Makefile
>>
>>Thanks,
>>Fred Wheeler
>>
>>
>>
>>-----Original Message-----
>>From: Bill Hoffman [mailto:bill.hoffman at kitware.com]
>>Sent: Tuesday, March 19, 2002 1:52 PM
>>To: Wheeler, Fred (CRD); 'cmake at public.kitware.com'
>>Subject: Re: [Cmake] cmake/nmake/VC6.0/VXL
>>
>>
>>Usually, the cause of that is an unstable cache file.
>>If the cache file changes, cmake re-runs from the top automatically.
>>It is sometimes possible to write cmakelist files that change the
>>cache each time. To debug this I would go to the top level directory,
>>and do a make rebuild_cache, then make a copy of CMakeCache.txt, then run
>>nmake. If you see it running again from the top, then diff the CMakeCache.txt
>>file with the backup and try to figure out what changed.
>>Most of the time it is not possible to change the cache from a cmakelist file, so
>>this is not a problem.
>>
>>
>>-Bill
>>
>>
>>At 01:23 PM 3/19/2002 -0500, Wheeler, Fred (CRD) wrote:
>>>When I use cmake to compile VXL using nmake and VC6.0 in cygwin, cmake is rerun at the top level
>and
>>>recreates every Makefile every time the build enters a new directory. Is this expected behavior?
>>>
>>>Thanks,
>>>Fred Wheeler
>>>_______________________________________________
>>>Cmake mailing list
>>>Cmake at public.kitware.com
>>>http://public.kitware.com/mailman/listinfo/cmake
>>
>>_______________________________________________
>>Vxl-maintainers mailing list
>>Vxl-maintainers at lists.sourceforge.net
>>https://lists.sourceforge.net/lists/listinfo/vxl-maintainers
More information about the CMake
mailing list