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