open-src/xserver/xorg/Makefile
changeset 1030 0738233d0472
parent 1029 2433d5075f1f
child 1088 1c99106ccbe0
--- a/open-src/xserver/xorg/Makefile	Thu Oct 28 22:15:43 2010 -0700
+++ b/open-src/xserver/xorg/Makefile	Fri Oct 29 11:17:36 2010 -0700
@@ -103,7 +103,6 @@
 
 # Binary built in tree
 XORGSERVER_BIN=$(SOURCE_DIR)/hw/xfree86/Xorg
-XSERVERS = Xorg Xephyr Xvfb
 
 BUILD_TARGETS=$(XORGSERVER_BIN) build_mdb set-elf-comments \
 	$(BUILD_DIR)/mapfile-Xorg-externs
@@ -152,10 +151,25 @@
 ADDITIONAL_SOURCE_DIR=sun-src
 
 # Compatibility links from /usr/X11/bin to /usr/bin
-MODULE_X11_BINCOMPAT_LINKS = $(XSERVERS) cvt gtf
+# Only needed for programs that were in /usr/X11/bin before we moved
+MODULE_X11_BINCOMPAT_LINKS = Xorg Xephyr Xvfb cvt gtf
 MODULE_X11_BINCOMPAT_LINKS_i386 = amd64
 MODULE_X11_BINCOMPAT_LINKS += $(MODULE_X11_BINCOMPAT_LINKS_$(MACH))
 
+# Binaries that are linked to isaexec on x86 to choose 32-bit or 64-bit
+LINKED_TO_ISAEXEC = Xorg Xephyr Xvfb Xdmx
+
+# When both 32-bit & 64-bit are built, only one copy of these programs (mostly
+# scripts) are needed, so move the 32-bit one to /usr/bin instead of linking 
+# to isaexec.
+NOT_LINKED_TO_ISAEXEC = cvt gtf \
+  dmxaddinput dmxaddscreen dmxreconfig dmxresize dmxrminput \
+  dmxrmscreen dmxtodmx dmxwininfo vdltodmx xdmx xdmxconfig
+
+# Steps that need to complete before the install_fix_paths in ../Makefile.inc
+# is run  to do the above isaexec fixes
+INSTALL_FIX_PATHS_DEPS = default_install
+
 include ../Makefile.inc
 
 $(XORGSERVER_BIN): default_build
@@ -207,74 +221,12 @@
 	printf '};\n' >> $@
 
 # Fix paths in proto area to match paths in packages / installed systems
-install_fix_paths: install_fix_paths_$(MACH)_$(BUILD_TYPE) install_fix_paths_X
-install_fix_paths_$(MACH)_: $(BUILD_TYPES:%=install_fix_paths_$(MACH)_%)
-
-install_fix_paths_i386_32: install_fix_paths_use_utilities
-install_fix_paths_i386_64: install_fix_paths_remove_utilities
-install_fix_paths_sparc_64: # not needed
-
-install_fix_paths_use_utilities: default_install
-	rm -f $(PROTODIR)$(MODULE_PREFIX)/bin/cvt \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/gtf \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/dmxaddinput \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/dmxaddscreen \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/dmxreconfig \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/dmxresize \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/dmxrminput \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/dmxrmscreen \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/dmxtodmx \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/dmxwininfo \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/vdltodmx \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/xdmx \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/xdmxconfig
-	mv -f $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/cvt \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/gtf \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxaddinput \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxaddscreen \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxreconfig \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxresize \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxrminput \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxrmscreen \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxtodmx \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxwininfo \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/vdltodmx \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/xdmx \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/xdmxconfig \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin
-
-install_fix_paths_remove_utilities: default_install
-	rm -f $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/cvt \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/gtf \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxaddinput \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxaddscreen \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxreconfig \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxresize \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxrminput \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxrmscreen \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxtodmx \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/dmxwininfo \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/vdltodmx \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/xdmx \
-	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/xdmxconfig
-
 install_fix_paths_X: default_install
 	rm -f $(PROTODIR)$(MODULE_PREFIX)/bin/X \
 	      $(PROTODIR)$(MODULE_PREFIX)/bin/$(ARCHBINSUBDIR)/X
 	ln -s Xserver $(PROTODIR)$(MODULE_PREFIX)/bin/X
 
-XSERVER_LINKS = $(XSERVERS:%=$(PROTODIR)$(MODULE_PREFIX)/bin/%)
-
-$(PROTODIR)/usr/lib/isaexec:
-	@rm -f $@
-	cp -pf /usr/lib/isaexec $@
-
-$(XSERVER_LINKS): $(PROTODIR)/usr/lib/isaexec
-	@rm -f $@
-	ln $(PROTODIR)/usr/lib/isaexec $@
-
-install_fix_paths_i386_32: install_fix_paths_Xservers_isaexec
-install_fix_paths_Xservers_isaexec: $(XSERVER_LINKS)
+install_fix_paths: install_fix_paths_X
 
 MESA_MODULE_DIR = /usr/lib/mesa/modules/extensions$(SERVERMOD_subdir)
 EXT_MODULE_DIR = $(X11_SERVERMODS_DIR)/extensions$(SERVERMOD_subdir)
@@ -342,3 +294,53 @@
 $(X11_INCLUDE_COMPAT_LINKS): $(X11_INCLUDE_COMPAT_DIR)
 	@rm -f $@
 	ln -s ../../include/$(@F) $@
+
+## mdb module rules
+# Build & install mdb modules & scripts that aren't integrated to
+# normal build process.
+MDB_SOURCE_DIR=$(XORG_BUILD_DIR)/os/solaris/mdb
+MDB_MODULE_DIR=/usr/lib/mdb/proc/$(ARCHLIBSUBDIR)
+MDB_SCRIPT_DIR=/usr/demo/Xserver/mdb
+MDB_SCRIPTS=list_Xserver_clients \
+	list_Xserver_devicegrab_client \
+	list_Xserver_servergrab_client
+MDB_MODULE_NAMES=Xephyr Xorg Xvfb Xvnc Xdmx
+
+BUILT_MDB_MODULE=$(MDB_SOURCE_DIR)/modules/Xserver.so
+BUILT_MDB_SCRIPTS=$(MDB_SCRIPTS:%=$(MDB_SOURCE_DIR)/scripts/%)
+
+INSTALLED_MDB_LINKS=$(MDB_MODULE_NAMES:%=$(PROTODIR)$(MDB_MODULE_DIR)/%.so)
+INSTALLED_MDB_MODULE=$(PROTODIR)$(MDB_MODULE_DIR)/Xserver.so
+INSTALLED_MDB_SCRIPTS=$(MDB_SCRIPTS:%=$(PROTODIR)$(MDB_SCRIPT_DIR)/%)
+INSTALLED_MDB_ALL=$(INSTALLED_MDB_MODULE) $(INSTALLED_MDB_LINKS) \
+	$(INSTALLED_MDB_SCRIPTS)
+
+# Since configure options aren't used to build the mdb modules, pass
+# those variables at build time
+MDB_BUILD_ENV=$(CONFIG_ENV) $(BUILD_ENV)
+
+build_mdb: $(BUILT_MDB_MODULE)
+
+$(BUILT_MDB_SCRIPTS): $(SOURCE_TARGETS)
+
+$(BUILT_MDB_MODULE): $(CONFIGURE_TARGETS)
+	(cd $(MDB_SOURCE_DIR) ; \
+         $(MDB_BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
+
+$(PROTODIR)$(MDB_MODULE_DIR) $(PROTODIR)$(MDB_SCRIPT_DIR):
+	mkdir -p $@
+
+$(INSTALLED_MDB_MODULE): $(PROTODIR)$(MDB_MODULE_DIR) $(BUILT_MDB_MODULE)
+	$(INSTALL_SCRIPT) -c -m 0555 $(BUILT_MDB_MODULE) $@
+
+$(INSTALLED_MDB_LINKS): $(PROTODIR)$(MDB_MODULE_DIR)
+	@rm -f $@
+	ln -s Xserver.so $@
+
+$(INSTALLED_MDB_SCRIPTS): $(BUILT_MDB_SCRIPTS) $(PROTODIR)$(MDB_SCRIPT_DIR)
+	$(INSTALL_SCRIPT) -c -m 0555 $(MDB_SOURCE_DIR)/scripts/$(@F) \
+		$(PROTODIR)$(MDB_SCRIPT_DIR)/
+
+install_mdb: $(INSTALLED_MDB_ALL)
+	$(INSTALL_SCRIPT) -c -m 0444 $(MDB_SOURCE_DIR)/README \
+		$(PROTODIR)$(MDB_SCRIPT_DIR)/