mirror of
https://github.com/rkd77/elinks.git
synced 2024-11-04 08:17:17 -05:00
e8a17b97db
Use indentation to align directory and .c file names in the output (for make all) so it is easier to distinguise lines.
86 lines
2.0 KiB
Makefile
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
|