summaryrefslogtreecommitdiff
path: root/usr/src/make_src/rules/master.mk
blob: eae7f19587da9306f782d0731aefcfe5bcaabc39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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 $@