Makefile.in 5.71 KB
Newer Older
Alexandre Julliard's avatar
Alexandre Julliard committed
1 2
# This Makefile understands the following targets:
#
3 4 5 6 7
# all (default):   build wine
# clean:           remove all intermediate files
# distclean:       also remove all files created by configure
# test:            run tests
# testclean:       clean test results to force running all tests again
8
# crosstest:       build tests as native windows applications (requires MinGW)
9 10
# install-lib:     install libraries needed to run applications
# install-dev:     install development environment
11 12 13
# install:         install everything
# uninstall:       uninstall everything
# depend:          create the dependencies
14
# ctags:           create a tags file for vim and others.
15 16
# etags:           create a TAGS file for Emacs.
# manpages:        compile manpages for Wine API
17
# htmlpages:       compile html pages for Wine API
Hans Leidekker's avatar
Hans Leidekker committed
18
# sgmlpages:       compile sgml source for the Wine API Guide
19
# xmlpages:        compile xml source for the Wine API Guide
Alexandre Julliard's avatar
Alexandre Julliard committed
20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
# The following variable definitions are copied into all makefiles

prefix          = @prefix@
exec_prefix     = @exec_prefix@
bindir          = @bindir@
libdir          = @libdir@
datarootdir     = @datarootdir@
datadir         = @datadir@
mandir          = @mandir@
fontdir         = ${datadir}/wine/fonts
includedir      = @includedir@/wine
dlldir          = @dlldir@
fakedlldir      = ${dlldir}/fakedlls
top_srcdir      = @top_srcdir@
top_builddir    = @top_builddir@
srcdir          = @srcdir@
SHELL           = /bin/sh
RM              = rm -f
MV              = mv
CC              = @CC@
CXX             = @CXX@
CPPBIN          = @CPPBIN@
CROSSCC         = @CROSSCC@
CFLAGS          = @CFLAGS@
CPPFLAGS        = @CPPFLAGS@
46
CROSSCFLAGS     = @CROSSCFLAGS@
47 48 49 50
EXTRACFLAGS     = @EXTRACFLAGS@
MSVCRTFLAGS     = @BUILTINFLAG@
TARGETFLAGS     = @TARGETFLAGS@
UNWINDFLAGS     = @UNWINDFLAGS@
51
LDEXECFLAGS     = @LDEXECFLAGS@
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
LIBS            = @LIBS@
BISON           = @BISON@
FLEX            = @FLEX@
EXEEXT          = @EXEEXT@
TOOLSEXT        = @TOOLSEXT@
DLLTOOL         = @DLLTOOL@
AR              = @AR@
ARFLAGS         = @ARFLAGS@
RANLIB          = @RANLIB@
STRIP           = @STRIP@
LN_S            = @LN_S@
TOOLSDIR        = @TOOLSDIR@
LD              = @LD@
LDFLAGS         = @LDFLAGS@
DLLFLAGS        = @DLLFLAGS@
PRELINK         = @PRELINK@
FONTFORGE       = @FONTFORGE@
RSVG            = @RSVG@
CONVERT         = @CONVERT@
ICOTOOL         = @ICOTOOL@
MSGFMT          = @MSGFMT@
CROSSTARGET     = @CROSSTARGET@
74
SUBDIRS         = @SUBDIRS@
75 76 77 78
RUNTESTFLAGS    = -q -P wine
MAKEDEP         = $(TOOLSDIR)/tools/makedep$(TOOLSEXT)
WINEBUILD       = $(TOOLSDIR)/tools/winebuild/winebuild$(TOOLSEXT)
WRC             = $(TOOLSDIR)/tools/wrc/wrc$(TOOLSEXT)
79
PACKAGE_VERSION = @PACKAGE_VERSION@
80
SED_CMD         = LC_ALL=C sed -e 's,@bindir\@,$(bindir),g' -e 's,@dlldir\@,$(dlldir),g' -e 's,@srcdir\@,$(srcdir),g' -e 's,@PACKAGE_STRING\@,@PACKAGE_STRING@,g' -e 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g'
81 82 83 84 85 86 87 88
LDRPATH_INSTALL = @LDRPATH_INSTALL@
LDRPATH_LOCAL   = @LDRPATH_LOCAL@
INSTALL_PROGRAM = STRIPPROG="$(STRIP)" $(top_srcdir)/tools/install-sh $(INSTALL_PROGRAM_FLAGS)
INSTALL_SCRIPT  = $(top_srcdir)/tools/install-sh $(INSTALL_SCRIPT_FLAGS)
INSTALL_DATA    = $(top_srcdir)/tools/install-sh -m 644 $(INSTALL_DATA_FLAGS)
prog_manext     = 1
api_manext      = 3w
conf_manext     = 5
89 90 91
WINELOADER_PROGRAMS = @WINELOADER_PROGRAMS@
WINELOADER_DEPENDS  = @WINELOADER_DEPENDS@
WINELOADER_INSTALL  = @WINELOADER_INSTALL@
92
WINELOADER_LDFLAGS  = @WINELOADER_LDFLAGS@
93 94 95 96 97 98
LIBWINE_SHAREDLIB   = @LIBWINE_SHAREDLIB@
LIBWINE_IMPORTLIB   = @LIBWINE_IMPORTLIB@
LIBWINE_INSTALL_LIB = @LIBWINE_INSTALL_LIB@
LIBWINE_INSTALL_DEV = @LIBWINE_INSTALL_DEV@
LIBWINE_LDFLAGS     = @LIBWINE_LDFLAGS@
LIBWINE_DEPENDS     = @LIBWINE_DEPENDS@
99
ALL_TEST_RESOURCES  = @ALL_TEST_RESOURCES@
100
DISABLED_SUBDIRS    = @DISABLED_SUBDIRS@
101
CONFIGURE_TARGETS   = @CONFIGURE_TARGETS@
102 103 104
@ALL_VARS_RULES@
@SET_MAKE@

105
all: wine
106
	@echo "Wine build complete."
Alexandre Julliard's avatar
Alexandre Julliard committed
107

108 109
# Rules for re-running configure

110
config.status: $(srcdir)/configure
111
	@./config.status --recheck
112

113
include/config.h: include/stamp-h
114
include/stamp-h: $(srcdir)/include/config.h.in config.status
115 116
	@./config.status include/config.h include/stamp-h

117 118
# Rules for cleaning

119 120
.PHONY: clean distclean __clean__

121
clean:: __clean__
122
distclean:: clean
123
	$(RM) -r autom4te.cache documentation/html documentation/api-guide documentation/api-guide-xml documentation/man$(api_manext)
124

125
# Rules for uninstalling
126

127
.PHONY: install install-lib install-dev uninstall __uninstall__
128
uninstall:: __uninstall__
129 130
	-rmdir $(DESTDIR)$(fontdir) $(DESTDIR)$(datadir)/wine $(DESTDIR)$(fakedlldir) $(DESTDIR)$(dlldir) $(DESTDIR)$(includedir)/windows/ddk \
	       $(DESTDIR)$(includedir)/windows $(DESTDIR)$(includedir)/msvcrt/sys $(DESTDIR)$(includedir)/msvcrt $(DESTDIR)$(includedir)
131

132 133 134 135 136 137 138
# Rules for API documentation

install-manpages:: manpages
	for i in documentation/man$(api_manext)/*.$(api_manext); do $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/$$i; done

.PHONY: install-manpages

139 140
# Dependencies between directories

141
# dependencies needed to build any dll or program
142
__tooldeps__: libs/port libs/wpp
143
__builddeps__: __tooldeps__ libs/wine include po
144
.PHONY: depend dummy check test testclean crosstest __tooldeps__ __builddeps__
145

146
dummy:
147 148
loader: libs/port libs/wine tools
server: libs/port libs/wine tools include
149
fonts: tools/sfnt2fon
150
include: tools tools/widl
151
libs/wine tools: libs/port
152
tools/sfnt2fon tools/wmc tools/wrc: tools
153
tools/widl tools/wmc tools/wrc: libs/wpp
154
libs/port libs/wine libs/wpp: include/config.h
155

156 157
# Misc rules

158 159
TAGSFLAGS = --langmap='c:+.idl.l.rh,make:(Make*.in)'

Alexandre Julliard's avatar
Alexandre Julliard committed
160
TAGS etags:
161
	$(RM) TAGS
162
	(test -d .git && git ls-files || find -L $(top_srcdir) -name '*.[ch]' -print) | xargs etags -a $(TAGSFLAGS)
Alexandre Julliard's avatar
Alexandre Julliard committed
163

164
tags ctags:
165
	$(RM) tags
166
	(test -d .git && git ls-files || find -L $(top_srcdir) -name '*.[ch]' -print) | xargs ctags -a $(TAGSFLAGS)