1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-07-26 16:45:12 -04:00
elinks/Makefile.lib
Jonas Fonseca e8a17b97db Indent the output of CC and LINK
Use indentation to align directory and .c file names in the output (for
make all) so it is easier to distinguise lines.
2005-09-17 14:41:51 +02:00

86 lines
2.0 KiB
Makefile

### The build commands and verbosity
# If we are verbose, we will show commands prefixed by $(Q) (which acts as
# @ in the non-verbose mode), and we will show the "real" cmds instead of
# their quiet versions (which are used in the non-verbose mode).
# Inspired by the Linux kernel build system.
ifdef V
Q =
quiet =
mquiet = masq_
else
Q = @
quiet = quiet_
mquiet = quiet_
endif
# Show the command (quiet or non-quiet version based on the assignment
# just above) and then execute it.
ncmd = $(if $($(quiet)cmd_$(1)),echo $($(quiet)cmd_$(1)) &&) $(cmd_$(1))
cmd = @$(if $($(quiet)cmd_$(1)),echo $($(quiet)cmd_$(1)) &&) $(cmd_$(1))
mcmd = @$(if $($(mquiet)cmd_$(1)),echo $($(mquiet)cmd_$(1)) &&) $(cmd_$(1))
quiet_cmd_compile = ' [CC] $<'
masq_cmd_compile = $(COMPILE) -c $<
cmd_compile = $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
quiet_cmd_archive = ' [AR] $@'
cmd_archive = $(AR) r $@ $^
quiet_cmd_link = ' [LINK] $@'
cmd_link = $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
# Recursive make
quiet_cmd_recmake = "[MAKE $$target] $$subdir"
cmd_recmake = $(MAKE) -C $$subdir $$target
### Internal build rules
DEP_FILES_1 = $(foreach src,$(OBJS),.deps/$(src))
DEP_FILES = $(DEP_FILES_1:%.o=%.P)
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
ifdef OBJS
-include $(DEP_FILES)
endif
%.o: %.c
$(call mcmd,compile)
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.a:
$(call cmd,archive)
ifdef OBJS
clean-l:
rm -f $(OBJS) *.a
endif
# Recursion:
.PHONY: all-recursive install-recursive clean-recursive
all-recursive install-recursive clean-recursive:
@target=`echo $@ | sed s/-recursive//`; \
for subdir in $(SUBDIRS); do \
$(call ncmd,recmake) || exit 1; \
done
all: all-recursive all-l
install: install-recursive install-l
clean: clean-recursive clean-l
all-l:
install-l:
clean-l:
# vim:syntax=make