# Copyright (C) 2012-2015 The Bochs Project # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # Makefile for the iodev/usb component of bochs @SUFFIX_LINE@ prefix = @prefix@ exec_prefix = @exec_prefix@ srcdir = @srcdir@ VPATH = @srcdir@ bindir = @bindir@ libdir = @libdir@ datarootdir = @datarootdir@ mandir = @mandir@ man1dir = $(mandir)/man1 man5dir = $(mandir)/man5 docdir = $(datarootdir)/doc/bochs sharedir = $(datarootdir)/bochs top_builddir = .. top_srcdir = @top_srcdir@ SHELL = @SHELL@ @SET_MAKE@ CXX = @CXX@ CXXFLAGS = $(BX_INCDIRS) @CXXFLAGS@ @GUI_CXXFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ RANLIB = @RANLIB@ PLUGIN_PATH=@libdir@ top_builddir = ../.. LIBTOOL=@LIBTOOL@ WIN32_DLL_IMPORT_LIBRARY=../../@WIN32_DLL_IMPORT_LIB@ USBDEV_OBJS = @USBDEV_OBJS@ UHCICORE_OBJ = @UHCICORE_OBJ@ SCSI_OBJS = @SCSI_OBJS@ BX_INCDIRS = -I.. -I../.. -I$(srcdir)/.. -I$(srcdir)/../.. -I../../@INSTRUMENT_DIR@ -I$(srcdir)/../../@INSTRUMENT_DIR@ LOCAL_CXXFLAGS = $(MCH_CFLAGS) OBJS_THAT_CAN_BE_PLUGINS = \ @USBHC_OBJS@ \ @USBCORE_OBJ@ OBJS_THAT_SUPPORT_OTHER_PLUGINS = \ $(UHCICORE_OBJ) \ $(USBDEV_OBJS) \ $(SCSI_OBJS) NONPLUGIN_OBJS = @IODEV_EXT_NON_PLUGIN_OBJS@ PLUGIN_OBJS = @IODEV_EXT_PLUGIN_OBJS@ USBHC_DLL_TARGETS = @USBHC_DLL_TARGETS@ all: libusb.a plugins: @PLUGIN_TARGET_2@ plugins_gcc: $(PLUGIN_OBJS:@PLUGIN_LIBNAME_TRANSFORMATION@) plugins_msvc: bx_usb_common.dll $(USBHC_DLL_TARGETS) libusb.a: $(NONPLUGIN_OBJS) @RMCOMMAND@ libusb.a @MAKELIB@ $(NONPLUGIN_OBJS) $(RANLIB) libusb.a # standard compile rule for C++ files .@CPP_SUFFIX@.o: $(CXX) @DASH@c $(CXXFLAGS) $(LOCAL_CXXFLAGS) @CXXFP@$< @OFP@$@ ##### building plugins with libtool %.lo: %.@CPP_SUFFIX@ $(LIBTOOL) --mode=compile --tag CXX $(CXX) -c $(CXXFLAGS) $(LOCAL_CXXFLAGS) $< -o $@ libbx_%.la: %.lo $(LIBTOOL) --mode=link --tag CXX $(CXX) -module $< -o $@ -rpath $(PLUGIN_PATH) # special link rules for plugins that require more than one object file libbx_usb_common.la: usb_common.lo $(USBDEV_OBJS:.o=.lo) scsi_device.lo $(LIBTOOL) --mode=link --tag CXX $(CXX) -module usb_common.lo $(USBDEV_OBJS:.o=.lo) scsi_device.lo -o libbx_usb_common.la -rpath $(PLUGIN_PATH) libbx_usb_uhci.la: usb_uhci.lo uhci_core.lo $(LIBTOOL) --mode=link --tag CXX $(CXX) -module usb_uhci.lo uhci_core.lo -o libbx_usb_uhci.la -rpath $(PLUGIN_PATH) libbx_usb_ehci.la: usb_ehci.lo uhci_core.lo $(LIBTOOL) --mode=link --tag CXX $(CXX) -module usb_ehci.lo uhci_core.lo -o libbx_usb_ehci.la -rpath $(PLUGIN_PATH) #### building DLLs for win32 (Cygwin and MinGW/MSYS) bx_%.dll: %.o $(CXX) $(CXXFLAGS) -shared -o $@ $< $(WIN32_DLL_IMPORT_LIBRARY) # special link rules for plugins with Cygwin, MinGW/MSYS and MSVC nmake bx_usb_common.dll: usb_common.o $(USBDEV_OBJS) scsi_device.o @LINK_DLL@ usb_common.o $(USBDEV_OBJS) scsi_device.o $(WIN32_DLL_IMPORT_LIBRARY) bx_usb_uhci.dll: usb_uhci.o uhci_core.o @LINK_DLL@ usb_uhci.o uhci_core.o $(WIN32_DLL_IMPORT_LIBRARY) bx_usb_ohci.dll: usb_ohci.o @LINK_DLL@ usb_ohci.o $(WIN32_DLL_IMPORT_LIBRARY) bx_usb_ehci.dll: usb_ehci.o uhci_core.o @LINK_DLL@ usb_ehci.o uhci_core.o $(WIN32_DLL_IMPORT_LIBRARY) bx_usb_xhci.dll: usb_xhci.o @LINK_DLL@ usb_xhci.o $(WIN32_DLL_IMPORT_LIBRARY) ##### end DLL section clean: @RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib dist-clean: clean @RMCOMMAND@ Makefile ########################################### # dependencies generated by # gcc -MM -I.. -I../.. -I../../instrument/stubs *.cc | sed -e 's/\.cc/.@CPP_SUFFIX@/g' # gcc -MM -I.. -I../.. -I../../instrument/stubs *.cc | \ # sed -e 's/\.cc/.@CPP_SUFFIX@/g' -e 's/\.o:/.lo:/g' # # This means that every source file is listed twice, once with a .o rule # and then again with an identical .lo rule. The .lo rules are used when # building plugins. ########################################### scsi_device.o: scsi_device.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../hdimage/hdimage.h ../hdimage/cdrom.h \ scsi_device.h uhci_core.o: uhci_core.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h uhci_core.h usb_cbi.o: usb_cbi.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h ../hdimage/hdimage.h usb_cbi.h usb_common.o: usb_common.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h usb_hid.h usb_hub.h usb_msd.h usb_cbi.h \ usb_printer.h usb_ehci.o: usb_ehci.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h uhci_core.h usb_ehci.h usb_hid.o: usb_hid.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h usb_hid.h usb_hub.o: usb_hub.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h usb_hub.h usb_msd.o: usb_msd.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h ../hdimage/cdrom.h ../hdimage/hdimage.h \ scsi_device.h usb_msd.h usb_ohci.o: usb_ohci.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h usb_ohci.h usb_printer.o: usb_printer.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h usb_printer.h usb_uhci.o: usb_uhci.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h uhci_core.h usb_uhci.h usb_xhci.o: usb_xhci.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h usb_xhci.h scsi_device.lo: scsi_device.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../hdimage/hdimage.h ../hdimage/cdrom.h \ scsi_device.h uhci_core.lo: uhci_core.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h uhci_core.h usb_cbi.lo: usb_cbi.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h ../hdimage/hdimage.h usb_cbi.h usb_common.lo: usb_common.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h usb_hid.h usb_hub.h usb_msd.h usb_cbi.h \ usb_printer.h usb_ehci.lo: usb_ehci.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h uhci_core.h usb_ehci.h usb_hid.lo: usb_hid.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h usb_hid.h usb_hub.lo: usb_hub.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h usb_hub.h usb_msd.lo: usb_msd.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h ../hdimage/cdrom.h ../hdimage/hdimage.h \ scsi_device.h usb_msd.h usb_ohci.lo: usb_ohci.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h usb_ohci.h usb_printer.lo: usb_printer.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h usb_common.h usb_printer.h usb_uhci.lo: usb_uhci.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h uhci_core.h usb_uhci.h usb_xhci.lo: usb_xhci.@CPP_SUFFIX@ ../iodev.h ../../bochs.h ../../config.h \ ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \ ../../gui/siminterface.h ../../cpudb.h ../../gui/paramtree.h \ ../../memory/memory.h ../../pc_system.h ../../gui/gui.h \ ../../instrument/stubs/instrument.h ../../plugin.h ../../extplugin.h \ ../../param_names.h ../pci.h usb_common.h usb_xhci.h