# # Copyright (C) 2000-2018 Kern Sibbald # License: BSD 2-Clause; see file LICENSE-FOSS # # Makefile for win32 bacula executables # Using MinGW cross-compiler on GNU/Linux # # Written by Robert Nelson, June 2006 # define clean_obj $(ECHO_CMD)rm -f $(1) $(patsubst %.o,%.d,$(filter-out %.res,$(1))) $(ECHO_CMD)rm -f $(1) $(addsuffix .d.*,$(basename $(1))) endef define clean_exe $(ECHO_CMD)rm -f $(1) $(addsuffix .dbg,$(basename $(1))) endef define checkdir @if [ ! -e $(dir $(1)) ]; then mkdir -p $(dir $(1)); fi endef define makedep @echo "Generating dependencies for $<" $(call checkdir,$@) $(ECHO_CMD)$(CXX) -MM $(CPPFLAGS) $< > $@.$$$$; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$ endef define link_conapp @echo "Linking $@" $(call checkdir,$@) $(ECHO_CMD)$(CXX) $(CFLAGS) $(LDFLAGS) -mconsole $^ $(1) -o $@ endef define link_winapp @echo "Linking $@" $(call checkdir,$@) $(ECHO_CMD)$(CXX) $(CFLAGS) $(LDFLAGS) -mwindows $^ $(1) -o $@ endef define makedbg @echo "Stripping debug info from $@" $(call checkdir,$@) $(ECHO_CMD)$(OBJCPY) --only-keep-debug $@ $(addsuffix .dbg,$(basename $@)) ; \ $(OBJCPY) --strip-debug $@ ; \ $(OBJCPY) --add-gnu-debuglink=$(addsuffix .dbg,$(basename $@)) $@ endef $(OBJDIR)/%.o: %.c @echo "Compiling $<" $(call checkdir, $@) $(ECHO_CMD)$(CXX) $(CFLAGS) -c $< -o $@ $(OBJDIR)/%.o: %.cpp @echo "Compiling $<" $(call checkdir, $@) $(ECHO_CMD)$(CXX) $(CFLAGS) -c $< -o $@ $(OBJDIR)/%.res: %.rc @echo "Compiling $<" $(call checkdir, $@) $(ECHO_CMD)$(WINDRES) $(WINDRESFLAGS) -O coff $< -o $@ $(OBJDIR)/%.d: %.c $(call checkdir, $@) $(makedep) $(OBJDIR)/%.d: %.cpp $(call checkdir, $@) $(makedep) ifneq ($(ALL_OBJS),) ifneq ($(MAKECMDGOALS),clean) include $(patsubst %.o,%.d,$(filter-out %.res,$(ALL_OBJS))) endif endif