LIB_DIR := lib
LIB_CFLAGS := -Wstrict-prototypes -Wshadow -Wpointer-arith -Wcast-qual \ -Wcast-align -Wwrite-strings -Wnested-externs -Winline \ -W -Wundef -Wmissing-prototypes -Iinclude
LIB_MAINVER := 0 LIB_MINORVER := 1.0 LIB_VER := $(LIB_MAINVER).$(LIB_MINORVER)
LIB_SHBASENAME := libi2c.so LIB_SHSONAME := $(LIB_SHBASENAME).$(LIB_MAINVER) LIB_SHLIBNAME := $(LIB_SHBASENAME).$(LIB_VER) LIB_STLIBNAME := libi2c.a
LIB_TARGETS := $(LIB_SHLIBNAME) LIB_LINKS := $(LIB_SHSONAME) $(LIB_SHBASENAME) LIB_OBJECTS := smbus.o ifeq ($(BUILD_STATIC_LIB),1) LIB_TARGETS += $(LIB_STLIBNAME) LIB_OBJECTS += smbus.ao endif
$(LIB_DIR)/$(LIB_SHLIBNAME): $(LIB_DIR)/smbus.o $(CC) -shared $(LDFLAGS) -Wl,--version-script=$(LIB_DIR)/libi2c.map -Wl,-soname,$(LIB_SHSONAME) -o $@ $^ -lc
$(LIB_DIR)/$(LIB_SHSONAME): $(RM) $@ $(LN) $(LIB_SHLIBNAME) $@
$(LIB_DIR)/$(LIB_SHBASENAME): $(RM) $@ $(LN) $(LIB_SHLIBNAME) $@
$(LIB_DIR)/$(LIB_STLIBNAME): $(LIB_DIR)/smbus.ao $(RM) $@ $(AR) rcvs $@ $^
$(LIB_DIR)/smbus.o: $(LIB_DIR)/smbus.c $(INCLUDE_DIR)/i2c/smbus.h $(CC) $(SOCFLAGS) $(LIB_CFLAGS) -c $< -o $@
$(LIB_DIR)/smbus.ao: $(LIB_DIR)/smbus.c $(INCLUDE_DIR)/i2c/smbus.h $(CC) $(CFLAGS) $(LIB_CFLAGS) -c $< -o $@
all-lib: $(addprefix $(LIB_DIR)/,$(LIB_TARGETS) $(LIB_LINKS))
strip-lib: $(addprefix $(LIB_DIR)/,$(LIB_TARGETS)) strip $(addprefix $(LIB_DIR)/,$(LIB_TARGETS))
clean-lib: $(RM) $(addprefix $(LIB_DIR)/,.o .ao $(LIB_TARGETS) $(LIB_LINKS))
install-lib: $(addprefix $(LIB_DIR)/,$(LIB_TARGETS)) $(INSTALL_DIR) $(DESTDIR)$(libdir) $(INSTALL_PROGRAM) $(LIB_DIR)/$(LIB_SHLIBNAME) $(DESTDIR)$(libdir) $(LN) $(LIB_SHLIBNAME) $(DESTDIR)$(libdir)/$(LIB_SHSONAME) $(LN) $(LIB_SHSONAME) $(DESTDIR)$(libdir)/$(LIB_SHBASENAME) ifeq ($(BUILD_STATIC_LIB),1) $(INSTALL_DATA) $(LIB_DIR)/$(LIB_STLIBNAME) $(DESTDIR)$(libdir) endif
uninstall-lib: for library in $(LIB_TARGETS) $(LIB_LINKS) ; do \ $(RM) $(DESTDIR)$(libdir)/$$library ; done
all: all-lib
strip: strip-lib
clean: clean-lib
install: install-lib
uninstall: uninstall-lib