1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-09-27 02:56:18 -04:00
elinks/Makefile.lib
Petr Baudis 06ea255a22 Convert part of the build to the new build system
The root makefile is converted as well as some leaf Makefiles. This
also brings in the required infrastructure and adjusts configure.in
appropriately.

I converted only makefiles containing no configurable stuff, since
that'll require more consideration yet.
2005-09-15 21:03:56 +02:00

73 lines
1.8 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 $@ $^
# Recursive make
quiet_cmd_recmake = "[MAKE $$target] $$subdir"
cmd_recmake = $(MAKE) -C $$subdir $$target path_to_top="$(path_to_top)/.."
### 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)
# 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
# vim:syntax=make