Skip to content
Snippets Groups Projects
Makefile.in 6.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • Alexandre Julliard's avatar
    Alexandre Julliard committed
    # This Makefile understands the following targets:
    #
    # all (default):	build wine
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # lib:                  build libwine
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # clean:		remove all intermediate files
    # distclean:		also remove all files created by configure
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # install:              install everything
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # uninstall:		uninstall everything
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # depend:		create the dependencies
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # etags:		create a TAGS file for Emacs.
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # manpages:		compile manpages for Wine API
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    #
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # Main target to build
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    MAIN_TARGET = @MAIN_TARGET@
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # Directories
    
    TOPSRCDIR = @top_srcdir@
    TOPOBJDIR = .
    SRCDIR    = @srcdir@
    VPATH     = @srcdir@
    MODULE    = none
    
    
    TOOLSUBDIRS = \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	tools \
    
    	tools/wrc
    
    LIBSUBDIRS = \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	controls \
    
    Joseph Pranevich's avatar
    Joseph Pranevich committed
    	console \
    
    	dlls/advapi32 \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/comctl32 \
    
    	dlls/imagehlp \
    	dlls/msacm \
    	dlls/msacm32 \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/psapi \
    
    	dlls/rasapi32 \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/shell32 \
    
    	dlls/ver \
    	dlls/version \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/winaspi \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/wnaspi32 \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	files \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	graphics \
    
    	graphics/enhmetafiledrv \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	graphics/metafiledrv \
    
    	graphics/ttydrv \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	library \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	loader \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	loader/ne \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	loader/dos \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	memory \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	misc \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	msdos \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	multimedia \
    	objects \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	ole \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	relay32 \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	resources \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	scheduler \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	server \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	win32 \
    
    	windows \
    	windows/ttydrv
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    X11SUBDIRS = \
    	graphics/x11drv \
    	tsx11 \
    	windows/x11drv
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    EMUSUBDIRS = \
    	debugger \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	miscemu
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    PROGSUBDIRS = libtest programs
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    DOCSUBDIRS = documentation
    
    
    INCSUBDIRS = include
    
    # Sub-directories to run make into
    BUILDSUBDIRS = \
    
    	$(TOOLSUBDIRS) \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	$(LIBSUBDIRS) \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	$(EMUSUBDIRS) \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	$(PROGSUBDIRS) \
    	$(DOCSUBDIRS)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    # Sub-directories to run make depend into
    
    DEPENDSUBDIRS = $(LIBSUBDIRS) $(X11SUBDIRS) $(EMUSUBDIRS) $(DOCSUBDIRS)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    # Sub-directories to run make install into
    
    INSTALLSUBDIRS = $(DOCSUBDIRS) $(INCSUBDIRS)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    # Sub-directories to run make lint into
    LINTSUBDIRS = $(LIBSUBDIRS) $(X11SUBDIRS) $(EMUSUBDIRS) $(DOCSUBDIRS)
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    LIBOBJS = \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	controls/controls.o \
    
    Joseph Pranevich's avatar
    Joseph Pranevich committed
    	console/console.o \
    
    	dlls/advapi32/advapi32.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/comctl32/comctl32.o \
    
    	dlls/imagehlp/imagehlp.o \
    	dlls/msacm/msacm.o \
    	dlls/msacm32/msacm32.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/psapi/psapi.o \
    
    	dlls/rasapi32/rasapi32.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/shell32/shell32.o \
    
    	dlls/tapi32/tapi32.o \
    
    	dlls/ver/ver.o \
    	dlls/version/version.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/winaspi/winaspi.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	dlls/wnaspi32/wnaspi32.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	files/files.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	graphics/graphics.o \
    
    	graphics/enhmetafiledrv/enhmetafiledrv.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	graphics/metafiledrv/metafiledrv.o \
    
    	graphics/psdrv/psdrv.o \
    
    	graphics/ttydrv/ttydrv.o \
    
    	graphics/win16drv/win16drv.o \
    	if1632/if1632.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	loader/loader.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	loader/ne/ne.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	loader/dos/dos.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	memory/memory.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	misc/misc.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	msdos/msdos.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	multimedia/multimedia.o \
    	objects/objects.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	ole/ole.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	relay32/relay32.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	resources/resources.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	scheduler/scheduler.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	server/server.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	win32/win32.o \
    
    	windows/windows.o \
    	windows/ttydrv/ttydrv.o
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    X11OBJS = \
    	graphics/x11drv/x11drv.o \
    	tsx11/tsx11.o \
    	windows/x11drv/x11drv.o
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    EMUOBJS = \
    	debugger/debugger.o \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	miscemu/miscemu.o
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    LIB_TARGET  = @LIB_TARGET@
    
    
    all: Makefile Make.rules $(MAIN_TARGET)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    LIBLINTS = $(LIBOBJS:.o=.ln) 
    X11LINTS = $(X11OBJS:.o=.ln)
    EMULINTS = $(EMUOBJS:.o=.ln)
    
    lint:: llib-lwine.ln $(EMULINTS)
    	$(LINT) $(ALLLINTFLAGS) -L. -lwine $(EMULINTS)
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    @MAKE_RULES@
    
    
    Make.rules: Make.rules.in configure
    	@echo $? is newer than 'Make.rules', please rerun ./configure!
    	@exit 1
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    install:: install_$(MAIN_TARGET)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    uninstall:: uninstall_$(MAIN_TARGET)
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    emu: wine
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    lib: $(LIBSUBDIRS) $(X11SUBDIRS) $(LIB_TARGET)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    wine wine.sym: $(LIB_TARGET) $(EMUOBJS) $(X11OBJS) $(LIBOBJS) dummy
    
    Todd Vierling's avatar
    Todd Vierling committed
    	$(CC) -o wine $(EMUOBJS) $(ALT_LINK) $(LDOPTIONS) $(X_LIBS) $(XLIB) $(LIBS)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	nm -n wine | grep -v _compiled >wine.sym
    
    	@echo "Wine build complete."
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    libwine.a: $(LIBOBJS) $(X11OBJS)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	$(RM) $@
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	$(RANLIB) $@
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    llib-lwine.ln : $(LIBLINTS) $(X11LINTS)
    	$(LINT) $(ALLLINTFLAGS) -owine $(LIBLINTS) $(X11LINTS)
    
    
    libwine.so.1.0: $(LIBOBJS) $(X11OBJS)
    
    	$(LDSHARED) -o$@ $(LIBOBJS) $(X11OBJS) $(LDOPTIONS)
    
    	ln -sf $@ libwine.so
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    install_emu: install_lib
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	[ -d $(bindir) ] || $(MKDIR) $(bindir)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	$(INSTALL_PROGRAM) wine $(bindir)/wine
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	$(INSTALL_PROGRAM) loader/dos/dosmod $(bindir)/dosmod
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    uninstall_emu: uninstall_lib
    	$(RM) $(bindir)/wine $(bindir)/dosmod
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	[ -d $(libdir) ] || $(MKDIR) $(libdir)
    
    	if [ -f wine.sym ]; then $(INSTALL_DATA) wine.sym $(libdir)/wine.sym; fi
    
    	if [ $(LIB_TARGET) ]; then \
    	    $(INSTALL_DATA) $(LIB_TARGET) $(libdir); \
    	    if [ $(LIB_TARGET) = libwine.so.1.0 ]; then $(LDCONFIG); fi \
    	fi
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    	cd $(libdir); $(RM) $(LIB_TARGET) libwine.a libwine.so wine.sym
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    $(X11OBJS) $(EMUOBJS) $(LIBOBJS): $(TOOLSUBDIRS) dummy
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	@cd $@; $(SUBMAKE)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    $(LIBLINTS) $(X11LINTS) $(EMULINTS): dummy
    	@echo $@ | sed 's%\(.*\)\/[^\/]*%cd \1 \&\& make lint%' | sh
    
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    install_programs: dummy
    	@cd programs; $(SUBMAKE) install
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    uninstall_programs: dummy
    	@cd programs; $(SUBMAKE) uninstall
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    install::
    	for i in $(INSTALLSUBDIRS); do (cd $$i && $(MAKE) install) || exit 1; done
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    uninstall::
    	for i in $(INSTALLSUBDIRS); do (cd $$i && $(MAKE) uninstall) || exit 1; done
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    depend:: dummy
    	for i in $(DEPENDSUBDIRS); do (cd $$i && $(MAKE) depend) || exit 1; done
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    TAGS etags:
    	etags `find $(TOPSRCDIR) -name '*.[chS]' -print | grep -v dbgmain`
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    manpages:
    	-$(MKDIR) $(TOPOBJDIR)/documentation/man3w
    	for i in $(LIBSUBDIRS); do (cd $$i && $(MAKE) man); done
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    htmlpages:
    	-$(MKDIR) $(TOPOBJDIR)/documentation/html
    	for i in $(LIBSUBDIRS); do (cd $$i && $(MAKE) html); done
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    clean::
    
    	for i in $(BUILDSUBDIRS); do (cd $$i; $(MAKE) clean) || exit 1; done
    
    	for i in include include/bitmaps include/wine; do (cd $$i; $(RM) *.o \#*\# .#* *~ *% *.bak *.orig *.rej *.flc); done
    
    	$(RM) wine wine.sym libwine.a libwine.so.1.0 libwine.so TAGS .#*
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    distclean: clean
    
    	$(RM) config.* Make.rules include/config.h documentation/wine.man
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	$(RM) `find . \( -name Makefile -o -size 0 \) -print`
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    # We depend on configure above for checks, so we better don't use this rule.
    #configure: configure.in
    #	autoconf
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    include/config.h.in: configure.in include/acconfig.h
    	autoheader -l include
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    ### Dependencies: