ddraw: Add a test for IDirectDrawSurface::GetDC.
[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
20 # Directories
21
22 TOPSRCDIR = @top_srcdir@
23 TOPOBJDIR = .
24 SRCDIR    = @srcdir@
25 VPATH     = @srcdir@
26 LIBEXT    = @LIBEXT@
27 MODULE    = none
28 PROGRAMS  = wine
29
30 # Sub-directories to run make depend/clean into
31 SUBDIRS = \
32         dlls \
33         documentation \
34         fonts \
35         include \
36         libs \
37         loader \
38         programs \
39         server \
40         tools
41
42 # Sub-directories to run make install/uninstall into
43 INSTALLSUBDIRS = @ALL_TOP_DIRS@
44
45 # Sub-directories to run make test into
46 TESTSUBDIRS = dlls
47
48 all: Make.rules $(PROGRAMS)
49         @echo "Wine build complete."
50
51 WINAPI_CHECK_EXTRA_FLAGS = --global
52
53 INSTALLDIRS = $(DESTDIR)$(datadir)/aclocal
54
55 @MAKE_RULES@
56
57 $(SRCDIR)/configure: @MAINTAINER_MODE@ configure.ac aclocal.m4
58         cd $(SRCDIR) && autoconf --warnings=all
59
60 $(SRCDIR)/include/config.h.in: @MAINTAINER_MODE@ include/stamp-h.in
61 $(SRCDIR)/include/stamp-h.in: configure.ac aclocal.m4
62         cd $(SRCDIR) && autoheader --warnings=all
63         @echo timestamp > $@
64
65 config.status: configure
66         @./config.status --recheck
67
68 include/config.h: include/stamp-h
69 include/stamp-h: include/config.h.in config.status
70         @./config.status include/config.h include/stamp-h
71
72 wine: $(WINEWRAPPER)
73         $(RM) $@ && $(LN_S) $(WINEWRAPPER) $@
74
75 # Installation rules
76
77 install install-dev:: $(DESTDIR)$(datadir)/aclocal dummy
78         $(INSTALL_DATA) $(SRCDIR)/aclocal.m4 $(DESTDIR)$(datadir)/aclocal/wine.m4
79
80 uninstall::
81         $(RM) $(DESTDIR)$(datadir)/aclocal/wine.m4
82         -rmdir $(DESTDIR)$(datadir)/wine $(DESTDIR)$(datadir)/aclocal
83
84 # Dependencies between directories
85
86 all: $(INSTALLSUBDIRS)
87 dlls: include libs tools
88 fonts loader server: libs tools
89 programs: dlls include libs tools
90 include: libs tools
91 tools: libs
92
93 dlls/__install__ dlls/__install-lib__ dlls/__install-dev__: libs tools include
94 fonts/__install__ fonts/__install-lib__: libs tools
95 include/__install__ include/__install-dev__: include libs tools
96 libs/__install__ libs/__install-lib__ libs/__install-dev__: libs
97 loader/__install__ loader/__install-lib__: libs tools
98 server/__install__ server/__install-lib__: libs tools
99 programs/__install__: libs tools include dlls/__install__
100 programs/__install-lib__: libs tools include dlls/__install-lib__
101 tools/__install__ tools/__install-lib__ tools/__install-dev__: tools
102
103 RECURSE_TARGETS = \
104         $(SUBDIRS) \
105         $(SUBDIRS:%=%/__clean__) \
106         $(SUBDIRS:%=%/__depend__) \
107         $(SUBDIRS:%=%/__install-dev__) \
108         $(SUBDIRS:%=%/__install-lib__) \
109         $(SUBDIRS:%=%/__install__) \
110         $(SUBDIRS:%=%/__uninstall__) \
111         $(TESTSUBDIRS:%=%/__crosstest__) \
112         $(TESTSUBDIRS:%=%/__test__) \
113         $(TESTSUBDIRS:%=%/__testclean__)
114
115 depend $(RECURSE_TARGETS): $(MAKEDEP)
116
117 $(MAKEDEP): include/config.h
118         @cd $(TOOLSDIR)/tools && $(MAKE) makedep
119
120 # Test rules
121
122 $(TESTSUBDIRS:%=%/__test__): wine
123 $(TESTSUBDIRS:%=%/__crosstest__): tools include
124
125 # Misc rules
126
127 TAGS etags:
128         $(RM) TAGS
129         (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs etags -a
130
131 tags ctags:
132         $(RM) tags
133         (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs ctags -a
134
135 manpages htmlpages sgmlpages: dummy
136         @cd documentation && $(MAKE) $@
137
138 distclean:: clean
139         $(RM) config.* configure.lineno TAGS tags include/config.h include/stamp-h
140         $(RM) -r autom4te.cache
141
142 .PHONY: manpages htmlpages sgmlpages distclean
143
144 # Makefile rules
145
146 ALL_MAKERULES = @ALL_MAKERULES@
147 ALL_MAKEFILES = @ALL_MAKEFILES@
148
149 Makefile $(ALL_MAKERULES) $(ALL_MAKEFILES): config.status
150         @./config.status $@
151 .INIT: Makefile
152 .BEGIN: Makefile
153
154 $(RECURSE_TARGETS) $(MAKEDEP): $(ALL_MAKEFILES)
155
156 distclean::
157         $(RM) Makefile $(ALL_MAKERULES) $(ALL_MAKEFILES)
158
159 @ALL_MAKEFILE_DEPENDS@