diff options
author | Ori Bernstein <orib@google.com> | 2012-06-13 14:56:16 -0400 |
---|---|---|
committer | Ori Bernstein <orib@google.com> | 2012-06-13 14:56:16 -0400 |
commit | 056f0df601d2fd1150c29564cb57f53a3e74e3e2 (patch) | |
tree | d6aa51c07561391268efa1b7e179f7a7a99a778d /mk/c.mk | |
parent | 8865ed9510427f9af64eeeaa18f8209c91aeb456 (diff) | |
download | mc-056f0df601d2fd1150c29564cb57f53a3e74e3e2.tar.gz |
Rebuild dependent libraries. Also, don't rely on cflags/ldflags.
Diffstat (limited to 'mk/c.mk')
-rw-r--r-- | mk/c.mk | 31 |
1 files changed, 21 insertions, 10 deletions
@@ -1,9 +1,13 @@ -DEPSDIR = .deps -DEPS=$(addprefix $(DEPSDIR)/, $(OBJ:.o=.d)) +_DEPSDIR = .deps +_DEPS=$(addprefix $(_DEPSDIR)/, $(OBJ:.o=.d)) + +_LIBSRCHPATHS=$(addprefix -L, $(dir $(LIBDEPS))) +_LIBINCPATHS=$(addprefix -I, $(dir $(LIBDEPS))) +_LIBPATHS=$(addprefix -l, $(patsubst lib%.a,%,$(notdir $(LIBDEPS)))) CFLAGS += -Wall -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers CFLAGS += -g -CFLAGS += -MMD -MP -MF ${DEPSDIR}/$(subst /,-,$*).d +CFLAGS += -MMD -MP -MF ${_DEPSDIR}/$(subst /,-,$*).d .PHONY: clean clean-gen clean-bin clean-obj clean-misc clean-backups .PHONY: all @@ -11,11 +15,18 @@ CFLAGS += -MMD -MP -MF ${DEPSDIR}/$(subst /,-,$*).d all: subdirs $(BIN) $(LIB) $(EXTRA) install: subdirs-install install-bin install-lib install-hdr install-pc -$(LIB): $(OBJ) - $(AR) -rcs $@ $^ +$(LIB): $(OBJ) libs + $(AR) -rcs $@ $(OBJ) + +$(BIN): $(OBJ) $(EXTRADEP) libs + $(CC) -o $@ $(OBJ) $(_LIBSRCHPATHS) $(_LIBPATHS) -$(BIN): $(OBJ) $(EXTRADEP) - $(CC) -o $@ $(OBJ) $(LDFLAGS) +libs: $(LIBDEPS) + @for i in $(dir $(LIBDEPS)); do (\ + cd $$i && \ + $(MAKE) || \ + exit 1 \ + ) || exit 1; done subdirs: @for i in $(SUB); do (\ @@ -64,10 +75,10 @@ clean-backups: find ./ -name *.bak -exec rm -f {} \; %.o: %.c .deps - $(CC) -c $(CFLAGS) $< + $(CC) -c $(CFLAGS) $(_LIBINCPATHS) $< .deps: - mkdir -p $(DEPSDIR) + mkdir -p $(_DEPSDIR) --include $(DEPS) +-include $(_DEPS) |