| Revision 1 (by moose, 2006/07/23 19:04:20) |
initial import
|
.PRECIOUS: .d .o .a
.PHONY: clean cleantest detectconfig
CC := gcc
AR := ar rcs
RM := rm -fr
LIB_PRE := lib
LIB_SUFF := .a
LIB_NAME := riff
LIB_FULLNAME := $(LIB_PRE)$(LIB_NAME)$(LIB_SUFF)
LIB_SRC := vfs.c filter.c stream.c stat.c dir.c
LIB_OBJS := $(addprefix obj/,$(patsubst %.c,%.o,$(LIB_SRC)))
LIB_CFLAGS := -W -Wall -ggdb3 -Iinclude
LIB_LDFLAGS :=
TESTS :=
TESTS := $(addprefix tests/,$(TESTS))
TEST_CFLAGS := -Iinclude -DDEBUG -ggdb3 -W -Wall
TEST_LDFLAGS := -Llib -lvfs
DEPS := $(addprefix dep/,$(patsubst %.c,%.d,$(LIB_SRC))) $(addprefix dep/,$(patsubst %.c,%.d,$(LIB_PLAT_SRC))) $(addprefix tests/,$(addsuffix .c,$(TESTS)))
all : detectconfig $(TESTS)
lib/$(LIB_FULLNAME) : $(LIB_OBJS)
$(AR) lib/$(LIB_FULLNAME) $(LIB_OBJS)
obj/%.o : src/%.c makefile
$(CC) $(LIB_CFLAGS) -c $< -o $@
dep/%.d : src/%.c makefile
$(CC) -MM $(LIB_CFLAGS) $< | sed -e "s/^objs\/$*\.o:/objs\/$*\.o dep\/$*\.d:/" > $@
dep/%.d : tests/%.c makefile
$(CC) -MM $(TEST_CFLAGS) $< | sed -e "s/^objs\.$*\.o:/objs\/$*\.o dep\/$*\.d:/" > $@
$(TESTS): %: %.c lib/$(LIB_FULLNAME)
$(CC) $(TEST_CFLAGS) $< -o $@ $(TEST_LDFLAGS)
clean:
$(RM) lib/$(LIB_FULLNAME) $(LIB_OBJS) $(TESTS) $(DEPS) core* tests/core* $(TESTS)
detectconfig:
@scripts/detectconfig.sh
-include $(DEPS)