Makefile 632 B

123456789101112131415161718192021222324
  1. CFLAGS+=-O3 -Wall -fPIE -fno-strict-aliasing
  2. CFLAGS+=-Wformat -Wformat=2 -Wconversion -Wimplicit-fallthrough
  3. CFLAGS+=-Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3
  4. CFLAGS+=-fstack-clash-protection -fstack-protector-strong
  5. CFLAGS+=-fstrict-flex-arrays=3 -msse4.2
  6. LDFLAGS+=-msse4.2 -Wl,-O3,--sort-common,--as-needed,-z,relro,-z,now,--strip-all -pie
  7. LDFLAGS+=-Wl,-z,nodlopen -Wl,-z,noexecstack,--no-copy-dt-needed-entries
  8. PROG=crc32c
  9. PROG_OBJS=crc32c.o
  10. .PHONY: clean
  11. .MAIN: $(PROG)
  12. $(PROG): $(PROG_OBJS)
  13. $(CC) -o ${.TARGET} ${.ALLSRC} $(LDFLAGS)
  14. %o:
  15. $(CC) -o ${.TARGET} -c ${.IMPSRC}
  16. clean:
  17. rm -f *.o $(PROG)