[flashrom] [Flashrom] [PATCH] Separate Makefile's main OBJS list into Programmer, Chip, Lib, CLI object lists

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Dec 24 11:49:07 CET 2009


On 24.12.2009 07:14, Sean Nelson wrote:
> This patch shouldn't affect anything else in patchwork. It just splits
> $(OBJS) in Makefile into separate lists for Programmer, Chip, and CLI
> related files/objects. This should help later on figuring out where
> files may go for a libflashrom library.
>
> Diff'ed against r823.
>
> diff --git a/Makefile b/Makefile
> index 99625e7..4e623eb 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -41,11 +41,17 @@ CFLAGS += -I/usr/local/include
>  LDFLAGS += -L/usr/local/lib
>  endif
>  
> -OBJS = jedec.o stm50flw0x0x.o w39v080fa.o sharplhf00l04.o w29ee011.o \
> +LIBS += -lpci
>   

Mismerge of r823? -lpci should not be added conditionally.


> +
> +CHIP_OBJS = jedec.o stm50flw0x0x.o w39v080fa.o sharplhf00l04.o w29ee011.o \
>  	sst28sf040.o am29f040b.o mx29f002.o m29f400bt.o pm29f002.o w39v040c.o \
> -	w49f002u.o 82802ab.o pm49fl00x.o sst49lf040.o en29f002a.o m29f002.o \
> -	sst49lfxxxc.o sst_fwhub.o flashchips.o layout.o spi.o \
> -	flashrom.o print.o udelay.o
> +	w49f002u.o 82802ab.o pm49fl00x.o sst49lf040.o m29f002.o \
> +	sst49lfxxxc.o sst_fwhub.o flashchips.o spi.o
> +CLI_OBJS = flashrom.o print.o
> +
> +LIB_OBJS = layout.o
> +
> +PROGRAMMER_OBJS = udelay.o
>  
>  all: pciutils features dep $(PROGRAM)
>  
> @@ -96,13 +102,13 @@ CONFIG_PRINT_WIKI ?= no
>  
>  ifeq ($(CONFIG_INTERNAL), yes)
>  FEATURE_CFLAGS += -D'INTERNAL_SUPPORT=1'
> -OBJS += chipset_enable.o board_enable.o cbtable.o it87spi.o ichspi.o sb600spi.o wbsio_spi.o
> +PROGRAMMER_OBJS += chipset_enable.o board_enable.o cbtable.o it87spi.o ichspi.o sb600spi.o wbsio_spi.o
>  NEED_PCI := yes
>  endif
>  
>  ifeq ($(CONFIG_SERPROG), yes)
>  FEATURE_CFLAGS += -D'SERPROG_SUPPORT=1'
> -OBJS += serprog.o
> +LIB_OBJS += serprog.o
>  ifeq ($(OS_ARCH), SunOS)
>  LIBS += -lsocket
>  endif
> @@ -110,24 +116,24 @@ endif
>  
>  ifeq ($(CONFIG_BITBANG_SPI), yes)
>  FEATURE_CFLAGS += -D'BITBANG_SPI_SUPPORT=1'
> -OBJS += bitbang_spi.o
> +PROGRAMMER_OBJS += bitbang_spi.o
>  endif
>  
>  ifeq ($(CONFIG_NIC3COM), yes)
>  FEATURE_CFLAGS += -D'NIC3COM_SUPPORT=1'
> -OBJS += nic3com.o
> +PROGRAMMER_OBJS += nic3com.o
>  NEED_PCI := yes
>  endif
>  
>  ifeq ($(CONFIG_GFXNVIDIA), yes)
>  FEATURE_CFLAGS += -D'GFXNVIDIA_SUPPORT=1'
> -OBJS += gfxnvidia.o
> +PROGRAMMER_OBJS += gfxnvidia.o
>  NEED_PCI := yes
>  endif
>  
>  ifeq ($(CONFIG_SATASII), yes)
>  FEATURE_CFLAGS += -D'SATASII_SUPPORT=1'
> -OBJS += satasii.o
> +PROGRAMMER_OBJS += satasii.o
>  NEED_PCI := yes
>  endif
>  
> @@ -136,48 +142,54 @@ ifeq ($(CONFIG_FT2232SPI), yes)
>  # This is a totally ugly hack.
>  FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'FT2232_SPI_SUPPORT=1'")
>  FEATURE_LIBS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "$(FTDILIBS)")
> -OBJS += ft2232_spi.o
> +PROGRAMMER_OBJS += ft2232_spi.o
>  endif
>  
>  ifeq ($(CONFIG_DUMMY), yes)
>  FEATURE_CFLAGS += -D'DUMMY_SUPPORT=1'
> -OBJS += dummyflasher.o
> +PROGRAMMER_OBJS += dummyflasher.o
>  endif
>  
>  ifeq ($(CONFIG_DRKAISER), yes)
>  FEATURE_CFLAGS += -D'DRKAISER_SUPPORT=1'
> -OBJS += drkaiser.o
> +PROGRAMMER_OBJS += drkaiser.o
>  NEED_PCI := yes
>  endif
>  
>  ifeq ($(CONFIG_BUSPIRATESPI), yes)
>  FEATURE_CFLAGS += -D'BUSPIRATE_SPI_SUPPORT=1'
> -OBJS += buspirate_spi.o
> +PROGRAMMER_OBJS += buspirate_spi.o
>  endif
>  
>  # Ugly, but there's no elif/elseif.
>  ifeq ($(CONFIG_SERPROG), yes)
> -OBJS += serial.o
> +LIB_OBJS += serial.o
>  else
>  ifeq ($(CONFIG_BUSPIRATESPI), yes)
> -OBJS += serial.o
> +LIB_OBJS += serial.o
>  endif
>  endif
>  
>  ifeq ($(NEED_PCI), yes)
> -LIBS += -lpci
>  FEATURE_CFLAGS += -D'NEED_PCI=1'
> -OBJS += pcidev.o physmap.o internal.o
> +LIB_OBJS += pcidev.o 					#FIXME: We need to move stuff from 
> +										# internal.c and pcidev.c to pci.c
> +PROGRAMMER_OBJS += physmap.o internal.o #FIXME: internal.c needs to be split
>   

Agreed, the move needs to happen. Not sure if physmap.o qualifies as
LIB_OBJS (IIRC used by all PCI programmers as well).


> +										# into internal-programmer-only stuff
> +										# and a support lib for all internal+pci
> +										# based stuff.
>   

Is it possible that you have tab width set to 4 or somesuch? The comment
indentation seems to be inconsistent when viewed with tab width 8.


>  endif
>  
>  ifeq ($(CONFIG_PRINT_WIKI), yes)
>  FEATURE_CFLAGS += -D'PRINT_WIKI_SUPPORT=1'
> -OBJS += print_wiki.o
> +CLI_OBJS += print_wiki.o
>  endif
>  
>  # We could use PULLED_IN_LIBS, but that would be ugly.
>  FEATURE_LIBS += $(shell LC_ALL=C grep -q "NEEDLIBZ := yes" .libdeps && printf "%s" "-lz")
>  
> +OBJS = $(CHIP_OBJS) $(CLI_OBJS) $(PROGRAMMER_OBJS) $(LIB_OBJS)
> +
>  $(PROGRAM): $(OBJS)
>  	$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(FEATURE_LIBS) $(LIBS)
>  
>   


The stuff below reverts r823. Is that intentional?

> @@ -210,7 +222,6 @@ compiler:
>  		rm -f .test.c .test; exit 1)
>  	@rm -f .test.c .test
>  
> -ifeq ($(NEED_PCI), yes)
>  pciutils: compiler
>  	@printf "Checking for libpci headers... "
>  	@$(shell ( echo "#include <pci/pci.h>";		   \
> @@ -226,30 +237,25 @@ pciutils: compiler
>  	@$(shell ( echo "#include <pci/pci.h>";		   \
>  		   echo "int main(int argc, char **argv)"; \
>  		   echo "{ return 0; }"; ) > .test1.c )
> -	@$(CC) $(CFLAGS) $(LDFLAGS) .test1.c -o .test1 -lpci $(LIBS) >/dev/null 2>&1 &&	\
> +	@$(CC) $(CFLAGS) $(LDFLAGS) .test1.c -o .test1 $(LIBS) >/dev/null 2>&1 &&	\
>  		echo "found." || ( echo "not found."; echo;				\
>  		echo "Please install libpci (package pciutils).";			\
>  		echo "See README for more information."; echo;				\
>  		rm -f .test1.c .test1; exit 1)
>  	@printf "Checking if libpci is sufficient... "
>  	@printf "" > .libdeps
> -	@$(CC) $(LDFLAGS) .test.o -o .test -lpci $(LIBS) >/dev/null 2>&1 &&				\
> +	@$(CC) $(LDFLAGS) .test.o -o .test $(LIBS) >/dev/null 2>&1 &&				\
>  		echo "yes." || ( echo "no.";							\
>  		printf "Checking if libz is present and supplies all needed symbols...";	\
> -		$(CC) $(LDFLAGS) .test.o -o .test -lpci -lz $(LIBS) >/dev/null 2>&1 &&		\
> +		$(CC) $(LDFLAGS) .test.o -o .test $(LIBS) -lz >/dev/null 2>&1 &&		\
>  		( echo "yes."; echo "NEEDLIBZ := yes" > .libdeps ) || ( echo "no."; echo;	\
>  		echo "Please install libz.";			\
>  		echo "See README for more information."; echo;				\
>  		rm -f .test.c .test.o .test; exit 1) )
>  	@rm -f .test.c .test.o .test .test1.c .test1
> -else
> -pciutils: compiler
> -	@printf "" > .libdeps
> -endif
>  
>  .features: features
>  
> -ifeq ($(CONFIG_FT2232SPI), yes)
>  features: compiler
>  	@echo "FEATURES := yes" > .features.tmp
>  	@printf "Checking for FTDI support... "
> @@ -262,10 +268,6 @@ features: compiler
>  		( echo "not found."; echo "FTDISUPPORT := no" >> .features.tmp )
>  	@$(DIFF) -q .features.tmp .features >/dev/null 2>&1 && rm .features.tmp || mv .features.tmp .features
>  	@rm -f .featuretest.c .featuretest
> -else
> -features: compiler
> -	@echo "FEATURES := yes" > .features
> -endif
>  
>  install: $(PROGRAM)
>  	mkdir -p $(DESTDIR)$(PREFIX)/sbin
>   
>

Looks good otherwise.

Regards,
Carl-Daniel

-- 
Developer quote of the year:
"We are juggling too many chainsaws and flaming arrows and tigers."





More information about the flashrom mailing list