summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-10-03 17:08:02 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-10-03 17:08:02 +0000
commita472b8b097fcd369929529e86f7350adaf1ae193 (patch)
tree646c28ba6b0835bb102873d2a04bed25e7d0a616 /Makefile
parentc67d03701b4348eee9dfd5e38733a1b0eda73d08 (diff)
downloadflashrom-a472b8b097fcd369929529e86f7350adaf1ae193.tar.gz
flashrom-a472b8b097fcd369929529e86f7350adaf1ae193.tar.bz2
flashrom-a472b8b097fcd369929529e86f7350adaf1ae193.zip
There is no need to tell people to install libz if flashrom doesn't need libz
So far, the only case where libz is needed is when a library (libpci) pulls in libz and even then it only happens if libpci is available in a static version only and said static version has libz requirements. Check for libpci separately and don't require libz if it isn't needed. Clarify the README. Corresponding to flashrom svn r743. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stefan Reinauer <stepan@coresystems.de>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile40
1 files changed, 31 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 3b1abfe81..8e4e310f1 100644
--- a/Makefile
+++ b/Makefile
@@ -41,7 +41,7 @@ CFLAGS += -I/usr/local/include
LDFLAGS += -L/usr/local/lib
endif
-LIBS += -lpci -lz
+LIBS += -lpci
OBJS = chipset_enable.o board_enable.o udelay.o jedec.o stm50flw0x0x.o \
sst28sf040.o am29f040b.o mx29f002.o m29f400bt.o pm29f002.o \
@@ -142,6 +142,9 @@ FEATURE_CFLAGS += -D'PRINT_WIKI_SUPPORT=1'
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")
+
$(PROGRAM): $(OBJS)
$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS) $(FEATURE_LIBS)
@@ -157,7 +160,7 @@ clean:
rm -f $(PROGRAM) *.o
distclean: clean
- rm -f .dependencies .features
+ rm -f .dependencies .features .libdeps
dep:
@$(CC) $(CPPFLAGS) $(SVNDEF) -MM *.c > .dependencies
@@ -175,17 +178,36 @@ compiler:
@rm -f .test.c .test
pciutils: compiler
- @printf "Checking for pciutils and zlib... "
+ @printf "Checking for libpci headers... "
@$(shell ( echo "#include <pci/pci.h>"; \
echo "struct pci_access *pacc;"; \
echo "int main(int argc, char **argv)"; \
echo "{ pacc = pci_alloc(); return 0; }"; ) > .test.c )
- @$(CC) $(CFLAGS) $(LDFLAGS) .test.c -o .test $(LIBS) >/dev/null 2>&1 && \
- echo "found." || ( echo "not found."; echo; \
- echo "Please install pciutils-devel and zlib-devel."; \
- echo "See README for more information."; echo; \
- rm -f .test.c .test; exit 1)
- @rm -f .test.c .test
+ @$(CC) -c $(CFLAGS) .test.c -o .test.o >/dev/null 2>&1 && \
+ echo "found." || ( echo "not found."; echo; \
+ echo "Please install libpci headers (package pciutils-devel)."; \
+ echo "See README for more information."; echo; \
+ rm -f .test.c .test.o; exit 1)
+ @printf "Checking for libpci... "
+ @$(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 $(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 $(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 $(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
.features: features