fuocofatuo
03-03-2010, 13:32
Ho scritto il makefile in maniera che tutti i file generati durante la costruzione del progetto siano messi in una cartella apposita, chiamata Build. In particolare:
install: all
install $(TARGET) `${TULIP_CONFIG} --pluginpath`
all: $(TARGET)
clean :
rm -f $(BUILD_DIR)*
$(TARGET): $(QRCS_SRCS) $(OBJS)
$(CXX) $(OBJS) -o $@ $(LDFLAGS) $(LIBS)
$(BUILD_DIR)%.o: %.cpp
$(CXX) -c $(CXXFLAGS) -o $@ $<
$(BUILD_DIR)%.cpp: %.qrc
rcc -name $(PLUGIN) -o $@ $<
$(BUILD_DIR)%.d: %.cpp
$(CXX) -M $(CXXFLAGS) $< | sed 's!\($*\)\.o[ :]*!\1.o $@ : !g' > $@; [ -s $@ ] || rm $@
Quindi, dal file pippo.cpp ottengo il file Build/pippo.d, Build/pippo.o e via discorrendo.
L'unico problema è che la directory Build dev'essere già presente, altrimenti non si riesce a far nulla. Come posso fare a creare la cartella (qualora non esista) quando viene chiamato make?
install: all
install $(TARGET) `${TULIP_CONFIG} --pluginpath`
all: $(TARGET)
clean :
rm -f $(BUILD_DIR)*
$(TARGET): $(QRCS_SRCS) $(OBJS)
$(CXX) $(OBJS) -o $@ $(LDFLAGS) $(LIBS)
$(BUILD_DIR)%.o: %.cpp
$(CXX) -c $(CXXFLAGS) -o $@ $<
$(BUILD_DIR)%.cpp: %.qrc
rcc -name $(PLUGIN) -o $@ $<
$(BUILD_DIR)%.d: %.cpp
$(CXX) -M $(CXXFLAGS) $< | sed 's!\($*\)\.o[ :]*!\1.o $@ : !g' > $@; [ -s $@ ] || rm $@
Quindi, dal file pippo.cpp ottengo il file Build/pippo.d, Build/pippo.o e via discorrendo.
L'unico problema è che la directory Build dev'essere già presente, altrimenti non si riesce a far nulla. Come posso fare a creare la cartella (qualora non esista) quando viene chiamato make?