blob: 67507a1b80d05a5c3e01e15fe721b28a9864314c [file] [log] [blame]
Alexandre Julliarde2991ea1995-07-29 13:09:43 +00001# This Makefile understands the following targets:
2#
Alexandre Julliard13b0c092002-01-10 03:30:21 +00003# 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
Detlef Riekenberg79d72ce2005-08-03 19:15:03 +00008# crosstest: build tests as native windows applications (requires MinGW)
Alexandre Julliardf673b712002-06-14 23:48:27 +00009# install-lib: install libraries needed to run applications
10# install-dev: install development environment
Alexandre Julliard13b0c092002-01-10 03:30:21 +000011# install: install everything
12# uninstall: uninstall everything
13# depend: create the dependencies
Detlef Riekenberg5e5a8df2006-06-21 21:43:00 +020014# ctags: create a tags file for vim and others.
Alexandre Julliard13b0c092002-01-10 03:30:21 +000015# etags: create a TAGS file for Emacs.
16# manpages: compile manpages for Wine API
Jon Griffiths35345f22003-03-15 19:48:34 +000017# htmlpages: compile html pages for Wine API
Hans Leidekker14a92162003-04-14 21:35:14 +000018# sgmlpages: compile sgml source for the Wine API Guide
Stefan Stranzc89c2dd2009-06-05 20:57:24 -060019# xmlpages: compile xml source for the Wine API Guide
Alexandre Julliardd7d4fdf1995-12-26 15:05:24 +000020
Alexandre Julliard641ee761997-08-04 16:34:36 +000021TOPSRCDIR = @top_srcdir@
22TOPOBJDIR = .
23SRCDIR = @srcdir@
24VPATH = @srcdir@
Alexandre Julliard641ee761997-08-04 16:34:36 +000025
Alexandre Julliardbb262422010-02-08 20:43:03 +010026# Sub-directories that don't have a makefile
Alexandre Julliard718ea422010-03-26 09:29:10 +010027EXTRASUBDIRS = dlls libs programs
Alexandre Julliardbb262422010-02-08 20:43:03 +010028
Alexandre Julliard2fb30212010-03-26 09:24:33 +010029# Destination directories for make install
30INSTALLDIRS = $(DESTDIR)$(bindir)
31
Alexandre Julliard7d020c92010-02-03 13:12:12 +010032all: wine
Pavel Roskin74197cb1999-07-31 19:25:22 +000033 @echo "Wine build complete."
Alexandre Julliard808cb041995-08-17 17:11:36 +000034
Patrik Stridvall385dc181999-09-29 10:24:19 +000035WINAPI_CHECK_EXTRA_FLAGS = --global
36
Alexandre Julliard641ee761997-08-04 16:34:36 +000037@MAKE_RULES@
38
Alexandre Julliard93f03392010-02-10 20:27:52 +010039# Rules for re-running configure
40
Alexandre Julliard69b032b2008-03-20 13:01:31 +010041$(SRCDIR)/configure: @MAINTAINER_MODE@ configure.ac aclocal.m4
42 cd $(SRCDIR) && autoconf --warnings=all
43
44$(SRCDIR)/include/config.h.in: @MAINTAINER_MODE@ include/stamp-h.in
45$(SRCDIR)/include/stamp-h.in: configure.ac aclocal.m4
46 cd $(SRCDIR) && autoheader --warnings=all
47 @echo timestamp > $@
48
Alexandre Julliard5ea4e5b2006-09-14 09:41:21 +020049config.status: configure
Alexandre Julliard397e5692006-09-14 09:41:33 +020050 @./config.status --recheck
Marcus Meissnerca004e51999-01-03 12:26:22 +000051
Alexandre Julliardc4704c22006-09-22 09:33:00 +020052include/config.h: include/stamp-h
53include/stamp-h: include/config.h.in config.status
54 @./config.status include/config.h include/stamp-h
55
Alexandre Julliard93f03392010-02-10 20:27:52 +010056# Rules for cleaning
57
Alexandre Julliard3cc14dc2010-03-25 22:12:12 +010058.PHONY: __clean__
59clean:: __clean__
60 $(RM) tools/makedep$(EXEEXT)
Alexandre Julliard93f03392010-02-10 20:27:52 +010061
62distclean:: clean
Alexandre Julliard39b4ba22010-03-25 22:13:03 +010063 $(RM) config.* configure.lineno TAGS tags include/config.h include/stamp-h Makefile Make.tmp
Alexandre Julliard93f03392010-02-10 20:27:52 +010064 $(RM) -r autom4te.cache
65
Alexandre Julliard2fa4f762000-10-31 00:20:51 +000066# Dependencies between directories
67
Alexandre Julliard4d3b0202010-02-08 20:47:07 +010068# dependencies needed to build any dll or program
Alexandre Julliard6dbe7a02010-03-25 11:51:24 +010069__tooldeps__: libs/port libs/wine libs/wpp
Alexandre Julliarde55ff7f2010-03-25 11:02:52 +010070__builddeps__ __buildcrossdeps__: __tooldeps__ include
Alexandre Julliardeab7efd2010-03-25 21:42:54 +010071.PHONY: test crosstest __tooldeps__ __builddeps__ __buildcrossdeps__
Alexandre Julliardbb262422010-02-08 20:43:03 +010072
Alexandre Julliard4d3b0202010-02-08 20:47:07 +010073loader server: libs/port libs/wine tools
74fonts: tools
75include: tools/widl
Alexandre Julliard6dbe7a02010-03-25 11:51:24 +010076libs/wine: libs/port
Alexandre Julliard4d3b0202010-02-08 20:47:07 +010077tools/wmc tools/wrc: tools
78tools tools/wmc tools/wrc: libs/wine
79tools/widl tools/wmc tools/wrc: libs/wpp
Alexandre Julliard2fa4f762000-10-31 00:20:51 +000080
Alexandre Julliard54966362010-02-08 20:47:41 +010081$(MAKEDEP): include/config.h tools/Makefile
Alexandre Julliardb860c4a2009-09-01 22:36:13 +020082 @cd $(TOOLSDIR)/tools && $(MAKE) makedep$(TOOLSEXT)
Alexandre Julliard47461202004-09-21 00:35:02 +000083
Alexandre Julliardf673b712002-06-14 23:48:27 +000084# Misc rules
85
Alexandre Julliard641ee761997-08-04 16:34:36 +000086TAGS etags:
Alexandre Julliard7b289822007-03-27 21:45:54 +020087 $(RM) TAGS
Alexandre Julliarde43004a2008-07-07 12:17:00 +020088 (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs etags -a
Alexandre Julliard641ee761997-08-04 16:34:36 +000089
Christoph Frickdb9692d2003-01-05 01:05:13 +000090tags ctags:
Alexandre Julliard7b289822007-03-27 21:45:54 +020091 $(RM) tags
Alexandre Julliarde43004a2008-07-07 12:17:00 +020092 (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs ctags -a