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.$@