# # Makefile # # targets and objects TARGETS := eeprom ltc COMMON_OBJS := ioutils.o i2c.o strnum.o OBJS := ltc.o eeprom.o $(COMMON_OBJS) HEADERS := # ids KERNEL_ID := $(shell uname -s) MACHINE_ID := $(shell uname -m) ARCH_ID := $(KERNEL_ID)-$(MACHINE_ID) # directories ifndef SOURCE_DIR SOURCE_DIR := $(PWD) endif BUILD_ROOT := $(SOURCE_DIR)/build BUILD_DIR := $(BUILD_ROOT)/$(ARCH_ID) # compiler and linker flags CFLAGS := -g -Wall -DOS_LINUX -I$(SOURCE_DIR) LDFLAGS := -g LIBRARIES := -lpsi -lm all: $(BUILD_DIR) build-all clean: -@cd $(BUILD_DIR); \ rm -f *.o $(TARGETS) distclean: -@rm -f *.cache *~ -@rm -rf $(BUILD_ROOT) $(BUILD_DIR): @mkdir -p $(BUILD_DIR) build-all: @$(MAKE) -C $(BUILD_DIR) -f $(SOURCE_DIR)/Makefile \ SOURCE_DIR=$(SOURCE_DIR) $(TARGETS) $(TARGETS): %: %.o $(COMMON_OBJS) $(HEADERS) $(CC) $(LDFLAGS) -o $@ $< $(COMMON_OBJS) $(LIBRARIES) $(OBJS): %.o: $(SOURCE_DIR)/%.c $(CC) $(CFLAGS) -c -o $@ $< .PHONY: all