toujours Cependant, il ne se produit que sur Windows 7. Sous Windows XP une fois construit et intact, pas plus builds. Je PRECISEE la question à une condition sine qua non - $(jar_target_dir)
.Cygwin rendre le traitement cible
Voici une partie du 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
donc si je viens de supprimer $(jar_target_dir)
de la règle $(chrome_jar_file)
, il fonctionne très bien.
UPD:
est ici la sortie de débogage de base de faire sur Windows 7
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%)
...
et statistiques
$ 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/ acid) 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/ acid) 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
que vous pouvez voir chrome
dir est vraiment plus récent que alt.jar
SOL: Comme Eri c mentionné, c'était une mauvaise idée d'avoir un pré-requis d'annuaire et d'en faire un fichier de production. Chaque fois que le mtime est mis à jour, il doit «reconstruire». Cette partie est claire. Cependant, pour certains cas, les horodatages de répertoire et fichiers créés à l'intérieur sont toujours égales. C'est déroutant ...
Luttant pour trouver la question dans le texte - Pouvez-vous clarifier le problème un peu? –
oui, le problème décrit dans le sujet. Une fois que la cible est construite, je devrais avoir un message "à jour" pour que les tentatives de compilation soient exécutées. Cependant, il lance toujours la commande pour '$ (chrome_jar_file)' – Pablo
Pouvez-vous confirmer: il refait '$ (chrome_jar_file)' mais pas '$ (jar_target_dir)' ni rien d'autre? et '$ (jar_target_dir)' existe? – Beta