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