mirror of
https://github.com/troglobit/libite.git
synced 2026-10-01 21:42:28 +07:00
GNU Make double colon rules, rule ;-) Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
45 lines
1.1 KiB
Makefile
45 lines
1.1 KiB
Makefile
.PHONY: all clean distclean
|
|
|
|
# Figure out root of library, unless used as submodule
|
|
ROOTDIR ?= $(shell pwd)
|
|
|
|
# Default to silent build, use V=1 to get verbose mode.
|
|
ifeq ($V,1)
|
|
Q =
|
|
PRINT = @true
|
|
REDIRECT =
|
|
MAKEFLAGS =
|
|
else
|
|
Q = @
|
|
PRINT = @printf
|
|
REDIRECT = >/dev/null
|
|
MAKEFLAGS = --no-print-directory --silent
|
|
endif
|
|
|
|
export ROOTDIR Q PRINT MAKEFLAGS
|
|
|
|
# Pretty printing and GCC -M for auto dep files
|
|
%.o: %.c
|
|
$(PRINT) " CC $(subst $(ROOTDIR)/,,$(shell pwd)/)$@\n"
|
|
$(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -c -MMD -MP -o $@ $<
|
|
|
|
%: %.o
|
|
$(PRINT) " LINK $(subst $(ROOTDIR)/,,$(shell pwd)/)$@\n"
|
|
$(Q)$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-Map,$@.map -o $@ $^ $(LDLIBS$(LDLIBS-$(@)))
|
|
|
|
%.test: %.c
|
|
$(PRINT) " TEST $(subst $(ROOTDIR)/,,$(shell pwd)/)$(@:.test=)\n"
|
|
$(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -DUNITTEST $< $(OBJS)
|
|
$(Q)@./$@ $(REDIRECT)
|
|
|
|
|
|
# Default build rules for both main and unit test makefiles
|
|
all:: $(TARGET)
|
|
|
|
clean::
|
|
-$(Q)$(RM) $(OBJS) $(DEPS) $(TARGET) $(SOLIB) $(STATICLIB)
|
|
|
|
distclean::
|
|
-$(Q)$(RM) $(JUNK) unittest *.o *.a *.so* *.unittest *.test
|
|
|