]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/Makefile.rules
Restore win32 dir from Branch-5.2 and update it
[bacula/bacula] / bacula / src / win32 / Makefile.rules
1 #
2 # Copyright (C) 2000-2018 Kern Sibbald
3 # License: BSD 2-Clause; see file LICENSE-FOSS
4 #
5 # Makefile for win32 bacula executables
6 # Using MinGW cross-compiler on GNU/Linux
7 #
8 #  Written by Robert Nelson, June 2006
9 #
10
11 define clean_obj
12         $(ECHO_CMD)rm -f $(1) $(patsubst %.o,%.d,$(filter-out %.res,$(1)))
13         $(ECHO_CMD)rm -f $(1) $(addsuffix .d.*,$(basename $(1)))
14 endef
15
16 define clean_exe
17         $(ECHO_CMD)rm -f $(1) $(addsuffix .dbg,$(basename $(1)))
18 endef
19
20 define checkdir
21         @if [ ! -e $(dir $(1)) ]; then mkdir -p $(dir $(1)); fi
22 endef
23
24 define makedep
25         @echo "Generating dependencies for $<"
26         $(call checkdir,$@)
27         $(ECHO_CMD)$(CXX) -MM $(CPPFLAGS) $< > $@.$$$$; \
28         sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
29         rm -f $@.$$$$
30 endef
31
32 define link_conapp
33         @echo "Linking $@"
34         $(call checkdir,$@)
35         $(ECHO_CMD)$(CXX) $(CFLAGS) $(LDFLAGS) -mconsole $^ $(1) -o $@
36 endef
37
38 define link_winapp
39         @echo "Linking $@"
40         $(call checkdir,$@)
41         $(ECHO_CMD)$(CXX) $(CFLAGS) $(LDFLAGS) -mwindows $^ $(1) -o $@
42 endef
43
44 define makedbg
45         @echo "Stripping debug info from $@"
46         $(call checkdir,$@)
47         $(ECHO_CMD)$(OBJCPY) --only-keep-debug $@ $(addsuffix .dbg,$(basename $@)) ; \
48         $(OBJCPY) --strip-debug $@ ; \
49         $(OBJCPY) --add-gnu-debuglink=$(addsuffix .dbg,$(basename $@)) $@
50 endef
51
52 $(OBJDIR)/%.o: %.c
53         @echo "Compiling $<"
54         $(call checkdir, $@)
55         $(ECHO_CMD)$(CXX) $(CFLAGS) -c $< -o $@
56
57 $(OBJDIR)/%.o: %.cpp
58         @echo "Compiling $<"
59         $(call checkdir, $@)
60         $(ECHO_CMD)$(CXX) $(CFLAGS) -c $< -o $@
61
62 $(OBJDIR)/%.res: %.rc
63         @echo "Compiling $<"
64         $(call checkdir, $@)
65         $(ECHO_CMD)$(WINDRES) $(WINDRESFLAGS) -O coff $< -o $@
66
67 $(OBJDIR)/%.d: %.c
68         $(call checkdir, $@)
69         $(makedep)
70
71 $(OBJDIR)/%.d: %.cpp
72         $(call checkdir, $@)
73         $(makedep)
74
75 ifneq ($(ALL_OBJS),)
76 ifneq ($(MAKECMDGOALS),clean)
77 include $(patsubst %.o,%.d,$(filter-out %.res,$(ALL_OBJS)))
78 endif
79 endif