J'ai un makefile qui construit puis appelle un autre makefile. Puisque ce makefile appelle plus de makefiles qui font le travail, il ne change pas vraiment. Ainsi, il continue de penser que le projet est construit et à jour.
dnetdev11 ~ # make
make: `release' is up to date.
Comment forcer le makefile à reconstruire la cible?
clean = $(MAKE) -f ~/xxx/xxx_compile.workspace.mak clean
build = svn up ~/xxx \
$(clean) \
~/cbp2mak/cbp2mak -C ~/xxx ~/xxx/xxx_compile.workspace \
$(MAKE) -f ~/xxx/xxx_compile.workspace.mak $(1) \
release:
$(build )
debug:
$(build DEBUG=1)
clean:
$(clean)
install:
cp ~/xxx/source/xxx_utility/release/xxx_util /usr/local/bin
cp ~/xxx/source/xxx_utility/release/xxxcore.so /usr/local/lib
Remarque: les noms ont été supprimés pour protéger les innocents
Edit: Version finale fixe:
clean = $(MAKE) -f xxx_compile.workspace.mak clean;
build = svn up; \
$(clean) \
./cbp2mak/cbp2mak -C . xxx_compile.workspace; \
$(MAKE) -f xxx_compile.workspace.mak $(1); \
.PHONY: release debug clean install
release:
$(call build,)
debug:
$(call build,DEBUG=1)
clean:
$(clean)
install:
cp ./source/xxx_utillity/release/xxx_util /usr/bin
cp ./dlls/Release/xxxcore.so /usr/lib
.PHONY
n'était pas votre seul problème, et vous n'êtes pas vraiment censé modifier la solution dans la question, ou du moins plus maintenant.)