diff options
author | Igor Pashev <igor.pashev@nexenta.com> | 2012-06-29 14:36:07 +0400 |
---|---|---|
committer | Igor Pashev <igor.pashev@nexenta.com> | 2012-06-29 14:36:07 +0400 |
commit | e0463df9c3d2ee6155221cc443c571d5da47098a (patch) | |
tree | 5c6b99e64c1b65d986e2722728c74f202a578be6 /usr/src/make_src/rules | |
download | sunmake-orig.tar.gz |
Initial import of DevPro make sourcesorig
Downloaded from http://dlc.sun.com/osol/devpro/downloads/current/
Licensed under CDDL http://www.opensource.org/licenses/CDDL-1.0
Diffstat (limited to 'usr/src/make_src/rules')
-rw-r--r-- | usr/src/make_src/rules/computed-options.mk | 37 | ||||
-rw-r--r-- | usr/src/make_src/rules/derived.mk | 66 | ||||
-rw-r--r-- | usr/src/make_src/rules/dmake.mk | 33 | ||||
-rw-r--r-- | usr/src/make_src/rules/i18n-install.mk | 73 | ||||
-rw-r--r-- | usr/src/make_src/rules/import.mk | 28 | ||||
-rw-r--r-- | usr/src/make_src/rules/install.mk | 240 | ||||
-rw-r--r-- | usr/src/make_src/rules/intel-S2.mk | 60 | ||||
-rw-r--r-- | usr/src/make_src/rules/l10n-install.mk | 70 | ||||
-rw-r--r-- | usr/src/make_src/rules/lib.mk | 131 | ||||
-rw-r--r-- | usr/src/make_src/rules/libraries.mk | 62 | ||||
-rw-r--r-- | usr/src/make_src/rules/master.mk | 109 | ||||
-rw-r--r-- | usr/src/make_src/rules/recurse.mk | 58 | ||||
-rw-r--r-- | usr/src/make_src/rules/singleton.mk | 63 | ||||
-rw-r--r-- | usr/src/make_src/rules/solaris.mk | 55 | ||||
-rw-r--r-- | usr/src/make_src/rules/sparc-S2.mk | 61 | ||||
-rw-r--r-- | usr/src/make_src/rules/variant.mk | 45 |
16 files changed, 1191 insertions, 0 deletions
diff --git a/usr/src/make_src/rules/computed-options.mk b/usr/src/make_src/rules/computed-options.mk new file mode 100644 index 0000000..3c7d1ba --- /dev/null +++ b/usr/src/make_src/rules/computed-options.mk @@ -0,0 +1,37 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1996 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)computed-options.mk 1.3 06/12/12 +# + +# +# Including this file causes re-computation of the options used during a build +# + +$(TOP)/rules/options-$(VARIANT).mk: $(TOP)/exe/options.sh FORCE + /bin/rm -f $(TOP)/rules/options-$(VARIANT).mk + /bin/sh $(TOP)/exe/options.sh $(TOP) $(VARIANT) > $(TOP)/rules/options-$(VARIANT).mk + +FORCE: + +include $(TOP)/rules/options-$(VARIANT).mk diff --git a/usr/src/make_src/rules/derived.mk b/usr/src/make_src/rules/derived.mk new file mode 100644 index 0000000..89fd719 --- /dev/null +++ b/usr/src/make_src/rules/derived.mk @@ -0,0 +1,66 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2004 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)derived.mk 1.15 06/12/12 +# + +# Include this makefile in directories which contain source whose derived +# files are to be built in ../<variant>. + +# The source directory must contain a makefile with these contents: +# +# TOP = <as appropriate> +# include $(TOP)/rules/master.mk +# SRC = <as appripriate> +# include $(TOP)/rules/variant.mk +# +# The source directory must also contain a makefile named "Derived.mk" +# which is used to build the derived files. +# +# TOP is defined as a relative path to the root of the workspace +# SRC is defined as a relative path from the derived files' directory to the +# source files' directory, and is typically ../src. + +include $(TOP)/rules/$(VARIANT).mk + +all := TARG = all +install := TARG = install +clean := TARG = clean +test := TARG = test +l10n_install := TARG = l10n_install +i18n_install := TARG = i18n_install + +all install clean test l10n_install i18n_install: $(VARIANT) $(V9_VARIANT) + +SRC = ../src +MFLAGS += SRC=$(SRC) + +# Conditional is in place so a "make" from the top level will work on partial +# source heirarchies. +$(VARIANT) $(V9_VARIANT): FRC + if [ ! -d $@ ]; then \ + mkdir $@ ; \ + fi + cd $@; $(MAKE) $(MFLAGS) -f $(SRC)/Variant.mk RELEASE_VER="$(RELEASE_VER)" DESTDIR=$(DESTDIR) V9FLAGS="$(V9FLAGS)" VAR_DIR=$(VAR_DIR) CC=$(CC) CCC=$(CCC) $(TARG); + +FRC: diff --git a/usr/src/make_src/rules/dmake.mk b/usr/src/make_src/rules/dmake.mk new file mode 100644 index 0000000..7ca8548 --- /dev/null +++ b/usr/src/make_src/rules/dmake.mk @@ -0,0 +1,33 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1996 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)dmake.mk 1.8 06/12/12 +# + +AVO_DM_LIBS = $(LIBDM) +AVO_DMCONF_LIBS = $(LIBDMCONF) +AVO_DMRC_LIBS = $(LIBDMRC) +AVO_DMTHREAD_LIBS = $(LIBDMTHREAD) +AVO_PUBDMSI18N_LIBS = $(LIBPUBDMSI18N) +AVO_RX_LIBS = $(LIBRX) + diff --git a/usr/src/make_src/rules/i18n-install.mk b/usr/src/make_src/rules/i18n-install.mk new file mode 100644 index 0000000..06e90fb --- /dev/null +++ b/usr/src/make_src/rules/i18n-install.mk @@ -0,0 +1,73 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1997 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)i18n-install.mk 1.23 06/12/12 +# + +include $(TOP)/rules/master.mk + +# +# Included Makefile that installs i18n message catalogs. +# +# Before including this Makefile the following variables should be set: +# PACKAGE name of the package being installed +# replaced by PRODVER in order to install multiple pkgs in +# a single path. --emk 2/96 +# +# TEXTDOMAIN name of default textdomain used by gettext() calls +# APPPATH location to find the msg file +# + +PRODVER = usr + +LIB_DESTDIR = $(DESTDIR)/$(PRODVER)/lib +CAT_DESTDIR = $(LIB_DESTDIR)/locale/C/LC_MESSAGES +HELP_DIR = help +HELP_SYML_INST_DIR = $(LIB_DESTDIR) +HELP_SYML_PTS_TO_DIR = ./locale/C +LANG_DIR = $(LIB_DESTDIR)/local/C + +#i18n_install: $(CAT_DESTDIR) .WAIT msg_catalogs help_symlink +i18n_install: +i18n_gui_install: $(CAT_DESTDIR) .WAIT gui_msg_catalogs help_symlink + +$(CAT_DESTDIR): + $(INSTALL) -d $@ + +# +# Find the message catalog in the $VAriant dir +# install the files into the package's destination. +# + +msg_catalogs: FRC + cp $(APPPATH)/$(TEXTDOMAIN).msg $(CAT_DESTDIR) + +gui_msg_catalogs: FRC + cp $(APPPATH)/$(TEXTDOMAIN).po $(CAT_DESTDIR) + +help_symlink: FRC +# @ if [! -d $(LANG_DIR)/$(HELP_DIR) ]; then \ +# cd $(LANG_DIR); ln -s LC_MESSAGES $(HELP_DIR) \ +# fi \ + +FRC: diff --git a/usr/src/make_src/rules/import.mk b/usr/src/make_src/rules/import.mk new file mode 100644 index 0000000..6c3a6de --- /dev/null +++ b/usr/src/make_src/rules/import.mk @@ -0,0 +1,28 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1996 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)import.mk 1.25 06/12/12 +# +# @(#)import.mk 1.8 96/04/16 SMI + +VIDEO_VER = 1.0 diff --git a/usr/src/make_src/rules/install.mk b/usr/src/make_src/rules/install.mk new file mode 100644 index 0000000..aa28359 --- /dev/null +++ b/usr/src/make_src/rules/install.mk @@ -0,0 +1,240 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1998 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)install.mk 1.53 06/12/12 +# + +# +# This is an included Makefile that contains the standard +# install lines for a program. +# +# INCLUDE THIS ONLY AFTER INCLUDING $(TOP)/rules/master.mk +# +# Before including this Makefile the following variables should be set: +# PROG the name of the program +# PROG_DIR bin || etc, lowest level directory for executables +# LIB_DIR usually just lib; destination for libraries, +# non-localized bitmaps, etc. +# LICENSE_DIR_SRC where LICENSE_DIR will link to +# DESTDIR destination directory for the install +# PACKAGE name of the package containing the program +# +# PACKAGE is now being overridden by PRODVER for installation +# purposes since multiple packages are being installed +# into a single install path below PRODVER 2/96 --emk +# +# HELP_INFO optionally set to a list of .info files to install +# HELP_INFO is initially set in gui.Makefile +# RES_FILE optionally set name by which resource file is +# known to the app itself (e.g. XCodeManager). +# CDE_RES_FILE optionally set name of resource file for CDE guis +# (e.g. XCodeManager.cde). +# NCDE_RES_FILE optionally set name of resource file for motif guis +# PWI_FILE optionally set name of PWI configuration file for guis +# Installed in RES_DIR +# +# This install technique uses make's dependencies to decide whether +# or not to install something. If the installed file is more recent +# than the one in the source heirarchy, then no install will occur. +# +# The INST_PROG definition makes this install rule work for makefiles +# that build more than one program, e.g. several scripts that share +# the same source directory. To work, this install.Makefile must be +# included after the "all" target has been defined but before the +# rules used to build the programs to be installed. (see trans/scripts) +# +# For makefiles that build only one program, this install.Makefile can +# be included at the end, after the rules used to build the program. +# (see bin.cc.Makefile). + +# +# The references to PROG_DIR below must be $$ references because +# PROG_DIR is conditionally set in the CodeManager/etc/diff3_merge +# Makefile. But, if it is conditional, the implicit target for +# $(DESTDIR)/$(PROG_DIR) doesn't work. Make returns that it doesn't +# know how to build that target. +# +# I made changes to add PROG_DIR=<value> in all the makefiles which include +# install.mk. This is needed because of the assignment to +# PGK_DIR_PROG_DIR. SYML_DIR is still conditional and set according to +# to which target is being built. it would be nice to set PROG_DIR by +# default, but to do this, the reference in the PKG_DIR_PROG_DIR assignment +# must be re-done... LK +# + +PKG_DIR = $(DESTDIR)/$(PRODVER) +LOCALE_PATH = lib/locale/C +HELP_DIR = $(PKG_DIR)/$(LOCALE_PATH)/LC_MESSAGES +PWI_PATH = $(LOCALE_PATH)/pwi_config +PWI_DIR = $(PKG_DIR)/$(PWI_PATH) +LICENSE_DIR = $(DESTDIR)/license_dir +PKG_DIR_PROG_DIR = $(DESTDIR)/$(PRODVER)/$(PROG_DIR) +PKG_DIR_LIB_DIR = $(DESTDIR)/$(PRODVER)/$(LIB_DIR) +CDE_RES_DIR = $(DESTDIR)/$(PRODVER)/$(LOCALE_PATH)/app-defaults/CDE +NCDE_RES_DIR = $(DESTDIR)/$(PRODVER)/$(LOCALE_PATH)/app-defaults/non-CDE +INST_PROG = $(PROG:%=$(PKG_DIR_PROG_DIR)/%) +INST_LIB = $(LIBSS:%=$(PKG_DIR_LIB_DIR)/%) +# +# INST_HELP is the list of .info files to be installed +# +INST_HELP = $(HELP_INFO:%=$(HELP_DIR)/%) + +# +INST_SYMLINK = /bin/csh $(TOOLS_PATH)/inst_symlink + +# INSTALLING PERSISTENT PROCESSES: +# +# If the macro INST_PERSIST is set to TRUE, move a copy of $(PROG) out of +# the way into a unique name so it doesn't clobber the last version moved. +# +# A way to make this conditional in the individual Makefiles is to include +# something like this in the Makefile which needs to install a persistent +# process: +# +# INST_PERSIST = $(SWTEAM_PERSIST) +# +# Where SWTEAM_PERSIST is set in your .cshrc or .login to TRUE. This allows +# it to be turned off and on on a global scale, and still only apply to those +# executables which have INST_PERSIST set in their Makefiles. +# + +#install:: \ +# $(PKG_DIR_PROG_DIR) \ +# .WAIT \ +# $(PKG_DIR_LIB_DIR) \ +# .WAIT \ +# $(HELP_DIR) \ +# .WAIT \ +# $(PWI_DIR) \ +# .WAIT \ +# $(PWI_DIR)/$(PWI_FILE) \ +# .WAIT \ +# symlinks \ +# $(LICENSE_DIR) \ +# $(CDE_RES_DIR) \ +# $(NCDE_RES_DIR) \ +# .WAIT \ +# $(INST_PROG) \ +# $(INST_LIB) \ +# $(INST_HELP) \ +# $$(INST_ABOX_ABOX) \ +# $$(INST_ABOX_ADDR) \ +# $(CDE_RES_DIR)/$(RES_FILE) \ +# $(NCDE_RES_DIR)/$(RES_FILE) \ +# .WAIT \ +# post-install + +# +# Empty rule here; packages can add their own functionality. +# +post-install:: FRC + +# +# Number of earlier versions to save. +# +SAVE_NUM = 1 + +$(PKG_DIR_PROG_DIR)/%: % + @if [ "$(INST_PERSIST)" = "TRUE" -a -f $@ ]; then \ + while [ `ls $@.* | wc -l` -gt $(SAVE_NUM) ]; do \ + echo "rm -f `ls $@.* | head -1`";\ + rm -f `ls $@.* | head -1`;\ + done; \ + echo "mv -f $@ $@.`date +%m.%d.%H.%M`"; \ + mv -f $@ $@.`date +%m.%d.%H.%M`; \ + fi + echo "$(INSTALL) $< $@" + $(INSTALL) $< $@ + + +# +# Don't put the dependency upon $(PKG_DIR_PROG_DIR) on the +# $(PKG_DIR_PROG_DIR)/% target line because it causes the executables to be +# installed twice regardless of their relation to the current executable +# +$(PKG_DIR_PROG_DIR): + @if [ ! -d $@ ]; then \ + $(INSTALL) -d $@; \ + fi; \ + +$(PKG_DIR_LIB_DIR): + @if [ ! -d $@ ]; then \ + $(INSTALL) -d $@; \ + fi; \ + +# +# Install the help files listed in $(INST_HELP). Each of the files +# listed in $(INST_HELP) lives in directory $(HELP_DIR). +# +# Needs to be able to support HELP_INFO with values in current directory +# as well as info files from other directories. +# +$(HELP_DIR)/%.info: %.info + $(INSTALL) $< $@ + +$(HELP_DIR)/%.info: $(TOP)/libgui/%.info + $(INSTALL) $< $(HELP_DIR)/$(@F) + +$(HELP_DIR): + @if [ ! -d $(HELP_DIR) ]; then \ + $(INSTALL) -d $@; \ + fi + +$(PWI_DIR): + @if [ ! -d $(PWI_DIR) ]; then \ + $(INSTALL) -d $@; \ + fi + +# +# hack in license_dir link -- probably outta be in symlinks section +# +$(LICENSE_DIR): + echo "$(INST_SYMLINK) $(LICENSE_DIR_SRC) $(DESTDIR) license_dir" + $(INST_SYMLINK) $(LICENSE_DIR_SRC) $(DESTDIR) license_dir + +$(PWI_DIR)/$(PWI_FILE): $(SRC)/$(PWI_FILE) + @if [ "$(PWI_FILE)" != "" ]; then \ + $(INSTALL) -m 0444 $(SRC)/$(PWI_FILE) $@; \ + fi + +$(CDE_RES_DIR)/$(RES_FILE): $(CDE_RES_FILE) + @if [ "$(CDE_RES_FILE)" != "" ]; then \ + $(INSTALL) -m0444 $(CDE_RES_FILE) $(CDE_RES_DIR)/$(RES_FILE); \ + fi + +$(NCDE_RES_DIR)/$(RES_FILE): $(NCDE_RES_FILE) + @if [ "$(NCDE_RES_FILE)" != "" ]; then \ + $(INSTALL) -m0444 $(NCDE_RES_FILE) $(NCDE_RES_DIR)/$(RES_FILE); \ + fi + +$(CDE_RES_DIR): + @if [ "$(CDE_RES_FILE)" != "" ]; then \ + $(INSTALL) -d $@; \ + fi + +$(NCDE_RES_DIR): + @if [ "$(NCDE_RES_FILE)" != "" ]; then \ + $(INSTALL) -d $@; \ + fi + +FRC: diff --git a/usr/src/make_src/rules/intel-S2.mk b/usr/src/make_src/rules/intel-S2.mk new file mode 100644 index 0000000..daa77cc --- /dev/null +++ b/usr/src/make_src/rules/intel-S2.mk @@ -0,0 +1,60 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2004 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)intel-S2.mk 1.16 06/12/12 +# + +include $(TOP)/rules/solaris.mk + +# Please keep each list alphabetically sorted. + +# +# Make variables +# + +# +# Paths +# +TOOLS_PATH = $(TOP)/exe + +# +# Programs +# + +# +# Flags +# +CPPFLAGS += -DSUN5_0 -DSYSV -Dx86 + +# +# amd64-S2 Flags +# +amd64-S2 := V9FLAGS = -O -xarch=amd64 +amd64-S2 := VAR_DIR = /amd64 + +# +# This is temporary until both 32- and 64-bit stuff are to be compiled +# with the same compiler. +# +amd64-S2 := CC = $(CC64) +amd64-S2 := CCC = $(CCC64) diff --git a/usr/src/make_src/rules/l10n-install.mk b/usr/src/make_src/rules/l10n-install.mk new file mode 100644 index 0000000..9050cf2 --- /dev/null +++ b/usr/src/make_src/rules/l10n-install.mk @@ -0,0 +1,70 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1998 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)l10n-install.mk 1.7 06/12/12 +# + +# READ-THIS-PART: +# Since L10N_SRCS are derived sources files, the make target +# "make_l10n_install" script MUST be executed after a +# complete build of the integration workspace. The make_l10n_install +# scripts resides in the TOOLS_PATH directory. +# + +L10N_SCRIPT = /bin/csh $(TOOLS_PATH)/inst_l10n + + +# Before including this Makefile the following variables should be set: +# +# +# DESTDIR the destination workspace where the L10N_SRCS will +# be installed. +# SOURCE_WS the source workspace from which the files will be +# installed. +# L10N_SRCS sources that need to be installed in the above +# DESTDIR. +# L10N_SCRIPT the script that will install the files under +# sccs control in the destination directory +# workspace. +# TOOLS_PATH location for the L10N_SCRIPT +# +# + +ALL_USAGE = "Usage: make DESTDIR=<value> SOURCE_WS=<value> l10n_install" +CWD:sh = pwd + +l10n_install:: l10n_install_usage FRC + @$(L10N_SCRIPT) $(DESTDIR) $(SOURCE_WS) $(CWD) \ + $(L10N_SRCS) +FRC: + +l10n_install_usage: FRC + @if [ "$(DESTDIR)" = "" -o "$(SOURCE_WS)" = "" ]; then \ + echo $(ALL_USAGE); \ + exit 1; \ + fi; + @if [ "$(CWD)" = "" ]; then \ + echo $(ALL_USAGE); \ + exit 1; \ + fi +FRC: diff --git a/usr/src/make_src/rules/lib.mk b/usr/src/make_src/rules/lib.mk new file mode 100644 index 0000000..f38f9aa --- /dev/null +++ b/usr/src/make_src/rules/lib.mk @@ -0,0 +1,131 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2006 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)lib.mk 1.33 06/12/12 +# + +# +# This Makefile contains common rules for building libraries. +# It expects the following variables to be defined: +# +# LIBNAME the name of the library being built +# CCSRCS C++ source files +# CSRCS C source files +# BIGCSRCS C++ source files with .C suffix (so checkgettext isn't run) +# + +CCOBJS = $(CCSRCS:%.cc=%.o) +COBJS = $(CSRCS:%.c=%.o) +BIGCOBJS = $(BIGCSRCS:%.C=%.o) + +OBJS += $(CCOBJS) $(COBJS) $(BIGCOBJS) + +L10N_SRCS = $(LIBNAME)_srrcat.po messages.po + +# +# Is this '[d]make' connected to a terminal? +# +TTY :sh= if test -t 2; then echo true; else echo false; fi + +# +# This complicated set of commands determine if there are +# any .o files in the library that no longer belong there. +# If so, the library must be removed and rebuilt from scratch. +# If the old .o files are left in the library, then a program that +# references a routine in one of these .o files will still build +# until the library gets completely rebuilt, in which case it will +# no longer build. +# In addition, because $? macro is used in the command that builds +# this library, command dependency checking is disabled. Even if +# this command changes, the library won't be rebuilt. The library's +# list of dependencies appear in a separate command, which is subject +# to command dependency checking (echo to /dev/null), to ensure that +# the library rebuilt when its list of dependencies change. +# + +# XD_INCLS is defined in rules/motif-lib.mk and will +# be empty if not called from motif-lib.mk + +$(LIBNAME): $(OBJS) + @echo "Building $(LIBNAME)" > \ + `$(TTY) && test -t 0 && tty || echo /dev/null` + @echo $(OBJS) > /dev/null + @?ar t $(LIBNAME) | sed -e /__.SYMDEF/d | sort > ar.t.$$$$; \ + for i in $(OBJS); do \ + echo $$i; \ + done | sort | comm -23 ar.t.$$$$ - > extras.$$$$; \ + if [ -s extras.$$$$ ]; then \ + echo rm -f $(LIBNAME); \ + rm -f $(LIBNAME); \ + echo ar rv $(LIBNAME) $(OBJS); \ + ar rv $(LIBNAME) $(OBJS); \ + else \ + echo ar crv $(LIBNAME) $?; \ + ar crv $(LIBNAME) $?; \ + fi; \ + rm -f ar.t.$$$$ extras.$$$$ + @if [ -f $(RANLIB) ]; then \ + echo $(RANLIB) $(LIBNAME); \ + $(RANLIB) $(LIBNAME); \ + fi + +#all install:: $(LIBNAME) catalogs +###all install:: $(LIBNAME) +all: $(LIBNAME) + +install: $(LIBNAME) + +#all:: $(LIBNAME) +# +#install:: all catalogs + +clean:: + $(RM) $(OBJS) $(LIBNAME) $(CLEANFILES) $(CATALOG) + +# temporarily install catalogs here - will move to l10n-install later +# when mesg files are versioned +LIB_DESTDIR = $(DESTDIR)/$(PRODVER)/lib +CAT_DESTDIR = $(LIB_DESTDIR)/locale/C/LC_MESSAGES + +#also temporary, until I find a variant specific place to find this tool +COMPMSG = + +catalogs:: + $(GENMSG) -l $(SRC)/genmsg.project -o $(MSG_FILE) `find $(I18N_DIRS) \( -name '*.cc' -o -name '*.c' -o -name '*.y' -o -name '*.h' \) -print | grep -v /SCCS/` + rm -f *.cc.new +# @ if [ -f $(SRC)/$(MSG_FILE) ]; then \ +# echo "running compmsg on $(MSG_FILE)"; \ +# $(COMPMSG) -n $(SRC)/$(MSG_FILE) $(MSG_FILE); \ +# fi + + +# @ if [ ! -d $(CAT_DESTDIR) ]; then \ +# $(INSTALL) -d $@ \ +# fi +# cp $(MSG_FILE) $(CAT_DESTDIR) + +FRC: + +include $(TOP)/rules/l10n-install.mk + +include $(TOP)/rules/computed-options.mk diff --git a/usr/src/make_src/rules/libraries.mk b/usr/src/make_src/rules/libraries.mk new file mode 100644 index 0000000..b2d4c46 --- /dev/null +++ b/usr/src/make_src/rules/libraries.mk @@ -0,0 +1,62 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1996 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)libraries.mk 1.9 06/12/12 +# + +# This file defines make variables for libraries libraries which +# are provided in both debuggable (-g) and optimized (-O) forms. +# +# See $(TOP)/exe/build-debuglib, rules/{singleton, motif-app}.mk, + +# Please keep both of the following lists alphabetized. + +# These libraries exist in both -g and non-g forms. +# +LIBDM = -ldm$(DEBUGLIB) +LIBDMCONF = -ldmconf$(DEBUGLIB) +LIBDMRC = -ldmrc$(DEBUGLIB) +LIBDMTHREAD = -ldmthread$(DEBUGLIB) +LIBLICMOTIF = -llicmotif$(DEBUGLIB) +LIBLICTXT = -llictxt$(DEBUGLIB) +LIBMGUI = -lmgui$(DEBUGLIB) +LIBPSDEFS = -lpsdefs$(DEBUGLIB) +LIBPSWIDGETS = -lPsWidgets$(DEBUGLIB) +LIBPSUTILS = -lPsUtils$(DEBUGLIB) +LIBPUBDMSI18N = -lpubdmsi18n$(DEBUGLIB) +LIBPWICLIENT = -lpwiclient$(DEBUGLIB) +LIBPWITOOLBOX = -lpwitoolbox$(DEBUGLIB) +LIBRX = -lrx$(DEBUGLIB) +LIBUTIL = -lutil$(DEBUGLIB) +LIBXDCLASS = -lxdclass$(DEBUGLIB) + +# These libraries exist only in non-g form. That does *not* mean that they are +# not *compiled* without -g., only that they don't exist in a libXXX-g.a form. +# +LIBLOG = -llog +LIBMSSPKG = -lmsspkg +LIBPATHUTILS = -lpathutils +LIBPSCCHART = -lpscchart +LIBPSCHART = -lpschart +LIBTIMELINE = -ltimeline +LIBXPM = $(BSTATIC) -lXpm $(BDYNAMIC) diff --git a/usr/src/make_src/rules/master.mk b/usr/src/make_src/rules/master.mk new file mode 100644 index 0000000..eae7f19 --- /dev/null +++ b/usr/src/make_src/rules/master.mk @@ -0,0 +1,109 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2006 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)master.mk 1.142 06/12/12 +# + +include $(TOP)/rules/variant.mk + +.KEEP_STATE_FILE: .make.state_${VARIANT} + +include $(TOP)/rules/$(VARIANT).mk +#include $(TOP)/lib/Lib.mk + +#include $(TOP)/rules/libraries.mk + +DESTDIR = + +# +# Default target to build if no target is specified. +# All Makefiles should either define an "all" target, or set +# DEFAULT_TARGET to the default target +# +DEFAULT_TARGET = all +default_target: $$(DEFAULT_TARGET) + +#Tools needed for i18n +GENMSG = genmsg + +##----------------------------------------------------------------- + +CHMOD = /bin/chmod +LEX = /usr/ccs/bin/lex +MV = /bin/mv +RANLIB = /bin/ranlib +YACC = /usr/ccs/bin/yacc + +##----------------------------------------------------------------- + +CPPFLAGS += -DINTER \ + -I$(TOP)/include + +LINTFLAGS += -buxz + + +#LIB += $(LIBCMM) $(LIBSCCS) $(LIBUTIL) -lw + +##----------------------------------------------------------------- +## Rules for building derived files from $(SRC) +## +## Run check_catgets before compiling to see if there are any strings that need +## i18n attention. +## +## Use .C extension for derrived source files (e.g., yacc output) and on any +## others on which you don't want to first run check_catgets. + +%.o: $(SRC)/%.cc + $(COMPILE.cc) $(OUTPUT_OPTION) $< + +%.o:$(SRC)/%.C + $(COMPILE.cc) $(OUTPUT_OPTION) $< + +%.o:$(SRC)/%.c + $(COMPILE.c) $(OUTPUT_OPTION) $< + +### Generate preprocessor output +CPP.c = $(CC) $(CFLAGS) $(CINCLS) -E +CPP.cc = $(CCC) $(CCFLAGS) $(CCINCLS) -E + +%.E: $(SRC)/%.cc + $(CPP.cc) $(CPPFLAGS) $(SRC)/$(@:%.E=%.cc) > $*.E + +%.E:$(SRC)/%.C + $(CPP.cc) $(CPPFLAGS) $(SRC)/$(@:%.E=%.C) > $*.E + +%.E:$(SRC)/%.c + $(CPP.c) $(CPPFLAGS) $(SRC)/$(@:%.E=%.c) > $*.E + +### Lex and yacc +%.cc: $(SRC)/%.y + $(RM) $*.cc $*.h + $(YACC) $(YFLAGS) $(SRC)/$*.y + $(MV) y.tab.c $*.cc + $(MV) y.tab.h $*.h + $(CHMOD) a-w $*.cc $*.h + +%.C: $(SRC)/%.l + $(RM) $*.C + $(LEX) $(LEXOPT) $(SRC)/$*.l > $*.C + $(CHMOD) a-w $@ diff --git a/usr/src/make_src/rules/recurse.mk b/usr/src/make_src/rules/recurse.mk new file mode 100644 index 0000000..d0963ad --- /dev/null +++ b/usr/src/make_src/rules/recurse.mk @@ -0,0 +1,58 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2002 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)recurse.mk 1.15 06/12/12 +# + +# Include this Makefile in directories which simply cd down a level +# and continue the build. +# +# The SUBDIRS macro must be set before including recurse.Makefile +# The OTHER_TARGS macro can be set to process targets other than +# directories. + +all := TARG = all +install := TARG = install +clean := TARG = clean +l10n_install := TARG = l10n_install +i18n_install := TARG = i18n_install + +# Are we _really_ using OTHER_TARGS??? +#all install clean l10n_install: $(SUBDIRS) $(OTHER_TARGS) +all install clean l10n_install i18n_install:: $(SUBDIRS) $(OTHER_TARGS) + +# Conditional is in place so a "make" from the top level will work on partial +# source heirarchies. +# +# "MAKEFILE" can be set by makes driving this one to cause a particular +# makefile to be used. E.g., MAKEFILE=-f foo.mk +# +$(SUBDIRS): FRC + @if [ -d $@ ]; then \ + echo "cd $@; $(MAKE) $(MAKEFILE) $(MFLAGS) CC=$(CC) CCC=$(CCC) DESTDIR=$(DESTDIR) $(TARG)"; \ + cd $@; $(MAKE) $(MAKEFILE) $(MFLAGS) CC=$(CC) CCC=$(CCC) DESTDIR=$(DESTDIR) $(TARG); \ + fi + +FRC: + + diff --git a/usr/src/make_src/rules/singleton.mk b/usr/src/make_src/rules/singleton.mk new file mode 100644 index 0000000..3dda8b6 --- /dev/null +++ b/usr/src/make_src/rules/singleton.mk @@ -0,0 +1,63 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1996 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)singleton.mk 1.64 06/12/12 +# + +# This is an included Makefile for a program that consists of a single C++ +# source file and is built with the standard Avocet library. + +# Before including this Makefile the following variables should be set: +# TOP the path from the including Makefile to this one +# PROG the name of the program +# DESTDIR destination directory for the install +# +# All other information is derived from PROG. + +SRCS = $(PROG).cc $(MORE_SRC) +OBJS = $(SRCS:%.cc=%.o) + +LIB += $(LIBCLI) $(LIBLICTXT) -lintl -lm + +##----------------------------------------------------------------- + +all install:: $(PROG) + +include $(TOP)/rules/verstring.mk + +$(PROG): $(OBJS) + @echo "#pragma ident \"@(#)$(VERSTRING1)\"" > timestamp.c + @echo $(VERSTRING2) >> timestamp.c + cc -w -c timestamp.c + $(CCC) $(CCFLAGS) $(LDFLAGS) timestamp.o -o $@ \ + $(OBJS) $(LIB) $(I18LIB) $(LDLIB) + /bin/sh $(TOP)/exe/sanity-check.sh $(TOP) $(PROG) + +clean: + $(RM) $(OBJS) $(PROG) + +PROG_DIR = bin + +include $(TOP)/rules/install.mk + +include $(TOP)/rules/computed-options.mk diff --git a/usr/src/make_src/rules/solaris.mk b/usr/src/make_src/rules/solaris.mk new file mode 100644 index 0000000..d5ef1a4 --- /dev/null +++ b/usr/src/make_src/rules/solaris.mk @@ -0,0 +1,55 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 2006 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)solaris.mk 1.19 06/12/12 +# + +# Please keep each list alphabetically sorted. + +# +# Make variables +# +OPENWINHOME = /usr/openwin + +# +# Paths +# +#LD_LIBRARY_PATH = /usr/dt/lib:$(OPENWINHOME)/lib +# +SWHOME = + +# +# Programs +# +#CC = cc +INSTALL = /usr/ucb/install +RPCGEN = /usr/5bin/rpcgen + +# +# Flags +# +CPPFLAGS += -compat=4 +I18LIB = -lintl +LDFLAGS += -compat=4 -staticlib=libC +LEXOPT = -tw +MOTIF_LD_RUN_PATH = /usr/dt/lib:/usr/openwin/lib diff --git a/usr/src/make_src/rules/sparc-S2.mk b/usr/src/make_src/rules/sparc-S2.mk new file mode 100644 index 0000000..d1fb437 --- /dev/null +++ b/usr/src/make_src/rules/sparc-S2.mk @@ -0,0 +1,61 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1998 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)sparc-S2.mk 1.13 06/12/12 +# + +include $(TOP)/rules/solaris.mk + +# Please keep each list alphabetically sorted. + +# +# Make variables +# + +# +# Paths +# +TOOLS_PATH = $(TOP)/exe + +# +# Programs +# + +# +# Flags +# +CPPFLAGS += -DSUN5_0 -DSYSV + +# +# v9 Flags +# +sparcv9 := V9FLAGS = -xarch=v9 +sparcv9 := VAR_DIR = /sparcv9 + +# +# This is temporary until both 32- and 64-bit stuff are to be compiled +# with the same compiler. Currently 32-bit should use 4.2 compiler +# but 64-bit should use 5.0 compiler. +# +sparcv9 := CC = $(CC64) +sparcv9 := CCC = $(CCC64) diff --git a/usr/src/make_src/rules/variant.mk b/usr/src/make_src/rules/variant.mk new file mode 100644 index 0000000..d5fa217 --- /dev/null +++ b/usr/src/make_src/rules/variant.mk @@ -0,0 +1,45 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright 1996 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# @(#)variant.mk 1.2 06/12/12 +# +VARIANT:sh=if [ `uname -r | cut -d . -f1` = 4 ] ; \ +then echo sparc-S1 ; \ +elif [ `uname -s` = HP-UX ] ; \ +then echo hp-ux ; \ +else if [ `uname -p` = sparc ] ; \ + then \ + echo sparc-S2 ; \ + elif [ `uname -p` = i386 ] ; \ + then \ + echo intel-S2 ; \ + elif [ `uname -p` = ppc ] ; \ + then \ + echo ppc-S2 ; \ + else \ + echo "UNKNOWN OS" ; \ + exit 1 ; \ + fi ; \ +fi + + |