Release 980201
[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 # depend:               create the dependencies
9 # etags:                create a TAGS file for Emacs.
10 # manpages:             compile manpages for Wine API
11 #
12
13 # Main target to build
14
15 MAIN_TARGET = @MAIN_TARGET@
16 LIB_TARGET  = @LIB_TARGET@
17
18 # Directories
19
20 TOPSRCDIR = @top_srcdir@
21 TOPOBJDIR = .
22 SRCDIR    = @srcdir@
23 VPATH     = @srcdir@
24 MODULE    = none
25
26 LIBSUBDIRS = \
27         rc \
28         tools \
29         controls \
30         files \
31         graphics \
32         graphics/metafiledrv \
33         graphics/x11drv \
34         ipc \
35         library \
36         loader \
37         memory \
38         misc \
39         msdos \
40         multimedia \
41         objects \
42         ole \
43         relay32 \
44         resources \
45         scheduler \
46         tsx11 \
47         win32 \
48         windows
49
50 EMUSUBDIRS = \
51         debugger \
52         graphics/win16drv \
53         if1632 \
54         miscemu
55
56 PROGSUBDIRS = libtest programs
57
58 DOCSUBDIRS = documentation
59
60 # All sub-directories
61 ALLSUBDIRS = \
62         $(LIBSUBDIRS) \
63         $(EMUSUBDIRS) \
64         $(PROGSUBDIRS) \
65         $(DOCSUBDIRS)
66
67 # Sub-directories to run make depend into
68 DEPENDSUBDIRS = $(LIBSUBDIRS) $(EMUSUBDIRS) $(DOCSUBDIRS)
69
70 # Sub-directories to run make install into
71 INSTALLSUBDIRS = $(DOCSUBDIRS)
72
73 LIBOBJS = \
74         controls/controls.o \
75         files/files.o \
76         graphics/graphics.o \
77         graphics/metafiledrv/metafiledrv.o \
78         graphics/x11drv/x11drv.o \
79         ipc/ipc.o \
80         loader/loader.o \
81         memory/memory.o \
82         misc/misc.o \
83         msdos/msdos.o \
84         multimedia/multimedia.o \
85         objects/objects.o \
86         ole/ole.o \
87         relay32/relay32.o \
88         resources/resources.o \
89         scheduler/scheduler.o \
90         tsx11/tsx11.o \
91         win32/win32.o \
92         windows/windows.o
93
94 EMUOBJS = \
95         debugger/debugger.o \
96         graphics/win16drv/win16drv.o \
97         if1632/if1632.o \
98         miscemu/miscemu.o
99
100 all: $(MAIN_TARGET)
101
102 @MAKE_RULES@
103
104 install:: install_$(MAIN_TARGET)
105
106 emu: wine
107
108 lib: $(LIBSUBDIRS) $(LIB_TARGET)
109
110 wine wine.sym: $(LIBSUBDIRS) $(LIB_TARGET) $(EMUSUBDIRS) dummy
111         $(CC) -o wine $(EMUOBJS) $(LIB_TARGET) $(LDOPTIONS) $(X_LIBS) $(XPM_LIB) $(XLIB) $(LIBS)
112         nm -n wine | grep -v _compiled >wine.sym
113
114 libwine.a: $(LIBOBJS)
115         $(RM) $@
116         $(AR) $@ $(LIBOBJS)
117         $(RANLIB) $@
118
119 libwine.so.1.0: $(LIBOBJS)
120         $(CC) -shared -Wl,-soname,libwine.so -o$@ $(LIBOBJS) $(LDOPTIONS) $(X_LIBS) $(XPM_LIB) $(XLIB) $(LIBS)
121
122 install_emu: dummy
123         $(INSTALL_PROGRAM) wine $(bindir)/wine
124
125 install_lib: install_includes
126         $(INSTALL_DATA) $(LIB_TARGET) $(libdir)
127
128 install_includes: dummy
129         if [ -d $(includedir) ]; then : ; else $(MKDIR) $(includedir); fi 
130         cd include; $(INSTALL_DATA) windows.h wintypes.h $(includedir)
131
132 $(ALLSUBDIRS): dummy
133         @cd $@; $(SUBMAKE)
134
135 install_programs: dummy
136         @cd programs; $(SUBMAKE) install
137
138 install::
139         for i in $(INSTALLSUBDIRS); do (cd $$i && $(MAKE) install) || exit 1; done
140
141 depend:: dummy
142         for i in $(DEPENDSUBDIRS); do (cd $$i && $(MAKE) depend) || exit 1; done
143
144 TAGS etags:
145         etags `find $(TOPSRCDIR) -name '*.[chS]' -print | grep -v dbgmain`
146
147 manpages:
148         -$(MKDIR) $(TOPOBJDIR)/documentation/man3w
149         for i in $(LIBSUBDIRS); do (cd $$i && $(MAKE) man); done
150
151 clean::
152         for i in $(ALLSUBDIRS); do (cd $$i; $(MAKE) clean) || exit 1; done
153         for i in include; do (cd $$i; $(RM) *.o \#*\# *~ *.bak *.orig *.rej *.flc); done
154         $(RM) wine wine.sym libwine.a libwine.so.1.0 TAGS
155
156 distclean: clean
157         $(RM) config.* Make.rules include/config.h
158         $(RM) `find . \( -name Makefile -o -size 0 \) -print`
159
160 configure: configure.in
161         autoconf
162
163 include/config.h.in: configure.in include/acconfig.h
164         autoheader -l include
165
166 ### Dependencies: