Make.rules 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. CC = arm-linux-gnueabi-gcc
  2. CFLAGS ?= -g -Wall -W -Wshadow -Wpointer-arith -Wstrict-prototypes
  3. ifneq ($(lib_name),)
  4. # additional rules for libraries
  5. CFLAGS_LIB ?= -fPIC
  6. CFLAGS += $(CFLAGS_LIB)
  7. libraries = $(lib_name).so $(lib_name).a
  8. .PHONY: library
  9. library: $(libraries)
  10. $(libraries): $(objects)
  11. endif
  12. prerequisites = $(subst .o,.d,$(objects)) $(addsuffix .d,$(binaries))
  13. .PHONY: clean install
  14. ifeq ($(static),1)
  15. LDFLAGS += -static
  16. endif
  17. prefix ?= /usr
  18. bindir ?= $(prefix)/bin
  19. includedir ?= $(prefix)/include
  20. libdir ?= $(prefix)/lib
  21. sharedir ?= $(prefix)/share
  22. ifneq ($(DESTDIR),)
  23. DESTDIR := $(DESTDIR)/
  24. endif
  25. ifeq ($(V),1)
  26. %.o: %.c
  27. $(CC) -c $(CPPFLAGS) $(CFLAGS) -MMD -o $@ $< $(filter-out %.h %.c,$^)
  28. %: %.o
  29. $(CC) $(LDFLAGS) -o $@ $^ $(LOADLIBES) $(LDLIBS)
  30. %: %.c
  31. $(CC) $(CPPFLAGS) $(CFLAGS) -MMD $(LDFLAGS) -o $@ $< $(filter-out %.h %.c,$^) $(LOADLIBES) $(LDLIBS)
  32. %.so:
  33. $(CC) -shared -o $@ $^
  34. %.a:
  35. $(AR) rcs $@ $^
  36. clean::
  37. $(RM) -f $(prerequisites) $(objects) $(libraries) $(binaries) $(removing) *~
  38. else
  39. %.o: %.c
  40. @echo CC $@
  41. @$(CC) -c $(CPPFLAGS) $(CFLAGS) -MMD -o $@ $< $(filter-out %.h %.c,$^)
  42. %: %.o
  43. @echo CC $@
  44. @$(CC) $(LDFLAGS) -o $@ $^ $(LOADLIBES) $(LDLIBS)
  45. %: %.c
  46. @echo CC $@
  47. @$(CC) $(CPPFLAGS) $(CFLAGS) -MMD $(LDFLAGS) -o $@ $< $(filter-out %.h %.c,$^) $(LOADLIBES) $(LDLIBS)
  48. %.so:
  49. @echo CC $@
  50. @$(CC) -shared -o $@ $^
  51. %.a:
  52. @echo AR $@
  53. @$(AR) rcs $@ $^
  54. clean::
  55. @echo cleaning
  56. @$(RM) -f $(prerequisites) $(objects) $(libraries) $(binaries) $(removing) *~
  57. endif
  58. -include $(prerequisites)