libcgi: fix build failure on pure static library builds
libcgi always builds both the shared and static library, which doesn't work on architecture that don't support shared library at all, such as Blackfin with the FLAT format. libcgi uses autoconf, but not automake, and the Makefile is not of the highest possible quality, so this commit fixes the problem by introducing a "STATIC" variable that can be set from the environment. When set to a non-empty value, the Makefile assumes it should only build the static version of the library. Note that this package is in desperate need of some care: there is one single patch that mixes several changes together, it doesn't have a description or a Signed-off-by line, and there is now a github project for libcgi at https://github.com/rafaelsteil/libcgi/ that has the same fixes. However, for the purpose of the master branch, we're doing the most minimal fix possible, by just adding this STATIC variable. Fixes: http://autobuild.buildroot.net/results/625/625105bcaf26345f422b225787fc19611b65cd57/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
4a9eb20de8
commit
5ddfe76889
|
@ -8,7 +8,8 @@ LIBCGI_VERSION = 1.0
|
|||
LIBCGI_SITE = http://downloads.sourceforge.net/project/libcgi/libcgi/$(LIBCGI_VERSION)
|
||||
LIBCGI_INSTALL_STAGING = YES
|
||||
# use cross CC/AR rather than host
|
||||
LIBCGI_MAKE_ENV = CC="$(TARGET_CC) $(TARGET_CFLAGS)" AR="$(TARGET_AR)"
|
||||
LIBCGI_MAKE_ENV = CC="$(TARGET_CC) $(TARGET_CFLAGS)" AR="$(TARGET_AR)" \
|
||||
$(if $(BR2_PREFER_STATIC_LIB),STATIC=1)
|
||||
LIBCGI_LICENSE = LGPLv2.1+
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
--- libcgi-1.0.orig/src/cgi.c
|
||||
+++ libcgi-1.0/src/cgi.c
|
||||
Index: b/src/cgi.c
|
||||
===================================================================
|
||||
--- a/src/cgi.c
|
||||
+++ b/src/cgi.c
|
||||
@@ -336,7 +336,7 @@
|
||||
hextable['b'] = 11;
|
||||
hextable['c'] = 12;
|
||||
|
@ -9,8 +11,10 @@
|
|||
hextable['f'] = 15;
|
||||
hextable['A'] = 10;
|
||||
hextable['B'] = 11;
|
||||
--- libcgi-1.0.orig/src/string.c
|
||||
+++ libcgi-1.0/src/string.c
|
||||
Index: b/src/string.c
|
||||
===================================================================
|
||||
--- a/src/string.c
|
||||
+++ b/src/string.c
|
||||
@@ -584,7 +584,7 @@
|
||||
|
||||
va_start(ptr, s);
|
||||
|
@ -20,9 +24,11 @@
|
|||
len = strlen(s);
|
||||
|
||||
while (*str) {
|
||||
--- libcgi-1.0.orig/Makefile.in
|
||||
+++ libcgi-1.0/Makefile.in
|
||||
@@ -5,22 +5,27 @@
|
||||
Index: b/Makefile.in
|
||||
===================================================================
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -5,22 +5,32 @@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
|
@ -44,18 +50,23 @@
|
|||
+SHOBJS=$(OBJS:.o=.sh.o)
|
||||
|
||||
-.c.o: $(CC) $(FLAGS) -c $<
|
||||
+%.o: %.c
|
||||
+ $(CC) $(FLAGS) -c $*.c -o $@
|
||||
+ALL_TARGETS = src/libcgi.a
|
||||
+ifeq ($(STATIC),)
|
||||
+ALL_TARGETS += src/libcgi.so
|
||||
+endif
|
||||
|
||||
-all: $(OBJS) src/libcgi.so
|
||||
+%.o: %.c
|
||||
+ $(CC) $(FLAGS) -c $*.c -o $@
|
||||
+
|
||||
+%.sh.o: %.c
|
||||
+ $(CC) $(FLAGS) -fPIC -c $*.c -o $@
|
||||
+
|
||||
+all: src/libcgi.so src/libcgi.a
|
||||
+all: $(ALL_TARGETS)
|
||||
|
||||
@echo ""
|
||||
@echo ""
|
||||
@@ -48,14 +53,15 @@
|
||||
@@ -48,14 +58,17 @@
|
||||
src/libcgi.a: $(OBJS)
|
||||
$(AR) rc src/libcgi.a $(OBJS)
|
||||
|
||||
|
@ -70,14 +81,16 @@
|
|||
- cp src/cgi.h $(INCDIR)
|
||||
- cp src/session.h $(INCDIR)
|
||||
+ cp src/libcgi.a $(DESTDIR)/$(LIBDIR)
|
||||
+ifeq ($(STATIC),)
|
||||
+ cp src/libcgi.so $(DESTDIR)/$(LIBDIR)
|
||||
+endif
|
||||
+ [ -d $(DESTDIR)/$(INCDIR) ] || mkdir -p $(DESTDIR)/$(INCDIR)
|
||||
+ cp src/cgi.h $(DESTDIR)/$(INCDIR)
|
||||
+ cp src/session.h $(DESTDIR)/$(INCDIR)
|
||||
|
||||
|
||||
src/error.o: src/error.c src/error.h
|
||||
@@ -69,8 +75,9 @@
|
||||
@@ -69,8 +82,9 @@
|
||||
src/list.o: src/list.c
|
||||
|
||||
clean:
|
||||
|
@ -88,7 +101,7 @@
|
|||
|
||||
uninstall: clean
|
||||
rm -f $(LIBDIR)/libcgi.*
|
||||
@@ -78,11 +85,11 @@
|
||||
@@ -78,11 +92,11 @@
|
||||
rm -f $(INCDIR)/session.h
|
||||
rm -f $(MANDIR)/libcgi*
|
||||
|
||||
|
|
Loading…
Reference in a new issue