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