blob: c06fab886a54c6e90aba65ead7cbad3d0a82de85 [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 Julliardbb262422010-02-08 20:43:03 +010021# Sub-directories that don't have a makefile
Alexandre Julliard80d12c32011-01-01 17:49:38 +010022EXTRASUBDIRS = \
23 dlls \
24 libs \
Alexandre Julliarddcf55482011-01-04 11:20:30 +010025 po \
Alexandre Julliard80d12c32011-01-01 17:49:38 +010026 programs
Alexandre Julliardbb262422010-02-08 20:43:03 +010027
Alexandre Julliard2fb30212010-03-26 09:24:33 +010028# Destination directories for make install
29INSTALLDIRS = $(DESTDIR)$(bindir)
30
Alexandre Julliard7d020c92010-02-03 13:12:12 +010031all: wine
Pavel Roskin74197cb1999-07-31 19:25:22 +000032 @echo "Wine build complete."
Alexandre Julliard808cb041995-08-17 17:11:36 +000033
Patrik Stridvall385dc181999-09-29 10:24:19 +000034WINAPI_CHECK_EXTRA_FLAGS = --global
35
Alexandre Julliard641ee761997-08-04 16:34:36 +000036@MAKE_RULES@
37
Alexandre Julliard93f03392010-02-10 20:27:52 +010038# Rules for re-running configure
39
Alexandre Julliard5ea4e5b2006-09-14 09:41:21 +020040config.status: configure
Alexandre Julliard397e5692006-09-14 09:41:33 +020041 @./config.status --recheck
Marcus Meissnerca004e51999-01-03 12:26:22 +000042
Alexandre Julliardc4704c22006-09-22 09:33:00 +020043include/config.h: include/stamp-h
44include/stamp-h: include/config.h.in config.status
45 @./config.status include/config.h include/stamp-h
46
Alexandre Julliard93f03392010-02-10 20:27:52 +010047# Rules for cleaning
48
Alexandre Julliard3cc14dc2010-03-25 22:12:12 +010049.PHONY: __clean__
50clean:: __clean__
Alexandre Julliard93f03392010-02-10 20:27:52 +010051distclean:: clean
Alexandre Julliard39b4ba22010-03-25 22:13:03 +010052 $(RM) config.* configure.lineno TAGS tags include/config.h include/stamp-h Makefile Make.tmp
Alexandre Julliard93f03392010-02-10 20:27:52 +010053 $(RM) -r autom4te.cache
54
Alexandre Julliardbb86a352011-07-09 17:46:54 +020055# Rules for uninstalling
56
57.PHONY: __uninstall__
58uninstall:: __uninstall__
59 -rmdir $(DESTDIR)$(datadir)/wine $(DESTDIR)$(fakedlldir) $(DESTDIR)$(dlldir)
60
Alexandre Julliard2fa4f762000-10-31 00:20:51 +000061# Dependencies between directories
62
Alexandre Julliard4d3b0202010-02-08 20:47:07 +010063# dependencies needed to build any dll or program
Alexandre Julliard6dbe7a02010-03-25 11:51:24 +010064__tooldeps__: libs/port libs/wine libs/wpp
Alexandre Julliardfaa7eae2010-07-26 12:38:11 +020065__builddeps__: __tooldeps__ include
66.PHONY: test crosstest __tooldeps__ __builddeps__
Alexandre Julliardbb262422010-02-08 20:43:03 +010067
Alexandre Julliard4d3b0202010-02-08 20:47:07 +010068loader server: libs/port libs/wine tools
69fonts: tools
Alexandre Julliard9f93b5f2011-05-13 10:45:02 +020070include: tools tools/widl
Alexandre Julliard6dbe7a02010-03-25 11:51:24 +010071libs/wine: libs/port
Alexandre Julliard4d3b0202010-02-08 20:47:07 +010072tools/wmc tools/wrc: tools
73tools tools/wmc tools/wrc: libs/wine
74tools/widl tools/wmc tools/wrc: libs/wpp
Alexandre Julliard2fa4f762000-10-31 00:20:51 +000075
Alexandre Julliard40977bf2010-11-11 12:24:46 +010076dlls/shell32/Makefile dlls/shell32/__depend__: dlls/shell32/AUTHORS
77
Alexandre Julliard84fd1f52011-05-10 11:59:43 +020078$(MAKEDEP): include/config.h
Alexandre Julliardb860c4a2009-09-01 22:36:13 +020079 @cd $(TOOLSDIR)/tools && $(MAKE) makedep$(TOOLSEXT)
Alexandre Julliard47461202004-09-21 00:35:02 +000080
Alexandre Julliardf673b712002-06-14 23:48:27 +000081# Misc rules
82
Alexandre Julliard641ee761997-08-04 16:34:36 +000083TAGS etags:
Alexandre Julliard7b289822007-03-27 21:45:54 +020084 $(RM) TAGS
Alexandre Julliardbd9852c2010-09-19 12:40:12 +020085 (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(top_srcdir) -name '*.[ch]' -print) | xargs etags -a
Alexandre Julliard641ee761997-08-04 16:34:36 +000086
Christoph Frickdb9692d2003-01-05 01:05:13 +000087tags ctags:
Alexandre Julliard7b289822007-03-27 21:45:54 +020088 $(RM) tags
Alexandre Julliardbd9852c2010-09-19 12:40:12 +020089 (test -d .git && git ls-files '*.[chly]' '*.idl' || find -L $(top_srcdir) -name '*.[ch]' -print) | xargs ctags -a