1 #
   2 # CDDL HEADER START
   3 #
   4 # The contents of this file are subject to the terms of the
   5 # Common Development and Distribution License (the "License").
   6 # You may not use this file except in compliance with the License.
   7 #
   8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9 # or http://www.opensolaris.org/os/licensing.
  10 # See the License for the specific language governing permissions
  11 # and limitations under the License.
  12 #
  13 # When distributing Covered Code, include this CDDL HEADER in each
  14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15 # If applicable, add the following below this CDDL HEADER, with the
  16 # fields enclosed by brackets "[]" replaced with your own identifying
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 # Copyright 1993 Sun Microsystems, Inc. All rights reserved.
  22 # Use is subject to license terms.
  23 #
  24 
  25 SUFFIXES = .o .c .c~ .cc .cc~ .s .s~ .S .S~ .ln .f .f~ .F .F~ .l .l~ \
  26         .mod .mod~ .sym .def .def~ .p .p~ .r .r~ .y .y~ .h .h~ .sh .sh~ \
  27         .cps .cps~
  28 .SUFFIXES: $(SUFFIXES)
  29 
  30 # OUTPUT_OPTION should be defined to "-o $@" when
  31 # the default rules are used for non-local files.
  32 OUTPUT_OPTION=
  33 
  34 #       C language section.
  35 CC=cc
  36 CFLAGS=
  37 CPPFLAGS=
  38 LINT=lint
  39 LINTFLAGS=
  40 COMPILE.c=$(CC) $(CFLAGS) $(CPPFLAGS) -target $(TARGET_ARCH:-%=%) -c
  41 LINK.c=$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -target $(TARGET_ARCH:-%=%)
  42 LINT.c=$(LINT) $(LINTFLAGS) $(CPPFLAGS) $(TARGET_ARCH)
  43 .c:
  44         $(LINK.c) -o $@ $< $(LDLIBS)
  45 .c.ln:
  46         $(LINT.c) $(OUTPUT_OPTION) -i $<
  47 .c.o:
  48         $(COMPILE.c) $(OUTPUT_OPTION) $<
  49 .c.a:
  50         $(COMPILE.c) -o $% $<
  51         $(AR) $(ARFLAGS) $@ $%
  52         $(RM) $%
  53 
  54 #       C language section. yacc.
  55 YACC=yacc
  56 YFLAGS=
  57 YACC.y=$(YACC) $(YFLAGS)
  58 .y:
  59         $(YACC.y) $<
  60         $(LINK.c) -o $@ y.tab.c $(LDLIBS)
  61         $(RM) y.tab.c
  62 .y.c:
  63         $(YACC.y) $<
  64         mv y.tab.c $@
  65 .y.ln:
  66         $(YACC.y) $<
  67         $(LINT.c) -o $@ -i y.tab.c
  68         $(RM) y.tab.c
  69 .y.o:
  70         $(YACC.y) $<
  71         $(COMPILE.c) -o $@ y.tab.c
  72         $(RM) y.tab.c
  73 
  74 #       C language section. lex.
  75 LEX=lex
  76 LFLAGS=
  77 LEX.l=$(LEX) $(LFLAGS) -t
  78 .l:
  79         $(RM) $*.c
  80         $(LEX.l) $< > $*.c
  81         $(LINK.c) -o $@ $*.c -ll $(LDLIBS)
  82         $(RM) $*.c
  83 .l.c :
  84         $(RM) $@
  85         $(LEX.l) $< > $@
  86 .l.ln:
  87         $(RM) $*.c
  88         $(LEX.l) $< > $*.c
  89         $(LINT.c) -o $@ -i $*.c
  90         $(RM) $*.c
  91 .l.o:
  92         $(RM) $*.c
  93         $(LEX.l) $< > $*.c
  94         $(COMPILE.c) -o $@ $*.c
  95         $(RM) $*.c
  96 
  97 #       C++ language section.
  98 CCC=CC
  99 CCFLAGS=
 100 COMPILE.cc=$(CCC) $(CCFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
 101 LINK.cc=$(CCC) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 102 .cc:
 103         $(LINK.cc) -o $@ $< $(LDLIBS)
 104 .cc.o:
 105         $(COMPILE.cc) $(OUTPUT_OPTION) $<
 106 .cc.a:
 107         $(COMPILE.cc) -o $% $<
 108         $(AR) $(ARFLAGS) $@ $%
 109         $(RM) $%
 110 
 111 #       FORTRAN section.
 112 FC=f77
 113 FFLAGS=
 114 COMPILE.f=$(FC) $(FFLAGS) $(TARGET_ARCH) -c
 115 LINK.f=$(FC) $(FFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 116 COMPILE.F=$(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
 117 LINK.F=$(FC) $(FFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 118 .f:
 119         $(LINK.f) -o $@ $< $(LDLIBS)
 120 .f.o:
 121         $(COMPILE.f) $(OUTPUT_OPTION) $<
 122 .f.a:
 123         $(COMPILE.f) -o $% $<
 124         $(AR) $(ARFLAGS) $@ $%
 125         $(RM) $%
 126 .F:
 127         $(LINK.F) -o $@ $< $(LDLIBS)
 128 .F.o:
 129         $(COMPILE.F) $(OUTPUT_OPTION) $<
 130 .F.a:
 131         $(COMPILE.F) -o $% $<
 132         $(AR) $(ARFLAGS) $@ $%
 133         $(RM) $%
 134 
 135 #       FORTRAN section. ratfor.
 136 RFLAGS=
 137 COMPILE.r=$(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -c
 138 LINK.r=$(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 139 .r:
 140         $(LINK.r) -o $@ $< $(LDLIBS)
 141 .r.o:
 142         $(COMPILE.r) $(OUTPUT_OPTION) $<
 143 .r.a:
 144         $(COMPILE.r) -o $% $<
 145         $(AR) $(ARFLAGS) $@ $%
 146         $(RM) $%
 147 
 148 #       Modula-2 section.
 149 M2C=m2c
 150 M2FLAGS=
 151 MODFLAGS=
 152 DEFFLAGS=
 153 COMPILE.def=$(M2C) $(M2FLAGS) $(DEFFLAGS) $(TARGET_ARCH)
 154 COMPILE.mod=$(M2C) $(M2FLAGS) $(MODFLAGS) $(TARGET_ARCH)
 155 .def.sym:
 156         $(COMPILE.def) -o $@ $<
 157 .mod:
 158         $(COMPILE.mod) -o $@ -e $@ $<
 159 .mod.o:
 160         $(COMPILE.mod) -o $@ $<
 161 .mod.a:
 162         $(COMPILE.mod) -o $% $<
 163         $(AR) $(ARFLAGS) $@ $%
 164         $(RM) $%
 165 
 166 #       Pascal section.
 167 PC=pc
 168 PFLAGS=
 169 COMPILE.p=$(PC) $(PFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
 170 LINK.p=$(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
 171 .p:
 172         $(LINK.p) -o $@ $< $(LDLIBS)
 173 .p.o:
 174         $(COMPILE.p) $(OUTPUT_OPTION) $<
 175 .p.a:
 176         $(COMPILE.p) -o $% $<
 177         $(AR) $(ARFLAGS) $@ $%
 178         $(RM) $%
 179 
 180 #       Assembly section.
 181 AS=as
 182 ASFLAGS=
 183 COMPILE.s=$(AS) $(ASFLAGS) $(TARGET_MACH)
 184 COMPILE.S=$(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
 185 .s.o:
 186         $(COMPILE.s) -o $@ $<
 187 .s.a:
 188         $(COMPILE.s) -o $% $<
 189         $(AR) $(ARFLAGS) $@ $%
 190         $(RM) $%
 191 .S.o:
 192         $(COMPILE.S) -o $@ $<
 193 .S.a:
 194         $(COMPILE.S) -o $% $<
 195         $(AR) $(ARFLAGS) $@ $%
 196         $(RM) $%
 197 
 198 #       Shell section.
 199 .sh:
 200         $(RM) $@
 201         cat $< > $@
 202         chmod +x $@
 203 
 204 #       NeWS section
 205 CPS=cps
 206 CPSFLAGS=
 207 .cps.h:
 208         $(CPS) $(CPSFLAGS) $*.cps
 209 
 210 #       Miscellaneous section.
 211 LD=ld
 212 LDFLAGS=
 213 LDLIBS=
 214 MAKE=make
 215 RM=rm -f
 216 AR=ar
 217 ARFLAGS=rv
 218 GET=/usr/sccs/get
 219 GFLAGS=
 220 
 221 markfile.o:     markfile
 222         echo "static char _sccsid[] = \"`grep @'(#)' markfile`\";" > markfile.c
 223         cc -c markfile.c
 224         $(RM) markfile.c
 225 
 226 SCCSFLAGS=
 227 SCCSGETFLAGS=-s
 228 .SCCS_GET:
 229         sccs $(SCCSFLAGS) get $(SCCSGETFLAGS) $@ -G$@