server: Only check if permission bits changed before calling fchmod().
[wine] / Makefile.in
1 # This Makefile understands the following targets:
2 #
3 # all (default):   build wine
4 # clean:           remove all intermediate files
5 # distclean:       also remove all files created by configure
6 # test:            run tests
7 # testclean:       clean test results to force running all tests again
8 # crosstest:       build tests as native windows applications (requires MinGW)
9 # install-lib:     install libraries needed to run applications
10 # install-dev:     install development environment
11 # install:         install everything
12 # uninstall:       uninstall everything
13 # depend:          create the dependencies
14 # ctags:           create a tags file for vim and others.
15 # etags:           create a TAGS file for Emacs.
16 # manpages:        compile manpages for Wine API
17 # htmlpages:       compile html pages for Wine API
18 # sgmlpages:       compile sgml source for the Wine API Guide
19 # xmlpages:        compile xml source for the Wine API Guide
20
21 # Directories
22
23 TOPSRCDIR = @top_srcdir@
24 TOPOBJDIR = .
25 SRCDIR    = @srcdir@
26 VPATH     = @srcdir@
27 LIBEXT    = @LIBEXT@
28 MODULE    = none
29 PROGRAMS  = wine
30
31 # Sub-directories to run make depend/clean into
32 SUBDIRS = \
33         dlls \
34         documentation \
35         fonts \
36         include \
37         libs \
38         loader \
39         programs \
40         server \
41         tools
42
43 # Sub-directories to run make install/uninstall into
44 INSTALLSUBDIRS = @ALL_TOP_DIRS@
45
46 # Sub-directories to run make test into
47 TESTSUBDIRS = dlls
48
49 all: Make.rules $(PROGRAMS)
50         @echo "Wine build complete."
51
52 WINAPI_CHECK_EXTRA_FLAGS = --global
53
54 INSTALLDIRS = $(DESTDIR)$(datadir)/aclocal
55
56 @MAKE_RULES@
57
58 $(SRCDIR)/configure: @MAINTAINER_MODE@ configure.ac aclocal.m4
59         cd $(SRCDIR) && autoconf --warnings=all
60
61 $(SRCDIR)/include/config.h.in: @MAINTAINER_MODE@ include/stamp-h.in
62 $(SRCDIR)/include/stamp-h.in: configure.ac aclocal.m4
63         cd $(SRCDIR) && autoheader --warnings=all
64         @echo timestamp > $@
65
66 config.status: configure
67         @./config.status --recheck
68
69 include/config.h: include/stamp-h
70 include/stamp-h: include/config.h.in config.status
71         @./config.status include/config.h include/stamp-h
72
73 wine: $(WINEWRAPPER)
74         $(RM) $@ && $(LN_S) $(WINEWRAPPER) $@
75
76 # Installation rules
77
78 install-aclocal: $(DESTDIR)$(datadir)/aclocal dummy
79
80 .PHONY: install-aclocal
81
82 @WOW64_DISABLE@ install install-dev:: install-aclocal
83
84 uninstall::
85         $(RM) $(DESTDIR)$(datadir)/aclocal/wine.m4
86         -rmdir $(DESTDIR)$(datadir)/wine $(DESTDIR)$(datadir)/aclocal
87
88 # Dependencies between directories
89
90 all: $(INSTALLSUBDIRS)
91 dlls: include libs tools
92 fonts loader server: libs tools
93 programs: dlls include libs tools
94 include: libs tools
95 tools: libs
96
97 dlls/__install__ dlls/__install-lib__ dlls/__install-dev__: libs tools include
98 fonts/__install__ fonts/__install-lib__: libs tools
99 include/__install__ include/__install-dev__: include libs tools
100 libs/__install__ libs/__install-lib__ libs/__install-dev__: libs
101 loader/__install__ loader/__install-lib__: libs tools
102 server/__install__ server/__install-lib__: libs tools
103 programs/__install__: libs tools include dlls/__install__
104 programs/__install-lib__: libs tools include dlls/__install-lib__
105 tools/__install__ tools/__install-lib__ tools/__install-dev__: tools
106
107 RECURSE_TARGETS = \
108         $(SUBDIRS) \
109         $(SUBDIRS:%=%/__clean__) \
110         $(SUBDIRS:%=%/__depend__) \
111         $(SUBDIRS:%=%/__install-dev__) \
112         $(SUBDIRS:%=%/__install-lib__) \
113         $(SUBDIRS:%=%/__install__) \
114         $(SUBDIRS:%=%/__uninstall__) \
115         $(TESTSUBDIRS:%=%/__crosstest__) \
116         $(TESTSUBDIRS:%=%/__test__) \
117         $(TESTSUBDIRS:%=%/__testclean__)
118
119 depend $(RECURSE_TARGETS): $(MAKEDEP)
120
121 $(MAKEDEP): include/config.h
122         @cd $(TOOLSDIR)/tools && $(MAKE) makedep$(TOOLSEXT)
123
124 # Test rules
125
126 $(TESTSUBDIRS:%=%/__test__): wine
127 $(TESTSUBDIRS:%=%/__crosstest__): tools include
128
129 # Misc rules
130
131 TAGS etags:
132         $(RM) TAGS
133         (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs etags -a
134
135 tags ctags:
136         $(RM) tags
137         (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs ctags -a
138
139 manpages htmlpages sgmlpages xmlpages: dummy
140         @cd documentation && $(MAKE) $@
141
142 distclean:: clean
143         $(RM) config.* configure.lineno TAGS tags include/config.h include/stamp-h
144         $(RM) -r autom4te.cache
145
146 .PHONY: manpages htmlpages sgmlpages xmlpages distclean
147
148 # Makefile rules
149
150 ALL_MAKERULES = @ALL_MAKERULES@
151 ALL_MAKEFILES = @ALL_MAKEFILES@
152
153 Makefile $(ALL_MAKERULES) $(ALL_MAKEFILES): config.status
154         @./config.status $@
155 .INIT: Makefile
156 .BEGIN: Makefile
157 .MAKEFILEDEPS:
158
159 $(RECURSE_TARGETS) $(MAKEDEP): $(ALL_MAKEFILES)
160
161 distclean::
162         $(RM) Makefile $(ALL_MAKERULES) $(ALL_MAKEFILES)
163
164 @ALL_MAKEFILE_DEPENDS@