2015-06-29 11:41 GMT+03:00 Jean Delvare <jdelvare@xxxxxxx>: > Hi Matwey, > > On Sat, 27 Jun 2015 11:49:07 +0300, Matwey V. Kornilov wrote: >> eepromer/Module.mk has to be present in order to do >> make EXTRA=eepromer > > The problem with the eepromer directory is that it's a mess. There are > 3 tools there which do basically the same (programming EEPROMs), but > each has its own limitations: > * eeprom can't deal with 16-bit addressed EEPROMs nor SMBus-only > controllers. > * eepromer can't deal with 8-bit addressed EEPROMs nor SMBus-only > controllers. > * eeprog only uses SMBus byte/word reads and writes, it lacks support > for raw I2C block writes so it is slow on large EEPROMs. > > On top of that, eeprom and eepromer build with a lot of warnings. > > I really don't want to maintain 3 different tools with the same > purpose. eeprog seems to be the most promising of all 3, as it is fully > functional, but I don't feel comfortable dropping the other 2 until > block write support is added to eeprog. > > Would you be interested in adding block write support to eeprog? It has > been on my to-do list for a long time but I could never find the time > to actually look into it. I do not use these tools myself so my > personal interest is low and this is why it never makes it to the top > of my to-do list. So am I. I wanted to program EEPROM on my BeagleBone and I've found that eeprog was missed in openSUSE packages. So,now I just want to simplify packaging eeprog somehow in acceptable manner. > >> Signed-off-by: Matwey V. Kornilov <matwey.kornilov@xxxxxxxxx> >> --- >> --- /dev/null >> +++ i2c-tools-3.1.1/eepromer/Module.mk >> @@ -0,0 +1,79 @@ >> +# eepromer >> +# >> +# This program is free software; you can redistribute it and/or modify >> +# it under the terms of the GNU General Public License as published by >> +# the Free Software Foundation; either version 2 of the License, or >> +# (at your option) any later version. >> + >> +EEPROMER_DIR := eepromer >> + >> +EEPROMER_CFLAGS := -O2 -Iinclude -Wall >> +ifeq ($(USE_STATIC_LIB),1) >> +EEPROMER_LDFLAGS := $(LIB_DIR)/$(LIB_STLIBNAME) >> +else >> +EEPROMER_LDFLAGS := -L$(LIB_DIR) -li2c >> +endif > > This will link eepromer and eeprom with libi2c even though they don't > need it, right? > >> + >> +EEPROMER_TARGETS := eepromer eeprom eeprog >> + >> +# >> +# Programs >> +# >> + >> +$(EEPROMER_DIR)/eepromer: $(EEPROMER_DIR)/eepromer.o >> + $(CC) $(LDFLAGS) -o $@ $^ $(EEPROMER_LDFLAGS) >> + >> +$(EEPROMER_DIR)/eeprom: $(EEPROMER_DIR)/eeprom.o >> + $(CC) $(LDFLAGS) -o $@ $^ $(EEPROMER_LDFLAGS) >> + >> +$(EEPROMER_DIR)/eeprog: $(EEPROMER_DIR)/eeprog.o $(EEPROMER_DIR)/24cXX.o >> + $(CC) $(LDFLAGS) -o $@ $^ $(EEPROMER_LDFLAGS) >> + >> +# >> +# Objects >> +# >> + >> +$(EEPROMER_DIR)/eepromer.o: $(EEPROMER_DIR)/eepromer.c >> + $(CC) $(CFLAGS) $(EEPROMER_CFLAGS) -c $< -o $@ >> + >> +$(EEPROMER_DIR)/eeprom.o: $(EEPROMER_DIR)/eeprom.c >> + $(CC) $(CFLAGS) $(EEPROMER_CFLAGS) -c $< -o $@ >> + >> +$(EEPROMER_DIR)/eeprog.o: $(EEPROMER_DIR)/eeprog.c $(EEPROMER_DIR)/24cXX.h >> + $(CC) $(CFLAGS) $(EEPROMER_CFLAGS) -c $< -o $@ >> + >> +$(EEPROMER_DIR)/24cXX.o: $(EEPROMER_DIR)/24cXX.c $(EEPROMER_DIR)/24cXX.h > > Also depends on $(INCLUDE_DIR)/i2c/smbus.h. > >> + $(CC) $(CFLAGS) $(EEPROMER_CFLAGS) -c $< -o $@ >> + >> +# >> +# Commands >> +# >> + >> +all-eepromer: $(addprefix $(EEPROMER_DIR)/,$(EEPROMER_TARGETS)) >> + >> +strip-eepromer: $(addprefix $(EEPROMER_DIR)/,$(EEPROMER_TARGETS)) >> + strip $(addprefix $(EEPROMER_DIR)/,$(EEPROMER_TARGETS)) >> + >> +clean-eepromer: >> + $(RM) $(addprefix $(EEPROMER_DIR)/,*.o $(EEPROMER_TARGETS)) >> + >> +install-eepromer: $(addprefix $(EEPROMER_DIR)/,$(EEPROMER_TARGETS)) >> + $(INSTALL_DIR) $(DESTDIR)$(sbindir) $(DESTDIR)$(man8dir) >> + for program in $(EEPROMER_TARGETS) ; do \ >> + $(INSTALL_PROGRAM) $(EEPROMER_DIR)/$$program $(DESTDIR)$(sbindir) ; \ >> + $(INSTALL_DATA) $(EEPROMER_DIR)/$$program.8 $(DESTDIR)$(man8dir) ; done >> + >> +uninstall-eepromer: >> + for program in $(EEPROMER_TARGETS) ; do \ >> + $(RM) $(DESTDIR)$(sbindir)/$$program ; \ >> + $(RM) $(DESTDIR)$(man8dir)/$$program.8 ; done >> + >> +all: all-eepromer >> + >> +strip: strip-eepromer >> + >> +clean: clean-eepromer >> + >> +install: install-eepromer >> + >> +uninstall: uninstall-eepromer > > I don't think it makes sense to integrate eeprom and eepromer in the > main build system if the plan is to get rid of them. I'd rather only > integrate eeprog, so that distributions ship only that and everybody > uses only that. > > Maybe eeprog should be moved to its own directory, and that new > directory would be integrated into the build system while the rest of > the eepromer directory would be left alone (and ultimately deleted.) It is fine for me too. > > -- > Jean Delvare > SUSE L3 Support -- With best regards, Matwey V. Kornilov http://blog.matwey.name xmpp://0x2207@xxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html