makefiles: Build the libs subdirectories directly from the top-level makefile.
[wine.git] / Makefile.in
blob7282cd1583fe00e32476f95945a27bfb912d5f77
1 # This Makefile understands the following targets:
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
21 # Directories
23 TOPSRCDIR = @top_srcdir@
24 TOPOBJDIR = .
25 SRCDIR = @srcdir@
26 VPATH = @srcdir@
27 LIBEXT = @LIBEXT@
28 MODULE = none
30 # Sub-directories to run make depend/clean into
31 SUBDIRS = \
32 dlls \
33 documentation \
34 fonts \
35 include \
36 libs/port \
37 libs/wine \
38 libs/wpp \
39 loader \
40 programs \
41 server \
42 tools
44 # Sub-directories to run make install/uninstall into
45 INSTALLSUBDIRS = libs/wine @ALL_TOP_DIRS@
47 # Sub-directories to run make test into
48 TESTSUBDIRS = dlls
50 # Sub-directories that don't have a makefile
51 EXTRASUBDIRS = libs
53 all: wine
54 @echo "Wine build complete."
56 WINAPI_CHECK_EXTRA_FLAGS = --global
58 @MAKE_RULES@
60 $(SRCDIR)/configure: @MAINTAINER_MODE@ configure.ac aclocal.m4
61 cd $(SRCDIR) && autoconf --warnings=all
63 $(SRCDIR)/include/config.h.in: @MAINTAINER_MODE@ include/stamp-h.in
64 $(SRCDIR)/include/stamp-h.in: configure.ac aclocal.m4
65 cd $(SRCDIR) && autoheader --warnings=all
66 @echo timestamp > $@
68 config.status: configure
69 @./config.status --recheck
71 include/config.h: include/stamp-h
72 include/stamp-h: include/config.h.in config.status
73 @./config.status include/config.h include/stamp-h
75 # Installation rules
77 uninstall::
78 -rmdir $(DESTDIR)$(datadir)/wine
80 # Dependencies between directories
82 all: $(INSTALLSUBDIRS)
84 dlls programs: libs/port libs/wine libs/wpp tools include
85 loader server: libs/port libs/wine tools
86 fonts include: tools
87 programs: dlls
88 tools: libs/port libs/wine libs/wpp
89 libs/wine: libs/port
91 dlls/__install__ dlls/__install-lib__ dlls/__install-dev__: libs/port libs/wine libs/wpp tools include
92 programs/__install__ programs/__install-lib__: libs/port libs/wine libs/wpp tools include
93 fonts/__install__ fonts/__install-lib__: tools
94 include/__install__ include/__install-dev__: include
95 libs/wine/__install__ libs/wine/__install-lib__ libs/wine/__install-dev__: libs/wine
96 loader/__install__ loader/__install-lib__: libs/port libs/wine tools
97 server/__install__ server/__install-lib__: libs/port libs/wine tools
98 programs/__install__: dlls/__install__
99 programs/__install-lib__: dlls/__install-lib__
100 tools/__install__ tools/__install-lib__ tools/__install-dev__: tools
102 RECURSE_TARGETS = \
103 $(SUBDIRS) \
104 $(SUBDIRS:%=%/__clean__) \
105 $(SUBDIRS:%=%/__depend__) \
106 $(SUBDIRS:%=%/__install-dev__) \
107 $(SUBDIRS:%=%/__install-lib__) \
108 $(SUBDIRS:%=%/__install__) \
109 $(SUBDIRS:%=%/__uninstall__) \
110 $(TESTSUBDIRS:%=%/__crosstest__) \
111 $(TESTSUBDIRS:%=%/__test__) \
112 $(TESTSUBDIRS:%=%/__testclean__)
114 depend $(RECURSE_TARGETS): $(MAKEDEP)
116 $(MAKEDEP): include/config.h
117 @cd $(TOOLSDIR)/tools && $(MAKE) makedep$(TOOLSEXT)
119 # Test rules
121 $(TESTSUBDIRS:%=%/__test__): wine
122 $(TESTSUBDIRS:%=%/__crosstest__): tools include
124 # Misc rules
126 TAGS etags:
127 $(RM) TAGS
128 (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs etags -a
130 tags ctags:
131 $(RM) tags
132 (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs ctags -a
134 manpages htmlpages sgmlpages xmlpages: dummy
135 @cd documentation && $(MAKE) $@
137 distclean:: clean
138 $(RM) config.* configure.lineno TAGS tags include/config.h include/stamp-h
139 $(RM) -r autom4te.cache
141 .PHONY: manpages htmlpages sgmlpages xmlpages distclean
143 # Makefile rules
145 ALL_MAKEFILES = @ALL_MAKEFILES@
146 ALL_CONFIGS = Makefile $(ALL_MAKEFILES) @ALL_MAKERULES@ @ALL_SYMLINKS@
148 $(ALL_CONFIGS):
149 @./config.status $@
150 .INIT: Makefile
151 .BEGIN: Makefile
152 .MAKEFILEDEPS:
154 $(RECURSE_TARGETS) $(MAKEDEP): $(ALL_MAKEFILES)
156 distclean::
157 $(RM) $(ALL_CONFIGS)
159 @ALL_MAKEFILE_DEPENDS@