summaryrefslogtreecommitdiff
path: root/mk/emulator/linux.mk
diff options
context:
space:
mode:
authorjlam <jlam>2007-07-29 05:18:36 +0000
committerjlam <jlam>2007-07-29 05:18:36 +0000
commitc79d13574d40ad8e282bd93bd622e8a195903691 (patch)
tree45cad36d8470a568b9136017b2dd79c9efcc65bc /mk/emulator/linux.mk
parenta9d6b45cddcb11e05e29eed50a9623fff3d06518 (diff)
downloadpkgsrc-c79d13574d40ad8e282bd93bd622e8a195903691.tar.gz
* Add new emulator framework in pkgsrc/mk/emulator that handles all
binary-only packages that require binary "emulation" on the native operating system. Please see pkgsrc/mk/emulator/README for more details. * Teach the plist framework to automatically use any existing PLIST.${EMUL_PLATFORM} as part of the default PLIST_SRC definition. * Convert all of the binary-only packages in pkgsrc to use the emulator framework. Most of them have been tested to install and deinstall correctly. This involves the following cleanup actions: * Remove use of custom PLIST code and use PLIST.${EMUL_PLATFORM} more consistently. * Simplify packages by using default INSTALL and DEINSTALL scripts instead of custom INSTALL/DEINSTALL code. * Remove "SUSE_COMPAT32" and "PKG_OPTIONS.suse" from pkgsrc. Packages only need to state exactly which emulations they support, and the framework handles any i386-on-x86_64 or sparc-on-sparc64 uses. * Remove "USE_NATIVE_LINUX" from pkgsrc. The framework will automatically detect when the package is installing on Linux. Specific changes to packages include: * Bump the PKGREVISIONs for all of the suse100* and suse91* packages due to changes in the +INSTALL/+DEINSTALL scripts used in all of the packages. * Remove pkgsrc/emulators/suse_linux, which is unused by any packages. * cad/lc -- remove custom code to create the distinfo file for all supported platforms; just use "emul-fetch" and "emul-distinfo" instead. * lang/Cg-compiler -- install the shared libraries under ${EMULDIR} instead of ${PREFIX}/lib so that compiled programs will find the shared libraries. * mail/thunderbird-bin-nightly -- update to latest binary distributions for supported platforms. * multimedia/ns-flash -- update Linux version to 9.0.48 as the older version is no longer available for interactive fetch. * security/uvscan -- set LD_LIBRARY_PATH explicitly so that it's not necessary to install library symlinks into ${EMULDIR}/usr/local/lib. * www/firefox-bin-flash -- update Linux version to 9.0.48 as the older version is no longer available for interactive fetch.
Diffstat (limited to 'mk/emulator/linux.mk')
-rw-r--r--mk/emulator/linux.mk79
1 files changed, 79 insertions, 0 deletions
diff --git a/mk/emulator/linux.mk b/mk/emulator/linux.mk
new file mode 100644
index 00000000000..542240e5aa8
--- /dev/null
+++ b/mk/emulator/linux.mk
@@ -0,0 +1,79 @@
+# $NetBSD: linux.mk,v 1.1 2007/07/29 05:19:43 jlam Exp $
+#
+# Linux binary emulation framework
+#
+
+.if ${OPSYS} == "Linux"
+EMUL_TYPE.linux?= native
+.else
+EMUL_TYPE.linux?= suse
+.endif
+EMUL_MODULES.linux?= # empty
+
+.if ((${EMUL_ARCH} == "i386") && (${MACHINE_ARCH} == "x86_64")) || \
+ ((${EMUL_ARCH} == "sparc") && (${MACHINE_ARCH} == "sparc64"))
+_LINUX_BASE= linux32
+EMULSUBDIR= emul/linux32
+.else
+_LINUX_BASE= linux
+EMULSUBDIR= emul/linux
+.endif
+
+EMULDIR= ${PREFIX}/${EMULSUBDIR}
+OPSYS_EMULDIR= ${_OPSYS_EMULDIR.${_LINUX_BASE}}
+
+# _EMUL_TYPES
+# List of recognized Linux types that a user may request.
+#
+# _EMUL_MODULES
+# List of recognized Linux "modules" that packages may request.
+#
+_EMUL_TYPES= builtin
+_EMUL_TYPES+= native
+_EMUL_TYPES+= suse
+
+.if !empty(EMUL_TYPE.linux:Msuse-*)
+_EMUL_TYPE?= suse
+.endif
+_EMUL_TYPE?= ${EMUL_TYPE.linux}
+
+_EMUL_MODULES= aspell
+_EMUL_MODULES+= base
+_EMUL_MODULES+= compat
+_EMUL_MODULES+= cups
+_EMUL_MODULES+= expat
+_EMUL_MODULES+= fontconfig
+_EMUL_MODULES+= freetype2
+_EMUL_MODULES+= gdk-pixbuf
+_EMUL_MODULES+= glx
+_EMUL_MODULES+= gtk
+_EMUL_MODULES+= gtk2
+_EMUL_MODULES+= jpeg
+_EMUL_MODULES+= locale
+_EMUL_MODULES+= motif
+_EMUL_MODULES+= openssl
+_EMUL_MODULES+= png
+_EMUL_MODULES+= slang
+_EMUL_MODULES+= tiff
+_EMUL_MODULES+= vmware
+_EMUL_MODULES+= x11
+_EMUL_MODULES+= xml2
+
+.if ${_EMUL_TYPE} == "builtin"
+EMUL_DISTRO= builtin-linux # managed outside pkgsrc
+.elif ${_EMUL_TYPE} == "native"
+EMUL_DISTRO= native-linux # native Linux installation
+EMULDIR= ${PREFIX}
+EMULSUBDIR= # empty
+.else
+. include "${PKGSRCDIR}/mk/emulator/linux-${_EMUL_TYPE}.mk"
+.endif
+
+.if (${_EMUL_TYPE} == "builtin") || (${_EMUL_TYPE} == "native")
+. for _mod_ in ${_EMUL_MODULES}
+DEPENDS_native-linux.${_mod_}= # empty
+. endfor
+.endif
+
+LDCONFIG_ADD_CMD?= ${EMULDIR}/sbin/ldconfig -r ${EMULDIR}
+LDCONFIG_REMOVE_CMD?= ${EMULDIR}/sbin/ldconfig -r ${EMULDIR}