Операционная система UNIX. Руководство программиста

     

ВСТРОЕННЫЕ ПРАВИЛА


Ниже приводится стандартный набор встроенных правил, используемых утилитой make.

# # Суффиксы, распознаваемые make # .SUFFIXES: .o .c .c~ .y .y~ .l .l~ .s .s~ .h .h~ \ .sh .sh~ .f .f~

# # Предопределенные макросы # MAKE=make AR=ar ARFLAGS=-rv AS=as ARFLAGS= CC=cc CFLAGS=-O F77=f77 F77FLAGS= GET=get GFLAGS= LEX=lex LFLAGS= LD=ld LDFLAGS= YACC=yacc YFLAGS=

# # Правила с одним суффиксом # .c: $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@

.c~: $(GET) $(GFLAGS) $< $(CC) $(CFLAGS) $(LDFLAGS) $*.c -o $* -rm -f $*.c

.f: $(F77) $(F77FLAGS) $(LDFLAGS) $< -o $@

.f~: $(GET) $(GFLAGS) $< $(F77) $(F77FLAGS) $(LDFLAGS) $< -o $* -rm -f $*.f

.sh: cp $< $@; chmod 0777 $@

.sh~: $(GET) $(GFLAGS) $< cp $*.sh $*; chmod 0777 $@ -rm -f $*.sh

# # Правила с двумя суффиксами # .c~.c .f~.f .s~.s .sh~.sh .y~.y .l~.l .h~.h: $(GET) $(GFLAGS) $<

.c.a: $(CC) -c $(CFLAGS) $< $(AR) $(ARFLAGS) $@ $*.o rm -f $*.o

.c~.a: $(GET) $(GFLAGS) $< $(CC) -c $(CFLAGS) $*.c $(AR) $(ARFLAGS) $@ $*.o rm -f $*.[co]

.c.o: $(CC) -c $(CFLAGS) $<



.c~.o: $(GET) $(GFLAGS) $< $(CC) -c $(CFLAGS) $*.c -rm -f $*.c

.f.a: $(F77) $(F77FLAGS) $(LDFLAGS) -c $*.f $(AR) $(ARFLAGS) $@ $*.o -rm -f $*.o

.f~.a: $(GET) $(GFLAGS) $< $(F77) $(F77FLAGS) $(LDFLAGS) -c $*.f $(AR) $(ARFLAGS) $@ $*.o -rm -f $*.[fo]

.f.o: $(F77) $(F77FLAGS) $(LDFLAGS) -c $*.f

.f~.o: $(GET) $(GFLAGS) $< $(F77) $(F77FLAGS) $(LDFLAGS) -c $*.f -rm -f $*.f

.s~.a: $(GET) $(GFLAGS) $< $(AS) $(ASFLAGS) -o $*.o $*.s $(AR) $(ARFLAGS) $@ $*.o -rm -f $*.[so]

.s.o: $(AS) $(ASFLAGS) -o $@ $<

.s~.o: $(GET) $(GFLAGS) $< $(AS) $(ASFLAGS) -o $*.o $*.s -rm -f $*.s

.l.c: $(LEX) $(LFLAGS) $< mv lex.yy.c $@

.l~.c: $(GET) $(GFLAGS) $< $(LEX) $(LFLAGS) $*.l mv lex.yy.c $@ rm -f $*.l

.l.o: $(LEX) $(LFLAGS) $< $(CC) $(CFLAGS) -c lex.yy.c rm lex.yy.c mv lex.yy.o $@

.l~.o: $(GET) $(GFLAGS) $< $(LEX) $(LFLAGS) $*.l $(CC) $(CFLAGS) -c lex.yy.c rm lex.yy.c $*.l mv lex.yy.o $*.o

.y.c: $(YACC) $(YFLAGS) $< mv y.tab.c $@

.y~.c: $(GET) $(GFLAGS) $< $(YACC) $(YFLAGS) $*.y mv y.tab.c $@ -rm -f $*.y

.y.o: $(YACC) $(YFLAGS) $< $(CC) $(CFLAGS) -c y.tab.c rm y.tab.c mv y.tab.o $@

.y~.o: $(GET) $(GFLAGS) $< $(YACC) $(YFLAGS) $*.y $(CC) $(CFLAGS) -c y.tab.c rm -f y.tab.c $*.y mv y.tab.o $*.o



Содержание раздела