- Fixed resource functions to work directly from the HMODULE instead of
[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 # install:              install everything
7 # uninstall:            uninstall everything
8 # depend:               create the dependencies
9 # etags:                create a TAGS file for Emacs.
10 # manpages:             compile manpages for Wine API
11 #
12
13 # Directories
14
15 TOPSRCDIR = @top_srcdir@
16 TOPOBJDIR = .
17 SRCDIR    = @srcdir@
18 VPATH     = @srcdir@
19 LIBEXT    = @LIBEXT@
20 LDSHARED  = @LDSHARED@
21 LDCONFIG  = @LDCONFIG@
22 MODULE    = wine
23 SOVERSION = 1.0
24 SONAME    = libwine.so
25
26 # Stand-alone programs
27 PROGRAMS = \
28         loader/dos/dosmod \
29         server/wineserver
30
31 # Programs that link with libwine
32 LIBPROGRAMS = \
33         debugger/winedbg
34
35 # Libraries (not dlls) to build
36 LIBRARIES = \
37         unicode/libwine_unicode.$(LIBEXT)
38
39 # Sub-directories to run make depend/clean into
40 SUBDIRS = \
41         console \
42         debugger \
43         dlls \
44         dlls/ntdll \
45         documentation \
46         files \
47         if1632 \
48         include \
49         library \
50         libtest \
51         loader \
52         loader/dos \
53         loader/ne \
54         memory \
55         misc \
56         miscemu \
57         msdos \
58         ole \
59         programs \
60         relay32 \
61         scheduler \
62         server \
63         tools \
64         unicode \
65         win32
66
67 # Sub-directories to run make install into
68 INSTALLSUBDIRS = \
69         debugger \
70         dlls \
71         documentation \
72         include \
73         server \
74         tools \
75         unicode
76
77 LIBOBJS = \
78         console/console.o \
79         dlls/ntdll/ntdll.o \
80         files/files.o \
81         if1632/if1632.o \
82         loader/loader.o \
83         loader/ne/ne.o \
84         loader/dos/dos.o \
85         memory/memory.o \
86         misc/misc.o \
87         msdos/msdos.o \
88         ole/ole.o \
89         relay32/relay32.o \
90         scheduler/scheduler.o \
91         win32/win32.o
92
93 EMUOBJS = \
94         miscemu/miscemu.o
95
96 DLLOBJS = $(DLLS:%=dlls/lib%.@LIBEXT@)
97
98 EXTRA_OBJS = $(LIBOBJS)
99
100 all: Make.rules $(PROGRAMS) $(LIBPROGRAMS) wine
101         @echo "Wine build complete."
102
103 LIBLINTS = $(LIBOBJS:.o=.ln) 
104 EMULINTS = $(EMUOBJS:.o=.ln)
105
106 lint:: llib-lwine.ln $(EMULINTS)
107         $(LINT) $(ALLLINTFLAGS) -L. -lwine $(EMULINTS)
108
109 WINAPI_CHECK_EXTRA_FLAGS = --global
110
111 @MAKE_RULES@
112
113 Make.rules: Make.rules.in configure
114         @echo $? is newer than 'Make.rules', please rerun ./configure!
115         @exit 1
116
117 wine: libwine.$(LIBEXT) libwine_unicode.$(LIBEXT) dlls $(EMUOBJS)
118         $(CC) -o wine $(EMUOBJS) $(DLL_LINK) $(LIBS)
119
120 llib-lwine.ln : $(LIBLINTS)
121         $(LINT) $(ALLLINTFLAGS) -owine $(LIBLINTS)
122
123 install_so: libwine.so.$(SOVERSION)
124         [ -d $(libdir) ] || $(MKDIR) $(libdir)
125         $(INSTALL_PROGRAM) libwine.so.$(SOVERSION) $(libdir)/libwine.so.$(SOVERSION)
126         cd $(libdir) && $(RM) libwine.so && $(LN_S) libwine.so.$(SOVERSION) libwine.so
127
128 install_a: libwine.a
129         [ -d $(libdir) ] || $(MKDIR) $(libdir)
130         $(INSTALL_DATA) libwine.a $(libdir)/libwine.a
131
132 install:: all $(LIBEXT:%=install_%) $(INSTALLSUBDIRS:%=%/__install__)
133         [ -d $(bindir) ] || $(MKDIR) $(bindir)
134         $(INSTALL_PROGRAM) wine $(bindir)/wine
135         $(INSTALL_PROGRAM) loader/dos/dosmod $(bindir)/dosmod
136         -$(LDCONFIG)
137
138 uninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__)
139         cd $(libdir) && $(RM) libwine.a libwine.so libwine.so.$(SOVERSION)
140         cd $(bindir) && $(RM) wine dosmod
141
142 libwine.so.$(SOVERSION): $(OBJS) Makefile.in Make.rules.in
143         $(LDSHARED) $(OBJS) -o $@
144
145 libwine.so: libwine.so.$(SOVERSION)
146         $(RM) $@ && $(LN_S) libwine.so.$(SOVERSION) $@
147
148 libwine.a: $(OBJS) Makefile.in Make.rules.in
149         $(RM) $@
150         $(AR) $@ $(OBJS)
151         $(RANLIB) $@
152
153 $(EMUOBJS) $(LIBOBJS) $(DLLOBJS) $(PROGRAMS) $(LIBPROGRAMS) $(LIBRARIES): dummy
154         @cd `dirname $@` && $(MAKE) `basename $@`
155
156 # Dependencies between directories
157
158 $(EMUOBJS) $(LIBOBJS) $(DLLOBJS) $(PROGRAMS) dlls: tools
159
160 $(LIBPROGRAMS): tools dlls libwine.$(LIBEXT) libwine_unicode.$(LIBEXT)
161
162 server tools dlls: libwine_unicode.$(LIBEXT)
163
164 libwine_unicode.$(LIBEXT): unicode/libwine_unicode.$(LIBEXT)
165         $(RM) $@ && $(LN_S) unicode/libwine_unicode.$(LIBEXT) $@
166
167 $(LIBLINTS) $(EMULINTS): dummy
168         @cd `dirname $@` && $(MAKE) lint
169
170 checklink::
171         $(CC) -o checklink $(TOPSRCDIR)/library/checklink.c -L. -lwine -lwine_unicode $(LIBS) && $(RM) checklink
172
173 install_programs: dummy
174         @cd programs && $(MAKE) install
175
176 uninstall_programs: dummy
177         @cd programs && $(MAKE) uninstall
178
179 checklink::
180         @cd dlls && $(MAKE) checklink
181
182 TAGS etags:
183         etags `find $(TOPSRCDIR) -name '*.[chS]' -print | grep -v dbgmain`
184
185 manpages:
186         -$(MKDIR) $(TOPOBJDIR)/documentation/man3w
187         for i in $(SUBDIRS); do (cd $$i && $(MAKE) man); done
188
189 htmlpages:
190         -$(MKDIR) $(TOPOBJDIR)/documentation/html
191         for i in $(SUBDIRS); do (cd $$i && $(MAKE) html); done
192
193 clean::
194         $(RM) wine libwine.so.$(SOVERSION) TAGS
195
196 distclean: clean
197         $(RM) config.* Make.rules dlls/Makedll.rules include/config.h documentation/wine.man documentation/wine.conf.man
198         $(RM) `find . \( -name Makefile -o -size 0 \) -print`
199
200 # We depend on configure above for checks, so we better don't use this rule.
201 #configure: configure.in
202 #       autoconf
203
204 include/config.h.in: configure.in include/acconfig.h
205         autoheader -l include
206
207 ### Dependencies: