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 | 829b70e103c2f1eb5cf57c02e84fe80675cc3e5d (patch) | |
tree | d6aa51c07561391268efa1b7e179f7a7a99a778d | |
parent | 5c83c38422a419510708fe7ff93c5f71a6c0ce5c (diff) | |
download | mc-829b70e103c2f1eb5cf57c02e84fe80675cc3e5d.tar.gz |
Rebuild dependent libraries. Also, don't rely on cflags/ldflags.
-rw-r--r-- | 8/Makefile | 4 | ||||
-rw-r--r-- | mk/c.mk | 31 |
2 files changed, 22 insertions, 13 deletions
@@ -4,9 +4,7 @@ OBJ=isel.o \ reduce.o \ regalloc.o \ -CFLAGS+=-I../parse -I../opt -LDFLAGS+=-L../parse -lparse -L../opt -lopt -EXTRADEP=../parse/libparse.a ../opt/libopt.a +LIBDEPS=../parse/libparse.a ../opt/libopt.a include ../mk/lexyacc.mk include ../mk/c.mk @@ -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) |