CFLAGS+=-O3 -Wall -fPIE -fno-strict-aliasing CFLAGS+=-Wformat -Wformat=2 -Wconversion -Wimplicit-fallthrough CFLAGS+=-Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 CFLAGS+=-fstack-clash-protection -fstack-protector-strong CFLAGS+=-fstrict-flex-arrays=3 LDFLAGS=-lutil LDFLAGS+=-Wl,-O3,--sort-common,--as-needed,-z,relro,-z,now,--strip-all -pie LDFLAGS+=-Wl,-z,nodlopen -Wl,-z,noexecstack,--no-copy-dt-needed-entries BTREE=btest BTREE_OBJS=btest.o bcompare.o BPROMPT=bprompt BPROMPT_OBJS=bprompt.o bcompare.o BPROMPT_LEX=lex.yy.c BPROMPT_YACC=y.tab.c .PHONY: clean .MAIN: clean $(BPROMPT) $(BTREE) $(BTREE): $(BTREE_OBJS) $(CC) -o ${.TARGET} ${.ALLSRC} $(LDFLAGS) $(BPROMPT_LEX): gram.l lex ${.ALLSRC} $(BPROMPT_YACC): parse.y yacc -d ${.ALLSRC} $(BPROMPT): $(BPROMPT_OBJS) $(BPROMPT_LEX) $(BPROMPT_YACC) $(CC) -o ${.TARGET} ${.ALLSRC} -O3 -fPIE $(LDFLAGS) SUFFIXES: .c .o .c.o: $(CC) -o ${.TARGET} $(CFLAGS) -c ${.IMPSRC} clean: rm -f *.o $(BTREE) ${BPROMPT} $(BPROMPT_YACC) $(BPROMPT_LEX)