| # This Makefile understands the following targets: |
| # |
| # all (default): build wine |
| # lib: build libwine |
| # clean: remove all intermediate files |
| # distclean: also remove all files created by configure |
| # install: install everything |
| # uninstall: uninstall everything |
| # depend: create the dependencies |
| # etags: create a TAGS file for Emacs. |
| # manpages: compile manpages for Wine API |
| # |
| |
| # Main target to build |
| |
| MAIN_TARGET = @MAIN_TARGET@ |
| |
| # Directories |
| |
| TOPSRCDIR = @top_srcdir@ |
| TOPOBJDIR = . |
| SRCDIR = @srcdir@ |
| VPATH = @srcdir@ |
| MODULE = none |
| |
| LIBSUBDIRS = \ |
| tools \ |
| tools/wrc \ |
| controls \ |
| console \ |
| dlls/comctl32 \ |
| dlls/imagehlp \ |
| dlls/msacm \ |
| dlls/msacm32 \ |
| dlls/ntdll \ |
| dlls/psapi \ |
| dlls/rasapi32 \ |
| dlls/shell32 \ |
| dlls/winaspi \ |
| dlls/wnaspi32 \ |
| files \ |
| graphics \ |
| graphics/metafiledrv \ |
| graphics/psdrv \ |
| ipc \ |
| library \ |
| loader \ |
| loader/ne \ |
| loader/dos \ |
| memory \ |
| misc \ |
| msdos \ |
| multimedia \ |
| objects \ |
| ole \ |
| relay32 \ |
| resources \ |
| scheduler \ |
| server \ |
| win32 \ |
| windows \ |
| windows/ttydrv |
| |
| X11SUBDIRS = \ |
| graphics/x11drv \ |
| tsx11 \ |
| windows/x11drv |
| |
| EMUSUBDIRS = \ |
| debugger \ |
| graphics/win16drv \ |
| if1632 \ |
| miscemu |
| |
| PROGSUBDIRS = libtest programs |
| |
| DOCSUBDIRS = documentation |
| |
| # All sub-directories |
| ALLSUBDIRS = \ |
| $(LIBSUBDIRS) \ |
| $(X11SUBDIRS) \ |
| $(EMUSUBDIRS) \ |
| $(PROGSUBDIRS) \ |
| $(DOCSUBDIRS) |
| |
| # Sub-directories to run make depend into |
| DEPENDSUBDIRS = $(LIBSUBDIRS) $(X11SUBDIRS) $(EMUSUBDIRS) $(DOCSUBDIRS) |
| |
| # Sub-directories to run make install into |
| INSTALLSUBDIRS = $(DOCSUBDIRS) |
| |
| LIBOBJS = \ |
| controls/controls.o \ |
| console/console.o \ |
| dlls/comctl32/comctl32.o \ |
| dlls/imagehlp/imagehlp.o \ |
| dlls/msacm/msacm.o \ |
| dlls/msacm32/msacm32.o \ |
| dlls/ntdll/ntdll.o \ |
| dlls/psapi/psapi.o \ |
| dlls/rasapi32/rasapi32.o \ |
| dlls/shell32/shell32.o \ |
| dlls/winaspi/winaspi.o \ |
| dlls/wnaspi32/wnaspi32.o \ |
| files/files.o \ |
| graphics/graphics.o \ |
| graphics/metafiledrv/metafiledrv.o \ |
| graphics/psdrv/psdrv.o \ |
| ipc/ipc.o \ |
| loader/loader.o \ |
| loader/ne/ne.o \ |
| loader/dos/dos.o \ |
| memory/memory.o \ |
| misc/misc.o \ |
| msdos/msdos.o \ |
| multimedia/multimedia.o \ |
| objects/objects.o \ |
| ole/ole.o \ |
| relay32/relay32.o \ |
| resources/resources.o \ |
| scheduler/scheduler.o \ |
| server/server.o \ |
| win32/win32.o \ |
| windows/windows.o \ |
| windows/ttydrv/ttydrv.o |
| |
| X11OBJS = \ |
| graphics/x11drv/x11drv.o \ |
| tsx11/tsx11.o \ |
| windows/x11drv/x11drv.o |
| |
| EMUOBJS = \ |
| debugger/debugger.o \ |
| graphics/win16drv/win16drv.o \ |
| if1632/if1632.o \ |
| miscemu/miscemu.o |
| |
| LIB_TARGET = @LIB_TARGET@ |
| |
| ALT_LINK = @ALT_LINK@ |
| |
| all: $(MAIN_TARGET) |
| |
| @MAKE_RULES@ |
| |
| install:: install_$(MAIN_TARGET) |
| |
| uninstall:: uninstall_$(MAIN_TARGET) |
| |
| emu: wine |
| |
| lib: $(LIBSUBDIRS) $(X11SUBDIRS) $(LIB_TARGET) |
| |
| wine wine.sym: $(LIBSUBDIRS) $(X11SUBDIRS) $(LIB_TARGET) $(EMUSUBDIRS) dummy |
| $(CC) -o wine $(EMUOBJS) $(ALT_LINK) $(LDOPTIONS) $(X_LIBS) $(XLIB) $(LIBS) |
| nm -n wine | grep -v _compiled >wine.sym |
| @echo "Wine build complete." |
| |
| libwine.a: $(LIBOBJS) $(X11OBJS) |
| $(RM) $@ |
| $(AR) $@ $(LIBOBJS) $(X11OBJS) |
| $(RANLIB) $@ |
| |
| libwine.so.1.0: $(LIBOBJS) $(X11OBJS) |
| $(LDSHARED) -o$@ $(LIBOBJS) $(X11OBJS) $(LDOPTIONS) |
| |
| install_emu: install_lib |
| [ -d $(bindir) ] || $(MKDIR) $(bindir) |
| $(INSTALL_PROGRAM) wine $(bindir)/wine |
| $(INSTALL_PROGRAM) loader/dos/dosmod $(bindir)/dosmod |
| |
| uninstall_emu: uninstall_lib |
| $(RM) $(bindir)/wine $(bindir)/dosmod |
| |
| install_lib: install_includes |
| [ -d $(libdir) ] || $(MKDIR) $(libdir) |
| if [ $(LIB_TARGET) ]; then $(INSTALL_DATA) $(LIB_TARGET) $(libdir); fi |
| $(INSTALL_DATA) wine.sym $(libdir)/wine.sym |
| |
| uninstall_lib: uninstall_includes |
| cd $(libdir); $(RM) $(LIB_TARGET) |
| $(RM) $(libdir)/wine.sym |
| |
| install_includes: dummy |
| [ -d $(includedir) ] || $(MKDIR) $(includedir) |
| cd $(TOPSRCDIR)/include; $(INSTALL_DATA) windows.h wintypes.h $(includedir) |
| |
| # Don't just do a rm -rf on $(includedir) -- don't want to wipe out |
| # anything extra the user may have put there. |
| uninstall_includes: dummy |
| $(RM) $(includedir)/windows.h $(includedir)/wintypes.h |
| -rmdir $(includedir) |
| |
| $(ALLSUBDIRS): dummy |
| @cd $@; $(SUBMAKE) |
| |
| install_programs: dummy |
| @cd programs; $(SUBMAKE) install |
| |
| uninstall_programs: dummy |
| @cd programs; $(SUBMAKE) uninstall |
| |
| install:: |
| for i in $(INSTALLSUBDIRS); do (cd $$i && $(MAKE) install) || exit 1; done |
| |
| uninstall:: |
| for i in $(INSTALLSUBDIRS); do (cd $$i && $(MAKE) uninstall) || exit 1; done |
| |
| depend:: dummy |
| for i in $(DEPENDSUBDIRS); do (cd $$i && $(MAKE) depend) || exit 1; done |
| |
| TAGS etags: |
| etags `find $(TOPSRCDIR) -name '*.[chS]' -print | grep -v dbgmain` |
| |
| manpages: |
| -$(MKDIR) $(TOPOBJDIR)/documentation/man3w |
| for i in $(LIBSUBDIRS); do (cd $$i && $(MAKE) man); done |
| |
| htmlpages: |
| -$(MKDIR) $(TOPOBJDIR)/documentation/html |
| for i in $(LIBSUBDIRS); do (cd $$i && $(MAKE) html); done |
| |
| clean:: |
| for i in $(ALLSUBDIRS); do (cd $$i; $(MAKE) clean) || exit 1; done |
| for i in include; do (cd $$i; $(RM) *.o \#*\# .#* *~ *% *.bak *.orig *.rej *.flc); done |
| $(RM) wine wine.sym libwine.a libwine.so.1.0 TAGS .#* |
| |
| distclean: clean |
| $(RM) config.* Make.rules include/config.h |
| $(RM) `find . \( -name Makefile -o -size 0 \) -print` |
| |
| configure: configure.in |
| autoconf |
| |
| include/config.h.in: configure.in include/acconfig.h |
| autoheader -l include |
| |
| ### Dependencies: |