X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-0.3 required=5.0 tests=AWL,BAYES_00,DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED,SPF_HELO_PASS,T_RP_MATCHES_RCVD,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Message-ID: <28456659.post@talk.nabble.com> Date: Tue, 4 May 2010 21:49:08 -0700 (PDT) From: MichaelKim To: cygwin AT cygwin DOT com Subject: Re: Cygwin make target is never determined up to date In-Reply-To: <4BE0F722.1040009@bopp.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <28454344 DOT post AT talk DOT nabble DOT com> <4BE0F722 DOT 1040009 AT bopp DOT net> X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Yea I tried to add sleep, no good. Consequent calls doesn't go $(jar_target_dir) target, they only run $(chrome_jar_file) target. It's NTFS, Windows 7. The other system which performs as expected Windows XP, again NTFS. Here is some additional information: Reading makefiles... Updating goal targets.... File `all' does not exist. Prerequisite `../bin/build/chrome' is newer than target `../bin/build/chrome/alt.jar'. Must remake target `../bin/build/chrome/alt.jar'. Creating chrome JAR file. updating: content/about.js (deflated 66%) updating: content/sprintf.js (deflated 52%) ... and stats $ stat ../bin/build/chrome/alt.jar ../bin/build/chrome File: `../bin/build/chrome/alt.jar' Size: 29220 Blocks: 32 IO Block: 65536 regular file Device: 22c6affh/36465407d Inode: 59672695062724268 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ xxx) Gid: ( 513/ None) Access: 2010-05-05 13:03:01.066457300 +0900 Modify: 2010-05-05 13:03:01.088960100 +0900 Change: 2010-05-05 13:03:01.091460400 +0900 File: `../bin/build/chrome' Size: 0 Blocks: 0 IO Block: 65536 directory Device: 22c6affh/36465407d Inode: 3940649674014457 Links: 1 Access: (0755/drwxr-xr-x) Uid: ( 1000/ xxx) Gid: ( 513/ None) Access: 2010-05-05 13:03:01.090960400 +0900 Modify: 2010-05-05 13:03:01.090960400 +0900 Change: 2010-05-05 13:03:01.090960400 +0900 as you can see `chrome` dir is really newer than `alt.jar` Jeremy Bopp-3 wrote: > > MichaelKim wrote: >> Cygwin make always processing `$(chrome_jar_file)` target, after first >> successful build. So I never get up to date message and always see >> commands >> for `$(chrome_jar_file)` are executing. >> >> However it happens only on Windows 7. On Windows XP once it built and >> intact, no more builds. >> I narrowed down the issue to one prerequisite - `$(jar_target_dir)`. >> >> Here is part of the code >> >> # The location where the JAR file will be created. >> jar_target_dir := $(build_dir)/chrome >> >> # The main chrome JAR file. >> chrome_jar_file := $(jar_target_dir)/$(extension_name).jar >> >> # The root of the JAR sources. >> jar_source_root := chrome >> >> # The sources for the JAR file. >> jar_sources := bla #... some files, doesn't matter >> >> jar_sources_no_dir := $(subst $(jar_source_root)/,,$(jar_sources)) >> >> $(chrome_jar_file): $(jar_sources) $(jar_target_dir) >> @echo "Creating chrome JAR file." >> @cd $(jar_source_root); $(ZIP) ../$(chrome_jar_file) >> $(jar_sources_no_dir) >> @echo "Creating chrome JAR file. Done!" >> >> $(jar_target_dir): $(build_dir) >> echo "Creating jar target dir..." >> if [ ! -x $(jar_target_dir) ]; \ >> then \ >> mkdir $(jar_target_dir); \ >> fi >> >> $(build_dir): >> @if [ ! -x $(build_dir) ]; \ >> then \ >> mkdir $(build_dir); \ >> fi >> >> >> so if I just remove `$(jar_target_dir)` from `$(chrome_jar_file)` rule, >> it >> works fine. >> Also tried to use `-e` in `if`. >> So again, question is why in windows 7 target is never up to date and it >> has >> always to process it. > > Have you tried adding a short sleep after creating $(jar_target_dir)? > Maybe try something in the range of 2 to 5 seconds. BTW, are you > building on a FAT filesystem or NTFS? > > My guess here is that the timestamps on $(jar_target_dir) and > $(chrome_jar_file) are the same, at least as far as make is concerned. > The FAT filesystem, with its 2 second resolution, is somewhat prone to > this kind of problem. > > -Jeremy > > -- > Problem reports: http://cygwin.com/problems.html > FAQ: http://cygwin.com/faq/ > Documentation: http://cygwin.com/docs.html > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > > > -- View this message in context: http://old.nabble.com/Cygwin-make-target-is-never-determined-up-to-date-tp28454344p28456659.html Sent from the Cygwin list mailing list archive at Nabble.com. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple