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 2003 Sun Microsystems, Inc. All rights reserved.
  22 # Use is subject to license terms.
  23 #
  24 
  25 SUFFIXES = .o .c .c~ .cc .cc~ .y .y~ .l .l~ .s .s~ .sh .sh~ .S .S~ .i .ln \
  26         .h .h~ .f .f~ .for .for~ .F .F~ .f90 .f90~ .ftn .ftn~ .mod .mod~ \
  27         .sym .def .def~ .p .p~ .r .r~ .cps .cps~ .C .C~ .Y .Y~ .L .L~ \
  28         .java .java~ .class
  29 
  30 .SUFFIXES: $(SUFFIXES)
  31 
  32 # OUTPUT_OPTION should be defined to "-o $@" when
  33 # the default rules are used for non-local files.
  34 OUTPUT_OPTION=
  35 
  36 #       C language section.
  37 CC=cc
  38 CFLAGS=
  39 CPPFLAGS=
  40 LINT=lint
  41 LINTFLAGS=
  42 COMPILE.c=$(CC) $(CFLAGS) $(CPPFLAGS) -c
  43 LINK.c=$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) 
  44 LINT.c=$(LINT) $(LINTFLAGS) $(CPPFLAGS) 
  45 .c:
  46         $(LINK.c) -o $@ $< $(LDLIBS)
  47 .c~:
  48         $(GET) $(GFLAGS) -p $< > $*.c
  49         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $*.c
  50 .c.o:
  51         $(COMPILE.c) $(OUTPUT_OPTION) $<
  52 .c~.o:
  53         $(GET) $(GFLAGS) -p $< > $*.c
  54         $(CC) $(CFLAGS) -c  $*.c
  55 .c.i:
  56         $(CC) $(CFLAGS) $(CPPFLAGS) -P $<
  57 .c~.i:
  58         $(GET) $(GFLAGS) -p $< > $*.c
  59         $(CC) $(CFLAGS) $(CPPFLAGS) -P $*.c
  60 .c.ln:
  61         $(LINT.c) $(OUTPUT_OPTION) -c $<
  62 .c~.ln:
  63         $(GET) $(GFLAGS) -p $< > $*.c
  64         $(LINT.c) $(OUTPUT_OPTION) -c $*.c
  65 .c.a:
  66         $(COMPILE.c) -o $% $<
  67         $(AR) $(ARFLAGS) $@ $%
  68         $(RM) $%
  69 .c~.a:
  70         $(GET) $(GFLAGS) -p $< > $*.c
  71         $(COMPILE.c) -o $% $*.c
  72         $(AR) $(ARFLAGS) $@ $%
  73         $(RM) $%
  74 
  75 #       C language section. yacc.
  76 YACC=yacc
  77 YFLAGS=
  78 YACC.y=$(YACC) $(YFLAGS)
  79 .y:
  80         $(YACC.y) $<
  81         $(LINK.c) -o $@ y.tab.c $(LDLIBS)
  82         $(RM) y.tab.c
  83 .y~:
  84         $(GET) $(GFLAGS) -p $< > $*.y
  85         $(YACC) $(YFLAGS) $*.y
  86         $(COMPILE.c) -o $@ y.tab.c
  87         $(RM) y.tab.c
  88 
  89 .y.c:
  90         $(YACC.y) $<
  91         mv y.tab.c $@
  92 .y~.c:
  93         $(GET) $(GFLAGS) -p $< > $*.y
  94         $(YACC) $(YFLAGS) $*.y
  95         mv y.tab.c $@
  96 .y.ln:
  97         $(YACC.y) $<
  98         $(LINT.c) -o $@ -i y.tab.c
  99         $(RM) y.tab.c
 100 .y~.ln:
 101         $(GET) $(GFLAGS) -p $< > $*.y
 102         $(YACC.y) $*.y
 103         $(LINT.c) -o $@ -i y.tab.c
 104         $(RM) y.tab.c
 105 .y.o:
 106         $(YACC.y) $<
 107         $(COMPILE.c) -o $@ y.tab.c
 108         $(RM) y.tab.c
 109 .y~.o:
 110         $(GET) $(GFLAGS) -p $< > $*.y
 111         $(YACC) $(YFLAGS) $*.y
 112         $(CC) $(CFLAGS) -c y.tab.c
 113         rm -f y.tab.c
 114         mv y.tab.o $@
 115 
 116 #       C language section. lex.
 117 LEX=lex
 118 LFLAGS=
 119 LEX.l=$(LEX) $(LFLAGS) -t
 120 .l:
 121         $(RM) $*.c
 122         $(LEX.l) $< > $*.c
 123         $(LINK.c) -o $@ $*.c -ll $(LDLIBS)
 124         $(RM) $*.c
 125 .l~:
 126         $(GET) $(GFLAGS) -p $< > $*.l
 127         $(LEX) $(LFLAGS) $*.l
 128         $(CC) $(CFLAGS) -c lex.yy.c
 129         rm -f lex.yy.c
 130         mv lex.yy.c $@
 131 
 132 .l.c :
 133         $(RM) $@
 134         $(LEX.l) $< > $@
 135 .l~.c:
 136         $(GET) $(GFLAGS) -p $< > $*.l
 137         $(LEX) $(LFLAGS) $*.l
 138         mv lex.yy.c $@
 139 .l.ln:
 140         $(RM) $*.c
 141         $(LEX.l) $< > $*.c
 142         $(LINT.c) -o $@ -i $*.c
 143         $(RM) $*.c
 144 .l~.ln:
 145         $(GET) $(GFLAGS) -p $< > $*.l
 146         $(RM) $*.c
 147         $(LEX.l) $*.l > $*.c
 148         $(LINT.c) -o $@ -i $*.c
 149         $(RM) $*.c
 150 .l.o:
 151         $(RM) $*.c
 152         $(LEX.l) $< > $*.c
 153         $(COMPILE.c) -o $@ $*.c
 154         $(RM) $*.c
 155 .l~.o:
 156         $(GET) $(GFLAGS) -p $< > $*.l
 157         $(LEX) $(LFLAGS) $*.l
 158         $(CC) $(CFLAGS) -c lex.yy.c
 159         rm -f lex.yy.c
 160         mv lex.yy.c $@
 161 
 162 #       C++ language section.
 163 CCC=CC
 164 CCFLAGS=
 165 COMPILE.cc=$(CCC) $(CCFLAGS) $(CPPFLAGS)  -c
 166 LINK.cc=$(CCC) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) 
 167 COMPILE.C=$(CCC) $(CCFLAGS) $(CPPFLAGS)  -c
 168 LINK.C=$(CCC) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) 
 169 .cc:
 170         $(LINK.cc) -o $@ $< $(LDLIBS)
 171 .cc~:
 172         $(GET) $(GFLAGS) -p $< > $*.cc
 173         $(LINK.cc) -o $@ $*.cc $(LDLIBS)
 174 .cc.o:
 175         $(COMPILE.cc) $(OUTPUT_OPTION) $<
 176 .cc~.o:
 177         $(GET) $(GFLAGS) -p $< > $*.cc
 178         $(COMPILE.cc) $(OUTPUT_OPTION) $*.cc
 179 .cc.i:
 180         $(CCC) $(CCFLAGS) $(CPPFLAGS) -P $<
 181 .cc~.i:
 182         $(GET) $(GFLAGS) -p $< > $*.cc
 183         $(CCC) $(CCFLAGS) $(CPPFLAGS) -P $*.cc
 184 .cc.a:
 185         $(COMPILE.cc) -o $% $<
 186         $(AR) $(ARFLAGS) $@ $%
 187         $(RM) $%
 188 .cc~.a:
 189         $(GET) $(GFLAGS) -p $< > $*.cc
 190         $(COMPILE.cc) -o $% $*.cc
 191         $(AR) $(ARFLAGS) $@ $%
 192         $(RM) $%
 193 
 194 .C:
 195         $(LINK.C) -o $@ $< $(LDLIBS)
 196 .C~:
 197         $(GET) $(GFLAGS) -p $< > $*.C
 198         $(LINK.C) -o $@ $*.C $(LDLIBS)
 199 .C.o:
 200         $(COMPILE.C) $(OUTPUT_OPTION) $<
 201 .C~.o:
 202         $(GET) $(GFLAGS) -p $< > $*.C
 203         $(COMPILE.C) $(OUTPUT_OPTION) $*.C
 204 .C.i:
 205         $(CCC) $(CCFLAGS) $(CPPFLAGS) -P $<
 206 .C~.i:
 207         $(GET) $(GFLAGS) -p $< > $*.C
 208         $(CCC) $(CCFLAGS) $(CPPFLAGS) -P  $*.C
 209 .C.a:
 210         $(COMPILE.C) -o $% $<
 211         $(AR) $(ARFLAGS) $@ $%
 212         $(RM) $%
 213 .C~.a:
 214         $(GET) $(GFLAGS) -p $< > $*.C
 215         $(COMPILE.C) -o $% $*.C
 216         $(AR) $(ARFLAGS) $@ $%
 217         $(RM) $%
 218 
 219 #       FORTRAN section.
 220 FC=f77
 221 FFLAGS=
 222 COMPILE.f=$(FC) $(FFLAGS)  -c
 223 LINK.f=$(FC) $(FFLAGS) $(LDFLAGS) 
 224 COMPILE.F=$(FC) $(FFLAGS) $(CPPFLAGS)  -c
 225 LINK.F=$(FC) $(FFLAGS) $(CPPFLAGS) $(LDFLAGS) 
 226 .f:
 227         $(LINK.f) -o $@ $< $(LDLIBS)
 228 .f~:
 229         $(GET) $(GFLAGS) -p $< > $*.f
 230         $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $*.f
 231 .f.o:
 232         $(COMPILE.f) $(OUTPUT_OPTION) $<
 233 .f~.o:
 234         $(GET) $(GFLAGS) -p $< > $*.f
 235         $(FC) $(FFLAGS) -c  $*.f
 236 .f.a:
 237         $(COMPILE.f) -o $% $<
 238         $(AR) $(ARFLAGS) $@ $%
 239         $(RM) $%
 240 .f~.a:
 241         $(GET) $(GFLAGS) -p $< > $*.f
 242         $(COMPILE.f) -o $% $*.f
 243         $(AR) $(ARFLAGS) $@ $%
 244         $(RM) $%
 245 .for:
 246         $(LINK.f) -o $@ $< $(LDLIBS)
 247 .for~:
 248         $(GET) $(GFLAGS) -p $< > $*.for
 249         $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $*.for
 250 .for.o:
 251         $(COMPILE.f) $(OUTPUT_OPTION) $<
 252 .for~.o:
 253         $(GET) $(GFLAGS) -p $< > $*.for
 254         $(FC) $(FFLAGS) -c  $*.for
 255 .for.a:
 256         $(COMPILE.f) -o $% $<
 257         $(AR) $(ARFLAGS) $@ $%
 258         $(RM) $%
 259 .for~.a:
 260         $(GET) $(GFLAGS) -p $< > $*.for
 261         $(COMPILE.f) -o $% $*.for
 262         $(AR) $(ARFLAGS) $@ $%
 263         $(RM) $%
 264 .F:
 265         $(LINK.F) -o $@ $< $(LDLIBS)
 266 .F~:
 267         $(GET) $(GFLAGS) -p $< > $*.F
 268         $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $*.F
 269 .F.o:
 270         $(COMPILE.F) $(OUTPUT_OPTION) $<
 271 .F~.o:
 272         $(GET) $(GFLAGS) -p $< > $*.F
 273         $(FC) $(FFLAGS) -c  $*.F
 274 .F.a:
 275         $(COMPILE.F) -o $% $<
 276         $(AR) $(ARFLAGS) $@ $%
 277         $(RM) $%
 278 .F~.a:
 279         $(GET) $(GFLAGS) -p $< > $*.F
 280         $(COMPILE.F) -o $% $*.F
 281         $(AR) $(ARFLAGS) $@ $%
 282         $(RM) $%
 283 
 284 #       FORTRAN section. ratfor.
 285 RFLAGS=
 286 COMPILE.r=$(FC) $(FFLAGS) $(RFLAGS)  -c
 287 LINK.r=$(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS) 
 288 .r:
 289         $(LINK.r) -o $@ $< $(LDLIBS)
 290 .r~:
 291         $(GET) $(GFLAGS) -p $< > $*.r
 292         $(LINK.r) -o $@ $*.r $(LDLIBS)
 293 .r.o:
 294         $(COMPILE.r) $(OUTPUT_OPTION) $<
 295 .r~.o:
 296         $(GET) $(GFLAGS) -p $< > $*.r
 297         $(COMPILE.r) $(OUTPUT_OPTION) $*.r
 298 .r.a:
 299         $(COMPILE.r) -o $% $<
 300         $(AR) $(ARFLAGS) $@ $%
 301         $(RM) $%
 302 .r~.a:
 303         $(GET) $(GFLAGS) -p $< > $*.r
 304         $(COMPILE.r) -o $% $*.r
 305         $(AR) $(ARFLAGS) $@ $%
 306         $(RM) $%
 307 
 308 #       FORTRAN 90 section.
 309 F90C=f90
 310 F90FLAGS=
 311 COMPILE.f90=$(F90C) $(F90FLAGS) -c
 312 LINK.f90=$(F90C) $(F90FLAGS) $(LDFLAGS)
 313 COMPILE.ftn=$(F90C) $(F90FLAGS) -c
 314 LINK.ftn=$(F90C) $(F90FLAGS) $(LDFLAGS)
 315 .f90:
 316         $(LINK.f90) -o $@ $< $(LDLIBS)
 317 .f90~:
 318         $(GET) $(GFLAGS) -p $< > $*.f90
 319         $(LINK.f90) -o $@ $*.f90 $(LDLIBS)
 320 .f90.o:
 321         $(COMPILE.f90) $(OUTPUT_OPTION) $<
 322 .f90~.o:
 323         $(GET) $(GFLAGS) -p $< > $*.f90
 324         $(COMPILE.f90) $(OUTPUT_OPTION) $*.f90
 325 .f90.a:
 326         $(COMPILE.f90) -o $% $<
 327         $(AR) $(ARFLAGS) $@ $%
 328         $(RM) $%
 329 .f90~.a:
 330         $(GET) $(GFLAGS) -p $< > $*.f90
 331         $(COMPILE.f90) -o $% $*.f90
 332         $(AR) $(ARFLAGS) $@ $%
 333         $(RM) $%
 334 .ftn:
 335         $(LINK.ftn) -o $@ $< $(LDLIBS)
 336 .ftn~:
 337         $(GET) $(GFLAGS) -p $< > $*.ftn
 338         $(LINK.ftn) -o $@ $*.ftn $(LDLIBS)
 339 .ftn.o:
 340         $(COMPILE.ftn) $(OUTPUT_OPTION) $<
 341 .ftn~.o:
 342         $(GET) $(GFLAGS) -p $< > $*.ftn
 343         $(COMPILE.ftn) $(OUTPUT_OPTION) $*.ftn
 344 .ftn.a:
 345         $(COMPILE.ftn) -o $% $<
 346         $(AR) $(ARFLAGS) $@ $%
 347         $(RM) $%
 348 .ftn~.a:
 349         $(GET) $(GFLAGS) -p $< > $*.ftn
 350         $(COMPILE.ftn) -o $% $*.ftn
 351         $(AR) $(ARFLAGS) $@ $%
 352         $(RM) $%
 353 
 354 #       Modula-2 section.
 355 M2C=m2c
 356 M2FLAGS=
 357 MODFLAGS=
 358 DEFFLAGS=
 359 COMPILE.def=$(M2C) $(M2FLAGS) $(DEFFLAGS) 
 360 COMPILE.mod=$(M2C) $(M2FLAGS) $(MODFLAGS) 
 361 .def.sym:
 362         $(COMPILE.def) -o $@ $<
 363 .def~.sym:
 364         $(GET) $(GFLAGS) -p $< > $*.def
 365         $(COMPILE.def) -o $@ $*.def
 366 .mod:
 367         $(COMPILE.mod) -o $@ -e $@ $<
 368 .mod~:
 369         $(GET) $(GFLAGS) -p $< > $*.mod
 370         $(COMPILE.mod) -o $@ -e $@ $*.mod
 371 .mod.o:
 372         $(COMPILE.mod) -o $@ $<
 373 .mod~.o:
 374         $(GET) $(GFLAGS) -p $< > $*.mod
 375         $(COMPILE.mod) -o $@ $*.mod
 376 .mod.a:
 377         $(COMPILE.mod) -o $% $<
 378         $(AR) $(ARFLAGS) $@ $%
 379         $(RM) $%
 380 .mod~.a:
 381         $(GET) $(GFLAGS) -p $< > $*.mod
 382         $(COMPILE.mod) -o $% $*.mod
 383         $(AR) $(ARFLAGS) $@ $%
 384         $(RM) $%
 385 
 386 #       Pascal section.
 387 PC=pc
 388 PFLAGS=
 389 COMPILE.p=$(PC) $(PFLAGS) $(CPPFLAGS)  -c
 390 LINK.p=$(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS) 
 391 .p:
 392         $(LINK.p) -o $@ $< $(LDLIBS)
 393 .p~:
 394         $(GET) $(GFLAGS) -p $< > $*.p
 395         $(LINK.p) -o $@ $*.p $(LDLIBS)
 396 .p.o:
 397         $(COMPILE.p) $(OUTPUT_OPTION) $<
 398 .p~.o:
 399         $(GET) $(GFLAGS) -p $< > $*.p
 400         $(COMPILE.p) $(OUTPUT_OPTION) $*.p
 401 .p.a:
 402         $(COMPILE.p) -o $% $<
 403         $(AR) $(ARFLAGS) $@ $%
 404         $(RM) $%
 405 .p~.a:
 406         $(GET) $(GFLAGS) -p $< > $*.p
 407         $(COMPILE.p) -o $% $*.p
 408         $(AR) $(ARFLAGS) $@ $%
 409         $(RM) $%
 410 
 411 #       Assembly section.
 412 AS=as
 413 ASFLAGS=
 414 COMPILE.s=$(AS) $(ASFLAGS) 
 415 COMPILE.S=$(CC) $(ASFLAGS) $(CPPFLAGS)  -c
 416 .s.o:
 417         $(COMPILE.s) -o $@ $<
 418 .s~.o:
 419         $(GET) $(GFLAGS) -p $< > $*.s
 420         $(COMPILE.s) -o $@ $*.s
 421 .s.a:
 422         $(COMPILE.s) -o $% $<
 423         $(AR) $(ARFLAGS) $@ $%
 424         $(RM) $%
 425 .s~.a:
 426         $(GET) $(GFLAGS) -p $< > $*.s
 427         $(COMPILE.s) -o $% $*.s
 428         $(AR) $(ARFLAGS) $@ $%
 429         $(RM) $%
 430 .S.o:
 431         $(COMPILE.S) -o $@ $<
 432 .S~.o:
 433         $(GET) $(GFLAGS) -p $< > $*.S
 434         $(COMPILE.S) -o $@ $*.S
 435 .S.a:
 436         $(COMPILE.S) -o $% $<
 437         $(AR) $(ARFLAGS) $@ $%
 438         $(RM) $%
 439 .S~.a:
 440         $(GET) $(GFLAGS) -p $< > $*.S
 441         $(COMPILE.S) -o $% $*.S
 442         $(AR) $(ARFLAGS) $@ $%
 443         $(RM) $%
 444 
 445 #       Shell section.
 446 .sh:
 447         $(RM) $@
 448         cat $< > $@
 449         chmod +x $@
 450 .sh~:
 451         $(GET) $(GFLAGS) -p $< > $*.sh
 452         cp $*.sh $@
 453         chmod a+x $@
 454 
 455 #       NeWS section
 456 CPS=cps
 457 CPSFLAGS=
 458 .cps.h:
 459         $(CPS) $(CPSFLAGS) $*.cps
 460 .cps~.h:
 461         $(GET) $(GFLAGS) -p $< > $*.cps
 462         $(CPS) $(CPSFLAGS) $*.cps
 463 
 464 #       JAVA section
 465 JAVAC=javac
 466 JAVACFLAGS=
 467 .java.class:
 468         $(JAVAC) $(JAVACFLAGS) $<
 469 .java~.class:
 470         $(GET) $(GFLAGS) -p $< > $*.java
 471         $(JAVAC) $(JAVACFLAGS) $<
 472 
 473 #       Miscellaneous section.
 474 LD=ld
 475 LDFLAGS=
 476 LDLIBS=
 477 MAKE=make
 478 RM=rm -f
 479 AR=ar
 480 ARFLAGS=rv
 481 GET=get
 482 GFLAGS=
 483 
 484 markfile.o:     markfile
 485         echo "static char _sccsid[] = \"`grep @'(#)' markfile`\";" > markfile.c
 486         cc -c markfile.c
 487         $(RM) markfile.c
 488 
 489 SCCSFLAGS=
 490 SCCSGETFLAGS=-s
 491 .SCCS_GET:
 492         sccs $(SCCSFLAGS) get $(SCCSGETFLAGS) $@ -G$@
 493 
 494 .SCCS_GET_POSIX:
 495         sccs $(SCCSFLAGS) get $(SCCSGETFLAGS) $@ 
 496 
 497 .GET_POSIX:
 498         $(GET) $(GFLAGS) s.$@