Borislav Petkov | 85c66be | 2013-02-20 16:32:30 +0100 | [diff] [blame] | 1 | include ../../scripts/Makefile.include |
| 2 | |
Rabin Vincent | 3c4797d | 2013-05-17 22:27:44 +0200 | [diff] [blame] | 3 | CC = $(CROSS_COMPILE)gcc |
| 4 | AR = $(CROSS_COMPILE)ar |
| 5 | |
Joonsoo Kim | 079787f | 2013-06-19 10:02:29 +0900 | [diff] [blame] | 6 | # Makefiles suck: This macro sets a default value of $(2) for the |
| 7 | # variable named by $(1), unless the variable has been set by |
| 8 | # environment or command line. This is necessary for CC and AR |
| 9 | # because make sets default values, so the simpler ?= approach |
| 10 | # won't work as expected. |
| 11 | define allow-override |
| 12 | $(if $(or $(findstring environment,$(origin $(1))),\ |
| 13 | $(findstring command line,$(origin $(1)))),,\ |
| 14 | $(eval $(1) = $(2))) |
| 15 | endef |
| 16 | |
| 17 | # Allow setting CC and AR, or setting CROSS_COMPILE as a prefix. |
| 18 | $(call allow-override,CC,$(CROSS_COMPILE)gcc) |
| 19 | $(call allow-override,AR,$(CROSS_COMPILE)ar) |
| 20 | |
Borislav Petkov | 85c66be | 2013-02-20 16:32:30 +0100 | [diff] [blame] | 21 | # guard against environment variables |
| 22 | LIB_H= |
| 23 | LIB_OBJS= |
| 24 | |
| 25 | LIB_H += debugfs.h |
| 26 | |
| 27 | LIB_OBJS += $(OUTPUT)debugfs.o |
| 28 | |
| 29 | LIBFILE = liblk.a |
| 30 | |
Borislav Petkov | b28b130 | 2013-03-03 20:25:33 +0100 | [diff] [blame] | 31 | CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC |
Mike Frysinger | d14c496 | 2013-05-09 00:17:44 -0400 | [diff] [blame^] | 32 | EXTLIBS = -lelf -lpthread -lrt -lm |
Borislav Petkov | 85c66be | 2013-02-20 16:32:30 +0100 | [diff] [blame] | 33 | ALL_CFLAGS = $(CFLAGS) $(BASIC_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 |
| 34 | ALL_LDFLAGS = $(LDFLAGS) |
| 35 | |
| 36 | RM = rm -f |
| 37 | |
| 38 | $(LIBFILE): $(LIB_OBJS) |
| 39 | $(QUIET_AR)$(RM) $@ && $(AR) rcs $(OUTPUT)$@ $(LIB_OBJS) |
| 40 | |
| 41 | $(LIB_OBJS): $(LIB_H) |
| 42 | |
| 43 | $(OUTPUT)%.o: %.c |
| 44 | $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $< |
| 45 | $(OUTPUT)%.s: %.c |
| 46 | $(QUIET_CC)$(CC) -S $(ALL_CFLAGS) $< |
| 47 | $(OUTPUT)%.o: %.S |
| 48 | $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $< |
| 49 | |
| 50 | clean: |
| 51 | $(RM) $(LIB_OBJS) $(LIBFILE) |
| 52 | |
| 53 | .PHONY: clean |