Use -lwine for linking.
[wine] / Makefile.in
1 # This Makefile understands the following targets:
2 #
3 # all (default):        build wine
4 # lib:                  build libwine
5 # clean:                remove all intermediate files
6 # distclean:            also remove all files created by configure
7 # install:              install everything
8 # uninstall:            uninstall everything
9 # depend:               create the dependencies
10 # etags:                create a TAGS file for Emacs.
11 # manpages:             compile manpages for Wine API
12 #
13
14 # Main target to build
15
16 MAIN_TARGET = @MAIN_TARGET@
17
18 # Directories
19
20 TOPSRCDIR = @top_srcdir@
21 TOPOBJDIR = .
22 SRCDIR    = @srcdir@
23 VPATH     = @srcdir@
24 MODULE    = none
25
26 LIBSUBDIRS = \
27         tools \
28         tools/wrc \
29         controls \
30         console \
31         dlls/comctl32 \
32         dlls/imagehlp \
33         dlls/msacm \
34         dlls/msacm32 \
35         dlls/ntdll \
36         dlls/psapi \
37         dlls/rasapi32 \
38         dlls/shell32 \
39         dlls/winaspi \
40         dlls/wnaspi32 \
41         files \
42         graphics \
43         graphics/metafiledrv \
44         graphics/psdrv \
45         ipc \
46         library \
47         loader \
48         loader/ne \
49         loader/dos \
50         memory \
51         misc \
52         msdos \
53         multimedia \
54         objects \
55         ole \
56         relay32 \
57         resources \
58         scheduler \
59         server \
60         win32 \
61         windows \
62         windows/ttydrv
63
64 X11SUBDIRS = \
65         graphics/x11drv \
66         tsx11 \
67         windows/x11drv
68
69 EMUSUBDIRS = \
70         debugger \
71         graphics/win16drv \
72         if1632 \
73         miscemu
74
75 PROGSUBDIRS = libtest programs
76
77 DOCSUBDIRS = documentation
78
79 # All sub-directories
80 ALLSUBDIRS = \
81         $(LIBSUBDIRS) \
82         $(X11SUBDIRS) \
83         $(EMUSUBDIRS) \
84         $(PROGSUBDIRS) \
85         $(DOCSUBDIRS)
86
87 # Sub-directories to run make depend into
88 DEPENDSUBDIRS = $(LIBSUBDIRS) $(X11SUBDIRS) $(EMUSUBDIRS) $(DOCSUBDIRS)
89
90 # Sub-directories to run make install into
91 INSTALLSUBDIRS = $(DOCSUBDIRS)
92
93 LIBOBJS = \
94         controls/controls.o \
95         console/console.o \
96         dlls/comctl32/comctl32.o \
97         dlls/imagehlp/imagehlp.o \
98         dlls/msacm/msacm.o \
99         dlls/msacm32/msacm32.o \
100         dlls/ntdll/ntdll.o \
101         dlls/psapi/psapi.o \
102         dlls/rasapi32/rasapi32.o \
103         dlls/shell32/shell32.o \
104         dlls/winaspi/winaspi.o \
105         dlls/wnaspi32/wnaspi32.o \
106         files/files.o \
107         graphics/graphics.o \
108         graphics/metafiledrv/metafiledrv.o \
109         graphics/psdrv/psdrv.o \
110         ipc/ipc.o \
111         loader/loader.o \
112         loader/ne/ne.o \
113         loader/dos/dos.o \
114         memory/memory.o \
115         misc/misc.o \
116         msdos/msdos.o \
117         multimedia/multimedia.o \
118         objects/objects.o \
119         ole/ole.o \
120         relay32/relay32.o \
121         resources/resources.o \
122         scheduler/scheduler.o \
123         server/server.o \
124         win32/win32.o \
125         windows/windows.o \
126         windows/ttydrv/ttydrv.o
127
128 X11OBJS = \
129         graphics/x11drv/x11drv.o \
130         tsx11/tsx11.o \
131         windows/x11drv/x11drv.o
132
133 EMUOBJS = \
134         debugger/debugger.o \
135         graphics/win16drv/win16drv.o \
136         if1632/if1632.o \
137         miscemu/miscemu.o
138
139 LIB_TARGET  = @LIB_TARGET@
140
141 ALT_LINK    = @ALT_LINK@
142
143 all: $(MAIN_TARGET)
144
145 @MAKE_RULES@
146
147 install:: install_$(MAIN_TARGET)
148
149 uninstall:: uninstall_$(MAIN_TARGET)
150
151 emu: wine
152
153 lib: $(LIBSUBDIRS) $(X11SUBDIRS) $(LIB_TARGET)
154
155 wine wine.sym: $(LIBSUBDIRS) $(X11SUBDIRS) $(LIB_TARGET) $(EMUSUBDIRS) dummy
156         $(CC) -o wine $(EMUOBJS) $(ALT_LINK) $(LDOPTIONS) $(X_LIBS) $(XLIB) $(LIBS)
157         nm -n wine | grep -v _compiled >wine.sym
158         @echo "Wine build complete."
159
160 libwine.a: $(LIBOBJS) $(X11OBJS)
161         $(RM) $@
162         $(AR) $@ $(LIBOBJS) $(X11OBJS)
163         $(RANLIB) $@
164
165 libwine.so.1.0: $(LIBOBJS) $(X11OBJS)
166         $(LDSHARED) -o$@ $(LIBOBJS) $(X11OBJS) $(LDOPTIONS)
167
168 install_emu: install_lib
169         [ -d $(bindir) ] || $(MKDIR) $(bindir)
170         $(INSTALL_PROGRAM) wine $(bindir)/wine
171         $(INSTALL_PROGRAM) loader/dos/dosmod $(bindir)/dosmod
172
173 uninstall_emu: uninstall_lib
174         $(RM) $(bindir)/wine $(bindir)/dosmod
175
176 install_lib: install_includes
177         [ -d $(libdir) ] || $(MKDIR) $(libdir)
178         if [ $(LIB_TARGET) ]; then $(INSTALL_DATA) $(LIB_TARGET) $(libdir); fi
179         $(INSTALL_DATA) wine.sym $(libdir)/wine.sym
180
181 uninstall_lib: uninstall_includes
182         cd $(libdir); $(RM) $(LIB_TARGET)
183         $(RM) $(libdir)/wine.sym
184
185 install_includes: dummy
186         [ -d $(includedir) ] || $(MKDIR) $(includedir)
187         cd $(TOPSRCDIR)/include; $(INSTALL_DATA) windows.h wintypes.h $(includedir)
188
189 # Don't just do a rm -rf on $(includedir) -- don't want to wipe out 
190 # anything extra the user may have put there.
191 uninstall_includes: dummy
192         $(RM) $(includedir)/windows.h $(includedir)/wintypes.h
193         -rmdir $(includedir)
194
195 $(ALLSUBDIRS): dummy
196         @cd $@; $(SUBMAKE)
197
198 install_programs: dummy
199         @cd programs; $(SUBMAKE) install
200
201 uninstall_programs: dummy
202         @cd programs; $(SUBMAKE) uninstall
203
204 install::
205         for i in $(INSTALLSUBDIRS); do (cd $$i && $(MAKE) install) || exit 1; done
206
207 uninstall::
208         for i in $(INSTALLSUBDIRS); do (cd $$i && $(MAKE) uninstall) || exit 1; done
209
210 depend:: dummy
211         for i in $(DEPENDSUBDIRS); do (cd $$i && $(MAKE) depend) || exit 1; done
212
213 TAGS etags:
214         etags `find $(TOPSRCDIR) -name '*.[chS]' -print | grep -v dbgmain`
215
216 manpages:
217         -$(MKDIR) $(TOPOBJDIR)/documentation/man3w
218         for i in $(LIBSUBDIRS); do (cd $$i && $(MAKE) man); done
219
220 htmlpages:
221         -$(MKDIR) $(TOPOBJDIR)/documentation/html
222         for i in $(LIBSUBDIRS); do (cd $$i && $(MAKE) html); done
223
224 clean::
225         for i in $(ALLSUBDIRS); do (cd $$i; $(MAKE) clean) || exit 1; done
226         for i in include; do (cd $$i; $(RM) *.o \#*\# .#* *~ *% *.bak *.orig *.rej *.flc); done
227         $(RM) wine wine.sym libwine.a libwine.so.1.0 TAGS .#*
228
229 distclean: clean
230         $(RM) config.* Make.rules include/config.h
231         $(RM) `find . \( -name Makefile -o -size 0 \) -print`
232
233 configure: configure.in
234         autoconf
235
236 include/config.h.in: configure.in include/acconfig.h
237         autoheader -l include
238
239 ### Dependencies: